/*
Theme Name: Thematically Incorrect
Theme URI: https://sexualinfinity.com
Author: Infinity Rush
Description: A block-based editorial WordPress theme for long-form writing, research, magazine layouts, and locally managed design assets.
Version: 1.0.20
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: thematically-incorrect
*/

@import url("assets/css/variables.css");
@import url("assets/css/hero.css");

* { box-sizing: border-box; }
html { 
  scroll-behavior: smooth;
  background-color: var(--wp--preset--color--base) !important;
}
body,
body.custom-background {
  margin: 0;
  font-family: var(--site-font);
  color: var(--wp--preset--color--contrast);
  background-color: var(--wp--preset--color--base) !important;
  background-image:
    radial-gradient(circle at top left, var(--bg-radial-primary), transparent 28%),
    radial-gradient(circle at top right, var(--bg-radial-secondary), transparent 24%),
    linear-gradient(180deg, var(--wp--preset--color--base) 0%, var(--bg-gradient-mid) 44%, var(--wp--preset--color--base) 100%) !important;
  line-height: 1.65;
}

a {
  color: var(--wp--preset--color--secondary);
  text-decoration: none;
  transition: color .2s ease, text-shadow .2s ease, opacity .2s ease;
}

a:hover,
a:focus {
  color: var(--wp--preset--color--primary);
  text-shadow: var(--link-hover-glow);
}

img { max-width: 100%; height: auto; }

.site-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: var(--wp--preset--color--base);
  background-image:
    radial-gradient(circle at top left, var(--bg-radial-primary), transparent 28%),
    radial-gradient(circle at top right, var(--bg-radial-secondary), transparent 24%),
    linear-gradient(180deg, var(--wp--preset--color--base) 0%, var(--bg-gradient-mid) 44%, var(--wp--preset--color--base) 100%);
}

.container {
  width: min(100% - 2rem, var(--content-width));
  margin: 0 auto;
}



.branding .custom-logo-link {
  display: inline-flex;
  align-items: center;
}

.custom-logo {
  max-height: 72px;
  width: auto;
}

.menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid var(--menu-toggle-border);
  border-radius: 14px;
  background: var(--menu-toggle-bg);
  box-shadow: var(--menu-toggle-shadow);
}

.menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: var(--wp--preset--color--secondary);
  transition: transform .2s ease, opacity .2s ease;
}

.menu-toggle.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.menu-toggle.is-open span:nth-child(2) {
  opacity: 0;
}

.menu-toggle.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.main-navigation .sub-menu,
.main-navigation .children {
  display: none;
}

.main-navigation li:hover > .sub-menu,
.main-navigation li:focus-within > .sub-menu,
.main-navigation li:hover > .children,
.main-navigation li:focus-within > .children {
  display: flex;
  flex-direction: column;
}

@media (max-width: 820px) {
  .site-header {
    backdrop-filter: blur(12px);
  }

  .header-row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0;
  }

  .branding {
    min-width: 0;
    flex: 1 1 auto;
  }

  .branding-combo,
  .branding-text-link,
  .branding .custom-logo-link {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
  }

  .branding-combo {
    min-height: 42px;
  }

  .branding-text-link {
    min-height: 42px;
    padding-left: 0.75rem;
  }

  .custom-logo {
    max-height: 42px;
    width: auto;
  }

  .site-title {
    font-size: 1.05rem;
    letter-spacing: 0.06em;
  }

  .site-description {
    display: none;
  }

  .menu-toggle {
    display: inline-flex;
    flex: 0 0 auto;
  }

  .main-navigation {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 998;
    display: none;
    padding: 5.25rem 1rem 1.25rem;
    overflow-y: auto;
    background:
      linear-gradient(180deg, var(--mobile-header-bg-top), var(--mobile-header-bg-bottom)),
      radial-gradient(circle at top right, var(--bg-radial-secondary), transparent 24%),
      radial-gradient(circle at top left, var(--mobile-header-accent), transparent 24%);
    border-bottom: 1px solid var(--header-border);
    box-shadow: var(--mobile-header-shadow);
  }

  .main-navigation.is-open {
    display: block;
  }

  .site-header {
    z-index: 999;
  }

  body.mobile-menu-open {
    overflow: hidden;
  }

  .main-navigation,
  .main-navigation > div,
  .main-navigation > div > ul,
  .main-navigation > ul {
    width: 100%;
  }

  .main-navigation > div > ul,
  .main-navigation > ul,
  .main-navigation ul {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 0.65rem;
  }

  .main-navigation li {
    width: 100%;
  }

  .main-navigation a {
    width: calc(100% - 3rem);
    padding: 0.9rem 0.95rem;
    background: var(--mobile-nav-link-bg);
  }

  .submenu-toggle {
    display: inline-flex;
    flex: 0 0 2.5rem;
  }

  .main-navigation .sub-menu,
  .main-navigation .children {
    position: static;
    min-width: 0;
    margin-top: 0.35rem;
    padding: 0.55rem;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    box-shadow: none;
    background: var(--mobile-submenu-bg);
    border-radius: 14px;
  }

  .main-navigation li:hover > .sub-menu,
  .main-navigation li:focus-within > .sub-menu,
  .main-navigation li:hover > .children,
  .main-navigation li:focus-within > .children {
    display: none;
  }

  .main-navigation .submenu-open > .sub-menu,
  .main-navigation .submenu-open > .children {
    display: flex;
    flex-direction: column;
  }
}


.site-title,
.main-navigation a,
.button,
.wp-block-button__link,
button,
input[type="submit"],
input[type="button"],
.widget-title,
.comments-title {
  font-family: var(--display-font);
}



/* v1.4 mobile submenu fix */
@media (max-width: 820px) {
  .main-navigation .menu-item-has-children,
  .main-navigation .page_item_has_children {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.5rem;
    align-items: center;
    gap: 0.5rem;
  }

  .main-navigation .menu-item-has-children > a,
  .main-navigation .page_item_has_children > a {
    width: 100%;
    min-width: 0;
    flex: initial;
  }

  .main-navigation .menu-item-has-children > .submenu-toggle,
  .main-navigation .page_item_has_children > .submenu-toggle {
    justify-self: end;
    margin-left: 0;
  }

  .main-navigation .menu-item-has-children > .sub-menu,
  .main-navigation .menu-item-has-children > .children,
  .main-navigation .page_item_has_children > .sub-menu,
  .main-navigation .page_item_has_children > .children {
    grid-column: 1 / -1;
    width: 100%;
    flex-basis: 100%;
  }
}


/* v1.4.2 mobile full-screen menu layering fix */
@media (max-width: 820px) {
  body.mobile-menu-open {
    overflow: hidden;
    height: 100dvh;
  }

  .site-shell,
  .site-main {
    position: relative;
  }

  .site-header {
    position: sticky;
    overflow: visible;
    isolation: isolate;
  }

  body.mobile-menu-open .site-header {
    backdrop-filter: none;
    background: var(--mobile-header-bg-top);
  }

  .menu-toggle {
    position: relative;
    z-index: 10002;
  }

  .main-navigation {
    position: fixed;
    inset: 0;
    z-index: 10001;
    min-height: 100dvh;
    height: 100dvh;
    padding: 5.5rem 1rem 2rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .main-navigation.is-open {
    display: block;
  }
}


/* v1.4.3 mobile submenu click-on-parent fix */
@media (max-width: 820px) {
  .main-navigation .menu-item-has-children,
  .main-navigation .page_item_has_children {
    display: block;
  }

  .main-navigation .menu-item-has-children > a,
  .main-navigation .page_item_has_children > a {
    width: 100%;
    position: relative;
    padding-right: 3.25rem;
  }

  .main-navigation .menu-item-has-children > a::after,
  .main-navigation .page_item_has_children > a::after {
    content: "▾";
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--wp--preset--color--secondary);
    transition: transform .2s ease, color .2s ease;
  }

  .main-navigation .submenu-open > a::after {
    transform: translateY(-50%) rotate(180deg);
    color: var(--wp--preset--color--primary);
  }

  .main-navigation .menu-item-has-children > .submenu-toggle,
  .main-navigation .page_item_has_children > .submenu-toggle {
    display: none !important;
  }

  .main-navigation .menu-item-has-children > .sub-menu,
  .main-navigation .menu-item-has-children > .children,
  .main-navigation .page_item_has_children > .sub-menu,
  .main-navigation .page_item_has_children > .children {
    margin-top: 0.5rem;
    margin-left: 0;
    width: 100%;
  }
}


/* v1.4.4 simplified mobile menu behavior */
@media (max-width: 820px) {
  .main-navigation .sub-menu,
  .main-navigation .children {
    display: none !important;
  }

  .main-navigation .submenu-open > .sub-menu,
  .main-navigation .submenu-open > .children {
    display: flex !important;
    flex-direction: column;
  }

  .main-navigation .menu-item-has-children > .submenu-toggle,
  .main-navigation .page_item_has_children > .submenu-toggle {
    display: none !important;
  }
}


.custom-logo-link {
  display: inline-flex;
  align-items: center;
}

.custom-logo {
  transition: filter 0.2s ease;
}

@media (max-width: 820px) {
  .main-navigation .sub-menu,
  .main-navigation .children {
    position: static;
    min-width: 0;
    width: 100%;
    margin-top: 0.5rem;
    box-shadow: none;
  }
}


@media (max-width: 700px) {
  .branding-combo {
    gap: 0;
  }

  .branding .custom-logo {
    max-width: 64px;
  }

  .branding-text-link {
    padding-left: 0.65rem;
  }

  .branding-text .site-title {
    font-size: clamp(1rem, 4vw, 1.35rem);
  }

  .branding-text .site-description {
    font-size: 0.66rem;
    letter-spacing: 0.12em;
  }
}


@media (max-width: 768px) {
  .branding-link { min-height: 56px; }
  .branding-text-wrap { min-height: 56px; padding-left: 0.75rem; }
  .branding .custom-logo { max-height: 56px; }
}


.front-page-content {
  margin-bottom: 1.5rem;
}

.front-page-content .entry-title {
  margin-bottom: 1.25rem;
}

.home-latest-posts {
  display: grid;
  gap: 1.5rem;
}

.home-latest-posts > .entry-title,
.home-latest-posts > h2.entry-title {
  margin: 0;
}


.home-section-title {
    margin: 0 0 1.25rem;
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    line-height: 1.2;
    color: var(--wp--preset--color--primary, #FF2D8D);
    text-transform: none;
}


.theme-404-wrap {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.theme-404-card {
  width: min(100%, 760px);
  text-align: center;
}

.theme-404-message,
.theme-404-countdown {
  text-align: center;
}

.theme-404-countdown {
  margin-top: 1rem;
}


/* Hero layout overrides - keep after global layout rules so Customizer choices win. */
.hero.hero-banner > .hero-banner__container > .hero-banner__content {
  width: min(100%, 52rem);
  max-width: 52rem;
  padding: clamp(2.5rem, 4.4vw, 4.25rem) clamp(2.25rem, 4vw, 4rem);
}

.hero.hero-banner.hero-banner--panel-rounded_panel > .hero-banner__container > .hero-banner__content {
  width: fit-content;
  min-width: min(100%, 34rem);
  max-width: min(90vw, 58rem);
  padding: clamp(2.8rem, 4.8vw, 4.75rem) clamp(2.4rem, 4.4vw, 4.25rem);
}

.hero.hero-banner h1 {
  font-size: clamp(2.25rem, 4.1vw, 4.5rem);
  word-break: normal;
  overflow-wrap: normal;
}

@media (min-width: 721px) {
  .hero.hero-banner h1 {
    white-space: nowrap;
    max-width: none;
  }
}

.hero.hero-banner > .hero-banner__container {
  display: flex;
  width: min(100% - 2rem, var(--content-width));
}

.hero.hero-banner.hero-banner--text-left > .hero-banner__container {
  justify-content: flex-start;
  text-align: left;
}

.hero.hero-banner.hero-banner--text-right > .hero-banner__container {
  justify-content: flex-end;
  text-align: left;
}

.hero.hero-banner.hero-banner--text-center > .hero-banner__container {
  justify-content: center;
  text-align: center;
}

.hero.hero-banner.hero-banner--text-center > .hero-banner__container > .hero-banner__content,
.hero.hero-banner.hero-banner--text-center .kicker,
.hero.hero-banner.hero-banner--text-center h1,
.hero.hero-banner.hero-banner--text-center p {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.hero.hero-banner.hero-banner--panel-side_panel > .hero-banner__container > .hero-banner__content {
  background: color-mix(in srgb, var(--wp--preset--color--base) 48%, transparent);
  border-left: 4px solid var(--wp--preset--color--secondary);
  border-radius: 0;
  box-shadow: 0 24px 80px color-mix(in srgb, black 35%, transparent);
  backdrop-filter: blur(6px);
}

.hero.hero-banner.hero-banner--panel-rounded_panel > .hero-banner__container > .hero-banner__content {
  background: color-mix(in srgb, var(--wp--preset--color--base) 58%, transparent);
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--secondary) 34%, transparent);
  border-radius: 1.75rem;
  box-shadow: 0 24px 80px color-mix(in srgb, black 35%, transparent);
  backdrop-filter: blur(6px);
}

.hero.hero-banner.hero-banner--panel-none > .hero-banner__container > .hero-banner__content {
  padding-inline: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
}

@media (max-width: 760px) {
  .hero.hero-banner > .hero-banner__container,
  .hero.hero-banner.hero-banner--text-left > .hero-banner__container,
  .hero.hero-banner.hero-banner--text-right > .hero-banner__container,
  .hero.hero-banner.hero-banner--text-center > .hero-banner__container {
    justify-content: center;
    text-align: center;
  }
}

/* Header branding layout override v1.43
   Uses grid so the masthead can be truly centered while the menu stays right. */
.site-header .header-row.header-branding-left,
.site-header .header-row.header-branding-center {
  display: grid;
  align-items: center;
  gap: 1rem;
}

.site-header .header-row.header-branding-left {
  grid-template-columns: minmax(0, auto) 1fr minmax(0, auto);
}

.site-header .header-row.header-branding-center {
  grid-template-columns: minmax(0, 1fr) minmax(0, auto) minmax(0, 1fr);
}

.site-header .header-row.header-branding-left .branding {
  grid-column: 1;
  justify-self: start;
  justify-content: flex-start;
  text-align: left;
  flex: initial;
}

.site-header .header-row.header-branding-center .branding {
  grid-column: 2;
  justify-self: center;
  justify-content: center;
  text-align: center;
  flex: initial;
  width: auto;
  max-width: min(72vw, 920px);
}

.site-header .header-row.header-branding-left .main-navigation,
.site-header .header-row.header-branding-center .main-navigation {
  grid-column: 3;
  justify-self: end;
  margin-left: 0;
}

.site-header .header-row.header-branding-center .branding-link {
  justify-content: center;
}

.site-header .header-row.header-branding-center .branding-text {
  align-items: center;
  text-align: center;
}

.site-header .header-row.header-branding-left .branding-link {
  justify-content: flex-start;
}

.site-header .header-row.header-branding-left .branding-text {
  align-items: flex-start;
  text-align: left;
}

@media (max-width: 820px) {
  .site-header .header-row.header-branding-left,
  .site-header .header-row.header-branding-center {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .site-header .header-row.header-branding-left .branding,
  .site-header .header-row.header-branding-center .branding {
    grid-column: 1;
    justify-self: start;
    justify-content: flex-start;
    text-align: left;
    max-width: 100%;
  }

  .site-header .header-row.header-branding-left .menu-toggle,
  .site-header .header-row.header-branding-center .menu-toggle {
    grid-column: 2;
    justify-self: end;
  }

  .site-header .header-row.header-branding-left .main-navigation,
  .site-header .header-row.header-branding-center .main-navigation {
    grid-column: 1 / -1;
    justify-self: stretch;
  }

  .site-header .header-row.header-branding-center .branding-link {
    justify-content: flex-start;
  }

  .site-header .header-row.header-branding-center .branding-text {
    align-items: flex-start;
    text-align: left;
  }
}


/* Header menu drawer override v1.44
   Burger is always visible. Menu opens as a masthead-style section on desktop
   and as a clean vertical list on small screens. */
.site-header .header-row.header-branding-left,
.site-header .header-row.header-branding-center,
.header-row.header-branding-left,
.header-row.header-branding-center {
  grid-template-columns: minmax(0, 1fr) minmax(0, auto) minmax(0, 1fr);
  align-items: center;
}

.site-header .header-row.header-branding-left .branding,
.header-row.header-branding-left .branding {
  grid-column: 1 / 3;
  justify-self: start;
}

.site-header .header-row.header-branding-center .branding,
.header-row.header-branding-center .branding {
  grid-column: 2;
  justify-self: center;
}

.site-header .header-row.header-branding-left .menu-toggle,
.site-header .header-row.header-branding-center .menu-toggle,
.header-row.header-branding-left .menu-toggle,
.header-row.header-branding-center .menu-toggle,
.menu-toggle {
  display: inline-flex;
  grid-column: 3;
  justify-self: end;
}

.site-header .header-row.header-branding-left .main-navigation,
.site-header .header-row.header-branding-center .main-navigation,
.header-row.header-branding-left .main-navigation,
.header-row.header-branding-center .main-navigation,
.main-navigation {
  grid-column: 1 / -1;
  justify-self: stretch;
  width: 100%;
  display: none;
  margin: 0;
  padding: 1.05rem 0 0.15rem;
  border-top: 1px solid var(--header-border);
}

.site-header .main-navigation.is-open,
.main-navigation.is-open {
  display: block;
}

.main-navigation > div > ul,
.main-navigation > ul {
  justify-content: center;
  align-items: center;
  gap: clamp(1.25rem, 3.2vw, 4rem);
  width: 100%;
}

.main-navigation li {
  display: flex;
  align-items: center;
}

.main-navigation a,
.main-navigation .sub-menu a,
.main-navigation .children a {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.main-navigation > div > ul > li > a,
.main-navigation > ul > li > a {
  padding: 0.55rem 0 0.5rem;
  color: var(--wp--preset--color--contrast);
  font-size: 0.9rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-bottom: 3px solid transparent;
}

.main-navigation > div > ul > li > a:hover,
.main-navigation > div > ul > li > a:focus,
.main-navigation > div > ul > li.current-menu-item > a,
.main-navigation > ul > li > a:hover,
.main-navigation > ul > li > a:focus,
.main-navigation > ul > li.current_page_item > a,
.main-navigation > ul > li.current-menu-item > a {
  color: var(--wp--preset--color--secondary);
  background: transparent;
  border-color: var(--wp--preset--color--secondary);
  box-shadow: none;
}

.main-navigation .sub-menu,
.main-navigation .children {
  top: calc(100% + 0.4rem);
  border-radius: 14px;
}

@media (max-width: 820px) {
  .site-header .header-row.header-branding-left,
  .site-header .header-row.header-branding-center,
  .header-row.header-branding-left,
  .header-row.header-branding-center {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .site-header .header-row.header-branding-left .branding,
  .site-header .header-row.header-branding-center .branding,
  .header-row.header-branding-left .branding,
  .header-row.header-branding-center .branding {
    grid-column: 1;
    justify-self: start;
    justify-content: flex-start;
    text-align: left;
    max-width: 100%;
  }

  .site-header .header-row.header-branding-left .menu-toggle,
  .site-header .header-row.header-branding-center .menu-toggle,
  .header-row.header-branding-left .menu-toggle,
  .header-row.header-branding-center .menu-toggle {
    grid-column: 2;
    justify-self: end;
  }

  .site-header .header-row.header-branding-left .main-navigation,
  .site-header .header-row.header-branding-center .main-navigation,
  .header-row.header-branding-left .main-navigation,
  .header-row.header-branding-center .main-navigation,
  .main-navigation {
    position: fixed;
    inset: 0;
    z-index: 10001;
    min-height: 100dvh;
    height: 100dvh;
    padding: 5.5rem 1.25rem 2rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-top: 0;
    background:
      linear-gradient(180deg, var(--mobile-header-bg-top), var(--mobile-header-bg-bottom)),
      radial-gradient(circle at top right, var(--bg-radial-secondary), transparent 24%),
      radial-gradient(circle at top left, var(--mobile-header-accent), transparent 24%);
    box-shadow: var(--mobile-header-shadow);
  }

  .main-navigation > div > ul,
  .main-navigation > ul,
  .main-navigation ul {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .main-navigation li {
    display: block;
    width: 100%;
  }

  .main-navigation > div > ul > li > a,
  .main-navigation > ul > li > a,
  .main-navigation a {
    display: block;
    width: 100%;
    padding: 1rem 0;
    border: 0;
    border-bottom: 1px solid var(--header-border);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
    color: var(--wp--preset--color--contrast);
  }

  .main-navigation > div > ul > li > a:hover,
  .main-navigation > div > ul > li > a:focus,
  .main-navigation > ul > li > a:hover,
  .main-navigation > ul > li > a:focus,
  .main-navigation a:hover,
  .main-navigation a:focus,
  .main-navigation .current-menu-item > a,
  .main-navigation .current_page_item > a {
    color: var(--wp--preset--color--secondary);
    background: transparent;
    border-color: var(--header-border);
    box-shadow: none;
  }

  .main-navigation .sub-menu,
  .main-navigation .children {
    position: static;
    min-width: 0;
    width: 100%;
    padding: 0 0 0 1rem;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .main-navigation .sub-menu a,
  .main-navigation .children a {
    padding: 0.8rem 0;
    border-bottom: 1px solid var(--header-border);
  }
}



/* Header menu drawer correction v1.45 */
.site-header .header-row.header-branding-left,
.site-header .header-row.header-branding-center,
.header-row.header-branding-left,
.header-row.header-branding-center {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto) minmax(0, 1fr);
  align-items: center;
  gap: clamp(0.75rem, 2vw, 1.5rem);
}

.site-header .header-row.header-branding-left .branding,
.header-row.header-branding-left .branding {
  grid-column: 1;
  justify-self: start;
  justify-content: flex-start;
  text-align: left;
  max-width: min(72vw, 920px);
}

.site-header .header-row.header-branding-center .branding,
.header-row.header-branding-center .branding {
  grid-column: 2;
  justify-self: center;
  justify-content: center;
  text-align: center;
  max-width: min(72vw, 920px);
}

.site-header .header-row.header-branding-left .branding-link,
.header-row.header-branding-left .branding-link {
  justify-content: flex-start;
}

.site-header .header-row.header-branding-center .branding-link,
.header-row.header-branding-center .branding-link {
  justify-content: center;
}

.site-header .header-row.header-branding-left .branding-text,
.header-row.header-branding-left .branding-text {
  align-items: flex-start;
  text-align: left;
}

.site-header .header-row.header-branding-center .branding-text,
.header-row.header-branding-center .branding-text {
  align-items: center;
  text-align: center;
}

.site-header .header-row .menu-toggle,
.header-row .menu-toggle,
.menu-toggle {
  display: inline-flex !important;
  grid-column: 3;
  justify-self: end;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid var(--menu-toggle-border);
  border-radius: 14px;
  background: var(--menu-toggle-bg);
  box-shadow: var(--menu-toggle-shadow);
  cursor: pointer;
  z-index: 10003;
}

.site-header .header-row .main-navigation,
.header-row .main-navigation,
.main-navigation {
  grid-column: 1 / -1;
  justify-self: stretch;
  width: 100%;
  display: none !important;
  margin: 0;
  padding: 1.05rem 0 0.15rem;
  border-top: 1px solid var(--header-border);
}

.site-header .header-row .main-navigation.is-open,
.header-row .main-navigation.is-open,
.main-navigation.is-open {
  display: block !important;
}

.site-header .main-navigation > div > ul,
.site-header .main-navigation > ul,
.main-navigation > div > ul,
.main-navigation > ul {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: clamp(1.25rem, 3.2vw, 4rem);
  width: 100%;
}

.site-header .main-navigation li,
.main-navigation li {
  display: flex;
  align-items: center;
}

.site-header .main-navigation a,
.site-header .main-navigation .sub-menu a,
.site-header .main-navigation .children a,
.main-navigation a,
.main-navigation .sub-menu a,
.main-navigation .children a {
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.site-header .main-navigation > div > ul > li > a,
.site-header .main-navigation > ul > li > a,
.main-navigation > div > ul > li > a,
.main-navigation > ul > li > a {
  padding: 0.55rem 0 0.5rem;
  color: var(--wp--preset--color--contrast);
  font-size: 0.9rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 0;
  border-bottom: 3px solid transparent;
}

.site-header .main-navigation > div > ul > li > a:hover,
.site-header .main-navigation > div > ul > li > a:focus,
.site-header .main-navigation > div > ul > li.current-menu-item > a,
.site-header .main-navigation > ul > li > a:hover,
.site-header .main-navigation > ul > li > a:focus,
.site-header .main-navigation > ul > li.current_page_item > a,
.site-header .main-navigation > ul > li.current-menu-item > a,
.main-navigation > div > ul > li > a:hover,
.main-navigation > div > ul > li > a:focus,
.main-navigation > div > ul > li.current-menu-item > a,
.main-navigation > ul > li > a:hover,
.main-navigation > ul > li > a:focus,
.main-navigation > ul > li.current_page_item > a,
.main-navigation > ul > li.current-menu-item > a {
  color: var(--wp--preset--color--secondary);
  background: transparent;
  border-color: var(--wp--preset--color--secondary);
  box-shadow: none;
}

@media (max-width: 820px) {
  .site-header .header-row.header-branding-left,
  .site-header .header-row.header-branding-center,
  .header-row.header-branding-left,
  .header-row.header-branding-center {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .site-header .header-row.header-branding-left .branding,
  .site-header .header-row.header-branding-center .branding,
  .header-row.header-branding-left .branding,
  .header-row.header-branding-center .branding {
    grid-column: 1;
    justify-self: start;
    justify-content: flex-start;
    text-align: left;
    max-width: 100%;
  }

  .site-header .header-row.header-branding-left .branding-link,
  .site-header .header-row.header-branding-center .branding-link,
  .header-row.header-branding-left .branding-link,
  .header-row.header-branding-center .branding-link {
    justify-content: flex-start;
  }

  .site-header .header-row.header-branding-left .branding-text,
  .site-header .header-row.header-branding-center .branding-text,
  .header-row.header-branding-left .branding-text,
  .header-row.header-branding-center .branding-text {
    align-items: flex-start;
    text-align: left;
  }

  .site-header .header-row .menu-toggle,
  .header-row .menu-toggle,
  .menu-toggle {
    grid-column: 2;
    justify-self: end;
  }

  .site-header .header-row .main-navigation,
  .header-row .main-navigation,
  .main-navigation {
    position: fixed;
    inset: 0;
    z-index: 10001;
    min-height: 100dvh;
    height: 100dvh;
    padding: 5.5rem 1.25rem 2rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-top: 0;
    background: linear-gradient(180deg, var(--mobile-header-bg-top), var(--mobile-header-bg-bottom)), radial-gradient(circle at top right, var(--bg-radial-secondary), transparent 24%), radial-gradient(circle at top left, var(--mobile-header-accent), transparent 24%);
    box-shadow: var(--mobile-header-shadow);
  }

  .site-header .main-navigation > div > ul,
  .site-header .main-navigation > ul,
  .site-header .main-navigation ul,
  .main-navigation > div > ul,
  .main-navigation > ul,
  .main-navigation ul {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .site-header .main-navigation li,
  .main-navigation li {
    display: block;
    width: 100%;
  }

  .site-header .main-navigation > div > ul > li > a,
  .site-header .main-navigation > ul > li > a,
  .site-header .main-navigation a,
  .main-navigation > div > ul > li > a,
  .main-navigation > ul > li > a,
  .main-navigation a {
    display: block;
    width: 100%;
    padding: 1rem 0;
    border: 0;
    border-bottom: 1px solid var(--header-border);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
    color: var(--wp--preset--color--contrast);
  }

  .site-header .main-navigation .sub-menu,
  .site-header .main-navigation .children,
  .main-navigation .sub-menu,
  .main-navigation .children {
    position: static;
    min-width: 0;
    width: 100%;
    padding: 0 0 0 1rem;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
}

/* Header/menu utilities live in assets/css/header-masthead.css. */

/* Active block-template layout rules start below. */

/* Block theme conversion layer: v2.0.0-block-alpha */
.block-site-header,
.block-site-footer,
.site-main {
  width: min(100% - 2rem, 1200px);
  margin-inline: auto;
}
.block-site-header {
  position: relative;
  z-index: 20;
  padding-block: 1rem;
}
.block-header-row {
  min-height: 78px;
}
.block-front-page {
  width: 100%;
  max-width: none;
}
.block-front-page > .wp-block-cover.block-hero-banner {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.template-full-width,
.template-landing,
.template-no-sidebar,
.template-post-cards,
.template-magazine {
  margin-block: clamp(2rem, 5vw, 5rem);
}
.template-full-width .entry-content,
.template-full-width .wp-block-post-content {
  max-width: none;
}
.template-landing {
  width: min(100% - 2rem, 1100px);
}
.template-landing .wp-block-post-content {
  padding: clamp(2rem, 5vw, 4rem);
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 24px;
  background: color-mix(in srgb, var(--wp--preset--color--tertiary) 72%, transparent);
}
.template-magazine {
  width: min(100% - 2rem, 1080px);
}
.template-magazine .magazine-title {
  text-align: center;
  border-block: 3px double var(--wp--preset--color--border);
  padding-block: 1rem;
  margin-bottom: 2rem;
}
.template-magazine .magazine-flow {
  column-count: 2;
  column-gap: 2.5rem;
  column-rule: 1px solid var(--wp--preset--color--border);
}
.template-magazine .magazine-flow > :is(.wp-block-image, .wp-block-cover, .wp-block-group, .wp-block-columns, .alignwide, .alignfull, .magazine-span-all) {
  column-span: all;
  break-inside: avoid;
  margin-block: 2rem;
}
.template-post-cards .post-card-grid {
  gap: 1.4rem;
}
.template-post-cards .post-card {
  height: 100%;
}
.back-to-top {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 50;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--base);
  text-decoration: none;
  box-shadow: 0 10px 30px color-mix(in srgb, var(--wp--preset--color--primary) 35%, transparent);
}
@media (max-width: 760px) {
  .block-header-row { align-items: flex-start; }
  .template-magazine .magazine-flow { column-count: 1; }
}


/* Thematically Incorrect 1.0.8: actual footer/button editorial repair.
   These rules live at the end of style.css so they win over the older block-theme conversion layer. */
.wp-site-blocks > footer.block-site-footer,
.wp-site-blocks > .block-site-footer,
.wp-site-blocks > .site-footer,
footer.block-site-footer,
.block-site-footer,
.site-footer {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: auto;
  padding: clamp(2rem, 4vw, 3.5rem) 0;
  background: var(--wp--preset--color--contrast) !important;
  color: var(--wp--preset--color--base) !important;
  border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 78%, var(--wp--preset--color--border)) !important;
  box-shadow: 0 -8px 26px color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

.wp-site-blocks > footer.block-site-footer > *,
.wp-site-blocks > .block-site-footer > *,
.wp-site-blocks > .site-footer > *,
footer.block-site-footer > *,
.block-site-footer > *,
.site-footer > * {
  width: min(100% - 2rem, var(--wp--style--global--wide-size, 1200px)) !important;
  max-width: var(--wp--style--global--wide-size, 1200px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.site-footer a,
.block-site-footer a,
.site-footer .wp-block-site-title a,
.block-site-footer .wp-block-site-title a {
  color: var(--wp--preset--color--base) !important;
}

.wp-block-button__link,
.button,
button,
input[type="submit"],
input[type="button"] {
  background: var(--wp--preset--color--primary) !important;
  color: var(--wp--preset--color--base) !important;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 88%, var(--wp--preset--color--border)) !important;
  border-radius: 4px !important;
  box-shadow: 0 2px 8px color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent) !important;
  text-transform: none;
  letter-spacing: 0.01em;
}

.wp-block-button__link:hover,
.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
  background: color-mix(in srgb, var(--wp--preset--color--primary) 84%, var(--wp--preset--color--accent)) !important;
  color: var(--wp--preset--color--base) !important;
  box-shadow: 0 8px 24px color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent) !important;
}

.site-footer .wp-block-button__link,
.block-site-footer .wp-block-button__link,
.site-footer .button,
.block-site-footer .button,
.site-footer button,
.block-site-footer button,
.site-footer input[type="submit"],
.block-site-footer input[type="submit"] {
  background: var(--wp--preset--color--accent) !important;
  color: var(--wp--preset--color--base) !important;
  border-color: var(--wp--preset--color--accent) !important;
  box-shadow: 0 4px 14px color-mix(in srgb, var(--wp--preset--color--accent) 26%, transparent) !important;
}

/* Magazine-style article polish: Forbes-ish scale without changing the selected background. */
.page .entry-title,
.single .entry-title,
.wp-block-post-title {
  letter-spacing: -0.035em;
  line-height: 0.98;
}

.site-main,
.block-page,
.block-single {
  background: transparent;
}


/* Thematically Incorrect 1.0.11: drawer clickability and back-to-top repair.
   Keep this patch narrow: no CSS cleanup/refactor here. */
body.ti-menu-open::before {
  display: none !important;
  content: none !important;
}

.site-header .ti-menu-panel-wrap,
.site-header .ti-menu-panel-wrap.is-open {
  z-index: 2147483000 !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 1 !important;
}

.site-header .ti-menu-panel__inner,
.site-header .ti-menu-panel__topbar {
  filter: none !important;
}

.back-to-top {
  position: fixed !important;
  right: 1rem !important;
  bottom: 1rem !important;
  left: auto !important;
  top: auto !important;
  z-index: 999 !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  max-width: 44px !important;
  max-height: 44px !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 999px !important;
  line-height: 1 !important;
  font-size: 1.25rem !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.back-to-top.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

.back-to-top span {
  display: block !important;
  line-height: 1 !important;
}


/* Thematically Incorrect 1.0.12: back-to-top final placement repair.
   The button lives inside the footer block, so footer direct-child width rules can overpower it.
   This selector intentionally beats those rules and moves the control to the lower left. */
.site-footer > a.back-to-top,
.block-site-footer > a.back-to-top,
footer.site-footer > a.back-to-top,
footer.block-site-footer > a.back-to-top,
.wp-site-blocks .site-footer > a.back-to-top,
.wp-site-blocks .block-site-footer > a.back-to-top {
  position: fixed !important;
  left: 1rem !important;
  right: auto !important;
  bottom: 1rem !important;
  top: auto !important;
  z-index: 2147482000 !important;

  display: grid !important;
  place-items: center !important;

  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;

  padding: 0 !important;
  margin: 0 !important;
  border-radius: 999px !important;
  border: 1px solid var(--wp--preset--color--border) !important;
  background: var(--wp--preset--color--contrast) !important;
  color: var(--wp--preset--color--base) !important;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent) !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  transform: none !important;
}

.site-footer > a.back-to-top span,
.block-site-footer > a.back-to-top span,
footer.site-footer > a.back-to-top span,
footer.block-site-footer > a.back-to-top span {
  display: block !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 1.25rem !important;
  line-height: 1 !important;
}

.site-footer > a.back-to-top:not(.is-visible),
.block-site-footer > a.back-to-top:not(.is-visible),
footer.site-footer > a.back-to-top:not(.is-visible),
footer.block-site-footer > a.back-to-top:not(.is-visible) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.site-footer > a.back-to-top.is-visible,
.block-site-footer > a.back-to-top.is-visible,
footer.site-footer > a.back-to-top.is-visible,
footer.block-site-footer > a.back-to-top.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}


/* Thematically Incorrect 1.0.13: move back-to-top out of footer sizing context.
   JS appends the control to <body>; these selectors intentionally target that final location. */
body > a.back-to-top,
html body > a.back-to-top {
  position: fixed !important;
  left: 1rem !important;
  right: auto !important;
  bottom: 1rem !important;
  top: auto !important;
  z-index: 2147482000 !important;

  display: grid !important;
  place-items: center !important;

  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;

  padding: 0 !important;
  margin: 0 !important;
  border-radius: 999px !important;
  border: 1px solid var(--wp--preset--color--border) !important;
  background: var(--wp--preset--color--contrast) !important;
  color: var(--wp--preset--color--base) !important;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent) !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  transform: none !important;
}

body > a.back-to-top span,
html body > a.back-to-top span {
  display: block !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 1.25rem !important;
  line-height: 1 !important;
}

body > a.back-to-top:not(.is-visible) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body > a.back-to-top.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}


/* Thematically Incorrect 1.0.15: canonical back-to-top utility.
   This control is rendered by wp_footer, outside the footer block, so it cannot be stretched by footer layout rules. */
html body button.ti-back-to-top,
html body .ti-back-to-top.back-to-top {
  position: fixed !important;
  left: 1rem !important;
  right: auto !important;
  bottom: 1rem !important;
  top: auto !important;
  z-index: 2147482000 !important;

  display: grid !important;
  place-items: center !important;

  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;

  padding: 0 !important;
  margin: 0 !important;
  border-radius: 999px !important;
  border: 1px solid var(--wp--preset--color--border) !important;
  background: var(--wp--preset--color--contrast) !important;
  color: var(--wp--preset--color--base) !important;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent) !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  transform: none !important;
  cursor: pointer !important;
}

html body .ti-back-to-top span {
  display: block !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 1.25rem !important;
  line-height: 1 !important;
}

html body .ti-back-to-top:not(.is-visible) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html body .ti-back-to-top.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
