:root{
  --moss:#26331f;
  --moss-deep:#1a2417;
  --paper:#f1ead9;
  --paper-warm:#e8dfc9;
  --sage:#8a9868;
  --clay:#a3543a;
  --gold:#b6924a;
  --water:#5c8a9e;
  --ink:#1c2118;
  --line: rgba(28,33,24,0.14);
  --radius: 2px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{font-family:'Fraunces',serif;}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--clay); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}

/* ---------- NAV ---------- */
header.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--moss); color:var(--paper);
  border-bottom:1px solid rgba(241,234,217,0.15);
}
.nav-inner{
  max-width:1240px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px; gap:24px;
}
.brand{display:flex; align-items:center; gap:10px;}
.brand-leaf{display:inline-block; transform-origin:50% 90%; animation:leafSway 4.5s ease-in-out infinite;}
@keyframes leafSway{0%{transform:rotate(-7deg);}50%{transform:rotate(6deg);}100%{transform:rotate(-7deg);}}
.brand:hover .brand-leaf{animation-duration:1.4s;}
.brand-text{display:flex; flex-direction:column; align-items:flex-start;}
.brand-mark{font-family:'Fraunces',serif; font-weight:600; font-size:1.35rem; letter-spacing:0.01em;}
.brand-sub{font-family:'IBM Plex Mono',monospace; font-size:0.65rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--sage);}

nav.links{display:flex; align-items:center; gap:2px; flex-wrap:nowrap; justify-content:flex-end; overflow:hidden;}
.nav-link{
  font-size:0.85rem; padding:10px 14px; border-radius:var(--radius);
  color:rgba(241,234,217,0.82);
  transition:color .15s ease, background .15s ease;
}
.nav-link-cat{padding:10px 10px; font-size:0.8rem;}
.nav-link:hover{color:var(--paper); background:rgba(241,234,217,0.08);}
.register-btn{
  display:flex; align-items:center; gap:8px;
  font-size:0.85rem; font-weight:500; padding:10px 16px;
  background:var(--paper); color:var(--moss-deep);
  border:1px solid var(--paper); border-radius:var(--radius); cursor:pointer;
}
.register-btn .count{
  font-family:'IBM Plex Mono',monospace; font-size:0.72rem;
  background:var(--clay); color:var(--paper); padding:1px 6px; border-radius:2px;
}
.register-btn:hover{background:var(--paper-warm);}

/* ---------- MEGA MENU ---------- */
.megamenu{
  position:fixed; inset:0 0 auto 0; top:0;
  background:var(--paper); color:var(--ink); z-index:60;
  transform:translateY(-8px); opacity:0; pointer-events:none; visibility:hidden;
  transition:opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
  max-height:100vh; overflow-y:auto;
}
.megamenu.open{
  opacity:1; transform:translateY(0); pointer-events:auto; visibility:visible;
  transition:opacity .22s ease, transform .22s ease;
}
.megamenu-topbar{
  position:sticky; top:0; background:var(--paper); border-bottom:1px solid var(--line);
  padding:16px 28px; display:flex; align-items:center; gap:20px;
  max-width:1240px; margin:0 auto;
}
.megamenu-topbar .accession{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:.08em; color:var(--clay); white-space:nowrap;}
.search-wrap{flex:1; position:relative; max-width:420px;}
.search-wrap input{
  width:100%; padding:9px 14px 9px 34px; border:1px solid var(--line); background:#fff;
  border-radius:var(--radius); font-size:0.9rem; font-family:'Inter',sans-serif;
}
.search-wrap svg{position:absolute; left:11px; top:50%; transform:translateY(-50%); opacity:.55;}
.close-btn{
  margin-left:auto; font-family:'IBM Plex Mono',monospace; font-size:0.75rem;
  border:1px solid var(--line); background:transparent; padding:8px 12px;
  border-radius:var(--radius); cursor:pointer; color:var(--ink);
}
.close-btn:hover{background:var(--paper-warm);}
.no-results{max-width:1240px; margin:0 auto; padding:8px 28px 0; font-size:0.85rem; color:var(--clay); display:none;}

.megamenu-grid{
  max-width:1240px; margin:0 auto; padding:28px 28px 56px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:34px 28px;
}
.cat-col .cat-head{
  display:flex; align-items:baseline; justify-content:space-between;
  border-bottom:1px solid var(--line); padding-bottom:8px; margin-bottom:10px;
}
.cat-head .cat-name{font-family:'Fraunces',serif; font-weight:600; font-size:1rem;}
.cat-head .cat-name:hover{color:var(--clay);}
.cat-head .cat-no{font-family:'IBM Plex Mono',monospace; font-size:0.65rem; color:var(--sage);}
.cat-col ul{list-style:none; margin:0; padding:0;}
.cat-col li{border-bottom:1px dotted var(--line);}
.cat-col li.hidden{display:none;}
.plant-link{display:flex; flex-direction:column; gap:1px; padding:7px 2px;}
.plant-link .no{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; color:var(--gold); letter-spacing:.04em;}
.plant-link .de{font-size:0.86rem; font-weight:500;}
.plant-link .la{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:rgba(28,33,24,0.55);}
.plant-link:hover .de{color:var(--clay);}

@media (max-width:980px){.megamenu-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:1180px){
  .nav-link-cat{display:none;}
}

/* ---------- MOBILE HAMBURGER MENU ---------- */
.hamburger-btn{
  display:none; align-items:center; justify-content:center;
  width:38px; height:38px; padding:0; border:1px solid rgba(241,234,217,0.3); border-radius:var(--radius);
  background:transparent; color:var(--paper); cursor:pointer;
}
.hamburger-btn:hover{background:rgba(241,234,217,0.08);}
.mobile-menu{
  display:none; flex-direction:column; gap:2px;
  background:var(--moss-deep); border-top:1px solid rgba(241,234,217,0.12);
  max-height:0; overflow-y:auto;
  transition:max-height .3s ease;
}
.mobile-menu.open{max-height:min(70vh, 560px);}
.mobile-menu-search-wrap{
  display:flex; align-items:center; gap:10px;
  padding:14px 18px; border-bottom:1px solid rgba(241,234,217,0.08);
  color:rgba(241,234,217,0.5);
}
.mobile-menu-search-wrap input{
  flex:1; background:none; border:none; outline:none;
  color:var(--paper); font-family:'Inter',sans-serif; font-size:0.9rem;
}
.mobile-menu-search-wrap input::placeholder{color:rgba(241,234,217,0.45);}
.mobile-search-results{display:none; flex-direction:column; border-bottom:1px solid rgba(241,234,217,0.08);}
.mobile-search-results.open{display:flex;}
.mobile-search-result{
  display:flex; flex-direction:column; gap:1px;
  padding:10px 18px; border-top:1px solid rgba(241,234,217,0.06);
  color:var(--paper);
}
.mobile-search-result .no{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; color:var(--gold);}
.mobile-search-result .de{font-size:0.86rem; font-weight:500;}
.mobile-search-result .la{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:rgba(241,234,217,0.5);}
.mobile-menu-link{
  display:flex; align-items:center; gap:8px;
  padding:16px 18px; color:var(--paper); font-size:0.9rem; font-weight:500;
  border-bottom:1px solid rgba(241,234,217,0.08);
}
.mobile-menu-link .count{
  font-family:'IBM Plex Mono',monospace; font-size:0.68rem;
  background:var(--clay); color:var(--paper); padding:1px 6px; border-radius:2px;
}
.mobile-menu-cat-label{
  padding:14px 18px 4px; font-family:'IBM Plex Mono',monospace; font-size:0.62rem;
  letter-spacing:.1em; text-transform:uppercase; color:rgba(241,234,217,0.4);
}
.mobile-menu-link-cat{font-size:0.85rem; color:rgba(241,234,217,0.85); padding:12px 18px;}

@media (max-width:640px){
  .nav-inner{padding:8px 16px;}
  .hamburger-btn{width:34px; height:34px;}
  nav.links{display:none;}
  .hamburger-btn{display:flex;}
  .mobile-menu{display:flex;}
  .megamenu-grid{grid-template-columns:1fr; padding:20px 18px 40px;}
  .megamenu-topbar{padding:14px 18px; flex-wrap:wrap;}
  .search-wrap{order:3; max-width:none; width:100%;}
}

/* ---------- HERO ---------- */
.hero{
  max-width:1240px; margin:0 auto; padding:88px 28px 96px;
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center;
}
.hero-label{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay); margin-bottom:18px; display:block;}
.hero h1{font-size:clamp(2.6rem, 5vw, 4.2rem); line-height:1.02; font-weight:600; margin:0 0 22px; letter-spacing:-0.01em;}
.hero h1 em{font-style:italic; color:var(--clay); font-weight:500;}
.hero p{font-size:1.05rem; line-height:1.65; color:rgba(28,33,24,0.78); max-width:46ch; margin:0 0 30px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
.btn-primary{background:var(--moss); color:var(--paper); padding:13px 22px; border-radius:var(--radius); font-size:0.88rem; font-weight:500; border:1px solid var(--moss); cursor:pointer;}
.btn-primary:hover{background:var(--moss-deep);}
.btn-ghost{padding:13px 22px; border-radius:var(--radius); font-size:0.88rem; border:1px solid var(--ink); font-weight:500;}
.btn-ghost:hover{background:rgba(28,33,24,0.06);}

.specimen-plate{
  background:#fff; border:1px solid var(--line); padding:26px; position:relative;
  box-shadow:0 22px 48px -16px rgba(38,51,31,0.22);
  animation:plateReveal .7s ease-out both;
}
.specimen-plate-link{display:block; text-decoration:none; color:inherit; transition:box-shadow .2s ease, transform .2s ease;}
.specimen-plate-link:hover{box-shadow:0 26px 54px -14px rgba(38,51,31,0.3); transform:translateY(-2px);}
.specimen-plate::before{content:""; position:absolute; inset:8px; border:1px solid rgba(182,146,74,0.4);}
@keyframes plateReveal{
  from{opacity:0; transform:translateY(16px) scale(.98);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
.plate-meta{display:flex; justify-content:space-between; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; color:var(--sage); margin-bottom:14px; position:relative;}
.plate-meta span:last-child{color:var(--clay);}
.specimen-plate svg{display:block; width:100%; height:auto; position:relative;}
.plate-caption{margin-top:14px; text-align:center; font-family:'Fraunces',serif; font-style:italic; font-size:0.95rem; position:relative;}
.plate-caption small{display:block; font-family:'IBM Plex Mono',monospace; font-style:normal; font-size:0.65rem; color:rgba(28,33,24,0.5); margin-top:4px;}
.photo-credit{margin-top:8px; text-align:center; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; color:rgba(28,33,24,0.45);}
.photo-credit a{color:var(--clay); text-decoration:underline;}

@media (max-width:860px){.hero{grid-template-columns:1fr; padding-top:56px;}}

/* ---------- INTRO STRIP ---------- */
.strip{background:var(--moss); color:var(--paper); padding:20px 28px;}
.strip-inner{max-width:1240px; margin:0 auto; display:flex; gap:40px; flex-wrap:wrap; font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:.04em;}
.strip-inner b{color:var(--gold); font-weight:500;}

/* ---------- ROTATING TICKER ---------- */
.ticker-band{background:var(--paper-warm); border-bottom:1px solid var(--line); padding:28px 28px 22px;}
.ticker-inner{
  position:relative; max-width:1240px; margin:0 auto; min-height:64px;
}
.ticker-group{
  position:absolute; inset:0;
  display:flex; flex-wrap:wrap; gap:10px;
  opacity:0; pointer-events:none;
  transition:opacity .6s ease;
}
.ticker-group.active{opacity:1; pointer-events:auto; position:relative;}
.ticker-chip{
  flex:1 1 200px; display:flex; align-items:center; gap:10px;
  background:var(--paper); border:1px solid var(--line); padding:10px 14px;
}
.ticker-chip-img{
  width:40px; height:40px; flex:0 0 auto; object-fit:cover; border-radius:2px;
  border:1px solid var(--line);
}
.ticker-chip-text{display:flex; flex-direction:column; gap:2px; min-width:0;}
.ticker-chip .no{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; color:var(--gold);}
.ticker-chip .de{font-size:0.85rem; font-weight:500;}
.ticker-chip .la{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; color:rgba(28,33,24,0.55);}
.ticker-chip:hover .de{color:var(--clay);}
.ticker-dots{display:flex; justify-content:center; gap:8px; margin-top:16px;}
.ticker-dot{
  width:7px; height:7px; border-radius:50%; border:none; padding:0;
  background:rgba(28,33,24,0.2); cursor:pointer;
}
.ticker-dot.active{background:var(--clay);}
@media (max-width:640px){.ticker-inner{min-height:180px;} .ticker-group{flex-direction:column;}}

/* ---------- FEATURED SECTION (shared base, used by kategorie.php/sitemap.php) ---------- */
.section{max-width:1240px; margin:0 auto; padding:96px 28px;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:44px; gap:20px; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:22px;}
.section-head .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay); display:block; margin-bottom:10px;}
.section-head h2{font-size:2rem; font-weight:600; margin:0;}
.section-head p{max-width:38ch; font-size:0.92rem; color:rgba(28,33,24,0.7); margin:0;}

/* ---------- CATEGORY SHOWCASE (homepage) ---------- */
.showcase{max-width:1240px; margin:0 auto; padding:96px 28px;}
.showcase-head{max-width:560px; margin-bottom:48px;}
.showcase-head .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay); display:block; margin-bottom:14px;}
.showcase-head h2{font-size:2rem; font-weight:600; margin:0 0 14px;}
.showcase-head p{font-size:0.95rem; line-height:1.6; color:rgba(28,33,24,0.7); margin:0;}

.showcase-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.showcase-card{
  background:var(--paper); padding:40px 20px 32px;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px;
  transition:background .18s ease;
}
.showcase-card:hover{background:var(--paper-warm);}
.showcase-icon{width:52px; height:52px; color:var(--moss); transition:color .2s ease, transform .25s ease;}
.showcase-icon svg{width:100%; height:100%; display:block;}
.showcase-card:hover .showcase-icon{color:var(--clay); transform:translateY(-4px);}
.showcase-name{font-family:'Fraunces',serif; font-weight:600; font-size:1rem;}
.showcase-count{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:rgba(28,33,24,0.45);}

@media (max-width:980px){.showcase-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.showcase-grid{grid-template-columns:1fr;}}

/* ---------- CARE BAND ---------- */
.care-band{background:var(--paper-warm); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.care-grid{max-width:1240px; margin:0 auto; padding:80px 28px; display:grid; grid-template-columns:repeat(3,1fr); gap:44px;}
.care-item .num{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--clay); margin-bottom:10px; display:block;}
.care-item h3{font-size:1.2rem; margin:0 0 10px;}
.care-item p{font-size:0.9rem; line-height:1.6; color:rgba(28,33,24,0.72); margin:0;}
@media (max-width:760px){.care-grid{grid-template-columns:1fr;}}

/* ---------- PLANT PROFILE (pflanze.php) ---------- */
.breadcrumb{
  max-width:1240px; margin:0 auto; padding:24px 28px 0;
  font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:rgba(28,33,24,0.55);
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
.breadcrumb a{color:var(--clay);}
.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb .sep{color:rgba(28,33,24,0.3);}
.breadcrumb .current{color:rgba(28,33,24,0.75);}

.category-item{display:flex; flex-direction:row; align-items:center; gap:12px;}
.category-item-img{width:48px; height:48px; object-fit:cover; border-radius:2px; border:1px solid var(--line); flex:0 0 auto;}
.category-item-text{display:flex; flex-direction:column; gap:2px; min-width:0;}

.profile-head{max-width:1240px; margin:0 auto; padding:24px 28px 0;}
.profile-head .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--clay); display:block; margin-bottom:14px;}
.profile-head h1{font-size:clamp(2.2rem,4vw,3.2rem); margin:0 0 8px; font-weight:600;}
.profile-head .la{font-family:'IBM Plex Mono',monospace; font-style:italic; font-size:1rem; color:rgba(28,33,24,0.6);}
.profile-body{max-width:1240px; margin:0 auto; padding:44px 28px 100px; display:grid; grid-template-columns:1fr 1fr; gap:56px;}
.fact-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.fact-cell{background:var(--paper); padding:20px;}
.fact-cell .label{font-family:'IBM Plex Mono',monospace; font-size:0.65rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sage); display:flex; align-items:center; gap:6px; margin-bottom:8px;}
.fact-cell .label svg{width:14px; height:14px; flex:0 0 auto;}
.fact-cell .value{font-size:0.92rem; line-height:1.55;}
.profile-note{border-top:1px solid var(--line); padding-top:24px; font-size:0.82rem; color:rgba(28,33,24,0.55); line-height:1.6;}

/* ---------- EXTENDED CONTENT (volle Breite, Karten pro Abschnitt) ---------- */
.extended-section{max-width:1240px; margin:0 auto; padding:40px 28px 20px; border-top:1px solid var(--line);}
.extended-intro{max-width:75ch; margin:0 0 28px;}
.extended-intro p{font-size:0.98rem; line-height:1.75; margin:0 0 16px; color:rgba(28,33,24,0.85);}
.extended-outro{max-width:75ch; margin:28px 0 0;}
.extended-outro p{font-size:0.98rem; line-height:1.75; margin:0; color:rgba(28,33,24,0.85);}
.extended-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:5px;}
.extended-card{
  background:#fff; padding:26px 28px; border:1px solid var(--line);
  position:relative; overflow:hidden;
}
.extended-card::before{
  content:""; position:absolute; top:0; right:0; z-index:1;
  border-style:solid; border-width:0 58px 58px 0;
  border-color:transparent var(--card-accent, var(--sage)) transparent transparent;
}
.extended-card-icon{position:absolute; top:9px; right:7px; z-index:2; color:#fff; display:block;}
.extended-card-icon svg{width:20px; height:20px; display:block;}
.extended-card h3{font-family:'Fraunces',serif; font-weight:700; font-size:1.15rem; margin:0 0 14px; color:var(--ink); padding-right:50px;}
.extended-card p{font-size:0.92rem; line-height:1.7; color:rgba(28,33,24,0.8); margin:0 0 12px;}
.extended-card p:last-child{margin-bottom:0;}
.extended-card strong{color:var(--ink);}

/* ---------- PFLEGECHECK ---------- */
.pflegecheck-section{max-width:1240px; margin:0 auto; padding:40px 28px 20px; border-top:1px solid var(--line);}
.pflegecheck-section h3{font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem; margin:0 0 6px;}
.pflegecheck-intro{font-size:0.85rem; color:rgba(28,33,24,0.55); margin:0 0 24px;}
.pc-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.pc-card{background:#fff; padding:22px 24px;}
.pc-card h4{font-family:'Fraunces',serif; font-weight:600; font-size:0.98rem; margin:0 0 16px;}
.pc-label{font-family:'IBM Plex Mono',monospace; font-size:0.65rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sage); display:block; margin-bottom:10px;}
.pc-hint{font-size:0.7rem; color:rgba(28,33,24,0.35); margin:10px 0 0;}

.pc-month-grid{display:grid; grid-template-columns:repeat(12,1fr); gap:3px; margin-bottom:14px;}
.pc-month-bar{height:32px; border-radius:2px; cursor:pointer; transform-origin:bottom; animation:pcRiseIn .5s ease-out both; transition:outline .15s ease;}
.pc-month-bar.active{outline:2px solid var(--moss); outline-offset:2px;}
@keyframes pcRiseIn{from{opacity:0; transform:scaleY(.6);} to{opacity:1; transform:scaleY(1);}}
.pc-result{display:flex; align-items:center; gap:10px; background:var(--paper); padding:12px 14px; border-radius:2px; font-size:0.82rem; line-height:1.5; color:var(--ink); transition:opacity .2s ease;}
.pc-result svg{flex:0 0 auto; color:var(--gold);}

.pc-slider-row{display:flex; align-items:center; gap:12px; margin-bottom:16px;}
.pc-slider-track{position:relative; flex:1; height:6px; background:rgba(28,33,24,0.1); border-radius:3px; cursor:pointer;}
.pc-slider-fill{position:absolute; left:0; top:0; height:100%; border-radius:3px; transition:width .2s ease;}
.pc-slider-fill.pc-slider-good{background:var(--sage);}
.pc-slider-fill.pc-slider-soon{background:var(--gold);}
.pc-slider-fill.pc-slider-urgent{background:var(--clay);}
.pc-slider-handle{position:absolute; top:50%; width:18px; height:18px; border-radius:50%; border:3px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.3); transform:translate(-50%,-50%); transition:left .2s ease;}
.pc-slider-handle.pc-slider-good{background:var(--sage);}
.pc-slider-handle.pc-slider-soon{background:var(--gold);}
.pc-slider-handle.pc-slider-urgent{background:var(--clay);}
.pc-slider-val{font-family:'Fraunces',serif; font-weight:700; font-size:1.3rem; min-width:26px;}
.pc-badge{display:flex; align-items:center; gap:12px; background:var(--paper); padding:12px 14px; border-radius:2px;}
.pc-badge-icon{width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:0 0 auto;}
.pc-badge-icon.pc-badge-good{background:rgba(138,152,104,0.18); color:var(--sage);}
.pc-badge-icon.pc-badge-soon{background:rgba(182,146,74,0.18); color:var(--gold);}
.pc-badge-icon.pc-badge-urgent{background:rgba(163,84,58,0.18); color:var(--clay);}
.pc-badge-title{font-family:'Fraunces',serif; font-weight:700; font-size:0.9rem;}
.pc-badge-title.pc-badge-text-good{color:var(--sage);}
.pc-badge-title.pc-badge-text-soon{color:var(--gold);}
.pc-badge-title.pc-badge-text-urgent{color:var(--clay);}
.pc-badge-sub{font-size:0.75rem; color:rgba(28,33,24,0.55);}

.pc-dir-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-bottom:14px;}
.pc-dir-btn{padding:9px 4px; text-align:center; border:1px solid var(--line); border-radius:2px; font-size:0.78rem; color:rgba(28,33,24,0.6); cursor:pointer; transition:background .2s ease, color .2s ease;}
.pc-dir-btn.active{background:var(--moss); color:var(--paper); border-color:var(--moss); font-weight:500;}
.pc-dir-title{font-family:'Fraunces',serif; font-weight:700; font-size:0.88rem;}
.pc-dir-sub{font-size:0.75rem; color:rgba(28,33,24,0.6);}
.pc-result.pc-dir-good{background:rgba(138,152,104,0.12);}
.pc-result.pc-dir-good svg{color:var(--sage);}
.pc-result.pc-dir-good .pc-dir-title{color:var(--sage);}
.pc-result.pc-dir-bad{background:rgba(163,84,58,0.1);}
.pc-result.pc-dir-bad svg{color:var(--clay);}
.pc-result.pc-dir-bad .pc-dir-title{color:var(--clay);}

.pc-radar-row{display:flex; align-items:center; gap:20px;}
.pc-radar-poly{animation:pcPopIn .6s ease-out both; transform-origin:100px 100px;}
@keyframes pcPopIn{from{opacity:0; transform:scale(.8);} to{opacity:1; transform:scale(1);}}
.pc-radar-legend{font-size:0.82rem; display:flex; flex-direction:column; gap:8px;}
.pc-dot{width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:6px;}

@media (max-width:760px){.pc-grid{grid-template-columns:1fr;}}
@media (max-width:760px){.extended-grid{grid-template-columns:1fr;}}
.back-link{display:inline-block; margin:44px 28px 0; max-width:1240px; font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--clay);}
@media (max-width:860px){.profile-body{grid-template-columns:1fr;}}

.extras-section{max-width:1240px; margin:0 auto; padding:0 28px 20px;}
.extras-hint{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:rgba(28,33,24,0.5); margin:0 0 18px;}
.extras-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.extras-card{background:var(--paper); padding:22px 20px;}
.extras-card h3{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--clay); margin:0 0 10px; font-weight:500; display:flex; align-items:center; gap:6px;}
.extras-card h3 svg{width:15px; height:15px; flex:0 0 auto;}
.extras-card p{font-size:0.86rem; line-height:1.6; margin:0; color:rgba(28,33,24,0.8);}
@media (max-width:980px){.extras-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.extras-grid{grid-template-columns:1fr;}}

.related-section{max-width:1240px; margin:0 auto; padding:36px 28px 80px;}
.related-section h3{font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem; margin:0 0 18px; border-top:1px solid var(--line); padding-top:32px;}
.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.related-card{background:var(--paper); padding:18px 20px; display:flex; flex-direction:column; gap:3px;}
.related-card.category-item{flex-direction:row; align-items:center; gap:12px; padding:14px 18px;}
.related-card .no{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; color:var(--gold);}
.related-card .de{font-size:0.92rem; font-weight:500;}
.related-card .la{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:rgba(28,33,24,0.55);}
.related-card:hover .de{color:var(--clay);}
@media (max-width:760px){.related-grid{grid-template-columns:1fr;}}

/* ---------- FAQ ---------- */
.faq-section{max-width:1240px; margin:0 auto; padding:0 28px 60px;}
.faq-section h3{font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem; margin:0 0 18px; border-top:1px solid var(--line); padding-top:32px;}
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  padding:16px 4px; cursor:pointer; font-weight:500; font-size:0.92rem;
  list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+"; font-family:'IBM Plex Mono',monospace; font-size:1.1rem; color:var(--clay);
  flex:0 0 auto; transition:transform .2s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{margin:0 4px 18px; font-size:0.9rem; line-height:1.6; color:rgba(28,33,24,0.75);}

/* ---------- PLANT FINDER ---------- */
.finder-layout{max-width:1240px; margin:0 auto; padding:0 28px 80px; display:grid; grid-template-columns:240px 1fr; gap:40px; align-items:start;}
.finder-filters{position:sticky; top:90px; display:flex; flex-direction:column; gap:24px;}
.finder-group h3{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--clay); margin:0 0 10px;}
.finder-group label{display:flex; align-items:flex-start; gap:8px; font-size:0.86rem; line-height:1.4; margin-bottom:8px; cursor:pointer;}
.finder-group input{margin-top:3px; flex:0 0 auto;}
.finder-count{font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:rgba(28,33,24,0.55); margin:0 0 20px;}
.finder-empty{font-size:0.9rem; color:rgba(28,33,24,0.5);}
.finder-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.finder-card{background:var(--paper); padding:14px 16px; display:flex; align-items:center; gap:12px;}
.finder-card:hover .de{color:var(--clay);}
.finder-card-img{width:48px; height:48px; object-fit:cover; border-radius:2px; border:1px solid var(--line); flex:0 0 auto;}
.finder-card-noimg{width:48px; height:48px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; background:var(--paper-warm); border-radius:2px; flex:0 0 auto;}
.finder-card-text{display:flex; flex-direction:column; gap:2px; min-width:0;}
.finder-card-text .no{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; color:var(--gold);}
.finder-card-text .de{font-size:0.88rem; font-weight:500;}
.finder-card-text .la{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:rgba(28,33,24,0.55);}

@media (max-width:860px){
  .finder-layout{grid-template-columns:1fr;}
  .finder-filters{position:static;}
  .finder-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){.finder-grid{grid-template-columns:1fr;}}

.finder-mobile-toggle{display:none;}
@media (max-width:860px){
  .finder-mobile-toggle{
    display:block; width:100%; margin-bottom:20px;
    background:var(--moss); color:var(--paper); border:1px solid var(--moss);
    padding:13px 18px; font-size:0.88rem; font-weight:500; border-radius:var(--radius); cursor:pointer;
  }
  .finder-filters{
    max-height:0; overflow:hidden; margin-bottom:0;
    transition:max-height .25s ease;
  }
  .finder-filters.open{max-height:2000px; margin-bottom:28px;}
}

/* ---------- READER GALLERY ---------- */
.member-gallery-section{max-width:1240px; margin:0 auto; padding:0 28px 20px;}
.member-gallery-section h3{font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem; margin:0 0 18px; border-top:1px solid var(--line); padding-top:32px;}
.member-gallery-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:10px;}
.member-photo-btn{
  padding:0; border:1px solid var(--line); background:none; cursor:pointer;
  aspect-ratio:1; overflow:hidden; border-radius:2px;
}
.member-photo-btn img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease;}
.member-photo-btn:hover img, .member-photo-btn:focus-visible img{transform:scale(1.08);}
@media (max-width:860px){.member-gallery-grid{grid-template-columns:repeat(4,1fr);}}
@media (max-width:560px){.member-gallery-grid{grid-template-columns:repeat(3,1fr);}}

/* ---------- COMMENTS ---------- */
.comments-section{max-width:1240px; margin:0 auto; padding:0 28px 20px;}
.comments-section h3{font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem; margin:0 0 18px; border-top:1px solid var(--line); padding-top:32px;}
.comments-flash{
  padding:12px 16px; margin:0 0 18px; border-radius:2px; font-size:0.88rem;
  background:rgba(138,152,104,0.18); color:var(--moss);
}
.comments-flash-error{background:rgba(163,84,58,0.12); color:var(--clay);}
.comments-empty{font-size:0.9rem; color:rgba(28,33,24,0.5); margin:0 0 24px;}
.comments-list{margin:0 0 32px; display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line);}
.comment-item{background:var(--paper); padding:16px 20px;}
.comment-meta{display:flex; align-items:baseline; gap:10px; margin-bottom:6px;}
.comment-name{font-family:'Fraunces',serif; font-weight:600; font-size:0.88rem;}
.comment-date{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:rgba(28,33,24,0.45);}
.comment-text{margin:0; font-size:0.88rem; line-height:1.6; color:rgba(28,33,24,0.8);}

.comment-form{max-width:600px; display:flex; flex-direction:column; gap:16px;}
.comment-form-row{display:flex; flex-direction:column; gap:6px;}
.comment-form-row label{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--sage);}
.comment-form-row input, .comment-form-row textarea{
  border:1px solid var(--line); background:#fff; padding:10px 12px;
  font-family:'Inter',sans-serif; font-size:0.9rem; border-radius:2px; resize:vertical;
}
.comment-form-row input:focus, .comment-form-row textarea:focus{outline:2px solid var(--clay); outline-offset:1px;}
.comment-honeypot{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.comment-form .btn-primary{align-self:flex-start;}

/* ---------- SITEMAP ---------- */
.sitemap-list{list-style:none; margin:0; padding:0; columns:1;}
.sitemap-list li{border-bottom:1px dotted var(--line); padding:9px 0;}
.sitemap-list a{font-size:0.9rem; font-weight:500;}
.sitemap-list a:hover{color:var(--clay);}
.sitemap-count{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:rgba(28,33,24,0.4);}
.sitemap-la{display:block; font-family:'IBM Plex Mono',monospace; font-size:0.72rem; font-weight:400; color:rgba(28,33,24,0.5); margin-top:1px;}
.sitemap-list-cols{columns:3; column-gap:32px;}
.sitemap-list-cols li{break-inside:avoid;}
@media (max-width:860px){.sitemap-list-cols{columns:2;}}
@media (max-width:560px){.sitemap-list-cols{columns:1;}}

/* ---------- CLICKABLE PHOTO + LIGHTBOX ---------- */
.specimen-photo-btn{
  position:relative; display:block; width:100%; padding:0; border:none; background:none; cursor:pointer;
  overflow:hidden;
}
.specimen-photo-btn img{width:100%; height:auto; display:block; transition:transform .35s ease;}
.specimen-photo-btn:hover img, .specimen-photo-btn:focus-visible img{transform:scale(1.035);}

.specimen-photo-badge{
  position:absolute; right:12px; bottom:12px;
  width:34px; height:34px; border-radius:50%;
  background:rgba(28,33,24,0.8); color:var(--paper);
  display:flex; align-items:center; justify-content:center;
  animation:photoBadgePulse 2.6s ease-in-out infinite;
  transition:opacity .15s ease;
}
@keyframes photoBadgePulse{
  0%, 100%{transform:scale(1); box-shadow:0 0 0 0 rgba(182,146,74,0.4);}
  50%{transform:scale(1.1); box-shadow:0 0 0 7px rgba(182,146,74,0);}
}
.specimen-photo-btn:hover .specimen-photo-badge,
.specimen-photo-btn:focus-visible .specimen-photo-badge{opacity:0;}

.specimen-photo-hint{
  position:absolute; right:10px; bottom:10px;
  display:flex; align-items:center; gap:6px;
  background:rgba(28,33,24,0.78); color:var(--paper);
  font-family:'IBM Plex Mono',monospace; font-size:0.68rem; padding:6px 10px; border-radius:2px;
  opacity:0; transform:translateY(4px);
  transition:opacity .2s ease, transform .2s ease;
}
.specimen-photo-btn:hover .specimen-photo-hint,
.specimen-photo-btn:focus-visible .specimen-photo-hint{opacity:1; transform:translateY(0);}

.lightbox{
  position:fixed; inset:0; z-index:100;
  background:rgba(20,24,17,0.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s ease, visibility 0s linear .2s;
}
.lightbox.open{opacity:1; visibility:visible; pointer-events:auto; transition:opacity .2s ease;}
.lightbox-image{max-width:min(88vw, 900px); max-height:82vh; width:auto; height:auto; box-shadow:0 20px 60px rgba(0,0,0,0.5);}
.lightbox-close{
  position:absolute; top:22px; right:26px; background:none; border:none; color:var(--paper);
  font-size:1.4rem; cursor:pointer; line-height:1; padding:8px;
}
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background:none; border:none; color:var(--paper); font-size:2.6rem; line-height:1;
  cursor:pointer; padding:10px 18px; opacity:0.75; transition:opacity .15s ease;
}
.lightbox-nav:hover{opacity:1;}
.lightbox-prev{left:8px;}
.lightbox-next{right:8px;}
.lightbox-counter{
  position:absolute; bottom:22px; left:50%; transform:translateX(-50%);
  font-family:'IBM Plex Mono',monospace; font-size:0.75rem; color:rgba(241,234,217,0.7);
}
@media (max-width:640px){
  .lightbox-nav{font-size:2rem; padding:8px 12px;}
  .lightbox-close{top:14px; right:16px;}
}

/* ---------- LEGAL PAGES ---------- */
.legal{max-width:760px; margin:0 auto; padding:80px 28px 100px;}
.legal h1{font-family:'Fraunces',serif; font-weight:600; font-size:2.4rem; margin:0 0 40px; border-bottom:1px solid var(--line); padding-bottom:24px;}
.legal h2{font-family:'Fraunces',serif; font-weight:600; font-size:1.2rem; margin:36px 0 10px;}
.legal p, .legal li{font-size:0.95rem; line-height:1.7; color:rgba(28,33,24,0.82);}
.legal .placeholder-note{margin-top:40px; font-size:0.8rem; color:rgba(28,33,24,0.5);}

/* ---------- FOOTER ---------- */
footer.site-footer{background:var(--moss-deep); color:var(--paper);}
.footer-inner{max-width:1240px; margin:0 auto; padding:56px 28px 36px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px;}
.footer-inner .brand-mark{color:var(--paper);}
.footer-cols{display:flex; gap:64px; flex-wrap:wrap;}
.footer-col h4{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sage); margin:0 0 14px;}
.footer-col a{display:block; font-size:0.85rem; color:rgba(241,234,217,0.78); margin-bottom:9px;}
.footer-col a:hover{color:var(--paper);}
.footer-bottom{max-width:1240px; margin:0 auto; padding:18px 28px 30px; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:rgba(241,234,217,0.4); border-top:1px solid rgba(241,234,217,0.1);}

/* ---------- MOBILE FINDER FAB ---------- */
.finder-fab{
  display:none; position:fixed; right:16px; bottom:16px; z-index:40;
  align-items:center; gap:7px;
  background:var(--moss); color:var(--paper); border:1px solid rgba(241,234,217,0.2);
  padding:11px 14px; border-radius:24px; font-size:0.82rem; font-weight:500;
  box-shadow:0 8px 24px rgba(0,0,0,0.25);
  opacity:0; transform:translateY(12px);
  transition:opacity .25s ease, transform .25s ease;
  pointer-events:none;
}
.finder-fab.visible{opacity:1; transform:translateY(0); pointer-events:auto;}
.finder-fab-close{
  margin-left:2px; padding:2px 4px; border-radius:50%;
  color:rgba(241,234,217,0.6); font-size:0.7rem; line-height:1;
}
.finder-fab-close:hover{color:var(--paper); background:rgba(241,234,217,0.15);}
@media (max-width:640px){.finder-fab{display:flex;}}
