/* LoveU Footer V1.1 — independent, four-column layout. Existing Header/01–07 unchanged.
   Footer text is NEVER smaller than 14px, including the copyright strip. */
.loveu-site .loveu-footer {
    --loveu-footer-blue: #102f65;
    color: #fff;
    background: var(--loveu-footer-blue);
    font-family: var(--bs-body-font-family, "Poppins", Arial, sans-serif);
    font-size: .9375rem;
    line-height: 1.7;
    position: relative;
    isolation: isolate;
}
.loveu-site .loveu-footer__inner { padding-top: clamp(3rem, 4.8vw, 4.75rem); }
.loveu-site .loveu-footer a { color: inherit; text-decoration: none; }
.loveu-site .loveu-footer a:hover,
.loveu-site .loveu-footer a:focus-visible { color: #d9e7fb; }
.loveu-site .loveu-footer__brand { max-width: 22rem; }
.loveu-site .loveu-footer__logo { display: inline-flex; min-height: 4rem; min-width: 7rem; align-items: center; justify-content: flex-start; color: #fff; }
.loveu-site .loveu-footer__logo img { display: block; width: auto; max-width: 10rem; max-height: 4.15rem; height: auto; object-fit: contain; }
.loveu-site .loveu-footer__logo-text { display: inline-block; padding: .3rem .5rem; border: 1px solid rgba(255,255,255,.7); font-size: 1.65rem; line-height: 1.25; font-weight: 800; letter-spacing: -.04em; }
.loveu-site .loveu-footer__description { color:#dce6f5; margin: 1.4rem 0 1.35rem; max-width: 30ch; font-size: .9375rem; line-height:1.85; overflow-wrap:anywhere; }
.loveu-site .loveu-footer__socials { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1.6rem; }
.loveu-site .loveu-footer__social { display: inline-flex; width: 2.15rem; height: 2.15rem; align-items: center; justify-content: center; transition: transform .2s, opacity .2s; }
.loveu-site .loveu-footer__social img { display: block; width: 1.5rem; height: 1.5rem; object-fit: contain; }
@media (hover:hover) { .loveu-site .loveu-footer__social:hover { transform: translateY(-2px); opacity: .85; } }
.loveu-site .loveu-footer__heading { margin: .4rem 0 1.65rem; font-size: 1.25rem; line-height: 1.45; font-weight: 600; color: #fff; }
.loveu-site .loveu-footer__nav ul { display: grid; grid-template-columns: minmax(0,1fr); gap: .85rem; padding: 0; margin: 0; list-style: none; }
.loveu-site .loveu-footer__nav li { min-width: 0; list-style: none; }
.loveu-site .loveu-footer__nav a { display: inline-block; font-size: .9375rem; line-height: 1.65; color: #dfe8f7; overflow-wrap: anywhere; }
.loveu-site .loveu-footer__contact { display: grid; gap: 1.05rem; }
.loveu-site .loveu-footer__contact-row { display: flex; align-items: flex-start; gap: .95rem; min-width: 0; color: #e4eaf4; }
.loveu-site .loveu-footer__contact-row > svg { flex: none; width: 1.25rem; height: 1.25rem; margin-top: .2rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.loveu-site .loveu-footer__contact-copy { display: flex; flex-direction: column; min-width: 0; gap: .25rem; font-size: .9375rem; line-height: 1.6; }
.loveu-site .loveu-footer__contact-copy strong { color:#fff; font-size:.9375rem; font-weight: 600; }
.loveu-site .loveu-footer__contact-copy :is(a,span) { color:#d6e2f5; overflow-wrap: anywhere; }
.loveu-site .loveu-footer__bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap: .85rem 1.75rem; margin-top: clamp(3rem,5vw,5rem); padding: 1.3rem 0; border-top: 1px solid rgba(255,255,255,.22); font-size: .875rem; line-height:1.7; color: #bdcce4; }
.loveu-site .loveu-footer__bottom a { color: #d5e0f2; }
.loveu-site .loveu-footer__quote-link { display:inline-flex; align-items:center; gap:.8rem; margin-top: 1.55rem; padding:.65rem 1rem; color:#fff; border:1px solid rgba(255,255,255,.46); border-radius: 2rem; font-size:.9375rem; line-height:1.5; font-weight:500; transition:border-color .2s; }
.loveu-site .loveu-footer__quote-link:hover,.loveu-site .loveu-footer__quote-link:focus-visible { border-color:#fff; color:#fff; }
@media (max-width:991.98px) {
    .loveu-site .loveu-footer__brand { max-width:24rem; }
    .loveu-site .loveu-footer__inner { padding-top:3.3rem; }
}
@media (max-width:575.98px) {
    .loveu-site .loveu-footer__heading { margin-bottom:1.15rem; }
    .loveu-site .loveu-footer__bottom { justify-content:center; text-align:center; margin-top:3rem; }
}
@media (prefers-reduced-motion:reduce) { .loveu-site .loveu-footer__social { transition:none; } }
/* Quote popup uses a page-specific namespace; legacy .first-modal styles still loaded.
   Compact height on laptops with native scroll within the modal body. */
.loveu-quote-modal { font-family: var(--bs-body-font-family,"Poppins",Arial,sans-serif); }
.loveu-quote-modal .modal-dialog { max-width: min(790px, calc(100% - 2rem)); margin-inline: auto; }
.loveu-quote-modal .modal-content { position: relative; border-radius: .85rem; border: 0; background: #fff; box-shadow: 0 22px 70px rgba(0,0,0,.2); overflow: hidden; }
.loveu-quote-modal .modal-body { padding: clamp(1.35rem, 2.7vw, 2.25rem); overflow-x: hidden; }
.loveu-quote-modal__close { position: absolute; top: 1.1rem; right: 1.15rem; z-index: 2; box-shadow: none; }
.loveu-quote-modal__eyebrow { display: block; margin-bottom: .38rem; color: #8496b2; font-size: .875rem; font-weight: 600; letter-spacing: .14em; }
.loveu-quote-modal h2 { margin: 0 .75rem .45rem 0; font-size: clamp(1.65rem,2.5vw,2.15rem); font-weight: 600; color: #0c2e63; letter-spacing: -.02em; line-height: 1.25; }
.loveu-quote-modal__intro { font-size: .875rem; color: #717b89; margin: 0 0 1.3rem; }
.loveu-quote-modal__product { display: flex; align-items: center; gap: 1rem; border: 1px solid #e8ebf0; border-radius: .5rem; padding: .55rem; margin: 0 0 1.1rem; font-size: .875rem; color: #253448; }
.loveu-quote-modal__product[hidden] { display: none; }
.loveu-quote-modal__product img { display: block; width: 3.25rem; height: 3.25rem; object-fit: cover; border-radius: .3rem; }
.loveu-quote-modal__form label { display: block; color: #344054; font-size: .875rem; font-weight: 500; margin-bottom: .4rem; }
.loveu-quote-modal__form label span { color: #cb504d; }
.loveu-quote-modal__form .form-control { border: 1px solid #e4e8ed; background: #f7f8fa; color: #1d2939; font-size: .875rem; border-radius: .3rem; min-height: 2.75rem; padding: .65rem .8rem; box-shadow: none; }
.loveu-quote-modal__form .form-control:focus { border-color: #294a7c; background: #fff; box-shadow: 0 0 0 .14rem rgba(16,47,101,.08); }
.loveu-quote-modal__form textarea.form-control { min-height: 6.5rem; resize: vertical; }
.loveu-quote-modal__form .invalid-feedback { font-size: .875rem; }
.loveu-quote-modal__errors { color: #a33c40; font-size: .875rem; line-height: 1.6; }
.loveu-quote-modal__errors > :empty { display: none; }
.loveu-quote-modal__errors > :not(:empty) { margin: 0 0 .3rem; }
.loveu-quote-modal__submit { width: 100%; border: 0; border-radius: 1.5rem; min-height: 3.05rem; display: flex; justify-content: center; align-items: center; gap: 1.1rem; padding: .8rem 1.25rem; background: #102f65; color: #fff; font-size: .9375rem; font-weight: 600; cursor: pointer; transition: background .2s; }
.loveu-quote-modal__submit:hover,.loveu-quote-modal__submit:focus-visible { background: #244f8e; color: #fff; }
.loveu-quote-modal__submit:disabled { cursor: wait; opacity: .7; }
@media (max-width: 575.98px) {
    .loveu-quote-modal .modal-dialog { max-width: calc(100% - 1rem); margin: .5rem auto; }
    .loveu-quote-modal .modal-body { padding: 1.25rem 1rem; }
    .loveu-quote-modal__intro { margin-bottom: .9rem; }
}
@media (prefers-reduced-motion: reduce) { .loveu-site .loveu-footer__social,.loveu-quote-modal__submit { transition: none; } }
.loveu-quote-modal .row.g-3 { --bs-gutter-y: .85rem; }
/* The already-finished LoveU sticky Header uses z-index:1400.
   Raise ONLY the quote-modal layer and its backdrop above that shared Header. */
body.loveu-site .loveu-quote-modal { z-index: 2100; }
body.loveu-site.modal-open .modal-backdrop { z-index: 2050; }
.loveu-quote-modal__submit[aria-busy="true"] { opacity: .75; cursor: wait; pointer-events: none; }

/* Minimum readable font sizes inside the Footer-owned quote modal. */
.loveu-quote-modal { font-size: .875rem; }
