/*
Theme Name:   Astra Child GTN
Theme URI:    https://growtennisnow.com
Description:  Astra Pro child theme for GrowTennisNow.com
Author:       Bill Ringle
Author URI:   https://growtennisnow.com
Template:     astra
Version:      1.4.0
Text Domain:  astra-child-gtn
*/

/* =============================================================
   GTN Design System — extracted from Thrive Smart Color palette
   Master Hue: HSL(209°, 77%, 54%)
   ============================================================= */

:root {
  /* Brand Colors */
  --gtn-primary:        #2F8AE5;   /* Main Accent — buttons, links, CTAs */
  --gtn-primary-dark:   #1D6BBF;   /* Hover state */
  --gtn-navy:           #050541;   /* Dark Accent — hero backgrounds */
  --gtn-teal:           #204147;   /* Headings 02 — section headings */
  --gtn-body:           #6A6B6C;   /* General Text */
  --gtn-body-alt:       #3B3B3B;   /* General Texts 02 — stronger body */
  --gtn-bg-light:       #F8F8F8;   /* Neutral backgrounds */
  --gtn-bg-accent:      #F0F6FB;   /* Accent Light — callout boxes */
  --gtn-accent-tone:    #A2F1FF;   /* Accent Tone — highlights */
  --gtn-divider:        #E6E6E6;   /* Borders, dividers */
  --gtn-dark-gray:      #5A5D60;   /* Dark Accent Lighter — secondary text */
  --gtn-white:          #FFFFFF;

  /* Tennis Sport Colors */
  --gtn-ball-yellow:    #CCFF00;   /* Fluorescent Yellow — tennis ball */
  --gtn-ball-green:     #C5FA54;   /* Tennis Ball Green */
  --gtn-court-blue:     #3C638E;   /* River Blue — US Open in-bounds */
  --gtn-court-green:    #6C935C;   /* Highland Green — US Open perimeter */
  --gtn-court-forest:   #228B22;   /* Forest Green — traditional hard courts */

  /* Typography */
  --gtn-font-body:      'Open Sans', sans-serif;
  --gtn-font-heading:   'Raleway', sans-serif;
}

/* Base overrides */
body {
  background-color: var(--gtn-court-green) !important;  /* US Open perimeter green — !important overrides Astra inline bg */
  color: var(--gtn-body-alt);
  font-family: var(--gtn-font-body);
  padding: 0 16px 40px;
}

/* White content card — floats on court-green body, constrained width */
#page {
  background-color: var(--gtn-white);
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  box-shadow: 0 2px 24px rgba(5, 5, 65, 0.12);
}

.ast-article-post,
.site-content-above-header-section,
.ast-above-header-wrap {
  background-color: var(--gtn-white);
}

.site-content {
  background-color: var(--gtn-white);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--gtn-font-heading);
  color: var(--gtn-teal);
}

a {
  color: var(--gtn-primary);
}

a:hover {
  color: var(--gtn-primary-dark);
}

/* Primary button */
.ast-btn,
.wp-block-button__link,
.button,
input[type="submit"] {
  background-color: var(--gtn-primary);
  border-color: var(--gtn-primary);
  color: var(--gtn-white);
  border-radius: 4px;
}

.ast-btn:hover,
.wp-block-button__link:hover,
.button:hover,
input[type="submit"]:hover {
  background-color: var(--gtn-primary-dark);
  border-color: var(--gtn-primary-dark);
  color: var(--gtn-white);
}

/* Section backgrounds */
.gtn-bg-light  { background-color: var(--gtn-bg-light); }
.gtn-bg-accent { background-color: var(--gtn-bg-accent); }
.gtn-bg-navy   { background-color: var(--gtn-navy); color: var(--gtn-white); }
.gtn-bg-teal   { background-color: var(--gtn-teal); color: var(--gtn-white); }

/* Blockquote / testimonials */
blockquote {
  border-left: 4px solid var(--gtn-primary);
  padding-left: 1.25rem;
  color: var(--gtn-dark-gray);
  font-style: italic;
}

/* Dividers */
hr {
  border-color: var(--gtn-divider);
}

/* =============================================================
   HEADER
   ============================================================= */

#masthead {
  border-bottom: 1px solid var(--gtn-divider);
  box-shadow: 0 1px 6px rgba(5, 5, 65, 0.06);
}

/* Logo sizing */
.custom-logo {
  max-height: 54px;
  width: auto;
}

/* Nav link spacing and weight */
.main-navigation .menu-item > a,
#site-navigation .menu-item > a {
  font-family: var(--gtn-font-heading);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.3px;
  padding: 6px 14px;
}

/* Active nav item underline */
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
  color: var(--gtn-primary);
  border-bottom: 8px solid var(--gtn-court-green);
}

/* Mobile hamburger */
button.menu-toggle,
.ast-mobile-menu-trigger-minimal .menu-toggle {
  color: var(--gtn-navy);
}

/* =============================================================
   CONTENT
   ============================================================= */

/* Page hero title area */
.ast-page-title-wrap,
.entry-header {
  margin-bottom: 2rem;
}

.entry-title {
  color: var(--gtn-navy);
  font-size: clamp(26px, 4vw, 40px);
  line-height: 1.2;
}

/* Full-width pages: stretch entry to container edge */
.ast-page-builder-template .site-content,
.page-template-default .entry-content {
  max-width: 100%;
}

.page.ast-page-builder-template.ast-no-sidebar .site-content > .ast-container {
  max-width: 100%;
  padding-left: clamp(24px, 4vw, 48px);
  padding-right: clamp(24px, 4vw, 48px);
}

.page.ast-page-builder-template.ast-no-sidebar #primary {
  width: 100%;
  margin: 0;
}

.page.ast-page-builder-template.ast-no-sidebar .site-main > article {
  padding-top: clamp(20px, 3vw, 32px);
}

/* Page content spacing */
.entry-content p {
  line-height: 1.75;
  margin-bottom: 1.2rem;
}

.entry-content h2 {
  color: var(--gtn-navy);
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.entry-content h3 {
  color: var(--gtn-teal);
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}

/* Lists */
.entry-content ul,
.entry-content ol {
  padding-left: 1.5rem;
  margin-bottom: 1.2rem;
}

.entry-content li {
  margin-bottom: 0.4rem;
  line-height: 1.65;
}

/* Horizontal rule in content */
.entry-content hr {
  margin: 2.5rem 0;
  border-top: 1px solid var(--gtn-divider);
}

/* =============================================================
   BLOG ARCHIVE
   ============================================================= */

/* List layout: post card */
.ast-archive-post {
  border-bottom: 1px solid var(--gtn-divider);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}

.ast-archive-post .entry-title a {
  color: var(--gtn-navy);
  text-decoration: none;
  font-size: 22px;
}

.ast-archive-post .entry-title a:hover {
  color: var(--gtn-primary);
}

.ast-archive-post .entry-meta,
.post-meta {
  font-size: 13px;
  color: var(--gtn-body);
  margin-bottom: 0.6rem;
}

.read-more .more-link,
a.read-more {
  font-weight: 700;
  font-size: 14px;
  color: var(--gtn-primary);
  text-decoration: none;
  letter-spacing: 0.2px;
}

/* =============================================================
   FOOTER
   ============================================================= */

.site-footer,
#colophon {
  background-color: var(--gtn-navy);
  color: #9BA8B0;
}

.site-footer a,
#colophon a {
  color: #9BA8B0;
  text-decoration: none;
}

.site-footer a:hover,
#colophon a:hover {
  color: var(--gtn-white);
}

.ast-small-footer {
  font-size: 13px;
  text-align: center;
  padding: 20px 0;
}

/* =============================================================
   GRAVITY FORMS
   ============================================================= */

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper textarea,
.gform_wrapper select {
  border: 1.5px solid var(--gtn-divider);
  border-radius: 6px;
  padding: 10px 14px;
  font-family: var(--gtn-font-body);
  font-size: 15px;
  color: var(--gtn-body-alt);
  transition: border-color 0.15s;
}

.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
  border-color: var(--gtn-primary);
  outline: none;
  box-shadow: 0 0 0 3px rgba(47, 138, 229, 0.12);
}

.gform_wrapper .gform_submit,
.gform_wrapper input[type="submit"] {
  background-color: var(--gtn-primary);
  color: var(--gtn-white);
  border: none;
  border-radius: 6px;
  padding: 12px 28px;
  font-family: var(--gtn-font-heading);
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.gform_wrapper .gform_submit:hover,
.gform_wrapper input[type="submit"]:hover {
  background-color: var(--gtn-primary-dark);
}

.gform_validation_error .gfield_error input,
.gform_validation_error .gfield_error textarea {
  border-color: #E53E3E;
}

/* =============================================================
   ABOUT PAGE — credential list, testimonials
   ============================================================= */

/* Credential list items */
.entry-content .wp-block-list li strong {
  color: var(--gtn-navy);
}

/* Separator lines (--- in about page content) */
.entry-content .wp-block-separator {
  border-color: var(--gtn-divider);
  margin: 2rem 0;
}

/* Quote / callout boxes from About page */
.entry-content .wp-block-pullquote {
  border-top: 4px solid var(--gtn-primary);
  border-bottom: 4px solid var(--gtn-primary);
  padding: 1.5rem;
}

/* =============================================================
   ASSESSMENT + PROFILE PAGES
   ============================================================= */

/* Profile page: suppress Astra page title (template has its own header) */
.page-template-gtn-profile-page .entry-header {
  display: none;
}

/* Profile page: no sidebar, full content width */
.page-template-gtn-profile-page .content-area,
.page-template-gtn-profile-page #primary {
  width: 100%;
  float: none;
  max-width: 100%;
}

/* =============================================================
   UTILITIES
   ============================================================= */

/* Screen-reader-only helper */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* GTN Highlight */
.gtn-highlight {
  background-color: var(--gtn-bg-accent);
  border-left: 4px solid var(--gtn-primary);
  padding: 1rem 1.25rem;
  border-radius: 0 6px 6px 0;
  margin: 1.5rem 0;
}

/* =============================================================
   RESPONSIVE
   ============================================================= */

@media (max-width: 768px) {
  body { padding: 0 0 24px; }
  #page { box-shadow: none; }
  .entry-title { font-size: 26px; }
  .ast-archive-post .entry-title a { font-size: 18px; }
  #masthead { box-shadow: 0 1px 4px rgba(5, 5, 65, 0.08); }
}

@media (max-width: 480px) {
  .entry-content p { font-size: 15px; }
  .wp-block-button__link { width: 100%; text-align: center; }
}

/* =============================================================
   PAGE TITLE SUPPRESSION
   ============================================================= */
.page-id-8308 .entry-title,
.page-id-4482 .entry-title,
.page-id-20 .entry-title { display: none; }

.page-id-8308 .entry-header { display: none; }

/* Reduce gap between nav and first H1 on home */
.page-id-8308 .entry-content { padding-top: 0; }
.page-id-8308 .entry-content > *:first-child { margin-top: 0; }
.page-id-8308 .site-main > article { padding-top: 12px; }

/* =============================================================
   AUDIENCE CARDS
   ============================================================= */
.gtn-audience-card {
  background: var(--gtn-bg-accent);
  border-radius: 8px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  height: 100%;
  text-align: center;
}
.gtn-audience-card h3,
.gtn-audience-card p { margin-bottom: 0; }

.gtn-audience-card .wp-block-buttons {
  justify-content: center;
  margin-top: auto;
}

.gtn-audience-card .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  max-width: 13rem;
  padding: 0.8rem 1.15rem;
  line-height: 1.25;
  text-align: center;
  white-space: normal;
}

/* Assessment card */
.gtn-assessment-card {
  background: var(--gtn-bg-accent);
  border: 1px solid rgba(47, 138, 229, 0.16);
  border-radius: 8px;
  padding: 1.5rem 2rem;
  margin-top: 2rem;
  text-align: center;
}

.gtn-home-hero-actions {
  gap: 0.75rem;
  margin: 1.75rem 0 2.5rem;
}

.gtn-home-hero-actions .wp-block-button__link {
  min-width: 12.5rem;
}

/* =============================================================
   LANDING PAGE MODULES
   ============================================================= */
.gtn-page-cta {
  background: linear-gradient(135deg, rgba(47, 138, 229, 0.12) 0%, rgba(244, 198, 57, 0.12) 100%);
  border: 1px solid rgba(47, 138, 229, 0.16);
  border-radius: 12px;
  margin: 2.5rem 0 1rem;
  padding: 1.75rem 2rem;
}

.gtn-page-cta h2,
.gtn-page-cta p {
  margin-bottom: 0.75rem;
}

.gtn-page-cta .wp-block-buttons {
  gap: 0.75rem;
  margin-top: 1rem;
}

.gtn-page-cta .wp-block-button__link {
  min-width: 12rem;
}

.gtn-resource-list a {
  font-weight: 600;
}

/* Audience archive landing layout */
.category-tennis-player .site-content > .ast-container,
.category-tennis-fan .site-content > .ast-container,
.category-tennis-parent .site-content > .ast-container {
  max-width: 100%;
  padding-left: clamp(24px, 4vw, 48px);
  padding-right: clamp(24px, 4vw, 48px);
}

.category-tennis-player #primary,
.category-tennis-fan #primary,
.category-tennis-parent #primary {
  margin: 0;
  width: 100%;
}

.category-tennis-player .ast-archive-description,
.category-tennis-fan .ast-archive-description,
.category-tennis-parent .ast-archive-description {
  display: none;
}

.gtn-archive-hero {
  margin: 0 0 2rem;
  max-width: 56rem;
}

.gtn-archive-hero__image-wrap {
  margin-bottom: 1.5rem;
  border-radius: 6px;
  overflow: hidden;
  line-height: 0;
}

.gtn-archive-hero__image {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1200 / 630;
  object-fit: cover;
}

.gtn-archive-hero__eyebrow {
  color: var(--gtn-primary);
  font-family: var(--gtn-font-heading);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  margin: 0 0 0.5rem;
  text-transform: uppercase;
}

.gtn-archive-hero__intro {
  font-size: 1.08rem;
  margin-bottom: 0;
}

.gtn-archive-hero__title {
  margin: 0 0 0.75rem;
}

.gtn-page-cta--archive {
  margin-top: 3rem;
}

/* =============================================================
   FILTER BAR — audience archive topic filters
   ============================================================= */
.gtn-filter-bar {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0.1rem 0 0.5rem;
  margin: 1.5rem 0 0;
}
.gtn-filter-bar::-webkit-scrollbar { display: none; }

.gtn-filter-bar__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  white-space: nowrap;
  padding: 0.35rem 0.9rem;
  border-radius: 2rem;
  font-size: 0.85rem;
  font-weight: 600;
  font-family: var(--gtn-font-heading);
  color: var(--gtn-teal);
  background: var(--gtn-bg-accent);
  border: 1.5px solid var(--gtn-divider);
  text-decoration: none;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.gtn-filter-bar__btn:hover {
  background: var(--gtn-primary);
  color: var(--gtn-white);
  border-color: var(--gtn-primary);
}
.gtn-filter-bar__btn.is-active {
  background: var(--gtn-teal);
  color: var(--gtn-white);
  border-color: var(--gtn-teal);
}

.gtn-filter-bar__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.3rem;
  border-radius: 1rem;
  font-size: 0.72rem;
  font-weight: 700;
  background: rgba(0, 0, 0, 0.12);
  color: inherit;
}

/* =============================================================
   AUDIENCE ARCHIVE — 3-column post grid, image + title only
   ============================================================= */

/* Astra's archive rows are float/clearfix based by default. Converting the row
   to flex while leaving the inherited grid helpers in place causes the first
   rendered row to break inconsistently. Use a clean archive-only grid instead. */
.gtn-audience-archive #main .ast-row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 1.25rem !important;
  row-gap: 1.75rem !important;
  align-items: start;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.gtn-audience-archive #main .ast-row::before,
.gtn-audience-archive #main .ast-row::after {
  content: none !important;
  display: none !important;
}

/* Reset Astra's float-based column widths on every direct card item. */
.gtn-audience-archive #main .ast-row > article {
  width: auto !important;
  max-width: none !important;
  float: none !important;
  clear: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
  border-bottom: none !important;
  min-width: 0;
  overflow: hidden;
}

/* Inner wrappers must not add extra horizontal padding */
.gtn-audience-archive .ast-article-post .ast-article-inner,
.gtn-audience-archive .ast-article-post .post-content {
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Hide excerpt (ast-excerpt-container), meta, read-more, footer */
.gtn-audience-archive .ast-article-post .ast-blog-meta-container,
.gtn-audience-archive .ast-article-post .entry-meta,
.gtn-audience-archive .ast-article-post .ast-excerpt-container,
.gtn-audience-archive .ast-article-post .entry-content,
.gtn-audience-archive .ast-article-post .ast-read-more-container,
.gtn-audience-archive .ast-article-post .entry-footer {
  display: none !important;
}

/* Tighten title so it sits snugly under the image */
.gtn-audience-archive .ast-article-post .entry-title {
  font-size: 0.93rem;
  line-height: 1.35;
  margin: 0.55rem 0 0.5rem;
}

.gtn-audience-archive .ast-article-post .entry-title a {
  color: var(--gtn-teal);
  text-decoration: none;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.gtn-audience-archive .ast-article-post .entry-title a:hover {
  color: var(--gtn-primary);
}

/* Thumbnail fills card width, uniform 16:9, no overflow */
.gtn-audience-archive .ast-article-post .ast-blog-featured-section {
  line-height: 0;
  overflow: hidden;
}

/* <a> inside post-thumb is inline by default — make it block so
   the img's width: 100% resolves against the block container */
.gtn-audience-archive .ast-article-post .post-thumb-img-content a {
  display: block;
  overflow: hidden;
}

.gtn-audience-archive .ast-article-post .ast-blog-featured-section img {
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  display: block !important;
  border-radius: 4px;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

/* Responsive: 2 cols on tablet, 1 col on mobile */
@media (max-width: 768px) {
  .gtn-audience-archive #main .ast-row > article {
    width: auto !important;
  }

  .gtn-audience-archive #main .ast-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .gtn-audience-archive #main .ast-row {
    grid-template-columns: 1fr;
  }
}

/* =============================================================
   FOOTER
   ============================================================= */
.site-footer {
  padding: 0 !important;
}

.gtn-site-footer {
  background: linear-gradient(180deg, #050541 0%, #0c155d 100%);
  color: rgba(255, 255, 255, 0.82);
}

.gtn-site-footer__inner {
  margin: 0 auto;
  max-width: 1200px;
  padding: 36px clamp(24px, 4vw, 48px) 22px;
}

.gtn-site-footer__grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1.2fr 1fr 1fr;
}

.gtn-site-footer__brand h2,
.gtn-site-footer__nav h3 {
  color: var(--gtn-white);
  margin: 0 0 0.75rem;
}

.gtn-site-footer__brand p {
  margin: 0;
  max-width: 34rem;
}

.gtn-site-footer__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gtn-site-footer__nav li + li {
  margin-top: 0.55rem;
}

.gtn-site-footer__nav a {
  color: rgba(255, 255, 255, 0.84);
}

.gtn-site-footer__nav a:hover {
  color: var(--gtn-ball-yellow);
}

.gtn-site-footer__bar {
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  margin-top: 2rem;
  padding-top: 1rem;
}

.gtn-site-footer__bar p {
  color: rgba(255, 255, 255, 0.68);
  font-size: 14px;
  margin: 0;
}

@media (max-width: 921px) {
  .gtn-site-footer__grid {
    grid-template-columns: 1fr;
  }

  .gtn-page-cta {
    padding: 1.5rem;
  }
}
