/* Thematically Incorrect 1.0.10 canonical masthead, drawer, and header utilities. */
.site-header.block-site-header,
.site-header.wp-block-group {
  position: relative;
  z-index: 20;
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: clamp(1rem, 2vw, 1.5rem) 0 !important;
  background: var(--header-bg, var(--wp--preset--color--base));
  border-bottom: 1px solid var(--header-border, var(--wp--preset--color--border));
}
.site-header .block-header-row,
.site-header .header-row.block-header-row {
  width: min(100% - 2rem, var(--wp--style--global--wide-size, 1200px)) !important;
  max-width: none !important;
  min-height: 78px;
  margin-inline: auto !important;
}
.site-header.ti-header-left .block-header-row {
  display: grid !important;
  grid-template-columns: minmax(0, auto) 1fr auto !important;
  align-items: center !important;
}
.site-header.ti-header-center .block-header-row {
  display: grid !important;
  grid-template-columns: 1fr minmax(0, auto) 1fr !important;
  align-items: center !important;
}
.site-header .block-branding,
.site-header .branding.block-branding {
  grid-column: 1;
  display: flex !important;
  align-items: center !important;
  gap: clamp(0.8rem, 2vw, 1.3rem) !important;
  min-width: 0;
}
.site-header.ti-header-center .block-branding {
  grid-column: 2;
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-items: center !important;
  text-align: center !important;
  gap: 0 !important;
}
.site-header .block-branding .wp-block-site-logo img,
.site-header .block-branding .custom-logo {
  width: auto;
  max-width: 92px;
  max-height: 82px;
}
.site-header.ti-header-center .block-branding .wp-block-site-logo,
.site-header.ti-header-center .block-branding .custom-logo-link {
  margin-bottom: -0.1rem !important;
}
.site-header.ti-header-center .block-branding .wp-block-site-logo img,
.site-header.ti-header-center .block-branding .custom-logo {
  max-width: 88px;
  max-height: 74px;
}
.site-header .branding-text-wrap { min-width: 0; }
.site-header .wp-block-site-title,
.site-header .site-title,
.site-header .wp-block-site-title a {
  margin: 0 !important;
  color: var(--wp--preset--color--primary) !important;
  font-family: var(--display-font, inherit) !important;
  font-size: clamp(1.7rem, 3vw, 3rem);
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1;
  text-decoration: none !important;
  text-transform: uppercase;
  text-shadow: var(--title-glow-primary, none), var(--title-glow-secondary, none);
  white-space: nowrap;
}
.site-header.ti-header-center .wp-block-site-title,
.site-header.ti-header-center .site-title,
.site-header.ti-header-center .wp-block-site-title a {
  font-size: clamp(1.65rem, 3vw, 2.85rem);
  text-align: center;
}
.site-header .wp-block-site-tagline,
.site-header .site-description {
  margin: 0.35rem 0 0 !important;
  color: var(--wp--preset--color--secondary) !important;
  font-family: var(--display-font, inherit) !important;
  font-size: clamp(0.72rem, 1.2vw, 0.95rem);
  font-weight: 700;
  letter-spacing: 0.25em;
  line-height: 1.2;
  text-transform: uppercase;
}
.site-header.ti-header-center .wp-block-site-tagline,
.site-header.ti-header-center .site-description { text-align: center; }
.site-header .block-header-actions,
.site-header .header-actions.block-header-actions {
  grid-column: 3;
  justify-self: end;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0 !important;
}
.site-header .ti-menu-toggle {
  position: relative !important;
  z-index: 999 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 52px;
  height: 52px;
  min-width: 52px;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid var(--menu-toggle-border, var(--wp--preset--color--border));
  border-radius: 14px;
  background: var(--menu-toggle-bg, var(--wp--preset--color--neutral));
  color: var(--wp--preset--color--secondary);
  box-shadow: var(--menu-toggle-shadow, none);
  cursor: pointer;
  appearance: none;
}
.site-header .ti-menu-toggle:hover,
.site-header .ti-menu-toggle:focus-visible {
  color: var(--wp--preset--color--primary);
  border-color: var(--wp--preset--color--secondary);
  outline: none;
}
.site-header .ti-menu-toggle__line {
  position: absolute !important;
  left: 50%;
  top: 50%;
  display: block !important;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transform-origin: center;
  transition: transform 180ms ease, opacity 180ms ease;
}
.site-header .ti-menu-toggle__line:nth-of-type(2) { transform: translate(-50%, calc(-50% - 7px)); }
.site-header .ti-menu-toggle__line:nth-of-type(3) { transform: translate(-50%, -50%); }
.site-header .ti-menu-toggle__line:nth-of-type(4) { transform: translate(-50%, calc(-50% + 7px)); }
.site-header .ti-menu-toggle.is-open .ti-menu-toggle__line:nth-of-type(2) { transform: translate(-50%, -50%) rotate(45deg); }
.site-header .ti-menu-toggle.is-open .ti-menu-toggle__line:nth-of-type(3) { opacity: 0; }
.site-header .ti-menu-toggle.is-open .ti-menu-toggle__line:nth-of-type(4) { transform: translate(-50%, -50%) rotate(-45deg); }
body.ti-menu-open { overflow: hidden; }
body.ti-menu-open::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 998;
  background: color-mix(in srgb, var(--wp--preset--color--base) 58%, transparent);
  backdrop-filter: blur(2px);
}
body.ti-menu-open .site-header .ti-menu-toggle {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: scale(0.92) !important;
}
.ti-menu-panel-wrap[hidden] {
  display: block !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateX(105%) !important;
}
.ti-menu-panel-wrap,
.ti-menu-panel-wrap.is-open {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  z-index: 1001 !important;
  display: block !important;
  width: min(90vw, 430px) !important;
  height: 100vh !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--wp--preset--color--base) !important;
  border-left: 1px solid var(--wp--preset--color--border) !important;
  box-shadow: -18px 0 42px color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent) !important;
  color: var(--wp--preset--color--contrast) !important;
  overflow-y: auto !important;
  transform: translateX(105%) !important;
  transition: transform 220ms ease, visibility 220ms ease !important;
}
.ti-menu-panel-wrap.is-open {
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateX(0) !important;
}
.ti-menu-panel__inner { min-height: 100%; padding: 0 1.25rem 2rem !important; }
.ti-menu-panel__topbar {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 -1.25rem 1rem !important;
  padding: 1rem 1.25rem 0.85rem;
  border-bottom: 1px solid var(--wp--preset--color--border);
  background: color-mix(in srgb, var(--wp--preset--color--base) 96%, transparent);
  backdrop-filter: blur(8px);
}
.ti-menu-panel__label {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: var(--wp--preset--color--muted);
  font-family: var(--display-font, inherit);
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.ti-menu-close {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  min-width: 42px;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 12px;
  background: var(--wp--preset--color--neutral);
  color: var(--wp--preset--color--contrast);
  cursor: pointer;
}
.ti-menu-close__line {
  position: absolute;
  width: 21px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}
.ti-menu-close__line:first-child { transform: rotate(45deg); }
.ti-menu-close__line:last-child { transform: rotate(-45deg); }
.ti-drawer-search {
  display: grid !important;
  grid-template-columns: 1fr auto;
  gap: 0.65rem;
  margin: 0 0 1.15rem !important;
  padding: 0 0 1rem !important;
  border-bottom: 1px solid var(--wp--preset--color--border);
}
.ti-drawer-search__field {
  width: 100%;
  min-height: 44px;
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 4px;
  background: var(--wp--preset--color--neutral);
  color: var(--wp--preset--color--contrast);
  font: inherit;
}
.ti-drawer-search__submit {
  min-height: 44px;
  padding: 0.7rem 0.95rem;
  border: 1px solid var(--wp--preset--color--contrast);
  border-radius: 4px;
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
  font-family: var(--display-font, inherit);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
.ti-drawer-search__submit:hover,
.ti-drawer-search__submit:focus {
  background: var(--wp--preset--color--accent);
  border-color: var(--wp--preset--color--accent);
}
.ti-primary-menu,
.ti-primary-menu .menu,
.ti-primary-menu__list { width: 100%; }
.ti-primary-menu ul,
.ti-primary-menu__list {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.ti-primary-menu li {
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.ti-primary-menu a {
  display: block !important;
  width: 100% !important;
  padding: 0.9rem 0 !important;
  border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--border) 70%, transparent) !important;
  color: var(--wp--preset--color--contrast) !important;
  font-family: var(--display-font, inherit) !important;
  font-size: 0.92rem !important;
  letter-spacing: 0.11em !important;
  line-height: 1.25 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}
.ti-primary-menu a:hover,
.ti-primary-menu a:focus,
.ti-primary-menu .current-menu-item > a,
.ti-primary-menu .current-menu-ancestor > a { color: var(--wp--preset--color--secondary) !important; }
.ti-primary-menu .sub-menu,
.ti-primary-menu .children {
  position: static !important;
  display: flex !important;
  min-width: 0 !important;
  width: 100% !important;
  margin: 0 0 0 0.35rem !important;
  padding: 0.1rem 0 0.55rem 1rem !important;
  border: 0 !important;
  border-left: 2px solid var(--wp--preset--color--border) !important;
  background: transparent !important;
  box-shadow: none !important;
}
.ti-primary-menu .sub-menu a,
.ti-primary-menu .children a {
  padding: 0.58rem 0 !important;
  color: var(--wp--preset--color--muted) !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.08em !important;
  text-transform: none !important;
}
.ti-primary-menu--empty p { margin: 0; padding: 0.9rem 0; color: var(--wp--preset--color--muted); }
@media (max-width: 700px) {
  .site-header .block-header-row,
  .site-header.ti-header-left .block-header-row,
  .site-header.ti-header-center .block-header-row { grid-template-columns: minmax(0, 1fr) auto !important; }
  .site-header.ti-header-center .block-branding,
  .site-header .block-branding { grid-column: 1 !important; justify-items: start !important; text-align: left !important; }
  .site-header .block-header-actions { grid-column: 2 !important; }
  .site-header .block-branding .wp-block-site-logo img,
  .site-header .block-branding .custom-logo { max-width: 64px; max-height: 56px; }
  .site-header .wp-block-site-title,
  .site-header .site-title,
  .site-header .wp-block-site-title a { font-size: clamp(1.25rem, 7vw, 1.95rem); white-space: normal; }
  .site-header .ti-menu-toggle { width: 46px; height: 46px; min-width: 46px; }
}
@media (max-width: 480px) { .ti-drawer-search { grid-template-columns: 1fr; } }


/* 1.0.11 drawer usability patch. */
body.ti-menu-open::before { display: none !important; content: none !important; }
.ti-menu-panel-wrap,
.ti-menu-panel-wrap.is-open {
  z-index: 2147483000 !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Thematically Incorrect 1.0.17: keep the right drawer below the WordPress admin bar for logged-in users. */
body.admin-bar .ti-menu-panel-wrap,
body.admin-bar .ti-menu-panel-wrap.is-open {
  top: var(--wp-admin--admin-bar--height, 32px) !important;
  height: calc(100vh - var(--wp-admin--admin-bar--height, 32px)) !important;
}

body.admin-bar .ti-menu-panel__topbar {
  top: 0 !important;
}

/* 1.0.19: Left masthead should use the full header width, not the centered content measure. */
.site-header.ti-header-left .block-header-row,
.site-header.ti-header-left .header-row.block-header-row {
  width: calc(100% - 2rem) !important;
  max-width: none !important;
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}
