:root {
  --navy-950: #032844;
  --navy-900: #073b67;
  --navy-800: #0a4d82;
  --blue-700: #0f6fb8;
  --blue-500: #3da4e5;
  --sky-100: #eaf6fd;
  --sky-50: #f5fbff;
  --ink: #0b2440;
  --muted: #60748a;
  --line: #dbe8f1;
  --surface: #ffffff;
  --surface-soft: #f4f8fb;
  --green: #12ad5c;
  --red: #e84b4b;
  --amber: #f7a928;
  --shadow: 0 18px 50px rgba(3, 40, 68, .12);
  --shadow-soft: 0 10px 28px rgba(3, 40, 68, .08);
  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-sm: 11px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--surface);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; background: var(--surface); color: var(--ink); }
body, button, input, textarea, select { font: inherit; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { border: 0; }

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

.skip-link {
  position: fixed; left: 16px; top: -100px; z-index: 1000;
  background: #fff; color: var(--navy-900); padding: 12px 16px; border-radius: 8px;
  box-shadow: var(--shadow-soft);
}
.skip-link:focus { top: 16px; }

.content-shell,
.header-shell,
.hero-shell {
  width: min(1180px, calc(100% - 36px));
  margin: 0 auto;
}

.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(219, 232, 241, .95);
}
.header-shell {
  min-height: 140px;
  display: flex; align-items: center; justify-content: flex-start; gap: 14px;
}
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: max-content; }
.brand-official { min-width: 0; }
.brand-logo { width: 500px; max-width: 100%; height: 128px; object-fit: contain; object-position: left center; }
.brand-mark {
  display: grid; place-items: center;
  width: 48px; height: 48px; border-radius: 50%;
  color: #fff; background: linear-gradient(145deg, var(--blue-700), var(--navy-950));
  font-size: 22px; box-shadow: 0 8px 22px rgba(15, 111, 184, .22);
}
.brand-copy { display: flex; flex-direction: column; line-height: 1.12; }
.brand-copy strong { font-size: 1.05rem; color: var(--navy-950); }
.brand-copy small { margin-top: 5px; color: var(--muted); font-size: .76rem; }

.main-nav { display: flex; align-items: center; gap: 4px; align-self: flex-end; margin-left: 4px; margin-bottom: 4px; }
.main-nav a {
  position: relative; padding: 18px 11px 18px;
  color: #294966; font-weight: 650; font-size: .91rem;
}
.main-nav a::after {
  content: ""; position: absolute; left: 11px; right: 11px; bottom: 10px;
  height: 3px; border-radius: 999px; background: transparent;
}
.main-nav a:hover,
.main-nav a.active { color: var(--blue-700); }
.main-nav a.active::after { background: var(--blue-700); }

.header-actions {
  margin-left: auto;
  margin-bottom: 14px;
  align-self: flex-end;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
}
.facebook-header-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #1877f2;
  color: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.45rem;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 6px 18px rgba(24,119,242,.22);
  transition: transform .15s ease, box-shadow .15s ease;
}
.facebook-header-link:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(24,119,242,.3);
}
.facebook-header-link span {
  transform: translateY(2px);
}
.language-switch {
  margin-left: 0;
  margin-bottom: 0;
  align-self: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  box-shadow: 0 6px 18px rgba(3,40,68,.06);
}
.lang-button {
  padding: 5px 7px;
  border-radius: 999px;
  cursor: pointer;
  color: var(--muted);
  background: transparent;
  font-weight: 800;
}
.lang-button:hover,
.lang-button.active {
  color: #fff;
  background: var(--navy-900);
}

.menu-toggle {
  display: none; width: 46px; height: 42px; padding: 10px;
  background: var(--surface-soft); border-radius: 10px;
}
.menu-toggle > span:not(.sr-only) {
  display: block; height: 2px; margin: 5px 0; border-radius: 2px; background: var(--navy-900);
}

.hero {
  position: relative; overflow: hidden;
  min-height: 560px;
  background:
    linear-gradient(90deg, rgba(2, 35, 62, .96) 0%, rgba(3, 52, 89, .88) 45%, rgba(5, 70, 113, .66) 100%),
    linear-gradient(145deg, #0a558e, #7dc7ef);
}
.hero-backdrop { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.hero-backdrop::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,.17) 0 2px, transparent 3px),
    radial-gradient(circle at 40% 12%, rgba(255,255,255,.12) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 70% 30%, rgba(255,255,255,.16) 0 2px, transparent 3px);
  background-size: 84px 84px, 122px 122px, 146px 146px;
  opacity: .75;
}
.hero-ridge { position: absolute; left: -8%; right: -8%; bottom: -1px; height: 52%; }
.hero-ridge::before {
  content: ""; position: absolute; inset: 0;
  background: rgba(238, 248, 255, .13);
  clip-path: polygon(0 76%, 12% 56%, 24% 68%, 39% 34%, 52% 64%, 66% 42%, 79% 66%, 91% 48%, 100% 70%, 100% 100%, 0 100%);
}
.hero-ridge-b { transform: translateY(65px); opacity: .38; }
.hero-ridge-b::before { background: rgba(220, 244, 255, .22); }

.hero-shell {
  position: relative; z-index: 2;
  min-height: 560px; padding: 74px 0 68px;
  display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(330px, .7fr);
  align-items: center; gap: 70px;
}
.hero-copy { max-width: 680px; color: #fff; }
.eyebrow,
.section-kicker {
  margin: 0 0 10px; text-transform: uppercase; letter-spacing: .105em;
  font-size: .76rem; font-weight: 800; color: var(--blue-700);
}
.hero .eyebrow { color: #9cd9ff; }
.hero h1 {
  margin: 0; font-size: clamp(3rem, 6.3vw, 5.8rem); line-height: .94;
  letter-spacing: -.045em; font-weight: 820;
}
.hero-lead {
  max-width: 650px; margin: 24px 0 0; color: rgba(255,255,255,.88);
  font-size: clamp(1rem, 1.7vw, 1.18rem); line-height: 1.67;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 48px; padding: 0 20px; border-radius: 999px;
  font-weight: 760; transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.button:hover { transform: translateY(-2px); }
.button-primary { background: #fff; color: var(--navy-900); box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.button-ghost { color: #fff; border: 1px solid rgba(255,255,255,.42); background: rgba(255,255,255,.08); }
.button-light { background: #fff; color: var(--navy-900); }
.button-secondary { color: var(--navy-900); background: var(--sky-100); }

.status-card {
  justify-self: end;
  width: min(100%, 320px);
  color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: 18px;
  background: rgba(2, 35, 62, .6); backdrop-filter: blur(12px);
  box-shadow: 0 22px 52px rgba(0,0,0,.2); overflow: hidden;
}
.status-date {
  margin: 0; padding: 17px 18px 13px;
  color: rgba(255,255,255,.8); font-size: .8rem; border-bottom: 1px solid rgba(255,255,255,.11);
}
.status-main { display: flex; align-items: center; gap: 13px; padding: 20px 18px; }
.status-main > div, .status-row > div { display: flex; flex-direction: column; gap: 3px; }
.status-main strong { font-size: 1.5rem; letter-spacing: .01em; }
.status-main span:not(.status-dot) { color: rgba(255,255,255,.76); font-size: .83rem; }
.status-dot { width: 36px; height: 36px; border-radius: 50%; flex: 0 0 auto; box-shadow: 0 0 0 6px rgba(255,255,255,.07); }
.status-dot-open { background: var(--green); }
.status-dot-closed { background: var(--red); }
.status-dot-pending { background: var(--amber); }
.status-row {
  display: flex; gap: 12px; align-items: center; min-height: 74px;
  padding: 12px 18px; border-top: 1px solid rgba(255,255,255,.09);
}
.status-icon {
  width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto;
  border-radius: 10px; background: rgba(255,255,255,.09); font-size: 1.1rem;
}
.weather-row .weather-icon {
  width: 72px;
  height: 72px;
  border-radius: 16px;
}
.weather-icon {
  color: #fff;
}
.weather-icon svg {
  width: 52px;
  height: 52px;
  display: block;
}
.weather-row {
  display: grid;
  grid-template-columns: 72px 82px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 116px;
  padding-top: 16px;
  padding-bottom: 16px;
}
.weather-temperature {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start;
  gap: 2px !important;
  min-width: 0;
  line-height: 1;
}
.status-row .weather-temperature strong {
  font-size: 4.7rem;
  line-height: .72;
  letter-spacing: -.075em;
  font-weight: 800;
}
.weather-temperature .weather-unit {
  margin-top: -4px;
  color: rgba(255,255,255,.92) !important;
  font-size: .72rem !important;
  line-height: 1;
  font-weight: 750;
}
.weather-summary {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-self: stretch;
  min-width: 0;
  color: rgba(255,255,255,.86) !important;
  font-size: 1.08rem !important;
  line-height: 1.08;
  font-weight: 400;
  transform: translateX(-8px);
  letter-spacing: 0;
  text-transform: none;
}
.weather-summary > span {
  display: block;
  color: inherit !important;
  font-size: inherit !important;
  white-space: nowrap;
}
.status-row strong { font-size: .94rem; }
.status-row span:not(.status-icon) { color: rgba(255,255,255,.72); font-size: .76rem; }
.trail-carousel-row {
  position: relative;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  column-gap: 12px;
  align-items: center;
  min-height: 116px;
  padding-top: 16px;
  padding-bottom: 16px;
  padding-right: 18px;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: background .18s ease;
}
.trail-carousel-row:hover { background: rgba(255,255,255,.06); }
.trail-carousel-row:focus-visible { outline: 2px solid rgba(255,255,255,.75); outline-offset: -3px; }
.trail-carousel-row .status-icon {
  width: 72px;
  height: 72px;
  border-radius: 16px;
  overflow: visible;
}
.trail-activity-icon {
  width: 62px;
  height: 62px;
  display: block;
  object-fit: contain;
}
.trail-activity-icon-ski {
  width: 140px;
  height: 140px;
  max-width: none;
  max-height: none;
  transform: translate(-34px, -38px);
}
.trail-activity-icon-snowshoe {
  width: 62px;
  height: 62px;
}
.trail-carousel-copy { min-width: 0; }
.trail-carousel-copy strong {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.trail-state-open { color: #7df0a9 !important; font-weight: 800; }
.trail-state-closed { color: #ff9696 !important; font-weight: 800; }
.trail-state-pending { color: #ffd277 !important; font-weight: 800; }
.trail-carousel-controls {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  display: flex !important;
  flex-direction: row !important;
  gap: 5px !important;
}
.trail-carousel-controls button {
  width: 25px; height: 25px;
  display: grid; place-items: center;
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.14);
  cursor: pointer;
  line-height: 1;
  font-size: 1rem;
}
.trail-carousel-controls button:hover { background: rgba(255,255,255,.2); }
.trail-carousel-controls button:disabled { opacity: .35; cursor: default; }

.quick-links { position: relative; z-index: 3; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 10px 30px rgba(3,40,68,.045); }
.quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.quick-card {
  min-height: 110px; display: flex; align-items: center; gap: 14px; padding: 18px 20px;
  border-right: 1px solid var(--line); transition: background .18s ease;
}
.quick-card:last-child { border-right: 0; }
.quick-card:hover { background: var(--sky-50); }
.quick-icon { flex: 0 0 64px; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; }
.quick-icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.quick-card > span:last-child { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.quick-card strong { font-size: .9rem; color: var(--navy-900); }
.quick-card small { font-size: .75rem; color: var(--muted); }

.section { padding: 78px 0; }
.section-tight { padding: 46px 0; }
.section-soft { background: var(--surface-soft); }
.section-heading,
.panel-heading {
  display: flex; align-items: end; justify-content: space-between; gap: 22px;
}
.section-heading { margin-bottom: 26px; }
.section-heading h2,
.panel-heading h2,
.cta-band h2 {
  margin: 0; color: var(--navy-950); letter-spacing: -.03em;
}
.section-heading h2 { font-size: clamp(1.8rem, 3vw, 2.55rem); }
.panel-heading h2 { font-size: 1.45rem; }
.text-link { color: var(--blue-700); font-size: .84rem; font-weight: 760; }
.text-link:hover { text-decoration: underline; }

.split-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(320px, .8fr); gap: 18px; }
.panel {
  min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius-md);
  background: #fff; box-shadow: var(--shadow-soft);
}
.panel-heading { margin-bottom: 18px; }

.map-placeholder {
  position: relative; min-height: 360px; overflow: hidden; border-radius: 14px;
  background:
    linear-gradient(rgba(7,59,103,.72), rgba(7,59,103,.76)),
    repeating-linear-gradient(36deg, #143f48 0 18px, #1f5c58 18px 36px);
}
.map-placeholder::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 28% 38%, rgba(255,255,255,.18), transparent 22%),
    radial-gradient(circle at 70% 56%, rgba(255,255,255,.11), transparent 27%);
}
.map-lines { position: absolute; inset: 0; opacity: .9; }
.map-line {
  position: absolute; display: block; width: 60%; height: 42%; border: 4px solid;
  border-radius: 50%; transform: rotate(-12deg);
}
.map-line-a { left: 11%; top: 20%; border-color: #64df77; }
.map-line-b { left: 34%; top: 34%; border-color: #56a8ff; width: 48%; transform: rotate(21deg); }
.map-line-c { left: 26%; top: 16%; border-color: #f35c5c; width: 36%; height: 58%; transform: rotate(35deg); }
.map-placeholder-copy {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(360px, calc(100% - 34px)); padding: 22px; text-align: center;
  color: #fff; background: rgba(2,35,62,.82); border: 1px solid rgba(255,255,255,.18);
  border-radius: 14px; backdrop-filter: blur(8px);
}
.map-pin { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.12); font-size: 1.4rem; }
.map-placeholder-copy strong { display: block; margin-top: 10px; font-size: 1.05rem; }
.map-placeholder-copy p { margin: 8px 0 0; color: rgba(255,255,255,.75); font-size: .82rem; line-height: 1.55; }

.trail-list { display: grid; gap: 8px; }
.trail-item {
  display: grid; grid-template-columns: 12px minmax(0,1fr) auto; gap: 10px; align-items: center;
  min-height: 38px; padding: 7px 9px; border-bottom: 1px solid #eef3f7;
}
.trail-status { width: 9px; height: 9px; border-radius: 50%; background: var(--amber); }
.trail-status.open { background: var(--green); }
.trail-status.closed { background: var(--red); }
.trail-item strong { font-size: .84rem; color: #294966; }
.trail-item span:last-child { color: var(--muted); font-size: .76rem; }

.empty-state {
  min-height: 265px; display: grid; align-content: center; justify-items: center; text-align: center;
  padding: 28px; color: var(--muted); border: 1px dashed #c7d7e3; border-radius: 13px; background: #fbfdff;
}
.empty-state > span { font-size: 2rem; margin-bottom: 10px; }
.empty-state strong { color: var(--navy-900); }
.empty-state p { max-width: 300px; margin: 7px 0 0; font-size: .82rem; line-height: 1.5; }

.feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.feature-card {
  display: flex; gap: 18px; padding: 26px; min-height: 210px;
  border: 1px solid var(--line); border-radius: var(--radius-md); background: #fff;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.feature-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-soft); border-color: #bad8eb; }
.feature-icon {
  flex: 0 0 48px; width: 48px; height: 48px; display: grid; place-items: center;
  border-radius: 13px; background: var(--sky-100); color: var(--blue-700); font-size: 1.7rem;
}
.feature-card h3 { margin: 2px 0 9px; color: var(--navy-900); }
.feature-card p { margin: 0 0 14px; color: var(--muted); font-size: .88rem; line-height: 1.58; }

.news-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.news-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-soft); }
.news-image-placeholder {
  min-height: 155px; display: grid; place-items: center;
  color: #fff; font-size: 2.3rem;
  background: linear-gradient(145deg, var(--navy-900), var(--blue-500));
}
.news-copy { padding: 20px; }
.news-date { display: block; margin-bottom: 7px; color: var(--blue-700); font-size: .75rem; font-weight: 750; }
.news-copy h3 { margin: 0; color: var(--navy-900); font-size: 1rem; }
.news-copy p { margin: 9px 0 0; color: var(--muted); font-size: .82rem; line-height: 1.52; }

.cta-band { padding: 58px 0; color: #fff; background: linear-gradient(120deg, var(--navy-950), var(--blue-700)); }
.cta-band-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.cta-band h2 { color: #fff; font-size: clamp(1.8rem, 4vw, 2.8rem); }
.cta-band p:not(.section-kicker) { margin: 10px 0 0; color: rgba(255,255,255,.74); }
.section-kicker-light { color: #a5ddff; }

.site-footer { padding: 54px 0 18px; background: #021f36; color: rgba(255,255,255,.72); }
.footer-grid { display: grid; grid-template-columns: 1.6fr .7fr .7fr; gap: 40px; }
.brand-footer .brand-copy strong { color: #fff; }
.brand-footer .brand-copy small { color: rgba(255,255,255,.58); }
.footer-grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.footer-grid p { max-width: 480px; margin: 12px 0 0; font-size: .86rem; line-height: 1.58; }
.footer-grid strong { color: #fff; margin-bottom: 5px; }
.footer-grid a:not(.brand) { font-size: .84rem; }
.footer-grid a:not(.brand):hover { color: #fff; }
.footer-bottom {
  margin-top: 42px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.1);
  display: flex; justify-content: space-between; gap: 20px; font-size: .75rem;
}

/* Internal pages */
.page-hero {
  padding: 70px 0 58px; color: #fff;
  background: linear-gradient(135deg, var(--navy-950), var(--blue-700));
}
.page-hero .eyebrow { color: #a5ddff; }
.page-hero h1 { margin: 0; font-size: clamp(2.5rem, 5vw, 4.6rem); letter-spacing: -.045em; }
.page-hero p { max-width: 720px; margin: 18px 0 0; color: rgba(255,255,255,.78); line-height: 1.65; }
.page-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(270px,.5fr); gap: 22px; }
.info-stack { display: grid; gap: 14px; }
.info-card {
  padding: 22px; border-radius: var(--radius-md); border: 1px solid var(--line); background: #fff;
}
.info-card h3 { margin: 0 0 8px; color: var(--navy-900); }
.info-card p { margin: 0; color: var(--muted); line-height: 1.56; }
.notice-card { border-left: 4px solid var(--amber); background: #fffaf0; }
.form-grid { display: grid; gap: 16px; }
.form-row { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.field { display: grid; gap: 7px; }
.field label { font-size: .82rem; font-weight: 720; color: var(--navy-900); }
.field input,
.field textarea,
.field select {
  width: 100%; min-height: 46px; border: 1px solid #c8d8e4; border-radius: 10px;
  padding: 11px 12px; color: var(--ink); background: #fff;
}
.field textarea { min-height: 140px; resize: vertical; }
.field input:focus,
.field textarea:focus,
.field select:focus { outline: 3px solid rgba(61,164,229,.16); border-color: var(--blue-500); }
.form-note { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.5; }
.page-table { width: 100%; border-collapse: collapse; }
.page-table th,
.page-table td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; font-size: .84rem; }
.page-table th { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; font-size: .72rem; font-weight: 750; }
.badge-pending { color: #8a5b00; background: #fff2cf; }
.badge-open { color: #08793a; background: #dcf7e7; }
.badge-closed { color: #a72b2b; background: #fee6e6; }

/* Admin */
.admin-body { background: #edf4f8; }
.admin-layout { min-height: 100vh; display: grid; grid-template-columns: 250px minmax(0,1fr); }
.admin-sidebar {
  position: sticky; top: 0; height: 100vh; padding: 22px 14px;
  color: #fff; background: linear-gradient(180deg, #06395f, #032844);
  display: flex; flex-direction: column;
}
.admin-brand { display: flex; align-items: center; gap: 11px; padding: 0 8px 20px; border-bottom: 1px solid rgba(255,255,255,.1); }
.admin-brand .brand-mark { width: 42px; height: 42px; background: rgba(255,255,255,.12); box-shadow: none; }
.admin-brand strong { display: block; font-size: .95rem; }
.admin-brand small { display: block; margin-top: 3px; color: rgba(255,255,255,.6); font-size: .68rem; }
.admin-nav { display: grid; gap: 4px; margin-top: 20px; }
.admin-nav a {
  display: flex; align-items: center; gap: 11px; min-height: 44px; padding: 0 12px;
  color: rgba(255,255,255,.78); border-radius: 9px; font-size: .83rem; font-weight: 650;
}
.admin-nav a:hover,
.admin-nav a.active { color: #fff; background: rgba(48,159,226,.28); }
.admin-nav .nav-icon { width: 22px; text-align: center; }
.admin-sidebar-footer { margin-top: auto; padding: 18px 8px 0; border-top: 1px solid rgba(255,255,255,.1); }
.admin-sidebar-footer a { color: rgba(255,255,255,.72); font-size: .8rem; }

.admin-main { min-width: 0; }
.admin-topbar {
  height: 64px; padding: 0 28px; display: flex; align-items: center; justify-content: space-between;
  background: #fff; border-bottom: 1px solid var(--line);
}
.admin-topbar small { color: var(--muted); }
.admin-user { display: flex; align-items: center; gap: 10px; }
.admin-user-avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--navy-900); }
.admin-user strong { display: block; font-size: .82rem; }
.admin-user span { display: block; color: var(--muted); font-size: .7rem; }
.admin-content { width: min(1320px, calc(100% - 52px)); margin: 0 auto; padding: 34px 0 56px; }
.admin-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; margin-bottom: 24px; }
.admin-heading h1 { margin: 0; color: var(--navy-950); font-size: 2rem; letter-spacing: -.03em; }
.admin-heading p { margin: 6px 0 0; color: var(--muted); }
.admin-date { color: var(--muted); font-size: .76rem; white-space: nowrap; }

.metric-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 18px; }
.metric-card {
  min-height: 108px; padding: 18px 20px; display: flex; gap: 14px; align-items: center;
  border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-soft);
}
.metric-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; color: var(--blue-700); background: var(--sky-100); font-size: 1.5rem; }
.metric-card strong { display: block; color: var(--navy-900); font-size: 1.25rem; }
.metric-card span { display: block; margin-top: 2px; color: var(--muted); font-size: .75rem; }

.admin-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-bottom: 14px; }
.admin-card { padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-soft); }
.admin-card-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.admin-card-header h2 { margin: 0; color: var(--navy-900); font-size: 1.05rem; }
.admin-button { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border-radius: 8px; color: #fff; background: var(--blue-700); font-size: .72rem; font-weight: 730; }
.admin-button-muted { color: var(--navy-900); background: var(--sky-100); }
.admin-list { display: grid; }
.admin-list-row {
  min-height: 41px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center;
  border-bottom: 1px solid #eef3f7; font-size: .79rem;
}
.admin-list-row:last-child { border-bottom: 0; }
.admin-list-row strong { color: #34516d; }
.admin-list-row span { color: var(--muted); }
.admin-note {
  padding: 14px; border: 1px solid #f0dca8; border-radius: 10px; color: #77570d; background: #fffaf0; font-size: .78rem; line-height: 1.5;
}
.admin-quick-form { display: grid; gap: 12px; }
.admin-toggle-row {
  min-height: 44px; display: flex; justify-content: space-between; gap: 12px; align-items: center;
  padding-bottom: 11px; border-bottom: 1px solid #eef3f7;
}
.admin-toggle-row:last-child { border-bottom: 0; padding-bottom: 0; }
.switch { position: relative; width: 46px; height: 26px; background: #d7e2ea; border-radius: 999px; }
.switch::after { content:""; position:absolute; width:20px; height:20px; left:3px; top:3px; border-radius:50%; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.18); }
.admin-locked { opacity: .72; }
.admin-mobile-toggle { display: none; }

@media (max-width: 980px) {
  .header-shell { min-height: 96px; }
  .brand-logo { width: 330px; height: 84px; }
  .main-nav { position: fixed; inset: 96px 0 auto; display: none; flex-direction: column; align-items: stretch; padding: 12px 18px 18px; background: #fff; border-bottom: 1px solid var(--line); box-shadow: var(--shadow-soft); }
  .main-nav.open { display: flex; }
  .main-nav a { padding: 13px 10px; }
  .main-nav a::after { display: none; }
  .menu-toggle { display: block; margin-left: auto; }
  .header-actions { margin-left: 0; margin-bottom: 6px; align-self: center; gap: 4px; }
  .language-switch { margin: 0; }
  .hero-shell { grid-template-columns: 1fr; gap: 36px; padding: 62px 0 54px; }
  .status-card { justify-self: start; max-width: 420px; width: 100%; }
  .quick-grid { grid-template-columns: repeat(2,1fr); }
  .quick-card:nth-child(2) { border-right: 0; }
  .quick-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .split-layout,
  .page-grid { grid-template-columns: 1fr; }
  .feature-grid,
  .news-grid { grid-template-columns: 1fr; }
  .feature-card { min-height: unset; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }

  .admin-layout { display: block; }
  .admin-sidebar {
    position: fixed; z-index: 200; left: -275px; top: 0; width: 250px; transition: left .2s ease;
  }
  .admin-sidebar.open { left: 0; box-shadow: 20px 0 50px rgba(0,0,0,.25); }
  .admin-mobile-toggle { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 9px; background: var(--sky-100); color: var(--navy-900); }
  .admin-topbar { padding: 0 18px; }
  .admin-content { width: min(100% - 30px, 1320px); }
}

@media (max-width: 680px) {
  .content-shell,
  .header-shell,
  .hero-shell { width: min(100% - 28px, 1180px); }
  .header-shell { min-height: 88px; }
  .main-nav { top: 88px; }
  .brand-copy small { display: none; }
  .brand-mark { width: 42px; height: 42px; }
  .brand-logo { width: 270px; height: 76px; }
  .facebook-header-link { width: 30px; height: 30px; font-size: 1.25rem; }
  .language-switch { padding: 5px 7px; gap: 3px; font-size: .72rem; }
  .lang-button { padding: 4px 6px; }
  .hero { min-height: unset; }
  .hero h1 { font-size: clamp(2.7rem, 15vw, 4.2rem); }
  .hero-actions { display: grid; }
  .button { width: 100%; }
  .status-card { border-radius: 18px; }
  .quick-grid { grid-template-columns: 1fr; }
  .quick-card { border-right: 0; border-bottom: 1px solid var(--line); }
  .quick-card:last-child { border-bottom: 0; }
  .section { padding: 56px 0; }
  .section-tight { padding: 34px 0; }
  .section-heading { align-items: flex-start; flex-direction: column; }
  .panel { padding: 16px; }
  .map-placeholder { min-height: 320px; }
  .feature-card { padding: 20px; }
  .cta-band-inner { align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid > div:first-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .form-row { grid-template-columns: 1fr; }

  .admin-content { width: min(100% - 24px, 1320px); padding-top: 24px; }
  .admin-heading { flex-direction: column; }
  .metric-grid,
  .admin-grid { grid-template-columns: 1fr; }
  .admin-topbar small { display: none; }
}


/* Homepage photographic hero — 2026-10-07 */
body[data-page="home"] .hero {
  background: url("/assets/images/hero-accueil.jpg") center 48% / cover no-repeat;
}
body[data-page="home"] .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(3, 28, 49, .66) 0%,
    rgba(3, 28, 49, .46) 32%,
    rgba(3, 28, 49, .22) 52%,
    rgba(3, 28, 49, 0) 72%
  );
}
body[data-page="home"] .hero-shell {
  position: relative;
  z-index: 2;
}
body[data-page="home"] .hero-copy h1 {
  text-shadow: 0 3px 18px rgba(0,0,0,.42);
}
body[data-page="home"] .hero-copy .eyebrow {
  color: rgba(255,255,255,.96);
  text-shadow: 0 2px 10px rgba(0,0,0,.42);
}
body[data-page="home"] .hero-copy .hero-lead {
  color: rgba(255,255,255,.97);
  text-shadow: 0 2px 12px rgba(0,0,0,.44);
}
body[data-page="home"] .hero-backdrop::before,
body[data-page="home"] .hero-ridge {
  display: none;
}


/* Homepage status card — trail and tomorrow blocks */
.trail-carousel-row {
  min-height: 116px;
  padding-top: 16px;
  padding-bottom: 16px;
}
.trail-carousel-row .status-icon {
  width: 72px;
  height: 72px;
  border-radius: 16px;
  font-size: 1.65rem;
}
.trail-carousel-row .trail-carousel-copy strong {
  max-width: 150px;
  font-size: 1.06rem;
  line-height: 1.1;
}
.trail-carousel-row .trail-activity {
  margin-top: 1px;
  color: rgba(255,255,255,.62) !important;
  font-size: .66rem !important;
  font-weight: 750;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.trail-carousel-row .trail-distance {
  display: block;
  margin-top: 1px;
  color: #d8f4ff !important;
  font-size: .73rem !important;
  font-weight: 780;
  line-height: 1.2;
  white-space: nowrap;
}
.trail-carousel-row .trail-distance[hidden] { display: none !important; }
.trail-carousel-row .trail-state {
  margin-top: 2px;
  font-size: .8rem !important;
}
.trail-carousel-row .trail-message {
  display: -webkit-box;
  max-width: 160px;
  margin-top: 3px;
  overflow: hidden;
  color: rgba(255,255,255,.9) !important;
  font-size: .7rem !important;
  line-height: 1.18;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.trail-carousel-row .trail-message[hidden] {
  display: none !important;
}
.tomorrow-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  column-gap: 18px;
  align-items: center;
  min-height: 116px;
  padding-top: 16px;
  padding-bottom: 16px;
}
.tomorrow-row .tomorrow-icon {
  width: 72px;
  height: 72px;
  border-radius: 16px;
  color: #fff;
  justify-self: start;
}
.tomorrow-icon svg {
  width: 52px;
  height: 52px;
  display: block;
}
.tomorrow-details {
  min-width: 0;
  height: 72px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.tomorrow-title {
  color: rgba(255,255,255,.95) !important;
  font-size: .72rem !important;
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  white-space: nowrap;
  margin-bottom: 4px;
}
.tomorrow-temps {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-end;
  gap: 28px !important;
  min-width: 0;
}
.tomorrow-temp {
  display: flex !important;
  flex-direction: column !important;
  gap: 1px !important;
}
.tomorrow-temp small {
  color: rgba(255,255,255,.95);
  font-size: .58rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .08em;
}
.tomorrow-temp strong {
  display: flex;
  align-items: flex-start;
  gap: 2px;
  font-size: 2.85rem !important;
  line-height: .82;
  letter-spacing: -.045em;
}
.tomorrow-weather-unit {
  margin-top: -1px;
  color: rgba(255,255,255,.92) !important;
  font-size: .6rem !important;
  line-height: 1;
  font-weight: 750;
  letter-spacing: 0;
}

/* Homepage mobile hero framing — 2026-10-08 */
@media (max-width: 680px) {
  body[data-page="home"] .hero {
    background-position: center top !important;
    background-size: 100% auto !important;
    background-repeat: no-repeat !important;
    background-color: var(--navy-950);
  }

  body[data-page="home"] .hero::before {
    background: linear-gradient(
      180deg,
      rgba(3, 28, 49, .10) 0%,
      rgba(3, 28, 49, .18) 28%,
      rgba(3, 28, 49, .72) 52%,
      var(--navy-950) 68%,
      var(--navy-950) 100%
    );
  }

  body[data-page="home"] .hero-shell {
    padding-top: clamp(220px, 58vw, 255px);
    padding-bottom: 38px;
    gap: 26px;
  }

  body[data-page="home"] .hero-copy {
    max-width: 100%;
  }

  body[data-page="home"] .hero h1 {
    font-size: clamp(2.65rem, 13vw, 3.65rem);
    line-height: .96;
  }

  body[data-page="home"] .hero-lead {
    margin-top: 18px;
    font-size: .98rem;
    line-height: 1.55;
  }

  body[data-page="home"] .hero-actions {
    margin-top: 22px;
    gap: 10px;
  }

  body[data-page="home"] .status-card {
    max-width: none;
    width: 100%;
  }
}


/* Admin mobile-first dashboard — 2026-10-08 */
.admin-topbar-left {
  display:flex;
  align-items:center;
  gap:12px;
}
.admin-topbar-left > div {
  display:flex;
  flex-direction:column;
  gap:2px;
}
.admin-topbar-left strong {
  color:var(--navy-950);
  font-size:.9rem;
}
.admin-topbar-left small {
  color:var(--muted);
  font-size:.72rem;
}
.admin-site-link {
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 12px;
  border-radius:9px;
  color:var(--navy-900);
  background:var(--sky-100);
  font-size:.76rem;
  font-weight:800;
}
.admin-brand-logo {
  width:48px;
  height:48px;
  object-fit:contain;
}
.admin-home {
  padding-bottom:60px;
}
.admin-kicker,
.admin-section-eyebrow {
  display:block;
  margin:0 0 5px;
  color:var(--blue-700);
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.admin-mobile-status-card {
  margin-bottom:18px;
  padding:22px;
  border-radius:18px;
  color:#fff;
  background:linear-gradient(145deg,var(--navy-950),var(--navy-800));
  box-shadow:0 18px 42px rgba(3,40,68,.18);
}
.admin-section-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.admin-section-head h2 {
  margin:0;
  color:inherit;
  font-size:1.15rem;
}
.admin-card .admin-section-head h2 {
  color:var(--navy-950);
}
.admin-mobile-status-card .admin-section-eyebrow {
  color:#8dd4ff;
}
.admin-live-pill {
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:999px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.04em;
}
.admin-live-pill.open { color:#ddffea; background:rgba(18,173,92,.24); border:1px solid rgba(125,240,169,.38); }
.admin-live-pill.closed { color:#ffe3e3; background:rgba(232,75,75,.22); border:1px solid rgba(255,150,150,.34); }
.admin-live-pill.pending { color:#fff0ca; background:rgba(247,169,40,.20); border:1px solid rgba(255,210,119,.34); }
.admin-status-message {
  margin:14px 0 18px;
  color:rgba(255,255,255,.78);
  font-size:.84rem;
  line-height:1.5;
}
.admin-big-actions {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.admin-action {
  min-height:82px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border-radius:14px;
  text-align:left;
  cursor:pointer;
}
.admin-action-icon {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:50%;
  font-size:1.35rem;
  font-weight:900;
}
.admin-action > span:last-child {
  display:flex;
  flex-direction:column;
  gap:3px;
}
.admin-action strong { font-size:.86rem; }
.admin-action small { font-size:.68rem; line-height:1.3; opacity:.78; }
.admin-action-open { color:#0b5530; background:#e8fbef; }
.admin-action-open .admin-action-icon { color:#fff; background:var(--green); }
.admin-action-close { color:#7b2727; background:#fff0f0; }
.admin-action-close .admin-action-icon { color:#fff; background:var(--red); }
.admin-security-note {
  margin-top:12px;
  padding:10px 12px;
  border-radius:10px;
  color:rgba(255,255,255,.70);
  background:rgba(255,255,255,.07);
  font-size:.7rem;
  line-height:1.45;
}
.admin-dashboard-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:18px;
  margin-bottom:18px;
}
.admin-dashboard-grid-single {
  grid-template-columns:minmax(0,1fr);
}
.admin-trail-summary {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin:18px 0 12px;
}
.admin-trail-summary > div {
  padding:14px;
  border-radius:12px;
  background:var(--surface-soft);
}
.admin-trail-summary strong {
  display:block;
  color:var(--navy-950);
  font-size:1.75rem;
  line-height:1;
}
.admin-trail-summary span {
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:.7rem;
}
.admin-global-trail-actions {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
  margin-bottom:12px;
}
.admin-global-trail-actions button {
  min-height:38px;
  border-radius:9px;
  cursor:pointer;
  color:var(--navy-900);
  background:var(--sky-100);
  font-size:.73rem;
  font-weight:800;
}
.admin-trail-list {
  display:grid;
}
.admin-trail-row {
  min-height:43px;
  display:grid;
  grid-template-columns:10px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  border-top:1px solid #edf3f7;
}
.admin-trail-row strong {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#34516d;
  font-size:.8rem;
}
.admin-trail-dot {
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--amber);
}
.admin-trail-dot.open { background:var(--green); }
.admin-trail-dot.closed { background:var(--red); }
.admin-trail-state {
  font-size:.64rem;
  font-weight:850;
}
.admin-trail-state.open { color:#078a45; }
.admin-trail-state.closed { color:#c23c3c; }
.admin-trail-state.pending { color:#a46c08; }
.admin-empty-mini,
.admin-loading {
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:18px 4px 4px;
  color:var(--muted);
  font-size:.76rem;
}
.admin-empty-mini strong { color:var(--navy-900); }
.admin-morning-card {
  display:flex;
  flex-direction:column;
  gap:13px;
}
.admin-field {
  display:grid;
  gap:6px;
}
.admin-field > span {
  color:#3c566d;
  font-size:.7rem;
  font-weight:800;
}
.admin-field input,
.admin-field textarea {
  width:100%;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  outline:none;
  color:var(--ink);
  background:#fff;
  resize:vertical;
}
.admin-field input:focus,
.admin-field textarea:focus {
  border-color:#8fc6e8;
  box-shadow:0 0 0 3px rgba(61,164,229,.10);
}
.admin-two-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.admin-save-button {
  min-height:44px;
  border-radius:11px;
  cursor:pointer;
  color:#fff;
  background:var(--blue-700);
  font-size:.78rem;
  font-weight:850;
}
.admin-form-hint {
  margin:0;
  color:var(--muted);
  font-size:.68rem;
  line-height:1.45;
}
.admin-next-card p {
  margin:14px 0 0;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.55;
}
.admin-toast {
  position:fixed;
  z-index:500;
  left:50%;
  bottom:22px;
  transform:translate(-50%,18px);
  max-width:min(92vw,420px);
  padding:12px 16px;
  border-radius:999px;
  color:#fff;
  background:var(--navy-950);
  box-shadow:0 12px 28px rgba(0,0,0,.22);
  font-size:.76rem;
  font-weight:750;
  opacity:0;
  pointer-events:none;
  transition:.2s ease;
}
.admin-toast.show {
  opacity:1;
  transform:translate(-50%,0);
}

@media (max-width: 760px) {
  .admin-topbar { min-height:64px; }
  .admin-content.admin-home {
    width:min(100% - 20px,1320px);
    padding-top:18px;
  }
  .admin-heading {
    margin-bottom:16px;
  }
  .admin-heading h1 {
    font-size:1.65rem;
  }
  .admin-heading p {
    font-size:.8rem;
    line-height:1.5;
  }
  .admin-date {
    display:none;
  }
  .admin-mobile-status-card {
    padding:16px;
    border-radius:16px;
  }
  .admin-big-actions {
    grid-template-columns:1fr;
  }
  .admin-action {
    min-height:70px;
  }
  .admin-dashboard-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .admin-card {
    padding:16px;
  }
  .admin-two-fields {
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width: 420px) {
  .admin-two-fields { grid-template-columns:1fr; }
  .admin-section-head { gap:10px; }
  .admin-section-head h2 { font-size:1.02rem; }
  .admin-button { padding:0 10px; }
}


/* Header Facebook + language inline — 2026-10-08 */
.header-actions {
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.facebook-header-link {
  flex: 0 0 auto;
}
.language-switch {
  flex: 0 0 auto;
}

@media (max-width: 980px) {
  .header-actions {
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
  }
}

@media (max-width: 680px) {
  .header-actions {
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
  }
}


/* Admin center status form — 2026-10-08 */
.admin-center-form {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.admin-center-message-field {
  display: grid;
  gap: 6px;
}
.admin-center-message-field > span {
  color: rgba(255,255,255,.82);
  font-size: .72rem;
  font-weight: 800;
}
.admin-center-message-field textarea {
  width: 100%;
  min-height: 86px;
  padding: 11px 12px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 8px;
  outline: none;
  color: var(--ink);
  background: #fff;
  resize: vertical;
  font: inherit;
  line-height: 1.45;
}
.admin-center-message-field textarea:focus {
  border-color: #8fc6e8;
  box-shadow: 0 0 0 3px rgba(143,198,232,.18);
}
.admin-center-apply {
  min-height: 44px;
  padding: 0 18px;
  border-radius: 8px;
  cursor: pointer;
  color: var(--navy-950);
  background: #fff;
  font-size: .8rem;
  font-weight: 900;
}
.admin-center-apply:hover {
  background: var(--sky-100);
}
.admin-action.is-selected {
  outline: 3px solid rgba(255,255,255,.82);
  outline-offset: 2px;
  box-shadow: 0 0 0 1px rgba(3,40,68,.16);
}


/* Admin trail percentage ring — 2026-10-08 */
.admin-trail-overview {
  display: grid;
  grid-template-columns: minmax(0,1fr) 160px;
  gap: 18px;
  align-items: center;
  margin: 18px 0 14px;
}
.admin-trail-overview .admin-trail-summary {
  margin: 0;
}
.admin-trail-percentage {
  display: grid;
  justify-items: center;
  gap: 9px;
}
.admin-trail-ring {
  width: 112px;
  height: 112px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #dbe3e9;
  box-shadow: inset 0 0 0 1px rgba(3,40,68,.05);
}
.admin-trail-ring-center {
  width: 76px;
  height: 76px;
  display: grid;
  place-content: center;
  justify-items: center;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 10px rgba(3,40,68,.08);
}
.admin-trail-ring-center strong {
  color: var(--navy-950);
  font-size: 1.35rem;
  line-height: 1;
}
.admin-trail-ring-center span {
  margin-top: 4px;
  color: var(--muted);
  font-size: .6rem;
  font-weight: 750;
}
.admin-trail-ring-legend {
  display: grid;
  gap: 3px;
  width: 100%;
}
.admin-trail-ring-legend span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: .59rem;
  line-height: 1.2;
}
.admin-trail-ring-legend i {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
}
.admin-trail-ring-legend i.open { background: var(--green); }
.admin-trail-ring-legend i.closed { background: var(--red); }
.admin-trail-ring-legend i.pending { background: #dbe3e9; }

@media (max-width: 520px) {
  .admin-trail-overview {
    grid-template-columns: minmax(0,1fr) 125px;
    gap: 12px;
  }
  .admin-trail-overview .admin-trail-summary {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .admin-trail-overview .admin-trail-summary > div {
    padding: 12px;
  }
  .admin-trail-ring {
    width: 98px;
    height: 98px;
  }
  .admin-trail-ring-center {
    width: 66px;
    height: 66px;
  }
  .admin-trail-ring-center strong {
    font-size: 1.18rem;
  }
}


/* Tariffs public + admin — 2026-10-08 */
.tariff-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.tariff-card {
  position:relative;
  min-height:250px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:28px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.tariff-card-featured {
  border:2px solid var(--blue-500);
  box-shadow:0 18px 40px rgba(15,111,184,.14);
}
.tariff-badge {
  align-self:flex-start;
  padding:6px 10px;
  border-radius:999px;
  color:#075f34;
  background:#dcf7e7;
  font-size:.7rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.tariff-badge-muted {
  color:var(--navy-900);
  background:var(--sky-100);
}
.tariff-label {
  margin:24px 0 8px;
  color:var(--navy-900);
  font-weight:800;
}
.tariff-price {
  display:flex;
  align-items:flex-start;
  gap:4px;
  color:var(--navy-950);
  line-height:1;
}
.tariff-price strong {
  font-size:4.5rem;
  letter-spacing:-.07em;
}
.tariff-price span {
  margin-top:9px;
  font-size:1.45rem;
  font-weight:850;
}
.tariff-note {
  margin:18px 0 0;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.55;
}
.tariff-note strong { color:var(--navy-900); }
.tariff-info-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.tariff-info-card {
  display:flex;
  gap:18px;
  padding:26px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.tariff-info-icon {
  width:52px;
  height:52px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:var(--sky-100);
  font-size:1.55rem;
}
.tariff-info-card h2 {
  margin:0 0 8px;
  color:var(--navy-950);
  font-size:1.35rem;
}
.tariff-info-card p:not(.section-kicker) {
  margin:0 0 10px;
  color:var(--muted);
  line-height:1.55;
  font-size:.88rem;
}
.tariff-confirmation-panel {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.tariff-confirmation-panel h2 {
  margin:0;
  color:var(--navy-950);
}
.tariff-confirmation-panel p:not(.section-kicker) {
  margin:9px 0 0;
  color:var(--muted);
}

.admin-tariff-layout {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);
  gap:18px;
}
.admin-tariff-card {
  padding:20px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.admin-tariff-card h2 {
  margin:0;
  color:var(--navy-950);
  font-size:1.1rem;
}
.admin-tariff-card > p {
  margin:6px 0 18px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.5;
}
.admin-tariff-form {
  display:grid;
  gap:14px;
}
.admin-tariff-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) 160px;
  gap:14px;
  align-items:end;
  padding-bottom:14px;
  border-bottom:1px solid #edf3f7;
}
.admin-tariff-row:last-of-type { border-bottom:0; }
.admin-tariff-row label,
.admin-tariff-field {
  display:grid;
  gap:6px;
}
.admin-tariff-row label > span,
.admin-tariff-field > span {
  color:#3c566d;
  font-size:.7rem;
  font-weight:800;
}
.admin-tariff-row input,
.admin-tariff-field input,
.admin-tariff-field textarea {
  width:100%;
  min-height:42px;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  color:var(--ink);
}
/* Date fields in Admin > Tarifs: fit the calendar icon and date inside the grid cell. */
.admin-tariff-row > label { min-width:0; }
.admin-tariff-row input[type="date"] {
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
  font-size:.82rem;
  padding:9px 8px;
}
.admin-tariff-field textarea {
  min-height:86px;
  resize:vertical;
}
.admin-tariff-actions {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:4px;
}
.admin-tariff-actions button {
  min-height:42px;
  padding:0 15px;
  border-radius:10px;
  cursor:pointer;
  font-size:.75rem;
  font-weight:850;
}
.admin-tariff-save {
  color:#fff;
  background:var(--blue-700);
}
.admin-tariff-reset {
  color:var(--navy-900);
  background:var(--sky-100);
}
.admin-tariff-preview {
  display:grid;
  gap:10px;
}
.admin-tariff-preview-item {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px;
  border-radius:12px;
  background:var(--surface-soft);
}
.admin-tariff-preview-item strong {
  color:var(--navy-950);
  font-size:.86rem;
}
.admin-tariff-preview-item > span {
  color:var(--blue-700);
  font-size:1.35rem;
  font-weight:900;
  white-space:nowrap;
}
.admin-tariff-preview-label {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:2px 9px;
  min-width:0;
}
.admin-tariff-preview-item .admin-tariff-stripe-fee {
  color:#6a7c8a;
  font-size:.7rem;
  font-weight:500;
  line-height:1.45;
}
.admin-tariff-preview-item .admin-tariff-stripe-fee span {
  color:inherit;
  font-size:inherit;
  font-weight:inherit;
}
.admin-tariff-meta {
  margin-top:14px;
  padding:12px;
  border-radius:10px;
  color:#5e6f80;
  background:#f7fafc;
  font-size:.7rem;
  line-height:1.5;
}

@media (max-width: 900px) {
  .tariff-grid { grid-template-columns:1fr; }
  .tariff-info-grid { grid-template-columns:1fr; }
  .admin-tariff-layout { grid-template-columns:1fr; }
}
@media (max-width: 680px) {
  .tariff-card { min-height:0; padding:22px; }
  .tariff-price strong { font-size:4rem; }
  .tariff-info-card { padding:20px; }
  .tariff-confirmation-panel {
    align-items:flex-start;
    flex-direction:column;
  }
  .admin-tariff-row { grid-template-columns:1fr; }
}


/* Admin mobile header standard — 2026-10-08 */
.admin-topbar-logo {
  width: 38px;
  height: 38px;
  object-fit: contain;
  flex: 0 0 auto;
}
.admin-topbar-left,
.admin-topbar-left > div {
  min-width: 0;
}
@media (max-width: 760px) {
  .admin-site-link {
    display: none !important;
  }
  .admin-topbar {
    justify-content: flex-start;
  }
  .admin-topbar-left {
    width: 100%;
  }
  .admin-topbar-left small {
    display: none;
  }
  .admin-topbar-left strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .95rem;
  }
}


/* Admin commanditaires — 2026-10-09 */
.admin-sponsor-heading {
  align-items:flex-start;
}
.admin-sponsor-add {
  min-height:44px;
  padding:0 16px;
  border-radius:11px;
  cursor:pointer;
  color:#fff;
  background:var(--blue-700);
  font-size:.78rem;
  font-weight:850;
  box-shadow:0 10px 24px rgba(15,111,184,.16);
}
.admin-sponsor-status {
  margin:-4px 0 16px;
  padding:10px 12px;
  border-radius:10px;
  color:#075f34;
  background:#e8fbef;
  font-size:.75rem;
  font-weight:750;
}
.admin-sponsor-status.is-error {
  color:#8f2d2d;
  background:#fff0f0;
}
.admin-sponsor-list {
  display:grid;
  gap:14px;
}
.admin-sponsor-empty {
  min-height:280px;
  display:grid;
  place-items:center;
  align-content:center;
  justify-items:center;
  padding:28px;
  text-align:center;
  border:1px dashed #c7d7e3;
  border-radius:16px;
  background:#fbfdff;
}
.admin-sponsor-empty-icon {
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  margin-bottom:12px;
  border-radius:50%;
  color:var(--blue-700);
  background:var(--sky-100);
  font-size:1.55rem;
}
.admin-sponsor-empty h2 {
  margin:0;
  color:var(--navy-950);
  font-size:1.15rem;
}
.admin-sponsor-empty p {
  max-width:520px;
  margin:8px 0 18px;
  color:var(--muted);
  font-size:.8rem;
  line-height:1.55;
}
.admin-sponsor-empty button {
  min-height:42px;
  padding:0 14px;
  border-radius:10px;
  cursor:pointer;
  color:#fff;
  background:var(--blue-700);
  font-size:.75rem;
  font-weight:850;
}
.admin-sponsor-card {
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:18px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.admin-sponsor-card.is-hidden {
  opacity:.58;
}
.admin-sponsor-card-image {
  min-height:130px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:12px;
  background:var(--surface-soft);
  border:1px solid #e5eef5;
}
.admin-sponsor-card-image img {
  width:100%;
  height:130px;
  object-fit:contain;
  padding:14px;
}
.admin-sponsor-image-placeholder {
  color:var(--muted);
  font-size:.75rem;
  font-weight:800;
}
.admin-sponsor-card-copy {
  min-width:0;
  display:flex;
  flex-direction:column;
}
.admin-sponsor-card-top h2 {
  margin:6px 0 0;
  color:var(--navy-950);
  font-size:1.08rem;
}
.admin-sponsor-state {
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  color:#075f34;
  background:#dcf7e7;
  font-size:.62rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.admin-sponsor-card.is-hidden .admin-sponsor-state {
  color:#6b7280;
  background:#eef1f4;
}
.admin-sponsor-card-copy > p {
  margin:10px 0 14px;
  color:var(--muted);
  font-size:.8rem;
  line-height:1.5;
}
.admin-sponsor-card-footer {
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.admin-sponsor-link,
.admin-sponsor-no-link {
  font-size:.72rem;
  font-weight:800;
}
.admin-sponsor-link { color:var(--blue-700); }
.admin-sponsor-no-link { color:var(--muted); }
.admin-sponsor-actions {
  display:flex;
  gap:8px;
}
.admin-sponsor-actions button {
  min-height:36px;
  padding:0 11px;
  border-radius:9px;
  cursor:pointer;
  color:var(--navy-900);
  background:var(--sky-100);
  font-size:.7rem;
  font-weight:800;
}
.admin-sponsor-actions button.danger {
  color:#9b2f2f;
  background:#fff0f0;
}
.admin-sponsor-dialog {
  width:min(760px,calc(100% - 24px));
  padding:0;
  border:0;
  border-radius:18px;
  box-shadow:0 28px 80px rgba(3,40,68,.28);
}
.admin-sponsor-dialog::backdrop {
  background:rgba(3,40,68,.58);
  backdrop-filter:blur(3px);
}
.admin-sponsor-form {
  padding:22px;
}
.admin-sponsor-dialog-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding-bottom:16px;
  border-bottom:1px solid #edf3f7;
}
.admin-sponsor-dialog-head h2 {
  margin:0;
  color:var(--navy-950);
  font-size:1.25rem;
}
.admin-sponsor-close {
  width:38px;
  height:38px;
  flex:0 0 auto;
  border-radius:50%;
  cursor:pointer;
  color:var(--navy-900);
  background:var(--surface-soft);
  font-size:1.35rem;
  line-height:1;
}
.admin-sponsor-form-grid {
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:22px;
  padding:20px 0;
}
.admin-sponsor-upload-block {
  display:flex;
  flex-direction:column;
  gap:10px;
}
.admin-sponsor-preview-box {
  min-height:180px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px dashed #bfd2e1;
  border-radius:14px;
  background:#fbfdff;
  color:var(--muted);
  font-size:.78rem;
  font-weight:800;
}
.admin-sponsor-preview-box img {
  width:100%;
  height:180px;
  object-fit:contain;
  padding:16px;
}
.admin-sponsor-upload-button {
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  border-radius:10px;
  cursor:pointer;
  color:var(--navy-900);
  background:var(--sky-100);
  font-size:.74rem;
  font-weight:850;
}
.admin-sponsor-upload-block small {
  color:var(--muted);
  font-size:.66rem;
  line-height:1.45;
}
.admin-sponsor-fields {
  display:grid;
  gap:14px;
}
.admin-sponsor-fields > label:not(.admin-sponsor-active) {
  display:grid;
  gap:6px;
}
.admin-sponsor-fields label > span {
  color:#3c566d;
  font-size:.7rem;
  font-weight:800;
}
.admin-sponsor-fields input[type="text"],
.admin-sponsor-fields input[type="url"],
.admin-sponsor-fields textarea {
  width:100%;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:9px;
  outline:none;
  color:var(--ink);
  background:#fff;
}
.admin-sponsor-fields textarea {
  min-height:104px;
  resize:vertical;
}
.admin-sponsor-fields input:focus,
.admin-sponsor-fields textarea:focus {
  border-color:#8fc6e8;
  box-shadow:0 0 0 3px rgba(61,164,229,.10);
}
.admin-sponsor-active {
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px 12px;
  border-radius:10px;
  background:var(--surface-soft);
}
.admin-sponsor-active input {
  width:18px;
  height:18px;
}
.admin-sponsor-dialog-actions {
  display:flex;
  justify-content:flex-end;
  gap:9px;
  padding-top:16px;
  border-top:1px solid #edf3f7;
}
.admin-sponsor-dialog-actions button {
  min-height:42px;
  padding:0 15px;
  border-radius:10px;
  cursor:pointer;
  font-size:.74rem;
  font-weight:850;
}
.admin-sponsor-cancel {
  color:var(--navy-900);
  background:var(--sky-100);
}
.admin-sponsor-save {
  color:#fff;
  background:var(--blue-700);
}

@media (max-width:760px) {
  .admin-sponsor-heading {
    gap:14px;
  }
  .admin-sponsor-heading,
  .admin-sponsor-card-footer {
    align-items:stretch;
    flex-direction:column;
  }
  .admin-sponsor-add {
    width:100%;
  }
  .admin-sponsor-card {
    grid-template-columns:110px minmax(0,1fr);
    gap:12px;
    padding:14px;
  }
  .admin-sponsor-card-image,
  .admin-sponsor-card-image img {
    min-height:96px;
    height:96px;
  }
  .admin-sponsor-card-footer {
    display:grid;
    justify-content:stretch;
  }
  .admin-sponsor-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .admin-sponsor-form-grid {
    grid-template-columns:1fr;
  }
  .admin-sponsor-preview-box,
  .admin-sponsor-preview-box img {
    min-height:150px;
    height:150px;
  }
  .admin-sponsor-dialog-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:460px) {
  .admin-sponsor-card {
    grid-template-columns:1fr;
  }
  .admin-sponsor-card-image,
  .admin-sponsor-card-image img {
    height:120px;
  }
}


/* Sponsor carousel — 2026-10-09 */
#home-sponsors { display:flex; flex-wrap:nowrap; gap:18px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
#home-sponsors::-webkit-scrollbar { display:none; }
#home-sponsors > .sponsor-card { flex:0 0 calc((100% - 36px) / 3); min-width:0; scroll-snap-align:start; scroll-snap-stop:always; }
#home-sponsors > .sponsor-card:only-child { margin-inline:auto; }
@media (max-width:680px) { #home-sponsors { gap:14px; } #home-sponsors > .sponsor-card { flex-basis:100%; } }


/* News carousel — 2026-10-09 */
#news-grid { display:flex; flex-wrap:nowrap; gap:18px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
#news-grid::-webkit-scrollbar { display:none; }
#news-grid > .news-card { flex:0 0 calc((100% - 36px) / 3); min-width:0; scroll-snap-align:start; scroll-snap-stop:always; }
#news-grid > .news-card:only-child { margin-inline:auto; }
@media (max-width:680px) { #news-grid { gap:14px; } #news-grid > .news-card { flex-basis:100%; } }


/* Sponsor carousel dots — 2026-10-09 */
.sponsor-carousel-dots { display:flex; justify-content:center; align-items:center; gap:8px; margin-top:16px; min-height:14px; }
.carousel-dot { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:#b8c8d4; cursor:pointer; transition:transform .18s ease, background .18s ease; }
.carousel-dot.is-active { background:var(--blue-700); transform:scale(1.25); }
.carousel-dot:focus-visible { outline:2px solid var(--blue-500); outline-offset:3px; }


/* Nouvelles officielles — contenu publié depuis D1, photos depuis R2 */
.public-news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:22px}
.public-news-grid .news-article-card{display:block;min-width:0;scroll-margin-top:95px}
.public-news-grid .news-article-card .news-image-placeholder{min-height:180px;height:230px}
.public-news-grid .news-article-card .news-image-placeholder img{height:230px;max-height:none;object-fit:cover;width:100%}
.news-article-card .news-copy h2{font-size:1.22rem;color:#093e67;margin:10px 0;line-height:1.35}
.news-article-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;color:#244966}
.news-article-pinned{border:2px solid #9cc6dd}
.news-card h3 a{color:inherit;text-decoration:none}
.news-card h3 a:hover{text-decoration:underline}
.news-none{color:#506f84;padding:28px 12px}


/* Connexion des bénévoles : liens sobres et clairs */
.admin-sidebar-footer{display:flex;flex-direction:column;gap:13px}
.admin-sidebar-footer a{display:flex;align-items:center;min-height:36px;line-height:1.35}
.admin-sidebar-footer a:hover,.admin-sidebar-footer a:focus-visible{color:#fff;text-decoration:underline}
.admin-sidebar-footer .admin-logout-link{color:#fff;font-weight:800;border-top:1px solid rgba(255,255,255,.10);padding-top:11px}
.footer-admin-link{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.footer-admin-link:hover,.footer-admin-link:focus-visible{color:#d2eefa}

/* Admin home: statistiques billetterie simples et lisibles au premier coup d'œil. */
.admin-online-tickets{
  display:block;
  margin:0 0 18px;
  padding:20px 22px;
  border-top:4px solid #1879ae;
}
.admin-online-tickets-heading{display:flex;align-items:center;gap:12px;margin-bottom:17px}
.admin-online-tickets-heading h2{margin:2px 0 0;color:#073b67;font-size:1.15rem;line-height:1.3}
.admin-online-tickets-icon{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;border-radius:10px;background:#eaf6fd;font-size:1.55rem}
.admin-online-tickets-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.admin-online-ticket-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:112px;padding:14px 8px;border:1px solid #dce9f1;border-radius:8px;background:#f4f8fb;text-align:center}
.admin-online-ticket-stat>span{color:#435b6f;font-size:.81rem;font-weight:800;line-height:1.4}
.admin-online-ticket-stat strong{display:block;margin:8px 0 2px;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.1;color:#073b67;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.admin-online-ticket-stat small{color:#60748a;font-size:.68rem;line-height:1.4}
.admin-online-tickets-status{margin:14px 0 0;color:#60748a;font-size:.77rem;line-height:1.5}
@media(max-width:600px){
  .admin-online-tickets{padding:16px 13px}
  .admin-online-tickets-heading{margin-bottom:12px}
  .admin-online-tickets-heading h2{font-size:1.04rem}
  .admin-online-tickets-icon{width:40px;height:40px;flex-basis:40px;font-size:1.35rem}
  .admin-online-tickets-stats{gap:6px}
  .admin-online-ticket-stat{min-height:104px;padding:10px 5px}
  .admin-online-ticket-stat>span{font-size:.71rem}
  .admin-online-ticket-stat strong{font-size:clamp(1.18rem,5vw,1.65rem);letter-spacing:-.02em}
  .admin-online-ticket-stat small{font-size:.62rem}
}

/* Rapport des ventes pour la comptabilité: visible aux Admins seulement. */
.admin-online-tickets-stats.has-export{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(185px,.95fr)}
.admin-online-ticket-export[hidden]{display:none!important}
.admin-online-ticket-export{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:9px;min-width:0;padding:10px 5px}
.admin-online-ticket-export-button{display:flex;align-items:center;justify-content:center;min-height:47px;padding:12px;border-radius:7px;background:#0a5f95;color:#fff;font-size:.8rem;font-weight:800;line-height:1.35;cursor:pointer;text-align:center}
.admin-online-ticket-export-button:hover:not(:disabled){background:#084c77}
.admin-online-ticket-export-button:focus-visible{outline:3px solid #269de1;outline-offset:2px}
.admin-online-ticket-export-button:disabled{cursor:not-allowed;background:#e7eef4;color:#60768a;border:1px solid #d3dfe9}
.admin-online-ticket-export small{font-size:.69rem;color:#60748a;line-height:1.4;text-align:center}
@media(max-width:800px){
 .admin-online-tickets-stats.has-export{grid-template-columns:repeat(3,minmax(0,1fr))}
 .admin-online-ticket-export{grid-column:1/-1;justify-self:stretch;padding:5px 0 0}
 .admin-online-ticket-export-button{width:100%}
}


/* Navigation visiteur : CTA discret vers Se connecter ou Mon compte. */
.main-nav a.nav-member-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:39px;
  padding:9px 14px;
  border:1px solid #bdd6e5;
  border-radius:8px;
  background:#eaf5fb;
  color:#0a5d89;
  margin:3px 0 5px 8px;
  font-size:.83rem;
  font-weight:800;
  line-height:1.3;
  white-space:nowrap;
}
.main-nav a.nav-member-link:hover,
.main-nav a.nav-member-link:focus-visible {background:#d5edf9;color:#06496e;border-color:#9bcbe2}
.main-nav a.nav-member-link::after {display:none}
@media(max-width:900px) {
  .main-nav a.nav-member-link {margin:6px 0 2px;padding:12px 13px;width:100%;justify-content:flex-start;white-space:normal}
}

/* Partager une nouvelle — public, sans dépendance aux réseaux sociaux. */
.news-article-card .news-copy h2 a{color:inherit;text-decoration:none}
.news-article-card .news-copy h2 a:hover{text-decoration:underline;text-underline-offset:3px}
.news-article-detail{grid-column:1/-1;width:100%;max-width:850px;margin-inline:auto}
.news-share{position:relative;margin-top:17px;font-size:.83rem;line-height:1.45}
.news-share-trigger{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;
 min-height:40px;padding:9px 15px;border:1px solid #91c1db;border-radius:9px;
 color:#09507c;background:#eaf6fb;font:inherit;font-size:.82rem;font-weight:800;
 cursor:pointer;transition:background .16s ease,border-color .16s ease}
.news-share-trigger:hover,.news-share-trigger[aria-expanded="true"]{background:#d2edf9;border-color:#368cbd}
.news-share-trigger:focus-visible,.news-share-option:focus-visible{outline:3px solid #56b1e0;outline-offset:3px}
.news-share-menu{box-sizing:border-box;display:grid;gap:5px;width:min(100%,370px);margin-top:8px;
 padding:11px;border:1px solid #bfdbea;border-radius:11px;background:#f7fcff;
 box-shadow:0 9px 21px rgba(11,65,103,.09)}
.news-share-option{appearance:none;display:block;width:100%;box-sizing:border-box;
 border:0;border-radius:7px;background:#fff;color:#104865;text-align:left;text-decoration:none;
 padding:11px 12px;font:inherit;font-size:.84rem;font-weight:740;cursor:pointer}
.news-share-option:hover{background:#e1f1fa;color:#063b62}
.news-share-note{margin:4px 4px 0;color:#557387;font-size:.73rem;line-height:1.5}
.news-share-feedback{margin:0 4px;color:#126443;font-weight:770;font-size:.78rem}
.news-share-feedback:empty{display:none}
.news-share-copy-fallback{box-sizing:border-box;width:100%;max-width:100%;min-height:35px;
 margin-top:6px;padding:6px 9px;border:1px solid #a4cbdf;border-radius:6px;
 background:#fff;color:#143f58;font:inherit;font-size:.76rem}
@media(max-width:680px){.news-share-menu{width:100%}.news-share-trigger{min-height:44px}}

/* En-tête public unifié — 2026-10-28 : compte au-dessus de FR / EN. */
.site-header .facebook-header-link { display: none; }
.site-header .header-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-bottom: 10px;
  min-width: 124px;
}
.site-header .header-member-link {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid #bdd6e5;
  border-radius: 8px;
  background: #eaf5fb;
  color: #0a5d89;
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}
.site-header .header-member-link:hover,
.site-header .header-member-link:focus-visible {
  background: #d5edf9;
  color: #06496e;
  border-color: #9bcbe2;
}
.site-header .header-member-link:focus-visible,
.site-header .lang-button:focus-visible { outline: 3px solid #269de1; outline-offset: 2px; }
.site-header .language-switch { margin: 0; align-self: center; }
@media (max-width: 980px) {
  .site-header .header-actions { align-self: center; margin-bottom: 0; gap: 5px; }
}
@media (max-width: 680px) {
  .site-header .header-shell { gap: 7px; }
  .site-header .brand-logo { width: min(44vw, 190px); height: auto; max-height: 76px; }
  .site-header .header-actions { min-width: 104px; gap: 4px; }
  .site-header .header-member-link { min-height: 34px; padding: 7px 8px; font-size: .73rem; }
}


/* Pied de page officiel du club — 28 octobre 2026 */
.site-footer {
  position: relative;
  overflow: hidden;
  border-top: 3px solid #3c9cd0;
  background:
    radial-gradient(ellipse 470px 210px at 12% 0%, rgba(35, 151, 215, .19), transparent 75%),
    linear-gradient(135deg, #052f4d 0%, #021f36 48%, #001726 100%);
}
.site-footer .footer-grid { align-items: start; gap: clamp(18px, 3vw, 40px); }
.site-footer .footer-grid > div:first-child {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  padding: 22px 24px;
  border: 1px solid rgba(150, 210, 246, .23);
  border-radius: 18px;
  background: linear-gradient(130deg, rgba(255, 255, 255, .085), rgba(255, 255, 255, .025));
  box-shadow: 0 14px 32px rgba(0, 13, 28, .16);
}
.site-footer .brand-footer-official {
  display: inline-flex;
  max-width: 100%;
  flex-wrap: wrap;
  align-items: center;
  gap: 17px;
  text-decoration: none;
}
.site-footer .footer-official-logo {
  display: block;
  box-sizing: border-box;
  flex: 0 0 auto;
  width: 176px;
  height: 86px;
  padding: 8px 9px;
  object-fit: contain;
  border: 1px solid rgba(204, 235, 251, .75);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(0, 13, 28, .28);
}
.site-footer .brand-footer-official .brand-copy {
  display: flex;
  flex: 1 1 150px;
  flex-direction: column;
  min-width: 0;
}
.site-footer .brand-footer-official .brand-copy strong {
  margin: 0;
  color: #fff;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  font-weight: 850;
  line-height: 1.14;
  letter-spacing: -.035em;
}
.site-footer .brand-footer-official .brand-copy small {
  margin-top: 8px;
  color: #a9defb;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .055em;
}
.site-footer .brand-footer-official .brand-copy::after {
  content: "";
  display: block;
  width: 62px;
  height: 3px;
  margin-top: 13px;
  border-radius: 8px;
  background: linear-gradient(90deg, #4dbbef, #aee7fa 58%, transparent);
}
.site-footer .footer-grid > div:not(:first-child) > strong {
  position: relative;
  padding-bottom: 10px;
  margin-bottom: 4px;
  font-size: .9rem;
  letter-spacing: .02em;
}
.site-footer .footer-grid > div:not(:first-child) > strong::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 36px;
  height: 2px;
  border-radius: 4px;
  background: #55b8ed;
}
.site-footer .footer-grid a:not(.brand) {
  text-decoration: none;
  text-underline-offset: 4px;
  transition: color .15s ease;
}
.site-footer .footer-grid a:not(.brand):hover,
.site-footer .footer-grid a:not(.brand):focus-visible {
  color: #fff;
  text-decoration: underline;
}
.site-footer .brand-footer-official:focus-visible {
  border-radius: 12px;
  outline: 3px solid #84d6ff;
  outline-offset: 6px;
}
.site-footer .footer-bottom { border-top-color: rgba(164, 215, 244, .18); }
@media (max-width: 680px) {
  .site-footer { padding-top: 34px; }
  .site-footer .footer-grid > div:first-child { padding: 17px 16px; }
  .site-footer .brand-footer-official { gap: 13px; }
  .site-footer .footer-official-logo { width: 146px; height: 74px; padding: 6px; }
  .site-footer .brand-footer-official .brand-copy strong { font-size: 1.27rem; }
  .site-footer .brand-footer-official .brand-copy small { font-size: .72rem; }
}
