/* lc-wedding-inquiry.css — "Request a quote" button + modal */
:root { --lcq-accent:#2f6f57; --lcq-ink:#1d2721; --lcq-line:#dfe3df; --lcq-muted:#6b7772; }

/* Anchored RIGHT, not left. Every vendor page sets its copy in a left-aligned column,
   so a pill pinned bottom-left landed on top of the opening paragraph and covered the
   middle of a sentence — at 414 it ate the words "events in the Sav" out of "an A La
   Carte Floral Program for events in the Savannah area". The right gutter is empty at
   desktop widths, and bottom-right is where a floating action sits anyway.
   bottom:78px clears the mobile bottom bar and is why that value is not 18. */
.lc-rfq-btn {
  position:fixed; right:18px; bottom:78px; z-index:1200;
  background:var(--lcq-accent); color:#fff; border:none; cursor:pointer;
  padding:12px 20px; border-radius:999px; font-size:14px; font-weight:700;
  box-shadow:0 4px 16px rgba(0,0,0,.24);
}
.lc-rfq-btn:hover { filter:brightness(1.06); }

.lc-rfq-backdrop { position:fixed; inset:0; z-index:1400; background:rgba(0,0,0,.5); opacity:0; pointer-events:none; transition:opacity .2s; }
.lc-rfq-modal {
  position:fixed; z-index:1410; left:50%; top:50%; transform:translate(-50%,-46%);
  width:460px; max-width:94vw; max-height:92vh; overflow:auto;
  background:#fff; color:var(--lcq-ink); border-radius:16px; padding:26px 26px 24px;
  box-shadow:0 20px 60px rgba(0,0,0,.3); opacity:0; pointer-events:none; transition:opacity .2s, transform .2s;
}
body.lc-rfq-open .lc-rfq-backdrop { opacity:1; pointer-events:auto; }
body.lc-rfq-open .lc-rfq-modal { opacity:1; pointer-events:auto; transform:translate(-50%,-50%); }

.lc-rfq-close { position:absolute; top:12px; right:14px; background:none; border:none; font-size:28px; line-height:1; color:#9aa39e; cursor:pointer; }
.lc-rfq-title { margin:0 0 2px; font-size:22px; }
.lc-rfq-sub { margin:0 0 18px; color:var(--lcq-muted); font-size:14px; }

.lc-rfq-row { margin-bottom:14px; }
.lc-rfq-2 { display:flex; gap:12px; }
.lc-rfq-2 label { flex:1; }
.lc-rfq-form label { display:block; font-size:12.5px; text-transform:uppercase; letter-spacing:.03em; color:var(--lcq-muted); }
.lc-rfq-form input, .lc-rfq-form textarea {
  width:100%; box-sizing:border-box; margin-top:5px; padding:10px 12px;
  border:1px solid var(--lcq-line); border-radius:9px; font-size:15px; color:var(--lcq-ink); font-family:inherit;
}
.lc-rfq-form input:focus, .lc-rfq-form textarea:focus { outline:none; border-color:var(--lcq-accent); }
.lc-rfq-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
/* The consent control.
   Every rule here that looks redundant is an override: `.lc-rfq-form label` above sets the
   FIELD label vocabulary — 12.5px, uppercase, letter-spaced, muted — which is right for the word
   "Email" and wrong for a three-line sentence somebody has to read and agree to. Left inherited,
   the disclosure would render as uppercase grey micro-type, which is the "grey afterthought"
   treatment this control specifically must not have. So: sentence case, the modal's prose size
   (14px, matching .lc-rfq-sub), and the modal's ink (#1d2721 — 15.4:1 on white, against the
   muted grey's 4.7:1).
   The box and the sentence are one <label>, so tapping anywhere on the sentence toggles it;
   align-items:flex-start keeps the box on the first line rather than centred against a wrapped
   paragraph, and accent-color draws the tick in the modal's own green instead of the browser's
   default blue arriving from outside the palette.
   The selector is scoped to `.lc-rfq-form` for specificity, not neatness: `.lc-rfq-form label`
   is (0,1,1) and a lone class is (0,1,0), so a bare `.lc-rfq-consent` LOSES and the disclosure
   renders as uppercase muted micro-type with the box jammed against the first word. Caught in a
   screenshot of the deployed page; both the markup and the rules read correctly in review. */
.lc-rfq-form .lc-rfq-consent {
  display:flex; align-items:flex-start; gap:10px; margin:0 0 14px;
  font-size:14px; line-height:1.5; text-transform:none; letter-spacing:0;
  color:var(--lcq-ink); cursor:pointer;
}
.lc-rfq-form .lc-rfq-consent input { flex:none; width:17px; height:17px; margin:2px 0 0; accent-color:var(--lcq-accent); cursor:pointer; }
.lc-rfq-form .lc-rfq-consent input:focus-visible { outline:2px solid var(--lcq-accent); outline-offset:2px; }
.lc-rfq-err { color:#c0392b; font-size:13.5px; margin-bottom:10px; }
.lc-rfq-submit { width:100%; background:var(--lcq-accent); color:#fff; border:none; border-radius:10px; padding:13px; font-size:15px; font-weight:700; cursor:pointer; }
.lc-rfq-submit:hover { filter:brightness(1.06); }
.lc-rfq-submit:disabled { opacity:.6; cursor:default; }

.lc-rfq-thanks { text-align:center; padding:16px 0 6px; }
.lc-rfq-thanks h3 { font-size:22px; margin:0 0 8px; }
.lc-rfq-thanks p { color:var(--lcq-muted); margin:0 0 18px; }
.lc-rfq-done { background:var(--lcq-accent); color:#fff; border:none; border-radius:10px; padding:11px 26px; font-weight:700; cursor:pointer; }
