/* CALENDAR GRID */
.cal-grid{width:100%;table-layout:fixed;font-size:.9375rem;border-collapse:separate;border-spacing:2px}
.cal-grid th{padding:6px 4px;font-family:var(--font-heading);font-size:.6875rem;font-weight:600;text-align:center;color:var(--color-muted);text-transform:uppercase;letter-spacing:.06em}
.cal-grid th.col-weekend{color:var(--color-holiday)}
.cal-grid td{padding:0;text-align:center;vertical-align:top}
.cal-grid td.cal-empty{background:transparent}

.cal-day{position:relative;cursor:default;border-radius:8px;min-height:40px;transition:transform .12s,box-shadow .12s}
.cal-day:hover{transform:scale(1.04);z-index:2;box-shadow:var(--shadow-sm)}
.cal-num{display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:1rem;font-weight:600;height:36px;font-variant-numeric:tabular-nums}

/* Workday */
.cal-workday{background:var(--color-surface);border:1px solid var(--color-border)}
.cal-workday .cal-num{color:var(--color-text)}

/* Weekend */
.cal-weekend{background:var(--color-weekend-bg);border:1px solid var(--color-weekend-border)}
.cal-weekend .cal-num{color:var(--color-holiday);font-weight:700}

/* Holiday */
.cal-holiday{background:var(--color-holiday-bg);border:1px solid var(--color-holiday-border)}
.cal-holiday .cal-num{color:var(--color-holiday);font-weight:700}

/* Today */
.cal-today{outline:2px solid var(--color-primary);outline-offset:1px;background:var(--color-primary-light)!important;border-color:var(--color-primary)!important}
.cal-today .cal-num{color:var(--color-primary);font-weight:800}

/* Holiday name caption */
.cal-hname{display:block;font-family:var(--font-body);font-size:9px;line-height:1.2;color:var(--color-holiday);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 3px 3px;font-weight:500}

/* BIG CALENDAR (single month page) */
.cal-big{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}
.cal-big .cal-grid{font-size:1rem}
.cal-big .cal-num{font-size:1.25rem;height:48px}
.cal-big .cal-day{min-height:52px}
.cal-big .cal-grid th{font-size:.8125rem;padding:10px 4px}
.cal-big .cal-hname{font-size:10px}

/* CALCULATOR */
.calc-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px;max-width:560px}
.calc-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.calc-group label{display:block;font-family:var(--font-heading);font-size:.8125rem;font-weight:600;margin-bottom:8px;color:var(--color-text);text-transform:uppercase;letter-spacing:.04em}
.calc-group input{width:100%;height:48px;padding:0 14px;border:1.5px solid var(--color-border);border-radius:var(--radius);font:inherit;font-size:1rem;color:var(--color-text);background:var(--color-surface);transition:border-color .15s,box-shadow .15s}
.calc-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}

.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--color-primary);color:#fff;font-family:var(--font-heading);font-weight:600;height:48px;padding:0 28px;border-radius:var(--radius);font-size:.9375rem;border:none;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--color-primary-h);box-shadow:var(--shadow-md)}
.btn-primary:active{transform:translateY(1px)}

.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--color-surface);color:var(--color-text);font-family:var(--font-heading);font-weight:600;height:48px;padding:0 24px;border-radius:var(--radius);font-size:.9375rem;border:1.5px solid var(--color-border);cursor:pointer;transition:all .15s}
.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}

.calc-result{margin-top:24px;padding:24px;background:linear-gradient(135deg,var(--color-primary-light),#EEF2FF);border-radius:var(--radius);display:none}
.calc-result.visible{display:block}
.calc-result-num{font-family:var(--font-heading);font-size:3rem;font-weight:800;color:var(--color-primary);line-height:1;letter-spacing:-0.03em;font-variant-numeric:tabular-nums}
.calc-result-label{font-size:.9375rem;color:var(--color-text-2);margin-top:6px;font-weight:500}
.calc-result-detail{font-size:.875rem;margin-top:14px;color:var(--color-text-2);line-height:1.55}

/* BLOG */
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin:32px 0}
.blog-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:10px;transition:transform .2s,box-shadow .2s,border-color .2s}
.blog-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}
.blog-card-meta{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--color-muted);font-weight:500}
.blog-card-cat{display:inline-flex;align-items:center;height:22px;padding:0 10px;background:var(--color-primary-light);color:var(--color-primary);border-radius:99px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.blog-card h2{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;line-height:1.3;letter-spacing:-0.01em}
.blog-card h2 a{color:var(--color-text);transition:color .15s}
.blog-card h2 a:hover{color:var(--color-primary);text-decoration:none}
.blog-card p{font-size:.9375rem;color:var(--color-text-2);flex:1;line-height:1.55}
.blog-card .read-more{font-size:.875rem;color:var(--color-primary);font-weight:600;margin-top:8px;display:inline-flex;align-items:center;gap:4px}
.blog-card .read-more::after{content:"→";transition:transform .15s}
.blog-card:hover .read-more::after{transform:translateX(3px)}

/* ARTICLE */
.article-body{max-width:720px;font-size:1.0625rem;line-height:1.7;color:var(--color-text-2)}
.article-body h2{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;margin:40px 0 14px;color:var(--color-text);letter-spacing:-0.02em}
.article-body h3{font-family:var(--font-heading);font-size:1.1875rem;font-weight:600;margin:28px 0 10px;color:var(--color-text);letter-spacing:-0.01em}
.article-body p{margin-bottom:16px}
.article-body p strong{color:var(--color-text);font-weight:600}
.article-body ul,.article-body ol{margin-bottom:16px;padding-left:24px}
.article-body li{margin-bottom:8px;line-height:1.6}
.article-body li::marker{color:var(--color-primary)}
.article-body a{color:var(--color-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.article-body a:hover{text-decoration-thickness:2px}
.article-body blockquote{margin:20px 0;padding:16px 20px;background:var(--color-surface);border-left:4px solid var(--color-primary);border-radius:8px;color:var(--color-text);font-style:italic}
.article-body figure{margin:24px 0}
.article-body figure img{border-radius:var(--radius);width:100%;height:auto}
.article-body figcaption{font-size:.875rem;color:var(--color-muted);margin-top:8px;text-align:center}
.article-body table{margin:24px 0;width:100%;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-sm)}
.article-body th,.article-body td{padding:12px 16px;border-bottom:1px solid var(--color-border);font-size:.9375rem;text-align:left}
.article-body th{background:var(--color-surface-2);font-family:var(--font-heading);font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text)}
.article-body tbody tr:last-child td{border-bottom:none}

.article-meta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding:16px 0;margin:16px 0 24px;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);font-size:.875rem;color:var(--color-muted)}
.article-meta strong{color:var(--color-text);font-weight:600}

/* CTA CARD */
.cta-card{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-h));color:#fff;border-radius:var(--radius-lg);padding:32px;margin:32px 0;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.cta-card h3{font-family:var(--font-heading);font-size:1.375rem;font-weight:700;color:#fff;letter-spacing:-0.02em}
.cta-card p{color:rgba(255,255,255,.92);max-width:540px;line-height:1.55}
.cta-card .btn-primary{background:#fff;color:var(--color-primary)}
.cta-card .btn-primary:hover{background:#F1F5F9}

/* COOKIE BANNER */
#cookie-banner{position:fixed;bottom:16px;left:16px;right:16px;max-width:680px;margin:0 auto;background:var(--color-text);color:#fff;padding:16px 20px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;z-index:var(--z-modal);font-size:.875rem;box-shadow:var(--shadow-lg)}
#cookie-banner a{color:#93C5FD;text-decoration:underline;text-underline-offset:2px}
#cookie-accept{display:inline-flex;align-items:center;height:36px;background:var(--color-primary);color:#fff;padding:0 18px;border-radius:99px;font-weight:600;font-size:.875rem;flex-shrink:0;border:none;cursor:pointer;transition:background .15s}
#cookie-accept:hover{background:var(--color-primary-h)}

/* HOLIDAY LIST */
.holidays-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin:24px 0}
.holiday-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:14px 16px;display:flex;gap:14px;align-items:center}
.holiday-date{flex-shrink:0;width:48px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-holiday-bg);border:1px solid var(--color-holiday-border);border-radius:8px;color:var(--color-holiday);font-family:var(--font-heading);font-weight:700}
.holiday-date .d{font-size:1.125rem;line-height:1}
.holiday-date .m{font-size:.6875rem;text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.holiday-name{font-family:var(--font-heading);font-weight:600;font-size:.9375rem;color:var(--color-text);line-height:1.3}

/* FAQ */
.faq{margin:32px 0;display:flex;flex-direction:column;gap:8px}
.faq details{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;transition:border-color .15s}
.faq details[open]{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}
.faq summary{padding:16px 20px;font-family:var(--font-heading);font-weight:600;font-size:1rem;color:var(--color-text);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.5rem;color:var(--color-muted);font-weight:300;transition:transform .2s;flex-shrink:0}
.faq details[open] summary::after{transform:rotate(45deg);color:var(--color-primary)}
.faq summary:hover{background:var(--color-surface-2)}
.faq-content{padding:0 20px 16px;color:var(--color-text-2);line-height:1.6;font-size:.9375rem}

/* MOBILE */
@media(max-width:600px){
  .calc-row{grid-template-columns:1fr}
  .cal-big{padding:14px}
  .cal-big .cal-num{font-size:1.0625rem;height:40px}
  .cal-big .cal-day{min-height:44px}
  .article-body{font-size:1rem}
  .article-body h2{font-size:1.25rem;margin:28px 0 12px}
  .article-body h3{font-size:1.0625rem}
  #cookie-banner{flex-direction:column;align-items:stretch;text-align:center}
  #cookie-accept{width:100%}
}
