:root{
  --ink:#0f1c1e; --paper:#f6f1e7; --cream:#fbf7ee;
  --petrol:#0e4f4a; --petrol2:#0a3c38;
  --ember:#d8612b; --ember2:#b94d1c;
  --mute:#5a6664; --line:#dcd3bf;
}
html,body{ background:var(--paper); color:var(--ink); }
body{
  font-family:'Manrope', system-ui, sans-serif;
  font-feature-settings:"ss01","ss02";
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(rgba(15,28,30,0.025) 1px, transparent 1px),
    radial-gradient(rgba(15,28,30,0.02) 1px, transparent 1px);
  background-size: 3px 3px, 7px 7px;
  background-position: 0 0, 1px 2px;
}
.font-display{ font-family:'Fraunces', Georgia, serif; font-optical-sizing:auto; letter-spacing:-0.01em; }
.display-xl{ font-family:'Fraunces', serif; font-weight:400; font-variation-settings:"opsz" 144; line-height:.92; letter-spacing:-0.035em; }
.display-lg{ font-family:'Fraunces', serif; font-weight:400; font-variation-settings:"opsz" 96; line-height:.96; letter-spacing:-0.025em; }
.eyebrow{ font-size:11px; letter-spacing:.22em; text-transform:uppercase; font-weight:600; }

.navlink{ position:relative; padding:.4rem 0; }
.navlink::after{ content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px; background:currentColor; transition:right .35s ease; }
.navlink:hover::after, .navlink.active::after{ right:0; }

.btn{ display:inline-flex; align-items:center; gap:.6rem; padding:.85rem 1.4rem; border-radius:999px; font-weight:600; font-size:14px; letter-spacing:.01em; transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease; }
.btn-primary{ background:var(--petrol); color:var(--cream); }
.btn-primary:hover{ background:var(--petrol2); transform:translateY(-1px); box-shadow:0 10px 30px -12px rgba(14,79,74,.55); }
.btn-ghost{ border:1px solid var(--ink); color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); color:var(--cream); }
.btn-ember{ background:var(--ember); color:#fff; }
.btn-ember:hover{ background:var(--ember2); }

.hairline{ height:1px; background:var(--line); }
.num{ font-family:'Fraunces', serif; font-weight:300; font-variation-settings:"opsz" 144; color:var(--petrol); opacity:.55; }
.patient-stats .stat-number{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-variation-settings:"opsz" 96;
  line-height:.95;
  letter-spacing:0;
  color:var(--petrol2);
  text-shadow:0 1px 0 rgba(251,247,238,.8);
}
.patient-stats .stat-number::after{
  content:"";
  display:block;
  width:2.2rem;
  height:2px;
  margin-top:.45rem;
  border-radius:999px;
  background:var(--ember);
  opacity:.9;
}
.patient-stats-figure-slot{
  display:block;
  margin:0 auto;
  max-width:760px;
}
.patient-stats-figure-slot .science-thumb-trigger{
  width:100%;
  aspect-ratio:4/3;
  margin:0;
}
.patient-stats-figure-slot .science-thumb{
  border-radius:12px;
  background:var(--cream);
  object-fit:contain;
}
.morbidity-layout{
  display:grid;
  gap:1.65rem;
}
.morbidity-figure{
  margin:0;
}
.morbidity-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.45rem;
  align-items:start;
}
.morbidity-column{
  display:grid;
  gap:1.15rem;
  align-content:start;
}
.morbidity-sources{
  margin:0;
  padding-top:.85rem;
  border-top:1px solid var(--line);
  color:var(--mute);
  font-size:12px;
  line-height:1.55;
}
.morbidity-organ{
  border-top:1px solid var(--line);
  padding-top:1rem;
}
.morbidity-organ h3{
  font-family:'Fraunces', Georgia, serif;
  font-size:25px;
  line-height:1.05;
  color:var(--petrol2);
  margin-bottom:.65rem;
}
.morbidity-point{
  display:grid;
  grid-template-columns:5.8rem 4.9rem minmax(0,1fr);
  gap:.45rem .7rem;
  align-items:start;
  padding:.62rem 0;
  border-bottom:1px solid rgba(15,28,30,.075);
}
.morbidity-point:last-child{ border-bottom:0; }
.morbidity-point p{
  margin:0;
  color:rgba(15,28,30,.78);
  font-size:14px;
  line-height:1.45;
}
.morbidity-value{
  font-family:'Fraunces', Georgia, serif;
  font-size:24px;
  line-height:1;
  color:var(--petrol2);
  white-space:nowrap;
  grid-column:2;
  grid-row:1;
}
.morbidity-trend{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:4.6rem;
  border-radius:999px;
  padding:.18rem .55rem;
  font-size:10px;
  line-height:1.4;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.09em;
  white-space:nowrap;
  background:rgba(90,102,100,.12);
  color:var(--mute);
  grid-column:1;
  grid-row:1;
  justify-self:start;
}
.morbidity-point p{ grid-column:3; grid-row:1; }
.trend-up .morbidity-trend{ background:rgba(216,97,43,.14); color:var(--ember2); }
.trend-down .morbidity-trend{ background:rgba(14,79,74,.12); color:var(--petrol); }
.trend-mixed .morbidity-trend{ background:rgba(90,102,100,.14); color:var(--ink); }
@media (max-width: 900px){
  .morbidity-columns{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
  .morbidity-point{ grid-template-columns:5.6rem minmax(3.8rem,auto); }
  .morbidity-point p{ grid-column:1 / -1; grid-row:2; }
}
.prof-library-button{
  display:inline-flex;
  position:relative;
  z-index:2;
  min-width:11rem;
  min-height:3rem;
  justify-content:center;
  pointer-events:auto;
}
.prof-library-button::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
}
.science-thumb-trigger{
  display:block;
  width:min(100%, 260px);
  aspect-ratio:16/9;
  margin-top:1.25rem;
  padding:0;
  border:0;
  background:transparent;
  cursor:zoom-in;
}
.science-thumb{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:8px;
  border:1px solid var(--line);
  background:var(--cream);
  box-shadow:0 18px 44px -34px rgba(14,79,74,.55);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.science-thumb-trigger:hover .science-thumb,
.science-thumb-trigger:focus-visible .science-thumb{
  transform:translateY(-2px);
  border-color:#c9bfa6;
  box-shadow:0 24px 52px -34px rgba(14,79,74,.7);
}
.science-thumb-trigger:focus-visible{
  outline:2px solid var(--petrol);
  outline-offset:5px;
  border-radius:10px;
}
.science-lightbox{
  position:fixed;
  inset:0;
  z-index:90;
  display:none;
  background:rgba(15,28,30,.52);
  backdrop-filter:blur(8px);
}
.science-lightbox.open{ display:block; }
.science-lightbox-panel{
  position:fixed;
  overflow:hidden;
  border-radius:8px;
  border:1px solid rgba(251,247,238,.55);
  background:var(--cream);
  box-shadow:0 38px 110px -36px rgba(0,0,0,.75);
  transition:left .42s cubic-bezier(.2,.8,.2,1), top .42s cubic-bezier(.2,.8,.2,1), width .42s cubic-bezier(.2,.8,.2,1), height .42s cubic-bezier(.2,.8,.2,1), border-radius .42s cubic-bezier(.2,.8,.2,1);
}
.science-lightbox-panel img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  background:var(--cream);
}
.science-lightbox-close{
  position:fixed;
  right:clamp(1rem, 4vw, 2.5rem);
  top:clamp(1rem, 4vw, 2rem);
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(251,247,238,.55);
  background:rgba(251,247,238,.92);
  color:var(--ink);
  font-size:26px;
  line-height:1;
  cursor:pointer;
  opacity:0;
  transform:translateY(-6px);
  transition:opacity .2s ease .2s, transform .2s ease .2s;
}
.science-lightbox.open .science-lightbox-close{
  opacity:1;
  transform:none;
}
body.science-lightbox-lock{ overflow:hidden; }
.newsletter-reader{
  position:fixed;
  inset:0;
  z-index:92;
  display:none;
  background:rgba(15,28,30,.58);
  backdrop-filter:blur(8px);
}
.newsletter-reader.open{ display:block; }
.newsletter-reader-panel{
  position:fixed;
  overflow:hidden;
  border:1px solid rgba(251,247,238,.55);
  background:var(--cream);
  box-shadow:0 38px 110px -36px rgba(0,0,0,.78);
  transition:opacity .2s ease, transform .2s ease;
  opacity:0;
  transform:translateY(10px) scale(.985);
}
.newsletter-reader.open .newsletter-reader-panel{
  opacity:1;
  transform:none;
}
.newsletter-reader-bar{
  height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:0 .9rem 0 1rem;
  border-bottom:1px solid var(--line);
  background:var(--cream);
}
.newsletter-reader-title{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:700;
  color:var(--ink);
}
.newsletter-reader-open{
  flex-shrink:0;
  font-size:13px;
  font-weight:700;
  color:var(--petrol);
  text-decoration:underline;
  text-underline-offset:3px;
}
.newsletter-reader-frame{
  display:block;
  width:100%;
  height:calc(100% - 48px);
  border:0;
  background:#fff;
}
.newsletter-reader-close{
  position:fixed;
  right:clamp(1rem, 4vw, 2.5rem);
  top:clamp(1rem, 4vw, 2rem);
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(251,247,238,.55);
  background:rgba(251,247,238,.92);
  color:var(--ink);
  font-size:26px;
  line-height:1;
  cursor:pointer;
  opacity:0;
  transform:translateY(-6px);
  transition:opacity .2s ease .16s, transform .2s ease .16s;
}
.newsletter-reader.open .newsletter-reader-close{
  opacity:1;
  transform:none;
}
body.newsletter-reader-lock{ overflow:hidden; }
@media (max-width:720px){
  .newsletter-reader-bar{
    height:44px;
    padding-left:.75rem;
    padding-right:3.8rem;
  }
  .newsletter-reader-frame{ height:calc(100% - 44px); }
  .newsletter-reader-title{ font-size:14px; }
  .newsletter-reader-open{ font-size:12px; }
}
@media (prefers-reduced-motion: reduce){
  .science-thumb,
  .science-lightbox-panel,
  .science-lightbox-close,
  .newsletter-reader-panel,
  .newsletter-reader-close{ transition:none; }
}
.pull-quote{ font-family:'Fraunces', serif; font-weight:300; font-variation-settings:"opsz" 144; line-height:1.05; letter-spacing:-0.02em; }

.card{ background:var(--cream); border:1px solid var(--line); border-radius:18px; transition:transform .35s ease, box-shadow .35s ease, border-color .35s; }
.card:hover{ transform:translateY(-3px); box-shadow:0 24px 60px -32px rgba(14,79,74,.35); border-color:#c9bfa6; }

.blob{ position:absolute; inset:auto; background: radial-gradient(60% 55% at 35% 40%, rgba(216,97,43,.35), transparent 60%), radial-gradient(55% 50% at 70% 65%, rgba(14,79,74,.55), transparent 65%); filter:blur(40px); }

.marquee{ display:flex; gap:3rem; animation:marq 38s linear infinite; }
.marquee:hover{ animation-play-state:paused; }
.marquee a{ cursor:pointer; }

/* Rich-text content from the admin panel (Quill output rendered via richText()) */
/* Rich-text content from the admin panel (Quill output rendered via richText()) */
.prose-body p { margin: 0 0 0.85em 0; }
.prose-body p:last-child { margin-bottom: 0; }
.prose-body h2 { font-family:'Fraunces',serif; font-size:1.5rem; margin:1.4em 0 0.5em; line-height:1.2; }
.prose-body h3 { font-family:'Fraunces',serif; font-size:1.25rem; margin:1.2em 0 0.4em; line-height:1.25; }
.prose-body ul, .prose-body ol { padding-left: 1.4em; margin: 0.5em 0 0.85em 0; }
.prose-body ul { list-style: disc; }
.prose-body ol { list-style: decimal; }
.prose-body li { margin: 0.25em 0; }
.prose-body a { color:#0e4f4a; text-decoration:underline; text-underline-offset:3px; }
.prose-body strong { font-weight: 600; }
.prose-body blockquote {
  border-left: 3px solid #d8612b; padding: 0.3em 0 0.3em 1em;
  margin: 0.85em 0; color:#0f1c1ec0; font-style: italic;
}

/* Admin-attached images injected next to any [data-i18n] element. */
.text-image {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 14px;
  margin: 1.2em 0;
}

/* Team photo placeholder — a square card with the person's initials.
   Replace each .team-photo div with an <img class="team-photo" src="..." alt="..."/>
   when real photos are available. */
.team-photo{
  width:120px; height:120px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, #0e4f4a 0%, #145a55 60%, #d8612b 130%);
  color:#fbf7ee; font-family:'Fraunces',serif; font-size:38px; font-weight:600;
  letter-spacing:0.04em; flex-shrink:0; user-select:none;
}
img.team-photo{ object-fit:cover; }
.professional-card{
  display:grid;
  grid-template-columns: minmax(180px, 260px) minmax(0,1fr);
  gap:1.6rem;
  align-items:center;
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:18px;
  padding:1.25rem;
}
.professional-image-slot{ display:block; }
.professional-thumb-trigger{
  width:100%;
  margin:0;
  aspect-ratio:4/3;
}
.professional-card img,
.professional-card .science-thumb{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--paper);
}
.professional-card p{
  margin-top:1rem;
  color:rgba(15,28,30,.78);
  font-size:1.05rem;
  line-height:1.75;
}
@media (max-width: 760px){
  .professional-card{ grid-template-columns:1fr; }
  .professional-card img{ max-height:220px; }
}
@keyframes marq{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

.reveal{ opacity:0; transform:translateY(14px); animation:rev .9s cubic-bezier(.2,.7,.2,1) forwards; }
.reveal-1{ animation-delay:.05s } .reveal-2{ animation-delay:.18s } .reveal-3{ animation-delay:.32s } .reveal-4{ animation-delay:.46s } .reveal-5{ animation-delay:.6s }
@keyframes rev{ to{ opacity:1; transform:none } }

.field{ width:100%; background:var(--cream); border:1px solid var(--line); border-radius:12px; padding:.85rem 1rem; font:inherit; color:var(--ink); transition:border-color .2s, box-shadow .2s; }
.field:focus{ outline:none; border-color:var(--petrol); box-shadow:0 0 0 4px rgba(14,79,74,.12); }
.story-file-row{ display:flex; align-items:center; gap:.85rem; flex-wrap:wrap; }
.story-file-row input[type="file"]{ display:none !important; }
.story-file-button{ padding:.7rem 1.1rem; background:var(--cream); }
.story-file-name{ color:var(--mute); font-size:13px; line-height:1.4; overflow-wrap:anywhere; }
.story-file-name.has-file{ color:var(--ink); font-weight:600; }
.check{ display:flex; align-items:flex-start; gap:.7rem; padding:.7rem .9rem; border:1px solid var(--line); border-radius:12px; background:var(--cream); cursor:pointer; transition:border-color .2s, background .2s; }
.check:hover{ border-color:var(--petrol); }
.check input{ margin-top:.25rem; accent-color:var(--petrol); }

#adminFab{ display:none !important; }

.modal-backdrop{ position:fixed; inset:0; background:rgba(10,16,18,.55); backdrop-filter:blur(6px); z-index:70; display:flex; align-items:center; justify-content:center; padding:1rem; }
.modal{ background:var(--cream); border:1px solid var(--line); border-radius:20px; max-width:980px; width:100%; max-height:90vh; overflow:auto; box-shadow:0 60px 120px -40px rgba(0,0,0,.55); }

.tab{ padding:.6rem 1rem; border-radius:999px; font-size:13px; font-weight:600; cursor:pointer; }
.tab.active{ background:var(--petrol); color:var(--cream); }
.tab:not(.active):hover{ background:rgba(14,79,74,.08); }

table.data{ width:100%; border-collapse:collapse; font-size:13px; }
table.data th, table.data td{ text-align:left; padding:.6rem .75rem; border-bottom:1px solid var(--line); vertical-align:top; }
table.data th{ font-weight:600; color:var(--mute); font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.pill{ display:inline-block; padding:2px 8px; border-radius:999px; font-size:11px; font-weight:600; }
.pill-green{ background:rgba(14,79,74,.12); color:var(--petrol); }
.pill-amber{ background:rgba(216,97,43,.15); color:var(--ember2); }
.pill-grey{ background:rgba(90,102,100,.15); color:var(--mute); }

.page{ display:none; }
.page.active{ display:block; animation:rev .55s ease forwards; }

.lang-switcher{
  --globe-size:36px;
  --globe-open-size:146px;
  --globe-grid:var(--petrol);
  --globe-line:rgba(14,79,74,.46);
  --globe-line-strong:var(--globe-line);
  --globe-tropic-neg:-7.7px;
  --globe-tropic-pos:7.7px;
  --globe-open-shift:-24px;
  position:relative;
  display:inline-block;
  width:var(--globe-size);
  height:var(--globe-size);
  flex:0 0 auto;
  overflow:visible;
  border:0;
  padding:0;
  background:transparent;
  z-index:80;
  isolation:isolate;
}
.lang-switcher::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  width:var(--globe-size);
  height:var(--globe-size);
  border:1.5px solid var(--globe-grid);
  border-radius:50%;
  transform:translateX(-50%);
  transform-origin:top center;
  background:var(--cream);
  box-shadow:inset 0 0 0 1px rgba(14,79,74,.08), 0 14px 34px -28px rgba(14,79,74,.75);
  transition:width .28s cubic-bezier(.2,.8,.2,1), height .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease;
  z-index:0;
}
.lang-switcher::after{
  content:none;
}
.globe-line{
  position:absolute;
  left:50%;
  top:0;
  width:var(--globe-size);
  height:var(--globe-size);
  border:0;
  background:transparent;
  transform:translateX(-50%);
  transform-origin:top center;
  pointer-events:none;
  transition:width .28s cubic-bezier(.2,.8,.2,1), height .28s cubic-bezier(.2,.8,.2,1), top .28s cubic-bezier(.2,.8,.2,1), transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease, opacity .2s ease;
  z-index:1;
}
.globe-line-a{
  top:calc(var(--globe-size) * .5);
  width:var(--globe-size);
  height:1px;
  border-radius:999px;
  background:var(--globe-line);
}
.globe-line-a::before,
.globe-line-a::after{
  content:"";
  position:absolute;
  left:50%;
  width:90.5%;
  height:1px;
  border-radius:999px;
  background:var(--globe-line);
  transform:translateX(-50%);
}
.globe-line-a::before{ top:var(--globe-tropic-neg); }
.globe-line-a::after{ top:var(--globe-tropic-pos); }
.globe-line-b{
  width:1px;
  height:var(--globe-size);
  border-radius:999px;
  background:var(--globe-line);
}
.globe-line-c{
  width:calc(var(--globe-size) * .64);
  height:var(--globe-size);
  border-left:1px solid var(--globe-line);
  border-right:1px solid var(--globe-line);
  border-radius:50%;
  opacity:.86;
}
.globe-line-c::before,
.globe-line-c::after{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  height:100%;
  border-left:1px solid var(--globe-line);
  border-right:1px solid var(--globe-line);
  border-radius:50%;
  transform:translateX(-50%);
}
.globe-line-c::before{ width:52%; }
.globe-line-c::after{ width:134%; }
.lang-switcher:hover::before,
.lang-switcher:focus-within::before,
.lang-switcher.open::before{
  width:var(--globe-open-size);
  height:var(--globe-open-size);
  transform:translateX(calc(-50% + var(--globe-open-shift)));
  box-shadow:inset 0 0 0 1px rgba(14,79,74,.06), 0 26px 62px -42px rgba(14,79,74,.8);
}
.lang-switcher:hover::after,
.lang-switcher:focus-within::after,
.lang-switcher.open::after{
  content:none;
}
.lang-switcher:hover .globe-line,
.lang-switcher:focus-within .globe-line,
.lang-switcher.open .globe-line{
  width:var(--globe-open-size);
  height:var(--globe-open-size);
  transform:translateX(calc(-50% + var(--globe-open-shift)));
}
.lang-switcher:hover .globe-line-a,
.lang-switcher:focus-within .globe-line-a,
.lang-switcher.open .globe-line-a{
  top:calc(var(--globe-open-size) * .5);
  width:var(--globe-open-size);
  height:1px;
  --globe-tropic-neg:-31.5px;
  --globe-tropic-pos:31.5px;
}
.lang-switcher:hover .globe-line-b,
.lang-switcher:focus-within .globe-line-b,
.lang-switcher.open .globe-line-b{ width:1px; }
.lang-switcher:hover .globe-line-c,
.lang-switcher:focus-within .globe-line-c,
.lang-switcher.open .globe-line-c{ width:calc(var(--globe-open-size) * .64); }
.lang-btn{
  position:absolute;
  left:50%;
  top:50%;
  width:31.5px !important;
  height:21px !important;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  appearance:none;
  border:1.5px solid rgba(14,79,74,.56);
  border-radius:7.5px;
  background:var(--cream);
  color:var(--ember2) !important;
  font-size:8.4px !important;
  line-height:1 !important;
  font-family:'Manrope', system-ui, sans-serif !important;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:0;
  text-align:center;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,-50%);
  transition:
    transform .28s cubic-bezier(.2,.8,.2,1) var(--delay,0ms),
    opacity .16s ease,
    background .16s ease,
    color .16s ease,
    border-color .16s ease,
    box-shadow .16s ease;
  z-index:2;
}
.lang-btn.active{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,-50%);
  background:var(--cream);
  color:var(--ember2);
  border-color:var(--petrol);
  box-shadow:0 8px 22px -18px rgba(14,79,74,.9), inset 0 0 0 1px rgba(14,79,74,.18);
}
.lang-switcher:hover .lang-btn,
.lang-switcher:focus-within .lang-btn,
.lang-switcher.open .lang-btn{
  opacity:1;
  pointer-events:auto;
  transform:translate(var(--tx,-50%), var(--ty,-50%));
}
.lang-switcher:hover .lang-btn.active,
.lang-switcher:focus-within .lang-btn.active,
.lang-switcher.open .lang-btn.active{
  transform:translate(var(--tx,-50%), var(--ty,-50%));
  background:var(--cream);
  color:var(--ember2);
  border-color:var(--petrol);
}
.lang-btn:hover,
.lang-btn:focus-visible{
  outline:none;
  background:var(--cream);
  border-color:var(--ember);
  color:var(--ember2);
  box-shadow:0 10px 24px -20px rgba(216,97,43,.75), inset 0 0 0 1px rgba(216,97,43,.14);
}
.lang-btn.active:hover,
.lang-btn.active:focus-visible{
  background:var(--cream);
  color:var(--ember2);
  border-color:var(--petrol2);
}
.mobile-lang-switcher{
  --globe-open-size:131px;
  --globe-open-shift:48.5px;
}
.hidden.lang-switcher{
  display:none;
}
@media (min-width: 768px){
  .md\:block.lang-switcher{
    display:inline-block;
  }
}
@media (max-width: 767px){
  .lang-switcher{
    --globe-size:34px;
  }
}

.ornament{ color:var(--petrol); opacity:.5; }

section[id]{ scroll-margin-top:90px; }
::selection{ background:var(--ember); color:#fff; }

/* Builder field row */
.fieldrow{ background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:1rem; margin-bottom:.6rem; }
.fieldrow + .fieldrow{ margin-top:.6rem; }
.q-tile{ background:var(--cream); border:1px solid var(--line); border-radius:14px; padding:1.25rem 1.5rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; transition:border-color .2s, transform .2s; }
.q-tile:hover{ border-color:#c9bfa6; transform:translateY(-1px); }
.library-toolbar{ display:block; }
.library-search{ width:100%; border-radius:18px; border-color:#d8cfbb; background:rgba(255,252,245,.78); font-size:16px; }
.library-filter-chips{ display:flex; flex-wrap:wrap; gap:.55rem; }
.library-chip{ border:1px solid var(--line); background:rgba(255,252,245,.65); color:var(--ink); border-radius:999px; padding:.45rem .85rem; font-size:13px; font-weight:650; transition:background .2s,border-color .2s,color .2s; }
.library-chip:hover{ border-color:#c9bfa6; }
.library-chip.active{ background:var(--petrol); border-color:var(--petrol); color:var(--cream); }
.library-snippet{ border-left:3px solid rgba(216,97,43,.45); padding-left:.85rem; }
.library-card-meta{ min-width:0; }
.library-match{ background:rgba(216,97,43,.22); color:var(--ink); border-radius:4px; padding:0 .12em; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.library-search-results{ display:grid; gap:.85rem; }
.library-result-card{ align-items:flex-start; }
.library-browse-grid{ display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr); gap:1.2rem; align-items:start; }
.library-section{ background:rgba(255,252,245,.62); border:1px solid var(--line); border-radius:14px; padding:1.25rem; }
.library-section-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.library-year-list{ display:grid; gap:1.1rem; }
.library-year{ display:grid; grid-template-columns:84px minmax(0,1fr); gap:.9rem; align-items:start; }
.library-year-label{ font-size:34px; line-height:1; color:var(--petrol); position:sticky; top:88px; }
.library-issue-list{ display:grid; gap:.38rem; }
.library-issue-line{ display:grid; grid-template-columns:92px minmax(0,1fr) auto; gap:.75rem; align-items:center; min-height:38px; padding:.48rem .65rem; border-radius:9px; color:var(--ink); background:rgba(255,255,255,.38); border:1px solid transparent; transition:border-color .18s, background .18s, transform .18s; }
.library-issue-line:hover{ border-color:#d8cfbb; background:rgba(255,252,245,.9); transform:translateX(2px); }
.library-issue-date{ font-size:12px; color:var(--mute); font-weight:650; white-space:nowrap; }
.library-issue-title{ min-width:0; overflow:hidden; font-weight:650; }
.library-issue-main{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.library-issue-byline{ display:block; margin-top:2px; color:var(--mute); font-size:12px; line-height:1.15; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.library-side-stack{ display:grid; gap:1rem; position:sticky; top:88px; }
.library-theory{ background:linear-gradient(180deg, rgba(255,252,245,.9), rgba(244,239,225,.76)); }
.library-paper-groups{ display:grid; gap:1.35rem; margin-top:.2rem; }
.library-paper-group-title{ margin-bottom:.65rem; padding-bottom:.45rem; border-bottom:1px solid rgba(15,28,30,.08); }
.library-doc-grid{ display:grid; gap:.8rem; }
.library-doc-card{ display:flex; flex-direction:column; min-height:172px; padding:1rem 1rem .95rem; border:1px solid rgba(15,28,30,.10); border-radius:12px; background:rgba(255,252,245,.74); color:var(--ink); box-shadow:0 14px 34px rgba(15,28,30,.045); transition:transform .18s, border-color .18s, box-shadow .18s, background .18s; }
.library-doc-card:hover{ transform:translateY(-2px); border-color:#c9bfa6; background:rgba(255,252,245,.98); box-shadow:0 18px 42px rgba(15,28,30,.075); }
.library-doc-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; margin-bottom:.65rem; }
.library-doc-title{ display:block; font-family:Canela, Georgia, serif; font-size:21px; line-height:1.08; color:var(--ink); }
.library-doc-summary{ display:block; color:rgba(15,28,30,.72); font-size:13px; line-height:1.48; margin-top:.55rem; }
.library-doc-action{ display:block; margin-top:auto; padding-top:.85rem; color:var(--petrol); font-size:13px; font-weight:750; }
.library-org-card{ margin-top:1.2rem; background:var(--cream); border:1px solid var(--line); border-radius:14px; padding:1.15rem 1.25rem; }
.library-org-links{ display:flex; flex-wrap:wrap; gap:.55rem .7rem; margin-top:.7rem; }
.library-org-links a{ color:var(--petrol); background:rgba(14,79,74,.08); border:1px solid rgba(14,79,74,.18); border-radius:999px; padding:.42rem .72rem; font-size:13px; font-weight:700; }
.library-org-links a:hover{ background:rgba(14,79,74,.13); }
@media (max-width: 900px){
  .library-browse-grid{ grid-template-columns:1fr; }
  .library-side-stack{ position:static; }
  .library-year{ grid-template-columns:1fr; gap:.35rem; }
  .library-year-label{ position:static; font-size:42px; }
  .library-issue-line{ grid-template-columns:1fr auto; gap:.35rem .65rem; }
  .library-issue-date{ grid-column:1 / -1; }
}

/* The hidden admin-access link in the footer. Rendered as ordinary body
   text — no underline on hover, focus or selection. The ::selection
   pseudo-element still inherits the site-wide ember selection color from
   the global rule, but we explicitly strip the text-decoration. */
.care-link,
.care-link:link,
.care-link:visited,
.care-link:hover,
.care-link:focus,
.care-link:active{
  text-decoration:none;
  color:inherit;
  outline:none;
}
.care-link::selection{ text-decoration:none; }

/* ======== DONATE FORM ========
   Pill-style amount + frequency selectors that match the existing language
   switcher visual language. */
.donate-toggle{
  display:inline-flex; align-items:center; gap:2px;
  padding:3px; border-radius:10px;
  border:1.5px solid var(--ink); background:var(--cream);
}
.donate-freq{
  font-size:13px; font-weight:600; letter-spacing:.02em;
  padding:.55rem 1.1rem; border-radius:7px;
  color:var(--ink); background:transparent; border:none; cursor:pointer;
  transition: background .15s ease, color .15s ease;
}
.donate-freq:hover{ background:rgba(14,79,74,.08); }
.donate-freq.active{ background:var(--petrol); color:var(--cream); }
.donate-freq.active:hover{ background:var(--petrol2); }

.donate-amounts{
  display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:.5rem;
}
@media (max-width:560px){
  .donate-amounts{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
.donate-amt{
  font-family:'Fraunces', Georgia, serif; font-weight:500; font-size:18px;
  padding:.8rem .4rem; border-radius:12px;
  background:var(--paper); border:1.5px solid var(--line); color:var(--ink);
  cursor:pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease, transform .15s ease;
}
.donate-amt:hover{ border-color:var(--petrol); transform:translateY(-1px); }
.donate-amt.active{
  background:var(--petrol); border-color:var(--petrol); color:var(--cream);
}
/* Image placeholder anchors. These are invisible markers — the CMS
   attaches real images adjacent to them via the text_images table, and
   those images render via the normal .text-image class. When no image
   is attached the anchor stays invisible and takes no vertical space. */
.image-slot {
  display: block;
  width: auto;
  height: auto;
  overflow: visible;
}
.image-slot:empty {
  width: 0;
  height: 0;
  overflow: hidden;
}

/* CMS Texts tab — two-level collapsible tree. The top level (.tx-top)
   is a section of the site (Front page, For patients, …) and the
   second level (.tx-sub) is a subsection within that page. Nested
   details give the admin an at-a-glance view of where every string
   lives, matching the order a visitor encounters them. */
.tx-top > summary { list-style: none; }
.tx-top > summary::-webkit-details-marker { display: none; }
.tx-top > summary::before {
  content: '▸';
  display: inline-block;
  width: 1em;
  color: var(--petrol);
  transition: transform .15s ease;
}
.tx-top[open] > summary::before { transform: rotate(90deg); }
.tx-sub {
  border-bottom: 1px solid var(--line);
}
.tx-sub:last-child { border-bottom: none; }
.tx-sub > summary { list-style: none; }
.tx-sub > summary::-webkit-details-marker { display: none; }
.tx-sub > summary::before {
  content: '+';
  display: inline-block;
  width: 1em;
  color: var(--mute);
  font-weight: 600;
}
.tx-sub[open] > summary::before { content: '−'; }

/* ============================================================
   SERPINA1 variants table
   Mounted in /science/variants subpage. Uses the same warm
   editorial palette as the rest of the site — no clinical
   greys, no zebra-striping. Risk-level chips carry semantic
   color but stay desaturated.
   ============================================================ */

.variants-table-wrap{
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  /* Horizontal scroll preserves table on phones; the table itself
     is wide enough that it doesn't compress meaningfully below
     ~900px. Better to scroll than to wrap into illegibility. */
  overflow-x:auto;
}
.variants-table{
  width:100%;
  border-collapse:collapse;
  font-family:'Manrope', system-ui, sans-serif;
  font-size:14px;
  min-width:1200px;
}
.variants-table thead th{
  position:sticky; top:0;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:13px;
  letter-spacing:.02em;
  text-align:left;
  padding:14px 16px;
  white-space:nowrap;
  color:var(--ink);
}
.variants-table th.th-sortable{ cursor:pointer; user-select:none; }
.variants-table th.th-sortable:hover{ color:var(--petrol); }
.variants-table th.th-sortable.sort-asc::after{
  content:'  ▲'; font-size:9px; opacity:.6; color:var(--petrol);
}
.variants-table th.th-sortable.sort-desc::after{
  content:'  ▼'; font-size:9px; opacity:.6; color:var(--petrol);
}
.variants-table tbody tr{
  border-bottom:1px solid var(--line);
  transition:background .15s ease;
}
.variants-table tbody tr:last-child{ border-bottom:none; }
.variants-table tbody tr:hover{ background:rgba(14,79,74,.04); }
.variants-table tbody td{
  padding:13px 16px;
  vertical-align:top;
  color:var(--ink);
}
.variants-table .v-allele{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:15px;
  color:var(--ink);
  white-space:nowrap;
}
.variants-table .v-aliases{
  display:block;
  font-family:'Manrope', sans-serif;
  font-weight:400;
  font-size:11px;
  color:var(--mute);
  margin-top:2px;
  font-style:italic;
}
.variants-table .v-protein{
  font-family:'JetBrains Mono', ui-monospace, monospace;
  font-size:12.5px;
  color:var(--petrol);
}
.variants-table .v-marker{
  display:block;
  font-size:10.5px;
  color:var(--mute);
  margin-top:2px;
  font-family:'JetBrains Mono', ui-monospace, monospace;
}
.variants-table .v-aat{
  font-family:'Manrope', sans-serif;
  font-size:12.5px;
  color:var(--ink);
  white-space:normal;
}
.variants-table .v-cell-text{
  font-size:12.5px;
  color:var(--ink);
}
.variants-table .v-link{
  display:inline-block;
  margin-right:.6em;
  font-size:12px;
  color:var(--petrol);
  text-decoration:underline;
  text-decoration-color:rgba(14,79,74,.3);
  text-underline-offset:2px;
  transition:text-decoration-color .15s, color .15s;
}
.variants-table .v-link:hover{
  text-decoration-color:var(--petrol);
  color:var(--petrol2);
}

/* Risk and mechanism chips — semantic color, low saturation */
.chip{
  display:inline-block;
  padding:3px 10px;
  border-radius:999px;
  font-size:11.5px;
  font-weight:500;
  letter-spacing:.01em;
  white-space:nowrap;
  border:1px solid transparent;
}
.chip.risk-very-high{ background:#f9dcd0; color:#7a2410; border-color:#e9bba9; }
.chip.risk-high     { background:#fae6d6; color:#82351a; border-color:#ecc7a8; }
.chip.risk-moderate { background:#f4ebd7; color:#7d5e22; border-color:#dcc995; }
.chip.risk-mild     { background:#e8e7c8; color:#52541d; border-color:#cccc94; }
.chip.risk-minimal  { background:#dde8d9; color:#2d4a2c; border-color:#a9c5a6; }
.chip.risk-none     { background:#e0e8e6; color:#2c4543; border-color:#a8bcb9; }
.chip.risk-unknown  { background:#ece8e0; color:#615a4f; border-color:#cdc6b8; }

.chip.mech-normal              { background:#e0e8e6; color:#2c4543; border-color:#a8bcb9; }
.chip.mech-null                { background:#e3dee8; color:#383052; border-color:#bdb4cf; }
.chip.mech-deficiency-LoF      { background:#f4ebd7; color:#7d5e22; border-color:#dcc995; }
.chip.mech-deficiency-LoF-GoF  { background:#f9dcd0; color:#7a2410; border-color:#e9bba9; }
.chip.mech-dysfunctional       { background:#dde4ec; color:#234058; border-color:#a8bccd; }
.chip.mech-unknown             { background:#ece8e0; color:#615a4f; border-color:#cdc6b8; }

/* Skin/GI cells get extra-muted treatment because they're
   mostly "unknown" — we don't want the table dominated by
   bold "no data" badges. */
.variants-table .v-cell-text.text-unknown{
  color:var(--mute);
  font-style:italic;
  font-size:11.5px;
}

/* Empty-state row */
.variants-table .v-empty td{
  text-align:center;
  padding:48px 24px;
  color:var(--mute);
  font-style:italic;
}

@media (max-width: 900px){
  .variants-table{ font-size:13px; }
  .variants-table thead th, .variants-table tbody td{ padding:11px 12px; }
}
