:root {
    --brand: #e0475b;
    --brand-dark: #c23447;
    --brand-soft: #fdecef;
    --ink: #1f2433;
    --muted: #5f6577;
    --line: #ebe7ea;
    --cream: #fff8f4;
    --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --bs-body-color: var(--ink);
    --bs-link-color-rgb: 194, 52, 71;
    --bs-link-hover-color-rgb: 160, 36, 54;
}

body { background: #fff; }
h1, h2, h3, h4, h5, .navbar-brand, .footer-brand { font-family: 'Poppins', var(--bs-body-font-family); color: var(--ink); }
.text-brand { color: var(--brand); }
.link-brand { color: var(--brand-dark); font-weight: 600; text-decoration: none; }
.link-brand:hover { color: var(--brand); }

/* Header */
.site-header { background: rgba(255, 255, 255, .95); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.navbar-brand { font-weight: 700; font-size: 1.45rem; }
.brand-accent { color: var(--brand); }
.navbar .nav-link { font-weight: 500; color: var(--ink); }
.navbar .nav-link:hover { color: var(--brand); }

/* Buttons */
.btn-brand { --bs-btn-bg: var(--brand); --bs-btn-border-color: var(--brand); --bs-btn-color: #fff;
    --bs-btn-hover-bg: var(--brand-dark); --bs-btn-hover-border-color: var(--brand-dark); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--brand-dark); --bs-btn-active-border-color: var(--brand-dark); font-weight: 600; padding-inline: 1.75rem; }
.btn-outline-brand { --bs-btn-color: var(--brand-dark); --bs-btn-border-color: #f2b8c0; --bs-btn-hover-bg: var(--brand);
    --bs-btn-hover-border-color: var(--brand); --bs-btn-hover-color: #fff; font-weight: 600; }

/* Hero + finder */
.hero { background: radial-gradient(circle at 15% 20%, #ffe3e7 0, transparent 45%), radial-gradient(circle at 85% 10%, #fff1d6 0, transparent 40%), var(--cream); padding: 4rem 0 3.5rem; }
.hero-title { font-weight: 700; font-size: clamp(2rem, 4.5vw, 3.25rem); line-height: 1.15; }
.hero-lead { color: var(--muted); font-size: 1.15rem; margin: 1rem auto 2rem; max-width: 40rem; }
.finder-card { background: #fff; border-radius: 1.25rem; padding: 1.5rem; box-shadow: 0 18px 50px rgba(224, 71, 91, .12); border: 1px solid var(--line); max-width: 960px; }
.finder-card-compact { margin-top: 1.5rem; padding: 1.1rem 1.25rem; box-shadow: 0 8px 24px rgba(31, 36, 51, .06); max-width: none; }
.finder-form .form-label { font-weight: 600; font-size: .9rem; margin-bottom: .35rem; }
.finder-form .form-select { border-radius: .75rem; border-color: #ddd6da; font-size: 1rem; }
.finder-form .form-select:focus { border-color: var(--brand); box-shadow: 0 0 0 .25rem rgba(224, 71, 91, .15); }
.finder-form .btn { border-radius: .75rem; }

/* Sections */
.section { padding: 3rem 0; }
.section-tinted { background: var(--cream); }
.section-head { margin-bottom: 1.5rem; }
.section-head h2 { font-weight: 700; font-size: 1.75rem; margin-bottom: .25rem; }
.section-head p { color: var(--muted); margin: 0; }

/* Upcoming events */
.event-card { display: flex; flex-direction: column; gap: .2rem; height: 100%; padding: 1.25rem; border-radius: 1rem; background: #fff;
    border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: transform .15s, box-shadow .15s; }
.event-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(31, 36, 51, .08); color: var(--ink); }
.event-emoji { font-size: 2rem; }
.event-name { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 1.1rem; }
.event-date { color: var(--muted); font-size: .9rem; }
.event-badge { align-self: flex-start; background: var(--brand-soft); color: var(--brand-dark); font-weight: 600; margin: .35rem 0; }
.event-link { margin-top: auto; color: var(--brand-dark); font-weight: 600; font-size: .9rem; }

/* Gift cards */
.gift-card { border: 1px solid var(--line); border-radius: 1rem; overflow: hidden; transition: transform .15s, box-shadow .15s; }
.gift-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(31, 36, 51, .09); }
.gift-emoji { aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; font-size: 3.75rem; }
.gift-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.tint-0 { background: #fdecef; } .tint-1 { background: #fff3dc; } .tint-2 { background: #e7f5ee; }
.tint-3 { background: #e9f0ff; } .tint-4 { background: #f3ebff; } .tint-5 { background: #ffeede; }
.gift-name { font-size: 1rem; font-weight: 600; margin-bottom: .25rem; line-height: 1.35; }
.gift-price { color: var(--brand-dark); font-weight: 700; }
.gift-desc { color: var(--muted); font-size: .9rem; }

/* Listing pages */
.listing-hero { background: var(--cream); padding: 1.5rem 0 2rem; border-bottom: 1px solid var(--line); }
.breadcrumb { font-size: .875rem; margin-bottom: .75rem; }
.breadcrumb a { color: var(--muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--brand); }
.listing-title { font-weight: 700; font-size: clamp(1.6rem, 3.5vw, 2.4rem); }
.listing-intro { color: var(--muted); max-width: 52rem; font-size: 1.05rem; margin-bottom: .5rem; }
.date-note { display: inline-block; background: #fff; border: 1px solid var(--line); border-radius: 2rem; padding: .35rem 1rem; font-size: .9rem; margin: .25rem 0 0; }
.results-count { color: var(--muted); font-weight: 600; }
.empty-state { background: var(--cream); border-radius: 1rem; padding: 2rem; }

/* Chips */
.chip { display: inline-block; padding: .45rem .95rem; border-radius: 2rem; background: #fff; border: 1px solid var(--line); color: var(--ink);
    font-size: .9rem; font-weight: 500; text-decoration: none; transition: border-color .15s, color .15s; }
.chip:hover { border-color: var(--brand); color: var(--brand-dark); }

/* FAQ */
.accordion-button:not(.collapsed) { background: var(--brand-soft); color: var(--ink); box-shadow: none; }
.accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(224, 71, 91, .15); }
.accordion-header { margin: 0; }
.accordion-button { font-weight: 600; font-family: var(--bs-body-font-family); }

/* Footer */
.site-footer { background: var(--ink); color: #c9ccd6; padding: 3rem 0 1.5rem; font-size: .925rem; }
.site-footer a { color: #c9ccd6; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.footer-brand { color: #fff !important; font-weight: 700; font-size: 1.3rem; }
.footer-heading { color: #fff; font-size: 1rem; font-weight: 600; margin-bottom: .75rem; }
.site-footer li { margin-bottom: .4rem; }
.footer-note { border-top: 1px solid rgba(255, 255, 255, .1); margin: 2rem 0 0; padding-top: 1.25rem; font-size: .85rem; }

@media (max-width: 575.98px) {
    .hero { padding: 2.5rem 0; }
    .finder-card { padding: 1.1rem; }
    .gift-emoji { font-size: 3rem; }
    .gift-desc { display: none; }
    .section { padding: 2.25rem 0; }
}

.finder-form .form-select, .finder-form .btn { min-height: 3rem; }
@media (max-width: 575.98px) {
    .finder-form .form-label { font-size: .8rem; }
    .finder-form .form-select { font-size: .925rem; padding-left: .75rem; }
    .listing-intro { font-size: .95rem; }
    .finder-card-compact { padding: .9rem; }
}

/* Amazon product images: show the whole product on white */
.gift-image-wrap { aspect-ratio: 4 / 3; background: #fff; display: flex; align-items: center; justify-content: center; padding: .75rem; border-bottom: 1px solid var(--line); }
.gift-image-wrap .gift-image { width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain; }
.gift-price-time { color: var(--muted); font-size: .75rem; margin-bottom: .5rem; }
