/*
Theme Name: Granite Teacher Support Complete v15
Theme URI: https://www.graniteteachersupport.com/
Author: OpenAI for Granite Teacher Support
Description: Stable, editable Granite Teacher Support block theme using native WordPress blocks only. No automatic page overwrites.
Version: 15.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: granite-teacher-support
*/

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

.gts-card {
  height: 100%;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.gts-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(22, 43, 69, .10);
  border-color: #a7b8ca !important;
}
.gts-feature {
  overflow: hidden;
}
.gts-visual {
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.gts-visual::before,
.gts-visual::after {
  content: '';
  position: absolute;
  border-radius: 999px;
  background: rgba(255,255,255,.15);
}
.gts-visual::before { width: 240px; height: 240px; right: -70px; top: -60px; }
.gts-visual::after { width: 160px; height: 160px; left: -40px; bottom: -60px; }
.gts-visual-mark {
  position: relative;
  z-index: 1;
  font-size: clamp(3rem, 8vw, 6rem);
  font-weight: 800;
  letter-spacing: -.06em;
}
.gts-anchor-nav a { text-decoration: none; }
.gts-anchor-nav a:hover { text-decoration: underline; }
.gts-resource-link a { text-decoration: none; }
.gts-resource-link a:hover { text-decoration: underline; }
.gts-eyebrow { letter-spacing: .11em; text-transform: uppercase; }

@media (max-width: 781px) {
  .gts-visual { min-height: 220px; }
}


/* ===== GTS Complete v2 layout system ===== */
.gts-section { padding: 72px 24px; }
.gts-section-tight { padding: 48px 24px; }
.gts-section-soft { background:#F6F8FA; }
.gts-section-pale { background:#EEF5FA; }
.gts-section-dark { background:#17324D; color:#fff; }
.gts-section-dark h1,.gts-section-dark h2,.gts-section-dark h3,.gts-section-dark p,.gts-section-dark a { color:#fff; }
.gts-wrap { max-width:1180px; margin:0 auto; }
.gts-wrap-narrow { max-width:860px; margin:0 auto; }
.gts-center { text-align:center; }
.gts-section-intro { max-width:760px; margin-left:auto; margin-right:auto; text-align:center; }
.gts-grid { display:grid; gap:24px; align-items:stretch; }
.gts-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gts-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.gts-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.gts-grid-5 { grid-template-columns:repeat(5,minmax(0,1fr)); }
.gts-card { background:#fff; border:1px solid #D9E2EA; border-radius:14px; padding:28px; box-sizing:border-box; }
.gts-card h3 { margin-top:0; }
.gts-card p:last-child { margin-bottom:0; }
.gts-card-accent { border-top:5px solid #1D5F91; }
.gts-card-soft { background:#F6F8FA; }
.gts-feature { background:#fff; border:1px solid #D9E2EA; border-radius:16px; padding:34px; }
.gts-feature-blue { background:#EEF5FA; border-color:#C8DCEB; }
.gts-two-col { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:56px; align-items:center; }
.gts-two-col-equal { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; align-items:stretch; }
.gts-hero { padding:88px 24px; background:#EEF5FA; }
.gts-hero .gts-two-col { min-height:360px; }
.gts-visual-panel { min-height:320px; border-radius:18px; background:#1D5F91; display:flex; align-items:center; justify-content:center; color:#fff; overflow:hidden; position:relative; }
.gts-visual-panel::before,.gts-visual-panel::after { content:""; position:absolute; border-radius:999px; background:rgba(255,255,255,.12); }
.gts-visual-panel::before { width:260px;height:260px;right:-70px;top:-70px; }
.gts-visual-panel::after { width:190px;height:190px;left:-55px;bottom:-80px; }
.gts-visual-label { position:relative; z-index:1; font-size:clamp(2.5rem,7vw,5.5rem); font-weight:800; letter-spacing:-.05em; }
.gts-kicker { color:#1D5F91; letter-spacing:.12em; text-transform:uppercase; font-weight:750; font-size:.82rem; }
.gts-anchor-bar { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.gts-anchor-bar a { display:inline-block; padding:9px 14px; background:#fff; border:1px solid #D9E2EA; border-radius:999px; text-decoration:none; font-weight:650; }
.gts-anchor-bar a:hover { background:#EEF5FA; }
.gts-resource-link { margin-top:auto; font-weight:700; }
.gts-resource-link a { text-decoration:none; }
.gts-resource-link a:hover { text-decoration:underline; }
.gts-icon { width:46px; height:46px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:#EEF5FA; color:#1D5F91; font-weight:800; margin-bottom:18px; }
.gts-date { font-size:1.55rem; font-weight:800; color:#1D5F91; }
.gts-callout { padding:34px; border-radius:16px; background:#17324D; color:#fff; }
.gts-callout h2,.gts-callout h3,.gts-callout p,.gts-callout a { color:#fff; }
.gts-split-title { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.gts-divider { border:0; border-top:1px solid #D9E2EA; margin:0; }
.gts-climb-letter { font-size:2.2rem; font-weight:850; color:#1D5F91; line-height:1; margin-bottom:12px; }
.gts-placeholder { min-height:230px; border-radius:16px; background:#1D5F91; color:#fff; display:flex; align-items:center; justify-content:center; text-align:center; padding:24px; box-sizing:border-box; font-weight:800; }
.gts-small-note { font-size:.92rem; color:#657483; }
.gts-site-header { padding:18px 24px; border-bottom:1px solid #D9E2EA; background:#fff; }
.gts-site-header-inner { max-width:1180px; margin:0 auto; display:flex; align-items:center; gap:28px; justify-content:space-between; }
.gts-brand { font-size:1.05rem; font-weight:800; color:#17324D; text-decoration:none; white-space:nowrap; }
.gts-footer { background:#17324D; color:#fff; padding:48px 24px; }
.gts-footer-inner { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:32px; }
.gts-footer h2,.gts-footer h3,.gts-footer p,.gts-footer a { color:#fff; }

@media (max-width: 960px) {
  .gts-grid-4,.gts-grid-5 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gts-two-col { gap:34px; }
}
@media (max-width: 781px) {
  .gts-section { padding:52px 20px; }
  .gts-section-tight { padding:38px 20px; }
  .gts-hero { padding:56px 20px; }
  .gts-two-col,.gts-two-col-equal,.gts-grid-2,.gts-grid-3,.gts-grid-4,.gts-grid-5,.gts-footer-inner { grid-template-columns:1fr; }
  .gts-site-header-inner { align-items:flex-start; }
  .gts-visual-panel { min-height:220px; }
  .gts-split-title { display:block; }
}


/* ===== GTS v3 cleanup ===== */
.gts-icon,
.gts-visual-label,
.gts-visual-mark { display:none !important; }
.gts-hero-art {
  min-height: 320px;
  border-radius: 18px;
  background: #1D5F91;
  position: relative;
  overflow: hidden;
}
.gts-hero-art::before,
.gts-hero-art::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
}
.gts-hero-art::before { width:260px; height:260px; right:-70px; top:-70px; }
.gts-hero-art::after { width:190px; height:190px; left:-55px; bottom:-80px; }
.gts-card { display:flex; flex-direction:column; }
.gts-card .gts-resource-link { margin-top:auto; padding-top:12px; }
.gts-page-note { border-left:4px solid #1D5F91; padding:14px 18px; background:#EEF5FA; }
@media (max-width:781px){ .gts-hero-art { min-height:210px; } }


/* ==========================================================
   GTS v4 — branded polish
   Palette sampled from supplied TOIC / Granite logo artwork.
   ========================================================== */
:root{
  --gts-navy:#003479;
  --gts-deep:#00467F;
  --gts-sky:#56A0D3;
  --gts-pale:#EEF6FC;
  --gts-pale-2:#F7FAFD;
  --gts-ink:#17324D;
  --gts-body:#2B3B49;
  --gts-muted:#637587;
  --gts-border:#D7E2EC;
  --gts-white:#FFFFFF;
  --gts-shadow:0 10px 28px rgba(0,52,121,.09);
  --gts-shadow-hover:0 16px 34px rgba(0,52,121,.14);
}

/* Global readability/accessibility */
body{color:var(--gts-body);}
a:focus-visible, button:focus-visible, .wp-element-button:focus-visible{
  outline:3px solid var(--gts-sky); outline-offset:3px;
}
.gts-section[id], .gts-hero[id]{scroll-margin-top:105px;}

/* Branded header */
.gts-site-header{padding:12px 24px;border-bottom:1px solid var(--gts-border);background:rgba(255,255,255,.98);}
.gts-site-header-inner{max-width:1240px;}
.gts-brand{
  display:block; width:255px; height:76px; flex:0 0 255px;
  background:url('assets/images/gts-logo-horizontal.png') left center/contain no-repeat;
  font-size:0; color:transparent; overflow:hidden;
}
.gts-site-header .wp-block-navigation a{color:var(--gts-ink);text-decoration:none;}
.gts-site-header .wp-block-navigation a:hover{color:var(--gts-navy);}

/* Heroes */
.gts-hero{
  padding:78px 24px;
  background:linear-gradient(135deg,#F7FBFF 0%,#EEF6FC 62%,#E5F1FA 100%);
  border-bottom:1px solid #DCE9F3;
  position:relative; overflow:hidden;
}
.gts-hero::before{
  content:""; position:absolute; width:380px;height:380px;border-radius:999px;
  right:-150px;top:-150px;background:rgba(86,160,211,.10);pointer-events:none;
}
.gts-hero .gts-two-col{position:relative;z-index:1;}
.gts-kicker{color:var(--gts-deep);font-weight:800;letter-spacing:.13em;}
.gts-hero h1{color:var(--gts-navy);}
.gts-hero-art{
  min-height:330px;border-radius:22px;background-color:#fff;
  background-image:url('assets/images/gts-logo-round.png');
  background-size:min(84%,430px);background-repeat:no-repeat;background-position:center;
  box-shadow:var(--gts-shadow);border:1px solid #DDE8F1;
}
.gts-hero-art::before,.gts-hero-art::after{display:none!important;}

/* Branded visual for feature cards; replaces vague placeholders */
.gts-brand-panel,.gts-placeholder{
  min-height:230px;border-radius:16px;background:#fff url('assets/images/gts-logo-round.png') center/70% auto no-repeat;
  border:1px solid #D7E5F0;color:transparent!important;font-size:0;overflow:hidden;
}
.gts-placeholder::before{display:none!important;}

/* Section rhythm */
.gts-section{padding:70px 24px;}
.gts-section-soft{background:#F8FAFC;}
.gts-section-pale{background:var(--gts-pale);}
.gts-section-intro{margin-bottom:30px;}
.gts-section-intro h2{margin-bottom:10px;color:var(--gts-ink);}
.gts-section-intro p{max-width:720px;margin-left:auto;margin-right:auto;}

/* Sticky jump navigation on long pages */
.gts-section-nav{
  position:sticky;top:0;z-index:20;
  box-shadow:0 6px 18px rgba(0,52,121,.05);
  border-bottom:1px solid var(--gts-border);
}
body.admin-bar .gts-section-nav{top:32px;}
.gts-anchor-bar{gap:8px;}
.gts-anchor-bar a{
  color:var(--gts-deep);background:#fff;border-color:#C9DBE9;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.gts-anchor-bar a:hover{background:#EAF4FB;border-color:var(--gts-sky);color:var(--gts-navy);text-decoration:none;}

/* Card hierarchy */
.gts-card{
  border-color:var(--gts-border);border-radius:16px;padding:26px;
  box-shadow:0 2px 8px rgba(0,52,121,.025);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.gts-card:hover{transform:translateY(-3px);box-shadow:var(--gts-shadow-hover);border-color:#AFCCE2!important;}
.gts-card h3{color:var(--gts-ink);font-size:1.15rem;line-height:1.28;margin-bottom:9px;}
.gts-card p{color:var(--gts-muted);}
.gts-card-accent{border-top:5px solid var(--gts-navy);}
.gts-feature{border-radius:18px;border-color:#CCDFED;box-shadow:0 8px 22px rgba(0,52,121,.06);}
.gts-feature-blue{background:#F2F8FC;border-color:#BED8EA;}
.gts-resource-type,.gts-year-badge{
  display:inline-flex;align-items:center;width:max-content;margin:0 0 13px 0;
  border-radius:999px;padding:5px 9px;font-size:.72rem;line-height:1;
  letter-spacing:.06em;text-transform:uppercase;font-weight:800;
  color:var(--gts-deep);background:#E9F4FB;border:1px solid #C7DFF0;
}
.gts-year-badge{color:#fff;background:var(--gts-navy);border-color:var(--gts-navy);}
.gts-resource-link a{color:var(--gts-navy);font-weight:750;}
.gts-resource-link a:hover{color:var(--gts-deep);}
/* external destinations automatically receive a cue after user pastes URLs */
.gts-resource-link a[href^="http"]::after,.wp-block-button__link[href^="http"]::after{content:" ↗";font-size:.86em;}

/* Current-year / update notes */
.gts-page-status{
  display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;
  margin-top:20px;color:var(--gts-muted);font-size:.86rem;
}
.gts-page-status strong{color:var(--gts-ink);}

/* Buttons */
.wp-element-button,.wp-block-button__link{
  background:var(--gts-navy)!important;color:#fff!important;border-radius:9px!important;
  box-shadow:none;transition:background .15s ease,transform .15s ease;
}
.wp-element-button:hover,.wp-block-button__link:hover{background:var(--gts-deep)!important;transform:translateY(-1px);}

/* Back to top */
.gts-back-top{max-width:1180px;margin:0 auto;padding:0 24px 34px;text-align:right;}
.gts-back-top a{font-weight:750;text-decoration:none;color:var(--gts-deep);}
.gts-back-top a:hover{text-decoration:underline;}

/* Footer becomes a useful secondary navigation */
.gts-footer{background:var(--gts-navy);padding:54px 24px 34px;}
.gts-footer-inner{max-width:1240px;grid-template-columns:1.45fr 1fr 1fr 1fr;gap:38px;}
.gts-footer-brandmark{width:245px;height:84px;background:#fff url('assets/images/gts-logo-horizontal.png') center/92% auto no-repeat;border-radius:12px;margin-bottom:14px;}
.gts-footer h2,.gts-footer h3{color:#fff;}
.gts-footer h3{font-size:1rem;margin-bottom:12px;}
.gts-footer p,.gts-footer li,.gts-footer a{color:#E8F2F9;}
.gts-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.gts-footer a{text-decoration:none;}
.gts-footer a:hover{text-decoration:underline;color:#fff;}
.gts-footer-bottom{max-width:1240px;margin:30px auto 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.22);font-size:.88rem;color:#D5E8F5;}

/* Compact accessibility helper for screen-reader text */
.gts-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

@media (max-width:1100px){
  .gts-brand{width:215px;height:66px;flex-basis:215px;}
  .gts-site-header-inner{gap:18px;}
  .gts-footer-inner{grid-template-columns:1.2fr 1fr 1fr;}
  .gts-footer-support{grid-column:2/4;}
}
@media (max-width:960px){
  .gts-site-header-inner{align-items:center;}
  .gts-hero{padding-top:62px;padding-bottom:62px;}
  .gts-hero-art{min-height:280px;}
}
@media (max-width:781px){
  body.admin-bar .gts-section-nav{top:46px;}
  .gts-section-nav{position:relative;top:auto!important;}
  .gts-brand{width:190px;height:60px;flex-basis:190px;}
  .gts-site-header{padding:9px 18px;}
  .gts-site-header-inner{align-items:center;}
  .gts-hero{padding:48px 20px;}
  .gts-hero .gts-two-col{gap:26px;}
  .gts-hero-art{min-height:235px;background-size:min(76%,330px);}
  .gts-section{padding:50px 20px;}
  .gts-card{padding:22px;}
  .gts-footer-inner{grid-template-columns:1fr;gap:28px;}
  .gts-footer-support{grid-column:auto;}
  .gts-footer-brandmark{width:230px;max-width:100%;}
  .gts-back-top{padding-left:20px;padding-right:20px;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}
}


/* v4 validation/polish patches */
p.gts-resource-type,p.gts-year-badge{margin-top:0;margin-bottom:13px;}
.gts-page-status-wrap{background:#fff;border-bottom:1px solid var(--gts-border);padding:10px 20px;}
.gts-callout .wp-block-button__link.has-white-background-color{
  background:#fff!important;color:var(--gts-navy)!important;
}
.gts-callout .wp-block-button__link.has-white-background-color:hover{
  background:#EEF6FC!important;color:var(--gts-navy)!important;
}


/* ==========================================================
   GTS v5 — linked & clean
   ========================================================== */
.gts-resource-type{display:none!important;}
/* Keep the department identity elegant and on one desktop line. */
.gts-dept-line{font-size:clamp(1rem,1.45vw,1.25rem);font-weight:800;letter-spacing:.105em;text-transform:uppercase;color:var(--gts-navy);white-space:nowrap;margin:0 0 14px;}
.gts-hero .has-hero-font-size{font-size:clamp(2.65rem,5vw,4.8rem);line-height:1.02;}
.gts-hero-art{min-height:300px;background-size:min(72%,360px);background-position:center;}
.gts-hero-brand-stack{display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;min-height:300px;border-radius:22px;background:#fff;border:1px solid #DDE8F1;box-shadow:var(--gts-shadow);padding:28px;}
.gts-hero-brand-stack .gts-logo-round{width:min(78%,330px);aspect-ratio:1/1;background:url('assets/images/gts-logo-round.png') center/contain no-repeat;}
.gts-climb-mark{display:inline-flex;align-items:center;gap:12px;border-top:1px solid var(--gts-border);padding-top:14px;color:var(--gts-navy);font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:1rem;}
.gts-climb-mountain{width:42px;height:24px;position:relative;display:inline-block;}
.gts-climb-mountain:before,.gts-climb-mountain:after{content:"";position:absolute;bottom:2px;width:28px;height:28px;border-left:6px solid currentColor;border-top:6px solid currentColor;transform:rotate(45deg);}
.gts-climb-mountain:before{left:1px;color:var(--gts-sky);transform:rotate(45deg) scale(.75);bottom:-2px;}
.gts-climb-mountain:after{right:0;color:var(--gts-navy);}
/* Accessible schedule tables */
.gts-schedule-wrap{overflow-x:auto;border:1px solid var(--gts-border);border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(0,52,121,.06);}
.gts-schedule{width:100%;border-collapse:collapse;min-width:700px;margin:0;}
.gts-schedule caption{text-align:left;padding:18px 20px;font-size:1.15rem;font-weight:800;color:#fff;background:var(--gts-navy);}
.gts-schedule.gts-schedule-green caption{background:#2F9D6C;}
.gts-schedule th{background:#8CBCE2;color:#0E355E;font-weight:800;text-align:left;padding:14px 16px;border-bottom:1px solid #608CB0;}
.gts-schedule td{padding:14px 16px;border-bottom:1px solid var(--gts-border);vertical-align:top;}
.gts-schedule tbody tr:last-child td{border-bottom:0;}
.gts-schedule td:first-child{font-weight:700;color:var(--gts-deep);}
.gts-schedule-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;align-items:start;}
.gts-location-note{text-align:center;font-weight:800;color:var(--gts-navy);margin:12px 0 0;}
/* Better anchor destination visibility */
.gts-section[id]{scroll-margin-top:150px;}
.gts-anchor-bar a[href="#"]{display:none!important;}
/* No fake navigation buttons: hide any legacy empty/hash buttons until linked. */
.wp-block-button__link[href="#"]{display:none!important;}
/* Resource links with no destination are rendered non-clicking by markup cleanup below. */
@media(max-width:1100px){.gts-dept-line{white-space:normal;letter-spacing:.08em;}.gts-schedule-grid{grid-template-columns:1fr;}}
@media(max-width:781px){.gts-dept-line{font-size:.92rem;line-height:1.4;}.gts-hero-brand-stack{min-height:235px;padding:20px;}.gts-hero-brand-stack .gts-logo-round{width:min(68%,260px);}.gts-climb-mark{font-size:.86rem;}.gts-schedule-wrap{border-radius:12px;}}


/* ==========================================================
   GTS v6 — concrete content, cleaner navigation
   ========================================================== */
/* Remove the fabricated CLIMB text label from all heroes. */
.gts-hero-brand-stack .gts-climb-mark{display:none!important;}
.gts-hero-brand-stack{min-height:250px;padding:24px;overflow:hidden;}
.gts-hero-brand-stack .gts-logo-round{width:min(66%,280px);max-width:280px;background-size:contain!important;background-repeat:no-repeat!important;background-position:center!important;}
/* No dead text links. */
.gts-resource-link a[href="#"], .gts-card a[href="#"]{display:none!important;}
/* Reusable real data tables */
.gts-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start;}
.gts-data-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--gts-border);border-radius:16px;box-shadow:0 6px 18px rgba(0,52,121,.06);}
.gts-data-table{width:100%;border-collapse:collapse;min-width:520px;margin:0;}
.gts-data-table caption{text-align:center;padding:16px 18px;font-size:1.1rem;font-weight:800;color:#fff;background:var(--gts-navy);}
.gts-data-table.gts-table-sky caption{background:#4A9CDF;}
.gts-data-table th{background:#8CBCE2;color:#0E355E;text-align:center;font-weight:800;padding:12px 14px;border-bottom:1px solid #6D9EC5;}
.gts-data-table td{padding:13px 14px;border-bottom:1px solid var(--gts-border);text-align:center;vertical-align:middle;}
.gts-data-table tbody tr:last-child td{border-bottom:0;}
/* CLIMB vision */
.gts-climb-vision{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1.5fr);gap:42px;align-items:center;padding:34px;border-radius:22px;background:#8CBCE2;}
.gts-climb-logo{width:100%;max-width:360px;margin:auto;display:block;object-fit:contain;}
.gts-climb-copy h2{margin-top:0;color:#0A376D;font-size:clamp(2rem,3.2vw,3.2rem);}
.gts-climb-copy p,.gts-climb-copy li{color:#102B46;}
.gts-climb-copy ul{margin-bottom:0;}
/* Bright spots */
.gts-bright-spots{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);gap:38px;align-items:center;}
.gts-bright-qr{display:block;width:min(100%,320px);margin:auto;border-radius:12px;background:#fff;padding:14px;border:1px solid var(--gts-border);}
.gts-bright-spots .wp-block-button__link{margin-top:8px;}
/* Make long schedule tables visibly present and consistent. */
.gts-schedule-wrap{margin-top:8px;}
.gts-schedule-grid{gap:30px;}
/* Mentor academy session times as non-clickable facts. */
.gts-session-grid .gts-card{min-height:145px;display:flex;flex-direction:column;justify-content:center;}
.gts-session-grid .gts-card p{font-size:1.15rem;font-weight:700;color:var(--gts-navy);margin-bottom:0;}
/* Keep same visual treatment for general and SPED mentor due-date areas. */
.gts-mentor-due-section{padding-top:10px;}
@media(max-width:900px){.gts-data-grid,.gts-climb-vision,.gts-bright-spots{grid-template-columns:1fr;}.gts-climb-logo{max-width:260px}.gts-hero-brand-stack .gts-logo-round{width:min(62%,240px);}}


/* =========================================================
   V7 MENTOR EXPERIENCE — RESOURCE FIRST, MINIMAL SCROLLING
   ========================================================= */
.gts-mentor-dashboard{padding-top:58px;padding-bottom:64px;background:linear-gradient(180deg,#f7fbff 0%,#eef6fc 100%);}
.gts-mentor-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:stretch;}
.gts-role-panel,.gts-resource-library,.gts-reference-panel{background:#fff;border:1px solid #c9dbea;border-radius:20px;overflow:hidden;box-shadow:0 10px 30px rgba(7,63,126,.07);}
.gts-role-panel-head,.gts-library-head{padding:26px 28px 20px;border-bottom:1px solid #d8e5ef;}
.gts-role-panel-head h3,.gts-library-head h3{margin:.2rem 0 .35rem;font-size:1.55rem;color:var(--gts-deep);}
.gts-role-panel-head p:last-child{margin:0;color:var(--gts-muted);}
.gts-role-general{border-top:6px solid var(--gts-navy);}
.gts-role-sped{border-top:6px solid var(--gts-light-blue);}
.gts-essential-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;}
.gts-essential-card{padding:22px 24px;min-height:142px;border-right:1px solid #e0e9f1;border-bottom:1px solid #e0e9f1;}
.gts-essential-card:nth-child(2n){border-right:0}.gts-essential-card:nth-last-child(-n+2){border-bottom:0}
.gts-essential-card h4{margin:0 0 8px;font-size:1.02rem;line-height:1.3;color:var(--gts-deep);}
.gts-essential-card p{margin:0;color:var(--gts-muted);font-size:.94rem;line-height:1.55;}
.gts-mentor-due-grid .gts-schedule{min-width:0;}
.gts-schedule-sped caption{background:var(--gts-light-blue)!important;}
.gts-mentor-academy-layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(280px,.9fr);gap:28px;align-items:stretch;}
.gts-mentor-academy-layout .gts-schedule{min-width:620px;}
.gts-session-panel{background:var(--gts-deep);color:#fff;border-radius:18px;padding:26px;box-shadow:0 8px 24px rgba(5,57,112,.14);}
.gts-session-panel h3{color:#fff;margin:0 0 18px;font-size:1.25rem;}
.gts-session-row{padding:16px 0;border-top:1px solid rgba(255,255,255,.18);display:grid;gap:4px;}
.gts-session-row:first-of-type{border-top:0;padding-top:0}.gts-session-row span{font-size:.95rem;opacity:.9}.gts-session-row strong{font-size:1.08rem;}
.gts-activity-grid{align-items:start;}
.gts-compact-resource-grid{display:grid;grid-template-columns:1fr;}
.gts-compact-resource-grid>div{padding:16px 22px;border-top:1px solid #e4ebf2;font-weight:700;color:var(--gts-deep);line-height:1.35;background:#fff;}
.gts-compact-resource-grid>div:first-child{border-top:0;}
.gts-compact-resource-grid>div:hover{background:#f4f9fd;}
.gts-reference-panel{box-shadow:none;}
.gts-reference-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;}
.gts-reference-grid>div{border-right:1px solid #e4ebf2;}
.gts-reference-grid>div:nth-child(2n){border-right:0;}
.gts-reference-grid>div:last-child{grid-column:1/-1;border-right:0;}
@media(max-width:980px){.gts-mentor-role-grid,.gts-mentor-academy-layout{grid-template-columns:1fr}.gts-mentor-academy-layout .gts-schedule{min-width:620px}}
@media(max-width:640px){.gts-essential-grid{grid-template-columns:1fr}.gts-essential-card{border-right:0!important;border-bottom:1px solid #e0e9f1!important;min-height:0}.gts-essential-card:last-child{border-bottom:0!important}.gts-reference-grid{grid-template-columns:1fr}.gts-reference-grid>div{border-right:0!important;grid-column:auto!important}.gts-role-panel-head,.gts-library-head{padding:22px}.gts-mentor-dashboard{padding-top:42px;padding-bottom:48px}}


/* ==========================================================
   GTS v8 — current-site hierarchy + protected coach portal
   ========================================================== */
/* Keep the experience calm and familiar: current/required first,
   working resources next, broad reference material last. */
.gts-page-flow-note{max-width:760px;margin:0 auto 24px;color:var(--gts-muted);text-align:center;}
.gts-secure-portal{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:32px;align-items:center;
  background:linear-gradient(135deg,#F7FBFF,#EAF4FB);border:1px solid #BFD8EA;border-radius:20px;
  padding:34px;box-shadow:0 8px 22px rgba(0,52,121,.06);
}
.gts-secure-portal h2,.gts-secure-portal h3{color:var(--gts-navy);margin-top:0;}
.gts-secure-lock{
  min-height:180px;border-radius:16px;background:var(--gts-navy);color:#fff;
  display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font-weight:800;font-size:1.15rem;
}
.gts-secure-portal .wp-element-button{display:inline-block;margin-top:8px;}
.post-password-form{max-width:760px;margin:64px auto;padding:34px;border:1px solid var(--gts-border);border-radius:18px;background:#fff;box-shadow:var(--gts-shadow);}
.post-password-form p:first-child{font-size:1.08rem;color:var(--gts-ink);}
.post-password-form label{font-weight:700;color:var(--gts-ink);}
.post-password-form input[type="password"]{width:min(100%,360px);padding:12px 14px;margin:10px 8px 10px 0;border:1px solid #AFC7DA;border-radius:8px;font-size:1rem;}
.post-password-form input[type="submit"]{padding:12px 18px;border:0;border-radius:8px;background:var(--gts-navy);color:#fff;font-weight:800;cursor:pointer;}
.post-password-form input[type="submit"]:hover{background:var(--gts-deep);}
.gts-site-header .wp-block-navigation__submenu-container{border:1px solid var(--gts-border);box-shadow:var(--gts-shadow);}
@media(max-width:781px){.gts-secure-portal{grid-template-columns:1fr}.gts-secure-lock{min-height:120px}}


/* ==========================================================
   V12 — Gutenberg-native editable page layout reinforcement
   ========================================================== */
.wp-block-post-content { overflow: clip; }
.wp-block-post-content > .alignfull {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.wp-block-post-content .gts-wrap {
  width: min(1180px, calc(100% - 48px));
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.wp-block-post-content .gts-two-col,
.editor-styles-wrapper .gts-two-col {
  display:grid !important;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr) !important;
  gap:56px !important;
  align-items:center !important;
}
.wp-block-post-content .gts-two-col-equal,
.editor-styles-wrapper .gts-two-col-equal {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:32px !important;
  align-items:stretch !important;
}
.wp-block-post-content .gts-grid,
.editor-styles-wrapper .gts-grid {
  display:grid !important;
  gap:24px !important;
  align-items:stretch !important;
}
.wp-block-post-content .gts-grid-2,.editor-styles-wrapper .gts-grid-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
.wp-block-post-content .gts-grid-3,.editor-styles-wrapper .gts-grid-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.wp-block-post-content .gts-grid-4,.editor-styles-wrapper .gts-grid-4{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
.wp-block-post-content .gts-grid-5,.editor-styles-wrapper .gts-grid-5{grid-template-columns:repeat(5,minmax(0,1fr)) !important;}
.wp-block-post-content .gts-card,
.editor-styles-wrapper .gts-card {
  min-width:0;
}
.editor-styles-wrapper .gts-section { padding:56px 24px; }
.editor-styles-wrapper .gts-wrap { width:min(1180px,calc(100% - 32px));max-width:1180px;margin-left:auto;margin-right:auto; }
.editor-styles-wrapper .gts-hero { padding:64px 24px;background:#EEF6FC; }
.editor-styles-wrapper .gts-card { background:#fff;border:1px solid #D7E2EC;border-radius:16px;padding:26px;box-sizing:border-box; }
.editor-styles-wrapper .gts-feature { background:#fff;border:1px solid #CCDFED;border-radius:18px;padding:34px; }
.editor-styles-wrapper .gts-section-pale { background:#EEF6FC; }
.editor-styles-wrapper .gts-section-soft { background:#F8FAFC; }
.editor-styles-wrapper .gts-callout { background:#003479;color:#fff;border-radius:16px;padding:34px; }
.editor-styles-wrapper .gts-callout h2,.editor-styles-wrapper .gts-callout p,.editor-styles-wrapper .gts-callout a{color:#fff;}
.editor-styles-wrapper .gts-logo-round { min-height:260px;background:#fff url('assets/images/gts-logo-round.png') center/70% auto no-repeat;border-radius:18px;border:1px solid #DDE8F1; }
.editor-styles-wrapper .gts-brand-panel { min-height:220px;background:#fff url('assets/images/gts-logo-round.png') center/70% auto no-repeat;border-radius:16px; }

@media (max-width: 960px){
  .wp-block-post-content .gts-grid-4,.wp-block-post-content .gts-grid-5,.editor-styles-wrapper .gts-grid-4,.editor-styles-wrapper .gts-grid-5{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media (max-width: 781px){
  .wp-block-post-content .gts-two-col,.wp-block-post-content .gts-two-col-equal,
  .wp-block-post-content .gts-grid-2,.wp-block-post-content .gts-grid-3,.wp-block-post-content .gts-grid-4,.wp-block-post-content .gts-grid-5,
  .editor-styles-wrapper .gts-two-col,.editor-styles-wrapper .gts-two-col-equal,
  .editor-styles-wrapper .gts-grid-2,.editor-styles-wrapper .gts-grid-3,.editor-styles-wrapper .gts-grid-4,.editor-styles-wrapper .gts-grid-5{
    grid-template-columns:1fr !important;
  }
  .wp-block-post-content .gts-wrap{width:min(100% - 40px,1180px);}
}

/* V12 small layout helpers */
.gts-single-card-row{max-width:380px;margin:24px auto 0;}
.gts-callout-action{display:flex;align-items:center;justify-content:flex-end;}
.gts-logo-round{width:100%;min-height:240px;background:#fff url('assets/images/gts-logo-round.png') center/72% auto no-repeat;border-radius:18px;}
@media(max-width:781px){.gts-callout-action{justify-content:flex-start}.gts-single-card-row{max-width:none}}


/* ==========================================================
   GTS v13 — stability release
   All editable page patterns use native WordPress blocks only.
   ========================================================== */
.gts-resource-type,.gts-year-badge,.gts-visual-label,.gts-visual-mark,.gts-icon{display:none!important;}
.gts-page-status-wrap{display:none!important;}
.gts-header-logo{width:245px;height:72px;flex:0 0 245px;background:url('assets/images/gts-logo-horizontal.png') left center/contain no-repeat;}
.gts-main-nav{margin-left:auto;}
.gts-hero-title{font-size:clamp(2.5rem,4vw,3.6rem);margin:.25rem 0 .8rem;color:var(--gts-navy);}
.gts-hero-copy{font-size:clamp(1.2rem,2vw,1.6rem);color:var(--gts-muted);max-width:780px;}
.gts-hero-visual{min-height:320px;border-radius:22px;background-color:#fff;background-position:center;background-repeat:no-repeat;background-size:78% auto;border:1px solid var(--gts-border);box-shadow:var(--gts-shadow);}
.gts-logo-round{background-image:url('assets/images/gts-logo-round.png');}
.gts-climb-logo{min-height:420px;background:#8CC0E7 url('assets/images/climb-logo.png') center/72% auto no-repeat;border-radius:18px;}
.gts-bright-qr{min-height:360px;background:#fff url('assets/images/bright-spots-qr.png') center/contain no-repeat;border-radius:18px;border:1px solid var(--gts-border);}
.gts-section-title{text-align:center;margin-bottom:8px;}
.gts-section-subtitle{text-align:center;max-width:760px;margin:0 auto;color:var(--gts-muted);}
.gts-anchor-link{margin:0;}
.gts-anchor-link a{display:inline-block;padding:9px 14px;border:1px solid var(--gts-border);border-radius:999px;background:#fff;text-decoration:none;font-weight:700;color:var(--gts-deep);}
.gts-table-card{background:#fff;border:1px solid var(--gts-border);border-radius:16px;padding:22px;overflow:hidden;}
.gts-table{overflow-x:auto;}
.gts-table table{width:100%;border-collapse:collapse;font-size:.95rem;}
.gts-table th{background:#8DBCE3;color:#11355A;font-weight:800;}
.gts-table th,.gts-table td{border:1px solid #AFC4D6;padding:12px 10px;vertical-align:top;}
.gts-pathway{background:#fff;border:1px solid var(--gts-border);border-radius:18px;padding:26px;}
.gts-pathway-gen{border-top:6px solid var(--gts-navy);}
.gts-pathway-sped{border-top:6px solid var(--gts-sky);}
.gts-callout{background:var(--gts-navy);color:#fff;border-radius:18px;padding:30px;}
.gts-callout h2,.gts-callout h3,.gts-callout p,.gts-callout a{color:#fff;}
.gts-footer-col p{margin:.35rem 0;}
.gts-footer-col a{color:#E8F2F9;text-decoration:none;}
.gts-footer-col a:hover{text-decoration:underline;color:#fff;}
/* Editing canvas parity */
.editor-styles-wrapper .gts-wrap{max-width:1180px;margin-left:auto!important;margin-right:auto!important;}
.editor-styles-wrapper .gts-grid{display:grid;}
.editor-styles-wrapper .gts-two-col{display:grid;}
.editor-styles-wrapper .gts-two-col-equal{display:grid;}
.editor-styles-wrapper .gts-section{box-sizing:border-box;}
@media(max-width:781px){.gts-header-logo{width:190px;height:58px;flex-basis:190px}.gts-hero-visual{min-height:220px}.gts-climb-logo{min-height:280px}.gts-bright-qr{min-height:260px}}


/* ==========================================================
   GTS v14 — release-candidate grid/alignment QA patch
   Keeps V13 page content intact; presentation-only fixes.
   ========================================================== */
/* Gutenberg's flow layout adds block-gap margins to sibling Group blocks.
   Custom GTS grid/flex containers own their spacing, so reset those margins. */
.wp-block-post-content .gts-grid > *,
.editor-styles-wrapper .gts-grid > *,
.wp-block-post-content .gts-two-col > *,
.editor-styles-wrapper .gts-two-col > *,
.wp-block-post-content .gts-two-col-equal > *,
.editor-styles-wrapper .gts-two-col-equal > *,
.wp-block-post-content .gts-data-grid > *,
.editor-styles-wrapper .gts-data-grid > *,
.wp-block-post-content .gts-schedule-grid > *,
.editor-styles-wrapper .gts-schedule-grid > *,
.wp-block-post-content .gts-bright-spots > *,
.editor-styles-wrapper .gts-bright-spots > *,
.wp-block-post-content .gts-climb-vision > *,
.editor-styles-wrapper .gts-climb-vision > * {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

/* Every peer card starts on the same row line and stretches to the row height. */
.wp-block-post-content .gts-grid > .gts-card,
.editor-styles-wrapper .gts-grid > .gts-card {
  margin: 0 !important;
  height: 100%;
  min-height: 100%;
  align-self: stretch;
}

/* Keep headings/copy from creating inconsistent outer card geometry. */
.gts-card > :first-child { margin-top: 0 !important; }
.gts-card > :last-child { margin-bottom: 0 !important; }

/* The seven-item Teacher Toolkit gets an intentional centered final card. */
@media (min-width: 782px) {
  #teacher-toolkit .gts-grid-3 > .gts-card:last-child:nth-child(3n + 1) {
    grid-column: 2;
  }
}
@media (max-width: 781px) {
  #teacher-toolkit .gts-grid-3 > .gts-card:last-child:nth-child(3n + 1) {
    grid-column: auto;
  }
}

/* Table/card pairs and role pathways should also line up cleanly. */
.gts-data-grid > .gts-table-card,
.gts-data-grid > .gts-pathway,
.gts-two-col-equal > .gts-table-card,
.gts-two-col-equal > .gts-pathway {
  height: 100%;
  box-sizing: border-box;
}

/* Prevent narrow content from visually shifting a peer card. */
.gts-grid > *, .gts-two-col > *, .gts-two-col-equal > * { min-width: 0; }


/* ==========================================================
   GTS v15 — hero logo scale refinement
   Keeps the existing hero card dimensions/layout unchanged.
   Shrinks only the round Granite logo and matches editor/live views.
   ========================================================== */
.gts-hero-visual.gts-logo-round {
  background-size: 58% auto;
}
.editor-styles-wrapper .gts-hero-visual.gts-logo-round {
  background-size: 58% auto;
}
