/* =========================================================
   Trü 7&Up Kids Club — page-scoped stylesheet
   Only enqueued on the page using template-tru-7up-kids-club.php
   Safe to delete without affecting any other page on the site.
   ========================================================= */

:root{
  --kc-navy:      #01357B;
  --kc-navy-dark: #012350;
  --kc-orange:    #E17B10;
  --kc-orange-lt: #FDECD8;
  --kc-blue-lt:   #EAF1FB;
  --kc-text:      #3A3A3A;
  --kc-muted:     #6B7280;
  --kc-white:     #FFFFFF;
  --kc-radius:    18px;
  --kc-radius-sm: 10px;
  --kc-shadow:    0 10px 30px rgba(1,53,123,0.08);
  --kc-maxw:      1180px;
}

.tru-kc{
  font-family: 'Inter', sans-serif;
  color: var(--kc-text);
  background: var(--kc-white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
/* The theme's sitewide stylesheet adds body{padding-top:var(--topOffset)}
   to push content below its normal fixed/sticky site header. This page
   doesn't use that site header (it has its own in-flow sticky header
   instead), so that padding just creates unwanted empty space above it.
   Cancel it here, scoped to this page's body class only, and restore
   just enough space to clear the WP admin toolbar when it's showing. */
body.tru-kc{ padding-top:0 !important; }
body.tru-kc.admin-bar{ padding-top:32px !important; }
@media screen and (max-width: 782px){
  body.tru-kc.admin-bar{ padding-top:46px !important; }
}
html{ scroll-behavior:smooth; }
#tru-kc-about, #tru-kc-pins, #tru-kc-how, #tru-kc-perks, #tru-kc-enroll{
  scroll-margin-top:90px;
}
.tru-kc *{ box-sizing: border-box; }
.tru-kc img{ max-width:100%; display:block; }
.tru-kc a{ text-decoration:none; color:inherit; }
.tru-kc h1,.tru-kc h2,.tru-kc h3,.tru-kc h4{
  font-family:'Poppins', sans-serif;
  color: var(--kc-navy);
  line-height:1.2;
  margin:0 0 .6em;
}
.tru-kc .kc-container{
  max-width: var(--kc-maxw);
  margin:0 auto;
  padding: 0 24px;
}
.tru-kc .kc-eyebrow{
  display:inline-block;
  font-family:'Poppins',sans-serif;
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color: var(--kc-orange);
  margin-bottom:14px;
}
.tru-kc .kc-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:1rem;
  padding:14px 30px;
  border-radius:9999px;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.tru-kc .kc-btn:hover{ transform: translateY(-2px); }
.tru-kc .kc-btn-primary{
  background: var(--kc-orange);
  color:#fff;
  box-shadow:0 8px 20px rgba(225,123,16,.35);
}
.tru-kc .kc-btn-primary:hover{ background:#c96a0c; }
.tru-kc .kc-btn-outline{
  background:transparent;
  border-color:rgba(255,255,255,.6);
  color:#fff;
}
.tru-kc .kc-btn-outline:hover{ background:rgba(255,255,255,.12); }
.tru-kc .kc-btn-navy{
  background: var(--kc-navy);
  color:#fff;
}
.tru-kc .kc-btn-navy:hover{ background: var(--kc-navy-dark); }

/* ---------- Header ---------- */
.tru-kc-header{
  background:#fff;
  border-bottom:1px solid #eef1f6;
  position:sticky;
  top:0;
  z-index:40;
}
.tru-kc-header .kc-container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:10px;
  padding-bottom:10px;
  gap:16px;
}
.tru-kc-header .kc-header-brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.tru-kc-header .kc-header-brand img.kc-header-logo{
  height:56px;
  width:auto;
  display:block;
}
.tru-kc-header .kc-header-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:1 1 auto;
  gap:30px;
}
.tru-kc-header .kc-header-nav a{
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:.92rem;
  color:var(--kc-navy);
  white-space:nowrap;
  padding:6px 2px;
  transition:color .15s ease;
}
.tru-kc-header .kc-header-nav a:hover{ color:var(--kc-orange); }
@media (max-width:860px){
  .tru-kc-header .kc-header-nav{ display:none; }
}
.tru-kc-header .kc-header-actions{
  display:flex; align-items:center; gap:18px;
  flex:none;
}
.tru-kc-header .kc-header-phone{
  font-weight:600;
  color:var(--kc-navy);
  font-size:.95rem;
  display:none;
}
.tru-kc-header .kc-btn{ padding:11px 22px; font-size:.92rem; }

/* ---------- Hero ---------- */
.tru-kc-hero{
  background: radial-gradient(120% 140% at 15% 10%, #0a4a9e 0%, var(--kc-navy) 45%, var(--kc-navy-dark) 100%);
  color:#fff;
  padding: 70px 0 90px;
  position:relative;
  overflow:hidden;
}
.tru-kc-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 90% 20%, rgba(255,255,255,.06) 0, transparent 45%),
    radial-gradient(circle at 10% 90%, rgba(225,123,16,.18) 0, transparent 40%);
  pointer-events:none;
  z-index:0;
}
.tru-kc-hero::after{
  content:"";
  position:absolute; inset:0;
  background-image: repeating-conic-gradient(from 0deg at 82% 18%, rgba(255,255,255,.05) 0deg 4deg, transparent 4deg 16deg);
  opacity:.7;
  pointer-events:none;
  z-index:0;
}
.tru-kc-hero .kc-container{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:48px;
  align-items:center;
}
.kc-hero-wave{
  position:absolute; left:0; right:0; bottom:0;
  line-height:0; z-index:2; pointer-events:none;
}
.kc-hero-wave svg{ display:block; width:100%; height:54px; }
.tru-kc-hero h1{
  color:#fff;
  font-size:clamp(2.1rem, 4vw, 3.1rem);
  font-weight:700;
}
.tru-kc-hero p{
  color:#dce6f5;
  font-size:1.08rem;
  max-width:560px;
  margin-bottom:28px;
}
.tru-kc-hero p strong{ color:#fff; }
.tru-kc-hero .kc-hero-ctas{
  display:flex; flex-wrap:wrap; gap:14px; margin-bottom:18px;
}
.tru-kc-hero .kc-hero-note{
  color:#b9c8e4; font-size:.92rem;
}
.tru-kc-hero .kc-hero-note b{ color:var(--kc-orange); font-weight:700; }
.tru-kc-hero-art{
  display:flex; align-items:center; justify-content:center;
}
.tru-kc-hero-art .kc-hero-badge{
  background:#fff;
  border-radius:50%;
  padding:22px;
  box-shadow:0 25px 60px rgba(0,0,0,.35);
  width:min(340px, 100%);
}

/* ---------- Stats strip ---------- */
.tru-kc-stats{
  margin-top:-46px;
  position:relative;
  z-index:5;
}
.tru-kc-stats .kc-stats-grid{
  background:#fff;
  border-radius:var(--kc-radius);
  box-shadow: var(--kc-shadow);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  overflow:hidden;
}
.tru-kc-stats .kc-stat{
  text-align:center;
  padding:26px 12px;
  border-right:1px solid #eef1f6;
}
.tru-kc-stats .kc-stat:last-child{ border-right:none; }
.tru-kc-stats .kc-stat-num{
  font-family:'Poppins',sans-serif;
  font-weight:700;
  font-size:1.7rem;
  color:var(--kc-navy);
}
.tru-kc-stats .kc-stat-num.orange{ color:var(--kc-orange); }
.tru-kc-stats .kc-stat-label{
  font-size:.85rem; color:var(--kc-muted); margin-top:4px;
}

/* ---------- Generic section spacing ---------- */
.tru-kc-section{ padding:100px 0; }
.tru-kc-section.alt{ background:#f7f9fc; }
.kc-section-head{
  max-width:720px;
  margin:0 auto 60px;
  text-align:center;
}
.kc-section-head .kc-eyebrow{ margin-bottom:18px; }
.kc-section-head h2{
  font-size:clamp(2.1rem, 4.5vw, 3rem);
  font-weight:700;
  letter-spacing:-0.01em;
  margin-bottom:.55em;
}
.kc-section-head p{
  color:var(--kc-muted);
  font-size:1.15rem;
  line-height:1.7;
  margin:0 auto;
}

/* ---------- About ---------- */
.tru-kc-about .kc-about-grid{
  display:grid;
  grid-template-columns: .85fr 1.15fr;
  gap:64px;
  align-items:center;
}
.tru-kc-about .kc-eyebrow{ margin-bottom:16px; }
.tru-kc-about h2{
  font-size:clamp(2rem, 4vw, 2.75rem);
  font-weight:700;
  letter-spacing:-0.01em;
  margin-bottom:.55em;
}
.tru-kc-about p{
  font-size:1.08rem;
  line-height:1.75;
  color:var(--kc-text);
  margin-bottom:1.05em;
}
.tru-kc-about .kc-about-art{
  background:var(--kc-navy);
  border-radius:var(--kc-radius);
  padding:34px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.tru-kc-about .kc-about-art::before{
  content:"";
  position:absolute; inset:0;
  background-image: repeating-conic-gradient(from 0deg at 50% 50%, rgba(255,255,255,.06) 0deg 4deg, transparent 4deg 20deg);
  pointer-events:none;
}
.tru-kc-about .kc-about-art img{ margin:0 auto; position:relative; }
.tru-kc-about ul{ list-style:none; margin:26px 0 0; padding:0; }
.tru-kc-about li{
  display:flex; gap:12px; margin-bottom:16px; font-size:1rem;
}
.tru-kc-about li .kc-check{
  flex:none;
  width:24px;height:24px;border-radius:50%;
  background:var(--kc-orange-lt);
  color:var(--kc-orange);
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem; font-weight:700; margin-top:2px;
}

/* ---------- Pins ---------- */
.tru-kc-pins{ background:var(--kc-navy); color:#fff; position:relative; overflow:hidden; }
.tru-kc-pins::before{
  content:"";
  position:absolute; inset:0;
  background-image: repeating-conic-gradient(from 0deg at 50% 0%, rgba(255,255,255,.05) 0deg 5deg, transparent 5deg 18deg);
  pointer-events:none;
  z-index:0;
}
.tru-kc-pins .kc-container{ position:relative; z-index:1; }
.tru-kc-pins .kc-section-head h2,.tru-kc-pins .kc-section-head p{ color:#fff; }
.tru-kc-pins .kc-section-head p{ color:#c3d2ea; }
.tru-kc-pins .kc-eyebrow{ color:var(--kc-orange); }
.kc-pins-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.kc-pin-card{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:22px 16px;
  text-align:center;
  transition:transform .15s ease, background .15s ease;
}
.kc-pin-card:hover{ background:rgba(255,255,255,.1); transform:translateY(-3px); }
.kc-pin-num{
  width:48px;height:48px;border-radius:50%;
  background:linear-gradient(135deg, var(--kc-orange) 0%, #c96a0c 100%);
  box-shadow:0 0 0 4px rgba(255,255,255,.15), 0 6px 14px rgba(0,0,0,.25);
  color:#fff;
  font-family:'Poppins',sans-serif; font-weight:700; font-size:1.05rem;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;
}
.kc-pin-card h4{ color:#fff; font-size:1rem; margin-bottom:6px; }
.kc-pin-card p{ color:#c3d2ea; font-size:.85rem; margin:0; }
.kc-pins-note{ text-align:center; margin-top:34px; color:#c3d2ea; }
section#tru-kc-about {
    padding-bottom: 0 !important;
}
/* ---------- How it works ---------- */
.kc-steps-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
.kc-step-card{
  background:#fff;
  border-radius:var(--kc-radius);
  padding:32px 26px;
  box-shadow: var(--kc-shadow);
  position:relative;
}
.kc-step-num{
  font-family:'Poppins',sans-serif;
  font-weight:700;
  font-size:2.2rem;
  color:var(--kc-orange-lt);
  position:absolute;
  top:18px; right:22px;
}
.kc-step-icon{
  width:56px;height:56px;border-radius:16px;
  background:var(--kc-blue-lt);
  color:var(--kc-navy);
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem; margin-bottom:20px;
}
.kc-step-card:nth-child(2) .kc-step-icon{ background:var(--kc-orange-lt); color:var(--kc-orange); }
.kc-step-card:nth-child(3) .kc-step-icon{ background:#E6F7EC; color:#1E9E56; }
.kc-step-card h3{ font-size:1.2rem; margin-bottom:8px; }
.kc-step-card p{ color:var(--kc-muted); font-size:.95rem; margin:0; }

/* ---------- Perks / Membership ---------- */
.kc-perks-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.kc-perk-card{
  background:#fff;
  border:1px solid #eef1f6;
  border-radius:var(--kc-radius);
  padding:28px 22px;
  text-align:center;
  box-shadow:var(--kc-shadow);
}
.kc-perk-icon{
  width:56px;height:56px;border-radius:50%;
  background:var(--kc-orange-lt);
  color:var(--kc-orange);
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;
  margin:0 auto 16px;
}
.kc-perk-card h3{ font-size:1.05rem; margin-bottom:6px; }
.kc-perk-card p{ color:var(--kc-muted); font-size:.9rem; margin:0; }
.kc-perk-card.kc-perk-more{
  background:var(--kc-navy); border-color:var(--kc-navy);
}
.kc-perk-card.kc-perk-more h3,
.kc-perk-card.kc-perk-more p{ color:#fff; }
.kc-perk-card.kc-perk-more .kc-perk-icon{ background:rgba(255,255,255,.15); color:#fff; }

/* ---------- Goal / mission strip ---------- */
.tru-kc-goal{
  background:#f7f9fc;
}
.kc-goal-box{
  background:#fff;
  border-radius:var(--kc-radius);
  box-shadow:var(--kc-shadow);
  padding:52px 40px;
  text-align:center;
  max-width:820px;
  margin:0 auto;
}
.kc-goal-box .kc-eyebrow{ margin-bottom:16px; }
.kc-goal-box h2{
  font-size:clamp(1.9rem, 3.6vw, 2.5rem);
  font-weight:700;
  letter-spacing:-0.01em;
  margin-bottom:.5em;
}
.kc-goal-box p{ color:var(--kc-muted); font-size:1.1rem; line-height:1.7; }
.kc-goal-tag{ margin-top:20px; color:var(--kc-orange); font-weight:600; font-size:1.05rem; }

/* ---------- Enrollment / Form ---------- */
.tru-kc-enroll{
  background: radial-gradient(120% 140% at 85% 0%, #0a4a9e 0%, var(--kc-navy) 45%, var(--kc-navy-dark) 100%);
  color:#fff;
  padding:90px 0;
  position:relative;
  overflow:hidden;
}
.tru-kc-enroll::before{
  content:"";
  position:absolute; inset:0;
  background-image: repeating-conic-gradient(from 0deg at 18% 100%, rgba(255,255,255,.05) 0deg 4deg, transparent 4deg 16deg);
  pointer-events:none;
  z-index:0;
}
.tru-kc-enroll .kc-container{ position:relative; z-index:1; }
.tru-kc-enroll .kc-section-head h2,
.tru-kc-enroll .kc-section-head p{ color:#fff; }
.tru-kc-enroll .kc-section-head p{ color:#c3d2ea; }
.tru-kc-enroll .kc-mascot{
  width:150px;
  height:auto;
  margin:0 auto 24px;
  padding:14px;
  background:#fff;
  border-radius:22px;
  box-shadow:0 18px 40px rgba(0,0,0,.35);
  box-sizing:border-box;
}
.kc-form-card{
  background:#fff;
  border-radius:var(--kc-radius);
  box-shadow:0 30px 60px rgba(0,0,0,.25);
  padding:40px;
  max-width:760px;
  margin:0 auto;
  color:var(--kc-text);
}
.kc-form-card .kc-form-note{
  text-align:center;
  color:var(--kc-muted);
  font-size:.85rem;
  margin-top:18px;
}

/* ----- Gravity Forms overrides, scoped to this page only ----- */
.tru-kc .gform_wrapper.gravity-theme{ font-family:'Inter',sans-serif; }

/* Force every field to a single, full-width column — overrides GF's
   Orbital theme multi-column grid so nothing is ever cramped or split
   across columns, and label/description/error text can never overlap
   neighboring fields. */
.tru-kc .gform_wrapper.gravity-theme .gform_fields{
  display:grid !important;
  grid-template-columns: 1fr !important;
  row-gap:26px !important;
  column-gap:0 !important;
}
.tru-kc .gform_wrapper.gravity-theme .gfield{
  grid-column: 1 / -1 !important;
  width:100% !important;
  max-width:100% !important;
  position:relative !important;
  margin:0 !important;
}
.tru-kc .gform_wrapper.gravity-theme .gfield_label,
.tru-kc .gform_wrapper.gravity-theme legend.gfield_label{
  position:static !important;
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  white-space:normal !important;
  margin:0 0 8px !important;
}
.tru-kc .gform_wrapper.gravity-theme .ginput_container{
  position:static !important;
  width:100% !important;
  max-width:100% !important;
  margin-top:0 !important;
}
.tru-kc .gform_wrapper.gravity-theme .ginput_container input,
.tru-kc .gform_wrapper.gravity-theme .ginput_container select,
.tru-kc .gform_wrapper.gravity-theme .ginput_container textarea{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
/* Select fields: the theme's own dropdown-arrow icon (.select-dropdown-arrow)
   is normally positioned via a ".form-skin" ancestor class this form doesn't
   have, so — independent of the overrides above — it was rendering inline
   as a stray arrow below the field instead of inside the box. Re-establish
   a positioning context on just the select wrapper and pin the icon inside
   the field, and hide the browser's native arrow so there's only one. */
.tru-kc .gform_wrapper.gravity-theme .ginput_container_select{
  position:relative !important;
}
.tru-kc .gform_wrapper.gravity-theme .ginput_container_select select{
  appearance:none !important;
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  padding-right:42px !important;
}
.tru-kc .gform_wrapper.gravity-theme .select-dropdown-arrow{
  position:absolute !important;
  right:14px !important;
  top:50% !important;
  left:auto !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
  pointer-events:none !important;
  z-index:1 !important;
  color:var(--kc-muted) !important;
  width:16px !important;
  height:16px !important;
}
.tru-kc .gform_wrapper.gravity-theme .gfield_description,
.tru-kc .gform_wrapper.gravity-theme .instruction{
  position:static !important;
  display:block !important;
  width:100% !important;
  margin:6px 0 0 !important;
  font-size:.85rem !important;
  line-height:1.5 !important;
  color:var(--kc-muted) !important;
}
.tru-kc .gform_wrapper.gravity-theme .validation_message{
  position:static !important;
  display:block !important;
  width:100% !important;
  margin:6px 0 0 !important;
  font-size:.85rem !important;
}

/* Multi-part fields (Name, Address, etc.) — lay their sub-inputs out in
   a responsive row instead of GF's default absolute/float positioning,
   which is what was causing the overlapping text near the bottom of
   the form. */
.tru-kc .gform_wrapper.gravity-theme .ginput_complex{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:16px !important;
  width:100% !important;
}
.tru-kc .gform_wrapper.gravity-theme .ginput_complex > span{
  flex:1 1 200px !important;
  min-width:0 !important;
  position:static !important;
  margin:0 !important;
}
.tru-kc .gform_wrapper.gravity-theme .ginput_complex label{
  position:static !important;
  display:block !important;
  width:auto !important;
  font-size:.8rem !important;
  font-weight:500 !important;
  margin:0 0 4px !important;
  color:var(--kc-muted) !important;
  white-space:normal !important;
}

/* Checkbox / radio lists */
.tru-kc .gform_wrapper.gravity-theme .gfield_checkbox,
.tru-kc .gform_wrapper.gravity-theme .gfield_radio{
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  margin:8px 0 0 !important;
  padding:0 !important;
  list-style:none !important;
}
.tru-kc .gform_wrapper.gravity-theme .gfield_checkbox li,
.tru-kc .gform_wrapper.gravity-theme .gfield_radio li{
  display:flex !important;
  align-items:flex-start !important;
  gap:10px !important;
  position:static !important;
  margin:0 !important;
}
.tru-kc .gform_wrapper.gravity-theme .gfield_checkbox input,
.tru-kc .gform_wrapper.gravity-theme .gfield_radio input{
  flex:none !important;
  margin-top:4px !important;
  width:auto !important;
}

.tru-kc .gform_wrapper.gravity-theme .gfield_label{
  font-family:'Inter',sans-serif;
  font-weight:600;
  color:var(--kc-navy);
}
.tru-kc .gform_wrapper.gravity-theme input[type=text],
.tru-kc .gform_wrapper.gravity-theme input[type=email],
.tru-kc .gform_wrapper.gravity-theme input[type=tel],
.tru-kc .gform_wrapper.gravity-theme input[type=number],
.tru-kc .gform_wrapper.gravity-theme select,
.tru-kc .gform_wrapper.gravity-theme textarea{
  border:1.5px solid #dfe4ec !important;
  border-radius:10px !important;
  padding:12px 14px !important;
  font-family:'Inter',sans-serif !important;
  font-size:1rem !important;
}
.tru-kc .gform_wrapper.gravity-theme input:focus,
.tru-kc .gform_wrapper.gravity-theme select:focus,
.tru-kc .gform_wrapper.gravity-theme textarea:focus{
  border-color:var(--kc-orange) !important;
  outline:none !important;
  box-shadow:0 0 0 3px var(--kc-orange-lt) !important;
}
.tru-kc .gform_wrapper.gravity-theme .gform_footer,
.tru-kc .gform_wrapper.gravity-theme .gform_page_footer{
  justify-content:center !important;
}
.tru-kc .gform_wrapper.gravity-theme .gform_button{
  background:var(--kc-orange) !important;
  border:none !important;
  border-radius:9999px !important;
  padding:14px 40px !important;
  font-family:'Inter',sans-serif !important;
  font-weight:600 !important;
  font-size:1rem !important;
  color:#fff !important;
  cursor:pointer;
  transition:background .15s ease, transform .15s ease;
}
.tru-kc .gform_wrapper.gravity-theme .gform_button:hover{
  background:#c96a0c !important;
  transform:translateY(-2px);
}
.tru-kc .gform_wrapper.gravity-theme .gform_confirmation_message{
  background:var(--kc-orange-lt);
  border-radius:var(--kc-radius-sm);
  padding:24px;
  color:var(--kc-navy);
  font-size:1.05rem;
  text-align:center;
}
.tru-kc .gform_wrapper.gravity-theme .validation_error{
  border-color:#d9534f !important;
  color:#d9534f !important;
  border-radius:var(--kc-radius-sm) !important;
}
.tru-kc .gform_wrapper.gravity-theme .gfield_checkbox label{
  font-weight:400 !important;
  color:var(--kc-text) !important;
}

/* ---------- Footer ---------- */
.tru-kc-footer{
  background: var(--kc-navy-dark);
  color:#c3d2ea;
  padding:60px 0 26px;
}
.tru-kc-footer .kc-footer-top{
  display:flex; flex-wrap:wrap; gap:40px; justify-content:space-between;
  padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.12);
  margin-bottom:26px;
}
.tru-kc-footer .kc-footer-brand img{ height:40px; margin-bottom:14px; }
.tru-kc-footer .kc-footer-brand p{ max-width:320px; font-size:.92rem; }
.tru-kc-footer .kc-footer-locations h4{
  color:#fff; font-family:'Poppins',sans-serif; font-size:.95rem; margin-bottom:14px;
}
.tru-kc-footer .kc-footer-locations ul{ list-style:none; margin:0; padding:0; }
.tru-kc-footer .kc-footer-locations li{ font-size:.9rem; margin-bottom:8px; }
.tru-kc-footer .kc-footer-cta{ text-align:center; }
.tru-kc-footer .kc-footer-bottom{
  display:flex; flex-wrap:wrap; gap:12px;
  justify-content:space-between; align-items:center;
  font-size:.82rem; color:#8fa2c4;
}
.tru-kc-footer .kc-footer-bottom a{ color:#c3d2ea; }
.tru-kc-footer .kc-footer-bottom a:hover{ color:#fff; }

/* ---------- Sticky mobile CTA ---------- */
.kc-sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  background:#fff; border-top:1px solid #eef1f6;
  padding:12px 16px;
  box-shadow:0 -6px 20px rgba(0,0,0,.08);
  display:none;
}
.kc-sticky-cta .kc-btn{ width:100%; }

/* =========================================================
   Responsive
   ========================================================= */
@media (min-width: 768px){
  .tru-kc-header .kc-header-phone{ display:inline; }
}

@media (max-width: 980px){
  .tru-kc-hero .kc-container{ grid-template-columns:1fr; text-align:center; }
  .tru-kc-hero p{ margin-left:auto; margin-right:auto; }
  .tru-kc-hero .kc-hero-ctas{ justify-content:center; }
  .tru-kc-hero-art{ order:-1; }
  .tru-kc-hero-art .kc-hero-badge{ width:220px; padding:16px; }
  .tru-kc-about .kc-about-grid{ grid-template-columns:1fr; }
  .kc-pins-grid{ grid-template-columns:repeat(3,1fr); }
  .kc-steps-grid{ grid-template-columns:1fr; }
  .kc-perks-grid{ grid-template-columns:repeat(2,1fr); }
  .tru-kc-stats .kc-stats-grid{ grid-template-columns:repeat(2,1fr); }
  .tru-kc-stats .kc-stat:nth-child(2){ border-right:none; }
}

@media (max-width: 640px){
  .tru-kc-section{ padding:60px 0; }
  .tru-kc-hero{ padding:48px 0 70px; }
  .kc-pins-grid{ grid-template-columns:repeat(2,1fr); }
  .kc-perks-grid{ grid-template-columns:1fr; }
  .tru-kc-header .kc-header-brand img.kc-header-logo{ height:42px; }
  .tru-kc-header .kc-btn{ padding:9px 16px; font-size:.85rem; }
  .kc-form-card{ padding:26px 20px; }
  .kc-goal-box{ padding:36px 22px; }
  .kc-sticky-cta{ display:block; }
  .tru-kc-footer .kc-footer-top{ flex-direction:column; gap:28px; }
  .tru-kc .gform_wrapper.gravity-theme .ginput_complex > span{
    flex:1 1 100% !important;
  }
}

/* =========================================================
   Temporarily hidden per client request (Sep 2026) — the Pins and
   Perks sections stay in the page's markup untouched so they can be
   restored instantly if the client asks for them again. This also
   hides the header nav links and hero CTA that point to the Pins
   section so there's nothing linking to hidden content. The "13
   Collectible pins" stat in the stats strip is left as-is since it's
   general copy, not one of the specific pin cards.
   ========================================================= */
#tru-kc-pins,
#tru-kc-perks,
.kc-header-nav a[href="#tru-kc-pins"],
.kc-header-nav a[href="#tru-kc-perks"],
.kc-hero-ctas a[href="#tru-kc-pins"]{
  display:none !important;
}