/* ==========================================================================
   Home page sections
   ========================================================================== */

.tc-section { padding: 72px 0; position: relative; }
.tc-section--tight { padding: 40px 0 56px; }
.tc-section--alt { background: linear-gradient(180deg, #eef4fd, #f5f8fc); }
.tc-section--warm { background: linear-gradient(180deg, #fff7ee, #f5f8fc); }
.tc-section--dark { background: radial-gradient(circle at 10% 0%, rgba(11, 99, 229, .35), transparent 45%), var(--tc-navy); color: #fff; }
.tc-section--dark .tc-video-card__title { color: #fff; }
.tc-section--brand {
  background: radial-gradient(circle at 90% 20%, rgba(255, 138, 31, .28), transparent 40%), linear-gradient(135deg, #0b63e5, #0b1f3a 70%);
  color: #fff;
}
@media (max-width: 767.98px) { .tc-section { padding: 52px 0; } .tc-section--tight { padding: 28px 0 44px; } }

/* ---------- Hero ---------- */
.tc-hero { position: relative; min-height: min(86vh, 760px); display: flex; align-items: center; color: #fff; overflow: hidden; isolation: isolate; background: var(--tc-navy); }
.tc-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; animation: tc-hero-zoom 18s ease-out both; }
@keyframes tc-hero-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.tc-hero__overlay {
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(100deg, rgba(8, 22, 44, .92) 0%, rgba(8, 22, 44, .72) 45%, rgba(8, 22, 44, .35) 100%),
              linear-gradient(0deg, rgba(8, 22, 44, .6), transparent 40%);
}
.tc-hero__content { padding-top: 64px; padding-bottom: 96px; }
.tc-hero__kicker { display: inline-flex; align-items: center; gap: .6rem; font-size: .88rem; font-weight: 600; color: rgba(255, 255, 255, .88); background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); padding: .35rem .9rem .35rem .4rem; border-radius: 999px; backdrop-filter: blur(6px); }
.tc-hero__pin { width: 26px; height: 26px; border-radius: 50%; background: var(--tc-saffron); display: grid; place-items: center; font-size: .8rem; }
.tc-hero__title { color: #fff; font-size: clamp(2.4rem, 1.5rem + 4.5vw, 4.6rem); font-weight: 800; line-height: 1.02; margin: 1.1rem 0 1rem; max-width: 820px; letter-spacing: -.02em; }
.tc-hero__title span { background: linear-gradient(90deg, #ffb35c, #ffd9a8); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tc-hero__lead { font-size: clamp(1.02rem, .95rem + .35vw, 1.25rem); color: rgba(255, 255, 255, .85); max-width: 620px; margin-bottom: 1.75rem; }
.tc-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 2rem; }
.tc-hero__search { max-width: 640px; }
.tc-hero__quick { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.tc-quick-link { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .9rem; border-radius: 999px; color: #fff; font-size: .88rem; font-weight: 600; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .2); transition: background .2s; }
.tc-quick-link:hover { background: rgba(255, 255, 255, .22); color: #fff; }
.tc-quick-link i { color: #ffc98a; }
.tc-hero__wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 36px; fill: var(--tc-navy); }
@media (max-width: 575.98px) {
  .tc-hero { min-height: auto; }
  .tc-hero__content { padding-top: 40px; padding-bottom: 72px; }
  .tc-hero__actions .btn { flex: 1 1 auto; }
  .tc-hero__quick { flex-wrap: nowrap; overflow-x: auto; margin-right: -16px; padding-right: 16px; scrollbar-width: none; }
  .tc-hero__quick::-webkit-scrollbar { display: none; }
  .tc-quick-link { white-space: nowrap; }
}

/* Banner hero: brand banner on top (uncovered), welcome content on a navy band below */
.tc-hero--banner { display: block; min-height: 0; background: radial-gradient(circle at 85% 100%, rgba(11, 99, 229, .35), transparent 45%), var(--tc-navy); }
/* Full-width banner at its natural shape (1365×768): the whole image is always visible, edge to edge. */
.tc-hero__banner { position: relative; width: 100%; aspect-ratio: 1365 / 768; overflow: hidden; background: var(--tc-navy); }
.tc-hero__banner img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; background: none !important; }
.tc-hero__banner::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 6%; background: linear-gradient(180deg, transparent, var(--tc-navy)); pointer-events: none; }
.tc-hero--banner .tc-hero__content { padding-top: 28px; padding-bottom: 76px; }
.tc-hero--banner .tc-hero__title { font-size: clamp(2.1rem, 1.5rem + 2.8vw, 3.6rem); margin-top: .9rem; }
.tc-hero--banner .tc-hero__actions { margin-bottom: 0; }
.tc-hero--banner .tc-hero__search { max-width: none; }
@media (max-width: 991.98px) { .tc-hero--banner .tc-hero__content { padding-bottom: 64px; } }
@media (max-width: 575.98px) { .tc-hero--banner .tc-hero__content { padding-top: 20px; } }

/* ---------- Featured story ---------- */
.tc-featured {
  display: grid; grid-template-columns: 1fr; border-radius: var(--tc-radius-lg); overflow: hidden; background: var(--tc-navy); color: #fff;
  box-shadow: var(--tc-shadow-lg); position: relative;
}
@media (min-width: 992px) { .tc-featured { grid-template-columns: 1.3fr 1fr; min-height: 460px; } }
.tc-featured__media { position: relative; display: block; min-height: 260px; overflow: hidden; }
.tc-featured__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tc-featured:hover .tc-featured__media img.is-loaded { transform: scale(1.04); }
.tc-featured__body {
  padding: 2rem 1.5rem; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: .4rem;
  background: radial-gradient(circle at 100% 0%, rgba(255, 138, 31, .25), transparent 45%), var(--tc-navy);
}
@media (min-width: 992px) { .tc-featured__body { padding: 3rem 3rem; } }
.tc-featured__eyebrow { color: #ffd3a8; font-weight: 700; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 .35rem; }
.tc-featured__title { color: #fff; font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.6rem); font-weight: 800; line-height: 1.1; margin: .75rem 0 .5rem; }
.tc-featured__text { color: rgba(255, 255, 255, .8); font-size: 1.05rem; }
.tc-featured__meta { color: rgba(255, 255, 255, .6); font-size: .88rem; margin-bottom: 1.25rem; }

/* ---------- Mobile horizontal scrollers (home rows) ---------- */
@media (max-width: 767.98px) {
  .tc-scroller { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; margin-right: -16px; padding-right: 16px; padding-bottom: 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .tc-scroller::-webkit-scrollbar { display: none; }
  .tc-scroller > [class*='col-'] { flex: 0 0 82%; max-width: 82%; scroll-snap-align: start; }
}

/* ---------- Newsletter ---------- */
.tc-newsletter {
  background: #fff; border-radius: var(--tc-radius-lg); padding: 2rem 1.5rem; box-shadow: var(--tc-shadow); border: 1px solid var(--tc-line);
  background-image: radial-gradient(circle at 0% 0%, var(--tc-blue-50), transparent 45%), radial-gradient(circle at 100% 100%, var(--tc-saffron-50), transparent 40%);
}
@media (min-width: 992px) { .tc-newsletter { padding: 3rem; } }
.tc-newsletter__icon { width: 56px; height: 56px; border-radius: 18px; background: var(--tc-blue); color: #fff; display: grid; place-items: center; font-size: 1.5rem; margin-bottom: 1rem; box-shadow: 0 10px 24px rgba(11, 99, 229, .3); }
