/*
 * September 2026 visit: banner, teaser card and article page.
 * Plain CSS (not part of the Mix/Tailwind build) so no rebuild is needed.
 */
.thp-visit-banner { background: linear-gradient(135deg, #0D4C94 0%, #072D57 100%); color: #fff; padding: 3rem 0; }
.thp-visit-banner__grid { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 768px) { .thp-visit-banner__grid { grid-template-columns: 1.1fr 1fr; gap: 3rem; } .thp-visit-banner { padding: 4rem 0; } }
.thp-visit-badge { display: inline-flex; align-items: center; gap: .5rem; padding: .25rem .75rem; border-radius: 9999px; background: #F7A81B; color: #052443; font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 1rem; }
.thp-visit-badge__dot { width: .5rem; height: .5rem; border-radius: 9999px; background: #052443; animation: thp-pulse 1.8s ease-in-out infinite; }
@keyframes thp-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .thp-visit-badge__dot { animation: none; } }
.thp-visit-banner__title { font-size: 2.25rem; line-height: 1.1; font-weight: 800; letter-spacing: -.02em; margin-bottom: 1rem; }
@media (min-width: 1024px) { .thp-visit-banner__title { font-size: 3.25rem; } }
.thp-visit-banner__lead { font-size: 1.125rem; line-height: 1.6; color: #D1EBFB; margin-bottom: 1.5rem; max-width: 36rem; }
.thp-visit-stats { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; list-style: none; padding: 0; }
.thp-visit-stats li { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: .5rem; padding: .75rem 1rem; min-width: 7rem; }
.thp-visit-stats strong { display: block; font-size: 1.75rem; line-height: 1; font-weight: 800; color: #F7A81B; }
.thp-visit-stats span { font-size: .875rem; color: #E8F5FD; }
.thp-visit-button { display: inline-block; padding: 1rem 1.75rem; border-radius: .375rem; background: #F7A81B; color: #052443; font-weight: 700; text-decoration: none; box-shadow: 0 1px 2px rgba(0,0,0,.15); transition: background .15s; }
.thp-visit-button:hover { background: #ffbe45; }
.thp-visit-banner__img { width: 100%; border-radius: .75rem; box-shadow: 0 20px 40px rgba(0,0,0,.35); object-fit: cover; aspect-ratio: 3 / 2; }

.thp-visit-teaser-wrap { padding-top: 3rem; }
.thp-visit-teaser { display: grid; overflow: hidden; border-radius: .75rem; background: #fff; border: 1px solid #E5E7EB; box-shadow: 0 4px 16px rgba(13,76,148,.08); color: inherit; text-decoration: none; transition: box-shadow .15s, transform .15s; }
.thp-visit-teaser:hover { box-shadow: 0 10px 30px rgba(13,76,148,.18); transform: translateY(-2px); }
@media (min-width: 768px) { .thp-visit-teaser { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); } }
.thp-visit-teaser__img { width: 100%; height: 100%; min-height: 14rem; object-fit: cover; display: block; }
.thp-visit-teaser__body { padding: 1.5rem 2rem; display: flex; flex-direction: column; justify-content: center; }
.thp-visit-teaser__date { font-size: .875rem; color: #9CA3AF; margin-bottom: .5rem; }
.thp-visit-teaser__title { font-size: 1.5rem; line-height: 1.25; font-weight: 700; color: #0D4C94; margin-bottom: .75rem; }
.thp-visit-teaser__excerpt { color: #374151; margin-bottom: 1rem; }
.thp-visit-teaser__more { font-weight: 600; color: #0D4C94; }

.thp-article { max-width: 48rem; margin: 3rem auto 0; }
.thp-article__back { display: table; margin-bottom: 1rem; color: #0D4C94; font-weight: 500; }
.thp-article__title { font-size: 2rem; line-height: 1.15; font-weight: 800; letter-spacing: -.02em; color: #052443; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .thp-article__title { font-size: 2.75rem; } }
.thp-article__figure { margin: 0 0 1.5rem; }
.thp-article__img { width: 100%; border-radius: .75rem; object-fit: cover; aspect-ratio: 3 / 2; }
.thp-article__facts { display: grid; gap: .75rem; padding: 1.25rem 1.5rem; margin-bottom: 2rem; border-left: 4px solid #F7A81B; background: #E8F5FD; border-radius: .5rem; }
@media (min-width: 640px) { .thp-article__facts { grid-template-columns: 1fr 1fr; } }
.thp-article__facts span { display: block; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #0D4C94; }
.thp-article__body { font-size: 1.125rem; line-height: 1.75; color: #1F2937; }
.thp-article__body p { margin-bottom: 1.25rem; }
.thp-article__body h2 { font-size: 1.5rem; font-weight: 700; color: #052443; margin: 2rem 0 1rem; }
.thp-article__body blockquote { margin: 1.5rem 0; padding: .5rem 0 .5rem 1.25rem; border-left: 4px solid #0D4C94; font-style: italic; color: #072D57; }
.thp-article__pending, .thp-article__photos-soon { font-style: italic; color: #6B7280; }
.thp-article__gallery { display: grid; gap: 1rem; margin: 2rem 0; }
@media (min-width: 640px) { .thp-article__gallery { grid-template-columns: 1fr 1fr; } }
.thp-article__gallery img { width: 100%; border-radius: .5rem; object-fit: contain; background: #F3F4F6; aspect-ratio: 4 / 3; }
.thp-article__gallery figcaption { font-size: .875rem; font-style: italic; color: #6B7280; margin-top: .25rem; }
.thp-article__footer { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; margin: 2.5rem 0 1rem; padding-top: 1.5rem; border-top: 1px solid #E5E7EB; }
.thp-article__link { color: #0D4C94; font-weight: 600; }

.thp-timeline-link { color: #0D4C94; font-weight: 600; text-decoration: underline; }
.thp-timeline-dot-new { background: #F7A81B !important; }

/* Funding progress */
.thp-fund { margin: 3rem 0 0; padding: 2rem 1.5rem; border-radius: .75rem; background: linear-gradient(135deg, #0D4C94 0%, #072D57 100%); color: #fff; box-shadow: 0 10px 30px rgba(13,76,148,.18); }
@media (min-width: 768px) { .thp-fund { padding: 2.5rem 2.5rem; } }
.thp-fund__header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.75rem; }
.thp-fund__eyebrow { display: inline-block; padding: .125rem .625rem; margin-bottom: .75rem; border-radius: 9999px; background: #F7A81B; color: #052443; font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.thp-fund__title { font-size: 1.75rem; line-height: 1.2; font-weight: 800; letter-spacing: -.02em; }
@media (min-width: 768px) { .thp-fund__title { font-size: 2.25rem; } }
.thp-fund__total { text-align: right; }
.thp-fund__total strong { display: block; font-size: 2.5rem; line-height: 1; font-weight: 800; color: #F7A81B; letter-spacing: -.02em; }
@media (min-width: 768px) { .thp-fund__total strong { font-size: 3.25rem; } }
.thp-fund__total span { font-size: .875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: #D1EBFB; }
.thp-fund__list { display: grid; gap: 1.25rem; list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .thp-fund__list { grid-template-columns: 1fr 1fr; gap: 1.5rem 2.5rem; } }
.thp-fund__item { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.15); border-radius: .625rem; padding: 1rem 1.125rem; }
.thp-fund__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: .625rem; }
.thp-fund__name { font-weight: 600; color: #fff; }
.thp-fund__amount { font-weight: 800; color: #F7A81B; white-space: nowrap; }
.thp-fund__of { font-weight: 500; color: #D1EBFB; }
.thp-fund__track { height: .75rem; border-radius: 9999px; background: rgba(255,255,255,.18); overflow: hidden; }
.thp-fund__bar { height: 100%; width: var(--thp-fund-pct, 100%); border-radius: 9999px; background: linear-gradient(90deg, #F7A81B 0%, #FFC94D 100%); }
.thp-fund--animate .thp-fund__bar { width: 0; transition: width 1.4s cubic-bezier(.22,.61,.36,1); }
.thp-fund--animate.is-visible .thp-fund__bar { width: var(--thp-fund-pct, 100%); }
.thp-fund--animate .thp-fund__item:nth-child(2) .thp-fund__bar { transition-delay: .12s; }
.thp-fund--animate .thp-fund__item:nth-child(3) .thp-fund__bar { transition-delay: .24s; }
.thp-fund--animate .thp-fund__item:nth-child(4) .thp-fund__bar { transition-delay: .36s; }
@media (prefers-reduced-motion: reduce) { .thp-fund__bar, .thp-fund--animate .thp-fund__bar { width: var(--thp-fund-pct, 100%); transition: none; } }
.thp-fund__badges { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .625rem; }
.thp-fund__badge { display: inline-flex; align-items: center; gap: .25rem; padding: .125rem .625rem; border-radius: 9999px; font-size: .75rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.thp-fund__badge svg { width: .875rem; height: .875rem; }
.thp-fund__badge--funded { background: rgba(247,168,27,.18); color: #FFC94D; border: 1px solid rgba(247,168,27,.45); }
.thp-fund__badge--completed { background: #F7A81B; color: #052443; }
.thp-fund__badge--progress { background: rgba(255,255,255,.12); color: #E8F5FD; }

/* Compact variant (article page) */
.thp-fund--compact { margin: 2.5rem 0 0; padding: 1.5rem 1.25rem; }
.thp-fund--compact .thp-fund__header { margin-bottom: 1.25rem; align-items: center; }
.thp-fund--compact .thp-fund__title { font-size: 1.25rem; }
.thp-fund--compact .thp-fund__total strong { font-size: 2rem; }
.thp-fund--compact .thp-fund__list { grid-template-columns: 1fr; gap: .875rem; }
.thp-fund--compact .thp-fund__item { padding: 0; background: none; border: 0; }
.thp-fund--compact .thp-fund__row { flex-wrap: wrap; gap: .25rem 1rem; margin-bottom: .375rem; font-size: .9375rem; }
.thp-fund--compact .thp-fund__track { height: .5rem; }
.thp-fund--compact .thp-fund__badges { margin-top: .375rem; }

/* Articles: standfirst, cross-links, multiple teasers */
.thp-article__lead { font-size: 1.25rem; line-height: 1.6; font-weight: 500; color: #374151; margin-bottom: 1.75rem; }
@media (min-width: 768px) { .thp-article__lead { font-size: 1.375rem; } }
.thp-article__related { margin: 2.5rem 0 0; padding: 1.25rem 1.5rem; border: 1px solid #E5E7EB; border-left: 4px solid #0D4C94; border-radius: .5rem; background: #F9FAFB; }
.thp-article__related-label { display: block; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #0D4C94; margin-bottom: .375rem; }
.thp-article__related-title { display: block; font-size: 1.125rem; line-height: 1.35; font-weight: 700; color: #052443; margin-bottom: .5rem; }
.thp-article__related-title:hover { color: #0D4C94; text-decoration: underline; }
.thp-article__related p { color: #4B5563; font-size: .9375rem; }
.thp-visit-teaser-list { display: grid; gap: 1.5rem; }
.thp-visit-banner__title { font-size: 1.875rem; }
@media (min-width: 1024px) { .thp-visit-banner__title { font-size: 2.5rem; } }

/* Site-wide footer placement (replaces the old donations bar) */
.thp-fund--footer { margin-top: 0; }

/* Ongoing fundraising item (e.g. arthroplasty operations) */
.thp-fund__item--ongoing .thp-fund__bar { background: repeating-linear-gradient(135deg, #7DBFF0 0, #7DBFF0 10px, #A3D4F6 10px, #A3D4F6 20px); }
.thp-fund__item--ongoing .thp-fund__amount { color: #BADFF8; }
.thp-fund__badge--ongoing { background: rgba(125,191,240,.18); color: #D1EBFB; border: 1px solid rgba(125,191,240,.6); }
.thp-fund__badge-dot { width: .4rem; height: .4rem; border-radius: 9999px; background: #7DBFF0; animation: thp-pulse 1.8s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .thp-fund__badge-dot { animation: none; } }

/* Funders credit (below the footer funding card) */
.thp-funders { margin: 1rem 0 0; padding: 0 .25rem; font-size: .8125rem; line-height: 1.55; color: #6B7280; }
@media (min-width: 768px) { .thp-funders { padding: 0 .5rem; } }
.thp-funders__heading { margin: 0 0 .25rem; font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #4B5563; }
.thp-funders__list { list-style: disc; margin: 0; padding-left: 1.125rem; }
.thp-funders__list li + li { margin-top: .25rem; }

/* Team photo in the article body */
.thp-article__team, .thp-article__banner { margin: 1.75rem 0 2rem; }
.thp-article__team img, .thp-article__banner img { display: block; width: 100%; height: auto; border-radius: .75rem; box-shadow: 0 4px 16px rgba(13,76,148,.12); }
.thp-article__team figcaption, .thp-article__banner figcaption { font-size: .875rem; line-height: 1.5; font-style: italic; color: #6B7280; margin-top: .5rem; }

/* Home page "Happening now" slideshow */
.thp-slides { position: relative; }
.thp-slides__viewport { position: relative; overflow: hidden; aspect-ratio: 3 / 2; border-radius: .75rem; background: #072D57; box-shadow: 0 20px 40px rgba(0,0,0,.35); }
.thp-slides__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility 0s linear .8s; }
.thp-slides__slide.is-active { opacity: 1; visibility: visible; transition: opacity .8s ease, visibility 0s; }
.thp-slides__img { position: relative; display: block; width: 100%; height: 100%; object-fit: cover; }
.thp-slides__slide--contain { background: #EAF1F9; }
.thp-slides__slide--contain .thp-slides__img { object-fit: contain; }
.thp-slides__backdrop { position: absolute; inset: -10%; background-size: cover; background-position: center; filter: blur(18px) saturate(1.1); opacity: .55; }
.thp-slides__controls { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: .875rem; }
.thp-slides__controls[hidden] { display: none; }
.thp-slides__btn { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 9999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.3); color: #fff; cursor: pointer; transition: background .15s; }
.thp-slides__btn:hover { background: rgba(255,255,255,.25); }
.thp-slides__btn svg { width: 1.125rem; height: 1.125rem; }
.thp-slides__dots { display: flex; align-items: center; gap: .125rem; }
.thp-slides__dot { width: 1.75rem; height: 1.75rem; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.thp-slides__dot::before { content: ''; position: absolute; top: 50%; left: 50%; width: .625rem; height: .625rem; margin: -.3125rem 0 0 -.3125rem; border-radius: 9999px; background: rgba(255,255,255,.4); transition: background .2s, transform .2s; }
.thp-slides__dot:hover::before { background: rgba(255,255,255,.75); }
.thp-slides__dot[aria-current="true"]::before { background: #F7A81B; transform: scale(1.25); }
.thp-slides__btn:focus-visible, .thp-slides__dot:focus-visible { outline: 3px solid #F7A81B; outline-offset: 2px; }
.thp-slides__toggle { margin-left: .5rem; }
.thp-slides__icon-play { display: none; }
.thp-slides.is-paused .thp-slides__icon-play { display: block; }
.thp-slides.is-paused .thp-slides__icon-pause { display: none; }
@media (prefers-reduced-motion: reduce) { .thp-slides__slide, .thp-slides__slide.is-active { transition: none; } }
