/* holiday.5l5l.net — 节日百科主题（复用 5l5l 数据百科骨架，日历/节庆暖色） */
:root{
  --bg:#faf8f5; --surface:#fff; --text:#1f2430; --text-secondary:#5b6472;
  --brand:#b3541e; --brand-ink:#8a3f14; --brand-soft:#f6e8dd;
  --line:#e7e2da; --tag-bg:#eef1f6; --tag-ink:#41506b;
  --chip:#f1ede6; --chip-active:#b3541e;
  --shadow:0 1px 2px rgba(31,36,48,.06),0 4px 14px rgba(31,36,48,.05);
  --radius:12px;
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--text);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif}
body{margin:0;background:var(--bg);min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px;width:100%}
a{color:var(--brand-ink)}
a:hover{opacity:.8}
h1{font-size:clamp(1.5rem,4vw,2.1rem);margin:.6em 0 .3em;letter-spacing:-.01em}
h2{font-size:1.25rem;margin:1.4em 0 .6em}
h1 .flag,h2 .flag{margin-right:.25em}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--brand);color:#fff;padding:8px 14px;border-radius:0 0 8px 0;z-index:100}
.skip-link:focus{left:0}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}

.site-header{position:sticky;top:0;background:rgba(250,248,245,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:50}
.header-inner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 16px}
.brand{font-weight:800;font-size:1.05rem;color:var(--brand-ink);text-decoration:none;white-space:nowrap;min-height:32px;display:inline-flex;align-items:center}
.nav-links{display:flex;gap:4px;flex-wrap:wrap}
.nav-links a{color:var(--text);text-decoration:none;padding:6px 10px;border-radius:8px;min-height:32px;display:inline-flex;align-items:center}
.nav-links a[aria-current="page"]{background:var(--brand-soft);color:var(--brand-ink);font-weight:600}
.nav-links a:hover{background:var(--chip)}
.search-box{display:flex;margin-left:auto;min-width:170px}
.search-box input{flex:1;padding:7px 12px;border:1px solid var(--line);border-right:none;border-radius:8px 0 0 8px;background:var(--surface);color:var(--text);min-width:0}
.search-box button{padding:7px 14px;border:none;background:var(--brand);color:#fff;border-radius:0 8px 8px 0;cursor:pointer;min-width:44px;min-height:32px}
.lang-switch select{padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);max-width:150px}

.hero{background:linear-gradient(160deg,var(--brand-soft),#fff 70%);border-bottom:1px solid var(--line);padding:34px 16px 26px;text-align:center}
.hero .wrap{padding:0 16px}
.hero h1{margin:0 0 .35em}
.hero-sub{color:var(--text-secondary);max-width:640px;margin:0 auto .8em}
.hero-stats{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;color:var(--text-secondary)}
.hero-stats strong{color:var(--brand-ink);font-size:1.2rem}

section.wrap,main .wrap>section{margin:26px auto}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 12px;text-decoration:none;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;transition:transform .15s ease,box-shadow .15s ease;min-height:96px;justify-content:center}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);opacity:1}
.card .flag{font-size:1.7rem;line-height:1}
.card-name{font-weight:600}
.card-meta{font-size:.8rem;color:var(--text-secondary)}
.more-link{display:inline-block;margin-top:6px;font-weight:600}

.holiday-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.holiday-item{display:flex;gap:10px;align-items:baseline;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.holiday-item:last-child{border-bottom:none}
.holiday-item a{color:var(--brand-ink);text-decoration:none;white-space:nowrap}
.holiday-item a:hover{text-decoration:underline}
.holiday-name{font-weight:600}
.holiday-country{color:var(--text-secondary);font-size:.9rem}
.en-name{color:var(--text-secondary);font-size:.85em;margin-left:6px}
.tag{background:var(--tag-bg);color:var(--tag-ink);border-radius:999px;padding:2px 9px;font-size:.75rem;white-space:nowrap}

.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.chip{background:var(--chip);color:var(--text);text-decoration:none;border-radius:999px;padding:6px 13px;min-height:32px;min-width:32px;display:inline-flex;align-items:center;justify-content:center}
.chip:hover{background:var(--brand-soft);color:var(--brand-ink)}
.chip-active{background:var(--chip-active);color:#fff}

.holiday-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.holiday-table th,.holiday-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line)}
.holiday-table th{background:var(--brand-soft);color:var(--brand-ink);font-size:.85rem}
.holiday-table tr:last-child td{border-bottom:none}
.holiday-table a{white-space:nowrap}
.holiday-name-cell{word-break:break-word}

.crumbs{font-size:.85rem;color:var(--text-secondary);margin-top:18px}
.crumbs a{color:var(--text-secondary)}
.crumbs span{color:var(--text)}
.sub{color:var(--text-secondary)}
.result-count{color:var(--text-secondary);font-size:.9rem}
.filter-form{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.filter-form input,.filter-form select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}
.filter-form button{padding:8px 16px;background:var(--brand);color:#fff;border:none;border-radius:8px;cursor:pointer}

.pager{display:flex;gap:14px;align-items:center;margin:18px 0}
.pager a{padding:6px 12px;background:var(--chip);border-radius:8px;text-decoration:none;color:var(--text)}

.prose{max-width:720px}
.prose p{color:var(--text);margin:.8em 0}
.prose h2{margin-top:1.6em}

.site-footer{margin-top:40px;background:#232833;color:#cfd4dd;padding:28px 16px 22px;font-size:.9rem}
.site-footer .wrap{text-align:center}
.footer-links{line-height:2.2}
.footer-links a{color:#e8b98f;text-decoration:none;display:inline-block;min-height:32px;padding:6px 2px;min-width:32px}
.footer-links a:hover{opacity:.75}
.copy{opacity:.7}
.attribution{opacity:.6;font-size:.8rem}

.ad-slot{margin:22px 0;text-align:center;min-height:90px}
.ad-slot .ad-label{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px;opacity:.7}

.consent-banner{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(31,36,48,.12);z-index:90;padding:16px}
.consent-banner[hidden]{display:none}
.consent-inner{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.consent-text{margin:0;flex:1;min-width:220px}
.consent-actions{display:flex;gap:8px}
.btn{padding:8px 18px;border-radius:8px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text);min-height:36px}
.btn-accept{background:var(--brand);color:#fff;border-color:var(--brand)}

@media (max-width:640px){
  .header-inner{gap:8px}
  .search-box{margin-left:0;order:5;min-width:100%}
  .site-header{position:static}
  .cards{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
  .holiday-item{padding:9px 12px}
  .consent-inner{flex-direction:column;align-items:stretch;text-align:center}
}
