/* ============================================================
   NearU - Homepage Hero CTA Modals (Register Interest + Book a Demo)
   UI aligned to the NearU design system (theme-tokens.css +
   components.css + Contact / Merchant-Login form patterns).
   Functionality, markup, IDs and JS are unchanged - this file
   only restyles. Consumes global tokens; declares NO :root.
   Every class is namespaced .nearu-modal* / .nearu-cal* / .nearu-slot*.
   ============================================================ */

/* Header icon tints (match the soft tinted circles used site-wide). */
.nearu-modal-icon-red   { color: var(--brand-orange); background: rgba(239, 162, 32, .14); }
.nearu-modal-icon-green { color: #3FA34D;              background: rgba(63, 163, 77, .12); }

/* ============================================================
   1 + 5. MODAL CONTAINER - white card, design-system radius + shadow
   ============================================================ */
.nearu-modal .nearu-modal-dialog { max-width: 640px; }

.nearu-modal .nearu-modal-content {
    background: var(--nearu-card-bg);          /* pure #FFFFFF */
    border: none;
    border-radius: var(--radius-panel);        /* 18px - same as page cards */
    box-shadow: 0 30px 80px rgba(26, 27, 46, .18);
    overflow: hidden;
}
.nearu-modal .nearu-modal-body {
    background: var(--nearu-card-bg);
    padding: clamp(28px, 3.4vw, 44px);
    position: relative;
}

/* ============================================================
   6. CLOSE BUTTON - top-right
   ============================================================ */
.nearu-modal .nearu-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 5;
    opacity: .55;
    transition: opacity .2s ease;
}
.nearu-modal .nearu-modal-close:hover { opacity: 1; }

/* ============================================================
   6. HEADER AREA - icon + title + description
   ============================================================ */
.nearu-modal-head {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
    padding-right: 34px;
}
.nearu-modal-icon {
    flex: 0 0 auto;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 30px;
}
.nearu-modal-title {
    font-family: var(--font-primary);
    font-weight: var(--fw-bold);
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    line-height: 1.2;
    color: var(--nearu-ink);
    margin: 0 0 6px;
}
.nearu-modal-sub {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.7;
    color: var(--nearu-muted);
    margin: 0;
    max-width: 460px;
}

/* ============================================================
   3. SECTION HEADINGS - whitespace rhythm
   ============================================================ */
.nearu-modal-section {
    font-family: var(--font-primary);
    font-weight: var(--fw-bold);
    font-size: 16px;
    color: var(--nearu-ink);
    margin: 0 0 18px;
}
.nearu-modal-section-spaced { margin-top: 30px; }
.nearu-modal-section-note {
    font-family: var(--font-body);
    font-weight: var(--fw-regular);
    font-size: 13px;
    color: var(--nearu-muted);
    margin-left: 8px;
}
.nearu-modal-hint {
    font-size: 12.5px;
    color: var(--nearu-muted);
    margin: -10px 0 16px;
}

/* ============================================================
   4. FORM FIELDS - identical to Contact / Merchant-Login inputs
   ============================================================ */
.nearu-field-label {
    display: block;
    font-size: 13.5px;
    font-weight: var(--fw-semibold);
    color: var(--nearu-ink);
    margin: 0 0 7px;
}
.nearu-req { color: var(--nearu-primary); }

.nearu-modal .nearu-input {
    width: 100%;
    border: 1px solid var(--nearu-border);
    border-radius: var(--radius-inner);
    padding: 11px 14px;
    font-size: 14px;
    font-family: var(--font-body);
    color: var(--nearu-ink);
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.nearu-modal .nearu-input::placeholder { color: #9a9aa6; }
.nearu-modal .nearu-input:focus {
    outline: none;
    border-color: var(--nearu-primary);
    box-shadow: 0 0 0 3px rgba(181, 0, 86, .10);
}
.nearu-modal .nearu-select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%235C5C6B' d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 38px;
    cursor: pointer;
}
.nearu-modal .nearu-textarea { resize: vertical; min-height: 110px; }

/* Address field with trailing location icon */
.nearu-input-wrap { position: relative; }
.nearu-input-icon { padding-right: 42px; }
.nearu-input-trail {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--nearu-muted);
    font-size: 15px;
    pointer-events: none;
}

/* Phone group (+65) */
.nearu-phone-group { display: flex; }
.nearu-phone-cc {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--nearu-border);
    border-right: none;
    border-radius: var(--radius-inner) 0 0 var(--radius-inner);
    padding: 0 12px;
    font-size: 14px;
    font-weight: var(--fw-semibold);
    color: var(--nearu-ink);
    background: var(--nearu-tile);
    white-space: nowrap;
}
.nearu-flag { font-size: 15px; line-height: 1; }
.nearu-phone-input { border-radius: 0 var(--radius-inner) var(--radius-inner) 0; }

/* ============================================================
   9. CHECKBOXES - clean grid, comfortable spacing
   ============================================================ */
.nearu-check-grid { margin-top: 6px; }
.nearu-check {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--nearu-ink);
    cursor: pointer;
    margin: 0;
    padding: 7px 0;
}
.nearu-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--brand-orange);
    flex: 0 0 auto;
    cursor: pointer;
}
.nearu-consent {
    margin-top: 26px;
    margin-bottom: 2px;
    align-items: flex-start;
}
.nearu-consent input[type="checkbox"] { margin-top: 1px; }

/* ============================================================
   7. SUBMIT - exact NearU primary gradient button
   ============================================================ */
.nearu-modal .nearu-modal-submit {
    width: 100%;
    background: var(--brand-gradient);
    color: #fff;
    border: none;
    border-radius: var(--radius-inner);
    font-family: var(--font-primary);
    font-weight: var(--fw-bold);
    font-size: 16px;
    padding: 15px 22px;
    margin-top: 26px;
    transition: filter .2s ease, transform .2s ease;
}
.nearu-modal .nearu-modal-submit:hover {
    filter: brightness(.96);
    transform: translateY(-1px);
    color: #fff;
}

/* Footer privacy note */
.nearu-modal-foot {
    text-align: center;
    font-size: 12.5px;
    color: var(--nearu-muted);
    margin: 18px 0 0;
}
.nearu-modal-foot i { margin-right: 4px; }

/* ============================================================
   8. CALENDAR + TIME SLOTS - NearU colours + typography
   ============================================================ */
.nearu-cal {
    border: 1px solid var(--nearu-border);
    border-radius: var(--radius-card);
    padding: 16px;
    background: #fff;
}
.nearu-cal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}
.nearu-cal-month {
    font-family: var(--font-primary);
    font-weight: var(--fw-bold);
    font-size: 14px;
    color: var(--nearu-ink);
}
.nearu-cal-nav {
    background: none;
    border: none;
    color: var(--nearu-muted);
    font-size: 15px;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 6px;
    transition: color .2s ease, background .2s ease;
}
.nearu-cal-nav:hover { color: var(--nearu-primary); background: var(--nearu-tile); }
.nearu-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
    text-align: center;
}
.nearu-cal-dow span {
    font-size: 10px;
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: .3px;
    color: var(--nearu-muted);
    padding: 6px 0;
}
.nearu-cal-day {
    aspect-ratio: 1;
    border: none;
    background: none;
    font-family: var(--font-body);
    font-size: 12.5px;
    color: var(--nearu-ink);
    border-radius: 50%;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.nearu-cal-day:hover { background: rgba(181, 0, 86, .08); color: var(--nearu-primary); }
.nearu-cal-day.is-selected {
    background: var(--brand-red);
    color: #fff;
    font-weight: var(--fw-bold);
}
.nearu-cal-empty { aspect-ratio: 1; }

.nearu-slots-title {
    font-family: var(--font-primary);
    font-size: 14px;
    font-weight: var(--fw-bold);
    color: var(--nearu-ink);
    margin: 0 0 4px;
}
.nearu-slots-date { font-size: 12.5px; color: var(--nearu-muted); margin: 0 0 16px; }
.nearu-slots {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.nearu-slot {
    border: 1px solid var(--nearu-border);
    background: #fff;
    border-radius: var(--radius-inner);
    padding: 11px 8px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: var(--fw-semibold);
    color: var(--nearu-ink);
    cursor: pointer;
    transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.nearu-slot:hover { border-color: var(--nearu-primary); color: var(--nearu-primary); }
.nearu-slot.is-selected {
    border-color: var(--nearu-primary);
    color: var(--nearu-primary);
    background: rgba(181, 0, 86, .05);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 575.98px) {
    .nearu-modal .nearu-modal-body { padding: 24px 18px; }
    .nearu-modal-head { gap: 14px; padding-right: 30px; margin-bottom: 24px; }
    .nearu-modal-icon { width: 58px; height: 58px; font-size: 25px; }
    .nearu-slots { grid-template-columns: 1fr 1fr; }
}
