/* ==========================================================================
   GAZA DEMOCRATIC FRONT - 05 INNER PAGES
   A black title band ending in the flag line, then a reading column with a
   narrow aside. Components are rules and type, not boxes.
   ========================================================================== */
.gdf-pagetop { position: relative; overflow: hidden; background: var(--gdf-night); color: var(--gdf-on-dark); }
.gdf-pagetop .gdf-container { position: relative; z-index: 2; padding-top: var(--s8); padding-bottom: var(--s7); }
.gdf-pagetop h1 { color: #fff; margin: 0; max-width: 20ch; }
.gdf-pagetop h1::after { content: ""; display: block; width: 56px; height: 3px; background: var(--gdf-gold); margin-top: var(--s4); }

.gdf-pagetop__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .5; }
.gdf-pagetop--photo::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to right, rgba(11, 11, 10, .94) 30%, rgba(11, 11, 10, .35)); }
.gdf-pagetop--photo .gdf-container { padding-top: clamp(80px, 11vw, 150px); padding-bottom: clamp(56px, 7vw, 96px); }
.gdf-pagetop .gdf-flagline { position: relative; z-index: 2; }
.gdf-pagetop__crumbs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--s3); font: 400 .875rem/1.4 var(--gdf-ui); }
.gdf-pagetop__crumbs a { color: var(--gdf-gold); }

.gdf-section--page { padding: var(--s7) 0 var(--s8); }
.gdf-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: var(--s8); align-items: start; }
.gdf-layout__main { max-width: 74ch; }
.gdf-layout__aside { display: grid; gap: var(--s6); position: sticky; top: 130px; }
@media (max-width: 980px) {
  .gdf-layout { grid-template-columns: 1fr; gap: var(--s7); }
  .gdf-layout__aside { position: static; border-top: 2px solid var(--gdf-black); padding-top: var(--s5); }
}

/* ---- Reading column ---- */
.gdf-prose > h2 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.8rem); margin-top: var(--s7); }
.gdf-prose > h2:first-child { margin-top: 0; }
.gdf-prose > h3 { margin-top: var(--s6); }
.gdf-prose a:not(.gdf-btn) { color: var(--gdf-red); text-underline-offset: 3px; }
.gdf-prose .gdf-lead { margin-bottom: var(--s5); }

/* Wrapping labels stack the text above the control. */
.gdf-form label:not(.gdf-check) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px .35em; }
.gdf-form label:not(.gdf-check) > input, .gdf-form label:not(.gdf-check) > select, .gdf-form label:not(.gdf-check) > textarea { flex: 1 0 100%; }

/* ---- Aside ---- */
.gdf-sidenav p { margin: 0 0 var(--s2); font: 500 .8125rem/1.2 var(--gdf-head); letter-spacing: .1em; text-transform: uppercase; color: var(--gdf-muted); }
.gdf-sidenav ul { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--gdf-black); }
.gdf-sidenav li { border-bottom: 1px solid var(--gdf-rule); }
.gdf-sidenav a { display: block; padding: 10px 0; text-decoration: none; font: 400 .9375rem/1.3 var(--gdf-ui); }
.gdf-sidenav a:hover { color: var(--gdf-red); }
.gdf-sidenav a[aria-current] { font-weight: 700; color: var(--gdf-red); }

.gdf-sidevote { display: grid; grid-template-columns: 72px 1fr; gap: var(--s3); align-items: start; }
.gdf-sidevote img { width: 72px; }
.gdf-sidevote p { margin: 0 0 4px; }
.gdf-sidevote__date { font: 600 1.15rem/1.2 var(--gdf-head); text-transform: uppercase; }
.gdf-sidevote__days { color: var(--gdf-muted); font-size: var(--gdf-ts); }
.gdf-sidecontact p { margin: 0 0 var(--s2); }

/* ---- Components ---- */
.gdf-figure { margin: var(--s5) 0; }
.gdf-figure img { width: 100%; }
.gdf-figure figcaption { margin-top: var(--s2); font-size: var(--gdf-ts); color: var(--gdf-muted); }

.gdf-grid { display: grid; gap: var(--s5); margin: var(--s5) 0; }
.gdf-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gdf-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 700px) { .gdf-grid--2, .gdf-grid--3 { grid-template-columns: 1fr; gap: var(--s4); } }

/* A titled block of text: a rule above, no box. */
.gdf-boxed { border-top: 2px solid var(--gdf-black); padding-top: var(--s3); }
.gdf-boxed h3 { font-size: 1.0625rem; }
.gdf-boxed p { margin-bottom: var(--s3); }
.gdf-boxed > :last-child { margin-bottom: 0; }

.gdf-ticks { padding-left: 1.2em; margin: var(--s3) 0 var(--s5); }
.gdf-ticks li { margin-bottom: 6px; }
.gdf-ticks li::marker { color: var(--gdf-red); }

.gdf-steps { list-style: none; padding: 0; margin: var(--s4) 0; border-top: 1px solid var(--gdf-rule); counter-reset: s; }
.gdf-steps li { counter-increment: s; display: grid; grid-template-columns: 2.2em 1fr; padding: var(--s3) 0; border-bottom: 1px solid var(--gdf-rule); }
.gdf-steps li::before { content: counter(s) "."; font: 600 1.05rem/1.5 var(--gdf-head); color: var(--gdf-red); }

/* Numbered procedures (join, register): numerals in the margin. */
.gdf-bigsteps { list-style: none; padding: 0; margin: var(--s5) 0; counter-reset: b; }
.gdf-bigsteps > li { counter-increment: b; display: grid; grid-template-columns: 3rem 1fr; padding: var(--s4) 0; border-top: 1px solid var(--gdf-rule); }
.gdf-bigsteps > li:last-child { border-bottom: 1px solid var(--gdf-rule); }
.gdf-bigsteps > li::before { content: counter(b); font: 600 2rem/1 var(--gdf-head); color: var(--gdf-red); }
.gdf-bigsteps h3 { margin-bottom: 4px; }
.gdf-bigsteps p { margin-bottom: var(--s3); }
.gdf-bigsteps p:last-child { margin-bottom: 0; }

.gdf-alert { background: #f7f5f0; padding: var(--s4) var(--s5); border-radius: 6px; margin: var(--s5) 0; }
.gdf-alert strong { display: block; }

.gdf-quote { margin: var(--s6) 0; padding: 0; }
.gdf-quote p { margin: 0; font: italic 400 1.3125rem/1.5 var(--gdf-body); }
.gdf-declaration { margin: var(--s7) 0 0; padding-top: var(--s4); border-top: 2px solid var(--gdf-black); font: 600 1.35rem/1.3 var(--gdf-head); text-transform: uppercase; }
.gdf-declaration span { display: block; margin-top: 4px; font: 400 1rem/1.4 var(--gdf-body); text-transform: none; color: var(--gdf-muted); }

/* Term + definition rows: values, ideology principles */
.gdf-values { margin: var(--s4) 0 var(--s5); border-top: 1px solid var(--gdf-rule); }
.gdf-values > div { display: grid; grid-template-columns: 11em 1fr; gap: var(--s4); padding: var(--s3) 0; border-bottom: 1px solid var(--gdf-rule); }
.gdf-values strong { font-weight: 600; }
@media (max-width: 560px) { .gdf-values > div { grid-template-columns: 1fr; gap: 2px; } }

.gdf-objectives { padding-left: 1.4em; }
.gdf-objectives li { margin-bottom: var(--s3); }
.gdf-objectives li::marker { font-family: var(--gdf-head); color: var(--gdf-red); }

/* A document to download: one row, with the file type stated. */
.gdf-download {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--s4);
  padding: var(--s3) 0; margin: var(--s5) 0; border-top: 1px solid var(--gdf-rule); border-bottom: 1px solid var(--gdf-rule);
}
.gdf-download svg { width: 28px; height: 28px; fill: var(--gdf-red); }
.gdf-download strong { display: block; }
.gdf-download span { color: var(--gdf-muted); font-size: var(--gdf-ts); }
@media (max-width: 520px) { .gdf-download { grid-template-columns: auto 1fr; } .gdf-download .gdf-btn { grid-column: 1 / -1; } }

.gdf-doclist { list-style: none; padding: 0; border-top: 1px solid var(--gdf-rule); }
.gdf-doclist li { display: flex; justify-content: space-between; gap: var(--s4); padding: var(--s3) 0; border-bottom: 1px solid var(--gdf-rule); }
.gdf-doclist span { color: var(--gdf-muted); font-size: var(--gdf-ts); white-space: nowrap; }

.gdf-chapters { border-top: 2px solid var(--gdf-black); }
.gdf-chapters details { border-bottom: 1px solid var(--gdf-rule); }
.gdf-chapters summary { display: grid; grid-template-columns: 2.2em 1fr auto; align-items: baseline; padding: var(--s3) 0; cursor: pointer; list-style: none; font-weight: 600; }
.gdf-chapters summary::-webkit-details-marker { display: none; }
.gdf-chapters summary span { font: 600 1.1rem/1 var(--gdf-head); color: var(--gdf-red); }
.gdf-chapters summary::after { content: "Show"; font: 400 .875rem/1 var(--gdf-ui); color: var(--gdf-muted); text-decoration: underline; }
.gdf-chapters details[open] summary::after { content: "Hide"; }
.gdf-chapters details p { padding-left: 2.2em; }

.gdf-leaders { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: var(--s5); margin: var(--s5) 0 var(--s3); }
.gdf-leader { margin: 0; }
.gdf-leader img { width: 100%; aspect-ratio: 32 / 38; object-fit: cover; background: var(--gdf-paper-alt); }
.gdf-leader figcaption { padding-top: var(--s2); border-top: 3px solid var(--gdf-gold); margin-top: 0; }
.gdf-leader strong { display: block; font: 600 1.1rem/1.2 var(--gdf-head); text-transform: uppercase; }

.gdf-identity, .gdf-emblem { display: grid; grid-template-columns: 170px 1fr; gap: var(--s6); align-items: start; margin: var(--s6) 0; }
.gdf-emblem { grid-template-columns: 240px 1fr; }
.gdf-identity dl, .gdf-emblem dl, .gdf-rows { margin: 0; border-top: 1px solid var(--gdf-rule); }
.gdf-identity dl > div, .gdf-emblem dl > div, .gdf-rows > div { display: grid; grid-template-columns: 9em 1fr; gap: var(--s4); padding: 10px 0; border-bottom: 1px solid var(--gdf-rule); }
dt { font-weight: 600; }
dd { margin: 0; }
@media (max-width: 640px) {
  .gdf-identity, .gdf-emblem { grid-template-columns: 1fr; gap: var(--s4); }
  .gdf-identity > img, .gdf-emblem > img { width: 150px; }
  .gdf-identity dl > div, .gdf-emblem dl > div, .gdf-rows > div { grid-template-columns: 1fr; gap: 2px; }
}
.gdf-swatches { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.gdf-swatches span { display: inline-flex; align-items: center; gap: 6px; }
.gdf-swatch { width: 14px; height: 14px; border: 1px solid rgba(0, 0, 0, .3); display: inline-block; }
.gdf-swatch--black { background: var(--gdf-black); }
.gdf-swatch--gold { background: var(--gdf-gold); }
.gdf-swatch--green { background: var(--gdf-green); }
.gdf-swatch--red { background: var(--gdf-red); }
.gdf-swatch--white { background: #fff; }

/* The colours are the subject here, so they are shown as solid fields. */
.gdf-colours { display: grid; grid-template-columns: 2fr repeat(4, 1fr); margin: var(--s4) 0 var(--s5); }
.gdf-colour { padding: var(--s4); min-height: 170px; display: flex; flex-direction: column; justify-content: flex-end; font-size: .9375rem; line-height: 1.45; }
.gdf-colour strong { font: 600 1.2rem/1.2 var(--gdf-head); text-transform: uppercase; margin-bottom: 4px; }
.gdf-colour--black { background: var(--gdf-black); color: #fff; }
.gdf-colour--gold { background: var(--gdf-gold); color: var(--gdf-black); }
.gdf-colour--green { background: var(--gdf-green); color: #fff; }
.gdf-colour--red { background: var(--gdf-red); color: #fff; }
.gdf-colour--white { background: #fff; color: var(--gdf-black); box-shadow: inset 0 0 0 1px var(--gdf-rule); }
@media (max-width: 800px) { .gdf-colours { grid-template-columns: 1fr 1fr; } .gdf-colour--black { grid-column: 1 / -1; } .gdf-colour { min-height: 0; } }

.gdf-fightlist { margin: var(--s5) 0; border-top: 2px solid var(--gdf-black); }
.gdf-fightlist > div { display: grid; grid-template-columns: 3rem 1fr; padding: var(--s4) 0; border-bottom: 1px solid var(--gdf-rule); }
.gdf-fightlist__n { grid-row: 1 / 3; font: 600 1.4rem/1.2 var(--gdf-head); color: var(--gdf-red); }
.gdf-fightlist h3 { margin-bottom: 4px; }
.gdf-fightlist p { margin: 0; }

.gdf-against-table { margin: var(--s5) 0; border-top: 2px solid var(--gdf-black); }
.gdf-against-table > div { display: grid; grid-template-columns: 14em 1fr; gap: var(--s4); padding: var(--s3) 0; border-bottom: 1px solid var(--gdf-rule); }
.gdf-against-table strong { font-weight: 600; }
@media (max-width: 640px) { .gdf-against-table > div { grid-template-columns: 1fr; gap: 2px; } }

.gdf-table { width: 100%; border-collapse: collapse; margin: var(--s4) 0; border-top: 2px solid var(--gdf-black); }
.gdf-table th, .gdf-table td { text-align: left; padding: 10px 0; border-bottom: 1px solid var(--gdf-rule); vertical-align: top; }
.gdf-table th { width: 40%; font-weight: 600; padding-right: var(--s4); }

.gdf-donatebox { margin: var(--s5) 0; padding: var(--s5) 0; border-top: 2px solid var(--gdf-black); border-bottom: 1px solid var(--gdf-rule); }
.gdf-donatebox__label { font-weight: 600; margin-bottom: var(--s3); }
.gdf-donatebox .gdf-amounts { margin-bottom: var(--s4); }
.gdf-donatebox__chosen { font-weight: 600; }

.gdf-contactcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); margin: var(--s5) 0; border-top: 2px solid var(--gdf-black); padding-top: var(--s3); }
.gdf-contactcards svg { display: none; }
.gdf-contactcards strong { display: block; font-weight: 600; }
@media (max-width: 700px) { .gdf-contactcards { grid-template-columns: 1fr; gap: var(--s3); } }

.gdf-countpanel { display: grid; grid-template-columns: 110px 1fr; gap: var(--s5); align-items: center; padding: var(--s5); margin: var(--s5) 0; background: var(--gdf-red); color: #fff; }
.gdf-countpanel .gdf-eyebrow { display: block; margin: 0 0 var(--s2); font: 500 .8125rem/1.2 var(--gdf-head); letter-spacing: .1em; text-transform: uppercase; }
.gdf-countpanel .gdf-count__box span { font-size: 1.9rem; }
@media (max-width: 560px) { .gdf-countpanel { grid-template-columns: 1fr; } .gdf-countpanel img { width: 110px; } }

.gdf-photobooth { display: grid; grid-template-columns: 240px 1fr; gap: var(--s6); align-items: start; margin: var(--s5) 0; }
@media (max-width: 640px) { .gdf-photobooth { grid-template-columns: 1fr; } .gdf-photobooth > img { max-width: 240px; } }
.gdf-bigsteps--compact { margin-top: 0; }

.gdf-ogintro { margin-bottom: var(--s4); }
.gdf-ogintro img { width: 260px; }
.gdf-ogintro .gdf-eyebrow { display: none; }
.gdf-oppgrid { display: flex; flex-wrap: wrap; gap: 0; margin: var(--s4) 0 var(--s5); border-top: 2px solid var(--gdf-green); }
.gdf-oppgrid div { flex: 1 1 33%; padding: var(--s3) var(--s3) var(--s3) 0; border-bottom: 1px solid var(--gdf-rule); font-weight: 600; }

.gdf-social { margin: var(--s3) 0 var(--s5); }

/* Legacy names used in page bodies */
.gdf-btn--outline { border-color: var(--gdf-black); color: var(--gdf-black); background: transparent; }
.gdf-btn--outline:hover { background: var(--gdf-black); color: #fff; }
.gdf-btn-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s5); margin-top: var(--s5); }

/* ---- Forms ---- */
.gdf-form { display: grid; gap: var(--s4); margin: var(--s4) 0; font-family: var(--gdf-ui); font-size: 1rem; }
.gdf-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); }
@media (max-width: 640px) { .gdf-form__row { grid-template-columns: 1fr; } }
.gdf-field { display: grid; gap: 6px; align-content: start; }
.gdf-form label { font-weight: 600; font-size: .9375rem; }
.gdf-form label .gdf-opt { font-weight: 400; color: var(--gdf-muted); }
.gdf-form input:not([type="checkbox"]), .gdf-form select, .gdf-form textarea {
  width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #8d897e; border-radius: var(--gdf-radius); background: #fff; font-weight: 400;
}
.gdf-form textarea { min-height: 120px; resize: vertical; }
.gdf-form input:focus, .gdf-form select:focus, .gdf-form textarea:focus { outline: 3px solid var(--gdf-gold); outline-offset: 0; border-color: var(--gdf-black); }
.gdf-form [aria-invalid="true"] { border-color: var(--gdf-red); border-width: 2px; }
.gdf-error { color: var(--gdf-red-dark); font-size: .875rem; margin: 0; }
.gdf-error[hidden] { display: none; }
.gdf-form .gdf-check { display: grid; grid-template-columns: 22px 1fr; gap: 10px; font-weight: 400; }
.gdf-check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--gdf-red); }
.gdf-form .gdf-btn { justify-self: start; }
.gdf-form__hint { margin: -8px 0 0; font-size: .875rem; color: var(--gdf-muted); }
.gdf-form__note { padding: var(--s3) var(--s4); border: 1.5px dashed #c46a00; background: #fff6e8; color: #6e3a00; font: 400 .9375rem/1.5 var(--gdf-ui); }
.gdf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gdf-status { padding: var(--s3) var(--s4); border-radius: 6px; background: #fdeced; color: #8a0a13; margin: var(--s4) 0; font-family: var(--gdf-ui); }

/* ==========================================================================
   ROBOTO TYPE SYSTEM (one family for the whole site)
   Headings are bold, sentence case and tightly tracked. Capitals are kept
   only for small labels (eyebrows, meta, countdown units), where letter
   spacing makes them read as labels rather than shouting.
   ========================================================================== */
body { font-family: var(--gdf-font); font-size: 1rem; line-height: 1.65; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-family: var(--gdf-font); text-transform: none; }
h1 { font-weight: 700; font-size: clamp(2rem, 1.4rem + 2vw, 3rem); line-height: 1.12; letter-spacing: -.02em; }
h2 { font-weight: 700; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.25rem); line-height: 1.18; letter-spacing: -.015em; }
h3 { font-weight: 500; font-size: 1.1875rem; line-height: 1.35; letter-spacing: -.005em; }
.gdf-lead { font-size: 1.1875rem; font-weight: 300; line-height: 1.6; }

/* Large display text: sentence case */
.gdf-mosaic__copy h1, .gdf-pagetop h1, .gdf-elect__title, .gdf-footer__name, .gdf-fight strong,
.gdf-involve__list strong, .gdf-video-empty h3, .gdf-vstrip__empty h3, .gdf-fb__name, .gdf-vision__media figcaption strong,
.gdf-count__done, .gdf-mega__feature strong, .gdf-declaration, .gdf-leader strong, .gdf-colour strong,
.gdf-sidevote__date, .gdf-lead-story h3, .gdf-og__lead { text-transform: none; letter-spacing: -.01em; }
.gdf-mosaic--full .gdf-mosaic__copy h1 { font-weight: 700; font-size: clamp(2rem, 1.3rem + 2vw, 3.1rem); line-height: 1.08; letter-spacing: -.025em; }
.gdf-pagetop h1 { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); }
.gdf-kicker, .gdf-pull, .gdf-vision blockquote p, .gdf-quote p, .gdf-footer__slogan, .gdf-elect__title em,
.gdf-brand__text em, .gdf-fb__name span { font-family: var(--gdf-font); font-style: italic; font-weight: 400; }
.gdf-fight strong { font-weight: 700; }
.gdf-elect__title { font-weight: 700; font-size: 1.625rem; }
.gdf-brand__text strong { font-weight: 700; font-size: 1rem; letter-spacing: .04em; }
.gdf-footer__name { font-weight: 700; font-size: 1.375rem; }

/* Buttons: sentence case, medium weight */
.gdf-btn, .gdf-tagbtn, .gdf-elect__cta, .gdf-hero2__link, .gdf-mosaic__ogcta, .gdf-mosaic__votelink, .gdf-ev__cta {
  font-family: var(--gdf-font); text-transform: none; letter-spacing: .01em; font-weight: 500; font-size: .9375rem;
}
.gdf-btn { min-height: 48px; padding: 12px 24px; }

/* Small labels: Roboto medium capitals, generously tracked */
.gdf-label, .gdf-meta, .gdf-cands__eyebrow, .gdf-elect__label, .gdf-elect__countlabel, .gdf-footer__title, .gdf-sidenav p,
.gdf-count__box small, .gdf-mega__flabel, .gdf-peel__facts dt { font-family: var(--gdf-font); font-weight: 500; }
.gdf-count__box span { font-family: var(--gdf-font); font-weight: 700; letter-spacing: -.02em; }

/* ---- Mayoral candidates: true black, measured heading ---- */
.gdf-cands { background: #000; }
.gdf-cands::before { display: none; }
.gdf-cands__head { margin-bottom: var(--s7); }
.gdf-cands__eyebrow { font-size: .8125rem; font-weight: 500; letter-spacing: .2em; }
.gdf-cands h2 { max-width: none; font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.6rem); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; text-transform: none; }
.gdf-cands h2::after { display: none; }
.gdf-cands__sub { margin: var(--s3) auto 0; max-width: 56ch; font-size: 1.0625rem; font-weight: 300; line-height: 1.6; color: #b9b5ab; }

/* ---- Candidate cards: 2x focus zoom on hover / keyboard focus ----
   The hovered card scales to 2x above its neighbours, which dim and step
   back. End cards grow inward so they stay on screen. Mouse devices only;
   touch screens keep the plain swipe row. */
.gdf-cands { overflow: visible; }
.gdf-cands__item { position: relative; z-index: 1; border-radius: 6px; outline: none; }
.gdf-cands__item img { transition: transform .45s cubic-bezier(.2, .8, .2, 1), filter .45s ease, opacity .3s ease; transform-origin: 50% 60%; will-change: transform; }
.gdf-cands__item:hover img { transform: none; }
@media (hover: hover) and (min-width: 1101px) {
  .gdf-cands__item:nth-child(1) img { transform-origin: 0% 60%; }
  .gdf-cands__item:nth-child(6) img { transform-origin: 100% 60%; }
  .gdf-cands__list:hover .gdf-cands__item img,
  .gdf-cands__list:focus-within .gdf-cands__item img { opacity: .35; transform: scale(.96); filter: drop-shadow(0 18px 28px rgba(0, 0, 0, .55)) saturate(.6); }
  .gdf-cands__item:hover, .gdf-cands__item:focus-visible { z-index: 5; }
  .gdf-cands__list .gdf-cands__item:hover img,
  .gdf-cands__list .gdf-cands__item:focus-visible img {
    opacity: 1; transform: scale(2); filter: drop-shadow(0 34px 60px rgba(0, 0, 0, .85)) saturate(1);
  }
}
@media (hover: hover) and (min-width: 701px) and (max-width: 1100px) {
  .gdf-cands__item:nth-child(3n+1) img { transform-origin: 0% 50%; }
  .gdf-cands__item:nth-child(3n) img { transform-origin: 100% 50%; }
  .gdf-cands__list:hover .gdf-cands__item img { opacity: .4; }
  .gdf-cands__item:hover, .gdf-cands__item:focus-visible { z-index: 5; }
  .gdf-cands__list .gdf-cands__item:hover img, .gdf-cands__list .gdf-cands__item:focus-visible img { opacity: 1; transform: scale(1.5); filter: drop-shadow(0 30px 50px rgba(0, 0, 0, .85)); }
}
.gdf-cands__item:focus-visible { box-shadow: none; }
@media (prefers-reduced-motion: reduce) { .gdf-cands__item img { transition: none; } }

@media (hover: hover) and (min-width: 701px) {
  .gdf-cands { position: relative; z-index: 2; }
  .gdf-cands__head { transition: opacity .35s ease; }
  .gdf-cands:has(.gdf-cands__item:hover) .gdf-cands__head,
  .gdf-cands:has(.gdf-cands__item:focus-visible) .gdf-cands__head { opacity: .12; }
}

/* ---- Election strip: the headline message, made bold ----
   The gold X sits on a black tile so it stands off the gold field. */
.gdf-elect__row { min-height: 148px; gap: var(--s6); }
.gdf-elect__id { gap: var(--s5); }
.gdf-elect__mark {
  flex: 0 0 auto; display: grid; place-items: center; width: 132px; height: 112px; padding: 10px 12px;
  background: #000; border-radius: 6px; box-shadow: 0 10px 24px rgba(40, 28, 0, .35), inset 0 0 0 1px rgba(255, 255, 255, .06);
}
.gdf-elect__mark img { width: 100%; height: auto; }
.gdf-elect__label { font-size: .875rem; font-weight: 700; letter-spacing: .2em; color: #2a2108; margin-bottom: 6px; }
.gdf-elect__title { font-size: clamp(2.2rem, 1.6rem + 1.6vw, 3rem); font-weight: 900; line-height: 1; letter-spacing: -.025em; color: #000; }
.gdf-elect__title em { margin-top: 8px; font-size: 1.1875rem; font-weight: 500; font-style: normal; color: #1a1406; letter-spacing: -.005em; }
.gdf-elect__countlabel { font-size: .75rem; font-weight: 700; letter-spacing: .22em; color: #2a2108; margin-bottom: 8px; }
.gdf-elect .gdf-count__box { padding: 0 var(--s5); border-left-color: rgba(0, 0, 0, .22); }
.gdf-elect .gdf-count__box span { font-size: clamp(2.4rem, 1.9rem + 1.3vw, 3.25rem); font-weight: 900; color: #000; }
.gdf-elect .gdf-count__box small { font-size: .875rem; font-weight: 500; color: #2a2108; }
.gdf-elect__cta { padding: 18px 28px; font-size: 1rem; font-weight: 700; background: #000; }
@media (max-width: 640px) {
  .gdf-elect__row { min-height: 0; }
  .gdf-elect__mark { width: 120px; height: 100px; }
  .gdf-elect__title { font-size: 2.4rem; }
  .gdf-elect .gdf-count__box span { font-size: 2.2rem; }
}

.gdf-elect__mark img { width: 100%; height: auto; flex: none; border-radius: 0; box-shadow: none; }
.gdf-elect__row { grid-template-columns: auto minmax(0, 1fr) auto; }
.gdf-elect__label, .gdf-elect__title, .gdf-elect__title em { white-space: nowrap; }
.gdf-elect__count { justify-self: center; }
@media (max-width: 1100px) {
  .gdf-elect__row { grid-template-columns: auto auto; justify-content: space-between; }
  .gdf-elect__count { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 640px) {
  .gdf-elect__row { grid-template-columns: 1fr; justify-content: stretch; }
  .gdf-elect__label { white-space: normal; }
}

/* X mark straight on the gold: no tile, larger, lifted by a soft shadow */
.gdf-elect__mark { width: 190px; height: auto; padding: 0; background: none; border-radius: 0; box-shadow: none; margin: -8px 0; }
.gdf-elect__mark img { width: 100%; filter: drop-shadow(0 6px 10px rgba(50, 34, 0, .45)) drop-shadow(0 1px 1px rgba(0, 0, 0, .35)); }
.gdf-elect__row { min-height: 170px; }
@media (max-width: 1100px) { .gdf-elect__mark { width: 160px; } }
@media (max-width: 640px) { .gdf-elect__mark { width: 170px; height: auto; margin: 0; } }

/* X mark: no shadow, oversized, breaking out of the strip like a stamp */
.gdf-elect { position: relative; z-index: 4; overflow: visible; }
.gdf-elect__row { min-height: 150px; }
.gdf-elect__mark { width: 264px; margin: -46px -6px -46px -10px; }
.gdf-elect__mark img { filter: none; }
@media (max-width: 1100px) { .gdf-elect__mark { width: 220px; margin: -40px -6px -40px -8px; } }
@media (max-width: 640px) { .gdf-elect__mark { width: 230px; margin: -56px 0 -4px; } }

/* --------------------------------------------------------------------------
   WHAT WE FIGHT FOR (white, fourth section)
   -------------------------------------------------------------------------- */
.gdf-stand { background: #fff; color: var(--gdf-text); padding: calc(var(--s9) + 24px) 0 var(--s9); }
.gdf-stand__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s7); align-items: end; margin-bottom: var(--s7); }
.gdf-stand__head h2 { margin: 0; font-size: clamp(2rem, 1.4rem + 1.8vw, 2.9rem); }
.gdf-stand__intro { margin: 0; max-width: 46ch; justify-self: end; font-size: 1.125rem; font-weight: 300; line-height: 1.6; color: var(--gdf-muted); }

.gdf-stand__pillars { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 3px solid #000; }
.gdf-stand__pillars li { display: flex; flex-direction: column; padding: var(--s5) var(--s5) var(--s6) 0; }
.gdf-stand__pillars li + li { padding-left: var(--s5); border-left: 1px solid #e7e3da; }
.gdf-stand__n { font-size: .8125rem; font-weight: 700; letter-spacing: .12em; color: var(--gdf-gold-dark); margin-bottom: var(--s5); }
.gdf-stand__pillars strong { font-size: clamp(1.6rem, 1.2rem + 1vw, 2.1rem); font-weight: 900; letter-spacing: -.025em; line-height: 1; color: #000; margin-bottom: var(--s2); }
.gdf-stand__d { font-size: 1rem; line-height: 1.5; color: var(--gdf-muted); }

.gdf-stand__against {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--s7); align-items: start;
  margin-top: var(--s7); padding: var(--s6) var(--s6); background: #f7f5f0; border-radius: 8px;
}
.gdf-stand__againstlabel { margin: 0 0 var(--s2); font-size: 1.25rem; font-weight: 900; letter-spacing: -.01em; color: var(--gdf-red); }
.gdf-stand__againsthead p:last-child { margin: 0; color: var(--gdf-muted); line-height: 1.55; }
.gdf-stand__list { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: var(--s6); }
.gdf-stand__list li { break-inside: avoid; position: relative; padding: 9px 0 9px 22px; border-bottom: 1px solid #e7e3da; font-weight: 500; color: #1a1917; }
.gdf-stand__list li::before { content: ""; position: absolute; left: 0; top: 50%; width: 10px; height: 2px; background: var(--gdf-red); }
.gdf-stand .gdf-actions { margin-top: var(--s6); }
.gdf-stand .gdf-link { color: #000; text-decoration-color: var(--gdf-gold); }

@media (max-width: 1000px) {
  .gdf-stand__head { grid-template-columns: 1fr; gap: var(--s4); }
  .gdf-stand__intro { justify-self: start; }
  .gdf-stand__pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gdf-stand__pillars li, .gdf-stand__pillars li + li { padding: var(--s5) var(--s4) var(--s5) 0; border-left: 0; border-bottom: 1px solid #e7e3da; }
  .gdf-stand__pillars li:nth-child(even) { padding-left: var(--s4); border-left: 1px solid #e7e3da; }
  .gdf-stand__against { grid-template-columns: 1fr; gap: var(--s4); }
}
@media (max-width: 560px) {
  .gdf-stand { padding: var(--s8) 0; }
  .gdf-stand__pillars { grid-template-columns: 1fr; }
  .gdf-stand__pillars li:nth-child(even) { padding-left: 0; border-left: 0; }
  .gdf-stand__pillars li { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: var(--s3); }
  .gdf-stand__n { margin: 0; flex-basis: 100%; }
  .gdf-stand__list { columns: 1; }
  .gdf-stand__against { padding: var(--s5); }
}

/* ---- What we fight for: compact variant ---- */
.gdf-stand--compact { padding: calc(var(--s8) + 20px) 0 var(--s8); }
.gdf-stand--compact .gdf-stand__head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--s4); margin-bottom: var(--s5); }
.gdf-stand--compact .gdf-stand__head h2 { font-size: clamp(1.75rem, 1.3rem + 1.3vw, 2.4rem); }
.gdf-stand--compact .gdf-stand__head .gdf-link { color: #000; text-decoration-color: var(--gdf-gold); font-weight: 500; white-space: nowrap; }
.gdf-stand--compact .gdf-stand__pillars { border-top-width: 2px; }
.gdf-stand--compact .gdf-stand__pillars li { padding: var(--s4) var(--s4) var(--s4) 0; }
.gdf-stand--compact .gdf-stand__pillars li + li { padding-left: var(--s4); }
.gdf-stand--compact .gdf-stand__n { margin-bottom: 6px; font-size: .75rem; }
.gdf-stand--compact .gdf-stand__pillars strong { font-size: clamp(1.35rem, 1.1rem + .7vw, 1.7rem); margin-bottom: 4px; }
.gdf-stand--compact .gdf-stand__d { font-size: .9375rem; line-height: 1.45; }
.gdf-stand__rise { margin: var(--s5) 0 0; padding: var(--s4) var(--s5); background: #f7f5f0; border-radius: 8px; font-size: 1rem; line-height: 1.55; color: #3b3934; }
.gdf-stand__rise strong { color: var(--gdf-red); font-weight: 700; margin-right: 6px; }
.gdf-stand__rise a { margin-left: 4px; color: #000; font-weight: 500; text-decoration: underline; text-decoration-color: var(--gdf-gold); text-underline-offset: 4px; }
@media (max-width: 1000px) {
  .gdf-stand--compact .gdf-stand__pillars li, .gdf-stand--compact .gdf-stand__pillars li + li { padding: var(--s4) var(--s3) var(--s4) 0; }
  .gdf-stand--compact .gdf-stand__pillars li:nth-child(even) { padding-left: var(--s4); }
}
@media (max-width: 560px) {
  .gdf-stand--compact .gdf-stand__head { flex-direction: column; align-items: flex-start; }
  .gdf-stand--compact .gdf-stand__pillars li:nth-child(even) { padding-left: 0; }
  .gdf-stand--compact .gdf-stand__pillars li { padding: var(--s3) 0; }
}

/* ==========================================================================
   NO DECORATIVE LINES (site-wide rule)
   No coloured or heavy accent lines on any edge of a box, title or band.
   Only quiet 1px neutral dividers between rows/columns remain, plus the
   functional current-page underline in the navigation.
   ========================================================================== */
.gdf-flagline, .gdf-footer > .gdf-flagline, .gdf-pagetop .gdf-flagline { display: none !important; }
.gdf-title::after, .gdf-pagetop h1::after, .gdf-cands h2::after { display: none !important; }
.gdf-title { padding-bottom: 0; }
.gdf-cands__eyebrow::before, .gdf-cands__eyebrow::after, .gdf-peel__kicker::before { display: none !important; }

.gdf-mega { border-top: 1px solid #e6e2d8; }
.gdf-fb, .gdf-fb.is-loaded { border-top: 0; }
.gdf-count__box { border-bottom: 0; }
.gdf-elect .gdf-count__box, .gdf-mosaic__vote .gdf-count__box { border-bottom: 0; }
.gdf-mosaic__caption { border-bottom: 0; padding-bottom: 0; }
.gdf-leader figcaption { border-top: 0; padding-top: var(--s3); }
.gdf-elect { border-bottom: 0; box-shadow: none; }
.gdf-mosaic__vote { border-top: 0; }
.gdf-oppgrid { border-top: 1px solid var(--gdf-rule); }

/* Heavy black rules become quiet 1px dividers */
.gdf-sidenav ul, .gdf-boxed, .gdf-declaration, .gdf-chapters, .gdf-fightlist, .gdf-against-table,
.gdf-table, .gdf-donatebox, .gdf-contactcards, .gdf-stand__pillars, .gdf-stand--compact .gdf-stand__pillars { border-top: 1px solid var(--gdf-rule); }
@media (max-width: 980px) { .gdf-layout__aside { border-top: 1px solid var(--gdf-rule); } }
.gdf-sechead { border-bottom: 1px solid var(--gdf-rule); }

/* On dark sections the gold hairlines become neutral */
.gdf-sechead--light, .gdf-footer__top { border-bottom-color: rgba(255, 255, 255, .1); }
.gdf-facts > div, .gdf-fight li + li { border-left-color: rgba(255, 255, 255, .1); }
.gdf-fight, .gdf-video-list, .gdf-involve__list { border-top-color: rgba(255, 255, 255, .1); }
.gdf-fight li { border-bottom-color: rgba(255, 255, 255, .1); }
.gdf-follow .gdf-social a { border-color: rgba(255, 255, 255, .22); }
.gdf-follow .gdf-social a:hover { border-color: #fff; color: #fff; }
.gdf-bar { border-bottom: 1px solid #ece8de; }

/* --------------------------------------------------------------------------
   DIGITAL PHOTOBOOTH (sixth section, true black)
   Two finished frames, fanned, show the result before anyone starts.
   -------------------------------------------------------------------------- */
.gdf-booth { background: #000; color: #cfcbc2; padding: var(--s9) 0; overflow: hidden; }
.gdf-booth__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: var(--s8); align-items: center; }
.gdf-booth h2 { color: #fff; font-size: clamp(2rem, 1.3rem + 2.2vw, 3.2rem); line-height: 1.08; letter-spacing: -.025em; max-width: 15ch; margin-bottom: var(--s4); }
.gdf-booth__why { font-size: 1.125rem; font-weight: 300; line-height: 1.65; max-width: 48ch; margin: 0 0 var(--s6); color: #d9d5cc; }
.gdf-booth__steps { list-style: none; margin: 0 0 var(--s6); padding: 0; display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: var(--s5); }
.gdf-booth__steps li { display: flex; align-items: center; gap: 10px; font-size: .9375rem; font-weight: 500; color: #fff; max-width: 13ch; line-height: 1.3; }
.gdf-booth__steps span { flex: 0 0 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: #1c1b18; color: var(--gdf-gold); font-weight: 700; font-size: .875rem; }
.gdf-booth__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s5); }
.gdf-booth__cta { min-height: 54px; padding: 14px 32px; font-size: 1rem; font-weight: 700; }
.gdf-booth__note { margin: 0; font-size: .875rem; color: #8f8b82; max-width: 32ch; }

.gdf-booth__frames { position: relative; height: clamp(420px, 40vw, 560px); }
.gdf-booth__frame { position: absolute; width: min(64%, 380px); height: auto; border-radius: 6px; box-shadow: 0 30px 60px rgba(0, 0, 0, .6); transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
.gdf-booth__frame--back { right: 2%; top: 0; transform: rotate(6deg); }
.gdf-booth__frame--front { left: 6%; bottom: 0; transform: rotate(-5deg); }
.gdf-booth:hover .gdf-booth__frame--back { transform: rotate(9deg) translate(10px, -6px); }
.gdf-booth:hover .gdf-booth__frame--front { transform: rotate(-7deg) translate(-10px, 6px); }

@media (max-width: 860px) {
  .gdf-booth__grid { grid-template-columns: 1fr; gap: var(--s7); }
  .gdf-booth__frames { height: 112vw; max-height: 560px; }
  .gdf-booth__frame { width: 62%; }
}
@media (max-width: 520px) {
  .gdf-booth { padding: var(--s8) 0; }
  .gdf-booth__steps { grid-template-columns: 1fr; gap: var(--s3); }
  .gdf-booth__steps li { max-width: none; }
  .gdf-booth__cta { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) { .gdf-booth__frame { transition: none; } }
.gdf-booth__steps li { max-width: none; white-space: nowrap; }

/* --------------------------------------------------------------------------
   FACEBOOK FEED (white). The page plugin loads as it scrolls into view.
   -------------------------------------------------------------------------- */
.gdf-fbfeed { background: #fff; padding: var(--s9) 0; }
.gdf-fbfeed__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: var(--s8); align-items: center; }
.gdf-fbfeed h2 { font-size: clamp(2rem, 1.3rem + 2vw, 3rem); line-height: 1.08; letter-spacing: -.025em; max-width: 14ch; margin-bottom: var(--s4); }
.gdf-fbfeed__sub { margin: 0; max-width: 40ch; font-size: 1.125rem; font-weight: 300; line-height: 1.6; color: var(--gdf-muted); }
.gdf-fbfeed__more { margin: var(--s4) 0 0; font-size: .9375rem; color: var(--gdf-muted); }
.gdf-fbfeed__more a { color: #000; font-weight: 500; text-decoration: underline; text-decoration-color: var(--gdf-gold); text-underline-offset: 4px; }
.gdf-fbfeed__panel { width: 100%; max-width: 520px; justify-self: end; }
.gdf-fb--live { background: #f7f5f0; border-radius: 10px; overflow: hidden; min-height: 640px; display: grid; }
.gdf-fb--live.is-loaded { background: #fff; box-shadow: 0 0 0 1px #ece8de; }
.gdf-fb--live .gdf-fb__iframe { width: 100%; height: 640px; }
.gdf-fb__loading { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s3); color: var(--gdf-muted); font-size: .9375rem; }
.gdf-fb__loading img { width: 56px; height: 56px; opacity: .85; }
@media (max-width: 960px) {
  .gdf-fbfeed__grid { grid-template-columns: 1fr; gap: var(--s6); }
  .gdf-fbfeed__panel { justify-self: stretch; max-width: 520px; }
}
@media (max-width: 560px) { .gdf-fbfeed { padding: var(--s8) 0; } .gdf-fb--live, .gdf-fb--live .gdf-fb__iframe { min-height: 560px; height: 560px; } }

/* --------------------------------------------------------------------------
   FACEBOOK CAROUSEL (white)
   -------------------------------------------------------------------------- */
.gdf-fbc { background: #fff; padding: var(--s9) 0; }
.gdf-fbc__head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--s5); margin-bottom: var(--s6); }
.gdf-fbc h2 { margin: 0 0 var(--s3); font-size: clamp(1.9rem, 1.3rem + 1.8vw, 2.8rem); line-height: 1.08; letter-spacing: -.025em; }
.gdf-fbc__sub { margin: 0; font-size: 1.0625rem; font-weight: 300; color: var(--gdf-muted); }
.gdf-fbc__controls { display: flex; align-items: center; gap: var(--s3); flex: 0 0 auto; }
.gdf-fbc__arrow { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid #dcd7cc; border-radius: 50%; background: #fff; color: #000; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.gdf-fbc__arrow svg { width: 20px; height: 20px; }
.gdf-fbc__arrow:hover:not(:disabled) { background: #000; border-color: #000; color: #fff; }
.gdf-fbc__arrow:disabled { opacity: .35; cursor: default; }

.gdf-fbc__track {
  list-style: none; margin: 0; padding: 4px 2px 12px; display: grid; grid-auto-flow: column;
  grid-auto-columns: calc((100% - 2 * var(--s5)) / 3); column-gap: var(--s5);
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.gdf-fbc__track::-webkit-scrollbar { display: none; }
.gdf-fbc__item { scroll-snap-align: start; }
.gdf-fbc__card { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 0 0 1px #ece8de; transition: box-shadow .2s, transform .2s; }
.gdf-fbc__card:hover { box-shadow: 0 0 0 1px #dcd7cc, 0 18px 36px rgba(0, 0, 0, .1); transform: translateY(-3px); }
.gdf-fbc__media { position: relative; aspect-ratio: 4 / 3; background: #f3f1ec; overflow: hidden; }
.gdf-fbc__media img { width: 100%; height: 100%; object-fit: cover; }
.gdf-fbc__media--text { aspect-ratio: auto; height: 10px; background: #000; }
.gdf-fbc__badge { position: absolute; top: 12px; left: 12px; padding: 4px 10px; border-radius: 999px; background: rgba(0, 0, 0, .7); color: #fff; font-size: .75rem; font-weight: 500; }
.gdf-fbc__body { display: flex; flex-direction: column; flex: 1; padding: var(--s4) var(--s5) var(--s5); }
.gdf-fbc__date { margin: 0 0 6px; font-size: .8125rem; font-weight: 500; color: var(--gdf-muted); }
.gdf-fbc__text { margin: 0 0 var(--s4); flex: 1; font-size: 1rem; line-height: 1.5; color: #1a1917; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.gdf-fbc__more { font-size: .875rem; font-weight: 700; color: #000; text-decoration: underline; text-decoration-color: var(--gdf-gold); text-underline-offset: 4px; }

.gdf-fbc__empty { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--s5); padding: var(--s6); background: #f7f5f0; border-radius: 10px; }
.gdf-fbc__empty img { width: 56px; height: 56px; }
.gdf-fbc__empty p { margin: 0; color: var(--gdf-muted); }
.gdf-fbc__emptytitle { font-size: 1.25rem; font-weight: 700; color: #000 !important; margin-bottom: 4px !important; }
.gdf-fbc__empty[hidden] { display: none; }

@media (max-width: 1000px) { .gdf-fbc__track { grid-auto-columns: calc((100% - var(--s5)) / 2); } }
@media (max-width: 700px) {
  .gdf-fbc__head { flex-direction: column; align-items: flex-start; }
  .gdf-fbc__controls { width: 100%; }
  .gdf-fbc__controls .gdf-btn { margin-right: auto; }
  .gdf-fbc__track { grid-auto-columns: 82%; column-gap: var(--s4); }
  .gdf-fbc__empty { grid-template-columns: 1fr; text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .gdf-fbc__card { transition: none; } .gdf-fbc__card:hover { transform: none; } }
.gdf-fbc__arrow[hidden] { display: none; }

/* --------------------------------------------------------------------------
   DOCUMENT READER (PDF pages shown on the page)
   -------------------------------------------------------------------------- */
.gdf-reader { margin: var(--s6) 0 var(--s7); background: #ecebe7; border-radius: 10px; overflow: hidden; }
.gdf-reader__bar { display: flex; justify-content: space-between; align-items: center; gap: var(--s4); padding: 14px 18px; background: #000; color: #fff; }
.gdf-reader__bar strong { display: block; font-size: 1rem; font-weight: 700; }
.gdf-reader__bar span { font-size: .8125rem; color: rgba(255, 255, 255, .7); }
.gdf-reader__actions { display: flex; gap: 10px; flex: 0 0 auto; }
.gdf-reader__bar .gdf-btn--outline { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45); border: 0; }
.gdf-reader__bar .gdf-btn--outline:hover { background: #fff; color: #000; }
.gdf-reader__bar .gdf-btn--black { background: var(--gdf-gold); color: #000; }
.gdf-reader__bar .gdf-btn--black:hover { background: #fff; color: #000; }
.gdf-reader__pages { max-height: min(78vh, 900px); overflow-y: auto; padding: 18px; display: grid; gap: 18px; overscroll-behavior: contain; scrollbar-width: thin; }
.gdf-reader__pages:focus-visible { outline: 3px solid var(--gdf-gold); outline-offset: -3px; }
.gdf-reader__pages img { width: 100%; height: auto; background: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, .12); }
.gdf-reader--single .gdf-reader__pages { max-height: none; }
@media (max-width: 600px) {
  .gdf-reader__bar { flex-direction: column; align-items: flex-start; }
  .gdf-reader__pages { padding: 10px; gap: 10px; max-height: 75vh; }
}

/* --------------------------------------------------------------------------
   INNER PAGES: editorial layout. No boxes, pills or tinted panels in the
   sidebar: type, weight and space only.
   -------------------------------------------------------------------------- */
.gdf-section--page { padding: clamp(40px, 5vw, 72px) 0 clamp(56px, 7vw, 96px); }
.gdf-layout { grid-template-columns: minmax(0, 1fr) 200px; gap: clamp(48px, 7vw, 104px); }
.gdf-layout__main { max-width: none; }
.gdf-layout__main > p, .gdf-layout__main > ul, .gdf-layout__main > ol { max-width: 70ch; }
.gdf-layout__main > h2:first-child { margin-top: 0; }
.gdf-layout__aside { gap: 48px; top: 120px; padding-top: 6px; }

.gdf-sidenav { background: none; padding: 0; border-radius: 0; }
.gdf-sidenav p { margin: 0 0 14px; padding: 0; font-size: .6875rem; font-weight: 700; letter-spacing: .14em; color: #8a857b; }
.gdf-sidenav ul { border: 0 !important; display: grid; gap: 0; }
.gdf-sidenav li { border: 0; }
.gdf-sidenav a { display: block; padding: 6px 0; border-radius: 0; background: none; font-size: .9375rem; font-weight: 400; line-height: 1.35; color: #6b675f; transition: color .15s; }
.gdf-sidenav a:hover { background: none; color: #000; }
.gdf-sidenav a[aria-current] { background: none; color: #000; font-weight: 700; }
.gdf-sidenav a[aria-current]::after { content: none; }

.gdf-sidevote { display: block; padding: 0; border-radius: 0; background: none; color: #000; }
.gdf-sidevote img { display: block; width: 112px; height: auto; margin: 0 0 12px -6px; }
.gdf-sidevote__date { margin: 0 0 4px !important; font-size: 1.0625rem !important; font-weight: 700; line-height: 1.25 !important; letter-spacing: -.01em; color: #000; text-transform: none; }
.gdf-sidevote__days { margin: 0 0 10px !important; font-size: .875rem !important; color: #6b675f !important; }
.gdf-sidevote__link { font-size: .875rem; font-weight: 500; color: var(--gdf-red); text-decoration: underline; text-underline-offset: 3px; }
.gdf-sidevote__link:hover { color: #000; }

.gdf-sidecontact { padding: 0; border-radius: 0; background: none; font-size: .9375rem; color: #3d3a35; }

/* Notices and the document reader: flat and squared, not rounded panels */
.gdf-alert { background: none; border-radius: 0; padding: 0; margin: var(--s5) 0; max-width: 70ch; }
.gdf-alert strong { color: var(--gdf-red); }
.gdf-reader, .gdf-reader__bar { border-radius: 0; }
.gdf-reader__pages img { box-shadow: 0 1px 4px rgba(0, 0, 0, .12); }

@media (max-width: 980px) {
  .gdf-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .gdf-layout__aside { position: static; border: 0 !important; padding: 0; gap: 32px; }
  .gdf-layout__aside, .gdf-layout__main, .gdf-sidenav { min-width: 0; }
  .gdf-layout__aside:has(.gdf-sidenav) { order: -1; }
  .gdf-layout__aside:has(.gdf-sidenav) .gdf-sidevote { display: none; }
  .gdf-sidenav p { display: none; }
  .gdf-sidenav ul { display: flex; gap: 24px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--gdf-gutter)); padding: 0 var(--gdf-gutter); }
  .gdf-sidenav ul::-webkit-scrollbar { display: none; }
  .gdf-sidenav li { flex: 0 0 auto; }
  .gdf-sidenav a { padding: 6px 0 8px; white-space: nowrap; font-size: .9375rem; }
  .gdf-sidenav a[aria-current] { font-weight: 500; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 10px; text-decoration-color: var(--gdf-red); }
  .gdf-reader__actions { width: 100%; }
  .gdf-reader__actions .gdf-btn { flex: 1; justify-content: center; }
}
@media (max-width: 600px) { .gdf-layout__main .gdf-lead { font-size: 1.125rem; line-height: 1.55; } }
.gdf-form__note { padding: 0; border: 0; background: none; color: #6b675f; font-style: italic; }

/* Join page: the membership system's form (center.gazadf.org) embedded */
.gdf-joinform { margin: var(--s6) 0 var(--s7); }
.gdf-joinform iframe { display: block; width: 100%; min-height: 3000px; border: 0; }

/* Full-width inner pages (photobooth) */
.gdf-wide__intro { max-width: 70ch; margin: 0 auto var(--s6); text-align: center; }
.gdf-wide__intro h2 { margin-top: 0; }
.gdf-wide .gdp-booth { margin: 0 auto; }

/* --------------------------------------------------------------------------
   EMBLEM WATERMARK: the lion and torch, large and faded, bleeding off one
   side of selected sections (alternating sides). Purely decorative.
   -------------------------------------------------------------------------- */
.gdf-stand, .gdf-fbc, .gdf-cands, .gdf-section--page { position: relative; }
.gdf-stand::before, .gdf-fbc::before, .gdf-cands::after, .gdf-section--page::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: url("../img/brand/wm-lion-ink.webp") no-repeat;
  background-size: clamp(420px, 44vw, 680px) auto;
  opacity: .05;
}
.gdf-stand > .gdf-container, .gdf-fbc > .gdf-container, .gdf-cands > .gdf-container,
.gdf-section--page > .gdf-container { position: relative; z-index: 1; }

/* What we fight for: left edge */
.gdf-stand::before { background-position: left calc(-1 * clamp(150px, 14vw, 240px)) center; }
/* Facebook: right edge, low */
.gdf-fbc::before { background-position: right calc(-1 * clamp(150px, 14vw, 240px)) bottom -60px; }
/* Candidates on black: faded gold, right edge */
.gdf-cands::after {
  display: block; background-image: url("../img/brand/wm-lion-gold.webp");
  background-position: right calc(-1 * clamp(140px, 12vw, 220px)) top 40px; opacity: .07;
}
/* Inner pages: right edge, under the sidebar */
.gdf-section--page::before { background-position: right calc(-1 * clamp(160px, 14vw, 260px)) bottom 40px; opacity: .045; }

@media (max-width: 700px) {
  .gdf-stand::before, .gdf-fbc::before, .gdf-cands::after, .gdf-section--page::before { background-size: 320px auto; opacity: .035; }
  .gdf-stand::before { background-position: left -130px top 40px; }
  .gdf-fbc::before, .gdf-section--page::before { background-position: right -130px bottom 20px; }
  .gdf-cands::after { background-position: right -120px top 20px; opacity: .06; }
}
@media print { .gdf-stand::before, .gdf-fbc::before, .gdf-cands::after, .gdf-section--page::before { display: none; } }
.gdf-footer__contactlink { color: var(--gdf-gold) !important; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.gdf-footer__contactlink:hover { color: #fff !important; }

/* Ribbon in the GAZA colours across the seam between the hero and the gold
   election strip. Sits behind the X mark and the strip's content. */
.gdf-ribbon {
  position: absolute; left: 0; top: 0; z-index: 1; width: 100%; height: auto;
  transform: translateY(-58%); pointer-events: none;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .28));
}
.gdf-elect__row { position: relative; z-index: 2; }
@media (max-width: 640px) { .gdf-ribbon { width: 160%; left: -30%; transform: translateY(-55%); } }
.gdf-elect { overflow-x: clip; }
/* Ribbon sizing: slimmer band centred on the seam, with room kept clear on both sides */
:root { --gdf-ribbon-h: clamp(52px, 6.4vw, 96px); }
.gdf-ribbon { height: var(--gdf-ribbon-h); object-fit: fill; transform: translateY(-50%); }
.gdf-mosaic--full .gdf-mosaic__copy { bottom: calc(var(--gdf-ribbon-h) / 2 + 40px); }
.gdf-elect { padding-top: calc(var(--gdf-ribbon-h) / 2 - 6px); }
@media (max-width: 640px) {
  :root { --gdf-ribbon-h: 46px; }
  .gdf-ribbon { width: 100%; left: 0; transform: translateY(-50%); }
}

/* Ribbon on inner pages (banner / content seam) and on top of the footer */
.gdf-section--page > .gdf-ribbon, .gdf-footer > .gdf-ribbon { z-index: 2; }
.gdf-section--page { padding-top: calc(var(--gdf-ribbon-h) / 2 + clamp(32px, 4vw, 56px)); }
.gdf-pagetop--photo .gdf-container { padding-bottom: calc(var(--gdf-ribbon-h) / 2 + clamp(40px, 5vw, 72px)); }
.gdf-pagetop:not(.gdf-pagetop--photo) .gdf-container { padding-bottom: calc(var(--gdf-ribbon-h) / 2 + var(--s6)); }
.gdf-footer { position: relative; padding-top: calc(var(--gdf-ribbon-h) / 2 + var(--s7)); }
.gdf-ribbon { filter: none; }

/* Inner pages: no ribbon on the banner; spacing back to normal */
.gdf-section--page { padding-top: clamp(40px, 5vw, 72px); }
.gdf-pagetop--photo .gdf-container { padding-bottom: clamp(56px, 7vw, 96px); }
.gdf-pagetop:not(.gdf-pagetop--photo) .gdf-container { padding-bottom: var(--s7); }

/* Ribbon divider inside the page content, between sections */
.gdf-ribbon-divider { margin: clamp(40px, 5vw, 64px) 0 clamp(28px, 3.5vw, 44px); }
.gdf-ribbon-divider__img { display: block; width: 100%; height: clamp(40px, 5vw, 64px); object-fit: fill; }
.gdf-ribbon-divider + h2 { margin-top: 0; }

/* Home: ribbon moved to the seam between the gold election strip and the
   black candidates section; hero and strip spacing back to normal. */
.gdf-mosaic--full .gdf-mosaic__copy { bottom: 46px; }
.gdf-elect { padding-top: 0; }
.gdf-cands > .gdf-ribbon { z-index: 5; }
.gdf-cands { padding-top: calc(var(--gdf-ribbon-h) / 2 + var(--s8)); }
/* Let the gold X sit in front of the ribbon where it hangs below the strip */
.gdf-elect, .gdf-elect__row { z-index: auto; }
.gdf-elect__mark { position: relative; z-index: 6; }
.gdf-elect { padding-bottom: calc(var(--gdf-ribbon-h) / 2); }

/* Home gold strip: the animated ballot box replaces the X mark */
.gdf-elect__mark--ballot { width: 236px; margin: 0 -8px 0 -14px; flex: 0 0 auto; }
.gdf-elect__mark--ballot .gzb {
  --gzb-width: 100%;
  --gzb-lid: #9b2423;          /* red lid: a gold lid would vanish on the gold strip */
  --gzb-lid-edge: #6e1716;
  --gzb-slot: #1a0606;
  --gzb-body-edge: transparent;
  --gzb-bubble-size: 21px;     /* readable at this small size */
}
@media (max-width: 1100px) { .gdf-elect__mark--ballot { width: 210px; margin: 0 -6px 0 -10px; } }
@media (max-width: 640px) { .gdf-elect__mark--ballot { width: 240px; margin: 0 auto -6px; } }

/* --------------------------------------------------------------------------
   HOME GOLD STRIP: a message to people. Ballot animation | headline | days to go + action
   -------------------------------------------------------------------------- */
.gdf-vote {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center;
  gap: clamp(24px, 3.5vw, 56px); padding-top: clamp(20px, 2.5vw, 32px); padding-bottom: clamp(12px, 1.5vw, 20px);
  position: relative; z-index: auto;
}
.gdf-vote__art { margin: 0 -8px 0 -14px; }
.gdf-vote__when { margin: 0 0 10px; font-size: .8125rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #3a2a06; }
.gdf-vote__title { margin: 0 0 12px; max-width: 18ch; color: #000; font-size: clamp(1.75rem, 1.1rem + 2vw, 2.75rem); font-weight: 900; line-height: 1.05; letter-spacing: -.025em; }
.gdf-vote__sub { margin: 0; max-width: 46ch; font-size: 1.0625rem; line-height: 1.5; color: #2a1f05; }

.gdf-vote__side { display: grid; justify-items: start; gap: 18px; }
.gdf-vote__days { margin: 0; display: flex; align-items: baseline; gap: 10px; color: #000; }
.gdf-vote__days span { font-size: clamp(3.5rem, 2.5rem + 3vw, 5.25rem); font-weight: 900; line-height: .9; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.gdf-vote__days small { font-size: 1.125rem; font-weight: 700; line-height: 1.1; max-width: 5ch; }
.gdf-vote__time { margin: 6px 0 0; font-size: .9375rem; font-weight: 500; color: #3a2a06; font-variant-numeric: tabular-nums; }
.gdf-vote__time span { font-weight: 700; color: #000; }
.gdf-vote__count[hidden] { display: none; }
.gdf-vote .gdf-count__done { margin: 0; max-width: 22ch; font-size: 1.125rem; font-weight: 700; color: #000; }
.gdf-vote__cta {
  display: inline-flex; align-items: center; gap: 10px; padding: 15px 24px; border-radius: 4px;
  background: #000; color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap;
  transition: background-color .15s, color .15s;
}
.gdf-vote__cta span { color: var(--gdf-gold); transition: transform .15s; }
.gdf-vote__cta:hover { background: #9b2423; color: #fff; }
.gdf-vote__cta:hover span { transform: translateX(3px); color: #fff; }

@media (max-width: 1100px) {
  .gdf-vote { grid-template-columns: auto minmax(0, 1fr); }
  .gdf-vote__side { grid-column: 2; grid-template-columns: auto auto; align-items: end; gap: 28px; }
}
@media (max-width: 700px) {
  .gdf-vote { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 18px; }
  .gdf-vote__art { margin: 0 auto -6px; }
  .gdf-vote__title, .gdf-vote__sub { margin-inline: auto; }
  .gdf-vote__side { grid-column: auto; grid-template-columns: 1fr; justify-items: center; width: 100%; }
  .gdf-vote__days { justify-content: center; }
  .gdf-vote__cta { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .gdf-vote__cta, .gdf-vote__cta span { transition: none; } }

/* Gold strip refinements */
.gdf-vote__title { max-width: 21ch; }
@media (max-width: 1100px) { .gdf-vote__side { justify-content: start; } }

/* Candidates on phones: two per row (no sideways scrolling), no hover zoom */
@media (max-width: 700px) {
  .gdf-cands__list {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 12px;
    overflow: visible; padding: 0 var(--gdf-gutter); scroll-snap-type: none;
  }
  .gdf-cands__item { flex: none; }
  .gdf-cands__list .gdf-cands__item img,
  .gdf-cands__list:hover .gdf-cands__item img,
  .gdf-cands__list .gdf-cands__item:hover img,
  .gdf-cands__list .gdf-cands__item:focus-visible img { opacity: 1; transform: none; filter: drop-shadow(0 14px 22px rgba(0, 0, 0, .5)); }
  .gdf-cands:has(.gdf-cands__item:hover) .gdf-cands__head { opacity: 1; }
}

/* Gold strip countdown: flip-clock tiles + red action */
.gdf-vote__side { justify-items: stretch; gap: 16px; }
.gdf-vote__countlabel { margin: 0 0 10px; font-size: .75rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #3a2a06; }
.gdf-vote__tiles { display: flex; align-items: flex-start; gap: 6px; }
.gdf-vote__tiles i { font-style: normal; font-size: 2rem; font-weight: 900; line-height: 78px; color: #000; opacity: .55; }
.gdf-vote__tile { display: grid; justify-items: center; gap: 8px; }
.gdf-vote__tile span {
  position: relative; display: grid; place-items: center; width: 74px; height: 80px; border-radius: 10px;
  background: linear-gradient(#1d1d1d 0 50%, #0a0a0a 50% 100%); color: #fff;
  font-size: 2.6rem; font-weight: 900; letter-spacing: -.02em; font-variant-numeric: tabular-nums;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
  overflow: hidden;
}
.gdf-vote__tile span::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgba(0, 0, 0, .65); }
.gdf-vote__tile small { font-size: .6875rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #3a2a06; }
.gdf-vote__tile:first-child span { background: linear-gradient(#a82a28 0 50%, #8e1f1e 50% 100%); }   /* days: GAZA red */
.gdf-vote__tile span.is-flip { animation: gdf-flip .42s cubic-bezier(.3, .7, .3, 1); }
@keyframes gdf-flip {
  0% { transform: perspective(240px) rotateX(-70deg); opacity: .3; }
  100% { transform: perspective(240px) rotateX(0); opacity: 1; }
}
.gdf-vote__cta { justify-content: center; background: #9b2423; padding: 16px 24px; font-size: 1.0625rem; }
.gdf-vote__cta:hover { background: #000; }
@media (max-width: 1100px) {
  .gdf-vote__side { grid-template-columns: auto; justify-items: start; }
}
@media (max-width: 700px) {
  .gdf-vote__side { justify-items: center; }
  .gdf-vote__tiles { justify-content: center; gap: 4px; }
  .gdf-vote__tile span { width: 62px; height: 70px; font-size: 2.2rem; }
  .gdf-vote__tiles i { line-height: 68px; font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) { .gdf-vote__tile span.is-flip { animation: none; } }
@media (max-width: 700px) {
  .gdf-vote__side { justify-content: center; justify-items: stretch; width: auto; }
  .gdf-vote__countlabel { text-align: center; }
}
/* Date line above the headline: always one line */
.gdf-vote__when { white-space: nowrap; }
@media (max-width: 1100px) { .gdf-vote__when { font-size: .75rem; letter-spacing: .1em; } }
@media (max-width: 700px) {
  .gdf-vote__weekday { display: none; }
  .gdf-vote__when { font-size: clamp(.625rem, 2.9vw, .75rem); letter-spacing: .08em; }
}
/* Very small phones: keep the header (crest, name, Menu) inside the screen */
@media (max-width: 360px) {
  .gdf-brand img { width: 38px; height: 38px; }
  .gdf-brand__text strong { font-size: .8125rem; letter-spacing: .02em; }
  .gdf-brand__text em { font-size: .75rem; }
  .gdf-menubtn { padding-left: 10px; padding-right: 10px; }
}

/* Opportunity Ground: wider photo panel for the group photograph, centred on the people */
.gdf-og__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.gdf-og__photo { object-position: 50% 62%; }
@media (max-width: 980px) { .gdf-og__grid { grid-template-columns: 1fr; } }

/* Youth page banner: the Youth League president is the feature, so show him clearly */
.gdf-pagetop__bg[src*="banner-youth"] { opacity: .9; object-position: 62% 30%; }
.gdf-pagetop--photo:has(.gdf-pagetop__bg[src*="banner-youth"])::before {
  background: linear-gradient(to right, rgba(11, 11, 10, .92) 22%, rgba(11, 11, 10, .55) 45%, rgba(11, 11, 10, .05) 75%);
}
@media (max-width: 700px) {
  .gdf-pagetop__bg[src*="banner-youth"] { object-position: 66% 25%; }
  .gdf-pagetop--photo:has(.gdf-pagetop__bg[src*="banner-youth"])::before {
    background: linear-gradient(to right, rgba(11, 11, 10, .88) 30%, rgba(11, 11, 10, .35) 75%, rgba(11, 11, 10, .2));
  }
}

/* ==========================================================================
   HEADER (two-tier): black logo block on the left, full header height;
   info row + menu row on the right; red Join block at the end of the menu.
   ========================================================================== */
.gdf-header { border-bottom: 1px solid #e6e2d8; overflow-x: clip; }
.gdf-hd { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: stretch; }

.gdf-hd__brand {
  position: relative; display: flex; align-items: center; gap: 14px;
  padding: 12px 30px 12px 0; background: #000; color: #fff; text-decoration: none;
}
.gdf-hd__brand::before { content: ""; position: absolute; top: 0; bottom: 0; right: 100%; width: 100vw; background: #000; }
.gdf-hd__brand img { width: 84px; height: 84px; flex: 0 0 auto; transition: width .2s, height .2s; }
.gdf-hd__name strong { display: block; font-size: 1rem; font-weight: 900; line-height: 1.15; letter-spacing: .06em; text-transform: uppercase; color: #fff; white-space: nowrap; }
.gdf-hd__name em { display: block; margin-top: 4px; font-size: .9375rem; font-style: italic; color: var(--gdf-gold); }
.gdf-hd__brand:hover .gdf-hd__name strong { color: var(--gdf-gold); }
.gdf-header.is-condensed .gdf-hd__brand img { width: 54px; height: 54px; }

.gdf-hd__main { display: grid; grid-template-rows: auto auto; padding-left: 26px; min-width: 0; }

/* Row 1: information line on white */
.gdf-hd__top.gdf-util { background: transparent; color: #6b675f; border-bottom: 1px solid #ece8de; }
.gdf-hd__top .gdf-util__row { min-height: 40px; }
.gdf-hd__top a { color: #3d3a35; }
.gdf-hd__top a:hover { color: #000; }
.gdf-hd__top .gdf-util__vote strong { color: var(--gdf-red); font-weight: 700; }
.gdf-hd__top .gdf-util__sep, .gdf-hd__top .gdf-topbar__days::before { color: #b7b1a4; }
.gdf-hd__top .gdf-topbar__days { color: #6b675f; }
.gdf-hd__top .gdf-hero2__icons a { color: #6b675f; }
.gdf-hd__top .gdf-hero2__icons a:hover { color: #000; background: #f3f1ec; }
.gdf-hd__top .gdf-util__donate { color: var(--gdf-red) !important; font-weight: 700; border-left: 1px solid #e6e2d8; }

/* Row 2: menu */
.gdf-hd__bar { display: flex; align-items: stretch; justify-content: space-between; min-height: 64px; }
.gdf-hd .gdf-nav { display: flex; align-items: stretch; }
.gdf-hd .gdf-nav__list { align-items: stretch; }
.gdf-hd .gdf-nav__item { display: flex; }
.gdf-hd .gdf-nav__link,
.gdf-header.is-condensed .gdf-hd .gdf-nav__link {
  padding: 0 14px; font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1f1d1a;
}
.gdf-hd .gdf-nav__link::after, .gdf-header.is-condensed .gdf-hd .gdf-nav__link::after { bottom: 0; left: 14px; right: 14px; height: 3px; }
.gdf-hd .gdf-nav__link[aria-current], .gdf-hd .gdf-nav__link[data-active] { color: var(--gdf-red); font-weight: 800; }
.gdf-hd .gdf-nav__link:hover { color: var(--gdf-red); }

.gdf-hd__join {
  display: flex; align-items: center; padding: 0 30px; background: var(--gdf-red); color: #fff;
  font-size: .875rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; text-decoration: none;
  transition: background-color .15s;
}
.gdf-hd__join:hover { background: #000; color: #fff; }

@media (max-width: 1280px) {
  .gdf-hd__brand img { width: 72px; height: 72px; }
  .gdf-hd__name strong { font-size: .875rem; }
  .gdf-hd__main { padding-left: 18px; }
  .gdf-hd .gdf-nav__link, .gdf-header.is-condensed .gdf-hd .gdf-nav__link { padding: 0 10px; letter-spacing: .05em; }
  .gdf-hd .gdf-nav__link::after { left: 10px; right: 10px; }
  .gdf-hd__join { padding: 0 20px; }
}
@media (max-width: 1160px) {
  .gdf-hd__bar { justify-content: flex-end; align-items: center; gap: 12px; }
  .gdf-hd__join { align-self: stretch; }
}
@media (max-width: 760px) {
  .gdf-hd__top { display: none; }
  .gdf-hd__brand { padding: 10px 16px 10px 0; gap: 10px; }
  .gdf-hd__brand img, .gdf-header.is-condensed .gdf-hd__brand img { width: 50px; height: 50px; }
  .gdf-hd__name strong { font-size: .8125rem; letter-spacing: .04em; }
  .gdf-hd__name em { font-size: .8125rem; margin-top: 2px; }
  .gdf-hd__main { padding-left: 12px; }
  .gdf-hd__bar { min-height: 70px; }
  .gdf-hd__join { display: none; }
}
@media (max-width: 400px) {
  .gdf-hd__name strong { white-space: normal; max-width: 9.5em; }
  .gdf-hd__brand img, .gdf-header.is-condensed .gdf-hd__brand img { width: 44px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .gdf-hd__brand img, .gdf-hd__join { transition: none; } }
/* Header fit: compact menu sizing at every width; never wrap */
.gdf-hd .gdf-nav__link, .gdf-header.is-condensed .gdf-hd .gdf-nav__link { padding: 0 11px; letter-spacing: .05em; white-space: nowrap; }
.gdf-hd .gdf-nav__link::after, .gdf-header.is-condensed .gdf-hd .gdf-nav__link::after { left: 11px; right: 11px; }
.gdf-hd__join { padding: 0 24px; white-space: nowrap; }
.gdf-hd__top .gdf-util__row, .gdf-hd__top .gdf-util__right, .gdf-hd__top a { white-space: nowrap; }
.gdf-hd__top .gdf-util__right { gap: 18px; }
.gdf-hd__brand img { width: 76px; height: 76px; }
.gdf-hd__name strong { font-size: .9375rem; }
@media (max-width: 1360px) {
  .gdf-hd__top .gdf-util__right a[href^="tel:"] { display: none; }
}
@media (max-width: 1160px) {
  .gdf-hd .gdf-nav { display: none; }
  .gdf-hd .gdf-menubtn { display: inline-flex; }
  .gdf-hd__top .gdf-util__right a[href^="mailto:"] { display: none; }
}
@media (max-width: 760px) {
  .gdf-hd__brand img, .gdf-header.is-condensed .gdf-hd__brand img { width: 50px; height: 50px; }
  .gdf-hd__name strong { font-size: .8125rem; }
}
@media (max-width: 400px) {
  .gdf-hd__brand img, .gdf-header.is-condensed .gdf-hd__brand img { width: 44px; height: 44px; }
}
@media (max-width: 400px) { .gdf-hd__name strong { white-space: normal; max-width: 11em; font-size: .78rem; } }

/* ==========================================================================
   PHONE & TABLET MENU: banner image on top, compact icon list below.
   Phones: full width under the header. Tablets: 400px panel on the right.
   ========================================================================== */
.gdf-mobile { padding: 0; border-top: 0; display: none; flex-direction: column; background: #fff; }
.gdf-mobile.is-open { display: flex; }
.gdf-mobile__banner { display: block; flex: 0 0 auto; background: #000; }
.gdf-mobile__banner img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }

.gdf-mobile__nav { padding: 6px 12px 0; }
.gdf-mobile__group { border-bottom: 0; }
.gdf-mobile__top {
  display: flex; align-items: center; gap: 14px; width: 100%; min-height: 46px; padding: 0 12px; border-radius: 10px;
  font-size: .9375rem; font-weight: 500; color: #1f1d1a; text-decoration: none; letter-spacing: 0; text-transform: none;
  background: none; border: 0; cursor: pointer; text-align: left;
}
.gdf-mobile__top span { flex: 1; }
.gdf-mobile__top:hover, .gdf-mobile__top:focus-visible { background: #f5f3ee; }
.gdf-mobile__top[aria-current] { background: #f5f3ee; color: var(--gdf-red); font-weight: 700; }
.gdf-mobile__icon { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: #6b675f; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.gdf-mobile__top[aria-current] .gdf-mobile__icon, .gdf-mobile__top[aria-expanded="true"] .gdf-mobile__icon { stroke: var(--gdf-red); }
.gdf-mobile__caret { width: 9px; height: 6px; fill: #9a958a; transition: transform .2s; }
.gdf-mobile__top[aria-expanded="true"] { font-weight: 700; }
.gdf-mobile__top[aria-expanded="true"] .gdf-mobile__caret { transform: rotate(180deg); fill: var(--gdf-red); }
.gdf-mobile__sub { padding: 0 0 4px; }
.gdf-mobile__sub a { display: block; padding: 8px 12px 8px 46px; border-radius: 8px; font-size: .875rem; color: #57534b; text-decoration: none; }
.gdf-mobile__sub a:hover { background: #f5f3ee; color: #000; }
.gdf-mobile__sub a[aria-current] { color: var(--gdf-red); font-weight: 600; }

.gdf-mobile__cta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 24px 0; }
.gdf-mobile__join, .gdf-mobile__donate {
  display: flex; align-items: center; justify-content: center; min-height: 44px; border-radius: 8px;
  font-size: .875rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; text-decoration: none;
}
.gdf-mobile__join { background: var(--gdf-red); color: #fff; }
.gdf-mobile__donate { background: #000; color: #fff; }
.gdf-mobile__foot { margin: auto 24px 0; padding: 14px 0 18px; }
.gdf-mobile__foot .gdf-social { display: flex; gap: 18px; margin: 0; padding: 0; list-style: none; }
.gdf-mobile__foot .gdf-social a { font-size: .8125rem; font-weight: 600; color: #6b675f; text-decoration: none; }
.gdf-mobile__foot .gdf-social a:hover { color: var(--gdf-red); }

/* Tablets: a side panel over the dimmed page */
@media (min-width: 761px) {
  .gdf-mobile { left: auto; width: 400px; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .45); }
}
@media (prefers-reduced-motion: no-preference) {
  .gdf-mobile.is-open { animation: gdf-menu-in .22s ease-out; }
  @keyframes gdf-menu-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
}
/* Short phone screens: tighter rows so everything still fits */
@media (max-height: 700px) and (max-width: 760px) {
  .gdf-mobile__top { min-height: 42px; }
  .gdf-mobile__banner img { aspect-ratio: 16 / 7.5; }
}
.gdf-mobile__top .gdf-mobile__icon { width: 20px; height: 20px; fill: none; transform: none; }
.gdf-mobile__top .gdf-mobile__caret { width: 9px; height: 6px; fill: #9a958a; }
.gdf-mobile__top[aria-expanded="true"] .gdf-mobile__caret { fill: var(--gdf-red); transform: rotate(180deg); }

/* --------------------------------------------------------------------------
   GET INVOLVED (shorter): one line per option, Youth League president photo
   -------------------------------------------------------------------------- */
.gdf-involve .gdf-title { margin-bottom: var(--s5); }
.gdf-involve__list a {
  display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr) auto; align-items: center; gap: 18px;
  padding: 16px 0;
}
.gdf-involve__list strong { font-size: 1.0625rem; font-weight: 700; letter-spacing: 0; text-transform: none; }
.gdf-involve__list span { font-size: .9375rem; color: #b9b5ab; }
.gdf-involve__list a::after { content: "\2192"; color: var(--gdf-gold); font-weight: 700; transition: transform .15s; }
.gdf-involve__list a:hover::after { transform: translateX(4px); }
.gdf-involve__photo img { object-position: 62% 40%; }
@media (max-width: 980px) {
  .gdf-involve__list a { grid-template-columns: minmax(0, 1fr) auto; gap: 2px 14px; }
  .gdf-involve__list strong { grid-column: 1; }
  .gdf-involve__list span { grid-column: 1; }
  .gdf-involve__list a::after { grid-column: 2; grid-row: 1 / span 2; }
}

/* --------------------------------------------------------------------------
   FUND THE CAMPAIGN (gold band): copy left, amount tiles right
   -------------------------------------------------------------------------- */
.gdf-donate { padding: clamp(48px, 6vw, 80px) 0; }
.gdf-donate__row { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 72px); }
.gdf-donate__eyebrow { margin: 0 0 8px; font-size: .75rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #3a2a06; }
.gdf-donate h2 { margin: 0 0 10px; font-size: clamp(1.9rem, 1.3rem + 1.8vw, 2.8rem); font-weight: 900; letter-spacing: -.025em; line-height: 1.05; }
.gdf-donate__copy p:last-child { margin: 0; font-size: 1.0625rem; color: #2a1f05; max-width: 40ch; }
.gdf-donate__pick { display: block; }
.gdf-donate__chips { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.gdf-donate__chips button {
  min-height: 64px; padding: 0 10px; border: 0; border-radius: 10px; background: #fff; color: #000;
  font: 800 1.25rem/1 var(--gdf-font); letter-spacing: -.01em; cursor: pointer;
  box-shadow: 0 1px 0 rgba(0, 0, 0, .08); transition: background-color .15s, color .15s, transform .15s;
}
.gdf-donate__chips button[value="other"] { font-size: 1rem; font-weight: 700; }
.gdf-donate__chips button:hover, .gdf-donate__chips button:focus-visible { background: #000; color: var(--gdf-gold); transform: translateY(-2px); }
.gdf-donate__note { margin: 12px 0 0; font-size: .8125rem; color: #3a2a06; }
@media (max-width: 860px) {
  .gdf-donate__row { grid-template-columns: 1fr; }
  .gdf-donate__chips { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gdf-donate__chips button { min-height: 56px; font-size: 1.125rem; }
}
@media (prefers-reduced-motion: reduce) { .gdf-donate__chips button, .gdf-involve__list a::after { transition: none; } }
.gdf-involve__list a { grid-template-columns: minmax(0, 14rem) minmax(0, 1fr) auto; }
@media (max-width: 860px) {
  .gdf-donate__chips { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
  .gdf-donate__chips button { min-height: 54px; padding: 0 4px; font-size: 1rem; }
  .gdf-donate__chips button[value="other"] { font-size: .875rem; }
}

/* --------------------------------------------------------------------------
   HEADER: full width; larger crest that hangs over the hero as a medallion
   -------------------------------------------------------------------------- */
.gdf-header { overflow: visible; }
.gdf-hd { max-width: none; padding: 0; }
.gdf-hd__brand { padding: 12px 34px 12px calc(var(--gdf-gutter) + 132px + 18px); }
.gdf-hd__brand::before { display: none; }
.gdf-hd__brand img,
.gdf-header.is-condensed .gdf-hd__brand img {
  position: absolute; left: var(--gdf-gutter); top: 10px; z-index: 2;
  width: 132px; height: 132px; padding: 6px; box-sizing: border-box; border-radius: 50%; background: #000;
  transition: width .25s, height .25s, top .25s;
}
.gdf-header.is-condensed .gdf-hd__brand img { width: 62px; height: 62px; top: 8px; padding: 3px; }
.gdf-header.is-condensed .gdf-hd__brand { padding-left: calc(var(--gdf-gutter) + 62px + 16px); }
.gdf-hd__brand { transition: padding .25s; }
.gdf-hd__main { padding-left: 28px; padding-right: 0; }
.gdf-hd__top .gdf-util__row { padding-right: var(--gdf-gutter); }
.gdf-hd__name strong { font-size: 1.0625rem; }
.gdf-hd__name em { font-size: 1rem; }

@media (max-width: 1280px) {
  .gdf-hd__brand img { width: 116px; height: 116px; }
  .gdf-hd__brand { padding-left: calc(var(--gdf-gutter) + 116px + 16px); padding-right: 24px; }
  .gdf-hd__name strong { font-size: .9375rem; }
  .gdf-hd__main { padding-left: 18px; }
}
@media (max-width: 1160px) {
  .gdf-hd__bar { padding-right: var(--gdf-gutter); }
}
@media (max-width: 760px) {
  .gdf-hd__brand img, .gdf-header.is-condensed .gdf-hd__brand img { position: static; width: 52px; height: 52px; padding: 0; background: none; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { padding: 10px 16px 10px var(--gdf-gutter); }
  .gdf-hd__name strong { font-size: .8125rem; }
  .gdf-hd__name em { font-size: .8125rem; }
}
@media (max-width: 400px) {
  .gdf-hd__brand img, .gdf-header.is-condensed .gdf-hd__brand img { width: 44px; height: 44px; }
  .gdf-hd__name strong { font-size: .78rem; }
}
@media (prefers-reduced-motion: reduce) { .gdf-hd__brand, .gdf-hd__brand img { transition: none; } }

/* ==========================================================================
   PHONE & TABLET MENU v2: floating glass panel (not full screen), app-style
   list without icons, small pill buttons, banner card at the bottom.
   ========================================================================== */
.gdf-mobile {
  top: calc(var(--gdf-mobile-top, 80px) + 10px); bottom: auto; left: 12px; right: 12px; width: auto;
  max-height: calc(100dvh - var(--gdf-mobile-top, 80px) - 22px); overflow-y: auto; overscroll-behavior: contain;
  padding: 10px 8px 12px; border-radius: 22px;
  background: rgba(255, 255, 255, .72);
  -webkit-backdrop-filter: blur(24px) saturate(170%); backdrop-filter: blur(24px) saturate(170%);
  border: 1px solid rgba(255, 255, 255, .6);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .28), 0 0 0 100vmax rgba(10, 10, 10, .32);
  transform-origin: top right;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .gdf-mobile { background: rgba(255, 255, 255, .96); }
}
@media (min-width: 761px) { .gdf-mobile { left: auto; right: 16px; width: 380px; } }
.gdf-mobile.is-open { display: flex; animation: gdf-glass-in .22s cubic-bezier(.2, .8, .2, 1); }
@keyframes gdf-glass-in { from { opacity: 0; transform: scale(.96) translateY(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gdf-mobile.is-open { animation: none; } }

/* List */
.gdf-mobile__nav { padding: 0; }
.gdf-mobile__group + .gdf-mobile__group { border-top: 1px solid rgba(0, 0, 0, .06); }
.gdf-mobile__top {
  min-height: 48px; padding: 0 14px; gap: 10px; border-radius: 12px;
  font-size: 1rem; font-weight: 600; color: #111;
}
.gdf-mobile__top:hover, .gdf-mobile__top:focus-visible { background: rgba(0, 0, 0, .05); }
.gdf-mobile__top[aria-current] { background: rgba(198, 7, 18, .08); color: var(--gdf-red); }
.gdf-mobile__top[aria-expanded="true"] { color: var(--gdf-red); }
.gdf-mobile__sub { padding: 0 0 6px; }
.gdf-mobile__sub a { padding: 8px 14px 8px 26px; font-size: .9375rem; color: #4a463f; border-radius: 10px; }
.gdf-mobile__sub a:hover { background: rgba(0, 0, 0, .05); }

/* Small pill buttons */
.gdf-mobile__cta { display: flex; gap: 8px; margin: 12px 14px 0; }
.gdf-mobile__join, .gdf-mobile__donate {
  flex: 0 0 auto; min-height: 36px; padding: 0 16px; border-radius: 999px;
  font-size: .75rem; font-weight: 800; letter-spacing: .08em;
}

/* Banner card at the bottom */
.gdf-mobile__banner { margin: 14px 14px 0; border-radius: 14px; overflow: hidden; }
.gdf-mobile__banner img { aspect-ratio: 16 / 9; }
.gdf-mobile__foot { margin: 10px 14px 0; padding: 0; }
.gdf-mobile__foot .gdf-social { gap: 16px; }
.gdf-mobile__foot .gdf-social a { font-size: .75rem; color: #57534b; }
@media (max-height: 700px) and (max-width: 760px) {
  .gdf-mobile__top { min-height: 44px; }
  .gdf-mobile__banner img { aspect-ratio: 16 / 7; }
}

/* Photobooth section on phones and tablets: frames first, then the text */
@media (max-width: 860px) {
  .gdf-booth__frames { order: -1; height: 96vw; max-height: 520px; }
  .gdf-booth__grid { gap: var(--s6); }
}

/* ==========================================================================
   SITE-WIDE TYPE & BUTTON SIZING: tighter, calmer, especially on phones
   ========================================================================== */
/* Buttons everywhere */
.gdf-btn, .gdf-tagbtn, .gdf-booth__cta, .gdf-vote__cta, .gdf-elect__cta {
  min-height: 44px; padding: 10px 22px; font-size: .9375rem;
}
.gdf-booth__cta { padding: 10px 26px; }
.gdf-btn--sm { min-height: 38px; padding: 8px 16px; font-size: .875rem; }
.gdf-donate__chips button { min-height: 56px; font-size: 1.125rem; }

/* Intro paragraphs */
.gdf-lead { font-size: 1.125rem; }
.gdf-og__lead { font-size: 1.3125rem; }
.gdf-og__text img { max-width: 340px; height: auto; }

@media (max-width: 760px) {
  body { font-size: .9688rem; }
  h1, .gdf-pagetop h1 { font-size: 1.875rem !important; line-height: 1.12; }
  .gdf-mosaic--full .gdf-mosaic__copy h1 { font-size: 1.9rem !important; }
  h2, .gdf-title { font-size: 1.5rem !important; line-height: 1.2; }
  h3 { font-size: 1.0625rem; }
  .gdf-lead, .gdf-layout__main .gdf-lead, .gdf-booth__why, .gdf-vote__sub, .gdf-donate__copy p:last-child,
  .gdf-fbc__sub, .gdf-mosaic--full .gdf-mosaic__sub { font-size: 1rem !important; line-height: 1.55; }
  .gdf-og__lead { font-size: 1.125rem; }
  .gdf-og__text img { max-width: 240px; }
  .gdf-vision blockquote p { font-size: 1.1875rem; }

  .gdf-btn, .gdf-tagbtn, .gdf-booth__cta, .gdf-vote__cta, .gdf-elect__cta, .gdf-gzb-cta {
    min-height: 42px; padding: 9px 18px; font-size: .875rem;
  }
  .gdf-donate__chips button { min-height: 48px; font-size: .9375rem; }
  .gdf-vote__tile span { width: 56px; height: 62px; font-size: 1.9rem; }
  .gdf-vote__tiles i { line-height: 60px; font-size: 1.4rem; }
  .gdf-vote__days span { font-size: 3rem; }
}

/* ==========================================================================
   APP-STYLE TYPE ON PHONES (all pages): compact sizes and tighter spacing,
   like a native app. Root size drives every rem-based size on the site.
   ========================================================================== */
@media (max-width: 760px) {
  html { font-size: 15px; }
  :root { --s7: 36px; --s8: 48px; --s9: 56px; }
  body { font-size: .9375rem; line-height: 1.55; }

  h1, .gdf-pagetop h1 { font-size: 1.625rem !important; line-height: 1.15; letter-spacing: -.015em; }
  .gdf-mosaic--full .gdf-mosaic__copy h1 { font-size: 1.75rem !important; }
  h2, .gdf-title, .gdf-vote__title, .gdf-donate h2, .gdf-booth h2, .gdf-fbc h2, .gdf-cands h2 {
    font-size: 1.375rem !important; line-height: 1.2; letter-spacing: -.01em;
  }
  h3, .gdf-fightlist h3 { font-size: 1rem !important; }
  p, li, dd, .gdf-lead, .gdf-layout__main .gdf-lead, .gdf-booth__why, .gdf-vote__sub,
  .gdf-donate__copy p:last-child, .gdf-fbc__sub, .gdf-mosaic--full .gdf-mosaic__sub, .gdf-cands__sub {
    font-size: .9375rem !important; line-height: 1.55 !important;
  }
  .gdf-lead { font-weight: 400; }
  blockquote p, .gdf-vision blockquote p, .gdf-quote p, .gdf-declaration, .gdf-pull {
    font-size: 1.0625rem !important; line-height: 1.5 !important;
  }
  .gdf-og__lead { font-size: 1rem !important; }
  .gdf-label, .gdf-cands__eyebrow, .gdf-vote__countlabel, .gdf-donate__eyebrow { font-size: .6875rem !important; letter-spacing: .14em; }
  small, .gdf-small, .gdf-booth__note, .gdf-donate__note { font-size: .75rem !important; }

  .gdf-btn, .gdf-tagbtn, .gdf-booth__cta, .gdf-vote__cta, .gdf-elect__cta {
    min-height: 40px; padding: 8px 16px; font-size: .8125rem !important;
  }
  .gdf-involve__list strong { font-size: .9375rem !important; }
  .gdf-involve__list span { font-size: .8125rem !important; }
  .gdf-involve__list a { padding: 12px 0; }
  .gdf-fightlist > div { padding: 14px 0; }
}

/* Header: wide but not edge to edge. Content sits in a 1480px frame with side
   margins; the black logo panel still bleeds to the left edge of the screen. */
.gdf-hd { max-width: 1480px; margin: 0 auto; padding: 0 var(--gdf-gutter); }
.gdf-hd__brand { padding-left: calc(132px + 22px); }
.gdf-hd__brand::before { display: block; content: ""; position: absolute; top: 0; bottom: 0; right: 100%; width: 100vw; background: #000; }
.gdf-hd__brand img, .gdf-header.is-condensed .gdf-hd__brand img { left: 0; }
.gdf-header.is-condensed .gdf-hd__brand { padding-left: calc(62px + 18px); }
.gdf-hd__top .gdf-util__row { padding-right: 0; }
@media (max-width: 1280px) { .gdf-hd__brand { padding-left: calc(116px + 18px); } }
@media (max-width: 1160px) { .gdf-hd__bar { padding-right: 0; } }
@media (max-width: 760px) {
  .gdf-hd { padding: 0 var(--gdf-gutter) 0 0; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { padding-left: var(--gdf-gutter); }
}

/* Photobooth steps: always one line */
.gdf-booth__steps { display: flex !important; flex-wrap: nowrap; gap: 18px; }
.gdf-booth__steps li { white-space: nowrap; }
@media (max-width: 520px) {
  .gdf-booth__steps { gap: 10px; justify-content: space-between; }
  .gdf-booth__steps li { gap: 6px; font-size: .8125rem !important; }
  .gdf-booth__steps span { flex-basis: 24px; height: 24px; font-size: .75rem; }
}
@media (max-width: 360px) { .gdf-booth__steps { gap: 6px; } .gdf-booth__steps li { gap: 4px; font-size: .75rem !important; } .gdf-booth__steps span { flex-basis: 20px; height: 20px; font-size: .6875rem; } }

/* ==========================================================================
   GAZA MUSIC: billboard artwork + preview player + streaming links
   ========================================================================== */
.gdf-song { background: #f6f3ec; padding: clamp(56px, 7vw, 96px) 0; }
.gdf-song__grid { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: center; max-width: 1040px; }
.gdf-song__art img { display: block; width: clamp(220px, 24vw, 300px); height: auto; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 18px; box-shadow: 0 30px 60px rgba(0, 0, 0, .22); }
.gdf-song .gdf-label { color: var(--gdf-red); }
.gdf-song h2 { margin: 0 0 10px; font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.6rem); font-weight: 900; letter-spacing: -.025em; line-height: 1.08; }
.gdf-song__sub { margin: 0 0 24px; font-size: 1.0625rem; color: #4a463f; }

.gdf-player { display: flex; align-items: center; gap: 16px; max-width: 520px; padding: 14px 18px 14px 14px; border-radius: 16px; background: #000; color: #fff; box-shadow: 0 14px 30px rgba(0, 0, 0, .18); }
.gdf-player audio { display: none; }
.gdf-player__btn { flex: 0 0 52px; height: 52px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--gdf-gold); color: #000; cursor: pointer; transition: transform .15s, background-color .15s; }
.gdf-player__btn:hover { transform: scale(1.06); background: #e3bf55; }
.gdf-player__btn svg { width: 24px; height: 24px; fill: currentColor; }
.gdf-player__i-pause, .gdf-player.is-playing .gdf-player__i-play { display: none; }
.gdf-player.is-playing .gdf-player__i-pause { display: block; }
.gdf-player__body { flex: 1; min-width: 0; }
.gdf-player__meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.gdf-player__title { font-size: .9375rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gdf-player__eq { display: flex; align-items: flex-end; gap: 3px; height: 16px; }
.gdf-player__eq i { width: 3px; height: 4px; border-radius: 2px; background: var(--gdf-gold); }
.gdf-player.is-playing .gdf-player__eq i { animation: gdf-eq .9s ease-in-out infinite; }
.gdf-player.is-playing .gdf-player__eq i:nth-child(2) { animation-delay: -.3s; }
.gdf-player.is-playing .gdf-player__eq i:nth-child(3) { animation-delay: -.6s; }
.gdf-player.is-playing .gdf-player__eq i:nth-child(4) { animation-delay: -.15s; }
@keyframes gdf-eq { 0%, 100% { height: 4px; } 50% { height: 16px; } }
.gdf-player__bar { position: relative; height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .18); cursor: pointer; }
.gdf-player__bar span { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: 3px; background: var(--gdf-gold); }
.gdf-player__bar:focus-visible { outline: 2px solid var(--gdf-gold); outline-offset: 4px; }
.gdf-player__time { display: flex; justify-content: space-between; margin-top: 6px; font-size: .75rem; color: rgba(255, 255, 255, .6); font-variant-numeric: tabular-nums; }

.gdf-song__listen { margin: 22px 0 10px; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #6b675f; }
.gdf-song__links { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.gdf-song__links a {
  display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 18px; border-radius: 999px;
  background: #fff; color: #000; font-size: .875rem; font-weight: 700; text-decoration: none;
  box-shadow: 0 0 0 1px #e3ded2; transition: background-color .15s, color .15s, box-shadow .15s;
}
.gdf-song__links svg { width: 18px; height: 18px; fill: currentColor; }
.gdf-song__links li:nth-child(1) svg { fill: #1db954; }
.gdf-song__links li:nth-child(3) svg { fill: #e62117; }
.gdf-song__links a:hover { background: #000; color: #fff; box-shadow: 0 0 0 1px #000; }
.gdf-song__links a:hover svg { fill: #fff; }

@media (max-width: 760px) {
  .gdf-song__grid { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 24px; }
  .gdf-song__art img { width: min(58vw, 230px); }
  .gdf-player { margin: 0 auto; text-align: left; width: 100%; }
  .gdf-song__links { justify-content: center; }
  .gdf-song__links a { min-height: 38px; padding: 0 14px; font-size: .8125rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gdf-player.is-playing .gdf-player__eq i { animation: none; height: 10px; }
  .gdf-player__btn, .gdf-song__links a { transition: none; }
}

/* Hero headline now lives in the header next to the logo; keep the h1 for
   search engines and screen readers only */
.gdf-vh { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.gdf-hd__name em { font-style: normal; font-weight: 700; color: #fff; letter-spacing: -.005em; white-space: nowrap; }
.gdf-hd__name em b { font-weight: 700; color: var(--gdf-gold); }
.gdf-hd__name strong { font-size: .8125rem; letter-spacing: .14em; color: rgba(255, 255, 255, .7); }
.gdf-hd__name em { margin-top: 3px; font-size: 1.25rem; line-height: 1.15; }
@media (max-width: 1280px) { .gdf-hd__name em { font-size: 1.0625rem; } .gdf-hd__name strong { font-size: .75rem; } }
@media (max-width: 760px) {
  .gdf-hd__name strong { font-size: .6875rem !important; letter-spacing: .1em; }
  .gdf-hd__name em { font-size: .9375rem; white-space: normal; max-width: 12em; }
}

/* Donate block beside Join GAZA at the end of the menu row */
.gdf-hd__donate {
  display: flex; align-items: center; margin-left: auto; padding: 0 26px; background: #000; color: #fff;
  font-size: .875rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; text-decoration: none;
  white-space: nowrap; transition: background-color .15s, color .15s;
}
.gdf-hd__donate:hover { background: var(--gdf-gold); color: #000; }
.gdf-hd__bar { justify-content: flex-start; }
.gdf-hd__bar .gdf-nav { margin-right: auto; }
@media (max-width: 1280px) { .gdf-hd__donate { padding: 0 18px; } }
@media (max-width: 1160px) { .gdf-hd__donate { align-self: stretch; } .gdf-hd__bar .gdf-menubtn { margin-left: 12px; } }
@media (max-width: 760px) { .gdf-hd__donate { display: none; } }
/* Header fit with Donate + Join: tighten on laptops, switch to Menu earlier */
@media (max-width: 1480px) {
  .gdf-hd .gdf-nav__link, .gdf-header.is-condensed .gdf-hd .gdf-nav__link { padding: 0 9px; font-size: .75rem; }
  .gdf-hd .gdf-nav__link::after { left: 9px; right: 9px; }
  .gdf-hd__donate, .gdf-hd__join { padding: 0 18px; font-size: .8125rem; }
  .gdf-hd__name em { font-size: 1.0625rem; }
  .gdf-hd__brand { padding-right: 22px; }
}
@media (max-width: 1320px) {
  .gdf-hd .gdf-nav { display: none; }
  .gdf-hd .gdf-menubtn { display: inline-flex; margin-left: 12px; align-self: center; }
  .gdf-hd__bar { justify-content: flex-end; }
  .gdf-hd__donate, .gdf-hd__join { align-self: stretch; }
  .gdf-hd__donate { margin-left: auto; }
}

/* Header action buttons: segmented style (label + icon block), glossy edge */
.gdf-hd__bar { align-items: center; }
.gdf-hd__bar .gdf-nav { align-self: stretch; }
.gdf-segbtn,
.gdf-hd__donate.gdf-segbtn, .gdf-hd__join.gdf-segbtn {
  align-self: center; display: inline-flex; align-items: stretch; height: 42px; padding: 0; margin-left: 10px;
  border-radius: 8px; overflow: hidden; text-decoration: none; white-space: nowrap;
  font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), inset 0 0 0 1px rgba(255, 255, 255, .14), 0 3px 10px rgba(0, 0, 0, .18);
  transition: transform .15s, box-shadow .15s, filter .15s;
}
.gdf-hd__donate.gdf-segbtn { margin-left: auto; background: linear-gradient(#2a2a2a, #000); }
.gdf-hd__join.gdf-segbtn { background: linear-gradient(#e0262f, #b3060f); }
.gdf-segbtn__label { display: flex; align-items: center; padding: 0 16px; }
.gdf-segbtn__icon { display: grid; place-items: center; width: 40px; background: rgba(255, 255, 255, .16); border-left: 1px solid rgba(255, 255, 255, .22); }
.gdf-hd__donate .gdf-segbtn__icon { background: var(--gdf-gold); border-left: 0; }
.gdf-segbtn__icon svg { width: 18px; height: 18px; fill: none; stroke: #fff; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.gdf-hd__donate .gdf-segbtn__icon svg { fill: #000; stroke: none; }
.gdf-segbtn:hover { transform: translateY(-1px); filter: brightness(1.08); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 0 0 1px rgba(255, 255, 255, .16), 0 8px 18px rgba(0, 0, 0, .22); color: #fff; }
.gdf-hd__donate.gdf-segbtn:hover { background: linear-gradient(#2a2a2a, #000); color: #fff; }
@media (max-width: 1480px) { .gdf-segbtn__label { padding: 0 13px; } .gdf-segbtn__icon { width: 36px; } }
@media (max-width: 1320px) { .gdf-hd__donate.gdf-segbtn, .gdf-hd__join.gdf-segbtn { align-self: center; } }
@media (max-width: 760px) { .gdf-hd__join.gdf-segbtn, .gdf-hd__donate.gdf-segbtn { display: none; } }
@media (prefers-reduced-motion: reduce) { .gdf-segbtn { transition: none; } .gdf-segbtn:hover { transform: none; } }

/* ==========================================================================
   MENU DRAWER: glass panel docked on the left, full screen height
   ========================================================================== */
.gdf-mobile {
  top: 0 !important; bottom: 0 !important; left: 0 !important; right: auto !important;
  width: min(86vw, 380px) !important; max-height: none !important; height: 100dvh;
  border-radius: 0 22px 22px 0; border: 0; border-right: 1px solid rgba(255, 255, 255, .55);
  padding: 0 10px 16px; z-index: 200;
  box-shadow: 18px 0 50px rgba(0, 0, 0, .3), 0 0 0 100vmax rgba(10, 10, 10, .4);
  transform-origin: left center;
}
.gdf-mobile.is-open { animation: gdf-drawer-in .28s cubic-bezier(.2, .8, .2, 1); }
@keyframes gdf-drawer-in { from { transform: translateX(-100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .gdf-mobile.is-open { animation: none; } }

.gdf-mobile__head {
  position: sticky; top: 0; z-index: 1; display: flex; align-items: center; gap: 10px;
  margin: 0 -10px 6px; padding: 14px 16px 12px 18px; border-bottom: 1px solid rgba(0, 0, 0, .07);
  background: rgba(255, 255, 255, .55); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
}
.gdf-mobile__head img { width: 40px; height: 40px; }
.gdf-mobile__head span { flex: 1; font-size: .75rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #6b675f; }
.gdf-mobile__close {
  display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 50%;
  background: rgba(0, 0, 0, .06); cursor: pointer;
}
.gdf-mobile__close:hover { background: rgba(0, 0, 0, .12); }
.gdf-mobile__close svg { width: 18px; height: 18px; fill: none; stroke: #111; stroke-width: 2.2; stroke-linecap: round; }
.gdf-mobile__foot { margin-top: 14px; }

/* Header info line on GAZA gold (runs to the right edge of the screen) */
.gdf-hd__top.gdf-util { position: relative; background: var(--gdf-gold); border-bottom: 0; margin-left: -26px; padding-left: 26px; color: #2a1f05; overflow: visible; }
.gdf-hd__top.gdf-util::after { content: ""; position: absolute; top: 0; bottom: 0; left: 100%; width: 100vw; background: var(--gdf-gold); }
.gdf-hd__top a, .gdf-hd__top .gdf-util__vote { color: #000; }
.gdf-hd__top a:hover { color: #9b2423; }
.gdf-hd__top .gdf-util__vote strong { color: #000; font-weight: 800; }
.gdf-hd__top .gdf-util__sep, .gdf-hd__top .gdf-topbar__days::before { color: rgba(0, 0, 0, .4); }
.gdf-hd__top .gdf-topbar__days { color: #3a2a06; }
.gdf-hd__top .gdf-util__dot { background: #9b2423; box-shadow: 0 0 0 3px rgba(155, 36, 35, .2); }
.gdf-hd__top .gdf-hero2__icons a { color: #000; }
.gdf-hd__top .gdf-hero2__icons a:hover { color: #000; background: rgba(0, 0, 0, .1); }
.gdf-header { overflow-x: clip; }
@media (max-width: 1480px) { .gdf-hd__top.gdf-util { margin-left: -22px; padding-left: 22px; } }
@media (max-width: 1280px) { .gdf-hd__top.gdf-util { margin-left: -18px; padding-left: 18px; } }

/* People icon (gold raised fists) to the left of the crest */
.gdf-hd__brand img.gdf-hd__people,
.gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__people {
  position: absolute; left: 0; top: 50%; transform: translateY(-50%); z-index: 1;
  width: 104px; height: auto; padding: 0; border-radius: 0; background: none; transition: width .25s;
}
.gdf-hd__brand img.gdf-hd__crest { left: 118px; }
.gdf-hd__brand { padding-left: calc(118px + 132px + 22px); }
.gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__people { width: 76px; }
.gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { left: 88px; }
.gdf-header.is-condensed .gdf-hd__brand { padding-left: calc(88px + 62px + 18px); }
@media (max-width: 1480px) {
  .gdf-hd__brand img.gdf-hd__people { width: 88px; }
  .gdf-hd__brand img.gdf-hd__crest { left: 100px; }
  .gdf-hd__brand { padding-left: calc(100px + 132px + 18px); }
}
@media (max-width: 1280px) {
  .gdf-hd__brand { padding-left: calc(100px + 116px + 16px); }
}
/* Wide screens: the icon sits out in the black margin, left of the frame */
@media (min-width: 1760px) {
  .gdf-hd__brand img.gdf-hd__people, .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__people { left: auto; right: 100%; margin-right: 18px; width: 120px; }
  .gdf-hd__brand img.gdf-hd__crest, .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { left: 0; }
  .gdf-hd__brand { padding-left: calc(132px + 22px); }
  .gdf-header.is-condensed .gdf-hd__brand { padding-left: calc(62px + 18px); }
}
@media (max-width: 760px) {
  .gdf-hd__brand img.gdf-hd__people { position: static; transform: none; width: 54px; order: -1; }
  .gdf-hd__brand img.gdf-hd__crest { left: auto; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { padding-left: var(--gdf-gutter); gap: 8px; }
}
@media (max-width: 400px) { .gdf-hd__brand img.gdf-hd__people { width: 40px; } }

/* ==========================================================================
   VISION SECTION: the GAZA song player sits on the red/black panel
   ========================================================================== */
.gdf-vision__music { align-items: center; justify-content: center; padding: 48px 0; }
.gdf-music {
  position: relative; z-index: 2; width: min(100%, 360px); padding: 22px; border-radius: 22px; text-align: center;
  background: rgba(10, 10, 10, .62); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, .12); box-shadow: 0 30px 60px rgba(0, 0, 0, .35); color: #fff;
}
.gdf-vision__music img.gdf-music__art {
  display: block; width: 150px; height: auto; aspect-ratio: 9 / 16; margin: 0 auto 16px; object-fit: cover;
  border-radius: 14px; box-shadow: 0 14px 30px rgba(0, 0, 0, .45);
}
.gdf-music__label { margin: 0 0 6px; font-size: .6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gdf-gold); }
.gdf-music__title { margin: 0 0 14px; font-size: 1.375rem; font-weight: 900; letter-spacing: -.02em; line-height: 1.15; color: #fff; }
.gdf-music .gdf-player { max-width: none; text-align: left; background: rgba(255, 255, 255, .08); box-shadow: none; padding: 10px 14px 10px 10px; }
.gdf-music .gdf-player__btn { flex-basis: 44px; height: 44px; }
.gdf-music__listen { margin: 16px 0 8px; font-size: .6875rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.gdf-music .gdf-song__links { justify-content: center; gap: 8px; }
.gdf-music .gdf-song__links a { min-height: 34px; padding: 0 12px; font-size: .75rem; box-shadow: none; }
@media (max-width: 760px) {
  .gdf-vision__music { padding: 32px 0 40px; }
  .gdf-music { width: min(100%, 340px); }
}
.gdf-music { background: #000; -webkit-backdrop-filter: none; backdrop-filter: none; width: min(100%, 380px); }
.gdf-music .gdf-song__links { flex-wrap: nowrap; }
.gdf-music .gdf-song__links a { padding: 0 11px; gap: 6px; }
.gdf-music .gdf-song__links svg { width: 15px; height: 15px; }
.gdf-music__label, .gdf-music__listen { font-size: .6875rem !important; }
.gdf-music__title { font-size: 1.375rem !important; }

/* Header: larger crest + people icon, the icon touching the crest */
.gdf-hd__brand img.gdf-hd__crest { width: 150px; height: 150px; top: 8px; }
.gdf-hd__brand img.gdf-hd__people { width: 124px; left: 0; z-index: 3; }
.gdf-hd__brand img.gdf-hd__crest { left: 114px; }
.gdf-hd__brand { padding-left: calc(114px + 150px + 20px); }
.gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { width: 66px; height: 66px; top: 6px; left: 74px; }
.gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__people { width: 80px; }
.gdf-header.is-condensed .gdf-hd__brand { padding-left: calc(74px + 66px + 16px); }
@media (max-width: 1480px) {
  .gdf-hd__brand img.gdf-hd__crest { width: 138px; height: 138px; left: 98px; }
  .gdf-hd__brand img.gdf-hd__people { width: 106px; }
  .gdf-hd__brand { padding-left: calc(98px + 138px + 16px); }
}
@media (max-width: 1280px) {
  .gdf-hd__brand img.gdf-hd__crest { width: 124px; height: 124px; left: 92px; }
  .gdf-hd__brand img.gdf-hd__people { width: 100px; }
  .gdf-hd__brand { padding-left: calc(92px + 124px + 16px); }
}
/* Wide screens: the icon extends into the black margin, still touching the crest */
@media (min-width: 1760px) {
  .gdf-hd__brand img.gdf-hd__people, .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__people { left: auto; right: 100%; margin-right: -10px; width: 140px; }
  .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__people { width: 84px; }
  .gdf-hd__brand img.gdf-hd__crest, .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { left: 0; }
  .gdf-hd__brand { padding-left: calc(150px + 22px); }
  .gdf-header.is-condensed .gdf-hd__brand { padding-left: calc(66px + 18px); }
}
@media (max-width: 760px) {
  .gdf-hd__brand img.gdf-hd__people { width: 60px; margin-right: -14px; position: relative; z-index: 3; }
  .gdf-hd__brand img.gdf-hd__crest, .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { width: 56px; height: 56px; left: auto; top: auto; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { padding-left: 10px; }
}
@media (max-width: 400px) {
  .gdf-hd__brand img.gdf-hd__people { width: 46px; margin-right: -12px; }
  .gdf-hd__brand img.gdf-hd__crest, .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { width: 48px; height: 48px; }
}

/* Header name + tagline: smaller */
.gdf-hd__name strong { font-size: .6875rem !important; letter-spacing: .14em; }
.gdf-hd__name em { font-size: .9375rem !important; margin-top: 2px; }
@media (max-width: 1480px) { .gdf-hd__name em { font-size: .875rem !important; } }
@media (max-width: 760px) {
  .gdf-hd__name strong { font-size: .5625rem !important; }
  .gdf-hd__name em { font-size: .75rem !important; max-width: 13em; }
  /* phone: people icon in line with the crest (not hanging below) */
  .gdf-hd__brand img.gdf-hd__people { position: relative; top: auto; left: auto; transform: none; align-self: center; }
}

/* ==========================================================================
   HERO SLIDER: three photographs, each with its own white message on the
   right over a dark gradient. Photo cross-fades with a slow zoom; the
   message slides in from the right.
   ========================================================================== */
.gdf-hs { position: relative; background: #000; }
.gdf-hs__stage { position: relative; height: clamp(520px, 78vh, 760px); overflow: hidden; }
.gdf-hs .gdf-slides, .gdf-hs .gdf-slide { position: absolute; inset: 0; }
.gdf-hs .gdf-slide { opacity: 0; transition: opacity 1.1s ease; }
.gdf-hs .gdf-slide.is-active { opacity: 1; }
.gdf-hs .gdf-slide img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 40%; }
.gdf-hs .gdf-slide.is-active img { animation: gdf-hs-zoom 8s ease-out both; }
@keyframes gdf-hs-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }

.gdf-hs__shade {
  position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(to left, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, .78) 30%, rgba(0, 0, 0, .35) 55%, rgba(0, 0, 0, 0) 72%),
    linear-gradient(to top, rgba(0, 0, 0, .45), rgba(0, 0, 0, 0) 35%);
}
.gdf-hs__copy {
  position: absolute; z-index: 2; top: 50%; right: max(var(--gdf-gutter), calc((100vw - 1240px) / 2));
  transform: translateY(-50%); width: min(560px, 46vw); color: #fff;
}
.gdf-hs__caps { position: relative; display: grid; }
.gdf-hs__cap {
  grid-area: 1 / 1; opacity: 0; transform: translateX(40px); visibility: hidden;
  transition: opacity .7s ease, transform .9s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .9s;
}
.gdf-hs__cap.is-active { opacity: 1; transform: none; visibility: visible; transition-delay: .25s, .25s, 0s; }
.gdf-hs__num { margin: 0 0 14px; font-size: .8125rem; font-weight: 700; letter-spacing: .18em; color: rgba(255, 255, 255, .7); }
.gdf-hs__num span { color: var(--gdf-gold); }
.gdf-hs__title {
  margin: 0 0 14px; color: #fff; font-size: clamp(1.9rem, 1.1rem + 2.4vw, 3.3rem) !important;
  font-weight: 900; line-height: 1.04; letter-spacing: -.02em; text-transform: uppercase;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .35);
}
.gdf-hs__sub { margin: 0; font-size: 1.125rem !important; line-height: 1.5; color: rgba(255, 255, 255, .92); max-width: 38ch; }
.gdf-hs__actions { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 12px; }
.gdf-hs__ctl { position: absolute; z-index: 3; top: 24px; right: max(var(--gdf-gutter), calc((100vw - 1240px) / 2)); bottom: auto; display: flex; gap: 6px; }

@media (max-width: 900px) {
  .gdf-hs__copy { width: min(480px, 60vw); }
}
@media (max-width: 640px) {
  .gdf-hs__stage { height: min(86vh, 640px); }
  .gdf-hs .gdf-slide img { object-position: 50% 35%; }
  .gdf-hs__shade { background: linear-gradient(to top, rgba(0, 0, 0, .92) 0%, rgba(0, 0, 0, .7) 38%, rgba(0, 0, 0, 0) 68%); }
  .gdf-hs__copy { top: auto; bottom: 28px; transform: none; left: var(--gdf-gutter); right: var(--gdf-gutter); width: auto; text-align: left; }
  .gdf-hs__cap { transform: translateX(24px); }
  .gdf-hs__title { font-size: 1.6rem !important; }
  .gdf-hs__sub { font-size: .9375rem !important; }
  .gdf-hs__actions { margin-top: 18px; }
  .gdf-hs__ctl { top: 16px; right: var(--gdf-gutter); }
}
@media (prefers-reduced-motion: reduce) {
  .gdf-hs .gdf-slide, .gdf-hs__cap { transition: none; }
  .gdf-hs .gdf-slide.is-active img { animation: none; }
}
/* Captions stack in one cell; align them to the bottom so the buttons never jump */
.gdf-hs__caps { align-items: end; }

/* Small phones: icon-only Menu button so the header always fits */
@media (max-width: 440px) {
  .gdf-hd .gdf-menubtn { padding: 0; width: 44px; justify-content: center; margin-left: 6px; }
  .gdf-hd .gdf-menubtn [data-gdf-burger-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .gdf-hd__bar { padding-right: 10px !important; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { padding-right: 10px; }
}
@media (max-width: 345px) { .gdf-hd__brand img.gdf-hd__people { display: none; } }

/* Home ribbon: back between the hero (1) and the gold election strip (2) */
.gdf-elect { position: relative; padding-top: calc(var(--gdf-ribbon-h) / 2 + 4px); padding-bottom: 0; }
.gdf-elect > .gdf-ribbon { z-index: 4; }
.gdf-elect__mark--ballot, .gdf-vote__art { position: relative; z-index: 6; }
.gdf-cands { padding-top: var(--s8); }
@media (max-width: 640px) { .gdf-hs__copy { bottom: calc(var(--gdf-ribbon-h) / 2 + 22px); } }

/* Hero on phones: the Mobile Hero images at their own 1920 x 1200 shape,
   text on the right over a fade from the right, as on desktop */
@media (max-width: 640px) {
  .gdf-hs__stage { height: auto; aspect-ratio: 1920 / 1200; min-height: 0; }
  .gdf-hs .gdf-slide img { object-position: 50% 50%; }
  .gdf-hs__shade { background: linear-gradient(to left, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, .72) 34%, rgba(0, 0, 0, .25) 58%, rgba(0, 0, 0, 0) 75%); }
  .gdf-hs__copy { top: 50%; bottom: auto; transform: translateY(-50%); left: auto; right: 14px; width: 48%; }
  .gdf-hs__cap { transform: translateX(20px); }
  .gdf-hs__num { margin: 0 0 4px; font-size: .5625rem !important; }
  .gdf-hs__title { margin: 0 0 5px; font-size: .9375rem !important; line-height: 1.1; text-shadow: none; }
  .gdf-hs__sub { font-size: .6875rem !important; line-height: 1.35 !important; }
  .gdf-hs__actions { display: none; }
  .gdf-hs__ctl { top: auto; bottom: calc(var(--gdf-ribbon-h) / 2 + 6px); right: 12px; gap: 4px; }
  .gdf-hs__ctl button { width: 7px; height: 7px; min-width: 0; padding: 0; border-radius: 50%; font-size: 0; border: 0; background: rgba(255, 255, 255, .5); }
  .gdf-hs__ctl button[aria-current] { width: 18px; border-radius: 4px; background: var(--gdf-gold); }
  .gdf-hs__ctl button:last-child { display: none; }
}

/* Hero: Vote GAZA tag replaces the two buttons */
.gdf-hs__tag { display: inline-block; margin-top: 26px; border-radius: 4px; transition: transform .2s; }
.gdf-hs__tag img { display: block; width: min(380px, 100%); height: auto; box-shadow: 0 14px 30px rgba(0, 0, 0, .35); }
.gdf-hs__tag:hover { transform: translateY(-2px); }
@media (max-width: 640px) {
  .gdf-hs__tag { margin-top: 8px; }
  .gdf-hs__tag img { width: 150px; box-shadow: 0 6px 14px rgba(0, 0, 0, .35); }
}
@media (prefers-reduced-motion: reduce) { .gdf-hs__tag { transition: none; } }

/* ==========================================================================
   MENU DRAWER v3: dark app sidebar (left, full height)
   ========================================================================== */
.gdf-mobile.gdf-dr {
  display: none; flex-direction: column; padding: 0; gap: 0;
  background: #1c1c1c; color: #e8e6e1; border-right: 1px solid rgba(255, 255, 255, .06); border-radius: 0 18px 18px 0;
  -webkit-backdrop-filter: none; backdrop-filter: none; overflow: hidden;
}
.gdf-mobile.gdf-dr.is-open { display: flex; }
.gdf-dr__head { display: flex; align-items: center; justify-content: space-between; padding: 16px 16px 12px 18px; }
.gdf-dr__brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.gdf-dr__brand img { width: 34px; height: 34px; }
.gdf-dr__brand span { font-size: 1.25rem; font-weight: 800; letter-spacing: .02em; color: var(--gdf-gold); }
.gdf-dr__close { display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 9px; background: transparent; cursor: pointer; }
.gdf-dr__close:hover { background: rgba(255, 255, 255, .08); }
.gdf-dr__close svg { width: 22px; height: 22px; fill: none; stroke: #cfcac0; stroke-width: 1.7; stroke-linecap: round; }

.gdf-dr__nav { flex: 1; overflow-y: auto; padding: 4px 10px 10px; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #3a3a3a transparent; }
.gdf-dr__list { display: grid; gap: 1px; }
.gdf-dr__item {
  display: flex; align-items: center; gap: 12px; min-height: 40px; padding: 0 10px; border-radius: 9px;
  font-size: .9375rem; font-weight: 400; color: #e8e6e1; text-decoration: none;
}
.gdf-dr__item:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.gdf-dr__item[aria-current] { background: rgba(255, 255, 255, .1); color: #fff; font-weight: 500; }
.gdf-dr__item .gdf-mobile__icon { width: 19px; height: 19px; flex: 0 0 19px; fill: none; stroke: #cfcac0; stroke-width: 1.7; }
.gdf-dr__item--join { color: var(--gdf-gold); font-weight: 600; }
.gdf-dr__plus { display: grid; place-items: center; width: 22px; height: 22px; flex: 0 0 22px; border-radius: 50%; background: var(--gdf-gold); color: #1c1c1c; font-size: 1rem; font-weight: 800; line-height: 1; }
.gdf-dr__rule { margin: 10px 4px; border: 0; border-top: 1px solid rgba(255, 255, 255, .08); }
.gdf-dr__label { margin: 12px 10px 6px; font-size: .8125rem; font-weight: 500; color: #9b968c; letter-spacing: 0; text-transform: none; }
.gdf-dr__list + .gdf-dr__label { margin-top: 16px; }

.gdf-dr__banner { display: block; margin: 6px 14px 12px; border-radius: 12px; overflow: hidden; flex: 0 0 auto; }
.gdf-dr__banner img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.gdf-dr__foot { display: flex; align-items: center; gap: 10px; padding: 12px 16px 16px; border-top: 1px solid rgba(255, 255, 255, .08); flex: 0 0 auto; }
.gdf-dr__foot img { width: 40px; height: 40px; border-radius: 50%; }
.gdf-dr__foot span:not(.gdf-dr__badge) { display: grid; min-width: 0; font-size: .75rem; color: #9b968c; }
.gdf-dr__foot strong { font-size: .875rem; font-weight: 600; color: #fff; }
.gdf-dr__foot a { color: #9b968c; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gdf-dr__badge { margin-left: auto; padding: 2px 7px; border-radius: 5px; background: var(--gdf-red); color: #fff; font-size: .625rem; font-weight: 800; letter-spacing: .06em; }
@media (max-height: 700px) { .gdf-dr__banner img { aspect-ratio: 16 / 7; } .gdf-dr__item { min-height: 36px; } }

/* Menu button: 3D square key with a vertical three-dot icon */
.gdf-hd .gdf-menubtn {
  width: 46px; height: 46px; min-height: 0; padding: 0; justify-content: center; align-self: center; margin-left: 10px;
  border: 0; border-radius: 12px; color: #1c1c1c;
  background: linear-gradient(#ffffff, #ebe8e1);
  box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(0, 0, 0, .08), 0 0 0 1.5px #2b2b2b, 0 4px 0 #2b2b2b, 0 7px 14px rgba(0, 0, 0, .22);
  transform: translateY(-2px); transition: transform .1s, box-shadow .1s;
}
.gdf-hd .gdf-menubtn:hover { background: linear-gradient(#fff, #f3f1ec); }
.gdf-hd .gdf-menubtn:active, .gdf-hd .gdf-menubtn[aria-expanded="true"] {
  transform: translateY(2px);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, .12), 0 0 0 1.5px #2b2b2b, 0 0 0 #2b2b2b, 0 2px 6px rgba(0, 0, 0, .18);
}
.gdf-menubtn__dots { width: 22px; height: 22px; fill: currentColor; }
.gdf-hd .gdf-menubtn .gdf-menubtn__bars { display: none; }
@media (max-width: 440px) { .gdf-hd .gdf-menubtn { width: 42px; height: 42px; } }
@media (prefers-reduced-motion: reduce) { .gdf-hd .gdf-menubtn { transition: none; } }

/* Menu: clear chevron on items with a dropdown; flips when open */
.gdf-hd .gdf-nav__link { gap: 5px; }
.gdf-hd .gdf-nav__caret {
  width: 11px; height: 11px; flex: 0 0 11px; opacity: 1;
  fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round;
  transition: transform .2s ease;
}
.gdf-hd .gdf-nav__item--menu:hover .gdf-nav__caret,
.gdf-hd .gdf-nav__item--menu:focus-within .gdf-nav__caret { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .gdf-hd .gdf-nav__caret { transition: none; } }

/* Phones: all-black header, no people icon */
@media (max-width: 760px) {
  .gdf-header, .gdf-hd, .gdf-hd__main, .gdf-hd__bar { background: #000; }
  .gdf-header { border-bottom-color: #000; }
  .gdf-hd__brand img.gdf-hd__people { display: none; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { padding-left: var(--gdf-gutter); }
  .gdf-hd__name strong { white-space: nowrap; }
  .gdf-hd .gdf-menubtn { box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(0, 0, 0, .08), 0 4px 0 #8c877c, 0 7px 14px rgba(0, 0, 0, .5); }
  .gdf-hd .gdf-menubtn:active, .gdf-hd .gdf-menubtn[aria-expanded="true"] { box-shadow: inset 0 2px 4px rgba(0, 0, 0, .15), 0 0 0 #8c877c; }
}
/* Drawer: banner fills the bottom edge to edge, square corners */
.gdf-dr__banner { margin: 8px 0 0; border-radius: 0; }
.gdf-dr__banner img { border-radius: 0; }
.gdf-mobile.gdf-dr { border-radius: 0 18px 0 0; }

/* Phones: slim top strip (tagline + social icons) above the black header bar */
.gdf-hd__mtop { display: none; }
@media (max-width: 760px) {
  .gdf-hd__mtop {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    height: 30px; padding: 0 var(--gdf-gutter); background: #111; border-bottom: 1px solid rgba(255, 255, 255, .08);
    transition: height .2s, opacity .2s; overflow: hidden;
  }
  .gdf-hd__mtop p { margin: 0; font-size: .6875rem !important; font-weight: 600; line-height: 1 !important; color: #fff; white-space: nowrap; letter-spacing: .01em; }
  .gdf-hd__mtop b { color: var(--gdf-gold); font-weight: 600; }
  .gdf-hd__mtop .gdf-hero2__icons { display: flex; gap: 2px; }
  .gdf-hd__mtop .gdf-hero2__icons a { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 6px; color: #cfcac0; background: none; }
  .gdf-hd__mtop .gdf-hero2__icons a:hover { color: var(--gdf-gold); background: rgba(255, 255, 255, .06); }
  .gdf-hd__mtop .gdf-hero2__icons svg { width: 13px; height: 13px; fill: currentColor; }
  .gdf-header.is-condensed .gdf-hd__mtop { height: 0; opacity: 0; border-bottom: 0; }
  /* main bar: crest + name only */
  .gdf-hd__name em { display: none; }
  .gdf-hd__name strong { font-size: .75rem !important; letter-spacing: .12em; color: #fff; }
}
/* Drawer: pure black */
.gdf-mobile.gdf-dr { background: #000; border-right-color: rgba(255, 255, 255, .08); }
.gdf-dr__item:hover { background: rgba(255, 255, 255, .07); }
.gdf-dr__item[aria-current] { background: rgba(255, 255, 255, .12); }
.gdf-dr__plus { color: #000; }
.gdf-dr__nav { scrollbar-color: #333 transparent; }
/* Drawer header: social icons beside the close button */
.gdf-dr__head { gap: 8px; }
.gdf-dr__brand { margin-right: auto; }
.gdf-dr__social .gdf-hero2__icons { display: flex; gap: 2px; }
.gdf-dr__social a { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; color: #cfcac0; background: none; }
.gdf-dr__social a:hover { color: var(--gdf-gold); background: rgba(255, 255, 255, .08); }
.gdf-dr__social svg { width: 15px; height: 15px; fill: currentColor; }
.gdf-dr__social + .gdf-dr__close { margin-left: 2px; border-left: 0; }
/* Phones: no ribbon between the hero and the gold strip */
@media (max-width: 640px) {
  .gdf-elect > .gdf-ribbon { display: none; }
  .gdf-elect { padding-top: 0; }
  .gdf-hs__ctl { bottom: 10px; }
  .gdf-hs__copy { bottom: auto; }
}

/* Phones: the Mobile wave joins the black header to the hero photo */
.gdf-hs__mwave { display: none; }
@media (max-width: 640px) {
  .gdf-hs__mwave { display: block; position: absolute; z-index: 4; top: -1px; left: 0; width: 100%; height: auto; pointer-events: none; }
  .gdf-hs__copy { top: auto; bottom: 14px; transform: none; }
}
@media (max-width: 640px) {
  /* black band under the header holds the top of the wave; the photo starts
     under the coloured ribbons so the wave never covers the slide text */
  .gdf-hs { padding-top: calc(100vw * 217 / 794 * .5); background: #000; }
  .gdf-hs__mwave { top: 0; }
}
@media (max-width: 380px) {
  .gdf-hs__copy { width: 52%; bottom: 10px; }
  .gdf-hs__title { font-size: .8125rem !important; }
  .gdf-hs__sub { font-size: .625rem !important; }
  .gdf-hs__tag img { width: 120px; }
  .gdf-hs__num { display: none; }
}
@media (max-width: 640px) {
  /* wave sits higher: its black top tucks up against the header */
  .gdf-hs { padding-top: calc(100vw * 217 / 794 * .3); overflow: hidden; }
  .gdf-hs__mwave { top: calc(100vw * 217 / 794 * -.2); }
}

/* ==========================================================================
   PHONES: header as in the sketch: menu button left, large crest right that
   hangs over the (flattened) wave; no name text in the bar.
   ========================================================================== */
@media (max-width: 640px) {
  .gdf-hd { display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; min-height: 64px; padding: 0 var(--gdf-gutter); overflow: visible; }
  .gdf-hd__main { padding: 0; }
  .gdf-hd__bar { min-height: 64px; justify-content: flex-start; padding: 0 !important; }
  .gdf-hd .gdf-menubtn { margin-left: 0; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { padding: 0; background: none; position: relative; z-index: 6; align-self: flex-start; }
  .gdf-hd__brand::before { display: none; }
  .gdf-hd__name { display: none; }
  .gdf-hd__brand img.gdf-hd__crest,
  .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest {
    position: relative; left: auto; top: 6px; width: 96px; height: 96px; margin-bottom: -38px;
    padding: 0; background: none; border-radius: 50%; box-shadow: 0 8px 18px rgba(0, 0, 0, .45);
    transition: width .25s, height .25s, margin .25s;
  }
  .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { width: 52px; height: 52px; top: 6px; margin-bottom: 0; }
  .gdf-header { overflow: visible; }

  /* flatter wave: same artwork, squashed vertically so it runs nearly straight */
  .gdf-hs__mwave { height: calc(100vw * 217 / 794 * .62); object-fit: fill; top: calc(100vw * 217 / 794 * -.1); }
  .gdf-hs { padding-top: calc(100vw * 217 / 794 * .26); }
}
@media (max-width: 380px) {
  .gdf-hd__brand img.gdf-hd__crest { width: 84px; height: 84px; margin-bottom: -32px; }
}
@media (max-width: 640px) {
  .gdf-hd__brand img.gdf-hd__crest { width: 112px; height: 112px; margin-bottom: -58px; top: 8px; }
}
@media (max-width: 380px) {
  .gdf-hd__brand img.gdf-hd__crest { width: 96px; height: 96px; margin-bottom: -46px; }
}
.gdf-menubtn__dots { width: 24px; height: 24px; fill: #1f2a44; }
/* Phones: Mobile Wave Header artwork used as is (2000 x 543) */
@media (max-width: 640px) {
  .gdf-hs__mwave { height: auto; object-fit: initial; top: calc(100vw * 543 / 2000 * -.1); }
  .gdf-hs { padding-top: calc(100vw * 543 / 2000 * .32); }
}
@media (max-width: 640px) {
  /* wave higher under the header */
  .gdf-hs__mwave { top: calc(100vw * 543 / 2000 * -.24); }
  .gdf-hs { padding-top: calc(100vw * 543 / 2000 * .18); }
  /* crest moved left by 40% of the screen width */
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { margin-right: 40vw; }
  .gdf-hd__brand img.gdf-hd__crest { left: auto; }
}
@media (max-width: 640px) { .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { margin-right: 24vw; } }

/* ==========================================================================
   NO TINTED "CARD" PANELS anywhere: content sits directly on the page
   ========================================================================== */
.gdf-stand__rise, .gdf-stand__against, .gdf-fb--live, .gdf-fbc__empty, .gdf-alert, .gdf-sidecontact, .gdf-sidevote {
  background: none !important; border-radius: 0 !important; box-shadow: none !important;
}
.gdf-stand__rise { padding: 0; margin-top: var(--s5); }
.gdf-stand__against { padding: 0; }
.gdf-fbc__empty { padding: 0; }
.gdf-countpanel { background: none; color: inherit; padding: 0; }
.gdf-countpanel .gdf-eyebrow { color: var(--gdf-red); }

/* Phones: crest in the middle, plain white three-dot menu icon on the black to its right */
@media (max-width: 640px) {
  .gdf-hd { flex-direction: row; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { margin: 0 auto 0 calc(50% - 56px); }
  .gdf-hd__main { margin-left: auto; }
  .gdf-hd__bar { justify-content: flex-end; }
  .gdf-hd .gdf-menubtn,
  .gdf-hd .gdf-menubtn:active, .gdf-hd .gdf-menubtn[aria-expanded="true"] {
    width: 44px; height: 44px; margin: 0; border-radius: 50%; background: none; box-shadow: none; transform: none; color: #fff;
  }
  .gdf-hd .gdf-menubtn:hover, .gdf-hd .gdf-menubtn[aria-expanded="true"] { background: rgba(255, 255, 255, .1); }
  .gdf-hd .gdf-menubtn .gdf-menubtn__dots { width: 28px; height: 28px; fill: #fff; }
}
@media (max-width: 380px) { .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { margin-left: calc(50% - 48px); } }
@media (max-width: 640px) {
  /* keep the whole wave visible: only its plain black top is tucked away */
  .gdf-hs__mwave { top: calc(100vw * 543 / 2000 * -.13); }
  .gdf-hs { padding-top: calc(100vw * 543 / 2000 * .29); }
}

/* Phones (home): the wave now hangs from the bottom of the header, 50% higher,
   so it is never clipped; it fades away once the header condenses on scroll */
.gdf-hd__mwave { display: none; }
@media (max-width: 640px) {
  .gdf-hs__mwave { display: none !important; }
  .gdf-hs { padding-top: 0; }
  .gdf-header--home .gdf-hd__mwave {
    display: block; position: absolute; left: 0; width: 100%; height: auto; z-index: 1; pointer-events: none;
    top: calc(100% - 100vw * 543 / 2000 * .45); transition: opacity .25s;
  }
  .gdf-header--home .gdf-hd { position: relative; z-index: 2; }
  .gdf-header--home.is-condensed .gdf-hd__mwave { opacity: 0; }
}
@media (max-width: 640px) {
  .gdf-header--home .gdf-hd, .gdf-header--home .gdf-hd__main, .gdf-header--home .gdf-hd__bar { background: transparent; }
  .gdf-header--home .gdf-hd__mtop { position: relative; z-index: 3; }
}

/* ==========================================================================
   NO TINTED HOVER / HIGHLIGHT BACKGROUNDS anywhere: colour change only
   ========================================================================== */
.gdf-mega__link, .gdf-mega__link:hover, .gdf-mega__link[aria-current] { background: none !important; border-radius: 0; }
.gdf-mega__link:hover strong, .gdf-mega__link[aria-current] strong { color: var(--gdf-red); }
.gdf-mega__link:hover span { color: #3d3a35; }

.gdf-dr__item, .gdf-dr__item:hover, .gdf-dr__item[aria-current] { background: none !important; }
.gdf-dr__item:hover { color: var(--gdf-gold); }
.gdf-dr__item[aria-current] { color: var(--gdf-gold); font-weight: 600; }
.gdf-dr__item[aria-current] .gdf-mobile__icon, .gdf-dr__item:hover .gdf-mobile__icon { stroke: var(--gdf-gold); }
.gdf-dr__close:hover, .gdf-dr__social a:hover, .gdf-hd__mtop .gdf-hero2__icons a:hover,
.gdf-hd__top .gdf-hero2__icons a:hover, .gdf-util .gdf-hero2__icons a:hover,
.gdf-hd .gdf-menubtn:hover, .gdf-mobile__top:hover, .gdf-mobile__top[aria-current],
.gdf-mobile__sub a:hover, .gdf-sidenav a:hover { background: none !important; }

/* Dropdown feature card: bigger X */
.gdf-mega__feature img { width: 150px; margin: -6px 0 auto -6px; }
/* Phones: crest aligned to the left edge, menu dots on the right */
@media (max-width: 640px) {
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { margin: 0 auto 0 0 !important; }
}
/* Wave Mobile artwork: full width, natural height (no squash, no crop) */
@media (max-width: 640px) { .gdf-header--home .gdf-hd__mwave { width: 100%; height: auto; object-fit: initial; } }
/* Phones: crest 20% smaller */
@media (max-width: 640px) { .gdf-hd__brand img.gdf-hd__crest { width: 90px; height: 90px; margin-bottom: -40px; top: 8px; } }
@media (max-width: 380px) { .gdf-hd__brand img.gdf-hd__crest { width: 77px; height: 77px; margin-bottom: -32px; } }
/* Phones: tagline moves into the black header, between the crest and the menu dots */
@media (max-width: 640px) {
  .gdf-hd__mtop p { display: none; }
  .gdf-hd__mtop { justify-content: flex-end; }
  .gdf-hd__brand { display: flex !important; align-items: center; gap: 10px; }
  .gdf-hd__name { display: block !important; align-self: center; margin-top: 4px; }
  .gdf-hd__name strong { display: none; }
  .gdf-hd__name em { display: block !important; margin: 0; font-size: .8125rem !important; font-weight: 700; line-height: 1.2; color: #fff; white-space: nowrap; max-width: none; }
  .gdf-hd__name em b { color: var(--gdf-gold); }
}
@media (max-width: 360px) { .gdf-hd__name em { font-size: .6875rem !important; } }
/* Gold strip message on tablets and phones: smaller, balanced lines */
.gdf-vote__title { text-wrap: balance; }
.gdf-vote__sub { text-wrap: balance; }
.gdf-vote__nb { white-space: nowrap; }
@media (max-width: 1100px) {
  .gdf-vote__title { font-size: 1.75rem !important; max-width: 20ch; }
  .gdf-vote__sub { font-size: .9375rem !important; }
}
@media (max-width: 700px) {
  .gdf-vote__title { font-size: 1.25rem !important; line-height: 1.2 !important; max-width: 19ch; margin: 0 auto 6px; letter-spacing: -.01em; }
  .gdf-vote__sub { font-size: .8125rem !important; line-height: 1.45 !important; max-width: 32ch; margin: 0 auto; color: #2a1f05; }
}
@media (max-width: 700px) {
  .gdf-vote__tiles { gap: 3px; }
  .gdf-vote__tile span { width: 52px; height: 58px; font-size: 1.7rem; }
  .gdf-vote__tiles i { line-height: 56px; font-size: 1.2rem; }
  .gdf-vote__tile small { font-size: .5625rem; letter-spacing: .1em; }
}
/* Tablets (761-1100px): compact brand block so Donate, Join and Menu fit */
@media (min-width: 761px) and (max-width: 1100px) {
  .gdf-hd__brand img.gdf-hd__people { display: none; }
  .gdf-hd__brand img.gdf-hd__crest { left: 0; width: 104px; height: 104px; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { padding-left: calc(104px + 14px); padding-right: 16px; }
  .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { left: 0; }
  .gdf-hd__name strong { font-size: .625rem !important; }
  .gdf-hd__name em { font-size: .8125rem !important; white-space: normal; max-width: 10em; }
  .gdf-hd__main { padding-left: 14px; }
  .gdf-hd__top .gdf-util__right a[href^="mailto:"], .gdf-hd__top .gdf-topbar__days { display: none; }
  .gdf-segbtn__label { padding: 0 11px; font-size: .75rem; }
  .gdf-segbtn__icon { width: 32px; }
  .gdf-hd__donate.gdf-segbtn, .gdf-hd__join.gdf-segbtn { margin-left: 8px; }
}

/* Menu icon: three staggered lines (navy on the 3D key, white on the phone header) */
.gdf-menubtn__dots { fill: none !important; stroke: #1f2a44; stroke-width: 2.4; stroke-linecap: round; }
@media (max-width: 640px) { .gdf-hd .gdf-menubtn .gdf-menubtn__dots { stroke: #fff; } }

/* Drawer opens from the RIGHT */
.gdf-mobile.gdf-dr {
  left: auto !important; right: 0 !important;
  border-radius: 18px 0 0 0; border-right: 0; border-left: 1px solid rgba(255, 255, 255, .08);
  box-shadow: -18px 0 50px rgba(0, 0, 0, .3), 0 0 0 100vmax rgba(10, 10, 10, .4);
  transform-origin: right center;
}
.gdf-mobile.gdf-dr.is-open { animation: gdf-drawer-in-r .28s cubic-bezier(.2, .8, .2, 1); }
@keyframes gdf-drawer-in-r { from { transform: translateX(100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .gdf-mobile.gdf-dr.is-open { animation: none; } }
/* Phones: gold-strip headline uses the full width */
@media (max-width: 700px) {
  .gdf-vote__message { width: 100%; }
  .gdf-vote__title { max-width: none !important; width: 100%; text-wrap: balance; }
  .gdf-vote__sub { max-width: none !important; }
}
/* Phones: larger crest that grows upward (bottom edge stays where it was) */
@media (max-width: 640px) {
  .gdf-hd__brand { z-index: 7; }
  .gdf-hd__brand img.gdf-hd__crest { width: 112px; height: 112px; top: -14px; margin-bottom: -40px; }
  .gdf-hd__mtop { position: relative; z-index: 1; }
}
@media (max-width: 380px) { .gdf-hd__brand img.gdf-hd__crest { width: 96px; height: 96px; top: -12px; margin-bottom: -32px; } }
@media (max-width: 640px) { .gdf-header .gdf-hd__mtop, .gdf-header--home .gdf-hd__mtop { z-index: 1; } .gdf-header .gdf-hd, .gdf-header--home .gdf-hd { position: relative; z-index: 5; } }

/* Footer: Vote GAZA tag replaces the X + date block */
.gdf-footer__tag { display: block; flex: 0 0 auto; margin-left: auto; }
.gdf-footer__tag img { display: block; width: 340px; max-width: 100%; height: auto; }
@media (max-width: 760px) { .gdf-footer__tag { margin: 18px 0 0; } .gdf-footer__tag img { width: min(300px, 100%); } }
@media (max-width: 760px) {
  .gdf-footer__top { display: grid !important; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 14px; }
  .gdf-footer__top > div { text-align: left; }
  .gdf-footer__tag { grid-column: 1 / -1; margin: 12px 0 0; }
}

/* Election strip: white with a faded GAZA lion watermark */
.gdf-elect { background: #fff; color: #000; overflow: hidden; }
.gdf-elect::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  right: -60px; top: 50%; width: min(560px, 60vw); aspect-ratio: 900 / 805; transform: translateY(-50%);
  background: url("../img/brand/wm-lion-ink.webp") no-repeat center / contain; opacity: .06;
}
.gdf-elect > .gdf-container { position: relative; z-index: 2; }
.gdf-vote__countlabel, .gdf-vote__tile small, .gdf-vote__time, .gdf-vote__when { color: #6b675f; }
.gdf-vote__tiles i { color: #000; opacity: .35; }
.gdf-vote__sub { color: #3d3a35; }
@media (max-width: 700px) {
  .gdf-elect::before { right: -90px; top: 32%; width: 340px; opacity: .05; }
}
/* Longer headline: uppercase, a little smaller so it stays balanced */
.gdf-vote__title { text-transform: uppercase; font-size: clamp(1.4rem, 1rem + 1.3vw, 2.1rem) !important; line-height: 1.1 !important; max-width: 24ch; }
@media (max-width: 1100px) { .gdf-vote__title { font-size: 1.5rem !important; } }
@media (max-width: 700px) { .gdf-vote__title { font-size: 1.125rem !important; line-height: 1.2 !important; max-width: none; } }
@media (min-width: 701px) { .gdf-vote__title { max-width: 30ch; } }

/* ==========================================================================
   CONSISTENT SPACING: 70px above and below the content of every section
   ========================================================================== */
:root { --gdf-sec: 70px; }
.gdf-cands, .gdf-stand, .gdf-stand--compact, .gdf-booth, .gdf-fbc, .gdf-og, .gdf-section--page {
  padding-top: var(--gdf-sec) !important; padding-bottom: var(--gdf-sec) !important;
}
.gdf-vision { padding-top: var(--gdf-sec) !important; padding-bottom: 0 !important; }
.gdf-vision__text { padding-bottom: var(--gdf-sec) !important; }
.gdf-involve__text { padding-top: var(--gdf-sec) !important; padding-bottom: var(--gdf-sec) !important; }
.gdf-elect .gdf-vote { padding-top: var(--gdf-sec); padding-bottom: var(--gdf-sec); }
.gdf-elect { padding-bottom: 0 !important; }
.gdf-footer { padding-top: calc(var(--gdf-ribbon-h) / 2 + var(--gdf-sec)) !important; }

/* Phones: 20px side margin for all content */
@media (max-width: 760px) {
  :root { --gdf-gutter: 20px; }
  .gdf-container, .gdf-involve__text, .gdf-cands__head, .gdf-hs__copy { padding-left: 20px; padding-right: 20px; }
  .gdf-hs__copy { left: 0 !important; right: 0 !important; padding-left: 0; padding-right: 20px; }
}
@media (max-width: 760px) { .gdf-hs__copy { left: auto !important; right: 20px !important; padding: 0 !important; } }
@media (max-width: 760px) { .gdf-vision__grid { grid-template-columns: minmax(0, 1fr) !important; } .gdf-vision__grid > * { min-width: 0; max-width: 100%; } }
/* Ribbon over the hero/strip seam must sit in front: only clip sideways */
.gdf-elect { overflow: visible !important; overflow-x: clip !important; position: relative; z-index: 3; }
.gdf-elect > .gdf-ribbon { z-index: 6; }
.gdf-elect::before { top: calc(50% + 30px); }

/* Election strip on black */
.gdf-elect { background: #000 !important; color: #fff; }
.gdf-elect::before { background-image: url("../img/brand/wm-lion-gold.webp"); opacity: .08; }
.gdf-vote__title { color: #fff; }
.gdf-vote__sub { color: rgba(255, 255, 255, .8); }
.gdf-vote__countlabel, .gdf-vote__tile small { color: var(--gdf-gold); }
.gdf-vote__tiles i { color: var(--gdf-gold); opacity: .7; }
.gdf-vote__tile span { background: linear-gradient(#262626 0 50%, #1a1a1a 50% 100%); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.gdf-vote__tile:first-child span { background: linear-gradient(#a82a28 0 50%, #8e1f1e 50% 100%); }
.gdf-elect__mark--ballot .gzb { --gzb-body-edge: rgba(212, 167, 60, .6); --gzb-panel: #161616; }
.gdf-vote__cta { background: #9b2423; color: #fff; }
.gdf-vote__cta:hover { background: var(--gdf-gold); color: #000; }
.gdf-vote__cta:hover span { color: #000; }

/* Election strip: GAZA gold on desktop & tablet, white with watermark on phones */
.gdf-elect { background: var(--gdf-gold) !important; color: #000; }
.gdf-elect::before { display: none; }
.gdf-vote__title { color: #000; }
.gdf-vote__sub { color: #2a1f05; }
.gdf-vote__countlabel, .gdf-vote__tile small { color: #3a2a06; }
.gdf-vote__tiles i { color: #000; opacity: .55; }
.gdf-vote__tile span { background: linear-gradient(#1d1d1d 0 50%, #0a0a0a 50% 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08); }
.gdf-vote__tile:first-child span { background: linear-gradient(#a82a28 0 50%, #8e1f1e 50% 100%); }
.gdf-elect__mark--ballot .gzb { --gzb-body-edge: transparent; --gzb-panel: #191919; }
.gdf-vote__cta { background: #9b2423; color: #fff; }
.gdf-vote__cta:hover { background: #000; color: #fff; }
.gdf-vote__cta:hover span { color: #fff; }

@media (max-width: 700px) {
  .gdf-elect { background: #fff !important; }
  .gdf-elect::before {
    display: block; background-image: url("../img/brand/wm-lion-ink.webp"); opacity: .05;
    right: -90px; top: 32%; width: 340px;
  }
  .gdf-vote__sub { color: #3d3a35; }
  .gdf-vote__countlabel, .gdf-vote__tile small { color: #6b675f; }
  .gdf-vote__tiles i { opacity: .35; }
}

/* ==========================================================================
   SMALL LAPTOPS (1200-1480px): same full header as large screens, scaled.
   Full menu, Donate + Join buttons, people icon, crest and tagline all stay.
   ========================================================================== */
@media (min-width: 1180px) and (max-width: 1759.98px) {
  .gdf-hd .gdf-nav { display: flex !important; }
  .gdf-hd .gdf-menubtn { display: none !important; }
  .gdf-hd__bar { justify-content: flex-start; }
  .gdf-hd__bar .gdf-nav { margin-right: auto; }
  .gdf-hd__donate.gdf-segbtn { margin-left: 12px !important; }

  /* logo block scales with the screen */
  .gdf-hd__brand img.gdf-hd__people { width: clamp(76px, 6.4vw, 96px); }
  .gdf-hd__brand img.gdf-hd__crest { width: clamp(104px, 8.6vw, 132px); height: clamp(104px, 8.6vw, 132px); left: calc(clamp(76px, 6.4vw, 96px) - 8px); }
  .gdf-hd__brand { padding-left: calc(clamp(76px, 6.4vw, 96px) - 8px + clamp(104px, 8.6vw, 132px) + 14px); padding-right: 18px; }
  .gdf-hd__name strong { font-size: clamp(.5625rem, .2rem + .45vw, .6875rem) !important; }
  .gdf-hd__name em { font-size: clamp(.8125rem, .3rem + .6vw, .9375rem) !important; white-space: normal; max-width: 10.5em; }
  .gdf-hd__main { padding-left: 16px; }

  /* menu and buttons scale too */
  .gdf-hd .gdf-nav__link, .gdf-header.is-condensed .gdf-hd .gdf-nav__link { padding: 0 clamp(7px, .6vw, 11px); font-size: clamp(.6875rem, .35rem + .4vw, .8125rem); letter-spacing: .04em; }
  .gdf-hd .gdf-nav__link::after { left: clamp(7px, .6vw, 11px); right: clamp(7px, .6vw, 11px); }
  .gdf-segbtn, .gdf-hd__donate.gdf-segbtn, .gdf-hd__join.gdf-segbtn { height: 40px; font-size: clamp(.6875rem, .4rem + .35vw, .8125rem); }
  .gdf-segbtn__label { padding: 0 clamp(10px, .9vw, 15px); }
  .gdf-segbtn__icon { width: clamp(30px, 2.6vw, 38px); }

  /* condensed (scrolled) state keeps the same proportions */
  .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__people { width: 64px; }
  .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { width: 62px; height: 62px; left: 58px; }
  .gdf-header.is-condensed .gdf-hd__brand { padding-left: calc(58px + 62px + 14px); }
}
@media (min-width: 1270px) and (max-width: 1759.98px) { .gdf-hd__name em { white-space: nowrap; max-width: none; } }

/* Header seam: gold info line and white menu row start exactly at the black panel's edge */
@media (min-width: 761px) {
  .gdf-hd__main { padding-left: 0 !important; }
  .gdf-hd__top.gdf-util { margin-left: 0 !important; padding-left: 22px !important; }
  .gdf-hd__bar { padding-left: 22px; }
}
@media (min-width: 761px) and (max-width: 1280px) {
  .gdf-hd__top.gdf-util, .gdf-hd__bar { padding-left: 16px !important; }
}
/* Gold info line folds away once the page is scrolled */
.gdf-hd__top.gdf-util { max-height: 40px; overflow: hidden; transition: max-height .25s ease, opacity .2s ease; }
.gdf-header.is-condensed .gdf-hd__top.gdf-util { max-height: 0 !important; opacity: 0; border: 0; }
.gdf-header.is-condensed .gdf-hd__top.gdf-util::after { display: none; }
@media (prefers-reduced-motion: reduce) { .gdf-hd__top.gdf-util { transition: none; } }

/* ==========================================================================
   DONATION FORM
   ========================================================================== */
.gdf-give { margin: var(--s6) 0 var(--s7); max-width: 640px; }
.gdf-give fieldset { border: 0; margin: 0; padding: 0; }
.gdf-give legend, .gdf-give label { font-size: .875rem; font-weight: 600; color: #1f1d1a; }
.gdf-give legend { margin-bottom: 10px; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #6b675f; }
.gdf-give__amounts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.gdf-give__amounts label { position: relative; cursor: pointer; }
.gdf-give__amounts input { position: absolute; opacity: 0; inset: 0; margin: 0; }
.gdf-give__amounts span {
  display: flex; align-items: center; justify-content: center; min-height: 56px; border-radius: 10px;
  border: 1.5px solid #d9d4c8; background: #fff; font-size: 1.125rem; font-weight: 800; color: #000;
  transition: border-color .15s, background-color .15s, color .15s;
}
.gdf-give__amounts label:hover span { border-color: #000; }
.gdf-give__amounts input:checked + span { background: #000; border-color: #000; color: var(--gdf-gold); }
.gdf-give__amounts input:focus-visible + span { outline: 3px solid var(--gdf-gold); outline-offset: 2px; }
.gdf-give__other { margin-top: 14px; }
.gdf-give__rand { display: flex; align-items: center; margin-top: 6px; border: 1.5px solid #d9d4c8; border-radius: 10px; background: #fff; }
.gdf-give__rand span { padding: 0 4px 0 14px; font-weight: 800; color: #6b675f; }
.gdf-give__rand input { flex: 1; min-width: 0; border: 0; background: none; padding: 14px 14px 14px 4px; font: 700 1.0625rem var(--gdf-font); outline: none; }
.gdf-give__rand:focus-within { border-color: #000; }
.gdf-give__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 20px; }
.gdf-give__fields label span { font-weight: 400; color: #8a857b; }
.gdf-give__fields input { display: block; width: 100%; margin-top: 6px; padding: 12px 14px; border: 1.5px solid #d9d4c8; border-radius: 10px; font: 400 1rem var(--gdf-font); background: #fff; }
.gdf-give__fields input:focus { border-color: #000; outline: none; }
.gdf-give__fields input:disabled { background: #f3f1ec; color: #8a857b; }
.gdf-give__check { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-weight: 500 !important; cursor: pointer; }
.gdf-give__check input { width: 18px; height: 18px; accent-color: #000; }
.gdf-give__error { margin: 14px 0 0; font-size: .9375rem; font-weight: 600; color: var(--gdf-red); }
.gdf-give__submit {
  display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 56px; margin-top: 20px;
  border: 0; border-radius: 10px; background: #9b2423; color: #fff; font: 700 1.0625rem var(--gdf-font); cursor: pointer;
  transition: background-color .15s;
}
.gdf-give__submit svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.gdf-give__submit:hover { background: #000; }
.gdf-give__submit:disabled { opacity: .7; cursor: progress; }
.gdf-give__submit.is-busy span::after { content: "..."; }
.gdf-give__trust { margin: 12px 0 0; font-size: .8125rem; line-height: 1.5; color: #6b675f; }
@media (max-width: 640px) {
  .gdf-give__fields { grid-template-columns: 1fr; }
  .gdf-give__amounts span { min-height: 50px; font-size: 1rem; }
}
.gdf-thanks h2 { margin-top: 0; }
/* Gold info line reaches the right edge of the screen (shadow is not clipped by the fold) */
.gdf-hd__top.gdf-util::after { display: none !important; }
.gdf-hd__top.gdf-util { box-shadow: 100vw 0 0 var(--gdf-gold); }
.gdf-header.is-condensed .gdf-hd__top.gdf-util { box-shadow: none; }
.gdf-hd__top.gdf-util { box-shadow: none !important; }
@media (min-width: 761px) {
  .gdf-hd__main { position: relative; }
  .gdf-hd__main::after {
    content: ""; position: absolute; top: 0; left: 100%; width: 100vw; height: 40px;
    background: var(--gdf-gold); transition: height .25s ease, opacity .2s ease; pointer-events: none;
  }
  .gdf-header.is-condensed .gdf-hd__main::after { height: 0; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .gdf-hd__main::after { transition: none; } }

/* ==========================================================================
   HOME: sliding gallery strip
   ========================================================================== */
.gdf-gs { background: #fff; padding: var(--gdf-sec, 70px) 0; overflow: hidden; }
.gdf-gs__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.gdf-gs .gdf-label { color: var(--gdf-red); }
.gdf-gs h2 { margin: 0; font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem); font-weight: 900; letter-spacing: -.02em; }
.gdf-gs__ctl { display: flex; align-items: center; gap: 10px; }
.gdf-gs__arrow { display: grid; place-items: center; width: 44px; height: 44px; border: 1.5px solid #d9d4c8; border-radius: 50%; background: #fff; color: #000; cursor: pointer; transition: border-color .15s, color .15s; }
.gdf-gs__arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.gdf-gs__arrow:hover { border-color: #000; }
.gdf-gs__arrow:disabled { opacity: .35; cursor: default; }
.gdf-gs__all { margin-left: 8px; font-size: .875rem; font-weight: 700; color: #000; text-decoration: underline; text-decoration-color: var(--gdf-gold); text-underline-offset: 4px; white-space: nowrap; }
.gdf-gs__all:hover { color: var(--gdf-red); }
.gdf-gs__track {
  list-style: none; margin: 0; display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding: 4px max(var(--gdf-gutter), calc((100vw - var(--gdf-max)) / 2 + var(--gdf-gutter))) 10px;
  scroll-padding: 0 max(var(--gdf-gutter), calc((100vw - var(--gdf-max)) / 2 + var(--gdf-gutter)));
  scrollbar-width: none;
}
.gdf-gs__track::-webkit-scrollbar { display: none; }
.gdf-gs__track:focus-visible { outline: 3px solid var(--gdf-gold); outline-offset: -3px; }
.gdf-gs__item { flex: 0 0 auto; scroll-snap-align: start; }
.gdf-gs__card { display: block; height: clamp(260px, 28vw, 380px); border-radius: 14px; overflow: hidden; background: #ece8de; }
.gdf-gs__card img { display: block; height: 100%; width: auto; max-width: none; transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.gdf-gs__card:hover img { transform: scale(1.05); }
@media (max-width: 700px) {
  .gdf-gs__head { flex-direction: column; align-items: flex-start; }
  .gdf-gs__arrow { display: none; }
  .gdf-gs__all { margin: 0; }
  .gdf-gs__card { height: 240px; border-radius: 10px; }
  .gdf-gs__track { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) { .gdf-gs__track { scroll-behavior: auto; } .gdf-gs__card img { transition: none; } }

/* Page banners from real campaign photos: bright photo, shade only behind the title */
.gdf-pagetop__bg[src*="banner-p-"] { opacity: .92; }
.gdf-pagetop--photo:has(.gdf-pagetop__bg[src*="banner-p-"])::before {
  background: linear-gradient(to right, rgba(8, 8, 7, .88) 18%, rgba(8, 8, 7, .5) 42%, rgba(8, 8, 7, .08) 72%);
}
@media (max-width: 700px) {
  .gdf-pagetop--photo:has(.gdf-pagetop__bg[src*="banner-p-"])::before {
    background: linear-gradient(to right, rgba(8, 8, 7, .85) 30%, rgba(8, 8, 7, .3) 80%);
  }
}

/* ==========================================================================
   ABOUT PAGE (editorial, full width)
   ========================================================================== */
.gdf-wide > section, .gdf-wide > figure { margin: 0; }
.gdf-wide > * + * { margin-top: clamp(56px, 7vw, 96px) !important; }
.gdf-ab-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: #000; text-decoration: underline; text-decoration-color: var(--gdf-gold); text-underline-offset: 5px; }
.gdf-ab-link:hover { color: var(--gdf-red); }
.gdf-ab-link--light { color: #fff; }
.gdf-ab-link--light:hover { color: var(--gdf-gold); }
.gdf-wide .gdf-label { color: var(--gdf-red); }

/* 1. Opening */
.gdf-ab-open { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.gdf-ab-open h2 { margin: 0 0 18px; font-size: clamp(2rem, 1.3rem + 2.4vw, 3.4rem); font-weight: 900; line-height: 1.04; letter-spacing: -.03em; }
.gdf-ab-open .gdf-lead { margin-bottom: 14px; }
.gdf-ab-open p { max-width: 52ch; }
.gdf-ab-open__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 26px; }
.gdf-ab-open__media { position: relative; aspect-ratio: 1 / 1.05; }
.gdf-ab-open__media img { position: absolute; display: block; object-fit: cover; border-radius: 18px; box-shadow: 0 30px 60px rgba(0, 0, 0, .18); }
.gdf-ab-open__a { right: 0; top: 0; width: 66%; height: 82%; }
.gdf-ab-open__b { left: 0; bottom: 0; width: 56%; aspect-ratio: 4 / 3; height: auto; border: 6px solid #fff; }

/* 2. Pillars */
.gdf-ab-pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; background: #000; color: #fff; border-radius: 20px; overflow: hidden; }
.gdf-ab-pillars > div { padding: clamp(28px, 3.5vw, 48px); }
.gdf-ab-pillars > div + div { box-shadow: -1px 0 0 rgba(255, 255, 255, .12); }
.gdf-ab-pillars__n { display: block; margin-bottom: 18px; font-size: 2.6rem; font-weight: 900; line-height: 1; color: var(--gdf-gold); letter-spacing: -.03em; }
.gdf-ab-pillars h3 { margin: 0 0 10px; font-size: 1.375rem; font-weight: 800; color: #fff; }
.gdf-ab-pillars p { margin: 0; color: rgba(255, 255, 255, .75); line-height: 1.6; }

/* 3. Quote over photo */
.gdf-ab-quote { position: relative; border-radius: 20px; overflow: hidden; }
.gdf-ab-quote img { display: block; width: 100%; height: clamp(320px, 42vw, 560px); object-fit: cover; }
.gdf-ab-quote figcaption { position: absolute; inset: auto 0 0 0; padding: clamp(28px, 5vw, 64px); background: linear-gradient(to top, rgba(0, 0, 0, .85), rgba(0, 0, 0, 0)); color: #fff; }
.gdf-ab-quote figcaption p { margin: 0 0 8px; max-width: 20ch; font-size: clamp(1.6rem, 1rem + 2.2vw, 3rem); font-weight: 900; line-height: 1.08; letter-spacing: -.02em; }
.gdf-ab-quote figcaption span { font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gdf-gold); }

/* 4. Structure */
.gdf-ab-structure__head { max-width: 60ch; margin-bottom: 30px; }
.gdf-ab-structure h2 { margin: 0; font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.6rem); font-weight: 900; letter-spacing: -.02em; }
.gdf-ab-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; counter-reset: ab; }
.gdf-ab-steps li { counter-increment: ab; position: relative; padding: 26px 22px 24px; border-radius: 16px; background: #f6f3ec; }
.gdf-ab-steps li::before { content: "0" counter(ab); display: block; margin-bottom: 14px; font-size: .875rem; font-weight: 800; color: var(--gdf-red); }
.gdf-ab-steps strong { display: block; margin-bottom: 6px; font-size: 1.0625rem; line-height: 1.25; }
.gdf-ab-steps span { font-size: .9375rem; color: #57534b; line-height: 1.5; }

/* 5. Identity */
.gdf-ab-identity { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.gdf-ab-identity__crest { width: clamp(160px, 18vw, 240px); height: auto; }
.gdf-ab-identity h2 { margin: 0 0 6px; font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.6rem); font-weight: 900; letter-spacing: -.02em; }
.gdf-ab-identity__slogan { margin: 0 0 18px; font-style: italic; color: #8a6d1a; }
.gdf-ab-colours { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-bottom: 16px; }
.gdf-ab-colours span { display: inline-flex; align-items: center; gap: 8px; font-size: .9375rem; font-weight: 600; }
.gdf-ab-colours i { width: 22px; height: 22px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); }

/* 6. Join */
.gdf-ab-join { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: stretch; background: #000; color: #fff; border-radius: 20px; overflow: hidden; }
.gdf-ab-join img { display: block; width: 100%; height: 100%; min-height: 300px; object-fit: cover; }
.gdf-ab-join > div { padding: clamp(32px, 5vw, 72px); align-self: center; }
.gdf-ab-join h2 { margin: 0 0 12px; color: #fff; font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.75rem); font-weight: 900; line-height: 1.08; letter-spacing: -.02em; }
.gdf-ab-join p { color: rgba(255, 255, 255, .75); }

@media (max-width: 1000px) {
  .gdf-ab-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gdf-ab-steps li:last-child { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .gdf-ab-open { grid-template-columns: 1fr; }
  .gdf-ab-open__media { order: -1; aspect-ratio: 1 / .9; }
  .gdf-ab-pillars { grid-template-columns: 1fr; border-radius: 14px; }
  .gdf-ab-pillars > div + div { box-shadow: 0 -1px 0 rgba(255, 255, 255, .12); }
  .gdf-ab-pillars__n { font-size: 2rem; margin-bottom: 10px; }
  .gdf-ab-quote, .gdf-ab-join { border-radius: 14px; }
  .gdf-ab-steps { grid-template-columns: 1fr; }
  .gdf-ab-identity { grid-template-columns: 1fr; justify-items: start; }
  .gdf-ab-identity__crest { width: 140px; }
  .gdf-ab-join { grid-template-columns: 1fr; }
  .gdf-ab-join img { min-height: 0; aspect-ratio: 16 / 10; }
}
.gdf-ab-steps { gap: 28px; }
.gdf-ab-steps li { padding: 0; border-radius: 0; background: none; }
.gdf-ab-steps li::before { font-size: 2rem; font-weight: 900; letter-spacing: -.03em; margin-bottom: 10px; }
@media (max-width: 760px) { .gdf-ab-steps { gap: 22px; } .gdf-ab-steps li::before { font-size: 1.5rem; margin-bottom: 4px; } }

/* Home gallery strip v2: small uniform photos, continuous auto-slide (marquee) */
.gdf-gs__viewport { position: relative; overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
          mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); }
.gdf-gs__track { display: flex; gap: 14px; width: max-content; padding: 6px 0 10px; overflow: visible; scroll-snap-type: none;
  animation: gdf-gs-slide var(--gs-dur, 60s) linear infinite; }
.gdf-gs__viewport:hover .gdf-gs__track, .gdf-gs__viewport:focus-within .gdf-gs__track { animation-play-state: paused; }
@keyframes gdf-gs-slide { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.gdf-gs__item { flex: 0 0 auto; }
.gdf-gs__card { display: block; width: 220px; height: 270px; border-radius: 12px; overflow: hidden; background: #ece8de;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .1); }
.gdf-gs__card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
.gdf-gs__card:hover img { transform: scale(1.06); }
.gdf-gs__card:focus-visible { outline: 3px solid var(--gdf-gold); outline-offset: 3px; }
@media (max-width: 700px) {
  .gdf-gs__card { width: 150px; height: 190px; border-radius: 10px; }
  .gdf-gs__track { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .gdf-gs__track { animation: none; }
  .gdf-gs__viewport { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}
/* About opening without the photo stack: one centred column */
.gdf-ab-open--solo { grid-template-columns: 1fr; max-width: 860px; margin-inline: auto !important; text-align: center; }
.gdf-ab-open--solo p { margin-inline: auto; }
.gdf-ab-open--solo .gdf-ab-open__cta { justify-content: center; }
@media (max-width: 760px) { .gdf-ab-open--solo { text-align: left; } .gdf-ab-open--solo .gdf-ab-open__cta { justify-content: flex-start; } }

/* Tablets: landscape hero like desktop (photo's own 1920 x 900 shape), smaller text */
@media (min-width: 641px) and (max-width: 1199px) {
  .gdf-hs__stage { height: auto; aspect-ratio: 1920 / 900; min-height: 380px; }
  .gdf-hs .gdf-slide img { object-position: 30% 40%; }
  .gdf-hs__copy { width: min(440px, 48vw); }
  .gdf-hs__num { margin-bottom: 8px; font-size: .75rem; }
  .gdf-hs__title { font-size: clamp(1.5rem, .9rem + 1.8vw, 2.25rem) !important; margin-bottom: 10px; }
  .gdf-hs__sub { font-size: 1rem !important; }
  .gdf-hs__tag { margin-top: 16px; }
  .gdf-hs__tag img { width: min(300px, 100%); }
  .gdf-hs__ctl { top: 16px; }
}
@media (min-width: 641px) and (max-width: 1199px) { .gdf-hs__stage { width: 100%; min-height: 0; } .gdf-hs__tag img { width: min(260px, 100%); } }

/* Phones: top strip above the black header is gold, icons black */
@media (max-width: 760px) {
  .gdf-hd__mtop { background: var(--gdf-gold); border-bottom: 0; }
  .gdf-hd__mtop .gdf-hero2__icons a { color: #000; }
  .gdf-hd__mtop .gdf-hero2__icons a:hover { color: #9b2423; }
}
/* Tablets: ballot spans both rows beside the headline and countdown, no dead space */
@media (min-width: 701px) and (max-width: 1100px) {
  .gdf-vote { grid-template-columns: auto minmax(0, 1fr); column-gap: 40px; row-gap: 24px; align-items: center; }
  .gdf-vote__art { grid-row: 1 / span 2; align-self: center; }
  .gdf-elect__mark--ballot.gdf-vote__art { width: 230px; margin: 0; }
  .gdf-vote__message { align-self: end; }
  .gdf-vote__side { grid-column: 2; align-self: start; justify-items: start; }
  .gdf-vote__cta { justify-self: start; }
}

/* Home gallery strip v3: scrolled by script so it can also be dragged or swiped */
.gdf-gs__viewport { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; cursor: grab; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.gdf-gs__viewport::-webkit-scrollbar { display: none; }
.gdf-gs__viewport.is-drag { cursor: grabbing; }
.gdf-gs__viewport.is-drag .gdf-gs__card { pointer-events: none; }
.gdf-gs__track { animation: none !important; transform: none; }
.gdf-gs__card img { -webkit-user-drag: none; user-select: none; }
@media (prefers-reduced-motion: reduce) { .gdf-gs__viewport { overflow-x: auto; } }

/* Opportunity Ground: photo runs edge to edge and down under the footer wave */
.gdf-og { padding-top: 0 !important; padding-bottom: 0 !important; }
.gdf-og__grid { padding: 0 !important; max-width: none !important; margin: 0 !important; width: 100%; }
.gdf-og__text { padding-top: var(--gdf-sec) !important; padding-bottom: calc(var(--gdf-sec) + var(--gdf-ribbon-h) / 2) !important; }
.gdf-og__photo { display: block; width: 100%; max-width: none; height: 100%; min-height: 100%; margin: 0; border-radius: 0; box-shadow: none; }
@media (max-width: 980px) {
  .gdf-og__text { padding-bottom: 36px !important; }
  .gdf-og__photo { aspect-ratio: 3 / 2; height: auto; min-height: 0; }
}
/* Phones: the ballot hand drops straight out of the hero's bottom edge */
@media (max-width: 700px) {
  .gdf-elect .gdf-vote { padding-top: 0 !important; }
}

/* Pages without a sidebar (Donate): one centred column */
.gdf-layout--solo { grid-template-columns: minmax(0, 1fr) !important; max-width: 820px; margin-inline: auto; }

/* Check-registration page: countdown as a clean black band with flip tiles */
.gdf-regcount {
  display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
  margin: 28px 0 44px; padding: 28px 32px; border-radius: 14px; background: #000; color: #fff;
}
.gdf-regcount p { margin: 0; }
.gdf-regcount__label { font-size: .75rem !important; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--gdf-gold) !important; }
.gdf-regcount__date { margin-top: 8px !important; font-size: 1.5rem !important; font-weight: 900; line-height: 1.15 !important; letter-spacing: -.015em; color: #fff !important; }
.gdf-regcount__name { margin-top: 4px !important; font-size: .9375rem !important; color: rgba(255, 255, 255, .7) !important; }
.gdf-regcount .gdf-vote__tiles i { color: var(--gdf-gold); opacity: .7; }
.gdf-regcount .gdf-vote__tile small { color: rgba(255, 255, 255, .7); }
.gdf-regcount .gdf-vote__tile span { background: linear-gradient(#262626 0 50%, #1a1a1a 50% 100%); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.gdf-regcount .gdf-vote__tile:first-child span { background: linear-gradient(#a82a28 0 50%, #8e1f1e 50% 100%); }
@media (max-width: 700px) {
  .gdf-regcount { flex-direction: column; align-items: center; text-align: center; gap: 18px; padding: 24px 16px; margin: 20px 0 32px; }
  .gdf-regcount__date { font-size: 1.25rem !important; }
  .gdf-regcount .gdf-vote__tiles { gap: 3px; }
  .gdf-regcount .gdf-vote__tile span { width: 52px; height: 58px; font-size: 1.7rem; }
  .gdf-regcount .gdf-vote__tiles i { line-height: 56px; font-size: 1.2rem; }
}

/* Menu banner: always the whole artwork (never cropped on short screens); the link list scrolls instead */
.gdf-dr__banner img, .gdf-mobile .gdf-dr__banner img { aspect-ratio: 800 / 450 !important; height: auto !important; object-fit: contain !important; }

/* Menu head: close button where the crest and name were, social icons on the right */
.gdf-dr__head { padding-left: 10px; }
.gdf-dr__close { margin: 0 auto 0 0 !important; }

/* Phones: 30px side margin for all text content (images run edge to edge) */
@media (max-width: 760px) {
  :root { --gdf-gutter: 30px; }
  .gdf-container, .gdf-involve__text, .gdf-cands__head { padding-left: 30px !important; padding-right: 30px !important; }
  .gdf-hs__copy { right: 30px !important; }
}
/* Phones: photos are never boxed: they run edge to edge, square corners */
@media (max-width: 760px) {
  .gdf-og .gdf-og__grid.gdf-container { padding: 0 !important; }
  .gdf-og .gdf-og__text { padding-left: 30px !important; padding-right: 30px !important; }
  .gdf-ab-quote, .gdf-ab-join, .gdf-figure {
    margin-left: -30px !important; margin-right: -30px !important; width: auto; max-width: none; border-radius: 0 !important;
  }
  .gdf-ab-quote img, .gdf-ab-join img, .gdf-figure img { border-radius: 0 !important; }
  .gdf-ab-quote figcaption { padding: 30px; }
  .gdf-ab-join > div { padding: 36px 30px 44px; }
}
@media (max-width: 760px) {
  .gdf-ab-pillars { margin-left: -30px !important; margin-right: -30px !important; border-radius: 0 !important; }
  .gdf-ab-pillars > div { padding: 32px 30px; }
}

/* Document viewer bar on tablets: title on its own line, buttons share the row below */
@media (max-width: 1100px) {
  .gdf-reader__bar { flex-direction: column; align-items: stretch; gap: 12px; }
  .gdf-reader__bar > div:first-child strong { display: block; margin-bottom: 2px; }
  .gdf-reader__actions { width: 100%; }
  .gdf-reader__actions .gdf-btn { flex: 1; justify-content: center; }
}

/* Menu button: icon only (no key, border or shadow) */
.gdf-hd .gdf-menubtn, .gdf-hd .gdf-menubtn:hover, .gdf-hd .gdf-menubtn:active, .gdf-hd .gdf-menubtn[aria-expanded="true"] {
  background: none !important; border: 0 !important; box-shadow: none !important; transform: none !important; border-radius: 0;
}
.gdf-hd .gdf-menubtn .gdf-menubtn__dots { width: 28px; height: 28px; transition: stroke .15s; }
.gdf-hd .gdf-menubtn:hover .gdf-menubtn__dots { stroke: var(--gdf-red); }
@media (max-width: 640px) { .gdf-hd .gdf-menubtn:hover .gdf-menubtn__dots { stroke: var(--gdf-gold); } }

/* Phones: document viewers and the join form run edge to edge */
@media (max-width: 760px) {
  .gdf-reader, .gdf-joinform { margin-left: -30px !important; margin-right: -30px !important; width: auto !important; max-width: none !important; border-radius: 0 !important; }
  .gdf-reader__bar { padding: 20px 30px; }
}

/* Phones: the wave artwork has a 1-2px clear edge each side; bleed it past the screen so it is truly full width */
@media (max-width: 640px) {
  .gdf-header--home .gdf-hd__mwave { left: -6px !important; width: calc(100% + 12px) !important; max-width: none; }
  .gdf-header--home { overflow-x: clip; }
}

/* Hero: text-side shade 20% stronger so the caption reads clearly on every slide */
.gdf-hs__shade {
  background:
    linear-gradient(to left, rgba(0, 0, 0, .97) 0%, rgba(0, 0, 0, .9) 34%, rgba(0, 0, 0, .45) 60%, rgba(0, 0, 0, 0) 80%),
    linear-gradient(to top, rgba(0, 0, 0, .54), rgba(0, 0, 0, 0) 38%) !important;
}
@media (max-width: 640px) {
  .gdf-hs__shade { background: linear-gradient(to left, rgba(0, 0, 0, .97) 0%, rgba(0, 0, 0, .86) 38%, rgba(0, 0, 0, .3) 64%, rgba(0, 0, 0, 0) 82%) !important; }
}

/* Phones: no sideways section links above the page content (the menu covers them) */
@media (max-width: 760px) {
  .gdf-layout__aside:has(.gdf-sidenav) { display: none; }
  .gdf-sidenav { display: none; }
}

/* ==========================================================================
   WATCHES (Apple Watch, Wear OS: screens under 300px wide)
   Phones start at 320px, so none of this touches phones, tablets or desktop.
   ========================================================================== */
@media (max-width: 300px) {
  html { font-size: 87.5%; }
  body { -webkit-text-size-adjust: 100%; overflow-wrap: anywhere; }
  :root { --gdf-gutter: 12px; --gdf-sec: 36px; --gdf-ribbon-h: 26px; }
  .gdf-container, .gdf-involve__text, .gdf-cands__head, .gdf-og .gdf-og__text { padding-left: 12px !important; padding-right: 12px !important; }
  img, video, iframe, svg { max-width: 100%; }

  /* full-bleed blocks use the smaller gutter */
  .gdf-ab-quote, .gdf-ab-join, .gdf-figure, .gdf-ab-pillars, .gdf-reader, .gdf-joinform { margin-left: -12px !important; margin-right: -12px !important; }
  .gdf-reader__bar, .gdf-ab-pillars > div, .gdf-ab-join > div, .gdf-ab-quote figcaption { padding-left: 12px !important; padding-right: 12px !important; }

  /* header: crest + menu only */
  .gdf-hd__mtop { height: 24px; padding: 0 8px; justify-content: center !important; }
  .gdf-hd__mtop .gdf-hero2__icons a { width: 22px; height: 22px; }
  .gdf-hd__name { display: none !important; }
  .gdf-hd__brand, .gdf-header.is-condensed .gdf-hd__brand { padding-left: 0 !important; padding-right: 0 !important; margin: 0 auto 0 0 !important; min-width: 0; }
  .gdf-hd__brand img.gdf-hd__crest, .gdf-header.is-condensed .gdf-hd__brand img.gdf-hd__crest { position: relative; left: 0 !important; top: -6px; width: 58px !important; height: 58px !important; margin: 0 0 -18px !important; }
  .gdf-hd__bar { min-width: 0; }
  .gdf-hd .gdf-menubtn { width: 36px; height: 36px; margin-left: 4px; }
  .gdf-hd .gdf-menubtn .gdf-menubtn__dots { width: 24px; height: 24px; }
  .gdf-hd__main, .gdf-hd { padding-left: 8px; padding-right: 8px; min-width: 0; }
  .gdf-mobile.gdf-dr { width: 100vw !important; max-width: 100vw !important; border-radius: 0 !important; }
  .gdf-dr__item { font-size: .9375rem; }

  /* hero: text under the photo so it never covers faces */
  .gdf-hs__stage { aspect-ratio: auto !important; height: auto !important; min-height: 0 !important; }
  .gdf-hs .gdf-slides { position: relative !important; inset: auto !important; height: auto !important; aspect-ratio: 4 / 3; }
  .gdf-hs .gdf-slide img { width: 100%; height: 100%; object-fit: cover; }
  .gdf-hs__shade { display: none; }
  .gdf-hs__copy { position: static !important; transform: none !important; width: auto !important; padding: 12px !important; background: #000; }
  .gdf-hs__title { font-size: 1.05rem !important; }
  .gdf-hs__sub { font-size: .8125rem !important; }
  .gdf-hs__tag img { width: 100% !important; }
  .gdf-hs__ctl { top: 8px !important; right: 8px !important; }

  /* headings, text and buttons */
  h1, .gdf-pagetop h1 { font-size: 1.375rem !important; line-height: 1.15 !important; }
  h2, .gdf-title, .gdf-vote__title { font-size: 1.125rem !important; line-height: 1.2 !important; }
  h3 { font-size: 1rem !important; }
  p, li { font-size: .875rem !important; }
  .gdf-btn, .gdf-vote__cta, .gdf-elect__cta, .gdf-booth__cta, .gdf-tagbtn { width: 100%; white-space: normal !important; justify-content: center; text-align: center; padding: 12px 10px !important; }
  .gdf-actions, .gdf-ab-open__cta { flex-direction: column; align-items: stretch; gap: 10px; }

  /* countdown tiles (home strip + registration page) */
  .gdf-vote__tiles, .gdf-regcount .gdf-vote__tiles { gap: 2px !important; justify-content: center; }
  .gdf-vote__tile span, .gdf-regcount .gdf-vote__tile span { width: 34px !important; height: 40px !important; font-size: 1.15rem !important; border-radius: 6px; }
  .gdf-vote__tiles i, .gdf-regcount .gdf-vote__tiles i { line-height: 40px !important; font-size: .9rem !important; }
  .gdf-vote__tile small { font-size: .5rem !important; letter-spacing: .04em !important; }
  .gdf-regcount { padding: 16px 10px; margin-left: -12px; margin-right: -12px; border-radius: 0; }
  .gdf-elect__mark--ballot.gdf-vote__art, .gdf-vote__art { width: 150px !important; }

  /* grids collapse to one column */
  .gdf-og__grid, .gdf-vision__grid, .gdf-ab-pillars, .gdf-ab-join, .gdf-layout, .gdf-give__amounts, .gdf-footer__cols, .gdf-footer__grid { grid-template-columns: minmax(0, 1fr) !important; }
  .gdf-cands__list { grid-template-columns: minmax(0, 1fr) !important; padding: 0 12px !important; }
  .gdf-gs__card { width: 120px; height: 150px; }
  .gdf-song__art img { width: 100%; }
  .gdf-footer__tag img { width: 100%; }
  input, select, textarea { max-width: 100%; font-size: 16px; }
  table { display: block; overflow-x: auto; }
}
@media (max-width: 300px) {
  .gdf-og__text > img, .gdf-ogintro img { width: 100% !important; max-width: 180px !important; height: auto; }
}
@media (max-width: 300px) {
  [class*="__grid"] { grid-template-columns: minmax(0, 1fr) !important; }
  [class*="__grid"] > * { min-width: 0; }
  .gdf-booth__steps { flex-wrap: wrap; gap: 8px; }
  .gdf-booth__steps li { white-space: normal; }
}
@media (max-width: 300px) {
  .gdf-music { padding: 14px 10px !important; margin-left: -12px; margin-right: -12px; border-radius: 0 !important; }
  .gdf-player { gap: 8px; padding: 10px !important; }
  .gdf-player__btn { width: 40px !important; height: 40px !important; flex: 0 0 40px; }
  .gdf-player__body { min-width: 0; flex: 1; }
  .gdf-player__title { font-size: .75rem !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
  .gdf-player__eq { display: none !important; }
  .gdf-player__time { font-size: .6875rem !important; white-space: nowrap; gap: 6px; }
  .gdf-song__links { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; }
  .gdf-song__links a { width: 100%; justify-content: center; white-space: nowrap; overflow-wrap: normal; word-break: normal; }
}
@media (max-width: 300px) {
  .gdf-footer__top { flex-direction: column; align-items: flex-start; gap: 10px; }
  .gdf-footer__top > img { width: 56px; height: 56px; }
  .gdf-music { margin-left: 0; margin-right: 0; }
}
@media (max-width: 300px) {
  .gdf-footer__top { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; justify-items: start; gap: 10px !important; }
}
@media (max-width: 300px) {
  .gdf-give__amounts { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
}
/* Small phones (301-340px): the header tagline wraps instead of pushing the menu button off screen */
@media (min-width: 301px) and (max-width: 340px) {
  .gdf-hd__brand { min-width: 0; flex: 1 1 auto; }
  .gdf-hd__name { min-width: 0; }
  .gdf-hd__name em { white-space: normal !important; font-size: .6875rem !important; line-height: 1.25; }
}
@media (max-width: 300px) {
  .gdf-mobile.gdf-dr { left: 0 !important; right: 0 !important; width: 100vw !important; min-width: 0 !important; max-width: 100vw !important; border-left: 0; }
  .gdf-dr__head { padding: 10px 8px; }
  .gdf-dr__nav { padding: 4px 6px 8px; }
}

/* About: seven principles in a four-column grid, colour meanings as a list */
.gdf-ab-structure__head p:not(.gdf-label) { margin: 12px 0 0; color: #57534b; }
.gdf-ab-steps--principles { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; row-gap: 36px; }
.gdf-ab-steps--principles li:last-child { grid-column: auto !important; }
@media (max-width: 1100px) { .gdf-ab-steps--principles { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 760px) { .gdf-ab-steps--principles { grid-template-columns: minmax(0, 1fr) !important; row-gap: 22px; } }
.gdf-ab-against { margin: 36px 0 0; max-width: 72ch; font-size: 1.0625rem; line-height: 1.6; }
.gdf-ab-against a { color: var(--gdf-red); font-weight: 700; }
.gdf-ab-identity h2 { max-width: 22ch; }
.gdf-ab-colours--meaning { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 10px; }
.gdf-ab-colours--meaning li { display: flex; align-items: center; gap: 10px; font-size: .9375rem; color: #3d3a35; }
.gdf-ab-colours--meaning i { flex: 0 0 22px; width: 22px; height: 22px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); }
.gdf-ab-colours--meaning strong { min-width: 52px; color: #000; }
.gdf-ab-join .gdf-label { margin-bottom: 10px; }

/* Menu: GAZA store as a bag icon with the cart count */
.gdf-nav__item--shop { display: flex; align-items: center; margin-left: 6px; }
.gdf-shopicon { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 6px 4px; color: #9b2423; text-decoration: none; transition: color .15s, transform .15s; }
.gdf-shopicon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.gdf-shopicon__label { font-size: .8125rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.gdf-shopicon:hover, .gdf-shopicon[aria-current] { color: #000; transform: translateY(-1px); }
.gdf-shopicon::after { display: none !important; }
.gdf-shopicon__count {
  position: absolute; top: 0; left: 18px; display: grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 9px; background: var(--gdf-gold); color: #000; font-size: .6875rem; font-weight: 800; line-height: 1;
  box-shadow: 0 0 0 2px #fff;
}
.gdf-shopicon__count[hidden] { display: none; }
@media (max-width: 1360px) { .gdf-shopicon__label { display: none; } }
@media (prefers-reduced-motion: reduce) { .gdf-shopicon { transition: none; } }
/* Store link: icon only, full size (beats the menu's small-svg rules) */
.gdf-hd .gdf-shopicon { width: 46px; height: 46px; justify-content: center; padding: 0; }
.gdf-hd .gdf-shopicon svg { width: 30px !important; height: 30px !important; stroke-width: 1.9; }
.gdf-hd .gdf-shopicon__count { top: 4px; left: 26px; }

/* Tablets and phones: store bag beside the menu button (desktop has it in the menu) */
.gdf-hd__shop { display: none; position: relative; align-items: center; justify-content: center; width: 44px; height: 44px; align-self: center; color: #9b2423; text-decoration: none; transition: color .15s; }
.gdf-hd__shop svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linejoin: round; stroke-linecap: round; }
.gdf-hd__shop:hover { color: #000; }
.gdf-hd__shop .gdf-shopicon__count { top: 3px; left: 24px; }
@media (max-width: 1179.98px) { .gdf-hd__shop { display: inline-flex; margin-left: 10px; } }
@media (max-width: 640px) {
  .gdf-hd__shop { width: 40px; height: 40px; margin-left: auto; margin-right: 2px; color: #fff; }
  .gdf-hd__shop:hover { color: var(--gdf-gold); }
  .gdf-hd__shop svg { width: 25px; height: 25px; }
  .gdf-hd__shop .gdf-shopicon__count { box-shadow: 0 0 0 2px #000; }
  .gdf-hd .gdf-menubtn { margin-left: 0 !important; }
}
/* Phones with the store bag: tagline wraps to two lines so crest, tagline, bag and menu all fit */
@media (max-width: 640px) {
  .gdf-hd__bar:has(.gdf-hd__shop) { min-width: 0; }
  .gdf-header:has(.gdf-hd__shop) .gdf-hd__brand { min-width: 0; flex: 1 1 auto; }
  .gdf-header:has(.gdf-hd__shop) .gdf-hd__name { min-width: 0; }
  .gdf-header:has(.gdf-hd__shop) .gdf-hd__name em { white-space: normal !important; max-width: 9.5em; font-size: .8125rem !important; line-height: 1.25 !important; }
}
@media (max-width: 360px) { .gdf-header:has(.gdf-hd__shop) .gdf-hd__name em { font-size: .6875rem !important; } }

/* GAZA store: coming-soon page and menu tag */
.gdf-soon { max-width: 640px; margin: 0 auto; text-align: center; padding: 10px 0 20px; }
.gdf-soon__icon { width: 64px; height: 64px; fill: none; stroke: #9b2423; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; margin-bottom: 14px; }
.gdf-soon__label { margin: 0 0 8px; font-size: .75rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: #9b2423; }
.gdf-soon h2 { margin: 0 0 14px; font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.75rem); font-weight: 900; letter-spacing: -.02em; }
.gdf-soon .gdf-lead, .gdf-soon p { margin-inline: auto; }
.gdf-soon__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 26px; }
.gdf-dr__soon { margin-left: auto; padding: 2px 8px; border-radius: 999px; background: var(--gdf-gold); color: #000; font-size: .625rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 300px) { .gdf-soon__cta { flex-direction: column; } }

/* About: national leadership */
.gdf-leaders { display: block; margin: 0 0 64px; }
.gdf-leaders > h2 { margin: 0 0 10px; font-size: clamp(1.6rem, 1.1rem + 1.5vw, 2.4rem); font-weight: 900; letter-spacing: -.02em; line-height: 1.1; }
.gdf-leaders > .gdf-lead { max-width: 58ch; margin-bottom: 34px; }
.gdf-lead-pres { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 36px; align-items: end; margin-bottom: 52px; background: #000; color: #fff; }
.gdf-lead-pres img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.gdf-lead-pres > div { padding: 0 32px 34px 0; }
.gdf-lead-pres__title { margin: 0 0 8px; font-size: .75rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--gdf-gold); }
.gdf-lead-pres h3 { margin: 0 0 12px; font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.6rem); font-weight: 900; line-height: 1.05; letter-spacing: -.02em; color: #fff; }
.gdf-lead-pres p:last-child { margin: 0; max-width: 40ch; color: rgba(255, 255, 255, .78); line-height: 1.6; }
.gdf-leaders__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
.gdf-leader { margin: 0; padding: 0; }
.gdf-leader img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; margin-bottom: 14px; background: #000; }
.gdf-leader__title { margin: 0 0 4px; font-size: .6875rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #9b2423; line-height: 1.35; }
.gdf-leader h3 { margin: 0 0 6px; font-size: 1.125rem; font-weight: 800; line-height: 1.25; }
.gdf-leader__role { margin: 0; font-size: .875rem; line-height: 1.5; color: #57534b; }
.gdf-about-doc > h2 { margin: 0 0 10px; }
@media (max-width: 980px) { .gdf-leaders__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 18px; } }
@media (max-width: 760px) {
  .gdf-lead-pres { grid-template-columns: minmax(0, 1fr); gap: 0; margin-left: -30px; margin-right: -30px; }
  .gdf-lead-pres > div { padding: 22px 30px 28px; }
  .gdf-leaders__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
  .gdf-leader h3 { font-size: 1rem; }
  .gdf-leader__role { font-size: .8125rem; }
}
@media (max-width: 300px) {
  .gdf-lead-pres { margin-left: -12px; margin-right: -12px; }
  .gdf-lead-pres > div { padding: 16px 12px 20px; }
  .gdf-leaders__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .gdf-lead-pres h3 { font-size: 1.75rem !important; line-height: 1.1 !important; margin-bottom: 10px; }
  .gdf-lead-pres__title { font-size: .6875rem; letter-spacing: .14em; }
  .gdf-leader__title { font-size: .625rem; letter-spacing: .1em; }
}
/* Leadership portraits are the official square photos, shown whole (no cropping) */
.gdf-lead-pres img, .gdf-leader img { aspect-ratio: 1 / 1 !important; object-fit: contain !important; }
@media (min-width: 761px) { .gdf-lead-pres { grid-template-columns: minmax(0, 340px) minmax(0, 1fr); } }
.gdf-lead-pres h3 { margin-bottom: 0 !important; }
.gdf-leader h3 { margin-bottom: 0; }
/* President panel on phones: photo on top, title and name underneath, full width */
@media (max-width: 760px) {
  .gdf-lead-pres { grid-template-columns: minmax(0, 1fr) !important; align-items: start; }
  .gdf-lead-pres > div { padding: 20px 30px 26px !important; }
  .gdf-lead-pres__title { letter-spacing: .12em; }
  .gdf-lead-pres h3 { word-break: normal; overflow-wrap: normal; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .gdf-lead-pres { grid-template-columns: minmax(0, 260px) minmax(0, 1fr) !important; gap: 28px; }
  .gdf-lead-pres > div { padding: 0 24px 28px 0; }
}
@media (max-width: 760px) {
  .gdf-leaders .gdf-lead-pres h3 { font-size: 1.625rem !important; line-height: 1.1 !important; }
  .gdf-leaders .gdf-lead-pres__title { font-size: .625rem !important; letter-spacing: .1em; }
}
