:root {
  --green: #08783f;
  --green-dark: #04552d;
  --green-soft: #e7f4ed;
  --yellow: #f4d900;
  --red: #d92d20;
  --ink: #102119;
  --muted: #5e7068;
  --surface: #ffffff;
  --surface-2: #f5f8f6;
  --dark: #07160f;
  --dark-2: #0e2419;
  --border: #dfe8e2;
  --shadow: 0 18px 60px rgba(8, 37, 22, 0.10);
  --radius-lg: 26px;
  --radius-xl: 36px;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--surface);
}
 @keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-35%); } }
 
.text-brand { color: var(--green); }
.bg-brand { background: var(--green); }
.bg-dark-brand { background: var(--dark); }
.bg-soft { background: var(--surface-2); }

.glass {
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.hero-glow {
  position: absolute;
  width: 34rem;
  height: 34rem;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(244,217,0,.18), transparent 62%);
  top: -10rem;
  right: -8rem;
  pointer-events: none;
}

.hero-grid {
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 36px 36px;
}

.hero-photo {
  min-height: 560px;
  background:
    linear-gradient(145deg, rgba(8,120,63,.32), rgba(7,22,15,.86)),
    radial-gradient(circle at 70% 25%, rgba(244,217,0,.24), transparent 26%),
    linear-gradient(135deg, #1a4631, #0a1710 65%);
}

.hero-photo .placeholder {
  border: 1px dashed rgba(255,255,255,.35);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.78);
}

/* Campaign hero: the copy stays on an opaque dark surface as photos fade in. */
.campaign-hero { position: relative; overflow: hidden; color: #fff; background: #07160f; }
.hero-slides { display: grid; }
.hero-slide { grid-area: 1 / 1; position: relative; min-width: 0; visibility: hidden; opacity: 0; transition: opacity .65s ease, visibility .65s; overflow: hidden; }
.hero-slide.is-active { visibility: visible; opacity: 1; z-index: 1; }
.hero-slide__media { position: absolute; inset: 0 0 0 47%; background: #102119; }
.hero-slide__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.hero-slide__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #07160f 0%, rgba(7,22,15,.65) 12%, transparent 40%), linear-gradient(0deg, #07160f, transparent 18%); pointer-events: none; }
.hero-slide--meeting .hero-slide__media img { object-fit: contain; }
.hero-slide--poster .hero-slide__media { background: #0d2117; padding: 24px 32px; }
.hero-slide--poster .hero-slide__media img { object-fit: contain; }
.hero-slide--poster .hero-slide__media::after { background: linear-gradient(90deg, #07160f, transparent 22%); }
.hero-slide__layout { position: relative; display: flex; align-items: center; min-height: 690px; height: 100%; padding-top: 64px; padding-bottom: 64px; }
.hero-slide__copy { width: 52%; position: relative; z-index: 1; padding-right: 28px; }
.hero-slide__eyebrow { display: inline-flex; align-items: center; gap: 10px; border: 1px solid #526446; border-radius: 30px; padding: 10px 15px; color: #f4e47f; font-size: .65rem; font-weight: 800; letter-spacing: .14em; line-height: 1.6; }
.hero-slide__eyebrow span { flex: 0 0 6px; width: 6px; height: 6px; background: var(--yellow); border-radius: 50%; }
.hero-slide__identity { margin: 24px 0 0; max-width: 430px; color: #bacac0; font-size: .7rem; line-height: 1.9; letter-spacing: .13em; text-transform: uppercase; }
.hero-slide__title { margin: 22px 0; max-width: 650px; font-size: clamp(2.8rem, 4.7vw, 4.8rem); font-weight: 800; letter-spacing: -.055em; line-height: 1.04; color: #fff; text-wrap: balance; }
.hero-slide__description { max-width: 490px; margin: 0; color: #d0ddd5; font-size: 1.1rem; line-height: 1.8; }
.hero-slide__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.hero-button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; border: 1px solid transparent; border-radius: 999px; padding: 15px 23px; font-size: .86rem; font-weight: 800; text-decoration: none; transition: background .2s, transform .2s; }
.hero-button--primary { background: var(--yellow); color: #102119; }
.hero-button--primary:hover { color: #102119; background: #ffe92c; transform: translateY(-2px); }
.hero-button--secondary { background: #14271c; color: #fff; border-color: #66786c; }
.hero-button--secondary:hover { background: #254532; color: #fff; }
.hero-slide__note { color: #b8c8bd; font-size: .72rem; margin: 20px 0 0; }
.hero-controls { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-top: 22px; padding-bottom: 25px; }
.hero-controls[hidden] { display: none; }
.hero-pagination { display: flex; gap: 22px; }
.hero-pagination__button { display: flex; gap: 9px; align-items: center; border: 0; border-top: 2px solid #526157; padding: 15px 0 4px; background: transparent; color: #b4c4b9; font-size: .72rem; text-align: left; min-height: 44px; }
.hero-pagination__button[aria-current="true"] { color: #f4d900; border-color: #f4d900; }
.hero-pagination__number { font-weight: 800; font-variant-numeric: tabular-nums; }
.hero-navigation { display: flex; gap: 8px; align-items: center; }
.hero-control { display: inline-flex; justify-content: center; align-items: center; min-width: 44px; height: 44px; border-radius: 50%; border: 1px solid #526157; color: #fff; background: #14271c; font-size: 1.2rem; }
.hero-control--pause { padding: 0 16px; border-radius: 30px; font-size: .75rem; }
.hero-control:hover { background: #2d4937; }
.campaign-hero :is(a, button):focus-visible { outline: 3px solid #f4d900; outline-offset: 5px; }
@media (min-width: 1600px) {
  .hero-slide__media img { object-fit: contain; }
}
@media (max-width: 991px) {
  .hero-slide__layout { min-height: 620px; }
  .hero-slide__copy { width: 56%; padding-right: 15px; }
  .hero-slide__title { font-size: 3rem; }
  .hero-slide__media { left: 48%; }
  .hero-pagination { gap: 15px; }
  .hero-pagination__label { display: none; }
  .hero-pagination__button { min-width: 44px; }
}
@media (max-width: 767px) {
  .hero-slide { display: flex; flex-direction: column; }
  .hero-slide__layout { order: 0; min-height: 0; height: auto; padding: 40px 24px 28px; flex: 1; }
  .hero-slide__copy { width: 100%; padding: 0; }
  .hero-slide__title { font-size: clamp(2.4rem, 9vw, 3.5rem); max-width: 540px; }
  .hero-slide__identity { margin-top: 18px; }
  .hero-slide__description { font-size: 1rem; }
  .hero-slide__media { position: relative; inset: auto; order: 1; height: 390px; flex: 0 0 390px; }
  .hero-slide__media img { object-fit: contain; }
  .hero-slide__media::after { background: linear-gradient(180deg, #07160f, transparent 18%, transparent 85%, #07160f); }
  .hero-slide--poster .hero-slide__media { padding: 8px 20px; }
  .hero-slide--poster .hero-slide__media::after { background: none; }
  .hero-controls { gap: 12px; padding: 18px 24px; flex-wrap: wrap; }
  .hero-pagination { gap: 8px; }
  .hero-pagination__button { min-width: 30px; }
  .hero-button { padding: 14px 18px; font-size: .8rem; }
}

.section-title {
  letter-spacing: -.03em;
}

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s ease, transform .8s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.card-lift {
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.card-lift:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow);
}

.manifesto-card {
  min-height: 260px;
}

.progress-track {
  height: 10px;
  background: rgba(255,255,255,.12);
  border-radius: 999px;
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--green), var(--yellow));
  transition: width 1.2s cubic-bezier(.2,.8,.2,1);
}

.stat-value {
  font-variant-numeric: tabular-nums;
}

.network-panel {
  background:
    radial-gradient(circle at 15% 30%, rgba(8,120,63,.32), transparent 24%),
    radial-gradient(circle at 85% 70%, rgba(244,217,0,.10), transparent 20%),
    linear-gradient(145deg, #07160f, #0e2419);
}

.network-map {
  position: relative;
  min-height: 330px;
  overflow: hidden;
}

.network-map::before {
  content: "";
  position: absolute;
  inset: 10% 15%;
  border-radius: 48% 52% 45% 55% / 55% 40% 60% 45%;
  background:
    linear-gradient(135deg, rgba(8,120,63,.35), rgba(244,217,0,.10)),
    rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  transform: rotate(-8deg);
}

.network-node {
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 0 8px rgba(244,217,0,.10), 0 0 30px rgba(244,217,0,.55);
  animation: pulse 2.4s infinite;
}

.network-label {
  position: absolute;
  z-index: 2;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  color: white;
  font-size: .72rem;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.35); opacity: .72; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

.mobile-actions {
  padding-bottom: env(safe-area-inset-bottom);
}

.nav-blur {
  background: rgba(7,22,15,.88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.nav-link-custom {
  color: rgba(255,255,255,.74);
  transition: color .2s ease;
}
.nav-link-custom:hover,
.nav-link-custom.active {
  color: #fff;
}

.input-clean {
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 14px;
  padding: .85rem 1rem;
  outline: none;
  width: 100%;
}
.input-clean:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 4px rgba(8,120,63,.10);
}

.tab-btn.active {
  color: var(--green);
  border-bottom-color: var(--green);
}

.gallery-placeholder {
  min-height: 190px;
  background:
    linear-gradient(135deg, rgba(8,120,63,.85), rgba(16,33,25,.94)),
    radial-gradient(circle at 70% 20%, rgba(244,217,0,.25), transparent 28%);
}

footer a {
  color: rgba(255,255,255,.68);
}
footer a:hover { color: white; }

/* Phase 1 full-page hero. Existing brand colors are intentionally preserved. */
.campaign-hero--full { min-height: calc(100svh - 80px); }
.campaign-hero--full .hero-slides,
.campaign-hero--full .hero-slide { min-height: calc(100svh - 80px); }
.hero-slide__media--full { inset: 0; background: #07160f; }
.hero-slide__media--full img { width: 100%; height: 100%; object-fit: cover; object-position: 72% center; filter: saturate(1.08) contrast(1.02); transform: scale(1.015); transition: transform 8s ease; }
.hero-slide.is-active .hero-slide__media--full img { transform: scale(1.06); }
.hero-slide--meeting .hero-slide__media--full img { object-fit: cover; object-position: 68% center; }
.hero-slide--poster .hero-slide__media--full { padding: 0; }
.hero-slide--poster .hero-slide__media--full img { object-fit: cover; object-position: center; }
.hero-slide__media--full::after { display: none; }
.hero-slide__wash { position:absolute; inset:0; z-index:0; background:
  linear-gradient(90deg, rgba(7,22,15,.98) 0%, rgba(7,22,15,.94) 30%, rgba(7,22,15,.68) 50%, rgba(7,22,15,.18) 76%, rgba(7,22,15,.16) 100%),
  linear-gradient(0deg, rgba(7,22,15,.88) 0%, transparent 32%); }
.hero-slide__wash::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 77% 28%, rgba(244,217,0,.16), transparent 25%); mix-blend-mode:screen; }
.hero-slide__layout--full { min-height: calc(100svh - 80px); padding-top: 76px; padding-bottom: 118px; }
.hero-slide__copy--overlay { width:min(650px, 55%); padding: 28px 0; text-shadow:0 2px 24px rgba(0,0,0,.28); }
.hero-controls--floating { position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:100%; }
.hero-controls--floating::before { content:""; position:absolute; left:0; right:0; top:0; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent); }

/* Segmented join form */
.join-progress { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.join-progress__item { position:relative; display:flex; align-items:center; gap:10px; color:#94a3b8; font-weight:700; font-size:.78rem; }
.join-progress__item::after { content:""; height:2px; background:#dfe8e2; flex:1; }
.join-progress__item:last-child::after { display:none; }
.join-progress__item span { display:inline-flex; width:32px; height:32px; border-radius:50%; align-items:center; justify-content:center; border:1px solid #dfe8e2; background:#fff; }
.join-progress__item.is-active { color:var(--green); }
.join-progress__item.is-active span { background:var(--green); color:#fff; border-color:var(--green); box-shadow:0 0 0 5px rgba(8,120,63,.10); }
.join-progress__item.is-complete { color:#334155; }
.join-progress__item.is-complete span { background:var(--yellow); color:#102119; border-color:var(--yellow); }
.join-step { animation:joinFade .28s ease; }
@keyframes joinFade { from { opacity:.3; transform:translateY(8px); } to { opacity:1; transform:none; } }
.registration-type-card { cursor:pointer; }
.registration-type-card input { position:absolute; opacity:0; pointer-events:none; }
.registration-type-card__body { display:flex; min-height:210px; flex-direction:column; border:1px solid var(--border); border-radius:26px; padding:24px; background:#fff; transition:.2s ease; }
.registration-type-card__body i { width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:16px; background:var(--green-soft); color:var(--green); font-size:1.3rem; }
.registration-type-card__body strong { margin-top:25px; font-size:1.25rem; color:#102119; }
.registration-type-card__body small { color:#64748b; line-height:1.65; margin-top:8px; }
.registration-type-card input:checked + .registration-type-card__body { border-color:var(--green); box-shadow:0 0 0 4px rgba(8,120,63,.09), 0 18px 40px rgba(8,37,22,.08); transform:translateY(-3px); }
.form-label-clean { display:block; margin-bottom:.55rem; font-size:.86rem; font-weight:700; color:#334155; }
.join-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #eef2ef; padding-top:24px; }
.join-next,.join-submit,.join-back { border:0; border-radius:999px; padding:13px 22px; font-weight:800; display:inline-flex; align-items:center; gap:10px; }
.join-next,.join-submit { background:var(--green); color:#fff; }
.join-back { background:#f1f5f9; color:#334155; }
.join-submit:disabled { opacity:.65; }
.location-pill { cursor:pointer; }
.location-pill input { position:absolute; opacity:0; pointer-events:none; }
.location-pill span { display:inline-flex; border:1px solid var(--border); border-radius:999px; padding:11px 16px; background:#fff; font-size:.86rem; font-weight:700; color:#475569; transition:.2s; }
.location-pill input:checked + span { border-color:var(--green); background:var(--green-soft); color:var(--green-dark); box-shadow:0 0 0 3px rgba(8,120,63,.08); }
.interest-check { cursor:pointer; }
.interest-check input { position:absolute; opacity:0; }
.interest-check span { display:block; min-height:54px; padding:14px 15px; border:1px solid var(--border); border-radius:16px; color:#475569; font-size:.84rem; font-weight:700; background:#fff; }
.interest-check input:checked + span { border-color:var(--green); background:var(--green-soft); color:var(--green-dark); }
.location-status { font-size:.82rem; }

@media (max-width: 767px) {
  .campaign-hero--full .hero-slides,.campaign-hero--full .hero-slide { min-height:calc(100svh - 80px); }
  .campaign-hero--full .hero-slide { display:block; }
  .hero-slide__media--full { position:absolute; inset:0; height:auto; }
  .hero-slide__media--full img { object-fit:cover; object-position:65% center; }
  .hero-slide__wash { background:linear-gradient(90deg,rgba(7,22,15,.96),rgba(7,22,15,.72)),linear-gradient(0deg,rgba(7,22,15,.9),transparent 55%); }
  .hero-slide__layout--full { min-height:calc(100svh - 80px); padding:48px 24px 124px; }
  .hero-slide__copy--overlay { width:100%; padding:0; }
  .hero-controls--floating { padding-left:24px; padding-right:24px; }
  .hero-pagination__label { display:none; }
  .join-progress__item small { display:none; }
  .join-progress__item { gap:5px; }
  .registration-type-card__body { min-height:170px; }
}

/* Unified desktop/mobile navigation */
.community-dropdown { min-width: 250px; background: #fff; }
.community-dropdown .dropdown-item { padding: .7rem .85rem; font-size: .88rem; font-weight: 700; color: #334155; }
.community-dropdown .dropdown-item:hover,
.community-dropdown .dropdown-item:focus { background: var(--green-soft); color: var(--green-dark); }
.mobile-nav-link { display:block; border-radius:1rem; padding:.8rem 1rem; background:rgba(255,255,255,.05); color:#fff; text-decoration:none; font-weight:700; }
.mobile-nav-link:hover,.mobile-nav-link.active { background:rgba(255,255,255,.11); color:#fff; }
.mobile-nav-link--join { background:var(--yellow); color:#102119; }
.mobile-nav-link--join:hover { background:#ffe928; color:#102119; }
.mobile-community-menu summary::-webkit-details-marker { display:none; }
.mobile-community-menu[open] summary i { transform:rotate(180deg); }
.mobile-community-menu summary i { transition:transform .2s ease; }
.mobile-community-submenu { padding-left:.75rem; }
.mobile-community-submenu a { display:block; border-radius:.9rem; padding:.7rem .9rem; color:rgba(255,255,255,.78); text-decoration:none; font-size:.88rem; font-weight:650; background:rgba(255,255,255,.035); }
.mobile-community-submenu a:hover { color:#fff; background:rgba(255,255,255,.09); }

/* 2026-09 production navigation, gallery and mobile-width hardening */
html, body { max-width: 100%; overflow-x: hidden; }
*, *::before, *::after { box-sizing: border-box; }
img, video, iframe, svg { max-width: 100%; }
main, section, .container, .container-fluid, .row, [class*="col-"] { min-width: 0; }
.section-pad { padding: clamp(4rem, 7vw, 6rem) 0; }
.section-border-top { border-top: 1px solid var(--border); }
.section-eyebrow { color: var(--green); font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.section-eyebrow--light { color: rgba(255,255,255,.75); }
.section-eyebrow--yellow { color: var(--yellow); }

.site-header { position: sticky; top: 0; z-index: 1040; width: 100%; background: rgba(7,22,15,.96); border-bottom: 1px solid rgba(255,255,255,.10); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.site-nav { width: min(100% - 32px, 1280px); min-height: 80px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-brand { display: inline-flex; align-items: center; gap: 12px; min-width: 0; color: #fff; text-decoration: none; flex: 0 1 auto; }
.site-brand:hover { color:#fff; }
.site-brand__mark { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 14px; display:flex; align-items:center; justify-content:center; background: var(--yellow); color:#102119; font-weight:900; }
.site-brand__text { line-height: 1.1; min-width: 0; }
.site-brand__text small { display:block; color:rgba(255,255,255,.56); font-size:.65rem; font-weight:800; letter-spacing:.18em; }
.site-brand__text strong { display:block; margin-top:4px; font-size:.84rem; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap; }
.desktop-nav { display:flex; align-items:center; gap:20px; margin-left:auto; }
.site-nav-link { appearance:none; border:0; background:transparent; color:rgba(255,255,255,.72); text-decoration:none; font-size:.84rem; font-weight:700; padding:10px 0; cursor:pointer; white-space:nowrap; }
.site-nav-link:hover,.site-nav-link.active { color:#fff; }
.site-nav-link.active { position:relative; }
.site-nav-link.active::after { content:""; position:absolute; left:0; right:0; bottom:2px; height:2px; background:var(--yellow); border-radius:999px; }
.site-dropdown { position:relative; }
.site-dropdown > summary { list-style:none; display:flex; align-items:center; gap:7px; }
.site-dropdown > summary::-webkit-details-marker { display:none; }
.site-dropdown[open] > summary i { transform:rotate(180deg); }
.site-dropdown-menu { position:absolute; top:calc(100% + 12px); left:50%; transform:translateX(-50%); width:280px; padding:10px; border:1px solid var(--border); border-radius:22px; background:#fff; box-shadow:0 24px 70px rgba(7,22,15,.20); z-index:1080; }
.site-dropdown-menu a { display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:13px; color:#334155; text-decoration:none; font-size:.84rem; font-weight:700; }
.site-dropdown-menu a i { color:var(--green); }
.site-dropdown-menu a:hover { background:var(--green-soft); color:var(--green-dark); }
.site-dropdown-divider { display:block; height:1px; margin:6px 4px; background:#eef2ef; }
.site-nav-actions { display:flex; align-items:center; gap:9px; flex:0 0 auto; }
.site-login-link { color:rgba(255,255,255,.72); text-decoration:none; font-size:.82rem; font-weight:700; padding:10px 8px; }
.site-login-link:hover { color:#fff; }
.site-join-link { border-radius:999px; background:var(--yellow); color:#102119; text-decoration:none; padding:11px 18px; font-size:.82rem; font-weight:900; white-space:nowrap; }
.site-join-link:hover { color:#102119; background:#ffe82a; }
.mobile-menu-toggle { display:none; width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); color:#fff; align-items:center; justify-content:center; font-size:1.35rem; }
.mobile-menu-backdrop { position:fixed; inset:0; z-index:1090; background:rgba(0,0,0,.55); opacity:0; transition:opacity .22s ease; }
.mobile-menu-backdrop.is-visible { opacity:1; }
.mobile-menu { position:fixed; z-index:1100; top:0; right:0; bottom:0; width:min(90vw,380px); max-width:100%; background:#081b12; color:#fff; transform:translateX(102%); visibility:hidden; transition:transform .24s ease, visibility .24s; box-shadow:-24px 0 80px rgba(0,0,0,.3); overflow-y:auto; overscroll-behavior:contain; }
.mobile-menu.is-open { transform:translateX(0); visibility:visible; }
.mobile-menu__head { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:80px; padding:0 20px; border-bottom:1px solid rgba(255,255,255,.1); }
.mobile-menu__head small { display:block; color:rgba(255,255,255,.5); font-size:.65rem; font-weight:800; letter-spacing:.18em; }
.mobile-menu__head strong { display:block; margin-top:3px; text-transform:uppercase; font-size:.85rem; }
.mobile-menu__head button { width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.14); color:#fff; background:transparent; }
.mobile-menu__body { padding:16px 18px 28px; }
.mobile-site-link { width:100%; display:flex; align-items:center; justify-content:space-between; padding:13px 14px; border-radius:14px; color:rgba(255,255,255,.82); text-decoration:none; font-weight:750; border:0; }
.mobile-site-link:hover,.mobile-site-link.active { background:rgba(255,255,255,.08); color:#fff; }
.mobile-site-dropdown > summary { list-style:none; cursor:pointer; }
.mobile-site-dropdown > summary::-webkit-details-marker { display:none; }
.mobile-site-dropdown[open] > summary i { transform:rotate(180deg); }
.mobile-site-submenu { margin:4px 0 10px 14px; padding:4px 0 4px 13px; border-left:1px solid rgba(255,255,255,.14); }
.mobile-site-submenu a { display:block; padding:10px 12px; border-radius:12px; color:rgba(255,255,255,.65); text-decoration:none; font-size:.86rem; }
.mobile-site-submenu a:hover { color:#fff; background:rgba(255,255,255,.06); }
.mobile-menu__account { border-top:1px solid rgba(255,255,255,.1); margin-top:12px; padding-top:12px; }
.mobile-site-link--join { background:var(--yellow); color:#102119; margin-bottom:5px; }
.mobile-site-link--join:hover { color:#102119; background:#ffe82a; }
body.mobile-menu-open { overflow:hidden; }

.candidate-about__grid { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); align-items:center; gap:clamp(36px,7vw,88px); }
.candidate-about__photo { position:relative; border-radius:34px; overflow:hidden; background:#07160f; box-shadow:var(--shadow); min-height:540px; }
.candidate-about__photo img { width:100%; height:100%; min-height:540px; object-fit:cover; object-position:center 25%; display:block; }
.candidate-about__photo-label { position:absolute; left:20px; bottom:20px; border-radius:999px; padding:9px 14px; background:rgba(7,22,15,.84); color:#fff; font-size:.78rem; font-weight:800; backdrop-filter:blur(8px); }
.candidate-about__content h2 { margin:10px 0 20px; font-size:clamp(2.3rem,5vw,4.3rem); line-height:1.04; letter-spacing:-.05em; font-weight:850; }
.candidate-about__content p { color:#64748b; line-height:1.8; font-size:1.04rem; }
.candidate-about__lead { color:#334155!important; font-size:1.18rem!important; font-weight:600; }
.candidate-about__meta { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.candidate-about__meta span { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border); border-radius:999px; padding:9px 13px; color:#475569; font-size:.78rem; font-weight:750; }
.candidate-about__meta i { color:var(--green); }
.candidate-about__actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.btn-brand { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--green); border-radius:999px; padding:12px 19px; background:var(--green); color:#fff; text-decoration:none; font-size:.84rem; font-weight:850; }
.btn-brand:hover { color:#fff; background:var(--green-dark); }
.btn-brand--outline { background:#fff; color:var(--green); }
.btn-brand--outline:hover { color:var(--green-dark); background:var(--green-soft); }
.continuity-title { margin:12px 0 0; font-size:clamp(2.3rem,5vw,4.4rem); font-weight:850; letter-spacing:-.05em; }
.continuity-copy { color:rgba(255,255,255,.67); font-size:1.06rem; line-height:1.8; margin:18px 0 0; }
.continuity-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.continuity-btn { border-radius:999px; padding:12px 18px; text-decoration:none; font-weight:850; font-size:.84rem; }
.continuity-btn--yellow { background:var(--yellow); color:#102119; }
.continuity-btn--yellow:hover { color:#102119; background:#ffe82a; }
.continuity-btn--ghost { border:1px solid rgba(255,255,255,.24); color:#fff; }
.continuity-btn--ghost:hover { color:#fff; background:rgba(255,255,255,.07); }
.continuity-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.continuity-card { border:1px solid rgba(255,255,255,.1); border-radius:20px; padding:20px; background:rgba(255,255,255,.05); min-width:0; }
.continuity-card div { color:rgba(255,255,255,.43); font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; }
.continuity-card strong { display:block; margin-top:8px; font-size:1.05rem; }
.section-head-row { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin-bottom:34px; }
.section-head-row > div:first-child { max-width:760px; min-width:0; }
.section-head-row h2 { margin:9px 0 0; font-size:clamp(2.2rem,4.5vw,3.8rem); font-weight:850; letter-spacing:-.045em; line-height:1.08; }
.section-head-row p { margin:12px 0 0; color:#64748b; font-size:1.02rem; line-height:1.7; }
.section-head-actions { display:flex; gap:8px; flex-wrap:wrap; }
.home-gallery__grid,.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.home-gallery__item,.gallery-card { overflow:hidden; border:1px solid var(--border); border-radius:26px; background:#fff; min-width:0; box-shadow:0 10px 35px rgba(8,37,22,.055); }
.home-gallery__media,.gallery-media { position:relative; aspect-ratio:4/3; overflow:hidden; background:#07160f; }
.home-gallery__media img,.gallery-media img,.home-gallery__media video,.gallery-media video,.home-gallery__media iframe,.gallery-media iframe { width:100%; height:100%; object-fit:cover; display:block; border:0; }
.gallery-badge { position:absolute; top:12px; left:12px; display:inline-flex; align-items:center; gap:6px; padding:7px 10px; border-radius:999px; background:rgba(7,22,15,.82); color:#fff; font-size:.68rem; font-weight:850; backdrop-filter:blur(8px); }
.home-gallery__body,.gallery-card__body { padding:18px 19px 20px; }
.home-gallery__body h3,.gallery-card__body h2 { margin:0; font-size:1.04rem; font-weight:850; }
.home-gallery__body p,.gallery-card__body p { margin:7px 0 0; color:#64748b; line-height:1.6; font-size:.86rem; }
.gallery-page { background:#f8faf9; }
.gallery-page-title { margin:12px 0 0; font-size:clamp(2.7rem,6vw,5rem); font-weight:850; letter-spacing:-.05em; }
.gallery-page-lead { max-width:730px; margin:18px 0 0; color:rgba(255,255,255,.66); font-size:1.05rem; line-height:1.75; }
.empty-gallery { max-width:620px; margin:auto; text-align:center; border:1px dashed var(--border); border-radius:28px; background:#fff; padding:60px 24px; }
.empty-gallery i { font-size:2.5rem; color:var(--green); }
.empty-gallery h2 { margin:14px 0 6px; }
.empty-gallery p { color:#64748b; }
.content-section-title { margin:10px 0 0; font-size:clamp(2.2rem,4.5vw,3.7rem); line-height:1.06; font-weight:850; letter-spacing:-.045em; }
.content-section-copy { margin:17px 0 0; color:#64748b; font-size:1.05rem; line-height:1.75; }
.text-link { display:inline-flex; margin-top:22px; color:var(--green); text-decoration:none; font-weight:800; }
.action-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.action-card { border:1px solid var(--border); border-radius:24px; padding:22px; background:#f8faf9; color:#102119; text-decoration:none; min-width:0; }
.action-card:hover { color:#102119; border-color:#b9dec8; box-shadow:var(--shadow); transform:translateY(-3px); }
.action-card > span { width:46px; height:46px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:var(--green-soft); color:var(--green); font-size:1.2rem; }
.action-card h3 { margin:17px 0 0; font-size:1.12rem; font-weight:850; }
.action-card p { margin:8px 0 0; color:#64748b; font-size:.88rem; line-height:1.6; }
.participation-card { height:100%; border:1px solid var(--border); border-radius:24px; background:#fff; padding:22px; }
.participation-card > div { color:var(--green); font-size:.75rem; font-weight:900; }
.participation-card h3 { margin:12px 0 0; font-size:1.14rem; font-weight:850; }
.participation-card p { margin:10px 0 0; color:#64748b; font-size:.9rem; line-height:1.65; }
.privacy-card { border-radius:30px; padding:30px; background:#07160f; color:#fff; }
.privacy-card__head { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.privacy-card__head > div > div { color:rgba(255,255,255,.42); font-size:.68rem; text-transform:uppercase; letter-spacing:.13em; }
.privacy-card__head h3 { margin:8px 0 0; font-size:1.9rem; font-weight:850; }
.privacy-card__head > span { width:54px; height:54px; border-radius:16px; display:flex; align-items:center; justify-content:center; background:var(--yellow); color:#102119; font-size:1.35rem; flex:0 0 auto; }
.privacy-card p { margin:17px 0 0; color:rgba(255,255,255,.64); line-height:1.7; }
.live-card { height:100%; border:1px solid var(--border); border-radius:24px; background:#fff; padding:22px; }
.live-card__head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.live-card__head h3 { margin:0; font-size:1.14rem; font-weight:850; }
.live-card__head a { color:var(--green); text-decoration:none; font-size:.72rem; font-weight:850; }
.live-list { display:grid; gap:15px; margin-top:20px; }
.live-list a,.live-list > div { color:#102119; text-decoration:none; min-width:0; }
.live-list strong { display:block; font-size:.9rem; }
.live-list small { display:block; margin-top:4px; color:#94a3b8; font-size:.72rem; line-height:1.5; }
.live-list .list-kicker { color:var(--green); text-transform:uppercase; letter-spacing:.09em; font-weight:850; }
.event-link { padding-left:12px; border-left:3px solid var(--yellow); }

.manifesto-hero { background:radial-gradient(circle at 82% 28%,rgba(244,217,0,.16),transparent 25rem),linear-gradient(145deg,#07160f,#0e2419); }
.manifesto-title { margin:12px 0 0; font-size:clamp(2.7rem,6vw,5.2rem); font-weight:900; letter-spacing:-.055em; line-height:1.02; }
.manifesto-lead { margin:18px 0 0; color:rgba(255,255,255,.68); font-size:1.02rem; font-weight:750; letter-spacing:.06em; text-transform:uppercase; }
.manifesto-lead span { color:var(--yellow); padding:0 7px; }
.manifesto-page { background:#f7faf8; }
.manifesto-artwork { overflow:hidden; border-radius:28px; border:1px solid var(--border); background:#fff; box-shadow:0 18px 55px rgba(8,37,22,.10); }
.manifesto-artwork img { width:100%; display:block; }
.agenda-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.agenda-card { --agenda:#08783f; display:flex; flex-direction:column; border:1px solid var(--border); border-top:5px solid var(--agenda); border-radius:26px; background:#fff; padding:24px; min-width:0; }
.agenda-card--education { --agenda:#1565c0; }.agenda-card--youth{--agenda:#ef6c00}.agenda-card--technology{--agenda:#7b1fa2}.agenda-card--economy{--agenda:#008c95}
.agenda-card__top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.agenda-number { color:var(--agenda); font-size:.74rem; font-weight:900; letter-spacing:.12em; }
.agenda-icon { width:48px; height:48px; border-radius:15px; display:flex; align-items:center; justify-content:center; background:#eef6f1; color:var(--agenda); font-size:1.35rem; }
.agenda-card h2 { margin:16px 0 0; font-size:1.55rem; font-weight:900; letter-spacing:-.025em; }
.agenda-summary { margin:9px 0 0; color:#64748b; line-height:1.6; font-size:.9rem; }
.agenda-list { display:grid; gap:10px; margin:20px 0 0; padding:0; list-style:none; }
.agenda-list li { display:flex; gap:9px; align-items:flex-start; color:#334155; font-size:.88rem; line-height:1.55; }
.agenda-list i { color:var(--agenda); margin-top:2px; flex:0 0 auto; }
.agenda-closing { margin-top:auto; padding-top:22px; color:var(--agenda); font-size:.9rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.cms-note-card { margin-top:28px; border:1px solid var(--border); border-radius:26px; background:#fff; padding:26px; }
.cms-note-card h2 { margin:8px 0 0; font-size:1.6rem; font-weight:850; }
.cms-note-card > p { color:#64748b; margin:8px 0 0; }

@media (max-width: 1100px) {
  .desktop-nav { display:none; }
  .mobile-menu-toggle { display:inline-flex; }
  .site-login-link { display:none; }
}
@media (max-width: 767px) {
  .site-nav { width:min(100% - 24px,1280px); min-height:72px; gap:10px; }
  .site-brand__mark { width:38px; height:38px; flex-basis:38px; border-radius:12px; }
  .site-brand__text strong { font-size:.72rem; max-width:138px; overflow:hidden; text-overflow:ellipsis; }
  .site-join-link { display:none; }
  .mobile-menu-toggle { width:42px; height:42px; }
  .candidate-about__grid { grid-template-columns:1fr; gap:30px; }
  .candidate-about__photo,.candidate-about__photo img { min-height:0; height:auto; }
  .candidate-about__photo { max-height:540px; }
  .candidate-about__photo img { aspect-ratio:4/5; object-position:center 20%; }
  .candidate-about__content h2 { font-size:clamp(2.2rem,10vw,3.3rem); }
  .continuity-grid,.action-card-grid,.agenda-grid { grid-template-columns:1fr; }
  .home-gallery__grid,.gallery-grid { grid-template-columns:1fr; }
  .section-head-row { align-items:flex-start; flex-direction:column; gap:18px; }
  .section-head-row .btn-brand { width:100%; }
  .hero-slide__layout--full { padding-left:20px!important; padding-right:20px!important; }
  .hero-controls--floating { left:0!important; right:0!important; transform:none!important; width:100%!important; max-width:100%!important; padding-left:16px!important; padding-right:16px!important; }
  .hero-pagination { min-width:0; max-width:calc(100% - 110px); overflow:hidden; }
  .hero-navigation { flex:0 0 auto; }
  .hero-control--pause { display:none; }
  .hero-slide__title { overflow-wrap:anywhere; }
  .page-hero { padding:4.5rem 0 3.25rem; }
  .manifesto-artwork { border-radius:18px; }
}
@media (max-width: 390px) {
  .site-brand__text strong { max-width:112px; font-size:.68rem; }
  .mobile-menu { width:100vw; }
  .candidate-about__meta { display:grid; }
  .candidate-about__actions .btn-brand { width:100%; }
}
