/* giveaway.css — the giveaway landing page and the three legal pages.
 * Loaded only on those pages (layout.html branches on .Extra.gw).
 * Uses the site's existing tokens; defines no new colors of its own. */

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ══════════════════════════════════════════════════════════════ HERO ═══ */

.gw-hero{
  position:relative;
  background:var(--accent);
  color:#fff;
  overflow:hidden;
  padding:clamp(28px,5vw,64px) 0 clamp(34px,5vw,72px);
}
.gw-hero-media{ position:absolute; inset:0; z-index:0 }
.gw-hero-media img{ width:100%; height:100%; object-fit:cover }
.gw-hero::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(105deg,rgba(6,49,92,.94) 0%,rgba(6,49,92,.86) 42%,rgba(13,33,55,.62) 100%);
}
.gw-hero-grid{
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,440px);
  gap:clamp(24px,4vw,54px);
  align-items:start;
}
.gw-hero-copy h1{ color:#fff; margin-bottom:.35em }
.gw-lede{ font-size:clamp(16px,1.9vw,19.5px); color:#d3e0ee; max-width:56ch; margin-bottom:1.3em }

.gw-eyebrow{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  font-family:var(--head); font-size:12px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:#b9cbe2; margin:0 0 var(--s4);
}
.gw-pill{
  background:var(--secondary); color:#fff; padding:5px 12px; border-radius:999px;
  letter-spacing:.1em;
}

.gw-hero-points{ list-style:none; margin:0 0 var(--s4); padding:0; display:grid; gap:11px }
.gw-hero-points li{ display:flex; gap:11px; align-items:flex-start; font-size:15px; color:#d9e4f0 }
.gw-hero-points .icon{ width:20px; height:20px; flex:0 0 auto; margin-top:2px; color:#7dd0a0 }
.gw-hero-points b{ color:#fff }

.gw-hero-dates{
  font-size:14px; color:#b9cbe2; border-top:1px solid rgba(255,255,255,.16);
  padding-top:var(--s3); margin:0;
}
.gw-hero-dates b{ color:#fff }

/* ═══════════════════════════════════════════════════════ ENTRY FORM ═══ */

.gw-form-card{
  background:#fff; color:#2a3442;
  border-radius:var(--r); box-shadow:var(--shadow-3);
  padding:clamp(20px,2.4vw,28px);
  position:relative;
}
.gw-form-head h2{ font-size:22px; color:var(--accent); margin:0 0 3px }
.gw-form-sub{ font-size:13.5px; color:#5a6b80; margin:0 0 var(--s4) }

/* step rail */
.gw-steps{
  list-style:none; display:flex; gap:4px; margin:0 0 10px; padding:0;
  font-family:var(--head); font-size:10.5px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:#5a6b80;
}
.gw-steps li{ display:flex; align-items:center; gap:5px; flex:1 1 0; min-width:0 }
.gw-steps li span{
  width:19px; height:19px; border-radius:50%; flex:0 0 auto;
  display:grid; place-items:center; font-size:10.5px;
  background:#e6ecf4; color:#54637a;
}
.gw-steps li.is-current{ color:var(--accent) }
.gw-steps li.is-current span{ background:var(--secondary); color:#fff }
.gw-steps li.is-done span{ background:#7dd0a0; color:#06315c }
.gw-steps li.is-done{ color:#5a6b80 }

.gw-progress{ height:3px; background:#e6ecf4; border-radius:999px; overflow:hidden; margin-bottom:var(--s4) }
.gw-progress-bar{ height:100%; background:var(--secondary); border-radius:999px; transition:width .3s ease }

/* fields */
.gw-step{ border:0; padding:0; margin:0; min-width:0 }
.gw-label{
  display:block; font-family:var(--head); font-weight:700; font-size:14px;
  color:var(--accent); margin:0 0 5px;
}
.gw-step .gw-label:not(:first-of-type){ margin-top:var(--s3) }
.gw-help{ font-size:12.5px; color:#66748a; margin:0 0 9px; line-height:1.5 }
.gw-help-top{ margin-bottom:var(--s3) }

.gw-input{
  width:100%; font:16px/1.4 var(--body); color:#2a3442;
  padding:11px 13px; border:1.5px solid var(--line); border-radius:var(--r-sm);
  background:#fff; transition:border-color .15s ease, box-shadow .15s ease;
}
.gw-input:focus{
  outline:none; border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(43,57,144,.14);
}
.gw-input.is-invalid{ border-color:var(--secondary) }
.gw-input.is-invalid:focus{ box-shadow:0 0 0 3px rgba(206,35,41,.15) }
select.gw-input{ appearance:none; background-image:linear-gradient(45deg,transparent 50%,#7d8ba0 50%),linear-gradient(135deg,#7d8ba0 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%; background-size:5px 5px,5px 5px;
  background-repeat:no-repeat; padding-right:38px; }
.gw-zip-input{ letter-spacing:.14em; font-size:17px; font-weight:600 }

.gw-field-msg{ font-size:12.5px; margin:5px 0 0; min-height:0; line-height:1.45 }
.gw-field-msg.is-error{ color:#b31c22 }
.gw-field-msg.is-ok{ color:#1d7a4a }
.gw-field-msg.is-pending{ color:#66748a }

/* honeypot — off-screen, never display:none (some bots skip hidden fields) */
.gw-hp{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden }
.gw-hp input{ font-size:16px }

.gw-nav{ display:flex; gap:10px; align-items:center; margin-top:var(--s4) }
.gw-next,.gw-submit{ margin-top:var(--s4) }
.gw-nav .gw-next,.gw-nav .gw-submit{ margin-top:0; margin-left:auto }
.gw-back{
  background:none; border:0; cursor:pointer; padding:8px 4px;
  font-family:var(--head); font-weight:700; font-size:14px; color:#66748a;
  display:inline-flex; align-items:center; gap:6px;
}
.gw-back:hover{ color:var(--accent) }
.gw-back .flip{ transform:rotate(180deg) }
.gw-submit[disabled]{ opacity:.55; cursor:not-allowed }

.gw-notopen{
  background:#fff6e5; border:1px solid #f0d9a8; border-radius:var(--r-sm);
  padding:10px 13px; font-size:13px; color:#7a5a12; margin:0 0 var(--s4);
}

/* consent */
.gw-consent{ display:grid; gap:11px; margin:0 0 var(--s4) }
.gw-consent-required{
  background:#f4f7fb; border:1px solid var(--line);
  border-radius:var(--r-sm); padding:13px;
}
.gw-check{ display:flex; gap:10px; align-items:flex-start; font-size:12.8px; line-height:1.55; color:#3d4a5c; cursor:pointer }
.gw-check input{ margin:2px 0 0; flex:0 0 auto; width:17px; height:17px; accent-color:var(--primary); cursor:pointer }
.gw-check a{ color:var(--primary); text-decoration:underline }
.gw-optional-head{
  font-family:var(--head); font-size:11px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:#8b98aa; margin:0 0 10px;
  padding-top:var(--s3); border-top:1px solid var(--line);
}

.gw-legal-mini{ font-size:11.5px; line-height:1.55; color:#78859a; margin:var(--s4) 0 0 }
.gw-legal-mini a{ color:#66748a; text-decoration:underline }

.gw-form-error{
  background:#fdecec; border:1px solid #f2bfc1; color:#a3191f;
  border-radius:var(--r-sm); padding:11px 13px; font-size:13.5px; margin:var(--s4) 0 0;
}

/* success */
.gw-done{ text-align:center; padding:var(--s4) 0 }
.gw-done-mark{
  width:54px; height:54px; border-radius:50%; background:#e4f6ec;
  display:grid; place-items:center; margin:0 auto var(--s3);
}
.gw-done-mark .icon{ width:28px; height:28px; color:#1d7a4a }
.gw-done h3{ font-size:22px; color:var(--accent) }
.gw-done b{ font-family:var(--head); color:var(--secondary); letter-spacing:.04em }

/* ═════════════════════════════════════════════════════════ SECTIONS ═══ */

.gw-prize-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:var(--s4); margin:var(--s6) 0;
}
.gw-card{
  background:var(--card-bg,#fff); border:1px solid var(--card-line,var(--line));
  border-radius:var(--r); padding:var(--s5); box-shadow:var(--shadow-1);
}
.gw-card-ico{ width:44px; height:44px; border-radius:11px; background:#eef2f8;
  display:grid; place-items:center; margin-bottom:var(--s3) }
.gw-card-ico .icon{ width:24px; height:24px; color:var(--primary) }
.gw-card h3{ color:var(--accent); margin-bottom:.4em }
.gw-card p{ font-size:14.5px; color:#5a6b80; margin:0 }

.gw-scope{
  background:#fff; border:1px solid var(--line); border-left:4px solid var(--secondary);
  border-radius:var(--r); padding:var(--s5);
}
.gw-scope h3{ color:var(--accent) }
.gw-scope > p{ font-size:14.5px; color:#5a6b80 }
.gw-scope ul{ margin:var(--s3) 0 0; padding-left:1.15em; display:grid; gap:9px }
.gw-scope li{ font-size:14.5px; line-height:1.6; color:#3d4a5c }

/* how it works */
.gw-flow{
  list-style:none; counter-reset:none; margin:var(--s6) 0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:var(--s4);
}
.gw-flow li{ background:#fff; border:1px solid var(--card-line,var(--line));
  border-radius:var(--r); padding:var(--s5); position:relative }
.gw-flow-n{
  width:30px; height:30px; border-radius:50%; background:var(--accent); color:#fff;
  display:grid; place-items:center; font-family:var(--head); font-weight:800; font-size:14px;
  margin-bottom:var(--s3);
}
.gw-flow h3{ color:var(--accent); font-size:16.5px }
.gw-flow p{ font-size:14px; color:#5a6b80; margin:0 }


/* eligibility */
.gw-elig-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:var(--s4); margin:var(--s6) 0 }
.gw-elig{ border-radius:var(--r); padding:var(--s5); border:1px solid }
.gw-elig h3{ display:flex; align-items:center; gap:9px; font-size:16.5px; margin-bottom:var(--s3) }
.gw-elig .icon{ width:20px; height:20px }
.gw-elig ul{ margin:0; padding-left:1.15em; display:grid; gap:8px }
.gw-elig li{ font-size:14.5px; line-height:1.55 }
.gw-elig-yes{ background:#eefaf2; border-color:#bfe6cf }
.gw-elig-yes h3{ color:#166b41 } .gw-elig-yes .icon{ color:#1d7a4a }
.gw-elig-no{ background:#fdf3f3; border-color:#f0cdcf }
.gw-elig-no h3{ color:#9c2126 }


/* faq */
.gw-faq{ display:grid; gap:10px; margin:var(--s6) 0; max-width:820px }
.gw-faq details{
  background:var(--card-bg,#0a3e70); border:1px solid var(--card-line,#1c568e);
  border-radius:var(--r-sm); padding:14px 17px;
}
.gw-faq summary{
  cursor:pointer; font-family:var(--head); font-weight:700; font-size:15.5px;
  color:var(--h,#fff); list-style:none; display:flex; justify-content:space-between; gap:12px;
}
.gw-faq summary::-webkit-details-marker{ display:none }
.gw-faq summary::after{ content:"+"; font-size:19px; line-height:1; flex:0 0 auto; opacity:.7 }
.gw-faq details[open] summary::after{ content:"–" }
.gw-faq p{ margin:11px 0 0; font-size:14.5px; line-height:1.65 }

  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:var(--s4); margin:var(--s6) 0; text-align:center;
}

.gw-final-cta{ text-align:center; padding-top:var(--s5); border-top:1px solid rgba(255,255,255,.15) }
.gw-final-cta h3{ font-size:24px }
.gw-final-cta .gw-legal-mini{ max-width:760px; margin-inline:auto; color:#8fa9c4 }
.gw-final-cta .gw-legal-mini a{ color:#b9cbe2 }
.btn-lg{ font-size:16.5px; padding:15px 32px }

/* ══════════════════════════════════════════════════════ LEGAL PAGES ═══ */

.gw-legal{ padding:clamp(28px,5vw,60px) 0 }
.gw-legal-wrap{ max-width:820px; margin-inline:auto }
.gw-legal h1{ font-size:clamp(26px,3.6vw,38px); color:var(--accent) }
.gw-legal-meta{ font-size:13px; color:#66748a; border-bottom:1px solid var(--line); padding-bottom:var(--s4); margin-bottom:var(--s5) }
.gw-legal h2{
  font-size:19px; color:var(--accent); margin-top:var(--s6);
  padding-top:var(--s4); border-top:1px solid var(--line);
}
.gw-legal h2:first-of-type{ border-top:0; padding-top:0 }
.gw-legal h3{ font-size:15.5px; color:var(--accent); margin-top:var(--s4) }
.gw-legal p,.gw-legal li{ font-size:14.8px; line-height:1.72; color:#3d4a5c }
.gw-legal ul,.gw-legal ol{ padding-left:1.3em; display:grid; gap:9px; margin:0 0 1em }
.gw-legal a{ color:var(--primary); text-decoration:underline }
.gw-legal address{ font-style:normal; background:#f4f7fb; border-radius:var(--r-sm); padding:var(--s4); font-size:14.5px }

.gw-toc{ background:#f4f7fb; border:1px solid var(--line); border-radius:var(--r); padding:var(--s4) var(--s5); margin-bottom:var(--s6) }
.gw-toc h2{ font-size:13px; text-transform:uppercase; letter-spacing:.1em; margin:0 0 10px; border:0; padding:0 }
.gw-toc ol{ margin:0; columns:2; column-gap:var(--s5); gap:5px }
.gw-toc li{ font-size:13.5px; break-inside:avoid }


/* ═════════════════════════════════════════════════════ RESPONSIVE ═════ */

@media (max-width:1000px){
  .gw-hero-grid{ grid-template-columns:1fr; gap:var(--s5) }
  .gw-form-card{ max-width:560px }
}
@media (max-width:640px){
  .gw-hero{ padding-top:var(--s5) }
  .gw-steps{ font-size:9.5px; gap:2px }
  .gw-steps li span{ width:17px; height:17px; font-size:9.5px }
  .gw-form-card{ padding:var(--s4) }
  .gw-toc ol{ columns:1 }
  .gw-nav{ flex-wrap:wrap }
  .gw-nav .gw-next,.gw-nav .gw-submit{ width:100%; justify-content:center; margin-left:0; order:-1 }
  .gw-back{ margin-inline:auto }
}
@media (max-width:420px){
  .gw-steps li:not(.is-current) { font-size:0 }      /* keep the dots, drop the words */
  .gw-steps li:not(.is-current) span{ font-size:9.5px }
}

@media (prefers-reduced-motion:reduce){
  .gw-progress-bar{ transition:none }
  html{ scroll-behavior:auto }
}

/* ═════════════════════════════════════════════ NOMINATION ADDITIONS ═══ */

.gw-zip-input{ max-width:170px }
.gw-opt{ font-weight:600; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#7d8ba0; margin-left:4px }
.gw-self{ background:#f4f7fb; border:1px solid var(--line); border-radius:var(--r-sm); padding:11px 13px; margin-bottom:var(--s3); font-size:14px }
.gw-nominee-only[hidden]{ display:none }
.gw-pair{ display:grid; grid-template-columns:1fr 1fr; gap:8px }
.gw-story{ resize:vertical; min-height:130px; line-height:1.55 }
.gw-count{ font-size:11.5px; color:#78859a; text-align:right; margin:4px 0 0 }

.gw-file{
  display:flex; align-items:center; gap:10px; min-width:0;
  border:1.5px dashed var(--line); border-radius:var(--r-sm); padding:9px 11px; cursor:pointer;
}
.gw-file input{ position:absolute; width:1px; height:1px; opacity:0; overflow:hidden }
.gw-file:focus-within{ border-color:var(--primary); box-shadow:0 0 0 3px rgba(43,57,144,.14) }
.gw-file-btn{
  flex:0 0 auto; font-family:var(--head); font-weight:700; font-size:13px; color:#fff;
  background:var(--primary); border-radius:var(--r-sm); padding:7px 12px;
}
.gw-file-name{ font-size:13px; color:#5a6b80; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }

.gw-prose{ max-width:760px }
.gw-prose p{ font-size:16.5px; line-height:1.7 }
.gw-chips-label{ font-family:var(--head); font-weight:700; color:var(--accent); margin:var(--s5) 0 10px }
.gw-chips{ list-style:none; padding:0; margin:0 0 var(--s5); display:flex; flex-wrap:wrap; gap:8px }
.gw-chips li{ background:#eef2f8; color:var(--accent); border-radius:999px; padding:7px 14px; font-size:14px; font-weight:600 }

.gw-table-wrap{ overflow-x:auto; margin:var(--s5) 0 }
.gw-rubric{ width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:var(--r); font-size:14.5px }
.gw-rubric th,.gw-rubric td{ text-align:left; vertical-align:top; padding:12px 14px; border-bottom:1px solid var(--line); color:#3d4a5c; line-height:1.55 }
.gw-rubric thead th{ font-family:var(--head); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#5a6b80; background:#f4f7fb }
.gw-rubric tbody th{ font-family:var(--head); color:var(--accent); white-space:nowrap }
.gw-rubric .gw-w{ font-family:var(--head); font-weight:800; color:var(--secondary); white-space:nowrap }
.gw-rubric tbody tr:last-child th,.gw-rubric tbody tr:last-child td{ border-bottom:0 }
.gw-notes{ margin:0; padding-left:1.15em; display:grid; gap:8px; max-width:820px }
.gw-notes li{ font-size:14.5px; line-height:1.6; color:#3d4a5c }

.gw-toc-sched{ font-size:13.5px; margin:10px 0 0 }
.gw-toc-sched a{ display:inline-block; padding:4px 0 }

@media (max-width:640px){
  .gw-pair{ grid-template-columns:1fr }
  .gw-rubric thead{ display:none }
  .gw-rubric,.gw-rubric tbody,.gw-rubric tr,.gw-rubric th,.gw-rubric td{ display:block; width:100% }
  .gw-rubric tr{ border-bottom:1px solid var(--line); padding:6px 0 }
  .gw-rubric th,.gw-rubric td{ border:0; padding:4px 14px }
  .gw-rubric tbody th{ white-space:normal }
}

/* touch: contents links are tap targets, not prose links — give each a 44px row */
@media (pointer:coarse){
  .gw-toc ol{ gap:0 }
  .gw-toc li a{ display:flex; align-items:center; min-height:44px; padding:0 }
  .gw-toc-sched a{ display:inline-flex; align-items:center; min-height:44px; min-width:44px; padding:0 }
}

/* ═════════════════════════════════════════ FORM ADDITIONS 2026-10-19 ═══ */

.gw-save-note{ margin-top:10px }
.gw-county-wrap[hidden]{ display:none }

.gw-picker{
  display:inline-flex; align-items:center; gap:8px; min-height:44px; margin:0 0 8px;
  background:#f4f7fb; border:1px solid var(--line); border-radius:var(--r-sm); padding:0 12px;
  font:600 14px var(--body); color:var(--primary); cursor:pointer;
}
.gw-picker .icon{ width:16px; height:16px }

.gw-starters{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 10px }
.gw-starter{
  min-height:44px; padding:6px 12px; border-radius:999px; cursor:pointer;
  background:#eef2f8; color:var(--accent); border:1px solid #d6e0ec; font:600 13px var(--body); text-align:left;
}
.gw-starter:hover{ background:#e2e9f3 }

.gw-story-box{ position:relative }
.gw-mic{
  display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:6px; padding:0 12px;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-sm); cursor:pointer;
  font:600 13.5px var(--body); color:var(--accent);
}
.gw-mic-dot{ width:12px; height:12px; border-radius:50%; background:#9aa7b8; flex:0 0 auto }
.gw-mic.is-on{ border-color:var(--secondary); color:var(--secondary) }
.gw-mic.is-on .gw-mic-dot{ background:var(--secondary); animation:gwPulse 1.1s ease-in-out infinite }
@keyframes gwPulse{ 50%{ opacity:.35 } }

.gw-examples{ margin:8px 0 var(--s3); font-size:13.5px; color:#3d4a5c }
.gw-examples summary{ cursor:pointer; font-weight:600; color:var(--primary); min-height:44px; display:flex; align-items:center }
.gw-examples p{ margin:6px 0 10px; line-height:1.55 }

.gw-video-pick{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:8px }
.gw-video-pick .gw-file{ justify-content:center; min-height:48px }
.gw-video-pick .gw-file[hidden]{ display:none }
.gw-video-pick:has(.gw-file-record[hidden]){ grid-template-columns:1fr }
.gw-video-preview{ margin:0 0 8px }
.gw-video-preview[hidden]{ display:none }
.gw-video-preview video{ width:100%; max-height:260px; border-radius:var(--r-sm); background:#0d2137 }
.gw-video-meta{ display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:13px; color:#5a6b80; margin:4px 0 0 }
.gw-video-meta span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.gw-link{
  background:none; border:0; padding:0 6px; min-height:44px; min-width:44px; cursor:pointer;
  font:600 13.5px var(--body); color:var(--primary); text-decoration:underline;
}

.gw-upload{ padding:var(--s3) 0 }
.gw-upload[hidden]{ display:none }
.gw-upload h3{ color:var(--accent); font-size:19px; margin:0 0 12px }
.gw-upload-bar{ height:10px; margin:0 0 10px }
.gw-upload .btn{ margin:6px 0 }

@media (max-width:420px){
  .gw-video-pick{ grid-template-columns:1fr }
}
