/* =========================================================
   AIC FESTIVAL 2027 — CONTACT PAGE
   Focus: clear hierarchy, fast access, accessible form flow
   ========================================================= */

/* ---------- Hero ---------- */

.contact-hero{
    min-height:340px;
    display:flex;
    align-items:center;
    background:
        linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.38)),
        url("../images/contact/hero.jpg") center/cover no-repeat;
}

.contact-hero-content{
    max-width:850px;
    padding:78px 0 58px;
    color:#fff;
}

.contact-hero-content > span{
    color:#F4A300;
    font-size:.8rem;
    font-weight:900;
    letter-spacing:.18em;
}

.contact-hero h1{
    margin:16px 0 18px;
    color:#fff;
    font-size:clamp(2.65rem,5.5vw,4.8rem);
    line-height:.98;
    letter-spacing:-.04em;
}

.contact-hero h1 em{
    color:#F4A300;
    font-style:normal;
}

.contact-hero p{
    max-width:680px;
    margin:0;
    color:#eee;
    font-size:1.05rem;
    line-height:1.75;
}

.contact-hero .btn-primary{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:24px;
}

/* ---------- Breadcrumb ---------- */

.breadcrumb{
    border-bottom:1px solid #eee;
    background:#fff;
}

.breadcrumb .container{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:52px;
    font-size:.8rem;
}

.breadcrumb a{
    color:#666;
}

.breadcrumb strong{
    color:#222;
}

/* ---------- Primary enquiry section ---------- */

.contact-form-section{
    padding:72px 0 92px;
    background:#FFF8EE;
    scroll-margin-top:25px;
}

.form-layout{
    display:grid;
    grid-template-columns:minmax(280px,340px) minmax(0,1fr);
    gap:64px;
    align-items:start;
}

.form-copy h2{
    margin:13px 0 16px;
    color:#111;
    font-size:clamp(2.15rem,4vw,3.2rem);
    line-height:1.08;
    letter-spacing:-.025em;
}

.form-copy > p{
    margin:0;
    color:#666;
    line-height:1.8;
}

.enquiry-links{
    display:grid;
    gap:0;
    margin-top:27px;
}

.enquiry-links a{
    display:flex;
    gap:13px;
    padding:14px 0;
    border-bottom:1px solid #E4D8C5;
    color:#333;
    text-decoration:none;
    transition:color .2s ease,transform .2s ease;
}

.enquiry-links a:first-child{
    border-top:1px solid #E4D8C5;
}

.enquiry-links a:hover{
    color:#111;
    transform:translateX(3px);
}

.enquiry-links i{
    width:24px;
    flex:0 0 24px;
    margin-top:3px;
    color:#F4A300;
    text-align:center;
}

.enquiry-links strong{
    display:block;
    font-size:.95rem;
}

.enquiry-links small{
    display:block;
    margin-top:3px;
    color:#777;
    line-height:1.5;
}

/* ---------- Form panel ---------- */

.contact-panel{
    padding:40px;
    border:1px solid #E5D8C3;
    border-radius:17px;
    background:#fff;
    box-shadow:0 14px 34px rgba(0,0,0,.06);
}

.form-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.field{
    margin-bottom:20px;
}

.field label{
    display:block;
    margin-bottom:8px;
    color:#222;
    font-weight:800;
}

.field label span{
    color:#D88900;
}

.field input,
.field select,
.field textarea{
    width:100%;
    min-height:50px;
    padding:13px 15px;
    border:1px solid #D8D0C4;
    border-radius:8px;
    background:#fff;
    color:#222;
    font:inherit;
    outline:none;
    transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;
}

.field textarea{
    min-height:155px;
    resize:vertical;
}

.field input:hover,
.field select:hover,
.field textarea:hover{
    border-color:#BFB5A7;
}

.field input:focus,
.field select:focus,
.field textarea:focus{
    border-color:#F4A300;
    box-shadow:0 0 0 3px rgba(244,163,0,.13);
}

.field.invalid input,
.field.invalid select,
.field.invalid textarea{
    border-color:#B42318;
}

.error-message{
    display:block;
    min-height:18px;
    margin-top:5px;
    color:#B42318;
    font-size:.78rem;
    line-height:1.4;
}

.consent{
    display:flex;
    align-items:flex-start;
    gap:11px;
    margin-top:1px;
    color:#555;
    font-size:.9rem;
    line-height:1.6;
    cursor:pointer;
}

.consent input{
    width:18px;
    height:18px;
    flex:0 0 auto;
    margin-top:2px;
    accent-color:#F4A300;
}

.consent-error{
    margin-left:29px;
}

.submit-btn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    width:100%;
    min-height:52px;
    margin-top:11px;
    padding:14px 25px;
    border:0;
    border-radius:30px;
    background:linear-gradient(135deg,#F4A300,#D88900);
    color:#fff;
    font:inherit;
    font-weight:900;
    cursor:pointer;
    transition:transform .25s ease,box-shadow .25s ease;
}

.submit-btn:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 22px rgba(244,163,0,.22);
}

.submit-btn:active{
    transform:translateY(0);
}

.form-note{
    margin:13px 0 0;
    color:#888;
    font-size:.8rem;
    line-height:1.5;
    text-align:center;
}

.form-note a{
    color:#555;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:2px;
}

/* ---------- Success state ---------- */

.form-success{
    display:none;
    gap:14px;
    margin-bottom:25px;
    padding:18px;
    border-left:4px solid #F4A300;
    border-radius:8px;
    background:#FFF8EE;
}

.form-success.visible{
    display:flex;
}

.form-success > i{
    flex:0 0 auto;
    color:#D88900;
    font-size:23px;
}

.form-success strong{
    display:block;
    margin-bottom:4px;
}

.form-success p{
    margin:0;
    color:#666;
    line-height:1.6;
}

/* ---------- Contact details ---------- */

.contact-details{
    padding:82px 0 92px;
    background:#fff;
}

.details-heading{
    max-width:760px;
    margin:0 auto 38px;
    text-align:center;
}

.details-heading h2{
    margin:12px 0 0;
    color:#111;
    font-size:clamp(2rem,4vw,3rem);
    line-height:1.1;
}

.details-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}

.contact-card{
    padding:28px 25px;
    border:1px solid #E9DDCC;
    border-radius:14px;
    background:#FFF8EE;
}

.contact-icon{
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:18px;
    border-radius:50%;
    background:linear-gradient(135deg,#F4A300,#D88900);
    color:#fff;
    font-size:22px;
}

.contact-card > span{
    color:#D88900;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.contact-card h3{
    margin:9px 0 9px;
    color:#111;
    font-size:1.25rem;
    line-height:1.3;
}

.contact-card h3 a{
    color:#111;
    text-decoration:underline;
    text-decoration-color:#F4A300;
    text-underline-offset:3px;
    overflow-wrap:anywhere;
}

.contact-card p{
    margin:0;
    color:#666;
    line-height:1.7;
}

/* ---------- Honeypot ---------- */

.hp-field{
    position:absolute !important;
    left:-9999px !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
}

/* ---------- Responsive ---------- */

@media (max-width:900px){
    .contact-intro-grid,
    .form-layout{
        grid-template-columns:1fr;
        gap:38px;
    }

    .details-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .form-copy{
        max-width:700px;
    }
}

@media (max-width:650px){
    .contact-hero .container,
    .breadcrumb .container,
    .contact-form-section .container,
    .contact-details .container{
        padding-left:max(16px, 4vw);
        padding-right:max(16px, 4vw);
    }

    .contact-hero{
        min-height:auto;
    }

    .contact-hero-content{
        padding:58px 0 48px;
    }

    .contact-hero h1{
        font-size:clamp(2.45rem,11vw,3.4rem);
        line-height:.99;
    }

    .contact-hero p{
        font-size:1rem;
        line-height:1.7;
    }

    .contact-hero .btn-primary{
        width:100%;
        justify-content:center;
        margin-top:22px;
    }

    .breadcrumb .container{
        min-height:48px;
    }

    .contact-intro{
        padding:56px 0 52px;
    }

    .contact-intro-grid{
        gap:24px;
    }

    .contact-intro h2,
    .form-copy h2{
        font-size:clamp(2rem,9vw,2.65rem);
    }

    .contact-form-section{
        padding:52px 0 65px;
    }

    .form-row,
    .details-grid{
        grid-template-columns:1fr;
    }

    .contact-panel{
        padding:24px 18px;
        border-radius:14px;
    }

    .field{
        margin-bottom:18px;
    }


    .enquiry-links{
        display:none;
    }

    .form-copy > p{
        margin-bottom:0;
    }

    .form-layout{
        gap:26px;
    }

    .enquiry-links a{
        padding:15px 0;
    }

    .contact-details{
        padding:60px 0 68px;
    }

    .details-heading{
        margin-bottom:30px;
    }

    .contact-card{
        padding:25px 21px;
    }
}

@media (prefers-reduced-motion:reduce){
    .enquiry-links a,
    .submit-btn,
    .field input,
    .field select,
    .field textarea{
        transition:none;
    }

    .enquiry-links a:hover,
    .submit-btn:hover{
        transform:none;
    }
}
