/*
Theme Name: TA Modern
Description: Custom block theme for the redesigned Trapshooting Academy WordPress site.
Version: 0.4.5
Text Domain: ta-modern
*/

:root {
  --ta-shadow-soft: 0 16px 44px rgba(0, 0, 0, 0.08);
  --ta-shadow-card: 0 12px 30px rgba(0, 0, 0, 0.06);
  --ta-radius-lg: 24px;
  --ta-radius-md: 18px;
}

html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; }

.ta-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  margin-block-start: 0 !important;
  border-bottom: 1px solid var(--wp--preset--color--line);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
}
.admin-bar .ta-site-header { top: 32px; }
.ta-header-inner { min-height: 76px; gap: 1.25rem; }
.ta-brand { gap: .8rem; min-width: 0; flex: 0 1 auto; }
.ta-brand .wp-block-site-title { margin: 0; white-space: nowrap; }
.ta-brand .wp-block-site-title a,
.ta-site-footer .wp-block-site-title a { color: inherit; text-decoration: none; }
.ta-brand-mark {
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  background-image: url("assets/images/ta-logo.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.ta-header-actions { flex: 1 1 auto; gap: 1rem; min-width: 0; }
.ta-primary-nav { flex: 0 1 auto; }
.ta-primary-nav .wp-block-navigation__container { flex-wrap: nowrap; gap: 1.35rem; }
.ta-primary-nav a { color: var(--wp--preset--color--contrast) !important; text-decoration: none; white-space: nowrap; }
.ta-primary-nav a:hover { color: var(--wp--preset--color--accent) !important; }
.ta-header-book { margin: 0; flex: 0 0 auto; }
.ta-header-book .wp-block-button__link { white-space: nowrap; padding: .72rem 1.15rem; }

.ta-site-main { min-height: 55vh; margin-block-start: 0 !important; }
.ta-site-main > * { margin-block-start: 0; }
.ta-section { padding-top: clamp(4rem, 7vw, 7rem); padding-bottom: clamp(4rem, 7vw, 7rem); }
.ta-section-heading { max-width: 760px; margin-inline: auto; margin-bottom: 3rem; }
.ta-section-title { font-size: clamp(2rem, 4vw, 3.2rem); }
.ta-section-intro { max-width: 680px; margin-inline: auto; }
.ta-eyebrow {
  margin-bottom: .75rem;
  color: var(--wp--preset--color--accent);
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.ta-eyebrow-light { color: rgba(255,255,255,.78); }
.ta-display {
  max-width: 620px;
  margin-top: .4rem;
  font-size: clamp(2.8rem, 3.55vw, 4.25rem);
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.ta-lead { max-width: 590px; font-size: clamp(1.1rem, 1.55vw, 1.35rem); line-height: 1.45; }

.ta-hero {
  padding-top: clamp(2.75rem, 5vw, 5rem);
  padding-bottom: clamp(3.5rem, 6vw, 6rem);
  background:
    radial-gradient(circle at 78% 25%, rgba(200,16,46,.08), transparent 30%),
    linear-gradient(180deg, #fff 0%, #fbfbfb 100%);
}
.ta-hero-grid { min-height: 520px; gap: clamp(2rem, 4vw, 4rem); }
.ta-hero-copy { z-index: 2; }
.ta-hero-buttons { margin-top: 2rem; gap: .9rem; }
.wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--wp--preset--color--accent);
  border-color: var(--wp--preset--color--accent);
  background: transparent;
}

.ta-media-placeholder {
  position: relative;
  overflow: hidden;
  min-height: 420px;
  display: grid;
  place-items: end start;
  border-radius: var(--ta-radius-lg);
  background:
    linear-gradient(135deg, rgba(23,23,23,.08), rgba(200,16,46,.10)),
    repeating-linear-gradient(45deg, #f5f5f5, #f5f5f5 14px, #ececec 14px, #ececec 28px);
  box-shadow: var(--ta-shadow-soft);
}
.ta-media-placeholder::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(23,23,23,.45), transparent 45%);
  pointer-events: none;
}
.ta-media-placeholder > div {
  position: relative;
  z-index: 2;
  padding: 2rem;
  color: #fff;
}
.ta-media-placeholder strong,
.ta-media-placeholder span { display: block; }
.ta-media-placeholder strong { margin-bottom: .3rem; font-size: 1.2rem; }
.ta-media-placeholder span { opacity: .82; font-size: .9rem; }
.ta-hero-media {
  min-height: 0;
  aspect-ratio: 1110 / 1108;
  background-image: url("assets/images/ta-hero-2025.png");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
}
.ta-hero-media::after { display: none; }
.ta-hero-media > div { display: none; }
.ta-coach-media {
  min-height: 0;
  aspect-ratio: 16 / 9;
  background-image: url("assets/images/coach-rio.jpg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
.ta-coach-media::after { display: none; }
.ta-coach-media > div { display: none; }

.ta-card {
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--ta-radius-md);
  background: var(--wp--preset--color--base);
  box-shadow: var(--ta-shadow-card);
}
.ta-stats {
  position: relative;
  z-index: 5;
  margin-top: -2rem;
  padding: 1.8rem 2rem;
}
.ta-stats-grid { margin: 0; }
.ta-stats-grid > .wp-block-column + .wp-block-column { border-left: 1px solid var(--wp--preset--color--line); }
.ta-stat-label { margin-bottom: .2rem; color: var(--wp--preset--color--muted); font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.ta-stat-value { margin: 0; color: var(--wp--preset--color--contrast); font-size: clamp(1.6rem, 2.8vw, 2.6rem); }

.ta-programs { padding-top: clamp(5rem, 8vw, 8rem); }
.ta-card-grid { gap: 1.5rem; }
.ta-program-card {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  padding: 2.2rem;
  transition: transform .2s ease, box-shadow .2s ease;
}
.ta-program-card:hover { transform: translateY(-4px); box-shadow: var(--ta-shadow-soft); }
.ta-program-card-link {
  margin-top: auto;
  margin-bottom: 0;
  padding-top: 1.35rem;
  font-size: .9rem;
  font-weight: 800;
}
.ta-program-card-link a {
  color: var(--wp--preset--color--accent);
  text-decoration: none;
}
.ta-program-card-link a:hover { text-decoration: underline; }
.ta-programs-all {
  justify-content: center;
  margin-top: 2.25rem;
}
.ta-icon-disc {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  margin-bottom: 1.5rem;
  border-radius: 50%;
  background: rgba(200,16,46,.09);
  color: var(--wp--preset--color--accent);
  font-weight: 900;
  letter-spacing: .06em;
}

/* Program identity icons replace the old decorative 01-04 markers. */
.ta-program-card .ta-icon-disc,
.ta-program-detail .ta-icon-disc {
  font-size: 0 !important;
  color: transparent !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 36px 36px !important;
}

/* Foundations - target / bullseye. */
.ta-programs .ta-card-grid > .ta-program-card:nth-child(1) .ta-icon-disc,
.ta-programs-overview > .ta-programs-page-grid:first-child > .ta-program-detail:nth-child(1) .ta-icon-disc {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2048%2048%22%20fill%3D%22none%22%20stroke%3D%22%23c8102e%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2222%22%20cy%3D%2226%22%20r%3D%2214%22%2F%3E%3Ccircle%20cx%3D%2222%22%20cy%3D%2226%22%20r%3D%228%22%2F%3E%3Ccircle%20cx%3D%2222%22%20cy%3D%2226%22%20r%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M22%2026%2037%2011%22%2F%3E%3Cpath%20d%3D%22M32%2011h6v6%22%2F%3E%3C%2Fsvg%3E") !important;
}

/* Performance Development - upward graph. */
.ta-programs .ta-card-grid > .ta-program-card:nth-child(2) .ta-icon-disc,
.ta-programs-overview > .ta-programs-page-grid:first-child > .ta-program-detail:nth-child(2) .ta-icon-disc {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2048%2048%22%20fill%3D%22none%22%20stroke%3D%22%23c8102e%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%2038h34%22%2F%3E%3Cpath%20d%3D%22M11%2034v-8M19%2034V20M27%2034v-9M35%2034V15%22%2F%3E%3Cpath%20d%3D%22m9%2021%2010-9%208%206L39%206%22%2F%3E%3Cpath%20d%3D%22M33%206h6v6%22%2F%3E%3C%2Fsvg%3E") !important;
}

/* International Training Camps - globe. */
.ta-programs-overview > .ta-programs-page-grid:last-child > .ta-program-detail:nth-child(1) .ta-icon-disc {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2048%2048%22%20fill%3D%22none%22%20stroke%3D%22%23c8102e%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2224%22%20cy%3D%2224%22%20r%3D%2216%22%2F%3E%3Cpath%20d%3D%22M8%2024h32M24%208c5%205%207%2010%207%2016s-2%2011-7%2016M24%208c-5%205-7%2010-7%2016s2%2011%207%2016M12%2015c4%203%208%204%2012%204s8-1%2012-4M12%2033c4-3%208-4%2012-4s8%201%2012%204%22%2F%3E%3C%2Fsvg%3E") !important;
}

/* Corporate & Group Events - group of people. */
.ta-programs .ta-card-grid > .ta-program-card:nth-child(3) .ta-icon-disc,
.ta-programs-overview > .ta-programs-page-grid:last-child > .ta-program-detail:nth-child(2) .ta-icon-disc {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2048%2048%22%20fill%3D%22none%22%20stroke%3D%22%23c8102e%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2224%22%20cy%3D%2215%22%20r%3D%225%22%2F%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2218%22%20r%3D%224%22%2F%3E%3Ccircle%20cx%3D%2237%22%20cy%3D%2218%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M15%2036v-5c0-5%204-9%209-9s9%204%209%209v5M4%2035v-4c0-4%203-7%207-7%202%200%204%201%205%202M44%2035v-4c0-4-3-7-7-7-2%200-4%201-5%202%22%2F%3E%3C%2Fsvg%3E") !important;
}

.ta-mission { background: #fafafa; }
.ta-mission-grid {
  flex-direction: column;
  align-items: stretch !important;
  gap: clamp(2.25rem, 4vw, 3.75rem);
}
.ta-mission-grid > .wp-block-column:first-child {
  flex-basis: auto !important;
  width: min(560px, 100%);
}
.ta-mission-grid > .wp-block-column:last-child {
  flex-basis: auto !important;
  width: 100%;
}
/* NOTE: .ta-motif is the visible Mission team panorama; the legacy class name is retained intentionally. */
.ta-motif {
  width: 100%;
  aspect-ratio: 40 / 13;
  margin: 0;
  border-radius: var(--ta-radius-lg);
  background-image: url("assets/images/team-panorama.jpg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  box-shadow: none;
}
.ta-motif span { display: none; }

.ta-coach-grid { gap: clamp(2rem, 4vw, 4rem); }
.ta-coach-grid > .wp-block-column:first-child { flex-basis: 54% !important; }
.ta-coach-grid > .wp-block-column:last-child { flex-basis: 46% !important; }
.ta-coach-copy { padding-block: 2rem; }
.ta-check-list { margin: 1.7rem 0; padding: 0; list-style: none; }
.ta-check-list li { position: relative; margin: .9rem 0; padding-left: 2rem; }
.ta-check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: .02rem;
  width: 1.25rem;
  height: 1.25rem;
  display: grid;
  place-items: center;
  border: 2px solid var(--wp--preset--color--accent);
  border-radius: 50%;
  color: var(--wp--preset--color--accent);
  font-size: .72rem;
  font-weight: 900;
}

.ta-results { background: #fafafa; }
.ta-results-grid {
  position: relative;
  margin-top: 3.25rem;
  gap: 1rem;
}
.ta-results-grid::before {
  content: "";
  position: absolute;
  top: 2.15rem;
  left: 16.66%;
  right: 16.66%;
  height: 2px;
  background: linear-gradient(90deg, rgba(200,16,46,.18), rgba(200,16,46,.55), rgba(200,16,46,.18));
}
.ta-result-card {
  position: relative;
  z-index: 1;
  padding: 0 1.25rem 1rem;
  text-align: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.ta-result-year {
  width: 4.3rem;
  height: 4.3rem;
  display: grid;
  place-items: center;
  margin: 0 auto 1.35rem;
  border: 2px solid var(--wp--preset--color--accent);
  border-radius: 50%;
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--accent);
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  font-size: 1rem;
  font-weight: 900;
}
.ta-result-card h4 {
  max-width: 250px;
  margin: .35rem auto .65rem;
  font-size: 1.05rem;
  line-height: 1.25;
}
.ta-result-card > p:last-child {
  margin-bottom: 0;
  color: var(--wp--preset--color--contrast) !important;
  font-weight: 700;
}

.ta-cta-band {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
  color: #fff;
  background:
    radial-gradient(circle at 80% 45%, rgba(255,255,255,.13), transparent 28%),
    linear-gradient(110deg, #9f0d25 0%, #c8102e 56%, #8d0b20 100%);
}
.ta-cta-inner { gap: 2rem; }
.ta-cta-inner > .wp-block-group { max-width: 720px; }

.ta-site-footer { margin-block-start: 0 !important; padding-top: 4rem; padding-bottom: 2rem; }
.ta-footer-grid { gap: 2rem; }
.ta-brand-footer { margin-bottom: 1.3rem; }
.ta-brand-mark-footer { width: 60px; height: 60px; flex-basis: 60px; }
.ta-footer-heading { margin-bottom: 1rem; font-size: .72rem; letter-spacing: .12em; }
.ta-footer-links { margin: 0; padding: 0; list-style: none; }
.ta-footer-links li { margin: .45rem 0; }
.ta-footer-links a { color: #fff; text-decoration: none; opacity: .82; }
.ta-footer-links a:hover { opacity: 1; color: #fff; }
.ta-site-footer .wp-block-separator { margin-top: 2.5rem; margin-bottom: 1.5rem; opacity: .35; }

@media (max-width: 1180px) {
  .ta-brand .wp-block-site-title { font-size: 1rem; }
  .ta-primary-nav .wp-block-navigation__container { gap: .9rem; }
  .ta-header-actions { gap: .75rem; }
  .ta-header-book .wp-block-button__link { padding-inline: .95rem; }
}

@media (max-width: 1000px) {
  .ta-hero-grid {
    min-height: auto;
    flex-direction: column;
    align-items: stretch !important;
    gap: 2.5rem;
  }
  .ta-hero-grid > .wp-block-column {
    width: 100%;
    flex-basis: 100% !important;
  }
  .ta-display {
    max-width: 760px;
    font-size: clamp(2.65rem, 7vw, 4.1rem);
  }
  .ta-lead { max-width: 700px; }
}

@media (max-width: 860px) {
  .ta-brand .wp-block-site-title { white-space: normal; max-width: 250px; }
  .ta-primary-nav .wp-block-navigation__container { gap: .7rem; }
}

@media (max-width: 781px) {
  .admin-bar .ta-site-header { top: 46px; }
  .ta-site-header { position: sticky; }
  .ta-header-inner { min-height: 68px; }
  .ta-header-actions { margin-left: auto; }
  .ta-brand-mark { width: 46px; height: 46px; flex-basis: 46px; }
  .ta-hero { padding-top: 2.5rem; }
  .ta-hero-grid { gap: 2.5rem; }
  .ta-hero-media { aspect-ratio: 1110 / 1108; }
  .ta-stats { margin-top: 1rem; }
  .ta-stats-grid > .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid var(--wp--preset--color--line); padding-top: 1.25rem; }
  .ta-card-grid, .ta-results-grid { gap: 1rem; }
  .ta-program-card { min-height: auto; }
  .ta-mission-grid { gap: 2rem; }
  .ta-mission-grid > .wp-block-column:first-child,
  .ta-mission-grid > .wp-block-column:last-child { width: 100%; flex-basis: auto !important; }
  .ta-motif { aspect-ratio: 40 / 13; }
  .ta-coach-grid > .wp-block-column:first-child,
  .ta-coach-grid > .wp-block-column:last-child { flex-basis: 100% !important; }
  .ta-coach-media { min-height: 0; aspect-ratio: 16 / 9; }
  .ta-results-grid {
    display: block;
    margin-top: 2.75rem;
    padding-left: 0;
  }
  .ta-results-grid::before {
    top: 0;
    bottom: .75rem;
    left: 2.15rem;
    right: auto;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, rgba(200,16,46,.18), rgba(200,16,46,.55), rgba(200,16,46,.18));
  }
  .ta-result-card {
    display: grid;
    grid-template-columns: 5.4rem 1fr;
    grid-template-rows: auto auto;
    align-items: start;
    min-height: 5rem;
    padding: 0 0 1.8rem;
    text-align: left;
  }
  .ta-result-year {
    grid-column: 1;
    grid-row: 1 / span 2;
    margin: 0;
  }
  .ta-result-card h4 {
    grid-column: 2;
    margin: .15rem 0 .45rem;
  }
  .ta-result-card > p:last-child {
    grid-column: 2;
    margin-top: 0;
  }
  .ta-footer-grid { gap: 1rem; }
}

@media (max-width: 500px) {
  .ta-brand .wp-block-site-title { font-size: .98rem; }
  .ta-display { font-size: 2.55rem; }
  .ta-section { padding-top: 3.7rem; padding-bottom: 3.7rem; }
  .ta-media-placeholder > div { padding: 1.4rem; }
}