/**
 * Le Belle Arti — Request a Quote page (/request-a-quote/)
 *
 * Single-product quote-request flow. The multi-item /quote-list/ flow is
 * styled by quote-list.css and is independent of this stylesheet.
 *
 * Class prefix: lba-request-quote-  (page-specific)
 * Form-field selectors (.lba-form-field, .lba-form-field--honeypot) mirror
 * the contact form treatment from contact.css for visual consistency.
 */

/* Reset the .site-main top padding inherited from main.css so the hero sits
   flush below the header. (Same approach quote-list.css takes.) */
main.site-main.lba-request-quote-page {
    padding-top: 0;
}

.lba-request-quote-page {
    font-family: var(--lba-font-primary);
    color: var(--lba-black);
    background: var(--lba-white);
}

/* ----- Hero ----- */
.lba-request-quote-hero {
    padding: clamp(40px, 8vw, 96px) var(--lba-space-lg) var(--lba-space-2xl);
    text-align: center;
    border-bottom: 1px solid var(--lba-gray-200);
}

.lba-request-quote-hero__title {
    font-family: var(--lba-font-primary);
    font-weight: 300;
    font-size: clamp(2rem, 5vw, 3.25rem);
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin: 0 auto var(--lba-space-md);
    max-width: 780px;
}

.lba-request-quote-hero__trade {
    font-size: var(--lba-font-size-base);
    color: var(--lba-gray-700);
    margin: 0;
}

.lba-request-quote-hero__trade a {
    color: var(--lba-black);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.lba-request-quote-hero__trade a:hover {
    text-decoration-thickness: 2px;
}

/* ----- Two-column layout ----- */
.lba-request-quote-layout {
    display: grid;
    grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
    gap: 64px;
    max-width: var(--lba-container-max);
    margin: 0 auto;
    padding: var(--lba-space-3xl) var(--lba-space-lg);
    align-items: start;
}

@media (max-width: 1024px) {
    .lba-request-quote-layout {
        grid-template-columns: 1fr;
        gap: var(--lba-space-2xl);
        padding: var(--lba-space-2xl) var(--lba-space-md);
    }
}

/* ----- Product summary card (left, sticky on desktop) ----- */
.lba-request-quote-summary {
    background: var(--lba-white);
    border: 1px solid var(--lba-gray-200);
    padding: var(--lba-space-xl);
    position: sticky;
    top: calc(80px + var(--lba-space-lg));
}

@media (max-width: 1024px) {
    .lba-request-quote-summary {
        position: static;
    }
}

.lba-request-quote-summary__media {
    aspect-ratio: 1 / 1;
    background: var(--lba-gray-100);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-bottom: var(--lba-space-lg);
}

.lba-request-quote-summary__media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.lba-request-quote-summary__media--placeholder {
    background: var(--lba-gray-100);
}

.lba-request-quote-summary__eyebrow {
    font-family: var(--lba-font-secondary);
    font-size: var(--lba-font-size-xs);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--lba-gray-500);
    margin: 0 0 var(--lba-space-sm);
}

.lba-request-quote-summary__brand {
    font-family: var(--lba-font-secondary);
    font-size: var(--lba-font-size-sm);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--lba-gray-700);
    margin: 0 0 var(--lba-space-xs);
    font-weight: 500;
}

.lba-request-quote-summary__name {
    font-size: var(--lba-font-size-xl);
    line-height: 1.25;
    color: var(--lba-black);
    margin: 0 0 var(--lba-space-md);
    font-weight: 500;
}

.lba-request-quote-summary__placeholder {
    font-size: var(--lba-font-size-sm);
    color: var(--lba-gray-700);
    line-height: 1.5;
    margin: 0;
}

.lba-request-quote-summary__link {
    display: inline-block;
    font-size: var(--lba-font-size-sm);
    color: var(--lba-black);
    text-decoration: underline;
    text-underline-offset: 3px;
    margin-top: var(--lba-space-sm);
}

.lba-request-quote-summary__link:hover {
    text-decoration-thickness: 2px;
}

/* ----- Form (right) ----- */
.lba-request-quote-form-wrap {
    min-width: 0;
}

.lba-quote-form {
    display: flex;
    flex-direction: column;
    gap: var(--lba-space-lg);
}

/* Form-field treatment mirrors contact.css — kept local so the request-quote
   page does not pull in the entire contact stylesheet. */
.lba-quote-form .lba-form-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lba-quote-form .lba-form-field label {
    font-size: var(--lba-font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 600;
    color: var(--lba-black);
}

.lba-quote-form .lba-form-field__req {
    color: var(--lba-accent, #c00);
    margin-left: 2px;
}

.lba-quote-form .lba-form-field input[type="text"],
.lba-quote-form .lba-form-field input[type="email"],
.lba-quote-form .lba-form-field input[type="tel"],
.lba-quote-form .lba-form-field input[type="number"],
.lba-quote-form .lba-form-field select,
.lba-quote-form .lba-form-field textarea {
    width: 100%;
    padding: 12px 14px;
    font-family: var(--lba-font-secondary);
    font-size: var(--lba-font-size-base);
    color: var(--lba-black);
    background: var(--lba-white);
    border: 1px solid var(--lba-gray-300);
    border-radius: 0;
    transition: border-color 0.2s ease;
}

.lba-quote-form .lba-form-field textarea {
    resize: vertical;
    min-height: 120px;
    line-height: 1.5;
}

.lba-quote-form .lba-form-field input:focus,
.lba-quote-form .lba-form-field select:focus,
.lba-quote-form .lba-form-field textarea:focus {
    outline: none;
    border-color: var(--lba-black);
}

.lba-quote-form .lba-form-field.has-error input,
.lba-quote-form .lba-form-field.has-error select,
.lba-quote-form .lba-form-field.has-error textarea {
    border-color: var(--lba-accent, #c00);
}

.lba-quote-form .lba-form-field__error {
    min-height: 1em;
    font-size: var(--lba-font-size-xs);
    color: var(--lba-accent, #c00);
    margin: 0;
}

/* Honeypot — off-screen, present for bots. */
.lba-quote-form .lba-form-field--honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Submit button — full-width, matches site button treatment. */
.lba-quote-form__actions {
    margin-top: var(--lba-space-sm);
}

.lba-quote-form__submit {
    display: block;
    width: 100%;
    padding: 16px 32px;
    font-family: var(--lba-font-primary);
    font-size: var(--lba-font-size-sm);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--lba-white);
    background: var(--lba-black);
    border: 1px solid var(--lba-black);
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}

.lba-quote-form__submit:hover {
    background: var(--lba-white);
    color: var(--lba-black);
}

.lba-quote-form__submit[aria-busy="true"] {
    opacity: 0.6;
    cursor: progress;
}

.lba-quote-form__global-error {
    min-height: 1em;
    color: var(--lba-accent, #c00);
    text-align: center;
    font-size: var(--lba-font-size-sm);
    margin: 0;
}

/* ----- Confirmation (replaces the form on successful submit) ----- */
.lba-quote-form__confirmation {
    padding: var(--lba-space-2xl);
    background: var(--lba-gray-100);
    text-align: center;
    border: 1px solid var(--lba-gray-200);
}

.lba-quote-form__confirmation-title {
    font-family: var(--lba-font-primary);
    font-size: var(--lba-font-size-xl);
    font-weight: 500;
    color: var(--lba-black);
    margin: 0 0 var(--lba-space-sm);
}

.lba-quote-form__confirmation-body {
    color: var(--lba-gray-700);
    margin: 0 0 var(--lba-space-sm);
    line-height: 1.6;
}

.lba-quote-form__confirmation-reference {
    display: inline-block;
    font-family: var(--lba-font-secondary);
    font-size: var(--lba-font-size-sm);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--lba-black);
    padding: 6px 12px;
    border: 1px solid var(--lba-gray-300);
    margin-top: var(--lba-space-sm);
}
