/* Campaign listings and detail pages; legacy trending cards retain their styles. */
.active-campaigns .active-campaigns__sort { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.active-campaigns .active-campaigns__sort span { font-size: 14px; color: #596576; }
.active-campaigns .active-campaigns__sort a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 14px; border: 1px solid #dce2e8; border-radius: 6px; color: #002a53; font-size: 14px; line-height: 1.5; text-decoration: none; }
.active-campaigns .active-campaigns__sort a[aria-current] { background: #002a53; border-color: #002a53; color: white; }
.active-campaigns .active-campaigns__result-count { margin: 0 0 20px; color: #596576; font-size: 14px; line-height: 1.5; }
.active-campaigns .active-campaigns__pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px; margin-top: 32px; }
.active-campaigns .active-campaigns__pagination a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 16px; border: 1px solid #dce2e8; border-radius: 6px; color: #002a53; }
.active-campaigns .active-campaigns__pagination span { font-size: 14px; color: #596576; }
.active-campaigns { background: #fff; color: var(--brand-blue, #002a53); padding: 44px 0 64px; }
.active-campaigns, .active-campaigns * { box-sizing: border-box; }
.active-campaigns .active-campaigns__wrap { width: min(1180px, 100%); padding: 0 24px; margin: 0 auto; }
.active-campaigns h1, .active-campaigns h2, .active-campaigns h3, .active-campaigns p { padding: 0; text-align: left; }
.active-campaigns .active-campaigns__intro { max-width: 760px; margin: 0 0 38px; }
.active-campaigns .active-campaigns__eyebrow { margin: 0 0 12px; font-size: 12px; line-height: 1.5; letter-spacing: .09em; text-transform: uppercase; color: #596576; }
.active-campaigns h1 { margin: 0 0 16px; font-size: clamp(32px, 4vw, 48px); line-height: 1.12; letter-spacing: -.03em; color: var(--brand-blue, #002a53); }
.active-campaigns .active-campaigns__lead { margin: 0 0 18px; font-size: 18px; line-height: 1.6; color: #4c5968; }
.active-campaigns .active-campaigns__text-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--brand-blue, #002a53); font-size: 15px; line-height: 1.5; text-decoration: underline; text-underline-offset: 4px; }
.active-campaigns .active-campaigns__list-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 24px; margin-bottom: 20px; }
.active-campaigns h2 { margin: 0; font-size: 26px; line-height: 1.25; color: var(--brand-blue, #002a53); }
.active-campaigns .active-campaigns__list-heading p { margin: 0; color: #596576; font-size: 15px; line-height: 1.5; }
.active-campaigns .active-campaigns__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.active-campaigns .active-campaigns__card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: #fff; border: 1px solid #dce2e8; border-radius: var(--radius-md, 12px); }
.active-campaigns .active-campaigns__image { display: block; aspect-ratio: 1 / 1; background: #f5f5f2; padding: 20px; }
.active-campaigns .active-campaigns__image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.active-campaigns .active-campaigns__card-body { display: flex; flex: 1; flex-direction: column; padding: 24px; }
.active-campaigns .active-campaigns__status { color: #275e49; font-size: 13px; line-height: 1.5; margin: 0 0 10px; }
.active-campaigns .active-campaigns__status--ended { color: #596576; }
.active-campaigns .active-campaigns__missing-image { display: flex; align-items: center; justify-content: center; height: 100%; color: #596576; font-size: 14px; }
.active-campaigns h3 { margin: 0 0 12px; font-size: 22px; line-height: 1.3; overflow-wrap: anywhere; }
.active-campaigns h3 a { color: var(--brand-blue, #002a53); text-decoration: none; }
.active-campaigns h3 a:hover { text-decoration: underline; }
.active-campaigns .active-campaigns__description { color: #596576; font-size: 15px; line-height: 1.6; margin: 0 0 20px; overflow-wrap: anywhere; }
.active-campaigns .active-campaigns__results { margin-top: auto; padding-top: 8px; }
.active-campaigns .active-campaigns__results p { margin: 0 0 10px; font-size: 14px; line-height: 1.5; }
.active-campaigns .active-campaigns__results span { color: #596576; }
.active-campaigns .active-campaigns__progress { display: block; appearance: none; width: 100%; height: 6px; margin: 0 0 14px; border: 0; border-radius: 8px; overflow: hidden; background: #edf0f3; color: #28775a; }
.active-campaigns .active-campaigns__progress::-webkit-progress-bar { background: #edf0f3; }
.active-campaigns .active-campaigns__progress::-webkit-progress-value { background: #28775a; }
.active-campaigns .active-campaigns__progress::-moz-progress-bar { background: #28775a; }
.active-campaigns .active-campaigns__results .active-campaigns__date { margin-bottom: 20px; color: #596576; font-size: 13px; }
.active-campaigns .active-campaigns__button { display: inline-flex; justify-content: space-between; align-items: center; gap: 14px; min-height: 48px; padding: 13px 18px; border-radius: 6px; background: var(--brand-blue, #002a53); color: #fff; text-decoration: none; font-size: 15px; line-height: 1.45; font-weight: 600; }
.active-campaigns .active-campaigns__button:hover { background: var(--brand-blue-dark, #001f3f); color: #fff; }
.active-campaigns a:focus-visible { outline: 3px solid #0b73b6; outline-offset: 4px; }
.active-campaigns .active-campaigns__organizer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px; margin-top: 48px; padding: 32px; background: var(--bg-cream, #f5f4ed); border-radius: var(--radius-md, 12px); }
.active-campaigns .active-campaigns__organizer p:not(.active-campaigns__eyebrow) { margin: 14px 0 0; max-width: 640px; color: #4c5968; font-size: 16px; line-height: 1.6; }
.active-campaigns .active-campaigns__organizer-actions { display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.active-campaigns .active-campaigns__organizer-actions .active-campaigns__text-link { justify-content: center; }
.active-campaigns .active-campaigns__empty { padding: 32px; border: 1px solid #dce2e8; border-radius: 12px; background: #f8fafb; }
.active-campaigns .active-campaigns__empty p { color: #4c5968; max-width: 640px; font-size: 16px; line-height: 1.6; margin: 0 0 12px; }
@media (max-width: 900px) {
    .active-campaigns .active-campaigns__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .active-campaigns .active-campaigns__organizer { grid-template-columns: minmax(0, 1fr); }
    .active-campaigns .active-campaigns__organizer-actions { align-items: flex-start; }
}

/* Individual campaign page. Preserve existing gallery and order-control hooks. */
.campaign-page-v2 { color: var(--brand-blue, #002a53); background: #fff; padding-bottom: 32px; }
.campaign-page-v2 .container { max-width: 1180px; padding-left: 24px !important; padding-right: 24px !important; }
.campaign-page-v2 .musical-journey { padding-bottom: 0; margin: 18px 0; text-align: left; }
.campaign-page-v2 .musical-journey .social-icon-list { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 10px; margin: 0; padding: 0; }
.campaign-page-v2 .musical-journey .social-icon-list li { margin: 0; }
.campaign-page-v2 .musical-journey h1 { margin: 0 !important; font-size: clamp(28px, 3vw, 36px) !important; line-height: 1.15; color: #002a53; text-transform: none; text-align: left; overflow-wrap: anywhere; }
.campaign-page-v2 .campaign-breadcrumb { margin: 0 0 10px; font-size: 13px; line-height: 1.5; }
.campaign-page-v2 .campaign-breadcrumb a { display: inline-block; padding: 10px 0; color: #002a53; text-decoration: underline; text-underline-offset: 3px; }
.campaign-page-v2 .campaign-state { display: inline-block; background: #f5f4ed; color: #4c5968; border-radius: 4px; padding: 5px 10px; margin: 0; font-size: 13px; line-height: 1.5; }
.campaign-page-v2 .campaign-organizer { margin: 0; color: #596576; font-size: 16px; line-height: 1.6; text-align: left; }
.campaign-page-v2 .campaign-organizer a { color: #002a53; text-decoration: underline; }
.campaign-page-v2 .slider-wrapper { padding-top: 0; }
.campaign-page-v2 .campaign-detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "gallery purchase" "story purchase" "community purchase"; grid-template-rows: max-content max-content auto; align-items: start; gap: 24px 32px; width: 100%; margin: 0; }
.campaign-page-v2 .campaign-detail > * { min-width: 0; width: 100%; max-width: none; padding: 0; }
.campaign-page-v2 .campaign-gallery { grid-area: gallery; }
.campaign-page-v2 .campaign-purchase { grid-area: purchase; }
.campaign-page-v2 .campaign-story { grid-area: story; }
.campaign-page-v2 .campaign-community { grid-area: community; }
.campaign-page-v2 #carouselFade { border: 1px solid #dce2e8; border-radius: 12px; overflow: hidden; }
.campaign-page-v2 #carouselFade .carousel-item img { aspect-ratio: 1 / 1; object-fit: contain; max-height: 560px; background: #f5f5f2; }
.campaign-page-v2 .carousel-control-prev, .campaign-page-v2 .carousel-control-next { width: 44px; }
.campaign-page-v2 .carousel-control-prev-icon, .campaign-page-v2 .carousel-control-next-icon { background-color: #002a53; border-radius: 4px; padding: 14px; background-size: 12px; }
.campaign-page-v2 .product-content { padding: 16px 0 0; margin-bottom: 0; background: transparent; }
.campaign-page-v2 .campaign-summary, .campaign-page-v2 .campaign-ended-panel, .campaign-page-v2 .campaign-order-panel { border: 1px solid #dce2e8; border-radius: 12px; padding: 24px; margin: 0 0 24px; background: white; text-align: left; }
.campaign-page-v2 .campaign-summary p { margin: 0 0 10px; color: #596576; font-size: 15px; line-height: 1.6; text-align: left; }
.campaign-page-v2 .campaign-summary .campaign-total { color: #002a53; font-size: 18px; }
.campaign-page-v2 .campaign-total strong { font-size: 32px; font-weight: 600; }
.campaign-page-v2 .campaign-summary progress { display: block; width: 100%; height: 8px; margin: 16px 0; border: 0; border-radius: 6px; overflow: hidden; accent-color: #28775a; }
.campaign-page-v2 h2 { margin: 0 0 14px; font-size: 25px; line-height: 1.3; color: #002a53; text-align: left; }
.campaign-page-v2 .campaign-order-panel h3 { font-size: 18px; line-height: 1.5; margin: 20px 0 8px; }
.campaign-page-v2 .campaign-order-help, .campaign-page-v2 .campaign-ended-panel p { font-size: 15px; line-height: 1.6; color: #596576; text-align: left; }
.campaign-page-v2 .campaign-ended-panel { background: #f5f4ed; }
.campaign-page-v2 .campaign-secondary-link { display: block; min-height: 44px; padding: 14px 0 0; color: #002a53; text-decoration: underline; }
.campaign-page-v2 .campaign-price { text-align: left; font-size: 24px; line-height: 1.4; margin: 12px 0; }
.campaign-page-v2 .campaign-field-label { font-size: 16px; margin: 16px 0 8px; }
.campaign-page-v2 .campaign-gender-options { margin: 16px 0; }
.campaign-page-v2 .campaign-personalization { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 16px; margin: 16px 0; }
.campaign-page-v2 .campaign-personalization > div { min-width: 0; }
.campaign-page-v2 .campaign-personalization label { display: block; margin: 0 0 8px; font-size: 14px; line-height: 1.5; }
.campaign-page-v2 .campaign-personalization label span { color: #596576; font-weight: normal; }
@media (max-width: 480px) { .campaign-page-v2 .campaign-personalization { grid-template-columns: minmax(0, 1fr); } }
.campaign-page-v2 .form-control { min-height: 44px; max-width: 100%; }
.campaign-page-v2 .campaign-order-panel .form-check-inline { margin: 6px; }
.campaign-page-v2 .form-check-label { border: 1px solid #dce2e8; border-radius: 6px; padding: 8px; cursor: pointer; }
.campaign-page-v2 .campaign-option-name { display: block; max-width: 140px; margin-top: 6px; font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; text-transform: none; }
.campaign-page-v2 .campaign-option-name small { display: block; color: #596576; font-size: 12px; }
.campaign-page-v2 .form-check-input:checked + .form-check-label { border: 2px solid #002a53; padding: 7px; }
.campaign-page-v2 .btn { min-height: 44px; padding: 10px 16px; border-radius: 6px; white-space: normal; }
.campaign-page-v2 .btn-primary { background: #002a53; border-color: #002a53; color: white; }
.campaign-page-v2 .btn-primary.btn-reverse { background: #fff; border-color: #002a53; color: #002a53; }
.campaign-page-v2 #buy-campaign { margin-top: 12px; }
.campaign-page-v2 #campaign-order-panel { scroll-margin-top: 120px; }
.campaign-page-v2 .campaign-story { padding: 24px 0 0; border-top: 1px solid #dce2e8; margin: 0; }
.campaign-page-v2 .campaign-story-text { white-space: pre-line; overflow-wrap: anywhere; color: #4c5968; font-size: 16px; line-height: 1.75; }
.campaign-page-v2 .supporters { padding: 24px; border: 1px solid #dce2e8; border-radius: 12px; margin: 0; }
.campaign-page-v2 .supporters p { font-size: 14px; line-height: 1.65; }
.campaign-page-v2 a:focus-visible, .campaign-page-v2 input:focus-visible, .campaign-page-v2 select:focus-visible { outline: 3px solid #0b73b6; outline-offset: 3px; }
.campaign-page-v2 .campaign-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.campaign-page-v2 .campaign-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px; margin-top: 10px; }
.campaign-page-v2 .musical-journey .social-icon-list a { width: 32px; height: 32px; line-height: 32px; font-size: 16px; }
.campaign-page-v2 .campaign-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "total deadline" "progress progress" "goal remaining"; align-items: center; gap: 4px 12px; padding: 16px 20px; margin-bottom: 16px; }
.campaign-page-v2 .campaign-summary p { margin: 0; font-size: 13px; }
.campaign-page-v2 .campaign-summary .campaign-total { grid-area: total; font-size: 15px; }
.campaign-page-v2 .campaign-total strong { font-size: 24px; }
.campaign-page-v2 .campaign-summary progress { grid-area: progress; margin: 6px 0; }
.campaign-page-v2 .campaign-goal { grid-area: goal; }
.campaign-page-v2 .campaign-deadline { grid-area: deadline; text-align: right !important; }
.campaign-page-v2 .campaign-remaining { grid-area: remaining; text-align: right !important; }
.campaign-page-v2 .campaign-order-panel h2 { font-size: 23px; margin-bottom: 8px; }
.campaign-page-v2 .campaign-order-panel h3 { margin-top: 14px; }
.campaign-page-v2 .campaign-order-help { margin-bottom: 8px; font-size: 14px; }
.campaign-page-v2 .campaign-price small { font-size: 14px; color: #596576; }
.campaign-page-v2 .campaign-gender-options, .campaign-page-v2 .campaign-personalization { margin: 12px 0; }
.campaign-page-v2 .campaign-quantity-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(52px, 1fr)); gap: 10px; }
.campaign-page-v2 .campaign-size-field { min-width: 0; }
.campaign-page-v2 .campaign-size-field label { margin-bottom: 4px; font-size: 14px; }
.campaign-page-v2 .campaign-size-field br { display: none; }
.campaign-page-v2 .campaign-selection-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; text-align: left; padding-top: 16px; margin-top: 16px; border-top: 1px solid #dce2e8; font-size: 14px; }
.campaign-page-v2 .campaign-selection-summary[hidden], .campaign-page-v2 .campaign-total-help[hidden] { display: none; }
.campaign-page-v2 .campaign-selection-summary strong { font-weight: normal; }
.campaign-page-v2 #campaign-selected-total { display: block; font-size: 22px; font-weight: 600; }
.campaign-page-v2 .campaign-total-help { margin: 6px 0 0; text-align: left; color: #596576; font-size: 12px; }
.campaign-page-v2 .campaign-more-supporters summary { cursor: pointer; padding: 12px 0; min-height: 44px; color: #002a53; text-decoration: underline; }
.campaign-page-v2 .campaign-more-supporters summary:focus-visible { outline: 3px solid #0b73b6; outline-offset: 3px; }
@media (max-width: 767px) {
    .campaign-page-v2 { padding-bottom: 96px; }
    .campaign-page-v2 .musical-journey.fixed-inner-margin { padding-top: 88px !important; margin-top: 0; }
    .campaign-page-v2 .campaign-summary { padding: 16px; }
    .campaign-page-v2 .campaign-detail { grid-template-columns: minmax(0, 1fr); grid-template-areas: "gallery" "purchase" "story" "community"; grid-template-rows: auto; gap: 24px; }
    .site-wrapper:has(.campaign-page-v2) > .sticky-whatsapp { display: none !important; }
    .campaign-page-v2 .container { padding-left: 16px !important; padding-right: 16px !important; }
    .campaign-page-v2 .campaign-ended-panel, .campaign-page-v2 .campaign-order-panel { padding: 16px; }
    .campaign-page-v2 .campaign-story { padding-top: 24px; }
}
@media (max-width: 600px) {
    .active-campaigns { padding: 28px 0 40px; }
    .active-campaigns .active-campaigns__wrap { padding: 0 16px; }
    .active-campaigns .active-campaigns__intro { margin-bottom: 28px; }
    .active-campaigns .active-campaigns__lead { font-size: 16px; }
    .active-campaigns .active-campaigns__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .active-campaigns .active-campaigns__card-body { padding: 20px; }
    .active-campaigns .active-campaigns__organizer { margin-top: 32px; padding: 24px; gap: 20px; }
    .active-campaigns .active-campaigns__organizer-actions { align-items: stretch; }
    .active-campaigns .active-campaigns__empty { padding: 24px; }
}
