/*
Theme Name: Animal Sounds
Theme URI: https://animal-sounds.com/
Description: A bright, kid-friendly theme for Animal-Sounds.com. Pairs with the Animal Sounds Library plugin — the home page shows the full playable sound library with a search, category tabs, and a pop-up player. Green & amber palette, Nunito type.
Author: Animal-Sounds.com
Version: 2.3.0
License: GPL-2.0-or-later
Text Domain: animal-sounds
*/

:root{
  --green:#1a7a4a;--green-dark:#0f5233;--green-light:#e8f5ee;
  --amber:#f59e0b;--amber-light:#fef3c7;
  --text:#1c1c1c;--muted:#5a6472;--bg:#f9fafb;
  --white:#fff;--border:#e2e8f0;--radius:12px;--radius-sm:8px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Nunito',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;font-size:16px}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── Nav ── */
.site-header{background:var(--green-dark);position:sticky;top:0;z-index:200;box-shadow:0 2px 4px rgba(0,0,0,.2)}
.nav{max-width:1100px;margin:0 auto;padding:0 1.25rem;display:flex;align-items:center;gap:.75rem;height:56px}
.logo{font-size:1.2rem;font-weight:800;color:#fff;white-space:nowrap;display:flex;align-items:center;gap:.5rem}
.logo span{color:var(--amber)}
.logo img{max-height:34px;width:auto}
.nav-links{display:flex;gap:.2rem;margin-left:auto;flex-wrap:wrap;align-items:center}
.nav-links a{color:rgba(255,255,255,.82);font-size:.83rem;font-weight:700;padding:5px 10px;border-radius:6px;transition:background .15s}
.nav-links a:hover{background:rgba(255,255,255,.12);color:#fff}
.nav-links .current-menu-item a{background:rgba(255,255,255,.14);color:#fff}
.nav-cta{background:var(--amber)!important;color:#1c1c1c!important}
.nav-toggle{display:none;margin-left:auto;background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer}

/* ── Hero ── */
.hero{background:var(--green-dark);padding:3.5rem 1.5rem 3rem;text-align:center}
.hero-inner{max-width:640px;margin:0 auto}
.eyebrow{display:inline-block;background:rgba(255,255,255,.12);color:rgba(255,255,255,.88);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 14px;border-radius:100px;margin-bottom:1rem}
.hero h1{font-size:clamp(1.8rem,4.5vw,2.9rem);font-weight:800;color:#fff;line-height:1.2;margin-bottom:.75rem}
.hero h1 em{font-style:italic;color:var(--amber)}
.hero-sub{color:rgba(255,255,255,.72);font-size:1rem;max-width:520px;margin:0 auto 1.75rem;line-height:1.65}
.search-wrap{display:flex;max-width:460px;margin:0 auto;border-radius:100px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.25)}
.search-wrap input{flex:1;border:none;outline:none;padding:.75rem 1.25rem;font-size:.95rem;background:#fff;font-family:inherit}
.search-wrap button{background:var(--amber);border:none;padding:0 1.4rem;font-size:.88rem;font-weight:700;cursor:pointer;color:#1c1c1c;font-family:inherit;transition:background .15s;white-space:nowrap}
.search-wrap button:hover{background:#e58e00}
.hero-stats{display:flex;justify-content:center;gap:2rem;margin-top:2.25rem;flex-wrap:wrap}
.stat{text-align:center}
.stat strong{display:block;font-size:1.5rem;font-weight:800;color:var(--amber);line-height:1}
.stat span{font-size:.73rem;color:rgba(255,255,255,.6);font-weight:700;text-transform:uppercase;letter-spacing:.05em}

/* ── Main ── */
.main{max-width:1100px;margin:2rem auto;padding:0 1.25rem}
.section{margin-bottom:2.5rem}
.section-hdr{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.section-hdr h2{font-size:1.4rem;font-weight:800;margin:0}
.section-hdr a{font-size:.85rem;color:var(--green);font-weight:700}
.section-hdr a:hover{text-decoration:underline}

/* ── Category grid ── */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.9rem}
.cat-card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem;display:flex;align-items:center;gap:.85rem;color:var(--text);transition:border-color .15s,transform .18s}
.cat-card:hover{border-color:var(--green);transform:translateY(-2px)}
.cat-icon{font-size:2rem;line-height:1;flex-shrink:0}
.cat-label{font-weight:800;font-size:.93rem}
.cat-count{font-size:.77rem;color:var(--muted)}
.cat-arrow{margin-left:auto;color:var(--border);font-size:1.1rem}

/* ── Article ── */
.content-box{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);padding:1.75rem}
.content-box h2{font-size:1.2rem;font-weight:800;margin:1.4rem 0 .55rem}
.content-box h2:first-child{margin-top:0}
.content-box p{font-size:.93rem;color:#3a3a3a;line-height:1.78;margin-bottom:.7rem}
.content-box ul{padding-left:1.25rem;margin-bottom:.7rem}
.content-box li{font-size:.93rem;color:#3a3a3a;line-height:1.78;margin-bottom:.2rem}

/* ── FAQ ── */
.faq-section h2{font-size:1.4rem;font-weight:800;margin-bottom:1rem}
.faq-item{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.55rem;overflow:hidden}
.faq-q{width:100%;background:none;border:none;text-align:left;padding:.9rem 1.1rem;font-weight:700;font-size:.93rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-family:inherit;color:var(--text)}
.faq-q:hover{background:var(--green-light)}
.faq-arrow{font-size:1rem;color:var(--muted);transition:transform .2s;flex-shrink:0}
.faq-a{font-size:.9rem;color:var(--muted);line-height:1.7;max-height:0;overflow:hidden;transition:max-height .28s ease,padding .28s ease;padding:0 1.1rem}
.faq-item.open .faq-a{max-height:320px;padding:.2rem 1.1rem .9rem}
.faq-item.open .faq-arrow{transform:rotate(180deg)}

/* ── Generic page/post ── */
.page-main{max-width:760px;margin:2rem auto;padding:0 1.25rem 3rem}
.entry-title{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800;line-height:1.15;margin:0 0 .5rem}
.entry-content{font-size:1rem;line-height:1.8}
.entry-content h2{font-size:1.25rem;font-weight:800;margin:1.5em 0 .4em}
.entry-content p{margin-bottom:.8em}
.entry-content a{color:var(--green);font-weight:700;text-decoration:underline}
.muted{color:var(--muted)}
.crumb{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--green)}

/* ── Footer ── */
footer.site-footer{background:var(--green-dark);color:rgba(255,255,255,.6);margin-top:3rem;padding:2.5rem 1.25rem}
.footer-inner{max-width:1100px;margin:0 auto}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;margin-bottom:1.75rem}
.footer-logo{font-size:1.1rem;font-weight:800;color:#fff;margin-bottom:.5rem}
.footer-logo span{color:var(--amber)}
.footer-desc{font-size:.82rem;line-height:1.6;max-width:220px}
.footer-col h4{color:#fff;font-size:.82rem;font-weight:800;margin-bottom:.6rem;text-transform:uppercase;letter-spacing:.06em}
.footer-col a{display:block;font-size:.8rem;color:rgba(255,255,255,.6);margin-bottom:.32rem;transition:color .15s}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1.2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.79rem}

@media(max-width:700px){
  .hero{padding:2.5rem 1rem 2rem}
  .footer-grid{grid-template-columns:1fr 1fr}
  .nav-links{display:none;position:absolute;top:56px;left:0;right:0;background:var(--green-dark);flex-direction:column;padding:.5rem 1rem 1rem;gap:.1rem}
  .nav-links.open{display:flex}
  .nav-links a{padding:9px 10px}
  .nav-toggle{display:block}
  .nav{position:relative}
}
@media(max-width:460px){ .footer-grid{grid-template-columns:1fr} }
