*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0a0a14;--bg-2:#0d0f18;--panel:#1c1d27;--panel-2:#14161d;--panel-3:#20222c;--text:#f4f1ec;--muted:#8b8b94;--muted-2:#64656f;--accent:#f0b660;--accent-strong:#ffbd5a;--line:#2a2c38;--line-soft:#242631;--weekend:#22242d;--holiday-dot:#4ea0d8;--holiday-dot-alt:#d18834;--radius:18px;--pill:999px;--logo-accent:#f8d5a7;--control-bg:var(--panel);--control-border:var(--line);--control-hover:var(--panel-3);--stat-bg:#181922;--stat-border:#262837;--tab-text:#c3c2c9;--tab-hover:#20222d;--tab-active-start:#ffc16b;--tab-active-end:#f3af4a;--tab-active-text:#1d1509;--tab-active-shadow:rgba(240,182,96,.22);--heatmap-axis:#757684;--heatmap-month:#9797a0;--heatmap-cell:#1b1e27;--heatmap-weekend:#16181f;--heatmap-bg:#090b11;--hm-national:#e6912f;--hm-national-glow:rgba(230,145,47,.6);--hm-national-glow2:rgba(230,145,47,.32);--hm-regional:#f4d49c;--hm-regional-glow:rgba(244,212,156,.42);--hm-regional-glow2:rgba(244,212,156,.2);--table-border:#1e2028;--table-head-bg:#232631;--table-head-text:#888994;--table-row-bg:#15171e;--table-row-hover:#181b22;--table-past-text:#6a6b74;--table-past-secondary:#696a73;--badge-bg:#1e2028;--badge-border:#2a2c36;--badge-text:#c0c2ca;--badge-weekend-bg:#21262b;--badge-weekend-border:#30363a;--badge-weekend-text:#c8d2ba;--holiday-month-text:#666873;--holiday-day-text:#8f9098;--holiday-name-text:#797b83;--holiday-when-text:#6e7079;--holiday-when-secondary:#5e6068;--flag-shadow:rgba(0,0,0,.28)}
html{color-scheme:dark}
html[data-theme="light"]{color-scheme:light;--bg:#f7f3ec;--bg-2:#efe8db;--panel:#ffffff;--panel-2:#fffaf2;--panel-3:#f4ece1;--text:#201a14;--muted:#7c7266;--muted-2:#92887a;--accent:#b56f16;--accent-strong:#8f5306;--line:#ddd1c2;--line-soft:#e9dece;--weekend:#e6dfd3;--holiday-dot:#2d86c9;--holiday-dot-alt:#b56f16;--logo-accent:#d8a45c;--control-bg:#fffdf8;--control-border:#d9ccb9;--control-hover:#f3ebe0;--stat-bg:#faf3e7;--stat-border:#dfd0bb;--tab-text:#72685b;--tab-hover:#efe6d7;--tab-active-start:#cb8827;--tab-active-end:#b66d14;--tab-active-text:#fff8f0;--tab-active-shadow:rgba(181,111,22,.18);--heatmap-axis:#8a8074;--heatmap-month:#756a5f;--heatmap-cell:#e1d9ce;--heatmap-weekend:#d6cec3;--heatmap-bg:#f3ebe0;--hm-national:#b56f16;--hm-national-glow:rgba(181,111,22,.32);--hm-national-glow2:rgba(181,111,22,.15);--hm-regional:#e0bd86;--hm-regional-glow:rgba(224,189,134,.34);--hm-regional-glow2:rgba(224,189,134,.16);--table-border:#ddd4c6;--table-head-bg:#f1e8da;--table-head-text:#8a7865;--table-row-bg:#fffdf8;--table-row-hover:#f8f0e5;--table-past-text:#a3998b;--table-past-secondary:#8f8578;--badge-bg:#f3ede3;--badge-border:#ddd2c4;--badge-text:#5f564d;--badge-weekend-bg:#e7efe1;--badge-weekend-border:#cbd9c1;--badge-weekend-text:#5c6a52;--holiday-month-text:#8b7c6f;--holiday-day-text:#574d42;--holiday-name-text:#2e2821;--holiday-when-text:#6d6358;--holiday-when-secondary:#968c80;--flag-shadow:rgba(0,0,0,.08)}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);line-height:1.4;min-height:100vh}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
header{padding:16px 0;border-bottom:1px solid var(--line);background:var(--bg-2)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.logo{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:1.5rem;color:var(--accent)}
.logo span{color:var(--logo-accent)}
nav{display:flex;align-items:center;gap:14px;font-size:.92rem}
nav a{color:var(--text)}
.theme-switch{display:flex;align-items:center;gap:8px;background:var(--control-bg);border:1px solid var(--control-border);border-radius:10px;padding:6px 10px;color:var(--text)}
.theme-switch-label{font-size:.82rem;color:var(--muted);font-weight:600}
.theme-switch select{appearance:none;background:var(--control-bg);border:none;color:var(--text);font-size:.9rem;font-weight:600;padding-right:18px;cursor:pointer;outline:none}
.theme-switch:hover{background:var(--control-hover)}
.lang-switch{position:relative;display:inline-block}
.lang-switch button{background:var(--control-bg);border:1px solid var(--control-border);border-radius:10px;padding:6px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;color:var(--text);font-size:.9rem}
.lang-menu{display:none;position:absolute;right:0;top:calc(100% + 6px);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px;min-width:160px;z-index:10;box-shadow:0 16px 30px rgba(0,0,0,.18)}
.lang-switch:hover .lang-menu,.lang-switch:focus-within .lang-menu{display:block}
.lang-menu a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;color:var(--text)}
.lang-menu a:hover{background:var(--control-hover);color:var(--accent)}
.lang-menu img{width:20px;height:15px;object-fit:cover;border-radius:2px}

.ad-slot{background:var(--panel);border:1px dashed var(--line);border-radius:16px;padding:20px;text-align:center;color:var(--muted);font-size:.8rem;margin:20px 0;min-height:90px;display:flex;align-items:center;justify-content:center}
.country-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:20px 0}
.country-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.country-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 14px 24px rgba(0,0,0,.22)}
.country-card .flag{width:24px;height:18px;object-fit:cover;border-radius:2px;vertical-align:middle}
.country-card .name{font-weight:700;color:var(--text);margin-top:4px}
.country-card .info{font-size:.8rem;color:var(--muted)}
.continent-section{margin:30px 0}
.continent-section h2,.related h2,.faq h2{font-size:1.18rem;font-weight:700;margin-bottom:12px;color:var(--accent)}
.related{margin:44px 0 0}
.related-links{display:flex;flex-wrap:wrap;gap:10px}
.related-links a{padding:8px 14px;background:var(--panel);border:1px solid var(--line);border-radius:999px;font-size:.85rem;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;color:var(--text)}
.related-links a:hover{border-color:var(--accent);color:var(--accent)}
.related-links img{width:18px;height:14px;object-fit:cover;border-radius:2px}
.faq{margin:44px 0 0}
.faq details{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin:10px 0}
.faq summary{padding:14px 16px;font-weight:600;cursor:pointer;font-size:.95rem;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq details[open] summary{border-bottom:1px solid var(--line)}
.faq p{padding:14px 16px;color:var(--muted);font-size:.92rem}
footer{border-top:1px solid var(--line);padding:22px 0;margin-top:48px;text-align:center;color:var(--muted);font-size:.85rem;background:var(--bg-2)}

.country-page main.wrap{max-width:1290px;padding:56px 48px 110px}
.country-layout{display:flex;flex-direction:column;gap:34px}
.country-page .hero{text-align:center;padding:0}
.hero-flag{width:auto;height:auto;margin:0 auto 26px;display:flex;align-items:center;justify-content:center;background:none;border:none;box-shadow:none}
.country-page .hero .emoji{font-size:4.3rem;line-height:1;filter:none;margin:0;text-shadow:0 8px 20px var(--flag-shadow)}
.country-page .hero h1{margin:0 auto 18px;max-width:1040px;font-size:4.05rem;line-height:1.05;font-weight:700;color:var(--text);letter-spacing:-.04em}
.hero-country{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:500;color:var(--accent);letter-spacing:-.03em}
.country-page .hero .sub{font-size:1rem;color:var(--muted);margin-bottom:28px}
.hero-stats{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.stat-pill{display:inline-flex;align-items:center;gap:14px;min-width:122px;height:56px;padding:0 20px;border-radius:var(--pill);background:var(--stat-bg);border:1px solid var(--stat-border);color:var(--muted);box-shadow:inset 0 1px 0 rgba(255,255,255,.02)}
.stat-pill strong{font-size:1.02rem;color:var(--text);font-weight:700}
.stat-pill span{font-size:.84rem;text-transform:uppercase;letter-spacing:.09em;font-weight:600}
.stat-pill-active{background:rgba(240,182,96,.16);border-color:rgba(240,182,96,.55);color:var(--accent)}
.stat-pill-active strong,.stat-pill-active span{color:var(--accent-strong)}

.calendar-overview{margin:0 auto 18px}
.year-nav{display:flex;align-items:center;gap:4px;padding:6px;background:var(--stat-bg);border:1px solid var(--stat-border);border-radius:999px;box-shadow:inset 0 1px 0 rgba(255,255,255,.02)}
.year-nav a,.year-nav span{min-width:84px;height:40px;padding:0 20px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;border:none;background:transparent;color:var(--tab-text)}
.year-nav a:hover{color:var(--text);background:var(--tab-hover)}
.year-nav span{background:linear-gradient(180deg,var(--tab-active-start),var(--tab-active-end));color:var(--tab-active-text);box-shadow:0 8px 18px var(--tab-active-shadow)}
.heatmap-panel{width:100%}

.heatmap{--hm-cell:14px;--hm-gap:2px;--hm-month-gap:10px;background:var(--heatmap-bg);border:1px solid var(--line);border-radius:20px;padding:20px 22px 18px;margin:0;display:flex;flex-direction:column;gap:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;box-shadow:0 22px 40px rgba(0,0,0,.28)}
.heatmap-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.heatmap-title{font-weight:700}
.heatmap-total{text-transform:none;letter-spacing:.02em;color:var(--muted);font-size:.92rem}
.heatmap-total strong{color:var(--text);font-weight:700;margin-right:6px}
.heatmap-grid{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--hm-month-gap);padding:2px 0}
.heatmap-month-block{display:flex;flex-direction:column;align-items:center;gap:7px}
.heatmap-month{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;letter-spacing:.12em;color:var(--heatmap-month);text-align:center;font-weight:500}
.heatmap-month--current{color:var(--accent);font-weight:700}
.heatmap-month-cells{display:grid;grid-template-rows:repeat(7,var(--hm-cell));grid-auto-columns:var(--hm-cell);grid-auto-flow:column;gap:var(--hm-gap)}
.heatmap-cell{width:var(--hm-cell);height:var(--hm-cell);border-radius:3px;background:var(--heatmap-cell);transition:transform .08s ease,filter .08s ease;cursor:default}
.heatmap-cell--weekday{background:var(--heatmap-cell)}
.heatmap-cell--weekend{background:var(--heatmap-weekend)}
.heatmap-cell--holiday{background:var(--hm-national);box-shadow:0 0 4px 1px var(--hm-national-glow),0 0 10px 3px var(--hm-national-glow2);cursor:pointer;position:relative;z-index:1}
.heatmap-cell--holiday.heatmap-cell--regional{background:var(--hm-regional);box-shadow:0 0 3px 1px var(--hm-regional-glow),0 0 7px 2px var(--hm-regional-glow2);z-index:0}
.heatmap-cell--holiday:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px;z-index:3}
.heatmap-cell--today{outline:2px solid var(--text);outline-offset:1px}
.heatmap-cell--empty{background:transparent;box-shadow:none}
.heatmap-cell:not(.heatmap-cell--empty):hover{transform:scale(1.45);filter:brightness(1.12);z-index:4;position:relative}
.heatmap-swatch{display:inline-block;width:11px;height:11px;border-radius:3px;vertical-align:-1px;margin-right:6px}
.heatmap-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:#7d7e89}
.heatmap-legend span{display:inline-flex;align-items:center}

.month-bar{display:flex;flex-wrap:wrap;gap:8px;max-width:1080px;margin:18px auto 14px;padding:8px;background:var(--stat-bg);border:1px solid var(--stat-border);border-radius:var(--pill);justify-content:center}
.month-bar:empty{display:none}
.month-btn{flex:1 1 auto;min-width:62px;padding:10px 8px;border-radius:var(--pill);border:1px solid transparent;background:transparent;color:var(--tab-text);font-size:.92rem;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:background .12s ease,color .12s ease}
.month-btn:hover:not(:disabled){background:var(--tab-hover);color:var(--text)}
.month-btn--current{background:linear-gradient(180deg,var(--tab-active-start),var(--tab-active-end));color:var(--tab-active-text);box-shadow:0 8px 18px var(--tab-active-shadow)}
.month-btn--empty{opacity:.38;cursor:default}
.month-btn:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}

/* Controls row above the list: years on the left, months flush to the right. */
.list-controls{display:flex;align-items:stretch;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 auto 16px}
.list-controls .year-nav{margin:0}
.list-controls .month-bar{margin:0;max-width:none;justify-content:flex-end;align-items:center}
.list-controls .month-btn{flex:0 0 auto}

.list-toolbar{display:flex;justify-content:flex-end;margin:0 0 10px}
.export-pdf-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--pill);border:1px solid var(--control-border);background:var(--control-bg);color:var(--text);font-size:.9rem;font-weight:700;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}
.export-pdf-btn:hover{background:var(--control-hover);border-color:var(--accent);color:var(--accent)}
.export-pdf-btn:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}
.export-pdf-btn[aria-busy="true"]{opacity:.6;cursor:progress}
.export-pdf-icon{flex:0 0 auto}

.holiday-table tr[data-holiday-date]{scroll-margin-top:24px}
.holiday-table tr.holiday-row--flash td{animation:holiday-row-flash 1.2s ease}
@keyframes holiday-row-flash{0%,100%{background:var(--table-row-bg)}25%{background:var(--table-row-hover)}}
.holiday-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--panel-2);border:1px solid var(--table-border);border-radius:22px;overflow:hidden;box-shadow:0 30px 54px rgba(0,0,0,.15)}
.holiday-table thead{background:var(--table-head-bg)}
.holiday-table th{padding:20px 34px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1rem;letter-spacing:.18em;text-transform:uppercase;text-align:left;color:var(--table-head-text);font-weight:700}
.holiday-table th:last-child{text-align:right}
.holiday-table td{padding:30px 34px;background:var(--table-row-bg);border-top:1px solid var(--line);vertical-align:middle}
.holiday-table tbody tr:first-child td{border-top:1px solid var(--line)}
.holiday-table tr:hover td{background:var(--table-row-hover)}
.holiday-table tr.past td{background:var(--table-row-bg);color:var(--table-past-text)}
.holiday-table tr.past .holiday-name-primary,.holiday-table tr.past .holiday-day,.holiday-table tr.past .holiday-when-primary{color:var(--table-past-secondary)}
.holiday-table tr.past .day-badge{background:var(--badge-bg);border-color:var(--badge-border);color:var(--muted)}
.holiday-table tr.today-divider td{padding:0;height:2px;border-top:none;background:var(--table-row-bg)}
.today-divider-label{display:none}

.holiday-row{cursor:pointer}
.holiday-row:focus-visible{outline:2px solid var(--accent-strong);outline-offset:-2px}
.holiday-table .holiday-date-cell{width:1%;white-space:nowrap;padding-left:24px;padding-right:8px}
.holiday-date-top{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:102px;padding:11px 16px 12px;background:var(--badge-bg);border:1px solid var(--badge-border);border-radius:14px}
.holiday-month{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;letter-spacing:.12em;color:var(--holiday-month-text);text-transform:uppercase;line-height:1}
.holiday-day{font-size:2.1rem;line-height:.95;color:var(--text);font-weight:700;letter-spacing:-.04em}
.holiday-weekday{margin-top:2px;font-size:.74rem;font-weight:600;letter-spacing:.02em;line-height:1.1;color:var(--holiday-month-text);text-align:center;white-space:nowrap}
.holiday-weekday--weekend{color:var(--badge-weekend-text)}

.holiday-table .holiday-name-cell{vertical-align:middle;padding-left:12px}
.holiday-table thead th:first-child{padding-left:24px}
.holiday-table thead th:nth-child(2){padding-left:12px}
.holiday-name-stack{display:flex;flex-direction:column;gap:8px}
.holiday-name-primary{display:inline-block;font-size:1.26rem;line-height:1.14;font-weight:500;letter-spacing:-.02em;color:var(--holiday-name-text);text-decoration:none}
.holiday-row:hover .holiday-name-primary,.holiday-name-primary:hover,.holiday-name-primary:focus-visible{color:var(--accent)}
.holiday-name-secondary{font-size:1rem;color:var(--muted)}
.holiday-region{font-size:.92rem;color:var(--accent);font-weight:600;letter-spacing:.01em}
.holiday-table tr.past .holiday-region{color:var(--muted)}
.holiday-type-list{display:flex;flex-wrap:wrap;gap:8px}
.holiday-type-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;border:1px solid var(--badge-border);background:var(--badge-bg);color:var(--badge-text);font-size:.82rem;line-height:1;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.holiday-table tr.past .holiday-type-pill{opacity:.8}

.holiday-when-cell{text-align:right;width:260px}
.holiday-when-primary{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.08rem;letter-spacing:.05em;color:var(--holiday-when-text)}
.weekday-widget{display:inline-flex;flex-direction:column;gap:7px;margin-top:14px}
.weekday-widget-labels,.weekday-widget-cells{display:grid;grid-template-columns:repeat(7,24px);gap:7px}
.weekday-widget-labels span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;line-height:1;color:var(--muted-2);text-align:center;text-transform:uppercase}
.weekday-cell{width:24px;height:24px;border-radius:7px;background:var(--badge-bg);border:1px solid var(--badge-border)}
.weekday-cell--weekend{background:var(--badge-weekend-bg);border-color:var(--badge-weekend-border)}
.weekday-cell--active{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 2px var(--tab-active-shadow)}
.holiday-table tr.past .weekday-cell--active{background:var(--muted-2);border-color:var(--muted-2);box-shadow:none}
.countdown{color:inherit}

.holiday-details{margin-top:14px;border-top:1px dashed var(--badge-border);padding-top:12px}
.holiday-details-toggle{cursor:pointer;color:var(--muted);font-size:.92rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;list-style:none;display:inline-flex;align-items:center;gap:6px}
.holiday-details-toggle::-webkit-details-marker{display:none}
.holiday-details-toggle::before{content:"+";display:inline-block;width:1em;font-weight:700}
.holiday-details[open] .holiday-details-toggle::before{content:"−"}
.holiday-details-body{margin-top:14px;display:flex;flex-direction:column;gap:18px}
.holiday-details-body h4{margin:0 0 6px;font-size:.86rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.holiday-details-body p{margin:0;line-height:1.5}
.holiday-details-body ul{margin:0;padding-left:18px;line-height:1.5}
.holiday-details-body .hd-source{font-size:.8rem;color:var(--muted);margin-top:6px}
.bi-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px}
.bi-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;background:var(--badge-bg);border:1px solid var(--badge-border)}
.bi-channel{font-size:.92rem;color:var(--holiday-name-text)}
.bi-status{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.bi-status--closed{color:#e85c5c}
.bi-status--mostly-closed{color:#e89a5c}
.bi-status--reduced{color:#e8c95c}
.bi-status--varies{color:#9ab0e8}
.bi-status--mostly-open{color:#8ee08e}
.bi-status--open,.bi-status--normal{color:#5ce85c}

.holiday-details-link{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:10px 14px;border:1px solid var(--badge-border);border-radius:999px;background:var(--badge-bg);color:var(--text);font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1}
.holiday-details-link::after{content:"↗";font-size:.9em;opacity:.72}
.holiday-details-link:hover{border-color:var(--accent);color:var(--accent)}

.holiday-page main.wrap{max-width:1240px;padding:52px 32px 96px}

/* ── Redesigned holiday detail page ──────────────────────────── */
.hd-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:22px 24px}
.hd-card-title{display:flex;align-items:center;gap:10px;margin:0 0 18px;font-size:1.2rem;font-weight:700;color:var(--text)}

.hd-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
.hd-badges{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.hd-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:999px;background:rgba(240,182,96,.12);border:1px solid rgba(240,182,96,.42);color:var(--accent);font-weight:700;font-size:.92rem;line-height:1}
.hd-pill svg{width:15px;height:15px;flex:0 0 auto}
.hd-observance{color:var(--muted);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.84rem}
.hd-title{margin:0 0 14px;font-size:3.2rem;line-height:1.04;letter-spacing:-.04em;color:var(--text)}
.hd-dateline{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-size:1.04rem}
.hd-dateline svg{width:17px;height:17px;opacity:.8;flex:0 0 auto}
.hd-header .export-pdf-btn{flex:0 0 auto}
.hd-back{display:inline-flex;align-items:center;gap:7px;margin-bottom:20px;color:var(--muted);font-weight:600;font-size:.92rem;text-decoration:none;transition:color .12s ease}
.hd-back:hover{color:var(--accent)}
.hd-back svg{width:16px;height:16px;flex:0 0 auto}

.hd-main-grid{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:24px;align-items:start}
.hd-left,.hd-right{display:flex;flex-direction:column;gap:24px;min-width:0}

/* Calendar */
.hd-cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.hd-cal-title{font-size:1.32rem;font-weight:700;color:var(--text)}
.hd-cal-nav{display:flex;gap:6px}
.hd-cal-nav a,.hd-cal-nav span{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;border:1px solid var(--line);color:var(--muted);font-size:1rem;line-height:1}
.hd-cal-nav a:hover{border-color:var(--accent);color:var(--accent)}
.hd-cal-nav .is-disabled{opacity:.32}
.hd-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.hd-cal-dow{margin-bottom:6px}
.hd-cal-dow span{font-size:.8rem;font-weight:600;color:var(--muted);padding:4px 0}
.hd-cal-day{display:flex;align-items:center;justify-content:center;padding:9px 0;border-radius:10px;font-size:.95rem;color:var(--text)}
.hd-cal-day--out{color:var(--muted-2)}
.hd-cal-day--holiday{background:var(--accent);color:var(--tab-active-text);font-weight:700}
.hd-cal-legend{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}
.hd-cal-legend .dot{width:9px;height:9px;border-radius:50%;background:var(--accent)}

/* What's open */
.hd-open-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.hd-open-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;background:var(--badge-bg);border:1px solid var(--badge-border);border-left:3px solid var(--muted-2)}
.hd-open-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--panel-3);font-size:1.05rem;flex:0 0 auto}
.hd-open-label{flex:1;min-width:0;color:var(--text);font-weight:500;font-size:.97rem}
.hd-open-status{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:5px 10px;border-radius:8px;white-space:nowrap;color:var(--muted);background:var(--panel-3)}
.hd-open-row.hd-status--closed{border-left-color:#e85c5c}
.hd-open-row.hd-status--closed .hd-open-status{color:#e85c5c;background:rgba(232,92,92,.13)}
.hd-open-row.hd-status--mostly-closed{border-left-color:#e89a5c}
.hd-open-row.hd-status--mostly-closed .hd-open-status{color:#e89a5c;background:rgba(232,154,92,.13)}
.hd-open-row.hd-status--reduced{border-left-color:#e8c95c}
.hd-open-row.hd-status--reduced .hd-open-status{color:#e8c95c;background:rgba(232,201,92,.13)}
.hd-open-row.hd-status--varies{border-left-color:#9ab0e8}
.hd-open-row.hd-status--varies .hd-open-status{color:#9ab0e8;background:rgba(154,176,232,.13)}
.hd-open-row.hd-status--mostly-open{border-left-color:#8ee08e}
.hd-open-row.hd-status--mostly-open .hd-open-status{color:#8ee08e;background:rgba(142,224,142,.13)}
.hd-open-row.hd-status--open,.hd-open-row.hd-status--normal{border-left-color:#5ce85c}
.hd-open-row.hd-status--open .hd-open-status,.hd-open-row.hd-status--normal .hd-open-status{color:#5ce85c;background:rgba(92,232,92,.13)}

/* Long weekend potential */
.hd-lw-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}
.hd-lw-head .hd-card-title{margin:0}
.hd-lw-pill{flex:0 0 auto;padding:5px 12px;border-radius:999px;background:var(--badge-bg);border:1px solid var(--badge-border);color:var(--muted);font-size:.78rem;font-weight:700}
.hd-lw-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}
.hd-lw-day{display:flex;flex-direction:column;align-items:center;gap:9px;padding:16px 10px;border-radius:14px;background:var(--badge-bg);border:1px solid var(--badge-border)}
.hd-lw-day .abbr{font-size:.76rem;font-weight:700;letter-spacing:.08em;color:var(--muted)}
.hd-lw-day .num{font-size:1.7rem;font-weight:800;line-height:1;color:var(--text)}
.hd-lw-day .tag{font-size:.74rem;font-weight:600;padding:4px 10px;border-radius:7px;background:var(--panel-3);color:var(--muted)}
.hd-lw-day--holiday{border-color:var(--accent);background:rgba(240,182,96,.12)}
.hd-lw-day--holiday .abbr,.hd-lw-day--holiday .num{color:var(--accent)}
.hd-lw-day--holiday .tag{background:var(--accent);color:var(--tab-active-text)}
.hd-lw-day--bridge{border-color:var(--accent-strong);border-style:dashed}
.hd-lw-day--bridge .tag{background:rgba(240,182,96,.16);color:var(--accent)}
.hd-lw-note{display:flex;gap:12px;margin-top:18px;padding:15px 16px;border-radius:12px;background:var(--badge-bg);border:1px solid var(--badge-border)}
.hd-lw-note .ic{flex:0 0 auto;line-height:1.4}
.hd-lw-note p{margin:0;color:var(--muted);line-height:1.55;font-size:.94rem}

/* Traveler notes */
.hd-notes-summary{margin:0 0 14px;color:var(--muted);line-height:1.55}
.hd-notes-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.hd-notes-list li{position:relative;padding-left:30px;color:var(--text);line-height:1.5}
.hd-notes-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accent);font-weight:800}

/* About */
.hd-about-title{margin:0 0 12px;font-size:.82rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.hd-about p{margin:0;color:var(--muted);line-height:1.65}

@media(max-width:900px){
	.hd-main-grid{grid-template-columns:1fr}
	.hd-title{font-size:2.4rem}
}
.holiday-detail-layout{display:flex;flex-direction:column;gap:28px}
.holiday-back-links{display:flex;flex-wrap:wrap;gap:10px}
.holiday-back-link{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);font-size:.88rem;font-weight:600}
.holiday-back-link:hover{border-color:var(--accent);color:var(--accent)}
.holiday-detail-hero{background:linear-gradient(180deg,rgba(240,182,96,.08),transparent 58%),var(--panel);border:1px solid var(--line);border-radius:30px;padding:34px 36px 30px;box-shadow:0 28px 48px rgba(0,0,0,.16)}
.holiday-detail-kicker{display:flex;align-items:center;gap:12px;margin-bottom:18px;color:var(--muted);font-size:.94rem;text-transform:uppercase;letter-spacing:.1em}
.holiday-detail-kicker .emoji{font-size:2rem;line-height:1}
.holiday-detail-hero h1{font-size:3.3rem;line-height:1.02;letter-spacing:-.05em;margin-bottom:14px;color:var(--text)}
.holiday-detail-subtitle{max-width:860px;font-size:1.04rem;color:var(--muted);line-height:1.6}
.holiday-detail-subtitle strong{color:var(--text)}
.holiday-fact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.holiday-fact-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:18px 20px;min-width:0}
.holiday-fact-card .label{display:block;margin-bottom:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.holiday-fact-card strong{display:block;font-size:1.2rem;line-height:1.2;color:var(--text)}
.holiday-fact-card span{display:block;margin-top:8px;color:var(--muted);line-height:1.45}
.holiday-year-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.holiday-year-card{display:block;padding:18px 18px 16px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--text);transition:border-color .15s ease,transform .15s ease}
.holiday-year-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.holiday-year-card.is-active{border-color:rgba(240,182,96,.5);background:rgba(240,182,96,.08)}
.holiday-year-card .year{display:block;font-size:1.3rem;font-weight:700;color:var(--text)}
.holiday-year-card .date{display:block;margin-top:8px;color:var(--muted)}
.holiday-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.95fr);gap:22px;align-items:start}
.holiday-detail-section,.holiday-sidebar-card{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:24px 26px}
.holiday-detail-section h2,.holiday-sidebar-card h2{margin-bottom:14px;font-size:1.1rem;color:var(--accent)}
.holiday-detail-section p,.holiday-detail-section ul,.holiday-sidebar-card p,.holiday-sidebar-card ul{color:var(--text);line-height:1.6}
.holiday-detail-section ul,.holiday-sidebar-card ul{padding-left:18px}
.holiday-name-tags{display:flex;flex-wrap:wrap;gap:10px}
.holiday-name-tag{padding:8px 12px;border-radius:999px;background:var(--badge-bg);border:1px solid var(--badge-border);color:var(--text);font-size:.88rem}
.holiday-source-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.holiday-source-list li{padding:12px 14px;border-radius:16px;background:var(--badge-bg);border:1px solid var(--badge-border)}
.holiday-source-list strong{display:block;color:var(--text)}
.holiday-source-list span{display:block;margin-top:4px;color:var(--muted);font-size:.88rem}

@media(max-width:1100px){
	.country-page main.wrap{padding:40px 24px 72px}
	.country-page .hero h1{font-size:3.1rem}
	.calendar-overview{grid-template-columns:1fr;gap:18px}
	.year-nav-wrap{justify-content:flex-start}
	.holiday-table th,.holiday-table td{padding-left:22px;padding-right:22px}
	.holiday-name-primary{font-size:1.6rem}
	.holiday-page main.wrap{padding:40px 24px 72px}
	.holiday-fact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.holiday-detail-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
	.wrap{padding:0 16px}
	.country-page main.wrap{padding:28px 16px 56px}
	.hero-flag{margin-bottom:20px}
	.country-page .hero h1{font-size:2.3rem}
	.hero-stats{gap:10px}
	.stat-pill{min-width:104px;height:50px;padding:0 16px}
	.theme-switch-label{display:none}
	.year-nav{width:100%;justify-content:space-between}
	.year-nav a,.year-nav span{min-width:0;flex:1;height:48px;padding:0 12px}
	.list-controls{flex-direction:column}
	.list-controls .month-bar{width:100%;justify-content:center}
	.heatmap{--hm-cell:11px;--hm-gap:2px;--hm-month-gap:8px;padding:16px}
	.holiday-table,.holiday-table thead,.holiday-table tbody,.holiday-table tr,.holiday-table th,.holiday-table td{display:block;width:100%}
	.holiday-table thead{display:none}
	.holiday-table{border-radius:18px}
	.holiday-table tr{border-top:1px solid #22242d}
	.holiday-table tr:first-child{border-top:none}
	.holiday-table td{border-top:none;padding:18px 18px 0}
	.holiday-table td:last-child{padding-bottom:18px}
	.holiday-date-cell,.holiday-when-cell{text-align:left;width:auto}
	.holiday-day{font-size:2rem}
	.day-badge{max-width:none;font-size:.98rem}
	.holiday-name-cell{padding-top:12px}
	.holiday-name-primary{font-size:1.35rem}
	.holiday-when-primary{font-size:1rem}
	.weekday-widget{margin-top:10px}
	.faq,.related{margin-top:32px}
	.holiday-page main.wrap{padding:28px 16px 56px}
	.holiday-detail-hero{padding:24px 22px}
	.holiday-detail-hero h1{font-size:2.4rem}
	.holiday-fact-grid{grid-template-columns:1fr}
	.holiday-year-list{grid-template-columns:1fr}
	.holiday-detail-section,.holiday-sidebar-card{padding:20px}
}
