/*
Theme Name: Race4Ayrton
Theme URI: https://race4ayrton.com
Author: Race4Ayrton
Description: One-page fundraising theme for Race4Ayrton, a family effort to fund gene therapy research for SPG51. Activate it, then set a static homepage under Settings > Reading (optional). Contact email, phone and an optional donation link are editable under Appearance > Customize > Race4Ayrton contact.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
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: race4ayrton
*/

:root{
  --black:#000000;
  --yellow:#FFE200;
  --green:#00A84C;
  --green-deep:#0B6B33;
  --red:#FF1801;
  --graphite:#424242;
  --white:#FFFFFF;
  --mist:#F3F4F1;
  --font:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font);font-size:18px;line-height:1.55;color:var(--black);background:var(--white);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.on-black :focus-visible{outline-color:var(--yellow)}
.wrap{width:min(1120px,100% - 48px);margin-inline:auto}
h1,h2,h3{font-weight:800;line-height:1.05;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(3rem,8vw,6rem);font-stretch:112%}
h2{font-size:clamp(2.2rem,5vw,3.6rem);font-stretch:108%}
h3{font-size:1.25rem;line-height:1.2}
p{margin:0 0 1em;max-width:62ch}
.on-black{background:var(--black);color:var(--white)}
.y{color:var(--yellow)}
.g{color:var(--green)}

/* header */
.top{position:sticky;top:0;z-index:20;background:var(--white);border-bottom:1px solid #e6e6e6}
.top > .wrap{display:flex;align-items:center;gap:24px;min-height:76px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;font-size:1.55rem;letter-spacing:-.02em;white-space:nowrap}
.brand img{width:88px;height:auto;margin:-8px 0}
.brand .four{color:var(--yellow);-webkit-text-stroke:.5px #c9b000}
.brand em{color:var(--red);font-style:italic;font-weight:600}
nav{margin-left:auto;display:flex;gap:26px;align-items:center;font-weight:600;font-size:.95rem}
nav a{text-decoration:none}
nav a:not(.btn):hover{text-decoration:underline;text-decoration-color:var(--green);text-underline-offset:6px;text-decoration-thickness:3px}
.btn{display:inline-block;background:var(--yellow);color:var(--black);font-weight:800;text-decoration:none;padding:.8em 1.4em;border-radius:6px;border:2px solid var(--black);transition:background .15s}
.btn:hover{background:var(--white)}
.on-black .btn{border-color:var(--yellow)}
.on-black .btn:hover{background:var(--white);border-color:var(--white)}
@media (max-width:820px){.mainnav a:not(.btn){display:none}.mainnav{margin-left:auto}.brand{font-size:1.2rem}.brand img{width:64px}}

/* hero */
.hero{padding:72px 0 88px}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.hero h1{color:var(--yellow)}
.hero .tag{color:var(--green);font-style:italic;font-size:1.4rem;font-weight:500;margin:.5em 0 1.6em}
.hero p{font-size:1.15rem}
.hero .hl{color:var(--green);font-weight:700}
.hero .cta{display:flex;gap:16px;flex-wrap:wrap;margin-top:32px;align-items:center}
.hero .cta a.txt{font-weight:700;color:var(--white);text-underline-offset:6px;text-decoration-color:var(--green);text-decoration-thickness:3px}
.photo{position:relative}
.photo img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:4px}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.photo{max-width:420px}}

/* sections */
section{padding:88px 0}
.sec-head{margin-bottom:40px}
.sec-head p{font-size:1.15rem;margin-top:18px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media (max-width:860px){.two{grid-template-columns:1fr}}
.callout{background:var(--black);color:var(--white);padding:40px;border-radius:4px}
.callout p{font-size:1.25rem;font-weight:700;line-height:1.4;margin:0}
.callout .g{color:var(--green)}
.neuron{background:var(--black);border-radius:4px;padding:28px 24px}.neuron img{width:100%;height:auto}

/* the four */
.four-facts{padding:96px 0;position:relative;overflow:hidden}
.four-facts .wrap{display:grid;grid-template-columns:auto 1fr;gap:64px;align-items:center}
.bigfour{font-size:clamp(14rem,32vw,28rem);line-height:.8;font-weight:900;font-style:italic;font-stretch:125%;color:var(--white);letter-spacing:-.04em;margin:0;user-select:none}
.facts{display:grid;gap:34px}
.facts div{font-size:1.5rem;line-height:1.35;max-width:44ch}
.facts b{font-weight:800}
.facts .n{color:var(--yellow);font-weight:900}
@media (max-width:860px){.four-facts .wrap{grid-template-columns:1fr;gap:16px}.bigfour{font-size:11rem}}

/* research */
.aims{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:10px solid var(--black);border-radius:4px;margin-top:8px}
.aim{padding:26px 24px 30px;border-right:4px solid var(--black)}
.aim:last-child{border-right:0}
.aim .lab{font-weight:800;color:var(--green-deep);font-size:.95rem;margin-bottom:10px}
.aim h3{margin-bottom:10px}
.aim p{font-size:.98rem;margin:0}
@media (max-width:900px){.aims{grid-template-columns:1fr 1fr}.aim{border-bottom:4px solid var(--black)}.aim:nth-child(2n){border-right:0}.aim:nth-child(n+3){border-bottom:0}}
@media (max-width:560px){.aims{grid-template-columns:1fr}.aim{border-right:0;border-bottom:4px solid var(--black)!important}.aim:last-child{border-bottom:0!important}}
.research-note{margin-top:36px;display:grid;grid-template-columns:1fr 1fr;gap:40px}
@media (max-width:860px){.research-note{grid-template-columns:1fr;gap:0}}
.mist{background:var(--mist)}
.science{padding:0}
.sci-dark{padding:88px 0}
.sci-dark .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.sci-dark p{font-size:1.15rem;margin-top:22px;color:#e8e8e8}
.lablink{color:var(--yellow);font-weight:800;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px}
.lablink:hover{color:var(--white)}
.people{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.people figure{margin:0}
.people img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 20%;border-radius:4px;background:var(--graphite);border:3px solid var(--green)}
.people figcaption{margin-top:12px;display:grid;gap:2px;font-size:.95rem;line-height:1.3}
.people figcaption a{color:var(--yellow);font-weight:800;text-decoration:underline;text-underline-offset:4px}.people figcaption a:hover{color:var(--white)}
.people figcaption span{color:#bdbdbd}
.sci-aims{padding:64px 0 88px}
@media (max-width:860px){.sci-dark .wrap{grid-template-columns:1fr;gap:36px}}
@media (max-width:480px){.people{gap:12px}}

/* road */
.road{padding:96px 0 104px}
.road .sec-head p{color:#d8d8d8}
.now{border:8px solid var(--green);border-radius:6px;padding:36px 40px;margin-bottom:56px;display:grid;grid-template-columns:1.1fr 1fr;gap:40px}
.now h3{color:var(--green);font-size:1.5rem;margin-bottom:10px}
.now ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.now li{display:flex;gap:14px;align-items:baseline}
.now li b{color:var(--yellow);min-width:9ch;font-weight:800}
@media (max-width:860px){.now{grid-template-columns:1fr;gap:20px}}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:14px;align-items:end;min-height:490px}
.step{border-top:6px solid var(--green);background:#111;padding:20px 18px 22px;display:flex;flex-direction:column;gap:8px;border-radius:0 0 4px 4px}
.step:nth-child(1){min-height:290px}
.step:nth-child(2){min-height:340px}
.step:nth-child(3){min-height:390px}
.step:nth-child(4){min-height:440px}
.step:nth-child(5){min-height:490px;border-top-color:var(--yellow)}
.step .date{color:var(--yellow);font-weight:900;font-size:1.5rem;font-stretch:112%}
.step h3{font-size:1.1rem}
.step .who{color:#bdbdbd;font-size:.85rem}
.step .cost{margin-top:auto;font-weight:800;font-size:1.3rem;color:var(--white)}
.step .cost.none{color:#9a9a9a;font-weight:500;font-size:.95rem}
@media (max-width:980px){.steps{grid-template-columns:1fr;min-height:0;align-items:stretch}.step,.step:nth-child(n){min-height:0}.step .cost{margin-top:6px}}
.fine{color:#bdbdbd;font-size:.95rem;margin-top:28px;max-width:80ch}

/* time */
.time h2{max-width:16ch;margin-bottom:8px}
.time-body{margin-top:28px}

.time .list{list-style:none;padding:0;margin:0 0 0;display:grid;gap:14px;font-size:1.3rem;font-weight:700}
.time .list li{padding-left:34px;position:relative}
.time .list li::before{content:"";position:absolute;left:0;top:.55em;width:16px;height:16px;background:var(--green);transform:skew(-14deg)}

/* race */
.race .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.race h2{color:var(--green)}
.race p{font-size:1.15rem}
.race .mark{color:var(--yellow);font-weight:700}
.race img{border-radius:4px;width:100%}
@media (max-width:860px){.race .wrap{grid-template-columns:1fr}}
.give{background:var(--yellow);color:var(--black);padding:56px 0}
.give .wrap{display:flex;flex-wrap:wrap;gap:28px 48px;align-items:center;justify-content:space-between}
.give h2{font-size:clamp(1.8rem,4vw,2.6rem);max-width:20ch}
.give .how{display:grid;justify-items:start;gap:6px;font-weight:700;font-size:1.15rem}
.give .btn{background:var(--black);color:var(--yellow);border-color:var(--black);font-size:1.1rem}
.give .btn:hover{background:var(--white);color:var(--black)}
.give .how a{text-underline-offset:5px}
footer{padding:36px 0;font-size:.95rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}
footer .brand{font-size:1.15rem;color:var(--white)}
footer .brand img{width:44px}
footer .brand em{color:var(--red)}
footer p{margin:0;color:#bdbdbd}

/* ---- converted inline styles ---- */
.hope-h{margin:36px 0 12px;font-size:2rem}
.hope-p{font-weight:700;font-size:1.2rem}
.two.align-top{align-items:start}
.lead-p{margin-top:24px;font-size:1.2rem}
.lead-p.semi{font-weight:600}
.research-note p{margin-top:32px}
.now p{margin:0}
.time .intro{margin-top:20px;font-size:1.2rem;font-weight:600}
.time .list{margin-top:22px}
.time .callout{margin-top:8px}
.race h2 + p{margin-top:24px}
.race p.mark{font-size:1.3rem}

/* ---- WordPress additions ---- */
.admin-bar .top{top:32px}
@media (max-width:782px){.admin-bar .top{top:46px}}
@media (max-width:600px){.admin-bar .top{top:0}}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;background:var(--yellow);color:var(--black);padding:12px 18px;top:8px;left:8px;z-index:100;font-weight:800}
.hero .photo img,.race img,.people img,.neuron img,.brand img{height:auto}
/* basic layout for any other page or post */
.page-content{padding:72px 0 96px}
.page-content h1{font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:32px}
.page-content .entry > *{max-width:72ch}
.page-content .entry img{height:auto}
.page-content article + article{margin-top:64px}

/* email bar at the top of the header */
.topbar{font-size:.9rem;font-weight:600}
.topbar .wrap{display:flex;justify-content:flex-end;align-items:center;min-height:36px}
.topbar a{color:var(--white);text-decoration:none;letter-spacing:.01em}
.topbar a:hover{color:var(--yellow);text-decoration:underline;text-underline-offset:4px}
@media (max-width:820px){.topbar .wrap{justify-content:center}}

/* ============================================================
   PHONE AND SMALL TABLET LAYOUT (820px and narrower)
   ============================================================ */
.subnav{display:none}
@media (max-width:820px){
  html{scroll-padding-top:112px}
  body{font-size:17px;line-height:1.6}
  .wrap{width:min(1120px,100% - 40px)}

  /* header: email bar scrolls away, logo row and section links stay */
  .top{top:-30px}
  .admin-bar .top{top:2px}
  .topbar{font-size:.82rem}
  .topbar .wrap{min-height:30px}
  .top > .wrap{min-height:58px;gap:12px}
  .brand{font-size:1.2rem;gap:8px;min-width:0}
  .brand img{width:44px;margin:0}
  .mainnav{gap:0}
  .mainnav .btn{padding:.5em 1em;font-size:.9rem;border-radius:5px}
  .subnav{display:block;border-top:1px solid #ececec;background:var(--white)}
  .subnav .wrap{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:7px 0}
  .subnav .wrap::-webkit-scrollbar{display:none}
  .subnav a{flex:0 0 auto;text-decoration:none;font-weight:700;font-size:.88rem;padding:6px 12px;border-radius:999px;background:var(--mist);color:var(--black);white-space:nowrap}
  .subnav a:active,.subnav a:hover{background:var(--yellow)}

  /* hero: headline, then Ayrton's photo, then his story */
  .hero{padding:32px 0 48px}
  .hero .wrap{gap:0}
  .hero .wrap > div:first-child{display:contents}
  .hero h1{order:1;font-size:clamp(2.6rem,13vw,3.6rem)}
  .hero .tag{order:2;font-size:1.15rem;margin:.35em 0 1.1em}
  .hero .photo{order:3;max-width:none;margin-bottom:26px}
  .hero .photo img{aspect-ratio:1/1;object-position:center 72%}
  .hero .wrap > div:first-child > p:not(.tag){order:4;font-size:1.05rem}
  .hero .cta{order:5;margin-top:10px;gap:14px 20px}

  /* roomier, less stretched sections */
  section,.sci-dark{padding:56px 0}
  .sci-aims{padding:40px 0 56px}
  .road{padding:60px 0 64px}
  .four-facts{padding:56px 0}
  h2{font-size:clamp(2rem,9vw,2.6rem)}
  .sec-head{margin-bottom:24px}
  .sec-head p,.lead-p,.hero p,.race p,.sci-dark p{font-size:1.05rem}
  .two{gap:28px}
  .callout{padding:24px 22px}
  .callout p{font-size:1.1rem}
  .hope-h{font-size:1.6rem;margin:28px 0 8px}
  .hope-p{font-size:1.05rem}
  .neuron{padding:18px 14px}

  /* the big 4 sits beside the first fact instead of filling a screen */
  .four-facts .wrap{grid-template-columns:auto 1fr;gap:18px;align-items:start}
  .bigfour{font-size:6.5rem;line-height:.85}
  .facts{gap:20px}
  .facts div{font-size:1.1rem}

  .aim{padding:20px 18px 22px}
  .people figcaption{font-size:.88rem}

  .now{border-width:5px;padding:22px 20px;margin-bottom:32px;gap:16px}
  .now h3{font-size:1.25rem}
  .now li{display:grid;gap:2px}
  .now li b{min-width:0}
  .step{padding:16px 16px 18px}
  .step .date{font-size:1.25rem}

  .time .list{font-size:1.1rem;gap:10px}
  .time .list li{padding-left:28px}
  .time .list li::before{width:13px;height:13px}
  .time .intro{font-size:1.05rem}

  .race p.mark{font-size:1.15rem}
  .give{padding:40px 0}
  .give .how{font-size:1.05rem}
  footer .wrap{justify-content:center;text-align:center}
}
@media (max-width:782px){.admin-bar .top{top:16px}}
@media (max-width:600px){.admin-bar .top{top:-30px}}
@media (max-width:380px){
  .brand{font-size:1.05rem}
  .brand img{width:38px}
  .mainnav .btn{padding:.45em .8em}
  .bigfour{font-size:5.2rem}
}

/* donation placeholder (no payment button) */
.give .wrap{align-items:start}
.give-lead{max-width:36rem}
.give-lead p{margin:16px 0 0;font-size:1.05rem;font-weight:600;max-width:42ch}
.donate-soon{background:var(--white);color:var(--black);border:3px dashed var(--black);border-radius:6px;padding:18px 20px 16px;max-width:28rem}
.donate-soon-label{margin:0 0 6px;font-weight:800;font-size:1.05rem;letter-spacing:-.01em}
.donate-soon-note{margin:0;font-size:.95rem;font-weight:500;max-width:none}
.give .how{gap:10px}
.give-contact{margin:0;font-weight:700}
