/* -------------------------------------------------------------------------- */
/* Project Enquiry Styling (Minimal and Component-Specific)                   */
/* -------------------------------------------------------------------------- */
/* This file contains ONLY styles required for the enquiry form, config panels,
   visualizer, and essential top-level components (like the Hero section) 
   that must override or supplement the main site CSS.
*/

/* PRIMARY COLOUR VARIABLES (Required for component styling) */
:root {
    --pbuk-blue-primary: #17538A; /* Dark Primary Blue (Retained for possible hover/accents) */
    --pbuk-blue-secondary: #79D3F6; /* FIX: Light Blue for buttons and accents/lines */
    --pbuk-blue-dark-cta: #0C3C67; /* A deeper, darker CTA color (unused now) */
    --pbuk-text-dark: #333; /* Standard site text color (used for headings/titles) */
    --pbuk-background-light: #f4f7f6; /* Used for subtle contrast in components */
    --pbuk-panel-bg: #ffffff;
    --pbuk-border-color: #e0e0e0;
}


/* --- SITE-WIDE CONSISTENCY STYLES (Minimal restoration for Hero/Header) --- */
#hero {
    background: url('https://postboxesukltd.co.uk/images/contactusheader.png') no-repeat center center; 
    background-size: cover;
    position: relative;
    padding: 100px 0; 
    overflow: hidden; 
}

#hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5); /* Dark overlay */
    z-index: 1;
}

#hero .wrapper, #contact-page-intro {
    position: relative;
    z-index: 2;
}

#contact-page-intro h1 { 
    font-size: 3em;
    color: white;
    text-align: center;
}

.header-description-container {
    text-align: center;
}

.header-description-container p {
    font-size: 1em; 
    color: white; 
    line-height: 1.2;
    font-weight: 500;
    margin-left: auto;
    margin-right: auto;
    max-width: 90%; 
}
/* --- END HERO STYLES --- */


/* --- CONTACT PAGE FORM/CONFIG STYLES --- */

/* FIX 1: Add margin-top to separate form content from the hero section */
.contact-content-row {
    margin-top: 40px; /* Separates the form panel from the hero element above */
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 40px;
}

/* --- PANEL STYLING (The core fix for professional look) --- */

.form-panel-container, 
.config-panel-container,
.bank-config-section {
    background-color: var(--pbuk-panel-bg);
    padding: 30px; 
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--pbuk-border-color);
}

.bank-config-section {
    margin-top: 25px; 
    padding: 20px;
}

/* Column Padding Adjustment (Using standard 15px gutter to manage grid gap) */
.enquiry-column-left {
    padding-right: 15px; 
    padding-left: 0;
}
.enquiry-column-right {
    padding-left: 15px; 
    padding-right: 0;
}


/* FIX 2: HEADERS AND TITLES - Revert colors to standard dark text */
.form-panel-title {
    color: var(--pbuk-text-dark); /* Changed from blue to standard text color */
    font-size: 1.8em;
    font-weight: 700;
    margin-bottom: 5px;
    padding-bottom: 5px;
    border-bottom: 2px solid var(--pbuk-blue-secondary); /* FIX: Uses the new light blue for the accent line */
    display: inline-block;
}

.form-intro {
    color: #666;
    margin-bottom: 25px;
    font-size: 0.95em;
}

.section-title {
    color: var(--pbuk-text-dark); /* Changed from blue to standard text color */
    font-size: 1.3em;
    font-weight: 600;
    border-bottom: 1px solid var(--pbuk-border-color);
    padding-bottom: 8px;
    margin-bottom: 15px;
    margin-top: 0;
}

.bank-header {
    color: var(--pbuk-text-dark); /* Use dark text variable */
    font-size: 1.2em;
    font-weight: 600;
    margin: 0 0 10px 0;
}

hr {
    border: 0;
    border-top: 1px solid #ddd;
    margin: 20px 0;
}
.config-separator {
    margin: 30px 0;
}

/* -------------------------------------------------------------------------- */
/* FORM ELEMENTS                                */
/* -------------------------------------------------------------------------- */

label {
    font-weight: 600;
    display: block;
    margin-bottom: 5px;
    color: #444;
    font-size: 0.9em;
}

#contact-form .row {
    margin-bottom: 15px; 
}

input[type="text"], 
input[type="email"], 
input[type="tel"], 
input[type="date"], 
input[type="number"],
input[type="file"],
textarea, 
select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #dcdcdc;
    border-radius: 6px;
    box-sizing: border-box;
    margin-bottom: 5px; 
    background-color: #fcfcfc;
    transition: border-color 0.3s, box-shadow 0.3s;
    font-size: 1em;
}

/* Improved Focus State (Prevents Clipping) */
input:focus, select:focus, textarea:focus {
    border-color: var(--pbuk-blue-secondary);
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.2), inset 0 0 0 1px var(--pbuk-blue-secondary);
    outline: none;
    background-color: #fff;
}


/* Buttons */
.btn {
    display: inline-block;
    padding: 12px 25px;
    font-size: 1em;
    font-weight: 700;
    text-align: center;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.3s;
    text-transform: uppercase;
}

/* FIX 3: Adjust button color to Light Blue background and Dark Gray hover */
.btn-solid-fill {
    background-color: var(--pbuk-blue-secondary); /* FIX: Light Blue: #79D3F6 */
    color: white;
}

.btn-solid-fill:hover {
    background-color: #444; /* Dark Gray hover remains */
}

.form-submit {
    text-align: right;
    margin-top: 20px;
    padding-bottom: 0;
    padding-top: 10px;
}


/* -------------------------------------------------------------------------- */
/* MESSAGE ALERTS                                */
/* -------------------------------------------------------------------------- */

#status-message {
    padding: 15px;
    margin-bottom: 25px;
    border-radius: 8px;
    font-weight: 600;
    border: 1px solid transparent;
}

.success-alert {
    background-color: #e6ffed; 
    color: #116e25; 
    border-color: #b7e8c3;
}

.error-alert {
    background-color: #ffe6e6; 
    color: #a30000; 
    border-color: #ffb7b7;
}


/* -------------------------------------------------------------------------- */
/* RIGHT COLUMN VISUALIZER AND NOTES                 */
/* -------------------------------------------------------------------------- */

/* Visualizer Container */
#mailbox-visualizer {
    min-height: 250px;
    background-color: var(--pbuk-background-light); 
    border: 2px dashed #ccc; 
    border-radius: 8px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #777;
    font-style: italic;
    font-size: 0.9em;
    overflow: hidden; 
}

/* Mailbox Grid Container (Set up for dynamic content from JS) */
.mailbox-grid-container {
    display: grid;
    gap: 1px; 
    margin: 10px auto;
    width: 100%;
    height: 100%;
}

.mailbox-cell {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid rgba(0,0,0,0.15); 
    background-color: #ccc; 
    font-size: 0; 
}

/* Mailbox Finish Styles (Simulated colours) */
.mailbox-cell.finish-standard-ral {
    background-color: #c9d6de; 
}
.mailbox-cell.finish-any-other-ral {
    background-color: #a5c2d3; 
}
.mailbox-cell.finish-satin-stainless-steel {
    background: linear-gradient(135deg, #ccc 0%, #eee 50%, #ccc 100%);
    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);
}

/* Detail Image Overlay */
.mailbox-detail-img {
    max-width: 80%;
    max-height: 80%;
    opacity: 0.8;
}

/* Contextual Notes Panel Styling */
#contextual-notes {
    padding: 15px;
    background-color: #fcfcff;
    border: 1px solid var(--pbuk-border-color);
    border-radius: 6px;
    font-size: 0.9em;
    line-height: 1.5;
    color: #555;
}
#contextual-notes p {
    margin: 0;
}

/* Project Summary */
#project-summary-details p {
    margin: 5px 0;
    font-size: 0.95em;
    color: #555;
    word-break: break-word; 
}
#project-summary-details p strong {
    color: var(--pbuk-text-dark);
}

/* -------------------------------------------------------------------------- */
/* RESPONSIVE ADJUSTMENTS (for columns/panels ONLY)             */
/* -------------------------------------------------------------------------- */

@media screen and (max-width: 767px) {
    /* Ensure columns stack and take full width */
    .enquiry-column-left, .enquiry-column-right {
        padding-left: 0;
        padding-right: 0;
        width: 100%;
        float: none;
        margin-bottom: 20px;
    }
    /* Ensure inner panels don't have excessive padding on small screens */
    .form-panel-container, .config-panel-container, .bank-config-section {
        padding: 20px;
        border-radius: 8px;
    }

    .form-panel-title {
        font-size: 1.5em;
    }
    
    /* Center the submit button */
    .form-submit {
        text-align: center;
    }
    
    /* Full width buttons on mobile */
    .btn-solid-fill {
        width: 100%;
    }
}

/* Container and Wrapper Fixes */
#contact-page-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

/* Flexbox Layout for the Two Columns */
.contact-content-row {
    display: flex;
    flex-wrap: wrap;
    gap: 30px; /* Space between form and summary */
    align-items: flex-start;
}

.enquiry-column-left {
    flex: 1 1 600px; /* Grows, but stays at least 600px if possible */
}

.enquiry-column-right {
    flex: 0 0 400px; /* Keeps the summary panel a consistent width */
    position: sticky;
    top: 20px; /* Keeps summary visible while scrolling */
}

/* Responsive stack for tablets/mobile */
@media (max-width: 1024px) {
    .enquiry-column-right {
        position: static;
        flex: 1 1 100%;
    }
}

/* Form Styling Refinements */
.bank-config-section {
    background: #f9f9f9;
    border-radius: 8px;
    margin-bottom: 25px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    border: 1px solid #e0e0e0 !important;
}

.bank-header {
    color: #004a99; /* Professional blue to match your brand */
    margin-bottom: 15px;
    font-weight: 600;
}

input, select, textarea {
    width: 100%;
    padding: 10px;
    margin-top: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box; /* Crucial for preventing overflow */
}

.config-separator {
    border: 0;
    height: 1px;
    background: #ddd;
    margin: 30px 0;
}

/* Visualizer Placeholder */
.bank-visualizer-canvas {
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-style: italic;
    color: #666;
    border-radius: 4px;
}