:root{
--g900:#17331f;--g800:#1f3d2b;--g700:#2d5a3d;--g600:#3b7350;--g200:#cfe3d3;--g100:#e8f1e9;
--cream:#faf6ec;--paper:#fffdf8;--line:#e3dccb;--ink:#1c2a21;--muted:#55645a;
--coral:#f26a45;--coral-d:#c4421f;--teal:#8fd3d6;--teal-d:#2a7f84;--amber:#f3c25b;
--radius:14px;--shadow:0 1px 2px rgba(23,51,31,.08),0 6px 18px rgba(23,51,31,.07);
--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--cream);color:var(--ink);font:17px/1.65 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:var(--g700);text-underline-offset:2px}
a:hover{color:var(--coral-d)}
:focus-visible{outline:3px solid var(--teal-d);outline-offset:2px;border-radius:4px}
h1,h2,h3{font-family:var(--serif);line-height:1.2;color:var(--g900);margin:0 0 .5em}
h1{font-size:clamp(2rem,5vw,3rem)}
h2{font-size:clamp(1.45rem,3vw,1.85rem);margin-top:2em}
h3{font-size:1.2rem;margin-top:1.4em}
p,ul,ol,dl{margin:0 0 1em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--g900);color:#fff;padding:.7em 1em;z-index:100}
.skip:focus{left:8px;top:8px}
.wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 18px}
.narrow{max-width:780px}
main{min-height:60vh;padding-bottom:3rem}

/* header */
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.header-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.brand img{height:31px;width:auto}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}
.site-nav a,.site-nav summary{display:block;padding:.55em .8em;border-radius:999px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.97rem;cursor:pointer;list-style:none}
.site-nav summary::-webkit-details-marker{display:none}
.site-nav summary::after{content:" ▾";font-size:.8em}
.site-nav a:hover,.site-nav summary:hover,.site-nav a[aria-current="page"]{background:var(--g100);color:var(--g900)}
.has-menu{position:relative}
.has-menu details ul{position:absolute;right:0;top:100%;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:.4rem;min-width:230px;flex-direction:column;align-items:stretch;gap:0;z-index:5}
.fav-count:not(:empty){background:var(--coral);color:#1c2a21;border-radius:999px;padding:0 .5em;font-size:.8rem;margin-left:.2em}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:10px;width:44px;height:44px;cursor:pointer}
.bars,.bars::before,.bars::after{display:block;width:20px;height:2px;background:var(--g900);position:relative;margin:auto}
.bars::before,.bars::after{content:"";position:absolute;left:0}
.bars::before{top:-6px}.bars::after{top:6px}
@media (max-width:860px){
 .js .nav-toggle{display:block}
 .js .site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);padding:.5rem 18px 1rem;box-shadow:var(--shadow)}
 .js .site-nav.open{display:block}
 .site-nav ul{flex-direction:column;align-items:stretch}
 .has-menu details ul{position:static;box-shadow:none;border:0;padding:0 0 0 1rem}
 .header-in{flex-wrap:wrap}
 html:not(.js) .site-nav ul{gap:0}
}

/* breadcrumbs */
.crumbs{max-width:1160px;margin:0 auto;padding:.9rem 18px 0;font-size:.9rem;color:var(--muted)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.2rem;margin:0;padding:0}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:#9aa79d}
.crumbs a{color:var(--muted)}

/* hero + heads */
.hero{background:linear-gradient(135deg,var(--g800),var(--g700));color:#fff;padding:2.5rem 0}
.hero h1,.hero .lead{color:#fff}
.hero .eyebrow{color:var(--teal)}
.hero-in{display:grid;gap:2rem;align-items:center;grid-template-columns:1.05fr 1fr}
.hero-fig,.sp-head .hero-fig{margin:0}
.hero-fig img{border-radius:var(--radius);width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 30%;box-shadow:var(--shadow)}
.card-img img,.tile img{object-position:50% 30%}
.hero-fig figcaption{font-size:.78rem;color:inherit;opacity:.8;margin-top:.4rem}
.hero-fig figcaption a{color:inherit}
@media (max-width:820px){.hero-in{grid-template-columns:1fr}}
.eyebrow{font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:var(--teal-d);margin:0 0 .5rem}
.lead{font-size:1.2rem;color:var(--muted)}
.art-head{padding:1.5rem 0 .5rem}
.lead-block p{font-size:1.1rem;max-width:70ch}
.sci{font-style:italic;color:var(--muted);margin:0 0 .4rem}
.sci.big{font-size:1.25rem}
.sci-inline{font-size:.8rem;font-style:italic;color:var(--muted);font-weight:400;font-family:var(--sans)}

/* buttons */
.actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.2rem 0}
.btn{display:inline-block;background:var(--coral);color:#1c2a21;text-decoration:none;font-weight:700;padding:.8em 1.3em;border-radius:999px;border:2px solid var(--coral);cursor:pointer;font:inherit;font-weight:700;min-height:44px}
.btn:hover{background:#ff7d5b;color:#1c2a21}
.btn.ghost{background:transparent;color:inherit;border-color:currentColor}
.hero .btn.ghost{color:#fff}
.btn.ghost:hover{background:rgba(255,255,255,.12);color:inherit}
main .btn.ghost{color:var(--g800)}
main .btn.ghost:hover{background:var(--g100)}
.btn.small{padding:.4em 1em;min-height:36px;font-size:.9rem}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* grids + cards */
.grid{display:grid;gap:1.1rem;margin:1rem 0 1.5rem}
.cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.tiles{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.guides{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.card-img img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--g100)}
.card-body{padding:.9rem 1rem 1.1rem}
.card h3{margin:0;font-size:1.2rem}
.card h3 a{text-decoration:none;color:var(--g900)}
.card h3 a::after{content:"";position:absolute;inset:0}
.card-sum{font-size:.95rem;color:var(--muted);margin:.4rem 0 .6rem}
.seasons-line{font-size:.85rem;font-weight:600;color:var(--teal-d);margin:.5rem 0 0}
.chips{list-style:none;padding:0;margin:0;display:flex;gap:.35rem;flex-wrap:wrap}
.chips li{font-size:.76rem;background:var(--g100);color:var(--g800);border-radius:999px;padding:.1em .7em}
.card:hover{border-color:var(--g600)}
.fav{position:absolute;top:.5rem;right:.5rem;z-index:2;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,253,248,.92);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.fav svg{width:22px;height:22px;fill:none;stroke:var(--g800);stroke-width:2}
.fav[aria-pressed="true"] svg{fill:var(--coral);stroke:var(--coral-d)}
.fav-inline{position:static;width:auto;border-radius:999px;padding:0 1rem 0 .7rem;height:44px;gap:.4rem;border:2px solid var(--g700);background:transparent;box-shadow:none;font:inherit;font-weight:700;color:var(--g800)}
.tile{position:relative;display:block;border-radius:var(--radius);overflow:hidden;text-decoration:none;color:#fff;box-shadow:var(--shadow);aspect-ratio:4/3;background:var(--g800)}
.tile img{width:100%;height:100%;object-fit:cover}
.tile-t{position:absolute;inset:auto 0 0 0;padding:1.4rem .9rem .7rem;background:linear-gradient(transparent,rgba(10,25,15,.85));display:flex;flex-direction:column}
.tile-t em{font-size:.8rem;opacity:.9}
.tile:hover{color:#fff;outline:3px solid var(--coral)}
.guide-card{display:flex;flex-direction:column;gap:.3rem;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--coral);border-radius:var(--radius);padding:1rem 1.1rem;text-decoration:none;color:var(--ink);box-shadow:var(--shadow)}
.guide-card strong{font-family:var(--serif);font-size:1.15rem;color:var(--g900)}
.guide-card span{font-size:.93rem;color:var(--muted)}
.guide-card:hover{border-left-color:var(--teal-d)}

/* home */
.home section{margin-top:2.5rem}
.home h2{margin-top:0}
.finder-teaser{background:var(--g800);color:#fff;border-radius:var(--radius);padding:1.6rem}
.finder-teaser h2,.finder-teaser p{color:#fff}
.topic-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.topic-list a{display:inline-block;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.4em 1em;text-decoration:none;font-weight:600}
.cta-line{font-weight:600}
.trust{background:var(--g100);border-radius:var(--radius);padding:1.4rem}

/* species + articles */
.sp-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;padding:1rem 0 1.5rem}
@media (max-width:820px){.sp-head{grid-template-columns:1fr}}
.sp-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:2.5rem;align-items:start}
.sp-side{position:sticky;top:84px;order:2}
.sp-main{min-width:0}
@media (max-width:980px){.sp-layout{grid-template-columns:1fr}.sp-side{position:static;order:-1}}
.sp-main section{margin-bottom:1.5rem}
.sp-main>section>h2:first-child{margin-top:1.4em}
.prose{max-width:74ch}
.prose-wrap .sp-main{max-width:none}
.sp-main.prose{max-width:none}
.sp-main.prose>section>p,.sp-main.prose>section>ul,.sp-main.prose>section>ol{max-width:72ch}
.toc{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem;font-size:.93rem}
.toc h2{font-size:1rem;margin:0 0 .5rem;font-family:var(--sans)}
.toc ol{margin:0;padding-left:1.1rem}
.toc a{text-decoration:none}
.factbox{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.3rem;box-shadow:var(--shadow)}
.factbox h2{margin:0 0 .6rem;font-size:1.2rem}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6rem 1.5rem;margin:0}
.facts div{border-bottom:1px dotted var(--line);padding-bottom:.4rem}
.facts dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}
.facts dd{margin:0;font-weight:600}
.vary-note{background:#fff7e0;border-left:5px solid var(--amber);padding:.8rem 1rem;border-radius:8px;font-size:.95rem}
.callout{background:var(--g100);border-left:5px solid var(--g600);border-radius:8px;padding:.8rem 1rem;margin:1rem 0}
.callout p{margin:.3rem 0 0}
.field-marks li,.tips li{margin-bottom:.5rem}
.field-marks{padding-left:1.2rem}
.pills{display:flex;flex-wrap:wrap;gap:.4rem}
.pill{display:inline-block;background:var(--g100);border-radius:999px;padding:.2em .9em;text-decoration:none;font-size:.92rem;font-weight:600;color:var(--g800)}
.pill:hover{background:var(--g200)}
.small{font-size:.88rem;color:var(--muted)}
.small-link{font-size:.85rem;font-weight:700;white-space:nowrap}
.plain-list{padding-left:1.2rem}
.plain-list li{margin-bottom:.4rem}
.similar li{margin-bottom:.7rem}
.src-list{padding-left:1.2rem}
.faq h3{font-size:1.1rem;margin-top:1.2em}
.table-wrap{overflow-x:auto;margin:1rem 0;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
table{border-collapse:collapse;width:100%;font-size:.95rem}
caption{text-align:left;font-weight:700;padding:.6rem .8rem;color:var(--g800)}
th,td{padding:.55rem .8rem;border-top:1px solid var(--line);text-align:left}
.season-table td{text-align:center;width:14%}
.season-table td.yes{color:var(--g700);font-weight:700}
.season-table td.no{color:#9aa79d}
thead th{background:var(--g100)}
.season-block{border-left:4px solid var(--teal);padding-left:1rem;margin:1rem 0}
.season-block h3{margin:0 0 .2rem}
.family{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:.2rem}
.pairs li{margin-bottom:.6rem}
dl.criteria dt{font-weight:700;margin-top:1rem;color:var(--g900)}
dl.criteria dd{margin:.2rem 0 0}
.contact-box{background:var(--g100);border-radius:var(--radius);padding:1rem 1.2rem;font-size:1.15rem}
.voice-list li{margin-bottom:.6rem}

/* forms + tools */
.filter-bar,.explorer .controls,.compare .controls,.calendar .controls{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:end;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin:1rem 0}
label{font-weight:700;font-size:.9rem;display:block}
input[type=search],select{font:inherit;padding:.6em .8em;border:2px solid var(--line);border-radius:10px;background:#fff;min-height:44px;min-width:200px;max-width:100%;color:var(--ink)}
input:focus,select:focus{border-color:var(--teal-d)}
.field{display:flex;flex-direction:column;gap:.25rem}
.count{margin:0 0 0 auto;font-weight:700;color:var(--g700)}
.finder{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem;box-shadow:var(--shadow);margin:1rem 0}
.progress{height:8px;background:var(--g100);border-radius:99px;overflow:hidden;margin-bottom:.6rem}
.progress>span{display:block;height:100%;background:var(--coral);transition:width .25s}
.step-meta{font-size:.9rem;color:var(--muted);font-weight:600}
.finder h2{margin:.3rem 0 .3rem}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem;margin:1rem 0}
.opt{display:flex;flex-direction:column;gap:.15rem;text-align:left;background:#fff;border:2px solid var(--line);border-radius:12px;padding:.7rem .9rem;cursor:pointer;font:inherit;color:var(--ink);min-height:56px}
.opt:hover{border-color:var(--g600)}
.opt[aria-pressed="true"]{border-color:var(--g700);background:var(--g100);box-shadow:inset 0 0 0 1px var(--g700)}
.opt strong{display:flex;align-items:center;gap:.5rem}
.opt small{color:var(--muted)}
.swatch{width:20px;height:20px;border-radius:50%;border:1px solid rgba(0,0,0,.3);flex:none}
.nav-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:.5rem}
.live-count{margin-left:auto;font-weight:700;color:var(--g700)}
.answers{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0 1rem;padding:0;list-style:none}
.answers li{background:var(--g100);border-radius:999px;padding:.2em .8em;font-size:.88rem}
.answers button{background:none;border:0;color:var(--g700);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;padding:0 0 0 .3em}
.match{font-size:.8rem;font-weight:700;margin:.5rem 0 0}
.match.full{color:var(--g700)}
.match.part{color:var(--coral-d)}
.compare-table th{width:160px;background:var(--g100)}
.compare-table td{vertical-align:top;min-width:220px}
.compare-photos img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;width:100%}
.cal-table td,.cal-table th{padding:.45rem .6rem}
.cal-table td{text-align:center}
.cal-table .yes{background:var(--g200);font-weight:700;color:var(--g900)}
.empty{background:var(--paper);border:1px dashed var(--line);border-radius:var(--radius);padding:1.5rem;text-align:center}

/* footer */
.site-footer{background:var(--g900);color:#dbe8dd;padding:2.5rem 0 1rem;margin-top:2rem}
.site-footer a{color:#dbe8dd}
.site-footer a:hover{color:var(--amber)}
.site-footer h2{font-family:var(--sans);font-size:.85rem;text-transform:uppercase;letter-spacing:.09em;color:var(--teal);margin:0 0 .6rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:.35rem;font-size:.95rem}
.site-footer .brand img{filter:brightness(0) invert(1);opacity:.9}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.foot-note{font-size:.9rem;margin-top:.8rem;max-width:34ch}
.foot-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:2rem;padding-top:1rem;font-size:.85rem}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}body{font-size:16.5px}}
@media print{.site-header,.site-footer,.fav,.sp-side{display:none}}
