/* ============================================================
   Lunelle — VIP in-home demo booking page
   Builds on styles.css + checkout.css; no new colours.
   ============================================================ */

.vip-intro { max-width: 46rem; margin: 0 0 clamp(1.75rem, 4vw, 2.5rem); }
.vip-title { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.05; letter-spacing: -0.02em; margin-top: 0.5rem; }
.vip-title em { font-style: italic; color: var(--accent); }
.vip-lede { color: var(--muted); font-size: clamp(1.02rem, 1.6vw, 1.18rem); line-height: 1.7; margin-top: 1rem; max-width: 44ch; }
.vip-lede strong { color: var(--ink); font-weight: 600; }

.vip-points { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; gap: 0.6rem; }
.vip-points li { display: flex; align-items: flex-start; gap: 0.65rem; font-size: 0.95rem; color: var(--ink); line-height: 1.5; }
.vip-tick { flex: none; width: 1.15rem; height: 1.15rem; margin-top: 0.12rem; border-radius: 50%; background: var(--sage-soft); position: relative; }
.vip-tick::after { content: ""; position: absolute; left: 0.36rem; top: 0.2rem; width: 0.26rem; height: 0.5rem; border: solid var(--accent-strong); border-width: 0 2px 2px 0; transform: rotate(45deg); }

/* appointment + optional fields */
.field-opt { color: var(--muted); font-weight: 400; }
.vip-row-2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 32rem) { .vip-row-2 { grid-template-columns: 1fr; } }

.checkout-form textarea {
  width: 100%; font-family: var(--font-body); font-size: 1rem; color: var(--ink);
  background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--radius);
  padding: 0.7rem 0.85rem; line-height: 1.5; resize: vertical; min-height: 3rem;
  transition: border-color var(--t), box-shadow var(--t);
}
.checkout-form textarea:focus { outline: none; border-color: var(--accent-strong); box-shadow: 0 0 0 3px var(--accent-soft); }
.checkout-form textarea::placeholder { color: color-mix(in srgb, var(--muted) 60%, transparent); }
.checkout-form input[type="date"] { cursor: pointer; }

/* summary */
.vip-summary-eyebrow { margin: 0 0 0.4rem; }
.vip-summary h2 { margin-bottom: 0.35rem; }
.vip-call { margin: 0.6rem 0 0; font-size: 0.85rem; color: var(--muted); }
.vip-call a { color: var(--accent-strong); font-weight: 600; text-decoration: none; }
.vip-call a:hover { text-decoration: underline; }
.vip-summary-price { font-family: var(--font-display); font-size: 2rem; color: var(--ink); margin: 0 0 1rem; }
.vip-included { list-style: none; margin: 0; padding: 1rem 0 0; border-top: 1px solid var(--line); display: grid; gap: 0.6rem; }
.vip-included li { position: relative; padding-left: 1.4rem; font-size: 0.9rem; color: var(--ink); line-height: 1.45; }
.vip-included li::before { content: ""; position: absolute; left: 0.1rem; top: 0.34rem; width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--accent); }

/* the pitch reads first on mobile, sits above the form on desktop too */
.vip-page .checkout-done { max-width: 34rem; }
