/* Calendar-only header. Theme footer styles remain loaded separately. */
#header.kpg-calendar-header { position: sticky !important; top: 0; z-index: 1000; width: 100%; height: auto !important; margin: 0; padding: 0; background: #111 !important; color: #fff; border: 0; }
.kpg-calendar-header *, .kpg-calendar-header *::before, .kpg-calendar-header *::after { box-sizing: border-box; }
.kpg-calendar-header .kpg-header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 24px; }
.kpg-calendar-header .kpg-header-logo { display: block; flex: 0 1 360px; max-width: 100%; }
.kpg-calendar-header .kpg-header-logo img { display: block; width: 100%; height: auto; }
#header.kpg-calendar-header .navigation { position: static !important; float: none !important; display: block !important; visibility: visible; width: auto; height: auto; min-height: 0; padding: 0; margin: 0; opacity: 1; transform: none; background: transparent; overflow: visible !important; }
.kpg-calendar-header .kpg-header-menu { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; list-style: none; padding: 0; margin: 0; }
.kpg-calendar-header .kpg-header-menu > li { position: relative; float: none; margin: 0; padding: 0; }
#header.kpg-calendar-header .kpg-header-menu a { display: inline-block; padding: 10px 0; color: #fff; font: 600 16px/1.5 "Open Sans", Arial, sans-serif; text-decoration: none; text-transform: none; }
#header.kpg-calendar-header .kpg-header-menu a:hover { color: #ff6675; }
.kpg-calendar-header .kpg-submenu-toggle { padding: 10px; background: transparent; color: #fff; border: 0; }
.kpg-calendar-header .caret { display: inline-block; width: 0; height: 0; border-top: 5px solid; border-right: 4px solid transparent; border-left: 4px solid transparent; }
#header.kpg-calendar-header .dropdown-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 200px; max-width: min(320px,90vw); padding: 8px 14px; margin: 0; list-style: none; background: #111; border: 1px solid #444; }
#header.kpg-calendar-header .dropdown-menu .dropdown-menu { top: 0; left: 100%; }
#header.kpg-calendar-header .dropdown-hover.kpg-submenu-open > .dropdown-menu { display: block; }
#header.kpg-calendar-header .navbar-toggle { display: none; float: none; width: 44px; height: 44px; margin: 0; padding: 0; color: #fff; background: transparent; border: 1px solid #666; border-radius: 6px; font-size: 26px; }
.kpg-calendar-header :focus-visible { outline: 3px solid #ed1b2f; outline-offset: 3px; }
@media (min-width: 992px) {
    #header.kpg-calendar-header .dropdown-hover:hover > .dropdown-menu,
    #header.kpg-calendar-header .dropdown-hover:focus-within > .dropdown-menu { display: block; }
}
@media (max-width: 991px) {
    .kpg-calendar-header .kpg-header-inner { gap: 0 12px; padding: 8px 16px; }
    .kpg-calendar-header .kpg-header-logo { flex-basis: 300px; max-width: calc(100% - 56px); }
    #header.kpg-calendar-header .navbar-toggle { display: block; }
    #header.kpg-calendar-header .navigation { display: none !important; visibility: hidden; flex-basis: 100%; width: 100%; max-height: 65vh; overflow-y: auto !important; }
    #header.kpg-calendar-header .navigation.in { display: block !important; visibility: visible; }
    #header.kpg-calendar-header .navigation::before { display: none; }
    .kpg-calendar-header .kpg-header-menu { display: block; padding: 8px 0; }
    #header.kpg-calendar-header .dropdown-menu, #header.kpg-calendar-header .dropdown-menu .dropdown-menu { position: static; width: 100%; max-width: 100%; float: none; }
    .kpg-calendar-header .kpg-submenu-toggle { min-width: 44px; min-height: 44px; }
}
body.kpg-calendar-page.kpg-menu-open { overflow: hidden; }
body.kpg-calendar-page.admin-bar #header.kpg-calendar-header { top: 32px; }
@media (max-width: 782px) { body.kpg-calendar-page.admin-bar #header.kpg-calendar-header { top: 46px; } }

/* 0.2.2 reference header: logo / editable menu / independent action. */
.kpg-calendar-header .kpg-header-inner { display: grid; grid-template-columns: 230px minmax(0,1fr) auto; gap: 24px; padding: 0 34px; min-height: 80px; }
.kpg-calendar-header .kpg-header-logo { grid-column: 1; width: 230px; max-width: 100%; }
.kpg-calendar-header .kpg-header-logo img { height: 78px; object-fit: contain; }
#header.kpg-calendar-header .navigation { grid-column: 2; justify-self: center; }
.kpg-calendar-header .kpg-header-menu { justify-content: center; gap: 8px 24px; }
#header.kpg-calendar-header .kpg-header-menu a { font-size: 14px; }
.kpg-calendar-header .kpg-header-menu > .current-menu-item > a { border-bottom: 3px solid #f5002b; }
.kpg-calendar-header .kpg-add-button { grid-column: 3; min-width: 220px; }
@media (max-width: 1199px) { .kpg-calendar-header .kpg-header-inner { grid-template-columns: 195px minmax(0,1fr) auto; gap: 14px; padding: 0 24px; } .kpg-calendar-header .kpg-header-logo { width: 195px; } .kpg-calendar-header .kpg-header-menu { gap: 6px 14px; } .kpg-calendar-header .kpg-add-button { min-width: 180px; font-size: 13px; } }
@media (max-width: 991px) { .kpg-calendar-header .kpg-header-inner { grid-template-columns: minmax(0,1fr) auto; padding: 0 16px 10px; gap: 0 12px; } .kpg-calendar-header .kpg-header-logo { grid-column: 1; grid-row: 1; width: 220px; max-width: 100%; } .kpg-calendar-header .kpg-header-logo img { height: 68px; } #header.kpg-calendar-header .navbar-toggle { grid-column: 2; grid-row: 1; } .kpg-calendar-header .kpg-add-button { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; min-width: 0; text-align: center; } .kpg-calendar-header .kpg-add-button br { display: none; } #header.kpg-calendar-header .navigation { grid-column: 1 / -1; grid-row: 3; justify-self: stretch; } }

/* 0.2.3: larger desktop logo and a concise, legible action label. */
@media (min-width: 1200px) { .kpg-calendar-header .kpg-header-inner { grid-template-columns: 340px minmax(0,1fr) auto; } .kpg-calendar-header .kpg-header-logo { width: 340px; } .kpg-calendar-header .kpg-header-logo img { height: 112px; } }
@media (min-width: 992px) and (max-width: 1199px) { .kpg-calendar-header .kpg-header-inner { grid-template-columns: 285px minmax(0,1fr) auto; } .kpg-calendar-header .kpg-header-logo { width: 285px; } .kpg-calendar-header .kpg-header-logo img { height: 96px; } }
#header.kpg-calendar-header .kpg-add-button { min-width: 0; font-size: 16px; font-weight: 700; padding: 13px 20px; white-space: normal; }
