/*
Theme Name: JW Calendar
Theme URI: https://jwcalendar.com/
Description: Print-first calendar child theme for GeneratePress.
Author: JW Calendar
Template: generatepress
Text Domain: jwcalendar
Version: 1.1.1
Requires at least: 6.6
Requires PHP: 8.1
License: GPL-2.0-or-later
*/

:root {
  --jw-bg: #f3f4f6;
  --jw-paper: #ffffff;
  --jw-ink: #111827;
  --jw-muted: #3f4b5b;
  --jw-line: #d1d5db;
  --jw-accent: #0b5f58;
  --jw-accent-strong: #094e48;
  --jw-accent-soft: #d1faf3;
  --jw-on-accent: #ffffff;
  --jw-focus: #0b5f58;
  --jw-radius: 8px;
  --jw-space: 8px;
  --jw-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }

body {
  background: var(--jw-bg);
  color: var(--jw-ink);
  font-family: var(--jw-font);
}

a { color: var(--jw-accent-strong); }
a:hover { color: var(--jw-accent); }
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--jw-focus);
  outline-offset: 2px;
}

.grid-container { max-width: 1120px; }

.site-header {
  background: var(--jw-paper);
  border-bottom: 1px solid var(--jw-line);
}

.site-header .inside-header {
  min-height: 76px;
  padding: 14px 24px;
}

.main-title a,
.main-title a:hover {
  color: var(--jw-ink);
  font-weight: 750;
  letter-spacing: -.025em;
}

.main-navigation,
.main-navigation ul ul,
.has-inline-mobile-toggle #site-navigation.toggled {
  background: var(--jw-paper);
}

.main-navigation .main-nav > ul > li > a {
  color: var(--jw-ink);
  font-size: 16px;
  font-weight: 500;
}

.main-navigation .main-nav > ul > li:not(.jwc-nav-cta) > a:hover,
.main-navigation .main-nav > ul > li:not(.jwc-nav-cta) > a:focus {
  color: var(--jw-accent);
}

.main-navigation .main-nav > ul > li[class*="current-menu-"] > a {
  color: var(--jw-accent-strong);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}

.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.main-navigation .menu-toggle {
  background: var(--jw-paper);
  color: var(--jw-ink);
}

.jwc-nav-cta a,
a.jwc-button,
button.jwc-button {
  align-items: center;
  background: var(--jw-accent);
  border: 0;
  border-radius: var(--jw-radius);
  color: var(--jw-on-accent);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 750;
  gap: var(--jw-space);
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
  text-decoration: none;
}

.main-navigation .main-nav > ul > li.jwc-nav-cta > a {
  background: var(--jw-accent);
  color: var(--jw-on-accent);
  margin-block: 8px;
  min-height: 44px;
  padding-inline: 16px;
}

.jwc-nav-cta a:hover,
a.jwc-button:hover,
button.jwc-button:hover,
.main-navigation .main-nav > ul > li.jwc-nav-cta > a:hover {
  background: var(--jw-accent-strong);
  color: var(--jw-on-accent);
}

.site-footer,
.site-info {
  background: var(--jw-paper);
  color: var(--jw-ink);
}

.site-footer { border-top: 1px solid var(--jw-line); }

.jwc-footer-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(4, 1fr);
  padding-block: 32px;
}
.jwc-footer-grid h2 { font-size: 1rem; margin: 0 0 8px; }
.jwc-footer-grid ul { list-style: none; margin: 0; padding: 0; }
.jwc-footer-grid li + li { margin-top: 6px; }

.site-footer a { color: var(--jw-accent-strong); }
.site-footer a:hover { color: var(--jw-accent); }
.copyright-bar { color: var(--jw-muted); }

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

@media (max-width: 900px) {
  .jwc-footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .jwc-nav-cta { display: none; }
  .site-header .inside-header { min-height: 68px; }
  .main-navigation .main-nav > ul > li > a { color: var(--jw-ink); }
}

@media (max-width: 480px) {
  .jwc-footer-grid { grid-template-columns: 1fr; }
}
