/*
Theme Name: Alonso Ledezma for San Jacinto
Theme URI: https://example.com
Author: Campaign Team
Description: One-page re-election microsite for Alonso Ledezma, San Jacinto City Council.
Version: 1.0
Requires at least: 5.0
Requires PHP: 7.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: alonso-ledezma
*/


  :root{
    --ink:#171c30;
    --valley-green:#000053;
    --valley-green-deep:#00003d;
    --parchment:#efe8d6;
    --parchment-soft:#f6f1e4;
    --ochre:#bd8a2b;
    --adobe:#820404;
    --haze:#4a6b6c;
    --line:rgba(23,28,48,0.15);
    --max:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--parchment);
    color:var(--ink);
    font-family:'Public Sans',sans-serif;
    font-size:16px;
    line-height:1.55;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces',serif;
    font-weight:600;
    letter-spacing:-0.01em;
    margin:0;
  }
  .eyebrow{
    font-family:'Space Mono',monospace;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--ochre);
  }
  a{color:inherit;}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}
  @media (max-width:680px){.wrap{padding:0 20px;}}

  /* ---------- Header ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(239,232,214,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 32px;max-width:var(--max);margin:0 auto;
  }
  .nav .name{
    font-family:'Fraunces',serif;font-weight:600;font-size:1.05rem;
  }
  .nav .name span{color:var(--adobe);}
  .navlinks{display:flex;gap:28px;font-size:0.9rem;font-weight:500;}
  .navlinks a{text-decoration:none;opacity:0.8;transition:opacity .2s;}
  .navlinks a:hover{opacity:1;}
  .btn{
    display:inline-block;
    font-family:'Space Mono',monospace;
    font-size:0.78rem;letter-spacing:0.06em;text-transform:uppercase;
    padding:11px 20px;border-radius:2px;
    text-decoration:none;
    border:1px solid var(--ink);
    transition:transform .15s ease, background .2s ease, color .2s ease;
  }
  .btn-fill{background:var(--adobe);border-color:var(--adobe);color:var(--parchment-soft);}
  .btn-fill:hover{background:var(--ink);border-color:var(--ink);}
  .btn-ghost{background:transparent;color:var(--ink);}
  .btn-ghost:hover{background:var(--ink);color:var(--parchment-soft);}
  .btn-on-dark{border-color:rgba(239,232,214,0.5);color:var(--parchment-soft);}
  .btn-on-dark:hover{background:var(--parchment-soft);color:var(--valley-green-deep);border-color:var(--parchment-soft);}
  @media (max-width:760px){.navlinks{display:none;}}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    background:var(--valley-green-deep);
    color:var(--parchment-soft);
    overflow:hidden;
    padding:110px 0 90px;
  }
  .contours{position:absolute;inset:0;z-index:0;opacity:0.55;}
  .hero .wrap{position:relative;z-index:1;}
  .hero-eyebrow{color:var(--ochre);}
  .hero h1{
    font-size:clamp(2.6rem,6vw,4.6rem);
    line-height:1.02;
    margin:14px 0 22px;
    max-width:14ch;
  }
  .hero h1 em{font-style:italic;color:var(--ochre);font-weight:500;}
  .hero p.lede{
    max-width:46ch;font-size:1.15rem;color:rgba(239,232,214,0.86);margin-bottom:34px;
  }
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:56px;}
  .hero-stats{
    display:grid;grid-template-columns:repeat(4,auto);gap:38px;
    border-top:1px solid rgba(239,232,214,0.22);padding-top:26px;
  }
  @media (max-width:760px){.hero-stats{grid-template-columns:repeat(2,1fr);}}
  .stat .num{font-family:'Space Mono',monospace;font-size:1.9rem;color:var(--ochre);}
  .stat .lbl{font-size:0.78rem;color:rgba(239,232,214,0.7);margin-top:4px;max-width:16ch;}

  /* ---------- Section shell ---------- */
  section{padding:90px 0;}
  .section-head{max-width:640px;margin-bottom:52px;}
  .section-head h2{font-size:clamp(1.8rem,3.4vw,2.5rem);margin-top:10px;}
  .rule{height:1px;background:var(--line);border:none;margin:0;}


    .carousel-section{background:var(--parchment);}
  .carousel{position:relative;display:grid;gap:18px;width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;}
  .carousel-track-viewport{overflow:hidden;border:1px solid var(--line);border-radius:8px;}
  .carousel-track{display:flex;gap:16px;padding:18px;width:max-content;animation:carouselScroll 40s linear infinite;align-items:center;}
  .carousel-track::-webkit-scrollbar{display:none;}
  .carousel-slide{flex:0 0 auto;position:relative;background:var(--parchment-soft);border-radius:8px;overflow:hidden;display:inline-block;border:1px solid var(--line);}
  .carousel-slide img{width:340px;height:420px;object-fit:cover;display:block;}
  @media (max-width:680px){.carousel-slide img{width:260px;height:320px;}}
  .slide-caption{display:none;}
  @keyframes carouselScroll{from{transform:translateX(0);}to{transform:translateX(calc(-1 * var(--carousel-scroll-width, 0px)));}}

  /* ---------- About ---------- */
  .about{background:var(--parchment-soft);}
  .about-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:start;}
  @media (max-width:800px){.about-grid{grid-template-columns:1fr;gap:36px;}}
  .portrait{
    aspect-ratio:4/5;
    border:1px solid var(--line);
    position:relative;
    overflow:hidden;
    display:flex;align-items:flex-end;padding:20px;
    background:
      repeating-linear-gradient(135deg, #d8c9a3 0 2px, #cdbb90 2px 4px);
  }
  .portrait::after{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(0,0,61,0) 40%, rgba(0,0,61,0.85) 100%);
    pointer-events:none;
  }
  .portrait img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }
  .portrait .cap{
    position:relative;
    z-index:1;
    font-family:'Space Mono',monospace;color:var(--parchment-soft);font-size:0.75rem;letter-spacing:0.04em;
  }
  .about-copy p{margin:0 0 18px;font-size:1.02rem;}
  .about-copy .role-list{
    list-style:none;margin:26px 0 0;padding:18px 0 0;border-top:1px solid var(--line);
    display:grid;gap:10px;
  }
  .about-copy .role-list li{font-size:0.92rem;display:flex;gap:10px;}
  .about-copy .role-list li::before{content:"—";color:var(--ochre);flex:none;}


  /* ---------- Timeline (signature element) ---------- */
  .timeline-section{background:var(--parchment);}
  .elevation{
    position:relative;
    padding-top:10px;
  }
  .elevation svg{display:block;width:100%;height:auto;}
  .tl-track{position:relative;margin-top:-6px;}
  .tl-points{
    display:grid;grid-template-columns:repeat(6,1fr);
    margin-top:8px;
  }
  .tl-point{padding-right:16px;}
  .tl-point .yr{font-family:'Space Mono',monospace;color:var(--adobe);font-size:0.95rem;font-weight:700;}
  .tl-point .ev{font-size:0.84rem;margin-top:6px;color:var(--ink);opacity:0.85;}
  @media (max-width:900px){
    .tl-points{grid-template-columns:1fr 1fr;row-gap:22px;}
    .tl-point{padding-right:18px;}
  }

  /* ---------- Priorities ---------- */
  .priorities{background:var(--valley-green);color:var(--parchment-soft);}
  .priorities .section-head p{color:rgba(239,232,214,0.78);}
  .pri-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(239,232,214,0.18);border:1px solid rgba(239,232,214,0.18);}
  @media (max-width:760px){.pri-grid{grid-template-columns:1fr;}}
  .pri-card{background:var(--valley-green);padding:34px 32px;}
  .pri-card .idx{font-family:'Space Mono',monospace;color:var(--ochre);font-size:0.8rem;}
  .pri-card h3{font-size:1.25rem;margin:12px 0 10px;font-weight:500;}
  .pri-card p{font-size:0.94rem;color:rgba(239,232,214,0.78);margin:0;}

  /* ---------- Testimonial ticker ---------- */
  .ticker-section{
    background:var(--parchment);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:0;
  }
  .ticker-label{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 32px 0;max-width:var(--max);margin:0 auto;
  }
  .ticker-label .placeholder-flag{
    font-family:'Space Mono',monospace;font-size:0.68rem;letter-spacing:0.06em;
    text-transform:uppercase;color:var(--adobe);
    border:1px solid var(--adobe);padding:4px 9px;border-radius:2px;
  }
  .ticker-viewport{
    overflow:hidden;
    padding:20px 0 26px;
    -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
    mask-image:linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
  }
  .ticker-track{
    display:flex;
    width:max-content;
    gap:20px;
    animation:tickerScroll 42s linear infinite;
  }
  .ticker-viewport:hover .ticker-track{animation-play-state:paused;}
  .ticker-card{
    flex:none;
    width:300px;
    background:var(--parchment-soft);
    border:1px solid var(--line);
    padding:20px 22px;
  }
  .ticker-card p.quote{
    font-family:'Fraunces',serif;font-style:italic;font-size:1.02rem;
    margin:0 0 14px;color:var(--ink);
  }
  .ticker-card .who{
    font-family:'Space Mono',monospace;font-size:0.75rem;color:var(--haze);
  }
  @keyframes tickerScroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  @media (prefers-reduced-motion:reduce){
    .ticker-track{animation:none;overflow-x:auto;}
  }

  /* ---------- Get involved ---------- */
  .involve{background:var(--parchment-soft);}
  .involve-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:64px;}
  @media (max-width:800px){.involve-grid{grid-template-columns:1fr;gap:40px;}}
  .actioncard{
    border:1px solid var(--line);background:var(--parchment);padding:30px;margin-bottom:18px;
  }
  .actioncard h3{font-size:1.1rem;margin-bottom:8px;font-weight:600;}
  .actioncard p{font-size:0.92rem;margin:0 0 16px;opacity:0.85;}
  form{display:grid;gap:14px;}
  label{font-family:'Space Mono',monospace;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--valley-green);}
  input,select{
    font-family:'Public Sans',sans-serif;font-size:0.95rem;
    padding:12px 14px;border:1px solid var(--line);background:var(--parchment-soft);
    border-radius:2px;width:100%;
  }
  input:focus,select:focus,button:focus,a:focus{outline:2px solid var(--haze);outline-offset:2px;}
  .field{display:grid;gap:6px;}
  .involve form .submit{margin-top:6px;}
  button.btn-fill{border:none;cursor:pointer;font-family:'Space Mono',monospace;}

  /* ---------- Footer ---------- */
  footer{background:var(--valley-green-deep);color:rgba(239,232,214,0.75);padding:56px 0 30px;font-size:0.86rem;}
  .footer-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:28px;border-bottom:1px solid rgba(239,232,214,0.15);padding-bottom:32px;margin-bottom:22px;}
  .footer-grid .name{font-family:'Fraunces',serif;color:var(--parchment-soft);font-size:1.1rem;}
  .footer-links{display:flex;gap:22px;flex-wrap:wrap;}
  .footer-links a{text-decoration:none;opacity:0.85;}
  .footer-links a:hover{opacity:1;}
  .disclaimer{opacity:0.55;font-size:0.78rem;max-width:640px;}

  @media (prefers-reduced-motion:no-preference){
    .fade-up{animation:fadeUp .7s ease both;}
  }
  @keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
