/*
Theme Name: Avenal Progress
Theme URI: https://avenalprogress.com
Author: Francisco Lopez
Author URI: https://avenalprogress.com
Description: Bilingual (English/Spanish) custom WordPress theme for the Avenal Progress coalition site. Single-page, poster-style design in the Progreso Avenal brand palette. Elementor-compatible: includes a blank Canvas page template and Elementor Theme Builder location support.
Version: 2.1.1
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: avenal-progress
*/


  :root{
    --navy:#0A2F5E;
    --navy-deep:#071F40;
    --gold:#F2B705;
    --gold-deep:#C99A00;
    --green:#147A32;
    --green-deep:#0E5C25;
    --red:#D0331F;
    --cream:#FBF5E8;
    --paper:#FFFFFF;
    --ink:#14213D;
    --ink-soft:#4A5670;
    --line: rgba(10,47,94,0.14);
    --card: #FFFFFF;
    --shadow: 0 18px 40px -22px rgba(10,47,94,0.35);
    --focus: 3px solid var(--red);
  }

  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --navy:#12335E;
      --navy-deep:#050C18;
      --gold:#FFCB2E;
      --gold-deep:#E0A800;
      --green:#2FA855;
      --green-deep:#1B7A38;
      --red:#FF6449;
      --cream:#0B1524;
      --paper:#0F1D33;
      --ink:#F2EEE3;
      --ink-soft:#B9C2D6;
      --line: rgba(242,238,227,0.14);
      --card:#122444;
      --shadow: 0 18px 40px -18px rgba(0,0,0,0.6);
    }
  }
  :root[data-theme="dark"]{
    --navy:#12335E;
    --navy-deep:#050C18;
    --gold:#FFCB2E;
    --gold-deep:#E0A800;
    --green:#2FA855;
    --green-deep:#1B7A38;
    --red:#FF6449;
    --cream:#0B1524;
    --paper:#0F1D33;
    --ink:#F2EEE3;
    --ink-soft:#B9C2D6;
    --line: rgba(242,238,227,0.14);
    --card:#122444;
    --shadow: 0 18px 40px -18px rgba(0,0,0,0.6);
  }

  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Public Sans', system-ui, -apple-system, "Segoe UI", sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;}
  h1,h2,h3{text-wrap:balance; margin:0;}
  p{margin:0;}
  button{font-family:inherit;}
  :focus-visible{outline:var(--focus); outline-offset:3px;}

  /* ---------- language toggle ---------- */
  [data-lang]{display:none;}
  body:not(.es-mode) [data-lang="en"]{display:revert;}
  body.es-mode [data-lang="es"]{display:revert;}

  .wrap{
    max-width:1160px;
    margin-inline:auto;
    padding-inline:20px;
  }
  @media (min-width:720px){ .wrap{padding-inline:32px;} }

  .eyebrow{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    font-size:.82rem;
    display:inline-flex;
    align-items:center;
    gap:.5em;
  }
  .display{
    font-family:'Archivo Black', 'Barlow Condensed', sans-serif;
    line-height:.98;
    letter-spacing:-0.01em;
  }

  .btn{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    letter-spacing:.03em;
    text-transform:uppercase;
    font-size:1.02rem;
    display:inline-flex;
    align-items:center;
    gap:.55em;
    padding:.85em 1.5em;
    border-radius:999px;
    border:2px solid transparent;
    text-decoration:none;
    cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-gold{ background:var(--gold); color:var(--navy-deep); box-shadow:0 10px 24px -10px rgba(242,183,5,.6); }
  .btn-gold:hover{ background:var(--gold-deep); }
  .btn-outline{ border-color:currentColor; background:transparent; }
  .btn-red{ background:var(--red); color:#fff; box-shadow:0 10px 24px -10px rgba(208,51,31,.55); }
  .btn-red:hover{ filter:brightness(1.08); }
  .btn-line{ background:transparent; border-color:var(--line); color:var(--ink); }
  .btn-line:hover{ border-color:var(--navy); }

  /* ---------- nav ---------- */
  header.site{
    position:sticky; top:env(safe-area-inset-top, 0px); z-index:50;
    background:color-mix(in srgb, var(--cream) 92%, transparent);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    gap:16px; padding-block:12px;
  }
  .brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
  .brand img{ height:40px; width:auto; }
  .brand-word{ font-family:'Barlow Condensed',sans-serif; font-weight:800; letter-spacing:.02em; font-size:1.05rem; color:var(--navy); line-height:1.05; }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .brand-word{ color:var(--gold); } }
  :root[data-theme="dark"] .brand-word{ color:var(--gold); }

  nav.links{ display:flex; align-items:center; gap:22px; }
  nav.links a{
    font-family:'Barlow Condensed', sans-serif; font-weight:700; text-transform:uppercase;
    letter-spacing:.05em; font-size:.9rem; text-decoration:none; color:var(--ink-soft);
    padding-block:4px; border-bottom:2px solid transparent;
  }
  nav.links a:hover{ color:var(--navy); border-color:var(--gold); }
  .nav-actions{ display:flex; align-items:center; gap:12px; }
  .lang-pill{
    display:inline-flex; align-items:center; gap:0; border:2px solid var(--navy); border-radius:999px; overflow:hidden;
  }
  .lang-opt{
    padding:.45em .95em; font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:.85rem;
    background:transparent; color:var(--navy); border:none; cursor:pointer; transition:background .15s ease, color .15s ease;
  }
  .lang-opt[aria-pressed="true"]{ background:var(--navy); color:var(--cream); }
  @media (max-width: 980px){
    nav.links{ display:none; }
  }
  @media (max-width: 480px){
    .nav-actions .btn{ display:none; }
    .brand-word{ display:none; }
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    background:radial-gradient(140% 120% at 50% -10%, var(--navy) 0%, var(--navy-deep) 62%);
    color:#fff;
    overflow:hidden;
    padding-block: 64px 84px;
  }
  .rays{ position:absolute; inset:0; z-index:0; opacity:.55; pointer-events:none; }
  .hero-inner{ position:relative; z-index:1; display:grid; gap:26px; justify-items:center; text-align:center; }
  .hero .eyebrow{ color:var(--gold); }
  .hero .eyebrow .dot{ width:7px;height:7px;border-radius:50%;background:var(--red); display:inline-block; }
  .hero h1{ font-size:clamp(2.6rem, 7vw, 5.2rem); color:#fff; max-width:16ch; }
  .hero h1 .accent{ color:var(--gold); }
  .hero-sub{ max-width:54ch; font-size:1.15rem; color:#E9EEF7; line-height:1.55; }
  .hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
  .hero-logo{ width:min(360px, 78vw); margin-inline:auto; filter:drop-shadow(0 18px 30px rgba(0,0,0,.35)); }

  /* ---------- marquee ---------- */
  .ticker-wrap{
    background:var(--gold); color:var(--navy-deep);
    overflow:hidden; border-block:3px solid var(--navy-deep);
  }
  .ticker-track{
    display:inline-block; white-space:nowrap; padding-block:10px;
    font-family:'Barlow Condensed', sans-serif; font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:1rem;
    animation: scrollLeft 30s linear infinite;
  }
  .ticker-track span.item{ margin-inline:1.1em; }
  .ticker-track span.item .sep{ color:var(--red); margin-inline:1em; }
  @keyframes scrollLeft{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
  @media (prefers-reduced-motion: reduce){ .ticker-track{ animation:none; } }

  /* ---------- generic section ---------- */
  section{ padding-block:76px; }
  .section-head{ max-width:64ch; margin-bottom:40px; }
  .section-head .eyebrow{ color:var(--red); margin-bottom:10px; }
  .section-head h2{ font-size:clamp(1.9rem, 4vw, 2.7rem); color:var(--navy); }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .section-head h2{ color:var(--gold); } }
  :root[data-theme="dark"] .section-head h2{ color:var(--gold); }
  .section-head p.lede{ margin-top:14px; color:var(--ink-soft); font-size:1.08rem; line-height:1.6; }

  .on-navy{ background:var(--navy); color:#fff; }
  .on-navy .eyebrow{ color:var(--gold); }
  .on-navy .section-head h2{ color:#fff; }
  .on-navy .section-head p.lede{ color:#CFD9EA; }

  /* ---------- what's at stake (flagship) ---------- */
  .stake{
    background:linear-gradient(170deg, var(--navy) 0%, var(--navy-deep) 100%);
    color:#fff; position:relative; overflow:hidden;
  }
  .stake .eyebrow{ color:var(--gold); }
  .stake .section-head h2{ color:#fff; }
  .stake .section-head p.lede{ color:#D7DFEE; }
  .stake-callout{
    background:rgba(255,255,255,.07); border:2px solid var(--gold); border-radius:22px;
    padding:28px; margin-bottom:34px; display:flex; flex-wrap:wrap; align-items:center; gap:24px 34px;
  }
  .stake-figures{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
  .stake-fig{ display:flex; flex-direction:column; gap:4px; }
  .stake-fig .num{ font-family:'Archivo Black', sans-serif; font-size:clamp(1.8rem,4.6vw,2.9rem); line-height:1; }
  .stake-fig .num.was{ color:#CFD9EA; }
  .stake-fig .num.now{ color:var(--gold); }
  .stake-fig .lab{
    font-family:'Barlow Condensed', sans-serif; font-weight:700; text-transform:uppercase;
    letter-spacing:.06em; font-size:.76rem; color:#AEBBD2;
  }
  .stake-arrow{ color:var(--red); font-size:2rem; line-height:1; font-weight:700; }
  @media (max-width:560px){
    .stake-figures{ flex-direction:column; align-items:flex-start; gap:8px; }
    .stake-arrow{ transform:rotate(90deg); margin-left:10px; font-size:1.6rem; }
    .stake-callout{ padding:22px; }
  }
  .stake-callout .explain{ flex:1 1 280px; color:#E9EEF7; line-height:1.55; font-size:1rem; }
  .stake-callout .src{ display:block; margin-top:8px; font-size:.8rem; color:#93A2BD; }
  .stake-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(250px,1fr)); gap:22px; }
  .stake-card{
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:18px; padding:26px;
    display:flex; flex-direction:column; gap:13px;
  }
  .stake-icon{
    width:44px; height:44px; border-radius:12px; background:var(--red); color:#fff; flex:none;
    display:flex; align-items:center; justify-content:center;
  }
  .stake-icon svg{ width:22px; height:22px; }
  .stake-card h3{ font-family:'Archivo Black', sans-serif; font-size:1.12rem; line-height:1.25; }
  .stake-card p{ color:#D7DFEE; line-height:1.55; font-size:.97rem; }
  .stake-pledge{
    margin-top:34px; padding:24px 28px; border-left:5px solid var(--gold);
    background:rgba(242,183,5,.12); border-radius:0 16px 16px 0;
  }
  .stake-pledge .lab{
    font-family:'Barlow Condensed', sans-serif; font-weight:700; text-transform:uppercase;
    letter-spacing:.08em; font-size:.8rem; color:var(--gold); display:block; margin-bottom:8px;
  }
  .stake-pledge p{ font-size:1.12rem; line-height:1.5; color:#fff; font-weight:600; }

  /* ---------- coalition ---------- */
  .coalition-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:24px; }
  .coalition-card{
    background:var(--card); border:1px solid var(--line); border-radius:20px; padding:28px;
    box-shadow:var(--shadow); display:flex; flex-direction:column; gap:14px;
  }
  .coalition-top{ display:flex; align-items:center; gap:16px; }
  .coalition-photo{
    width:72px; height:72px; border-radius:50%; border:3px dashed var(--line); flex:none;
    display:flex; align-items:center; justify-content:center;
    background:color-mix(in srgb, var(--navy) 6%, var(--paper)); color:var(--ink-soft);
  }
  .coalition-photo svg{ width:28px; height:28px; opacity:.5; }
  .coalition-card h3{ font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:1.25rem; color:var(--navy); }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .coalition-card h3{ color:var(--gold); } }
  :root[data-theme="dark"] .coalition-card h3{ color:var(--gold); }
  .coalition-card .role{
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:.78rem; text-transform:uppercase;
    letter-spacing:.04em; color:var(--red);
  }
  .coalition-card ul{ margin:0; padding-left:1.1em; color:var(--ink-soft); line-height:1.6; font-size:.92rem; }
  .coalition-card .tagline{
    font-style:italic; color:var(--ink-soft); font-size:.94rem; border-top:1px dashed var(--line);
    padding-top:12px; margin-top:2px;
  }
  .coalition-card .soon{ font-size:.92rem; color:var(--ink-soft); font-style:italic; }
  .coalition-card .add{
    align-self:flex-start; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.8rem;
    text-transform:uppercase; letter-spacing:.03em; color:var(--red);
  }

  /* ---------- video testimonials ---------- */
  .testi-note{
    display:flex; gap:10px; align-items:flex-start; background:color-mix(in srgb, var(--gold) 16%, var(--paper));
    border:1px solid color-mix(in srgb, var(--gold) 45%, transparent); border-radius:14px; padding:14px 18px; margin-bottom:30px;
    color:var(--ink); font-size:.96rem; max-width:62ch;
  }
  .video-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(170px,1fr)); gap:18px; max-width:920px; }
  .video-card{
    position:relative; aspect-ratio:9/16; border-radius:20px; overflow:hidden;
    border:2px dashed color-mix(in srgb, var(--gold) 55%, var(--line));
    background:
      radial-gradient(120% 90% at 30% 0%, color-mix(in srgb, var(--navy) 70%, transparent) 0%, transparent 60%),
      linear-gradient(165deg, var(--navy) 0%, var(--navy-deep) 100%);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:12px; padding:18px; text-align:center; color:#fff;
  }
  .video-card .play{
    width:52px; height:52px; border-radius:50%; background:var(--gold); color:var(--navy-deep);
    display:flex; align-items:center; justify-content:center; flex:none;
    box-shadow:0 10px 20px -8px rgba(0,0,0,.5);
  }
  .video-card .play svg{ width:20px; height:20px; margin-left:2px; }
  .video-card .vcap{ font-size:.86rem; color:#D7DFEE; line-height:1.4; }
  .video-card .vhandle{ font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:.9rem; color:#fff; }
  .video-card .add{
    position:absolute; bottom:14px; left:14px; right:14px;
    font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.78rem; letter-spacing:.03em; text-transform:uppercase;
    color:var(--navy-deep); background:var(--gold); border-radius:999px; padding:.4em .8em;
  }

  /* ---------- progress cards ---------- */
  .progress-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(250px,1fr)); gap:22px; }
  .p-card{
    background:var(--card); border:1px solid var(--line); border-radius:18px; padding:26px;
    box-shadow:var(--shadow); display:flex; flex-direction:column; gap:14px;
  }
  .p-icon{ width:46px; height:46px; border-radius:12px; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; flex:none; }
  .p-icon svg{ width:24px; height:24px; }
  .p-card h3{ font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:1.28rem; color:var(--navy); }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .p-card h3{ color:var(--gold); } }
  :root[data-theme="dark"] .p-card h3{ color:var(--gold); }
  .p-card p{ color:var(--ink-soft); line-height:1.55; font-size:.98rem; }

  /* ---------- about ---------- */
  .about-grid{ display:grid; grid-template-columns: 1.1fr 1.4fr; gap:48px; align-items:center; }
  @media (max-width:820px){ .about-grid{ grid-template-columns:1fr; } }
  .photo-slot{
    aspect-ratio:4/5; border-radius:22px; border:3px dashed var(--line);
    display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px;
    background:color-mix(in srgb, var(--navy) 6%, var(--paper)); color:var(--ink-soft); text-align:center; padding:20px;
  }
  .photo-slot svg{ width:56px; height:56px; opacity:.5; }
  .photo-slot span.label{ font-family:'Barlow Condensed',sans-serif; font-weight:700; letter-spacing:.04em; text-transform:uppercase; font-size:.85rem; }
  .about-body p{ color:var(--ink-soft); line-height:1.7; font-size:1.05rem; }
  .about-body p + p{ margin-top:14px; }
  .chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
  .chip{
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:.86rem; letter-spacing:.02em;
    padding:.5em 1em; border-radius:999px; background:color-mix(in srgb, var(--green) 12%, var(--paper));
    border:1px solid color-mix(in srgb, var(--green) 40%, transparent); color:var(--green-deep);
  }
  .vision-quote{
    margin:26px 0 0; padding:20px 24px; border-left:4px solid var(--gold);
    background:color-mix(in srgb, var(--gold) 10%, var(--paper)); border-radius:0 14px 14px 0;
  }
  .vision-quote p{ font-size:1.05rem; line-height:1.6; color:var(--ink); font-style:italic; }
  .vision-quote strong{ color:var(--navy); font-style:normal; }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .vision-quote strong{ color:var(--gold); } }
  :root[data-theme="dark"] .vision-quote strong{ color:var(--gold); }

  /* ---------- platform ---------- */
  .platform-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:22px; }
  .plat-card{
    background:var(--card); border:1px solid var(--line); border-radius:18px; padding:26px;
    box-shadow:var(--shadow);
  }
  .plat-card.lead{
    border:2px solid var(--gold);
    background:color-mix(in srgb, var(--gold) 12%, var(--card));
  }
  .plat-num{ font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:.95rem; color:var(--red); letter-spacing:.08em; }
  .plat-card h3{ font-family:'Archivo Black', sans-serif; font-size:1.2rem; margin-block:.5em .4em; line-height:1.2; color:var(--navy); }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .plat-card h3{ color:var(--gold); } }
  :root[data-theme="dark"] .plat-card h3{ color:var(--gold); }
  .plat-card p{ color:var(--ink-soft); line-height:1.55; font-size:.98rem; }

  /* ---------- get involved ---------- */
  .involved-grid{ display:grid; grid-template-columns: 1fr 1fr 1fr; gap:22px; }
  @media (max-width:900px){ .involved-grid{ grid-template-columns:1fr; } }
  .inv-card{
    background:var(--card); border:1px solid var(--line); border-radius:18px; padding:28px;
    box-shadow:var(--shadow); display:flex; flex-direction:column; gap:14px;
  }
  .inv-card h3{ font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:1.3rem; color:var(--navy); }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .inv-card h3{ color:var(--gold); } }
  :root[data-theme="dark"] .inv-card h3{ color:var(--gold); }
  .inv-card p{ color:var(--ink-soft); line-height:1.55; }
  .inv-card ul{ margin:0; padding-left:1.1em; color:var(--ink-soft); line-height:1.7; }
  .inv-card .btn{ align-self:flex-start; margin-top:auto; }
  .date-row{ display:flex; justify-content:space-between; gap:10px; font-size:.95rem; padding-block:8px; border-bottom:1px dashed var(--line); }
  .date-row:last-of-type{ border-bottom:none; }
  .date-row .k{ color:var(--ink-soft); }
  .date-row .v{ font-family:'Barlow Condensed',sans-serif; font-weight:700; color:var(--navy); }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .date-row .v{ color:var(--gold); } }
  :root[data-theme="dark"] .date-row .v{ color:var(--gold); }

  /* ---------- footer ---------- */
  footer{ background:var(--navy-deep); color:#D7DFEE; padding-block:56px 28px; }
  .foot-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:36px; }
  @media (max-width:760px){ .foot-grid{ grid-template-columns:1fr; } }
  .foot-brand{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
  .foot-brand img{ height:38px; }
  .foot-brand span{ font-family:'Barlow Condensed', sans-serif; font-weight:800; color:#fff; font-size:1.05rem; }
  footer p{ color:#AEB9CE; line-height:1.6; font-size:.95rem; }
  footer h4{ font-family:'Barlow Condensed', sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:.88rem; color:var(--gold); margin-bottom:12px; }
  footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
  footer a{ color:#D7DFEE; text-decoration:none; font-size:.96rem; }
  footer a:hover{ color:var(--gold); }
  .social-row{ display:flex; gap:10px; margin-top:6px; }
  .social-row a{
    width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.25);
    display:flex; align-items:center; justify-content:center;
  }
  .social-row a:hover{ border-color:var(--gold); color:var(--gold); }
  .legal{ margin-top:40px; padding-top:22px; border-top:1px solid rgba(255,255,255,.14); font-size:.82rem; color:#8B97AE; line-height:1.6; }
