/* ===========================================================================
   PAGE — CONTACT & ENQUIRIES
   =========================================================================== */

/* .page-head lives in style.css (shared across standalone pages) */

.contact { padding-block: clamp(3rem, 6vw, 5rem); }

.contact__grid {
    display: grid;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

/* ---------------------------------------------------------------------------
   Enquiry form
   --------------------------------------------------------------------------- */
.contact__form-title { color: var(--navy); margin-bottom: 1.5rem; }

.enquiry { display: grid; gap: 1.125rem; }

.enquiry__row { display: grid; gap: 1.125rem; }

.field { display: flex; flex-direction: column; gap: 0.4375rem; }

.field__label { color: var(--blue-d); }

.field__input {
    width: 100%;
    padding: 0.875rem 1rem;
    background: var(--pale);
    color: var(--navy);
    font-family: var(--font-ui);
    font-size: 1rem;
    font-weight: 500;
    border: 2px solid var(--steel);
    border-radius: var(--r-sm);
    transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}

.field__input:focus {
    outline: none;
    border-color: var(--turq);
    box-shadow: 0 0 0 4px rgba(56, 225, 197, 0.25);
}

.field__input.is-error { border-color: var(--coral); }

.field__select {
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23093E62' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 12px;
    padding-right: 2.5rem;
}

.field__textarea { resize: vertical; min-height: 130px; line-height: 1.6; }

.field__err {
    font-family: var(--font-ui);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--coral);
}

.enquiry__submit { justify-self: start; margin-top: 0.25rem; }

/* ---------------------------------------------------------------------------
   Success panel
   --------------------------------------------------------------------------- */
.contact__success {
    padding: clamp(1.75rem, 4vw, 2.75rem);
    background: rgba(56, 225, 197, 0.1);
    border: 1px solid rgba(27, 191, 164, 0.35);
    border-radius: var(--r-lg);
}

.contact__success svg { width: 46px; height: 46px; color: var(--turq-d); margin-bottom: 1rem; }

.contact__success .h3 { color: var(--navy); margin-bottom: 0.75rem; }

.contact__success p { color: var(--grey-d); max-width: 46ch; margin-bottom: 1.5rem; }

/* Booking recap on the confirmation panel */
.contact__summary {
    display: grid;
    gap: 0;
    max-width: 440px;
    margin: 0 0 1.5rem;
    padding: 0.25rem 1rem;
    background: var(--white);
    border-radius: var(--r);
}

.contact__summary div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.625rem 0;
    border-bottom: 1px solid var(--pale-2);
    font-family: var(--font-ui);
    font-size: 0.9375rem;
}

.contact__summary div:last-child { border-bottom: 0; }
.contact__summary dt { color: var(--grey); font-weight: 600; }
.contact__summary dd { margin: 0; color: var(--navy); font-weight: 700; text-align: right; }

/* Adults + kids share one half of the row */
.enquiry__row--tight { grid-template-columns: 1fr 1fr; gap: 0.75rem; }

/* ---------------------------------------------------------------------------
   Contact info panel
   --------------------------------------------------------------------------- */
.contact__info {
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: var(--pale);
    border-radius: var(--r-lg);
}

.contact__info-title { color: var(--navy); margin-bottom: 1.5rem; }

.contact__line {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.875rem 0;
    border-bottom: 2px solid var(--pale-2);
    transition: color 0.3s var(--ease);
}

.contact__line:hover { color: var(--turq-d); }

.contact__line-label {
    font-family: var(--font-ui);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--grey);
}

.contact__line-value {
    font-family: var(--font-ui);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--navy);
}

.contact__where { padding-top: 1.125rem; }

.contact__address {
    font-family: var(--font-ui);
    font-size: 1.0625rem;
    font-weight: 500;
    font-style: normal;
    line-height: 1.7;
    color: var(--navy);
    margin: 0.375rem 0 0.625rem;
}

/* Dark-on-pale variant of the social buttons for this light panel */
.social__btn--dark {
    background: var(--white);
    border-color: var(--steel);
    color: var(--navy);
}

.social__btn--dark:hover { background: var(--turq); color: var(--navy); }

@media (min-width: 560px) {
    .enquiry__row { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1000px) {
    .contact__grid { grid-template-columns: 1.4fr 1fr; gap: clamp(2.5rem, 4vw, 4.5rem); }
}
