/*
Theme Name: Palani Sports Association
Theme URI: https://palanisportsassociation.com
Author: Cloud Link Digital Solutions
Author URI: https://cloudlinkdigital.in
Description: A custom, Elementor & Gutenberg-friendly theme for Palani Sports Association, a football coaching center for school students in Palani, Tamil Nadu. Registered No. 37/2025.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: psa-theme
Tags: sports, coaching, education, custom-colors, custom-logo, custom-menu, translation-ready
*/

/* =========================================================
   DESIGN TOKENS
   Palette: Navy (from crest) + Pista Green (brand accent)
   Display type: Oswald (condensed, sporty, jersey-numeral feel)
   Body type: Work Sans
   Signature: pitch-line dividers + jersey-number badges for
   the age-group sequence (U8 -> U18), since age groups are a
   real ordered progression, not decoration.
   ========================================================= */
:root{
  --psa-navy: #15304A;
  --psa-navy-deep: #0E2233;
  --psa-navy-tint: #E7EDF2;

  --psa-pista: #9CC66B;
  --psa-pista-dark: #6E9B45;
  --psa-pista-tint: #EEF6E4;

  --psa-cream: #FAFAF6;
  --psa-white: #FFFFFF;
  --psa-charcoal: #22262A;
  --psa-grey: #63696E;
  --psa-line: #E1E4DE;

  --font-display: 'Oswald', 'Arial Narrow', sans-serif;
  --font-body: 'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;

  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 24px;

  --container: 1180px;
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 40px;
  --space-5: 64px;
  --space-6: 96px;
}

/* =========================================================
   RESET & BASE
   ========================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  font-family: var(--font-body);
  color: var(--psa-charcoal);
  background: var(--psa-cream);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img{ max-width: 100%; height: auto; display: block; }
a{ color: var(--psa-navy); text-decoration: none; }
ul{ margin: 0; padding: 0; list-style: none; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  color: var(--psa-navy);
  line-height: 1.12;
  margin: 0 0 var(--space-2);
}
h1{ font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 700; }
h2{ font-size: clamp(1.7rem, 3.2vw, 2.4rem); font-weight: 700; }
h3{ font-size: 1.3rem; font-weight: 600; }
p{ margin: 0 0 var(--space-2); }

.container{ max-width: var(--container); margin: 0 auto; padding: 0 var(--space-3); }
.alignwide{ max-width: 1400px; margin-left: auto; margin-right: auto; }
.alignfull{ max-width: none; width: 100%; }

/* Skip link */
.skip-link{
  position: absolute; left: -999px; top: 0; background: var(--psa-navy); color: #fff;
  padding: 10px 18px; z-index: 10000; border-radius: 0 0 var(--radius-sm) 0;
}
.skip-link:focus{ left: 0; }

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline: 3px solid var(--psa-pista-dark);
  outline-offset: 2px;
}

/* Eyebrow / utility label (jersey tag styling) */
.eyebrow{
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.78rem;
  color: var(--psa-pista-dark);
  font-weight: 600;
  margin-bottom: var(--space-2);
}
.eyebrow::before{
  content: '';
  width: 22px; height: 2px; background: var(--psa-pista-dark);
  display: inline-block;
}

/* Buttons */
.btn{
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.92rem;
  font-weight: 600;
  padding: 14px 30px;
  border-radius: var(--radius-sm);
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover{ transform: translateY(-2px); }
.btn-primary{ background: var(--psa-pista); color: var(--psa-navy-deep); }
.btn-primary:hover{ background: var(--psa-pista-dark); color: #fff; }
.btn-outline{ background: transparent; border-color: rgba(255,255,255,0.55); color: #fff; }
.btn-outline:hover{ background: rgba(255,255,255,0.12); border-color: #fff; }
.btn-navy{ background: var(--psa-navy); color: #fff; }
.btn-navy:hover{ background: var(--psa-navy-deep); }

/* =========================================================
   SIGNATURE: PITCH-LINE DIVIDER
   A halfway-line + centre-circle motif marking section breaks.
   ========================================================= */
.pitch-divider{
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto;
  width: 100%;
  max-width: 260px;
  padding: var(--space-4) 0;
}
.pitch-divider svg{ width: 100%; height: auto; opacity: 0.9; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position: sticky; top: 0; z-index: 999;
  background: var(--psa-cream);
  border-bottom: 1px solid var(--psa-line);
}
.header-inner{
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px var(--space-3);
  max-width: var(--container);
  margin: 0 auto;
  gap: var(--space-3);
}
.site-branding{ display: flex; align-items: center; gap: 12px; }
.site-branding img{ height: 56px; width: auto; }
.site-branding .brand-text{ display: flex; flex-direction: column; line-height: 1.15; }
.site-branding .site-title{
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: 1.05rem; color: var(--psa-navy); margin: 0;
}
.site-branding .site-tagline{
  font-size: 0.72rem; color: var(--psa-grey); text-transform: uppercase; letter-spacing: 0.08em;
}

.primary-menu{ display: flex; gap: var(--space-4); align-items: center; }
.primary-menu ul{ display: flex; gap: var(--space-4); }
.primary-menu a{
  font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.04em;
  font-size: 0.92rem; font-weight: 600; color: var(--psa-navy);
  padding: 8px 2px; border-bottom: 2px solid transparent;
}
.primary-menu a:hover, .primary-menu .current-menu-item a{ border-color: var(--psa-pista-dark); }

.menu-toggle{
  display: none; background: var(--psa-navy); color: #fff; border: 0; padding: 10px 14px;
  border-radius: var(--radius-sm); cursor: pointer; font-size: 1rem;
}

@media (max-width: 880px){
  .menu-toggle{ display: inline-flex; }
  .primary-menu{ position: absolute; top: 100%; left: 0; right: 0; background: var(--psa-cream);
    border-bottom: 1px solid var(--psa-line); display: none; flex-direction: column; padding: var(--space-2) var(--space-3); }
  .primary-menu.is-open{ display: flex; }
  .primary-menu ul{ flex-direction: column; gap: 4px; width: 100%; }
  .primary-menu li{ width: 100%; }
  .primary-menu a{ display: block; padding: 12px 0; }
}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  background: linear-gradient(160deg, var(--psa-navy-deep) 0%, var(--psa-navy) 62%, var(--psa-pista-dark) 130%);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.hero-inner{
  max-width: var(--container); margin: 0 auto; padding: var(--space-6) var(--space-3);
  display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--space-5); align-items: center;
}
.hero-copy .eyebrow{ color: var(--psa-pista); }
.hero-copy .eyebrow::before{ background: var(--psa-pista); }
.hero h1{ color: #fff; }
.hero-copy p.lead{ font-size: 1.15rem; color: rgba(255,255,255,0.86); max-width: 46ch; }
.hero-actions{ display: flex; gap: var(--space-2); margin-top: var(--space-3); flex-wrap: wrap; }

.hero-stats{ display: flex; gap: var(--space-4); margin-top: var(--space-5); flex-wrap: wrap; }
.hero-stat .num{ font-family: var(--font-display); font-size: 2.2rem; font-weight: 700; color: var(--psa-pista); line-height: 1; }
.hero-stat .label{ font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255,255,255,0.72); margin-top: 4px; }

.hero-media{ position: relative; }
.hero-media .crest{
  width: 100%; max-width: 340px; margin: 0 auto; display: block;
  filter: drop-shadow(0 20px 40px rgba(0,0,0,0.35));
}

@media (max-width: 880px){
  .hero-inner{ grid-template-columns: 1fr; text-align: center; }
  .hero-copy p.lead{ margin-left: auto; margin-right: auto; }
  .hero-actions, .hero-stats{ justify-content: center; }
  .hero-media .crest{ max-width: 220px; }
}

/* =========================================================
   SECTIONS (generic)
   ========================================================= */
.section{ padding: var(--space-6) 0; }
.section-tight{ padding: var(--space-5) 0; }
.section-alt{ background: var(--psa-white); }
.section-navy{ background: var(--psa-navy); color: #fff; }
.section-navy h2{ color: #fff; }
.section-navy .eyebrow{ color: var(--psa-pista); }
.section-navy .eyebrow::before{ background: var(--psa-pista); }
.section-head{ max-width: 640px; margin: 0 auto var(--space-5); text-align: center; }
.section-head p{ color: var(--psa-grey); }
.section-navy .section-head p{ color: rgba(255,255,255,0.78); }

/* Card grid */
.grid{ display: grid; gap: var(--space-3); }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-4{ grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px){ .grid-3, .grid-4{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .grid-3, .grid-4{ grid-template-columns: 1fr; } }

.card{
  background: var(--psa-white); border: 1px solid var(--psa-line); border-radius: var(--radius-md);
  padding: var(--space-3); transition: transform .18s ease, box-shadow .18s ease;
}
.card:hover{ transform: translateY(-4px); box-shadow: 0 16px 30px rgba(21,48,74,0.09); }
.card .icon{
  width: 46px; height: 46px; border-radius: 50%; background: var(--psa-pista-tint);
  display: flex; align-items: center; justify-content: center; margin-bottom: var(--space-2);
  color: var(--psa-pista-dark); font-family: var(--font-display); font-weight: 700;
}

/* Jersey-number badges for the age-group sequence */
.age-groups{ display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-2); }
@media (max-width: 900px){ .age-groups{ grid-template-columns: repeat(2,1fr); } }
.age-card{
  text-align: center; background: var(--psa-white); border: 1px solid var(--psa-line);
  border-radius: var(--radius-md); padding: var(--space-3) var(--space-2);
}
.age-card .badge{
  width: 56px; height: 56px; border-radius: 50%; margin: 0 auto var(--space-2);
  background: var(--psa-navy); color: var(--psa-pista);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 700; font-size: 1.05rem;
  border: 2px solid var(--psa-pista);
}
.age-card h3{ font-size: 1rem; margin-bottom: 4px; }
.age-card p{ color: var(--psa-grey); font-size: 0.92rem; margin: 0; }

/* Testimonials */
.testimonial{
  background: var(--psa-pista-tint); border-radius: var(--radius-md); padding: var(--space-3);
  border-left: 4px solid var(--psa-pista-dark);
}
.testimonial p{ font-style: italic; color: var(--psa-charcoal); }
.testimonial .author{ font-family: var(--font-display); text-transform: uppercase; font-size: 0.85rem; color: var(--psa-navy); font-weight: 600; }

/* Separate trainer and founder blocks */
.people-section{ position: relative; }
.people-section-founders{ border-top: 1px solid var(--psa-line); }
.people-section .section-head{ margin-bottom: var(--space-4); }
.people-grid-trainers{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.people-grid-founders{ grid-template-columns: repeat(2, minmax(240px, 360px)); justify-content: center; }
@media (max-width: 900px){ .people-grid-trainers{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px){ .people-grid-trainers,.people-grid-founders{ grid-template-columns: 1fr; } }

/* People profile cards (coach / founders) */
.people-grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: var(--space-3); max-width: var(--container); margin: 0 auto; padding: 0 var(--space-3); }
@media (max-width: 620px){ .people-grid{ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); } }
.people-card{
  background: var(--psa-white); border: 1px solid var(--psa-line); border-radius: var(--radius-md);
  overflow: hidden; text-align: center; transition: transform .18s ease, box-shadow .18s ease;
}
.people-card:hover{ transform: translateY(-4px); box-shadow: 0 16px 30px rgba(21,48,74,0.09); }
.people-card .photo{ aspect-ratio: 4/5; background: var(--psa-navy-tint); overflow: hidden; }
.people-card .photo img{ width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.people-card .info{ padding: var(--space-3) var(--space-2); }
.people-card .role{
  font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.08em;
  font-size: 0.72rem; color: var(--psa-pista-dark); font-weight: 600; margin-bottom: 6px;
}
.people-card h3{ margin-bottom: 4px; }
.people-card p.bio{ color: var(--psa-grey); font-size: 0.92rem; margin: 0; }

/* Team photo gallery */
.gallery-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); max-width: var(--container); margin: 0 auto; padding: 0 var(--space-3); }
.gallery-grid .gallery-item{ border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--psa-line); aspect-ratio: 4/3; background: var(--psa-navy-tint); }
.gallery-grid .gallery-item img{ width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.gallery-grid .gallery-item:hover img{ transform: scale(1.06); }
.gallery-grid .gallery-item.tall{ grid-row: span 2; aspect-ratio: auto; }
@media (max-width: 900px){ .gallery-grid{ grid-template-columns: repeat(2,1fr); } .gallery-grid .gallery-item.tall{ grid-row: span 1; aspect-ratio: 4/3; } }
@media (max-width: 560px){ .gallery-grid{ grid-template-columns: 1fr; } }

/* CTA band */
.cta-band{
  background: var(--psa-pista); color: var(--psa-navy-deep);
  border-radius: var(--radius-lg); padding: var(--space-5) var(--space-4);
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap;
}
.cta-band h2{ color: var(--psa-navy-deep); margin: 0; }

/* =========================================================
   PAGE / CONTENT DEFAULTS (Gutenberg-friendly)
   ========================================================= */
.page-hero{
  background: var(--psa-navy); color: #fff; padding: var(--space-5) 0 var(--space-4);
  text-align: center;
}
.page-hero h1{ color: #fff; margin-bottom: 4px; }
.page-hero .breadcrumb{ color: rgba(255,255,255,0.7); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.08em; }

.entry-content{ max-width: 780px; margin: 0 auto; padding: var(--space-5) var(--space-3); }
.entry-content > *{ margin-bottom: var(--space-2); }
.entry-content h2{ margin-top: var(--space-4); }
.entry-content .wp-block-quote{
  border-left: 4px solid var(--psa-pista-dark); padding-left: var(--space-3); font-style: italic; color: var(--psa-grey);
}
.entry-content .wp-block-image{ margin: var(--space-3) 0; }

/* Blog listing */
.post-list{ display: grid; gap: var(--space-4); grid-template-columns: repeat(3, 1fr); max-width: var(--container); margin: 0 auto; padding: 0 var(--space-3); }
@media (max-width: 900px){ .post-list{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .post-list{ grid-template-columns: 1fr; } }
.post-card{ background: var(--psa-white); border: 1px solid var(--psa-line); border-radius: var(--radius-md); overflow: hidden; }
.post-card .thumb{ aspect-ratio: 16/10; overflow: hidden; background: var(--psa-navy-tint); }
.post-card .thumb img{ width: 100%; height: 100%; object-fit: cover; }
.post-card .body{ padding: var(--space-3); }
.post-card .meta{ font-size: 0.78rem; color: var(--psa-pista-dark); text-transform: uppercase; letter-spacing: 0.06em; font-family: var(--font-display); margin-bottom: 6px; }
.post-card h2{ font-size: 1.1rem; margin-bottom: 8px; }
.post-card p{ color: var(--psa-grey); font-size: 0.95rem; }

.pagination{ display: flex; justify-content: center; gap: 10px; padding: var(--space-4) 0; }
.pagination a, .pagination span{
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px; border-radius: var(--radius-sm); border: 1px solid var(--psa-line);
  font-family: var(--font-display); color: var(--psa-navy);
}
.pagination .current{ background: var(--psa-navy); color: #fff; border-color: var(--psa-navy); }

/* =========================================================
   CONTACT FORM
   ========================================================= */
.contact-wrap{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); max-width: var(--container); margin: 0 auto; padding: var(--space-5) var(--space-3); }
@media (max-width: 880px){ .contact-wrap{ grid-template-columns: 1fr; } }
.contact-info .info-item{ display: flex; gap: 14px; margin-bottom: var(--space-3); align-items: flex-start; }
.contact-info .info-item .icon{
  width: 40px; height: 40px; border-radius: 50%; background: var(--psa-pista-tint); color: var(--psa-pista-dark);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-family: var(--font-display); font-weight: 700;
}
.contact-info .info-item h3{ font-size: 0.95rem; margin-bottom: 2px; }
.contact-info .info-item p{ color: var(--psa-grey); margin: 0; }

.psa-form{ background: var(--psa-white); border: 1px solid var(--psa-line); border-radius: var(--radius-md); padding: var(--space-4); }
.psa-form .field{ margin-bottom: var(--space-2); }
.psa-form label{ display: block; font-family: var(--font-display); text-transform: uppercase; font-size: 0.78rem; letter-spacing: 0.06em; color: var(--psa-navy); margin-bottom: 6px; }
.psa-form input, .psa-form textarea, .psa-form select{
  width: 100%; padding: 12px 14px; border: 1px solid var(--psa-line); border-radius: var(--radius-sm);
  font-family: var(--font-body); font-size: 1rem; background: var(--psa-cream);
}
.psa-form input:focus, .psa-form textarea:focus{ outline: none; border-color: var(--psa-pista-dark); background: #fff; }
.psa-form textarea{ min-height: 130px; resize: vertical; }
.psa-form .hp-field{ position: absolute; left: -9999px; }
.form-notice{ padding: 12px 16px; border-radius: var(--radius-sm); margin-bottom: var(--space-2); font-size: 0.95rem; }
.form-notice.success{ background: var(--psa-pista-tint); color: var(--psa-navy-deep); border: 1px solid var(--psa-pista); }
.form-notice.error{ background: #FBEAEA; color: #A32626; border: 1px solid #E9B4B4; }

.map-embed{ border-radius: var(--radius-md); overflow: hidden; margin-top: var(--space-3); border: 1px solid var(--psa-line); }
.map-embed iframe{ width: 100%; height: 260px; border: 0; display: block; }

/* Floating WhatsApp button */
.psa-whatsapp-float{
  position: fixed; right: 22px; bottom: 22px; z-index: 9999;
  width: 58px; height: 58px; border-radius: 50%;
  background: #25D366; color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.25);
  transition: transform .18s ease, box-shadow .18s ease;
}
.psa-whatsapp-float:hover{ transform: translateY(-3px) scale(1.05); box-shadow: 0 12px 26px rgba(0,0,0,0.3); }
.psa-whatsapp-float svg{ width: 30px; height: 30px; }
@media (max-width: 560px){
  .psa-whatsapp-float{ right: 16px; bottom: 16px; width: 52px; height: 52px; }
  .psa-whatsapp-float svg{ width: 26px; height: 26px; }
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background: var(--psa-navy-deep); color: rgba(255,255,255,0.82); padding: var(--space-5) 0 var(--space-3); }
.footer-grid{ display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: var(--space-4); max-width: var(--container); margin: 0 auto; padding: 0 var(--space-3); }
@media (max-width: 880px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .footer-grid{ grid-template-columns: 1fr; } }
.footer-grid h3{ color: #fff; font-size: 0.95rem; letter-spacing: 0.08em; margin-bottom: var(--space-2); }
.footer-grid p, .footer-grid a{ color: rgba(255,255,255,0.72); font-size: 0.92rem; }
.footer-grid ul li{ margin-bottom: 8px; }
.footer-grid a:hover{ color: var(--psa-pista); }
.footer-brand{ display: flex; gap: 12px; align-items: center; margin-bottom: var(--space-2); }
.footer-brand img{ height: 48px; }
.footer-brand .name{ font-family: var(--font-display); text-transform: uppercase; color: #fff; font-size: 1rem; }
.footer-bottom{
  max-width: var(--container); margin: var(--space-4) auto 0; padding: var(--space-3) var(--space-3) 0;
  border-top: 1px solid rgba(255,255,255,0.12); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px;
  font-size: 0.82rem; color: rgba(255,255,255,0.6);
}

/* =========================================================
   404
   ========================================================= */
.error-404{ text-align: center; padding: var(--space-6) var(--space-3); max-width: 600px; margin: 0 auto; }
.error-404 .code{ font-family: var(--font-display); font-size: 5rem; color: var(--psa-pista-dark); font-weight: 700; line-height: 1; }

/* Elementor / Gutenberg compatibility helpers */
.elementor-page .site-content{ padding: 0; }
.wp-block-group, .wp-block-columns{ margin-bottom: var(--space-2); }

/* =========================================================
   BLOG / JOURNAL
   ========================================================= */
.blog-hero{
  background: linear-gradient(145deg, var(--psa-navy-deep) 0%, var(--psa-navy) 68%, var(--psa-pista-dark) 145%);
  color: #fff; text-align: center; padding: clamp(56px, 8vw, 92px) 0;
}
.blog-hero .eyebrow, .single-post-header .eyebrow{ color: var(--psa-pista); }
.blog-hero h1{ color:#fff; max-width:760px; margin:0 auto 14px; font-size:clamp(2.1rem,5vw,4rem); }
.blog-hero p:not(.eyebrow){ color:rgba(255,255,255,.82); max-width:650px; margin:0 auto; font-size:1.05rem; }
.blog-toolbar{ display:flex; justify-content:space-between; align-items:center; gap:24px; padding-top:32px; padding-bottom:24px; border-bottom:1px solid var(--psa-line); }
.blog-intro{ display:flex; flex-direction:column; gap:4px; }
.blog-intro span{ font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:var(--psa-pista-dark); font-family:var(--font-display); font-weight:600; }
.blog-intro strong{ font-family:var(--font-display); color:var(--psa-navy); font-size:1.1rem; }
.blog-categories{ display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.blog-categories a{ border:1px solid var(--psa-line); border-radius:999px; padding:8px 14px; font-size:.82rem; color:var(--psa-navy); }
.blog-categories a:hover,.blog-categories a.active{ background:var(--psa-navy); border-color:var(--psa-navy); color:#fff; }
.blog-section{ padding-top:28px; }
.post-card{ box-shadow:0 8px 24px rgba(21,48,74,.05); transition:transform .2s ease, box-shadow .2s ease; }
.post-card:hover{ transform:translateY(-4px); box-shadow:0 14px 34px rgba(21,48,74,.1); }
.post-card .thumb img{ transition:transform .3s ease; }
.post-card:hover .thumb img{ transform:scale(1.035); }
.post-meta{ display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; margin-bottom:10px; font-size:.74rem; color:var(--psa-grey); text-transform:uppercase; letter-spacing:.055em; font-family:var(--font-display); }
.post-meta > span:not(:last-child)::after{ content:'·'; margin-left:12px; color:var(--psa-line); }
.post-category{ color:var(--psa-pista-dark)!important; font-weight:700; }
.post-card h2 a{ color:var(--psa-navy); }
.post-card h2 a:hover{ color:var(--psa-pista-dark); }
.read-link{ display:inline-flex; align-items:center; gap:8px; margin-top:6px; font-family:var(--font-display); font-size:.84rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--psa-navy); }
.read-link span{ font-size:1.05rem; transition:transform .2s ease; }
.read-link:hover span{ transform:translateX(4px); }
.empty-blog{ max-width:760px; text-align:center; padding:60px 24px; border:1px solid var(--psa-line); border-radius:var(--radius-md); background:var(--psa-white); }
.empty-blog h2{ color:var(--psa-navy); }

.single-post-header{ background:var(--psa-navy); color:#fff; padding:clamp(48px,7vw,78px) 0 54px; }
.container.narrow{ max-width:860px; }
.single-post-header h1{ color:#fff; font-size:clamp(2rem,4.5vw,3.5rem); line-height:1.08; margin:0; }
.single-meta{ color:rgba(255,255,255,.72); }
.single-meta .post-category{ color:var(--psa-pista)!important; }
.single-excerpt{ max-width:720px; color:rgba(255,255,255,.78); font-size:1.08rem; line-height:1.7; margin:18px 0 0; }
.single-featured{ max-width:1000px; margin-top:-28px; position:relative; }
.single-featured img{ display:block; width:100%; max-height:560px; object-fit:cover; border-radius:var(--radius-md); box-shadow:0 16px 45px rgba(0,0,0,.16); }
.entry-content{ font-size:1.06rem; line-height:1.85; }
.entry-content p,.entry-content ul,.entry-content ol{ margin-bottom:1.25em; }
.entry-content a{ text-decoration:underline; text-decoration-color:var(--psa-pista); text-underline-offset:3px; }
.entry-content img{ border-radius:var(--radius-sm); }
.entry-content .wp-block-heading{ color:var(--psa-navy); }
.post-footer{ border-top:1px solid var(--psa-line); padding-top:24px; padding-bottom:48px; }
.post-author{ display:flex; flex-direction:column; gap:4px; }
.post-author strong{ font-family:var(--font-display); color:var(--psa-navy); }
.post-author span{ color:var(--psa-grey); font-size:.9rem; }
.related-posts{ background:var(--psa-cream); }
.section-heading{ max-width:var(--container); margin:0 auto 28px; padding:0 var(--space-3); }
.section-heading h2{ margin-bottom:0; color:var(--psa-navy); }
.related-grid{ padding:0; }
@media (max-width: 760px){
  .blog-toolbar{ flex-direction:column; align-items:flex-start; }
  .blog-categories{ justify-content:flex-start; }
  .single-featured{ margin-top:-16px; }
  .single-featured img{ border-radius:var(--radius-sm); }
}

/* Instagram links */
.footer-social-link{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:700; }
.instagram-mark{ font-size:1.35rem; line-height:1; }
.instagram-band{ align-items:center; }
@media (max-width:760px){ .instagram-band{ align-items:flex-start; } }
