/* Global footer system: shared across all pages */
@import url("./primitives.css");

footer[role="contentinfo"]{
  --ft-bg: var(--pri, #2563eb);
  --ft-bg-soft: var(--surf, rgba(255,255,255,0.03));
  --ft-bg-soft-2: var(--surf2, rgba(255,255,255,0.05));
  --ft-border: var(--bdr, rgba(255,255,255,0.12));
  --ft-border-strong: var(--bdr-hi, rgba(255,255,255,0.22));
  --ft-text: #ffffff;
  --ft-muted: color-mix(in srgb, #ffffff 88%, #dbe7ff 12%);
  --ft-dim: color-mix(in srgb, #ffffff 72%, #b9ccff 28%);
  --ft-accent: var(--pri, #2563eb);
  --ft-accent-soft: var(--pri-lo, rgba(37,99,235,0.12));
  --ft-accent-border: var(--pri-bdr, rgba(37,99,235,0.32));

  position: relative;
  background: var(--ft-bg);
  border-top: none !important;
  margin-top: clamp(48px, 7vw, 88px);
}

footer[role="contentinfo"]::before{
  display: none !important;
}


footer[role="contentinfo"] .wrap{
  width: min(1200px, calc(100% - 2rem));
  margin-inline: auto;
}

footer[role="contentinfo"] .ft-main{
  padding: clamp(2.25rem, 4vw, 3.8rem) 0 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 2rem);
}

footer[role="contentinfo"] .ft-col-h{
  display: flex;
  align-items: center;
  margin-bottom: .95rem;
  color: var(--ft-dim);
  font-family: 'Inter', sans-serif;
  font-size: .6rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}

footer[role="contentinfo"] .ft-links{
  display: flex;
  flex-direction: column;
  gap: .62rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

footer[role="contentinfo"] .ft-links a,
footer[role="contentinfo"] .ft-links .is-disabled{
  color: var(--ft-text);
  font-size: .88rem;
  line-height: 1.35;
  text-decoration: none;
}

footer[role="contentinfo"] .ft-links a{
  transition: color .2s ease, transform .2s ease;
}

footer[role="contentinfo"] .ft-links .is-disabled{
  display: inline-block;
  opacity: 1;
  cursor: not-allowed;
}

footer[role="contentinfo"] .ft-links a:hover{
  color: #ffffff;
  transform: translateX(2px);
  border-bottom: none;
  text-decoration: none;
  box-shadow: none;
}

footer[role="contentinfo"] .ft-btm{
  margin-top: clamp(1.8rem, 3vw, 2.6rem);
  padding: 1rem 0 1.15rem;
  border-top: 1px solid var(--ft-border);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .9rem;
}

footer[role="contentinfo"] .ft-socs{
  display: inline-flex;
  flex-wrap: wrap;
  gap: .48rem;
}

footer[role="contentinfo"] .fsoc{
  width: 2rem;
  aspect-ratio: 1;
  border-radius: .62rem;
  background: color-mix(in srgb, var(--ft-bg-soft) 82%, white 18%);
  border: 1px solid color-mix(in srgb, var(--ft-border) 84%, rgba(255,255,255,.2) 16%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ft-muted);
  transition: var(--interactive-transition);
}

footer[role="contentinfo"] .fsoc:hover{
  color: var(--ft-accent);
  background: var(--ft-accent-soft);
  border-color: var(--ft-accent-border);
  transform: translateY(calc(-1 * var(--interactive-hover-lift)));
}

footer[role="contentinfo"] .ft-status-chip{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .4rem .7rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ft-bg-soft) 82%, white 18%);
  border: 1px solid color-mix(in srgb, var(--ft-border) 84%, rgba(255,255,255,.2) 16%);
  color: var(--ft-muted);
  font-size: .77rem;
  cursor: pointer;
  transition: var(--interactive-transition);
}

footer[role="contentinfo"] .ft-status-chip:hover{
  transform: translateY(calc(-1 * var(--interactive-hover-lift)));
  border-color: color-mix(in srgb, var(--ft-accent-border) 70%, rgba(255,255,255,.24) 30%);
  background: color-mix(in srgb, var(--ft-accent-soft) 38%, var(--ft-bg-soft) 62%);
  color: var(--ft-text);
}

footer[role="contentinfo"] .ft-status-chip:focus-visible{
  outline: 2px solid color-mix(in srgb, var(--ft-accent) 78%, white 22%);
  outline-offset: 2px;
}

.ft-status-modal{
  --ft-status-backdrop: rgba(3, 7, 18, .62);
  --ft-status-panel-border: rgba(255,255,255,.16);
  --ft-status-panel-bg:
    radial-gradient(120% 80% at 100% 0%, rgba(37,99,235,.24) 0%, rgba(37,99,235,0) 55%),
    radial-gradient(130% 85% at 0% 100%, rgba(59,130,246,.14) 0%, rgba(59,130,246,0) 62%),
    linear-gradient(172deg, rgba(18,30,58,.95) 0%, rgba(10,17,35,.97) 100%);
  --ft-status-panel-shadow: 0 36px 86px rgba(0,0,0,.52);
  --ft-status-panel-text: #e5ecff;
  --ft-status-head-border: rgba(255,255,255,.1);
  --ft-status-kicker-color: #c8d4f3;
  --ft-status-title-color: #86efac;
  --ft-status-title-icon-color: #4ade80;
  --ft-status-close-border: rgba(255,255,255,.18);
  --ft-status-close-bg: rgba(255,255,255,.08);
  --ft-status-close-color: #d7e1fb;
  --ft-status-summary-color: #d4def8;
  --ft-status-item-border: rgba(255,255,255,.14);
  --ft-status-item-bg: rgba(8, 15, 31, .78);
  --ft-status-comp-color: #ecf3ff;
  --ft-status-state-color: #8ef7b9;
  --ft-status-state-border: rgba(142,247,185,.34);
  --ft-status-state-bg: rgba(16,185,129,.13);
  --ft-status-footnote-border: rgba(255,255,255,.1);
  --ft-status-footnote-color: #b9c9ef;

  position: fixed;
  inset: 0;
  z-index: 1100;
  pointer-events: none;
}

html[data-theme="light"] .ft-status-modal,
html[data-theme="system"].os-light .ft-status-modal{
  --ft-status-backdrop: rgba(15, 23, 42, .35);
  --ft-status-panel-border: color-mix(in srgb, var(--bdr, rgba(0,0,0,.08)) 88%, var(--pri, #0054ad) 12%);
  --ft-status-panel-bg:
    radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, var(--pri, #0054ad) 16%, transparent) 0%, transparent 55%),
    radial-gradient(130% 85% at 0% 100%, color-mix(in srgb, var(--pri, #0054ad) 10%, transparent) 0%, transparent 62%),
    linear-gradient(172deg, color-mix(in srgb, var(--bg2, #f9fafb) 92%, white 8%) 0%, color-mix(in srgb, var(--bg, #edf3fc) 94%, white 6%) 100%);
  --ft-status-panel-shadow: 0 20px 56px rgba(15,23,42,.18);
  --ft-status-panel-text: color-mix(in srgb, var(--text, #121212) 88%, #0f172a 12%);
  --ft-status-head-border: color-mix(in srgb, var(--bdr, rgba(0,0,0,.08)) 88%, var(--pri, #0054ad) 12%);
  --ft-status-kicker-color: color-mix(in srgb, var(--muted, #556070) 85%, var(--pri, #0054ad) 15%);
  --ft-status-title-color: #047857;
  --ft-status-title-icon-color: #059669;
  --ft-status-close-border: color-mix(in srgb, var(--bdr, rgba(0,0,0,.08)) 82%, var(--pri, #0054ad) 18%);
  --ft-status-close-bg: color-mix(in srgb, var(--surf, rgba(0,0,0,.03)) 84%, var(--pri-lo, rgba(0,84,173,.1)) 16%);
  --ft-status-close-color: color-mix(in srgb, var(--text, #121212) 82%, var(--pri, #0054ad) 18%);
  --ft-status-summary-color: color-mix(in srgb, var(--muted, #556070) 92%, #0f172a 8%);
  --ft-status-item-border: color-mix(in srgb, var(--bdr, rgba(0,0,0,.08)) 85%, var(--pri, #0054ad) 15%);
  --ft-status-item-bg: color-mix(in srgb, var(--surf, rgba(0,0,0,.03)) 70%, white 30%);
  --ft-status-comp-color: color-mix(in srgb, var(--text, #121212) 88%, #0f172a 12%);
  --ft-status-state-color: #047857;
  --ft-status-state-border: rgba(4,120,87,.36);
  --ft-status-state-bg: rgba(16,185,129,.12);
  --ft-status-footnote-border: color-mix(in srgb, var(--bdr, rgba(0,0,0,.08)) 88%, var(--pri, #0054ad) 12%);
  --ft-status-footnote-color: color-mix(in srgb, var(--muted, #556070) 90%, #0f172a 10%);
}

.ft-status-modal[hidden]{
  display: none;
}

.ft-status-backdrop{
  position: absolute;
  inset: 0;
  background: var(--ft-status-backdrop);
  opacity: 0;
  transition: opacity .28s ease;
}

.ft-status-panel{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, calc(-50% + 16px)) scale(.98);
  width: min(680px, calc(100% - 1.5rem));
  max-height: min(86vh, 780px);
  overflow: auto;
  border-radius: 1.4rem;
  border: 1px solid var(--ft-status-panel-border);
  background: var(--ft-status-panel-bg);
  box-shadow: var(--ft-status-panel-shadow);
  color: var(--ft-status-panel-text);
  opacity: 0;
  backdrop-filter: blur(16px) saturate(130%);
  transition: opacity .28s ease, transform .32s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease;
}

.ft-status-modal.is-open{
  pointer-events: auto;
}

.ft-status-modal.is-open .ft-status-backdrop{
  opacity: 1;
}

.ft-status-modal.is-open .ft-status-panel{
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.ft-status-modal.is-desktop .ft-status-panel{
  left: auto;
  top: 1rem;
  right: 1rem;
  bottom: 1rem;
  width: min(430px, calc(100vw - 2rem));
  max-height: none;
  transform: translate(14px, 0);
  border-radius: 1rem;
}

.ft-status-modal.is-desktop.is-open .ft-status-panel{
  transform: translate(0, 0);
}

.ft-status-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: 1.15rem 1.2rem .75rem;
  border-bottom: 1px solid var(--ft-status-head-border);
}

.ft-status-head-copy{
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .28rem;
}

.ft-status-kicker{
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin: 0 0 .45rem;
  font-size: .72rem;
  color: var(--ft-status-kicker-color);
  text-transform: uppercase;
  letter-spacing: .09em;
}

.ft-status-title{
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: clamp(1.12rem, 1.8vw, 1.4rem);
  line-height: 1.2;
  color: var(--ft-status-title-color);
}

.ft-status-title i{
  color: var(--ft-status-title-icon-color);
}

.ft-status-subtitle{
  margin: 0;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ft-status-state-color);
}

.ft-status-close{
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  border-radius: .7rem;
  border: 1px solid var(--ft-status-close-border);
  background: var(--ft-status-close-bg);
  color: var(--ft-status-close-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--interactive-transition);
}

.ft-status-close:hover{
  transform: translateY(-1px);
  border-color: var(--ft-status-state-border);
}

.ft-status-close:focus-visible{
  outline: 2px solid color-mix(in srgb, var(--ft-status-title-icon-color) 62%, white 38%);
  outline-offset: 2px;
}

.ft-status-body{
  padding: 1rem 1.2rem 1.2rem;
}

.ft-status-meta{
  display: grid;
  gap: .62rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 0 .9rem;
}

.ft-status-meta-item{
  border: 1px solid var(--ft-status-item-border);
  background: color-mix(in srgb, var(--ft-status-item-bg) 74%, transparent 26%);
  border-radius: .85rem;
  padding: .62rem .68rem;
}

.ft-status-meta-label{
  display: block;
  font-size: .67rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ft-status-kicker-color);
}

.ft-status-meta-value{
  display: block;
  margin-top: .18rem;
  font-size: .95rem;
  color: var(--ft-status-comp-color);
}

.ft-status-overall{
  margin: 0 0 .35rem;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ft-status-state-color);
}

.ft-status-summary{
  margin: 0 0 .8rem;
  font-size: .91rem;
  line-height: 1.55;
  color: var(--ft-status-summary-color);
}

.ft-status-list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: .6rem;
}

.ft-status-item{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .8rem;
  border: 1px solid var(--ft-status-item-border);
  background: var(--ft-status-item-bg);
  border-radius: .9rem;
  padding: .72rem .8rem;
  transition: transform .2s ease, border-color .22s ease, background-color .22s ease;
}

.ft-status-item:hover{
  transform: translateY(-1px);
  border-color: var(--ft-status-state-border);
}

.ft-status-comp{
  font-size: .88rem;
  color: var(--ft-status-comp-color);
}

.ft-status-state{
  display: inline-flex;
  align-items: center;
  gap: .34rem;
  font-size: .76rem;
  color: var(--ft-status-state-color);
  padding: .2rem .48rem;
  border-radius: 999px;
  border: 1px solid var(--ft-status-state-border);
  background: var(--ft-status-state-bg);
}

.ft-status-footnote{
  margin: .92rem 0 0;
  padding-top: .85rem;
  border-top: 1px solid var(--ft-status-footnote-border);
  font-size: .8rem;
  line-height: 1.5;
  color: var(--ft-status-footnote-color);
}

.ft-status-links{
  margin-top: .7rem;
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.ft-status-link{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .4rem .62rem;
  border-radius: 999px;
  border: 1px solid var(--ft-status-item-border);
  background: var(--ft-status-item-bg);
  color: var(--ft-status-comp-color);
  text-decoration: none;
  font-size: .78rem;
  font-weight: 600;
  transition: var(--interactive-transition);
}

.ft-status-link:hover,
.ft-status-link:focus-visible{
  border-color: var(--ft-status-state-border);
  color: var(--ft-status-title-color);
  outline: none;
  transform: translateY(-1px);
}

@media (max-width: 620px){
  .ft-status-meta{
    grid-template-columns: 1fr;
  }
}

footer[role="contentinfo"] .ft-legal{
  display: inline-flex;
  flex-wrap: wrap;
  gap: .85rem 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

footer[role="contentinfo"] .ft-legal a{
  color: var(--ft-dim);
  font-size: .77rem;
  text-decoration: none;
}

footer[role="contentinfo"] .ft-legal a:hover{
  color: var(--ft-text);
  border-bottom: none;
  text-decoration: none;
  box-shadow: none;
}

footer[role="contentinfo"] .ft-badges{
  border-top: 1px solid var(--ft-border);
  padding: .75rem 0 1rem;
}

footer[role="contentinfo"] .ft-badges .wrap{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: .9rem;
  flex-wrap: wrap;
}

footer[role="contentinfo"] .ftb-compatible,
footer[role="contentinfo"] .ftb-eem{
  border: 1px solid var(--ft-border);
  background: color-mix(in srgb, var(--ft-bg-soft) 82%, white 18%);
  border-radius: .85rem;
}

footer[role="contentinfo"] .ftb-eem{
  background: #000;
  border-color: rgba(255,255,255,.14);
}

footer[role="contentinfo"] .ftb-compatible{
  display: inline-flex;
  align-items: stretch;
  overflow: hidden;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-color: color-mix(in srgb, var(--ft-border) 84%, rgba(255,255,255,.2) 16%);
  position: relative;
  isolation: isolate;
  box-shadow: none;
  transition: transform .2s ease, border-color .2s ease;
}


footer[role="contentinfo"] .ftb-compatible::after{
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 90% at 5% 100%, rgba(79,111,255,.2), transparent 70%),
    linear-gradient(105deg, rgba(255,255,255,.08) 0%, transparent 38%);
  mix-blend-mode: screen;
  opacity: .75;
  z-index: -1;
}

footer[role="contentinfo"] .ftb-compatible:hover,
footer[role="contentinfo"] .ftb-compatible:focus-within{
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--pri) 52%, var(--ft-border) 48%);
  box-shadow: none;
}

footer[role="contentinfo"] .ftb-compatible-inner{
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1.2rem .75rem 1rem;
  min-height: 3.15rem;
}

footer[role="contentinfo"] .ftb-shield{
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

footer[role="contentinfo"] .ftb-compatible-text{
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .08rem;
  line-height: 1;
  position: relative;
  padding-left: .8rem;
  align-items: flex-start;
}

footer[role="contentinfo"] .ftb-compatible-text::before{
  content: '';
  position: absolute;
  left: 0;
  top: 4%;
  bottom: 4%;
  width: 1px;
  background: linear-gradient(to bottom, rgba(255,255,255,.16), rgba(255,255,255,.52), rgba(255,255,255,.16));
}

footer[role="contentinfo"] .ftb-brand{
  font-family: 'Poppins', sans-serif;
  font-size: .9rem;
  font-weight: 700;
  color: rgba(255,255,255,.95);
  letter-spacing: -.012em;
  line-height: 1;
}

footer[role="contentinfo"] .ftb-mark{
  font-family: 'Inter', sans-serif;
  font-size: .55rem;
  letter-spacing: .08em;
  color: rgba(255,255,255,.7);
  text-transform: uppercase;
  line-height: 1.1;
  display: inline-block;
  max-width: 100%;
}

footer[role="contentinfo"] .ftb-shield img{
  display: block;
  width: 1.9rem;
  height: 2.15rem;
  transform: translateY(.5px);
  filter: drop-shadow(0 4px 10px rgba(14, 88, 255, .3));
}

footer[role="contentinfo"] .ftb-eem{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.75rem;
  aspect-ratio: 1;
  overflow: hidden;
}

footer[role="contentinfo"] .ftb-eem img{
  width: 2.5rem;
  height: 2.5rem;
  object-fit: contain;
  display: block;
}

footer[role="contentinfo"] .ft-notice{
  border-top: 1px solid var(--ft-border);
  background: inherit;
  color: var(--ft-dim);
  font-size: .72rem;
  line-height: 1.7;
  padding: .9rem 0 max(.95rem, env(safe-area-inset-bottom));
}

footer[role="contentinfo"] .ft-notice .wrap{
  text-align: justify;
}

@media (max-width: 1100px){
  footer[role="contentinfo"] .ft-main{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 760px){
  footer[role="contentinfo"] .wrap{ width: min(1200px, calc(100% - 1.5rem)); }

  footer[role="contentinfo"] .ft-main{ grid-template-columns: repeat(2, minmax(0,1fr)); }

  footer[role="contentinfo"] .ft-btm{
    flex-direction: column;
    align-items: flex-start;
  }

  .ft-status-panel{
    border-radius: 1rem;
  }
}

@media (max-width: 480px){
  footer[role="contentinfo"] .ft-main{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 360px){
  footer[role="contentinfo"] .ft-main{ grid-template-columns: 1fr; }
}

footer[role="contentinfo"] .a11y-sw{
  position: relative;
  display: inline-flex;
}

footer[role="contentinfo"] .a11y-btn{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border-radius:9px;
  background:color-mix(in srgb, var(--ft-bg-soft) 82%, white 18%);
  border:1px solid color-mix(in srgb, var(--ft-border) 84%, rgba(255,255,255,.2) 16%);
  font-size:12.5px;
  font-weight:500;
  color:color-mix(in srgb, var(--ft-text) 90%, #dbe7ff 10%);
  transition:background .2s,border-color .2s,color .2s;
  cursor:pointer;
}

footer[role="contentinfo"] .a11y-btn:hover{
  background:color-mix(in srgb, var(--ft-bg-soft-2) 76%, rgba(255,255,255,.24) 24%);
  border-color:color-mix(in srgb, var(--ft-border-strong) 82%, rgba(255,255,255,.3) 18%);
  color:color-mix(in srgb, var(--ft-text) 88%, white 12%);
}

footer[role="contentinfo"] .a11y-btn i{font-size:16px;}
footer[role="contentinfo"] .a11y-btn #a11yLabel{
  color: var(--ft-text);
}
footer[role="contentinfo"] .a11y-btn .caret{font-size:12px;margin-left:2px;transition:transform .25s ease;}
footer[role="contentinfo"] .a11y-sw.open .a11y-btn .caret{transform:rotate(180deg);}

footer[role="contentinfo"] .a11y-panel{
  position:absolute;
  bottom:calc(100% + 8px);
  left:0;
  min-width:190px;
  background:color-mix(in srgb, var(--ft-bg) 86%, rgba(255,255,255,.14) 14%);
  border:1px solid color-mix(in srgb, var(--ft-border) 80%, rgba(255,255,255,.22) 20%);
  border-radius:12px;
  padding:6px;
  box-shadow:0 -8px 32px rgba(0,0,0,.28);
  opacity:0;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .22s ease,transform .22s ease;
  z-index:200;
}

footer[role="contentinfo"] .a11y-sw.open .a11y-panel{opacity:1;pointer-events:auto;transform:translateY(0);}

footer[role="contentinfo"] .a11y-opt{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border-radius:8px;
  font-size:13px;
  font-weight:500;
  color:var(--ft-muted);
  cursor:pointer;
  transition:background .15s,color .15s;
}

footer[role="contentinfo"] .a11y-opt:hover{background:var(--ft-bg-soft-2);color:var(--ft-text);}
footer[role="contentinfo"] .a11y-opt.active{background:color-mix(in srgb, var(--ft-accent-soft) 58%, rgba(255,255,255,.2) 42%);color:color-mix(in srgb, var(--ft-accent) 78%, white 22%);}
footer[role="contentinfo"] .a11y-opt i{font-size:16px;color:var(--ft-dim);transition:color .15s;flex-shrink:0;width:18px;text-align:center;}
footer[role="contentinfo"] .a11y-opt.active i{color:var(--ft-accent);}

footer[role="contentinfo"] .theme-sw .tsw-btn{
  background:color-mix(in srgb, var(--ft-bg-soft) 82%, white 18%);
  border:1px solid color-mix(in srgb, var(--ft-border) 84%, rgba(255,255,255,.2) 16%);
  color:var(--ft-muted);
  transition:background .2s,border-color .2s,color .2s;
}
footer[role="contentinfo"] .theme-sw .tsw-btn #tswLabel{
  color: var(--ft-text);
}
footer[role="contentinfo"] .theme-sw .tsw-btn:hover{
  background:color-mix(in srgb, var(--ft-bg-soft-2) 76%, rgba(255,255,255,.24) 24%);
  border-color:color-mix(in srgb, var(--ft-border-strong) 82%, rgba(255,255,255,.3) 18%);
  color:color-mix(in srgb, var(--ft-text) 88%, white 12%);
}
footer[role="contentinfo"] .theme-sw .tsw-panel{
  background:color-mix(in srgb, var(--ft-bg) 86%, rgba(255,255,255,.14) 14%);
  border:1px solid color-mix(in srgb, var(--ft-border) 80%, rgba(255,255,255,.22) 20%);
  box-shadow:0 -8px 32px rgba(0,0,0,.22),0 2px 8px rgba(0,0,0,.1);
}
footer[role="contentinfo"] .theme-sw .tsw-opt{
  color: color-mix(in srgb, var(--ft-text) 90%, #dbe7ff 10%);
}
footer[role="contentinfo"] .theme-sw .tsw-opt i{
  color: color-mix(in srgb, var(--ft-text) 84%, #dbe7ff 16%);
}
footer[role="contentinfo"] .theme-sw .tsw-opt:hover{
  color: var(--ft-text);
}
footer[role="contentinfo"] .theme-sw .tsw-opt.active{
  background:color-mix(in srgb, var(--ft-accent-soft) 58%, rgba(255,255,255,.2) 42%);
  color:color-mix(in srgb, var(--ft-accent) 78%, white 22%);
}

.read-aloud-control{
  --read-progress:0%;
  position:fixed;
  right:16px;
  bottom:16px;
  width:min(420px, calc(100vw - 24px));
  border:1px solid color-mix(in srgb, var(--ft-border-strong) 65%, transparent);
  outline:1px solid color-mix(in srgb, var(--ft-border-strong) 20%, transparent);
  outline-offset:0;
  background:color-mix(in srgb, var(--ft-bg) 86%, #071024 14%);
  border-radius:18px;
  padding:14px 14px 12px;
  box-shadow:0 18px 45px rgba(2,6,23,.35);
  backdrop-filter:blur(16px);
  z-index:360;
  transform:translateY(20px) scale(.98);
  opacity:0;
  transition:opacity .22s ease, transform .22s ease;
}
.read-aloud-control.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}
.read-aloud-subhead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:2px;
}
.read-aloud-page{
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:var(--ft-text);
  font-weight:700;
}
.read-aloud-page i{
  font-size:15px;
  color:var(--ft-accent);
}
.read-aloud-meta{
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--ft-muted);
}
.read-aloud-meta i{
  font-size:13px;
}
.read-aloud-progress{
  position:relative;
  margin-top:10px;
  height:7px;
  border-radius:999px;
  background:color-mix(in srgb, var(--ft-bg-soft-2) 82%, transparent);
  overflow:hidden;
}
.read-aloud-progress::after{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:var(--read-progress);
  background:linear-gradient(90deg, var(--ft-accent), color-mix(in srgb, var(--ft-accent) 70%, #8bd3ff 30%));
  border-radius:inherit;
  transition:width .35s ease;
}
.read-aloud-actions{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
  margin-top:10px;
}
.read-aloud-btn{
  border:1px solid color-mix(in srgb, var(--ft-border-strong) 65%, transparent);
  outline:1px solid color-mix(in srgb, var(--ft-border-strong) 20%, transparent);
  outline-offset:0;
  background:color-mix(in srgb, var(--ft-bg) 82%, #071024 18%);
  color:var(--ft-text);
  border-radius:999px;
  min-height:42px;
  padding:0 12px;
  font:600 13px/1 system-ui,sans-serif;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  cursor:pointer;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.read-aloud-btn:hover{
  background:color-mix(in srgb, var(--ft-bg-soft-2) 78%, #112240 22%);
}
.read-aloud-btn-close{
  color:var(--ft-muted);
}
html.a11y-large-text{font-size:112%;}
html.a11y-high-contrast{
  --bg:#06080f;
  --bg2:#000;
  --card-bg:#080d1a;
  --surf:rgba(255,255,255,0.08);
  --surf2:rgba(255,255,255,0.14);
  --text:#fff;
  --muted:#f3f4f6;
  --dim:#d1d5db;
  --bdr:rgba(255,255,255,0.34);
  --bdr-hi:rgba(255,255,255,0.6);
  --pri:#7dd3fc;
  --pri-lo:rgba(125,211,252,.2);
  --pri-bdr:rgba(125,211,252,.6);
}
html.a11y-reduce-motion *,
html.a11y-reduce-motion *::before,
html.a11y-reduce-motion *::after{
  animation-duration:0.01ms !important;
  animation-iteration-count:1 !important;
  transition-duration:0.01ms !important;
  scroll-behavior:auto !important;
}

@media (max-width: 640px){
  footer[role="contentinfo"] .ft-top .wrap{
    align-items: stretch;
  }
  .read-aloud-control{
    right:12px;
    left:12px;
    bottom:12px;
    width:auto;
    border-radius:16px;
  }
  .read-aloud-actions{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

/* Footer newsletter */
footer[role="contentinfo"] .ft-news{
  margin: 1.1rem 0 0;
  display: flex;
  justify-content: center;
}

footer[role="contentinfo"] .ft-news .nl-group{
  width: min(100%, 560px);
  max-width: 560px;
  border-radius: 16px;
  border: 1px solid color-mix(in srgb, var(--ft-border) 80%, var(--ft-accent) 20%);
  background: linear-gradient(180deg, color-mix(in srgb, var(--ft-bg-soft) 84%, transparent 16%), color-mix(in srgb, var(--ft-bg-soft-2) 84%, transparent 16%));
  box-shadow: 0 10px 28px rgba(8, 18, 33, 0.08);
}

footer[role="contentinfo"] .ft-news .nl-group input[type='email']{
  padding: 13px 18px;
}

footer[role="contentinfo"] .ft-news .nl-group button{
  border-left: 1px solid color-mix(in srgb, white 30%, transparent);
  border-radius: 0;
  padding-inline: 24px;
  font-weight: 700;
  background: linear-gradient(135deg, color-mix(in srgb, var(--ft-accent) 80%, white 20%), var(--ft-accent));
}

footer[role="contentinfo"] .ft-news .nl-group button:hover{
  filter: brightness(1.05);
}

@media (max-width: 640px){
  footer[role="contentinfo"] .ft-news .nl-group{
    width: 100%;
    max-width: 100%;
  }
  footer[role="contentinfo"] .ft-news .nl-group button{
    padding-inline: 18px;
  }
}
