/* =========================================================
   AXIA â€” GLOBAL CUSTOM CSS â€” SECOND PASS
   Load on every page.
   Page/template-only CSS has been removed from this global payload.
   ========================================================= */

/* ==========================================================
   AXIA â€” TWENTY TWENTY-FIVE CLEAN STYLESHEET
   ----------------------------------------------------------
   Modern block-theme version.
   Responsive parent-theme imports, legacy menu/header CSS,
   old wrapper fixes and duplicated component generations removed.
   ========================================================== */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400..700&family=Inter+Tight:wght@500;600;700;800&display=swap');
:root {
  --axia-content: 1280px;
  --axia-section-width: 1080px;
  --axia-reading: 820px;
  --axia-gutter: clamp(16px, 3vw, 40px);
  --axia-purple: #351078;
  --axia-purple-dark: #351657;
  --axia-purple-soft: #eeeaf3;
  --axia-purple-border: #ded5e6;
  --axia-purple-deep: #2b0d63;
  --axia-purple-mid: #4a218c;
  --axia-purple-bright: #7567dd;
  --axia-green: #164f3e;
  --axia-green-dark: #103c31;
  --axia-green-soft: #edf4ed;
  --axia-cream: #fbfaf6;
  --axia-white: #ffffff;
  --axia-text: #26322d;
  --axia-muted: #6b6076;
  --axia-border: rgba(74, 33, 140, 0.12);
  --axia-ink: #292131;
  --axia-body: #4c4355;
  --axia-page: 1540px;
  --axia-radius-sm: 9px;
  --axia-accent: var(--axia-purple);
  --axia-accent-dark: var(--axia-purple-dark);
  --axia-accent-soft: var(--axia-purple-soft);
}
.axia-theme--green,
body:has(.axia-wales-hero) {
  --axia-accent: var(--axia-green);
  --axia-accent-dark: var(--axia-green-dark);
  --axia-accent-soft: var(--axia-green-soft);
}
[class^="axia-"],
[class*=" axia-"],
[class^="axia-"]::before,
[class^="axia-"]::after,
[class*=" axia-"]::before,
[class*=" axia-"]::after {
  box-sizing: border-box;
}
/* Keep custom landing pages in charge of their own H1. */
body:has(.axia-home-v2) .wp-block-post-title,
body:has(.axia-home-hero) .wp-block-post-title,
body:has(.axia-wales-hero) .wp-block-post-title {
  display: none;
}
/* ==========================================================
   TYPOGRAPHY
   Scoped to main content so the Twenty Twenty-Five header/footer
   are not accidentally restyled.
   ========================================================== */
body {
  font-family: "DM Sans", Arial, sans-serif;
  color: var(--axia-text);
}
main :where(p, li) {
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(17px, 1.05vw, 19px);
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: -0.015em;
}
main :where(h1, h2, h3, h4, h5, h6),
.axia-display-heading,
.axia-team-heading,
.axia-home-hero__heading {
  font-family: "Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: 700;
  color: #351568;
  text-wrap: balance;
  font-synthesis: none;
}
main h1 {
  font-size: clamp(3.8rem, 6vw, 7rem);
  line-height: 0.89;
  letter-spacing: -0.055em;
}
main h2 {
  font-size: clamp(2.7rem, 4.2vw, 4.8rem);
  line-height: 0.92;
  letter-spacing: -0.05em;
}
main h3 {
  font-size: clamp(1.55rem, 2.1vw, 2.45rem);
  line-height: 1;
  letter-spacing: -0.035em;
}
main h4 {
  font-size: clamp(1.25rem, 1.5vw, 1.65rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
}
main :where(h5, h6) {
  font-size: 1.05rem;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.axia-eyebrow,
.axia-section__label,
.axia-wales-section-label {
  font-family: "Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: 0.07em;
  font-weight: 600;
  text-transform: uppercase;
}
.axia-lead {
  font-size: clamp(1.2rem, 1.5vw, 1.55rem);
  line-height: 1.48;
  letter-spacing: -0.02em;
}
.axia-display-heading {
  font-size: clamp(4.5rem, 8vw, 9rem);
  line-height: 0.82;
  letter-spacing: -0.065em;
}
.axia-outline-heading {
  color: #ffffff;
  -webkit-text-stroke: 1.5px #111111;
  paint-order: stroke fill;
}
.axia-display-heading.axia-outline-heading {
  -webkit-text-stroke-width: 2px;
}
main :where(button, .wp-block-button__link, .wp-element-button, input[type="submit"]) {
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
}
main :where(input, textarea, select, label) {
  font-family: "DM Sans", Arial, sans-serif;
}
@media (max-width: 781px) {
  main :where(p, li) {
    font-size: 17px;
    line-height: 1.55;
  }
  main h1 {
    font-size: clamp(3rem, 13vw, 4.8rem);
    line-height: 0.91;
  }
  main h2 {
    font-size: clamp(2.35rem, 10vw, 3.6rem);
    line-height: 0.94;
  }
  main h3 {
    font-size: clamp(1.6rem, 7vw, 2.3rem);
  }
  .axia-display-heading {
    font-size: clamp(3.6rem, 16vw, 6rem);
  }
  .axia-lead {
    font-size: 1.18rem;
  }
}
/* ==========================================================
   SHARED AXIA COMPONENTS
   ========================================================== */
.axia-shell,
.axia-wales-section {
  position: relative;
  width: min(calc(100% - (var(--axia-gutter) * 2)), var(--axia-section-width));
  margin-inline: auto;
}
/*
 * Modern section architecture:
 * the section/background is full width;
 * .axia-inner is responsible for containing readable content.
 */
.axia-section {
  position: relative;
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.axia-inner,
.axia-wales-inner {
  width: min(100%, var(--axia-content));
  margin-inline: auto;
}
.axia-inner--narrow {
  max-width: var(--axia-reading);
}
.axia-section,
.axia-wales-section {
  margin-block: 0;
  padding: 72px 48px;
  background: var(--axia-white);
}
.axia-section--soft,
.axia-wales-section-soft {
  background: var(--axia-accent-soft);
}
.axia-section--cream,
.axia-wales-section-cream {
  background: var(--axia-cream);
}
.axia-section--decorated,
.axia-wales-section-soft {
  overflow: hidden;
  isolation: isolate;
}
.axia-section--decorated::before,
.axia-wales-section-soft::before,
.axia-section--decorated::after,
.axia-wales-section-soft::after {
  content: "";
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
}
.axia-section--decorated::before,
.axia-wales-section-soft::before {
  top: -170px;
  right: -140px;
  width: 440px;
  height: 440px;
  background: radial-gradient(circle, rgba(165, 194, 165, 0.2) 0%, rgba(199, 216, 193, 0.1) 40%, transparent 72%);
}
.axia-section--decorated::after,
.axia-wales-section-soft::after {
  bottom: -190px;
  left: -150px;
  width: 460px;
  height: 460px;
  background: radial-gradient(circle, rgba(210, 220, 198, 0.18) 0%, transparent 70%);
}
.axia-section--decorated > .axia-inner,
.axia-wales-section-soft > .axia-wales-inner {
  position: relative;
  z-index: 1;
}
.axia-section h2,
.axia-wales-section h2 {
  max-width: 800px;
  margin: 0 auto 20px;
  color: var(--axia-accent-dark);
  text-align: center;
}
.axia-section h3,
.axia-wales-section h3 {
  margin-top: 0;
  color: var(--axia-accent-dark);
}
.axia-section__label,
.axia-wales-section-label {
  margin: 0 0 11px;
  color: var(--axia-accent);
  letter-spacing: 0.14em;
  text-align: center;
}
.axia-section__intro,
.axia-wales-section-intro {
  max-width: var(--axia-reading);
  margin: 0 auto 34px;
  color: var(--axia-muted);
  text-align: center;
}
.axia-body-copy,
.axia-wales-body-copy {
  max-width: 880px;
  margin: 0 auto 17px;
}
.axia-card,
.axia-wales-card {
  height: 100%;
  padding: 30px;
  background: var(--axia-white);
  border: 1px solid var(--axia-border);
  border-radius: 17px;
  box-shadow: 0 10px 30px rgba(22, 79, 62, 0.065);
}
.axia-card--soft {
  background: var(--axia-accent-soft);
}
.axia-card--purple {
  background: var(--axia-purple-soft);
  border-color: var(--axia-purple-border);
}
.axia-card--center {
  text-align: center;
}
.axia-card > :first-child,
.axia-wales-card > :first-child {
  margin-top: 0;
}
.axia-card > :last-child,
.axia-wales-card > :last-child {
  margin-bottom: 0;
}
.axia-card p,
.axia-wales-card p {
  color: var(--axia-muted);
}
.axia-card-row,
.axia-wales-card-row {
  display: flex;
  align-items: stretch;
  gap: 22px;
  width: 100%;
  margin: 28px 0 0;
}
.axia-card-row > .wp-block-column,
.axia-wales-card-row > .wp-block-column {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  min-width: 0;
}
.axia-card-row > .wp-block-column > .axia-card,
.axia-wales-card-row > .wp-block-column > .axia-wales-card {
  flex: 1 1 auto;
  width: 100%;
}
/* Shared button positioning */
.axia-buttons,
.axia-wales-section-buttons,
.axia-wales-hero-buttons {
  position: relative;
  z-index: 2;
}
/* Generic Wales section buttons. Wales hero and global AXIA buttons have their own final rules later. */
.axia-wales-section-buttons {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 9px 0 0;
}
.axia-buttons--center { justify-content: center; }
.axia-buttons--end { justify-content: flex-end; }
.axia-wales-section-buttons .wp-block-button { margin: 0; }
.axia-wales-section-buttons .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 21px;
  color: var(--axia-white);
  background: var(--axia-accent);
  border: 2px solid var(--axia-accent);
  border-radius: var(--axia-radius-sm);
  box-shadow: 0 7px 20px rgba(22, 79, 62, 0.13);
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.axia-wales-section-buttons .wp-block-button__link:hover,
.axia-wales-section-buttons .wp-block-button__link:focus-visible {
  color: var(--axia-white);
  background: var(--axia-accent-dark);
  border-color: var(--axia-accent-dark);
  transform: translateY(-2px);
}
.axia-wales-section-buttons .is-style-outline .wp-block-button__link {
  color: var(--axia-accent-dark);
  background: transparent;
  border-color: var(--axia-accent);
  box-shadow: none;
}
.axia-wales-section-buttons .is-style-outline .wp-block-button__link:hover,
.axia-wales-section-buttons .is-style-outline .wp-block-button__link:focus-visible {
  color: var(--axia-white);
  background: var(--axia-accent);
}
/* Residual properties that still contribute to the later global AXIA button generation. */
.axia-buttons .wp-block-button__link {
  min-height: 48px;
  box-shadow: 0 7px 20px rgba(22, 79, 62, 0.13);
}
.axia-buttons .wp-block-button__link:focus-visible { transform: translateY(-2px); }
.axia-buttons .is-style-outline .wp-block-button__link { box-shadow: none; }
.axia-split,
.axia-wales-split {
  display: flex;
  align-items: center;
  gap: 46px;
  width: 100%;
  margin: 34px 0 0;
}
.axia-split > .wp-block-column,
.axia-wales-split > .wp-block-column {
  flex: 1 1 0;
  min-width: 0;
}
.axia-media,
.axia-wales-media {
  display: block;
  width: min(420px, 100%);
  margin-inline: auto;
}
.axia-media img,
.axia-wales-media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.axia-benefit-card,
.axia-wales-benefit-card {
  display: flex;
  min-height: 310px;
  flex-direction: column;
  align-items: center;
  background: var(--axia-purple-soft);
  border-color: var(--axia-purple-border);
  box-shadow: none;
  text-align: center;
  transition: transform .2s ease, box-shadow .2s ease;
}
.axia-benefit-card:hover,
.axia-wales-benefit-card:hover {
  box-shadow: 0 12px 28px rgba(72, 32, 117, 0.1);
  transform: translateY(-3px);
}
.axia-benefit-icon,
.axia-wales-benefit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 84px;
  margin: 0 auto 17px;
  padding: 11px;
  background: var(--axia-white);
  border-radius: 50%;
  box-shadow: 0 6px 17px rgba(72, 32, 117, 0.08);
}
.axia-benefit-icon img,
.axia-wales-benefit-icon img {
  width: 62px;
  height: 62px;
  object-fit: contain;
}
@media (max-width: 900px) {
  .axia-section,
  .axia-wales-section {
    padding: 62px 34px;
  }
}
@media (max-width: 781px) {
  .axia-section,
  .axia-wales-section {
    padding: 46px 16px;
  }
  .axia-card-row,
  .axia-wales-card-row,
  .axia-split,
  .axia-wales-split {
    flex-direction: column;
    gap: 17px;
  }
  .axia-card-row > .wp-block-column,
  .axia-wales-card-row > .wp-block-column,
  .axia-split > .wp-block-column,
  .axia-wales-split > .wp-block-column {
    flex-basis: 100%;
    width: 100%;
  }
  .axia-buttons,
  .axia-wales-section-buttons {
    width: 100%;
    flex-direction: column;
    justify-content: center;
  }
}
/* ==========================================================
   REVEAL ANIMATION
   ========================================================== */
.axia-reveal {
  opacity: 1;
  transform: none;
}
html.axia-reveal-ready .axia-reveal {
  opacity: 0;
  transition: opacity 850ms cubic-bezier(.22,1,.36,1), transform 850ms cubic-bezier(.22,1,.36,1);
  transition-delay: var(--axia-reveal-delay, 0ms);
}
html.axia-reveal-ready .axia-reveal-left {
  transform: translate3d(-28px, 0, 0);
}
html.axia-reveal-ready .axia-reveal-right {
  transform: translate3d(28px, 0, 0);
}
html.axia-reveal-ready .axia-reveal-up {
  transform: translate3d(0, 24px, 0);
}
html.axia-reveal-ready .axia-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.axia-delay-1 { --axia-reveal-delay: 90ms; }
.axia-delay-2 { --axia-reveal-delay: 180ms; }
.axia-delay-3 { --axia-reveal-delay: 270ms; }
@media (prefers-reduced-motion: reduce) {
  html.axia-reveal-ready .axia-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ==========================================================
   AXIA HEADER — FINAL CLEAN VERSION
   ----------------------------------------------------------
   One header system only.

   Desktop:
   - original two-row visual layout is preserved
   - logo sits above the navigation and aligns with the left gutter
   - scroll JS only adds/removes .is-compact
   - .is-compact collapses ONLY the logo row upwards
   - navigation, socials and Contact Us never change layout

   Burger widths:
   - existing working burger treatment retained
   - logo always stays visible
   - Contact Us stays compact on the right
   ========================================================== */

:root {
    --axia-header-bg: #eeeaf3;
    --axia-header-purple: #482075;
    --axia-header-purple-mid: #7558a0;
    --axia-header-text: #292232;

    --axia-header-max: 1600px;
    --axia-header-gutter: clamp(18px, 3vw, 40px);
    --axia-header-gutter-m: clamp(12px, 3vw, 22px);

    --axia-header-logo-row: 88px;
    --axia-header-nav-row: 58px;
    --axia-header-burger-h: 76px;
}


/* ==========================================================
   SITE / TEMPLATE SPACING NORMALISATION
   ========================================================== */

.wp-site-blocks {
    row-gap: 0 !important;
    overflow: visible !important;
}


/* Header direct child */
.wp-site-blocks > header.wp-block-template-part {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
}


/* Header wrapped by a top-level Gutenberg Group */
.wp-site-blocks
> .wp-block-group:has(header.wp-block-template-part) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;

    padding-top: 0 !important;

    row-gap: 0 !important;

    overflow: visible !important;
}


/* Remove Gutenberg's block gap immediately after the header. */
.wp-site-blocks
> header.wp-block-template-part
+ *,

.wp-site-blocks
> .wp-block-group:has(header.wp-block-template-part)
+ * {
    margin-block-start: 0 !important;
}



/* ==========================================================
   HOMEPAGE HEADER NORMALISATION
   ----------------------------------------------------------
   The historic homepage stylesheet still contains:
       body.home header.wp-block-template-part {
           position: absolute !important;
       }

   That is why the homepage behaves differently from every other page.
   These selectors are intentionally more specific, so the global header
   wins even if the homepage stylesheet is loaded afterwards.
   ========================================================== */

html body.home
.wp-site-blocks
header.wp-block-template-part {
    position: sticky !important;

    top: 0 !important;
    left: auto !important;
    right: auto !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* WordPress admin bar on homepage */
html body.home.admin-bar
.wp-site-blocks
header.wp-block-template-part {
    top: 32px !important;
}


@media (max-width: 782px) {

    html body.home.admin-bar
    .wp-site-blocks
    header.wp-block-template-part {
        top: 46px !important;
    }

}


/*
 * The old homepage overlay treatment also added the header height
 * back onto the hero as padding. Once the header returns to normal
 * sticky flow that compensation must be removed.
 */
html body.home
main#wp--skip-link--target,

html body.home
main.wp-block-group,

html body.home
main#wp--skip-link--target
> .wp-block-group:first-child,

html body.home
.wp-block-post-content,

html body.home
.axia-home-v2,

html body.home
.axia-home-hero {
    margin-top: 0 !important;
    margin-block-start: 0 !important;

    padding-block-start: 0 !important;
}


html body.home
.wp-site-blocks {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-block-start: 0 !important;

    gap: 0 !important;
    row-gap: 0 !important;

    overflow: visible !important;
}

/* ==========================================================
   HEADER SHELL
   ========================================================== */

header.wp-block-template-part {
    position: sticky !important;

    top: 0 !important;
    z-index: 10000;

    box-sizing: border-box;

    width: 100%;
    max-width: none;

    margin: 0 !important;
    padding: 0 !important;

    background: rgba(238, 234, 243, .97) !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(72, 32, 117, .08) !important;
    border-radius: 0 0 22px 22px;

    box-shadow: 0 7px 24px rgba(55, 31, 79, .05);

    overflow: visible;

    /*
     * No base transition. The compact animation is desktop-only and
     * is added inside the desktop media query below. This keeps mobile
     * completely free of unnecessary header animation work.
     */
    transition: none;
}


/*
 * Keep the visual paint properties identical in both states.
 * The compact state changes ONLY transform on desktop, avoiding
 * full-width repaints of shadow, radius and background while scrolling.
 */
header.wp-block-template-part.is-compact {
    background: rgba(238, 234, 243, .97) !important;
}


/* WordPress admin bar */
body.admin-bar header.wp-block-template-part {
    top: 32px !important;
}


@media (max-width: 782px) {

    body.admin-bar header.wp-block-template-part {
        top: 46px !important;
    }

}


header.wp-block-template-part *,
header.wp-block-template-part *::before,
header.wp-block-template-part *::after {
    box-sizing: border-box;
}


header.wp-block-template-part
.wp-block-site-title,

header.wp-block-template-part
.wp-block-site-tagline {
    display: none !important;
}


/* Decorative white swoops */
header.wp-block-template-part::before {
    content: "";

    position: absolute;
    inset: 0;
    z-index: 0;

    background-image:
        radial-gradient(
            ellipse 620px 160px at 26% -68px,
            transparent 68.5%,
            rgba(255,255,255,.58) 69%,
            rgba(255,255,255,.58) 69.7%,
            transparent 70.2%
        ),
        radial-gradient(
            ellipse 720px 150px at 73% 132px,
            transparent 67.8%,
            rgba(255,255,255,.34) 68.4%,
            rgba(255,255,255,.34) 69%,
            transparent 69.6%
        );

    background-repeat: no-repeat;

    border-radius: inherit;

    pointer-events: none;
}


/*
 * Twenty Twenty-Five can put the two header blocks inside one or
 * more Groups. Keep those wrappers neutral/full width. This avoids
 * page-template alignment settings pushing the navigation sideways.
 */
header.wp-block-template-part
.wp-block-group:has(.wp-block-site-logo),

header.wp-block-template-part
.wp-block-group:has(.wp-block-navigation) {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;

    overflow: visible !important;
}


/* ==========================================================
   LOGO BASE
   ========================================================== */

header.wp-block-template-part
.wp-block-site-logo {
    z-index: 20;

    margin: 0 !important;
    padding: 0 !important;
}


header.wp-block-template-part
.wp-block-site-logo a {
    display: block;

    line-height: 0;

    pointer-events: auto !important;
}


header.wp-block-template-part
.wp-block-site-logo img {
    display: block;

    width: auto !important;
    height: auto !important;

    max-width: clamp(132px, 11vw, 176px) !important;
    max-height: 66px !important;

    margin: 0;

    object-fit: contain;
}


/* ==========================================================
   NAV / SOCIALS / CONTACT BASE
   ========================================================== */

header.wp-block-template-part
.wp-block-navigation {
    z-index: 30;

    width: 100%;
    min-width: 0;
    max-width: none;

    margin: 0 !important;
    padding: 0;

    background: transparent !important;

    font-family: "DM Sans", Arial, sans-serif;

    overflow: visible !important;
}


header.wp-block-template-part
.wp-block-social-links,

header.wp-block-template-part
.axia-header-socials {
    display: flex !important;
    flex-wrap: nowrap !important;

    align-items: center !important;
    justify-content: center !important;

    width: auto;

    gap: 6px;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
}


header.wp-block-template-part
.wp-block-social-links
.wp-social-link,

header.wp-block-template-part
.axia-header-socials
.wp-social-link {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    margin: 0;

    color: #60408a !important;

    background: rgba(255,255,255,.68) !important;

    border: 1px solid rgba(72,32,117,.06);
    border-radius: 50%;

    box-shadow: 0 3px 10px rgba(72,32,117,.04);

    transition:
        transform 180ms ease,
        background-color 180ms ease,
        box-shadow 180ms ease;
}


header.wp-block-template-part
.wp-block-social-links
.wp-social-link:hover,

header.wp-block-template-part
.axia-header-socials
.wp-social-link:hover {
    background: #fff !important;

    transform: translateY(-1px);

    box-shadow: 0 6px 14px rgba(72,32,117,.08);
}


header.wp-block-template-part
.wp-block-social-links svg,

header.wp-block-template-part
.axia-header-socials svg {
    width: 14px;
    height: 14px;
}


header.wp-block-template-part
.wp-block-buttons,

header.wp-block-template-part
.axia-header-contact {
    display: flex !important;
    flex: 0 0 auto;

    align-items: center !important;
    justify-content: center !important;

    width: auto;

    margin: 0 !important;
    padding: 0 !important;
}


header.wp-block-template-part
.axia-header-contact
.wp-block-button {
    margin: 0 !important;
}


header.wp-block-template-part
.axia-header-contact
.wp-block-button__link {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: auto !important;
    height: auto !important;

    min-width: 104px;
    min-height: 40px;

    padding: 8px 16px;

    color: var(--axia-header-purple) !important;

    background: rgba(255,255,255,.50) !important;

    border: 1.5px solid var(--axia-header-purple-mid) !important;
    border-radius: 999px !important;

    outline: 0 !important;
    box-shadow: none !important;

    font-family: "DM Sans", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;

    white-space: nowrap;

    text-decoration: none !important;

    transition:
        transform 180ms ease,
        background-color 180ms ease,
        color 180ms ease,
        box-shadow 180ms ease;
}


header.wp-block-template-part
.axia-header-contact
.wp-block-button__link:hover {
    color: #fff !important;

    background: var(--axia-header-purple) !important;

    transform: translateY(-1px);

    box-shadow: 0 7px 18px rgba(72,32,117,.14) !important;
}


/* ==========================================================
   TOP-LEVEL NAV LINKS
   Current / focus state = underline only.
   ========================================================== */

header.wp-block-template-part
.wp-block-navigation__container
> .wp-block-navigation-item {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;

    background: transparent !important;
}


header.wp-block-template-part
.wp-block-navigation__container
> .wp-block-navigation-item
> .wp-block-navigation-item__content {
    position: relative;

    display: flex;

    align-items: center;

    min-height: 42px;

    margin: 0 !important;
    padding: 8px 0;

    color: var(--axia-header-text) !important;

    background: transparent !important;

    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;

    font-size: clamp(13.5px, .22vw + 10.5px, 15px);
    font-weight: 700;
    line-height: 1.2;

    white-space: nowrap;

    text-decoration: none !important;

    transition: color 180ms ease;
}


header.wp-block-template-part
.wp-block-navigation__container
> .wp-block-navigation-item
> .wp-block-navigation-item__content:hover,

header.wp-block-template-part
.wp-block-navigation__container
> .wp-block-navigation-item
> .wp-block-navigation-item__content:focus,

header.wp-block-template-part
.wp-block-navigation__container
> .wp-block-navigation-item
> .wp-block-navigation-item__content:focus-visible,

header.wp-block-template-part
.wp-block-navigation__container
> .wp-block-navigation-item
> .wp-block-navigation-item__content:active,

header.wp-block-template-part
.wp-block-navigation__container
> .current-menu-item
> .wp-block-navigation-item__content,

header.wp-block-template-part
.wp-block-navigation__container
> .current-menu-ancestor
> .wp-block-navigation-item__content {
    color: var(--axia-header-purple) !important;

    background: transparent !important;

    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}


header.wp-block-template-part
.wp-block-navigation__container
> .wp-block-navigation-item
> .wp-block-navigation-item__content::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: 1px;
    left: 0;

    height: 2px;

    background: var(--axia-header-purple-mid);

    border-radius: 999px;

    transform: scaleX(0);
    transform-origin: right center;

    transition:
        transform 220ms cubic-bezier(.22,1,.36,1);
}


header.wp-block-template-part
.wp-block-navigation__container
> .wp-block-navigation-item
> .wp-block-navigation-item__content:hover::after,

header.wp-block-template-part
.wp-block-navigation__container
> .wp-block-navigation-item
> .wp-block-navigation-item__content:focus-visible::after,

header.wp-block-template-part
.wp-block-navigation__container
> .current-menu-item
> .wp-block-navigation-item__content::after,

header.wp-block-template-part
.wp-block-navigation__container
> .current-menu-ancestor
> .wp-block-navigation-item__content::after {
    transform: scaleX(1);

    transform-origin: left center;
}


/* Submenu links */
header.wp-block-template-part
.wp-block-navigation__submenu-container
.wp-block-navigation-item__content {
    display: block;

    width: 100%;

    padding: 10px 13px;

    color: #4b4351 !important;

    border-radius: 8px;

    font-size: 13.5px;
    line-height: 1.35;

    white-space: normal;

    text-decoration: none !important;
}


header.wp-block-template-part
.wp-block-navigation__submenu-container
.wp-block-navigation-item__content:hover {
    color: var(--axia-header-purple) !important;

    background: #f5f1f8 !important;
}


/* ==========================================================
   DESKTOP — 1281px+
   ----------------------------------------------------------
   SIMPLE, CENTRED DESKTOP ROW

   The links, Social Icons and Contact Us are all kept in normal
   flex flow. Nothing in this row is absolutely positioned.

   This avoids the previous conflict where:
   - the menu was justify-content:flex-end
   - a large right-only padding reserve was also applied
   - the combination pushed the link group off the left edge

   Result:
   - nav row is centred as one unit
   - final nav link sits 0.5rem before the social separator
   - socials remain vertically aligned
   - Contact Us follows socials
   - none of the utilities can overlap the menu
   ========================================================== */

@media (min-width: 1281px) {

    :root {
        --axia-header-nav-social-gap: 0.5rem;
        --axia-header-social-inner-gap: 0.625rem;
        --axia-header-social-contact-gap: 0.75rem;
    }


    header.wp-block-template-part {
        display: block !important;
    }


    header.wp-block-template-part
    .wp-block-group:has(.wp-block-site-logo),

    header.wp-block-template-part
    .wp-block-group:has(.wp-block-navigation) {
        display: block !important;

        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        background: transparent !important;

        overflow: visible !important;
    }


    /* ------------------------------------------------------
       LOGO ROW
       ------------------------------------------------------ */

    /*
     * Desktop header is promoted to one compositor layer.
     * The header's internal dimensions never change while scrolling.
     */
    header.wp-block-template-part {
        transform: translate3d(0, 0, 0);

        /*
         * Transform is compositor-friendly and does not alter document
         * geometry. This is the only property animated by scroll state.
         */
        transition: transform 240ms cubic-bezier(.22,1,.36,1);
        will-change: transform;

        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }


    header.wp-block-template-part
    .wp-block-site-logo {
        position: relative !important;

        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        height: var(--axia-header-logo-row) !important;
        max-height: var(--axia-header-logo-row) !important;

        margin: 0 !important;

        padding:
            0
            max(
                var(--axia-header-gutter),
                calc((100% - var(--axia-header-max)) / 2)
            )
            !important;

        opacity: 1 !important;

        overflow: hidden;

        transform: none !important;

        transition: none !important;
    }


    header.wp-block-template-part
    .wp-block-site-logo a {
        transform: translateY(4px);
    }


    /*
     * PERFORMANCE-OPTIMISED COMPACT STATE
     *
     * Move the complete header up by exactly one logo-row height.
     * The navigation row therefore lands at the top of the viewport,
     * while none of its children are re-laid-out or resized.
     *
     * This is substantially cheaper than animating height/max-height.
     */
    header.wp-block-template-part.is-compact {
        transform:
            translate3d(
                0,
                calc(0px - var(--axia-header-logo-row)),
                0
            );
    }


    /* ------------------------------------------------------
       NAVIGATION ROW
       ------------------------------------------------------ */

    header.wp-block-template-part
    .wp-block-navigation {
        position: relative !important;

        display: block !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        height: var(--axia-header-nav-row);
        min-height: var(--axia-header-nav-row);

        margin: 0 !important;

        padding:
            0
            max(
                var(--axia-header-gutter),
                calc((100% - var(--axia-header-max)) / 2)
            )
            !important;

        --navigation-layout-justify: center;
        --navigation-layout-justification-setting: center;

        overflow: visible !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container-open,

    header.wp-block-template-part
    .wp-block-navigation__responsive-container-close {
        display: none !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container,

    header.wp-block-template-part
    .wp-block-navigation__responsive-close,

    header.wp-block-template-part
    .wp-block-navigation__responsive-dialog {
        position: static !important;

        display: block !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        height: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        background: transparent !important;

        overflow: visible !important;
    }


    /*
     * Centre the COMPLETE desktop navigation group:
     * links + socials + Contact Us.
     */
    header.wp-block-template-part
    .wp-block-navigation__responsive-container-content {
        position: static !important;

        display: flex !important;

        flex-direction: row !important;
        flex-wrap: nowrap !important;

        align-items: center !important;
        justify-content: center !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        height: 100% !important;

        gap: 0 !important;

        margin: 0 !important;
        padding: 0 !important;
    }


    /*
     * Main links remain content-width and centred.
     *
     * No flex-end.
     * No asymmetric right padding.
     * No utility blocks absolutely positioned over the row.
     */
    header.wp-block-template-part
    .wp-block-navigation__container {
        position: static !important;

        order: 1;

        display: flex !important;
        flex: 0 1 auto !important;

        flex-direction: row !important;
        flex-wrap: nowrap !important;

        align-items: center !important;
        justify-content: center !important;

        width: auto !important;
        min-width: 0 !important;
        max-width: 100% !important;

        gap: clamp(7px, .72vw, 15px);

        margin: 0 !important;
        padding: 0 !important;

        list-style: none;
    }


    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item:not(:has(.wp-block-social-links)):not(:has(.axia-header-socials)):not(:has(.wp-block-buttons)):not(:has(.axia-header-contact)) {
        position: relative !important;

        flex: 0 0 auto !important;
    }


    /* ------------------------------------------------------
       SOCIAL ICONS
       ------------------------------------------------------ */

    header.wp-block-template-part
    .wp-block-navigation__responsive-container-content
    > .wp-block-social-links,

    header.wp-block-template-part
    .wp-block-navigation__responsive-container-content
    > .axia-header-socials,

    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-social-links,

    header.wp-block-template-part
    .wp-block-navigation__container
    > .axia-header-socials {
        position: static !important;

        order: 2 !important;

        display: flex !important;
        flex: 0 0 auto !important;

        align-items: center !important;
        justify-content: center !important;

        width: auto !important;
        height: auto !important;

        margin:
            0
            0
            0
            var(--axia-header-nav-social-gap)
            !important;

        padding:
            0
            0
            0
            var(--axia-header-social-inner-gap)
            !important;

        border-left:
            1px solid rgba(72,32,117,.13)
            !important;

        transform: none !important;
    }


    /* Socials wrapped in a Navigation Item. */
    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item:has(.wp-block-social-links),

    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item:has(.axia-header-socials) {
        position: static !important;

        order: 90 !important;

        display: flex !important;
        flex: 0 0 auto !important;

        align-items: center !important;
        justify-content: center !important;

        width: auto !important;

        margin:
            0
            0
            0
            var(--axia-header-nav-social-gap)
            !important;

        padding:
            0
            0
            0
            var(--axia-header-social-inner-gap)
            !important;

        border-left:
            1px solid rgba(72,32,117,.13)
            !important;

        transform: none !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item:has(.wp-block-social-links)
    .wp-block-social-links,

    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item:has(.axia-header-socials)
    .axia-header-socials {
        position: static !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;

        transform: none !important;
    }


    /* ------------------------------------------------------
       CONTACT US
       ------------------------------------------------------ */

    header.wp-block-template-part
    .wp-block-navigation__responsive-container-content
    > .wp-block-buttons,

    header.wp-block-template-part
    .wp-block-navigation__responsive-container-content
    > .axia-header-contact,

    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-buttons,

    header.wp-block-template-part
    .wp-block-navigation__container
    > .axia-header-contact {
        position: static !important;

        order: 3 !important;

        display: flex !important;
        flex: 0 0 auto !important;

        align-items: center !important;
        justify-content: center !important;

        width: auto !important;
        height: auto !important;

        margin:
            0
            0
            0
            var(--axia-header-social-contact-gap)
            !important;

        padding: 0 !important;

        transform: none !important;
    }


    /* Contact wrapped in a Navigation Item. */
    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item:has(.wp-block-buttons),

    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item:has(.axia-header-contact) {
        position: static !important;

        order: 91 !important;

        display: flex !important;
        flex: 0 0 auto !important;

        align-items: center !important;
        justify-content: center !important;

        width: auto !important;

        margin:
            0
            0
            0
            var(--axia-header-social-contact-gap)
            !important;

        padding: 0 !important;

        transform: none !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item:has(.wp-block-buttons)
    .wp-block-buttons,

    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item:has(.axia-header-contact)
    .axia-header-contact {
        position: static !important;

        margin: 0 !important;
        padding: 0 !important;

        transform: none !important;
    }


    /* ------------------------------------------------------
       DESKTOP DROPDOWNS
       ------------------------------------------------------ */

    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item.has-child,

    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-submenu {
        position: relative !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item.has-child
    > .wp-block-navigation__submenu-container,

    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-submenu
    > .wp-block-navigation__submenu-container {
        top: 100% !important;
        left: 50% !important;
        right: auto !important;
        z-index: 120;

        min-width: 245px;
        width: max-content;
        max-width: min(310px, 88vw);

        padding: 9px !important;

        background: #fff !important;

        border: 1px solid rgba(72,32,117,.10) !important;
        border-radius: 14px;

        box-shadow:
            0 18px 44px rgba(45,25,65,.13),
            0 4px 12px rgba(45,25,65,.04);

        transform: translateX(-50%) !important;
    }

}


/* ==========================================================
   MID-DESKTOP — keep the centred row fitting before burger
   ========================================================== */

@media (min-width: 1281px) and (max-width: 1480px) {

    header.wp-block-template-part
    .wp-block-navigation__container {
        gap: 0.375rem;
    }


    header.wp-block-template-part
    .wp-block-navigation__container
    > .wp-block-navigation-item
    > .wp-block-navigation-item__content {
        font-size: clamp(11.8px, .9vw, 13px);
    }


    header.wp-block-template-part
    .wp-block-social-links
    .wp-social-link,

    header.wp-block-template-part
    .axia-header-socials
    .wp-social-link {
        width: 28px;
        height: 28px;
    }


    header.wp-block-template-part
    .wp-block-buttons
    .wp-block-button__link,

    header.wp-block-template-part
    .axia-header-contact
    .wp-block-button__link {
        min-width: 96px;

        padding-inline: 0.75rem;
    }

}

/* ==========================================================
   BURGER WIDTHS — 1280px and below
   .is-compact is intentionally neutralised.
   ========================================================== */

@media (max-width: 1280px) {

    header.wp-block-template-part,
    header.wp-block-template-part.is-compact {
        min-height: var(--axia-header-burger-h);

        border-radius: 0 0 18px 18px;
    }


    header.wp-block-template-part > .wp-block-group {
        position: relative !important;

        display: block !important;

        width: 100% !important;
        min-height: var(--axia-header-burger-h);

        margin: 0 !important;
        padding: 0 !important;
    }


    /* Always-visible centred logo. */
    header.wp-block-template-part .wp-block-site-logo,
    header.wp-block-template-part.is-compact .wp-block-site-logo {
        position: absolute !important;

        top: 50%;
        left: 50%;
        z-index: 100003;

        display: flex !important;

        align-items: center;
        justify-content: center;

        width: auto;
        height: auto;
        max-width: 130px;
        max-height: none;

        margin: 0 !important;
        padding: 0 !important;

        opacity: 1 !important;

        transform: translate(-50%, -50%) !important;

        pointer-events: auto !important;

        overflow: visible;
    }


    /*
     * Larger burger-bar logo without increasing the bar height.
     * Width is fluid, while the existing --axia-header-burger-h stays
     * exactly the same.
     */
    header.wp-block-template-part .wp-block-site-logo img,
    header.wp-block-template-part.is-compact .wp-block-site-logo img {
        width: auto !important;
        height: auto !important;

        max-width:
            clamp(
                108px,
                21vw,
                138px
            )
            !important;

        max-height: 58px !important;

        opacity: 1 !important;

        transform: none !important;

        object-fit: contain;
    }


    header.wp-block-template-part
    .wp-block-navigation,
    header.wp-block-template-part
    .wp-block-navigation__responsive-close,
    header.wp-block-template-part
    .wp-block-navigation__responsive-dialog,
    header.wp-block-template-part
    .wp-block-navigation__responsive-container-content {
        position: static !important;
    }


    header.wp-block-template-part .wp-block-navigation {
        display: block !important;

        width: 100%;
        min-height: var(--axia-header-burger-h);
        height: var(--axia-header-burger-h);

        margin: 0 !important;
    }


    /* Burger — left. */
    header.wp-block-template-part
    .wp-block-navigation__responsive-container-open {
        position: absolute !important;

        top: 50%;
        left: var(--axia-header-gutter-m);
        z-index: 100004;

        display: flex !important;

        align-items: center;
        justify-content: center;

        width: 40px;
        height: 40px;

        margin: 0 !important;
        padding: 0;

        color: var(--axia-header-purple);
        background: rgba(255,255,255,.72);

        border: 1px solid rgba(72,32,117,.08);
        border-radius: 50%;

        box-shadow: 0 2px 8px rgba(72,32,117,.04);

        transform: translateY(-50%) !important;

        cursor: pointer;

        pointer-events: auto !important;
    }


    /*
     * Keep the CLOSED responsive wrapper alive only so
     * Contact Us can remain visible on the right.
     */
    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open),
    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .wp-block-navigation__responsive-close,
    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .wp-block-navigation__responsive-dialog,
    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .wp-block-navigation__responsive-container-content {
        position: static !important;

        display: block !important;

        width: auto !important;
        height: auto !important;

        margin: 0 !important;
        padding: 0 !important;

        background: transparent !important;

        overflow: visible !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .wp-block-navigation__container,
    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .axia-header-socials,
    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .wp-block-navigation__responsive-container-close {
        display: none !important;
    }


    /* Contact Us — right side of closed burger bar. */
    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .axia-header-contact {
        position: absolute !important;

        top: 50%;
        right: var(--axia-header-gutter-m);
        z-index: 100004;

        display: flex !important;
        flex: none !important;

        width: auto !important;
        height: auto !important;
        min-width: 0 !important;
        min-height: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        transform: translateY(-50%);

        pointer-events: auto !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .axia-header-contact .wp-block-button,
    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .axia-header-contact .wp-block-button__link {
        width: auto !important;
        height: auto !important;
        min-width: 0 !important;
        max-width: none !important;

        margin: 0 !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .axia-header-contact .wp-block-button__link {
        min-height: 38px;

        padding:
            8px
            clamp(11px, 2.6vw, 16px);

        font-size: clamp(11px, 2.4vw, 12px);
    }


    /* ======================================================
       OPEN BURGER DRAWER
       ====================================================== */

    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open {
        position: fixed !important;

        inset: 0 !important;
        z-index: 100001 !important;

        display: block !important;

        width: 100vw !important;
        height: 100dvh !important;

        margin: 0 !important;

        padding:
            88px
            clamp(18px, 5vw, 44px)
            34px
            !important;

        background: rgba(238,234,243,.995) !important;

        overflow-y: auto !important;
        overscroll-behavior: contain;

        pointer-events: auto !important;
    }


    body.admin-bar
    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open {
        top: 46px !important;

        height: calc(100dvh - 46px) !important;
    }


    @media (min-width: 783px) {
        body.admin-bar
        header.wp-block-template-part
        .wp-block-navigation__responsive-container.is-menu-open {
            top: 32px !important;

            height: calc(100dvh - 32px) !important;
        }
    }


    /* Logo stays visible over the open drawer. */
    header.wp-block-template-part:has(
        .wp-block-navigation__responsive-container.is-menu-open
    )
    .wp-block-site-logo {
        z-index: 100005;

        opacity: 1 !important;

        pointer-events: auto !important;
    }


    /* Hide burger while drawer is open. */
    header.wp-block-template-part:has(
        .wp-block-navigation__responsive-container.is-menu-open
    )
    .wp-block-navigation__responsive-container-open {
        visibility: hidden !important;

        pointer-events: none !important;
    }


    /* X — top-left. */
    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close {
        position: fixed !important;

        top: 18px !important;
        left: var(--axia-header-gutter-m) !important;
        right: auto !important;
        bottom: auto !important;
        z-index: 100006 !important;

        display: flex !important;

        align-items: center;
        justify-content: center;

        width: 40px;
        height: 40px;

        margin: 0 !important;
        padding: 0 !important;

        color: var(--axia-header-purple);
        background: rgba(255,255,255,.82);

        border: 1px solid rgba(72,32,117,.08);
        border-radius: 50%;

        outline: 0 !important;
        box-shadow: 0 3px 10px rgba(72,32,117,.05);

        cursor: pointer;

        visibility: visible !important;
        opacity: 1 !important;
    }


    body.admin-bar
    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close {
        top: 64px !important;
    }


    /* Contact Us — top-right of drawer. */
    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .axia-header-contact {
        position: fixed !important;

        top: 18px !important;
        right: var(--axia-header-gutter-m) !important;
        left: auto !important;
        bottom: auto !important;
        z-index: 100006 !important;

        display: flex !important;
        flex: none !important;

        align-items: center !important;
        justify-content: center !important;

        width: auto !important;
        height: auto !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-width: none !important;
        max-height: none !important;

        margin: 0 !important;
        padding: 0 !important;

        transform: none !important;

        pointer-events: auto !important;
    }


    body.admin-bar
    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .axia-header-contact {
        top: 64px !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .axia-header-contact .wp-block-button {
        width: auto !important;
        height: auto !important;

        margin: 0 !important;
        padding: 0 !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .axia-header-contact .wp-block-button__link {
        display: inline-flex !important;
        flex: none !important;

        width: auto !important;
        height: auto !important;
        min-width: 0 !important;
        min-height: 40px !important;
        max-width: none !important;
        max-height: 44px !important;

        padding:
            9px
            clamp(12px, 3.2vw, 18px)
            !important;

        color: #fff !important;
        background: var(--axia-header-purple) !important;

        border-color: var(--axia-header-purple) !important;
        border-radius: 999px !important;

        font-size: clamp(11px, 2.8vw, 13px) !important;
        line-height: 1 !important;

        white-space: nowrap !important;
    }


    /* Drawer content. */
    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-close,
    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-dialog {
        position: static !important;

        width: 100% !important;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
        position: static !important;

        display: flex !important;

        flex-direction: column !important;

        align-items: stretch !important;

        width: min(680px, 100%);
        height: auto !important;

        margin: 0 auto;
        padding: 0 !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container {
        position: static !important;

        display: flex !important;

        flex-direction: column !important;
        flex-wrap: nowrap !important;

        align-items: stretch !important;

        width: 100% !important;
        height: auto !important;

        gap: 0;

        margin: 0 !important;
        padding: 0 !important;

        list-style: none;

        pointer-events: auto !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item {
        width: 100%;

        margin: 0 !important;
        padding: 0 !important;

        background: transparent !important;

        border: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item__content {
        display: flex !important;

        align-items: center;
        justify-content: space-between;

        width: 100%;
        min-height: 50px;

        margin: 0;
        padding: 13px 8px;

        color: var(--axia-header-text) !important;
        background: transparent !important;

        border: 0 !important;
        border-bottom: 1px solid rgba(72,32,117,.08) !important;

        outline: 0 !important;
        box-shadow: none !important;

        font-size: 16px;
        font-weight: 650;
        line-height: 1.3;

        text-decoration: none !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item__content::after {
        content: none !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container {
        position: static !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        margin: 0 0 7px !important;
        padding: 2px 0 2px 16px !important;

        background: transparent !important;

        border: 0 !important;
        border-left: 2px solid rgba(117,88,160,.22) !important;
        border-radius: 0;

        box-shadow: none !important;

        transform: none !important;
    }


    /* Socials sit below the menu in the drawer. */
    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .axia-header-socials {
        position: static !important;

        display: flex !important;

        justify-content: flex-start !important;

        width: 100% !important;

        gap: 8px;

        margin: 22px 0 0 !important;
        padding: 20px 8px 0 !important;

        border-top: 1px solid rgba(72,32,117,.12) !important;

        transform: none !important;

        pointer-events: auto !important;
    }

}


/* ==========================================================
   SMALL MOBILE
   ========================================================== */

@media (max-width: 600px) {

    :root {
        --axia-header-gutter-m: 12px;
        --axia-header-burger-h: 72px;
    }


    header.wp-block-template-part .wp-block-site-logo img,
    header.wp-block-template-part.is-compact .wp-block-site-logo img {
        max-width: 118px !important;
        max-height: 54px !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container-open {
        width: 36px;
        height: 36px;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .axia-header-contact .wp-block-button__link {
        min-height: 34px;

        padding: 7px 11px;

        font-size: 11px;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close {
        width: 36px;
        height: 36px;
    }

}


@media (max-width: 390px) {

    :root {
        --axia-header-gutter-m: 9px;
        --axia-header-burger-h: 68px;
    }


    header.wp-block-template-part .wp-block-site-logo img,
    header.wp-block-template-part.is-compact .wp-block-site-logo img {
        max-width: 108px !important;
        max-height: 50px !important;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container-open {
        width: 34px;
        height: 34px;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container:not(.is-menu-open)
    .axia-header-contact .wp-block-button__link {
        min-height: 32px;

        padding: 6px 8px;

        font-size: 10.5px;
    }


    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close {
        width: 34px;
        height: 34px;
    }

}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    header.wp-block-template-part,
    header.wp-block-template-part *,
    header.wp-block-template-part *::before,
    header.wp-block-template-part *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }

}

/* =========================================================
   AXIA GLOBAL BUTTONS
   ========================================================= */
.axia-buttons {
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px;
    justify-content: flex-start !important;
}
.axia-buttons .wp-block-button {
    margin: 0 !important;
}
.axia-buttons .wp-block-button__link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 0 !important;
    padding: 14px 24px !important;
    background: #17201e !important;
    color: #ffffff !important;
    border: 1px solid #17201e !important;
    border-radius: 999px !important;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: none !important;
    white-space: nowrap;
    transition:
        transform 180ms ease,
        background-color 180ms ease,
        color 180ms ease,
        opacity 180ms ease;
}
.axia-buttons .wp-block-button__link:hover {
    transform: translateY(-2px);
    background: #ffffff !important;
    color: #17201e !important;
    opacity: 1;
}
.axia-buttons .wp-block-button__link:focus-visible {
    outline: 2px solid #17201e;
    outline-offset: 4px;
}
/* MOBILE */
@media (max-width: 600px) {
    .axia-buttons .wp-block-button__link {
        padding: 13px 21px !important;
        font-size: 0.92rem;
    }
    .axia-preassessment__actions {
        width: 100% !important;
    }
    .axia-preassessment__actions .wp-block-button {
        width: 100% !important;
    }
    .axia-preassessment__actions .wp-block-button__link {
        width: 100% !important;
        white-space: normal !important;
        text-align: center;
    }
}

/* ==========================================================
   AXIA FOOTER â€” CLEAN CONSOLIDATED CSS
   Replaces the entire previous footer CSS block.
   Structure expected:
   footer.wp-block-template-part
   â””â”€â”€ .axia-footer
       â”œâ”€â”€ .axia-footer__inner
       â”‚   â””â”€â”€ .axia-footer__main.wp-block-columns
       â”‚       â”œâ”€â”€ .axia-footer__brand
       â”‚       â”œâ”€â”€ .axia-footer__column.axia-footer__assessments
       â”‚       â”œâ”€â”€ .axia-footer__column.axia-footer__resources
       â”‚       â””â”€â”€ .axia-footer__column.axia-footer__posts
       â””â”€â”€ .axia-footer__bottom (optional)
   ========================================================== */


/* ==========================================================
   TOKENS â€” MATCH CURRENT AXIA HEADER
   ========================================================== */

:root {
    --axia-footer-bg: #eeeaf3;
    --axia-footer-purple: #482075;
    --axia-footer-purple-mid: #7558a0;
    --axia-footer-text: #292232;
    --axia-footer-max: 1600px;
}


/* ==========================================================
   FOOTER / PAGE RESET
   ========================================================== */

html,
body {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    overflow-x: clip;
}

.wp-site-blocks {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    row-gap: 0 !important;
}

footer.wp-block-template-part {
    position: relative;
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: visible;
    box-sizing: border-box;
}

footer.wp-block-template-part * {
    box-sizing: border-box;
}


/* ==========================================================
   FULL-WIDTH FOOTER SHELL
   The Gutenberg group can stay inside TT5's layout.
   This pseudo-element creates the true viewport-width
   background without shifting the footer content.
   ========================================================== */

footer.wp-block-template-part .axia-footer {
    position: relative;
    isolation: isolate;
    width: 100%;
    max-width: none !important;
    margin: 0 !important;

    padding:
        clamp(52px, 5vw, 76px)
        clamp(20px, 3vw, 40px)
        clamp(44px, 4vw, 60px) !important;

    color: var(--axia-footer-text);
    background: transparent !important;
}


/* Exact header lilac/glass background + exact white swoops */

footer.wp-block-template-part .axia-footer::before {
    content: "";
    position: absolute;

    top: 0;
    bottom: 0;
    left: 50%;

    z-index: 0;

    width: 100vw;

    transform: translateX(-50%);

    pointer-events: none;

    background:
        radial-gradient(
            ellipse 620px 160px at 26% -68px,
            transparent 68.5%,
            rgba(255, 255, 255, 0.58) 69%,
            rgba(255, 255, 255, 0.58) 69.7%,
            transparent 70.2%
        ),
        radial-gradient(
            ellipse 720px 150px at 73% 132px,
            transparent 67.8%,
            rgba(255, 255, 255, 0.34) 68.4%,
            rgba(255, 255, 255, 0.34) 69%,
            transparent 69.6%
        ),
        linear-gradient(
            180deg,
            rgba(238, 234, 243, 0.96) 0%,
            rgba(238, 234, 243, 0.88) 100%
        );

    background-repeat: no-repeat;

    border-top: 1px solid rgba(255, 255, 255, 0.48);

    box-shadow:
        0 -10px 30px rgba(36, 19, 55, 0.09);

    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}


/* Keep actual footer content above the full-width layer */

footer.wp-block-template-part .axia-footer > * {
    position: relative;
    z-index: 1;
}


/* ==========================================================
   INNER CONTENT WRAPPER
   ========================================================== */

footer.wp-block-template-part .axia-footer__inner {
    display: block !important;

    width: 100% !important;
    max-width: var(--axia-footer-max) !important;

    margin: 0 auto !important;
    padding: 0 !important;

    background: transparent !important;
}


/* ==========================================================
   MAIN FOUR-COLUMN GRID
   ========================================================== */

footer.wp-block-template-part
.axia-footer__main.wp-block-columns {
    display: grid !important;

    grid-template-columns:
        minmax(260px, 1.18fr)
        minmax(210px, 0.95fr)
        minmax(220px, 0.95fr)
        minmax(290px, 1.25fr) !important;

    align-items: start !important;

    gap: clamp(38px, 4vw, 72px) !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* Remove Gutenberg flex sizing from the Column blocks */

footer.wp-block-template-part
.axia-footer__main.wp-block-columns
> .wp-block-column {
    display: block !important;

    flex: none !important;
    flex-basis: auto !important;

    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
}


/* Prevent narrow WordPress column rules causing character wrapping */

footer.wp-block-template-part .axia-footer__main h3,
footer.wp-block-template-part .axia-footer__main p,
footer.wp-block-template-part .axia-footer__main li,
footer.wp-block-template-part .axia-footer__main a {
    word-break: normal !important;
    overflow-wrap: break-word;
    hyphens: none;
}


/* ==========================================================
   BRAND COLUMN
   ========================================================== */

footer.wp-block-template-part .axia-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
}


/* Logo */

footer.wp-block-template-part
.axia-footer__brand
.wp-block-site-logo {
    width: auto;
    margin: 0 0 4px !important;
    padding: 0 !important;
}

footer.wp-block-template-part
.axia-footer__brand
.wp-block-site-logo a {
    display: block;
    line-height: 0;
}

footer.wp-block-template-part
.axia-footer__brand
.wp-block-site-logo img {
    display: block;

    width: auto !important;
    height: auto !important;

    max-width: clamp(140px, 11vw, 175px) !important;
    max-height: 72px !important;

    margin: 0;
    object-fit: contain;
}


/* Brand copy / contact details */

footer.wp-block-template-part
.axia-footer__brand p {
    width: 100%;
    max-width: 340px;

    margin: 0 !important;

    color: rgba(41, 34, 50, 0.76);

    font-size: 15px;
    line-height: 1.58;
}


/* Email remains a normal text link â€” never a pill/button */

footer.wp-block-template-part
.axia-footer__brand a[href^="mailto:"] {
    display: inline !important;

    min-width: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    color: var(--axia-footer-purple) !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    font: inherit !important;
    font-weight: 600 !important;

    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;

    transform: none !important;
}

footer.wp-block-template-part
.axia-footer__brand a[href^="mailto:"]:hover,
footer.wp-block-template-part
.axia-footer__brand a[href^="mailto:"]:focus-visible {
    color: var(--axia-footer-purple-mid) !important;
    background: transparent !important;
    transform: none !important;
}


/* ==========================================================
   COLUMN HEADINGS
   Direct footer selector + real background line.
   This does not rely on ::after or on axia-footer__main
   being present in the live Gutenberg markup.
   ========================================================== */

footer.wp-block-template-part .axia-footer h3,
footer.wp-block-template-part .axia-footer h3.wp-block-heading {
    display: block !important;

    width: fit-content !important;
    max-width: 100% !important;

    margin: 0 0 20px !important;
    padding: 0 0 13px !important;

    color: var(--axia-footer-purple) !important;

    font-size: clamp(17px, 1vw, 19px) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;

    /*
     * The underline is painted into the heading itself instead
     * of using ::after, so theme pseudo-element rules cannot
     * remove it.
     */
    background-image:
        linear-gradient(
            var(--axia-footer-purple-mid),
            var(--axia-footer-purple-mid)
        ) !important;

    background-repeat: no-repeat !important;
    background-position: left bottom !important;
    background-size: 32px 2px !important;
}


/* Explicitly neutralise any older/footer heading pseudo-elements. */

footer.wp-block-template-part .axia-footer h3::after,
footer.wp-block-template-part .axia-footer h3.wp-block-heading::after {
    content: none !important;
    display: none !important;
}


/* ==========================================================
   ASSESSMENT LINKS
   ========================================================== */

footer.wp-block-template-part
.axia-footer__assessments ul {
    display: flex;
    flex-direction: column;
    gap: 9px;

    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;
}

footer.wp-block-template-part
.axia-footer__assessments li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

footer.wp-block-template-part
.axia-footer__assessments li::marker {
    content: "";
}

footer.wp-block-template-part
.axia-footer__assessments a {
    display: inline-block;

    color: rgba(41, 34, 50, 0.76) !important;

    font-size: 14px;
    font-weight: 550;
    line-height: 1.5;

    text-decoration: none !important;

    transition:
        color 180ms ease,
        transform 180ms ease;
}

footer.wp-block-template-part
.axia-footer__assessments a:hover,
footer.wp-block-template-part
.axia-footer__assessments a:focus-visible {
    color: var(--axia-footer-purple) !important;
    transform: translateX(3px);
}


/* ==========================================================
   RESOURCES NAVIGATION
   Keep this footer Menu visible as a vertical list at all sizes.
   ========================================================== */

footer.wp-block-template-part
.axia-footer__resources .wp-block-navigation {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
}


/* Never show a burger inside the footer */

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation__responsive-container-open,

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation__responsive-container-close {
    display: none !important;
}


/* Keep WordPress responsive wrappers open/static */

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation__responsive-container,

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation__responsive-container:not(.is-menu-open),

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation__responsive-close,

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation__responsive-dialog,

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation__responsive-container-content {
    position: static !important;

    display: block !important;

    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    color: inherit !important;
    background: transparent !important;

    overflow: visible !important;
}


/* Resource list */

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation__container {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;

    gap: 9px !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
}

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation-item {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation-item__content {
    display: inline-block !important;

    width: auto !important;
    padding: 0 !important;

    color: rgba(41, 34, 50, 0.76) !important;

    font-size: 14px !important;
    font-weight: 550 !important;
    line-height: 1.5 !important;

    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word;

    text-decoration: none !important;

    transition:
        color 180ms ease,
        transform 180ms ease;
}

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation-item__content:hover,

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation-item__content:focus-visible {
    color: var(--axia-footer-purple) !important;
    transform: translateX(3px);
}


/* ==========================================================
   LATEST POSTS
   ========================================================== */

footer.wp-block-template-part
.axia-footer__post-list {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;
}

footer.wp-block-template-part
.axia-footer__post-list li {
    margin: 0 0 10px !important;
    padding: 0 !important;
    list-style: none !important;
}

footer.wp-block-template-part
.axia-footer__post-list li:last-child {
    margin-bottom: 0 !important;
}

footer.wp-block-template-part
.axia-footer__post-list li::marker {
    content: "";
}

footer.wp-block-template-part
.axia-footer__post-list a {
    display: inline-block;

    color: rgba(41, 34, 50, 0.76) !important;

    font-size: 14px;
    font-weight: 550;
    line-height: 1.5;

    white-space: normal !important;
    word-break: normal !important;

    text-decoration: none !important;

    transition:
        color 180ms ease,
        transform 180ms ease;
}

footer.wp-block-template-part
.axia-footer__post-list a:hover,
footer.wp-block-template-part
.axia-footer__post-list a:focus-visible {
    color: var(--axia-footer-purple) !important;
    transform: translateX(3px);
}


/* ==========================================================
   SMALL AXIA POLISH
   ========================================================== */

/* Keep list/link columns visually quiet and aligned. */
footer.wp-block-template-part
.axia-footer__assessments,
footer.wp-block-template-part
.axia-footer__resources,
footer.wp-block-template-part
.axia-footer__posts {
    position: relative;
}

/* Slightly clearer hover without turning footer links into buttons. */
footer.wp-block-template-part
.axia-footer__assessments a:hover,
footer.wp-block-template-part
.axia-footer__resources .wp-block-navigation-item__content:hover,
footer.wp-block-template-part
.axia-footer__post-list a:hover {
    text-decoration: none !important;
}


/* ==========================================================
   LINK COLUMN ROW ALIGNMENT + SINGLE-LINE ELLIPSIS
   Keeps Assessments, Resources and Latest Posts on the same
   visual row rhythm. Long text truncates with "â€¦".
   ========================================================== */

/* Shared row rhythm for the three link-based footer columns. */

footer.wp-block-template-part
.axia-footer__assessments ul,

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation__container,

footer.wp-block-template-part
.axia-footer__post-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-rows: 30px !important;

    gap: 0 !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* Each row uses the exact same height. */

footer.wp-block-template-part
.axia-footer__assessments li,

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation-item,

footer.wp-block-template-part
.axia-footer__post-list li {
    display: flex !important;
    align-items: center !important;

    width: 100% !important;
    min-width: 0 !important;
    height: 30px !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
}


/* Every link stays to one line and truncates cleanly. */

footer.wp-block-template-part
.axia-footer__assessments a,

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation-item__content,

footer.wp-block-template-part
.axia-footer__post-list a {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    overflow: hidden !important;

    white-space: nowrap !important;
    text-overflow: ellipsis !important;

    line-height: 30px !important;
}


/* Keep hover movement from being clipped awkwardly. */

footer.wp-block-template-part
.axia-footer__assessments a:hover,

footer.wp-block-template-part
.axia-footer__resources
.wp-block-navigation-item__content:hover,

footer.wp-block-template-part
.axia-footer__post-list a:hover {
    transform: none !important;
}


/* On stacked mobile, retain the single-line treatment but give
   each item a touch more vertical breathing room. */

@media (max-width: 700px) {

    footer.wp-block-template-part
    .axia-footer__assessments ul,

    footer.wp-block-template-part
    .axia-footer__resources
    .wp-block-navigation__container,

    footer.wp-block-template-part
    .axia-footer__post-list {
        grid-auto-rows: 32px !important;
    }

    footer.wp-block-template-part
    .axia-footer__assessments li,

    footer.wp-block-template-part
    .axia-footer__resources
    .wp-block-navigation-item,

    footer.wp-block-template-part
    .axia-footer__post-list li {
        height: 32px !important;
    }

    footer.wp-block-template-part
    .axia-footer__assessments a,

    footer.wp-block-template-part
    .axia-footer__resources
    .wp-block-navigation-item__content,

    footer.wp-block-template-part
    .axia-footer__post-list a {
        line-height: 32px !important;
    }

}


/* ==========================================================
   FOCUS STATES
   ========================================================== */

footer.wp-block-template-part
.axia-footer a:focus-visible {
    outline: 2px solid var(--axia-footer-purple);
    outline-offset: 3px;
    border-radius: 3px;
}


/* ==========================================================
   OPTIONAL COPYRIGHT / LEGAL ROW
   ========================================================== */

footer.wp-block-template-part
.axia-footer__bottom {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;

    gap: 14px 28px;

    width: 100%;
    max-width: var(--axia-footer-max);

    margin: clamp(38px, 4vw, 58px) auto 0 !important;
    padding: 20px 0 0 !important;

    background: transparent !important;
    border-top: 1px solid rgba(72, 32, 117, 0.12);
}

footer.wp-block-template-part
.axia-footer__bottom p {
    margin: 0 !important;

    color: rgba(41, 34, 50, 0.62);

    font-size: 13px;
    line-height: 1.5;
}

footer.wp-block-template-part
.axia-footer__bottom a {
    color: rgba(41, 34, 50, 0.68) !important;
    text-decoration: none !important;
}

footer.wp-block-template-part
.axia-footer__bottom a:hover,
footer.wp-block-template-part
.axia-footer__bottom a:focus-visible {
    color: var(--axia-footer-purple) !important;
}


/* ==========================================================
   TABLET â€” 2 Ã— 2
   ========================================================== */

@media (max-width: 1100px) {

    footer.wp-block-template-part .axia-footer {
        padding:
            50px
            clamp(22px, 5vw, 42px)
            42px !important;
    }

    footer.wp-block-template-part
    .axia-footer__main.wp-block-columns {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap:
            46px
            clamp(36px, 7vw, 70px) !important;
    }

    footer.wp-block-template-part
    .axia-footer__brand p {
        max-width: 380px;
    }

}


/* ==========================================================
   MOBILE â€” 1 COLUMN
   ========================================================== */

@media (max-width: 700px) {

    footer.wp-block-template-part .axia-footer {
        padding:
            44px
            22px
            36px !important;
    }

    footer.wp-block-template-part
    .axia-footer__main.wp-block-columns {
        grid-template-columns:
            minmax(0, 1fr) !important;

        gap: 34px !important;
    }

    footer.wp-block-template-part
    .axia-footer__brand p {
        max-width: 520px;
    }

    footer.wp-block-template-part
    .axia-footer__main h3 {
        margin-bottom: 16px !important;
    }

    footer.wp-block-template-part
    .axia-footer__bottom {
        flex-direction: column;
        align-items: flex-start;

        margin-top: 36px !important;
        padding-top: 18px !important;
    }

}


/* ==========================================================
   SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

    footer.wp-block-template-part .axia-footer {
        padding:
            40px
            18px
            32px !important;
    }

    footer.wp-block-template-part
    .axia-footer__brand
    .wp-block-site-logo img {
        max-width: 140px !important;
        max-height: 58px !important;
    }

    footer.wp-block-template-part
    .axia-footer__brand p {
        font-size: 14px;
        line-height: 1.6;
    }

}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    footer.wp-block-template-part .axia-footer *,
    footer.wp-block-template-part .axia-footer *::before,
    footer.wp-block-template-part .axia-footer *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }

}

/* ==========================================================
   AXIA PLAIN CONTENT TEMPLATE
   ----------------------------------------------------------
   Add this class to the outer Group in the template:

   axia-plain-content

   Expected structure:

   axia-plain-content
   ├── Post Title
   └── Post Content

   Typography:
   - Headings: Inter Tight
   - Body: DM Sans
   ========================================================== */


/* ==========================================================
   PAGE WRAPPER
   ========================================================== */

.axia-plain-content {
    width:
        min(
            calc(100% - 2rem),
            1200px
        );

    margin-inline: auto;

    padding:
        clamp(3rem, 5vw, 5rem)
        0
        clamp(4.5rem, 7vw, 7rem);
}


/* ==========================================================
   PAGE TITLE / H1
   ========================================================== */

.axia-plain-content
> .wp-block-post-title,

.axia-plain-content
.wp-block-post-content h1 {
    width: 100%;
    max-width: 950px;

    margin:
        0
        auto
        clamp(2.25rem, 4vw, 3.25rem);

    color:
        var(
            --axia-purple,
            #482075
        );

    font-family:
        "Inter Tight",
        "Helvetica Neue",
        Helvetica,
        Arial,
        sans-serif;

    font-size:
        clamp(
            2.8rem,
            5vw,
            4.5rem
        );

    font-style: normal;
    font-weight: 700;

    line-height: 0.96;

    letter-spacing: -0.05em;

    text-align: center;

    text-wrap: balance;
}


/* ==========================================================
   POST CONTENT WRAPPER
   ========================================================== */

.axia-plain-content
.wp-block-post-content {
    width: 100%;
    max-width: 900px;

    margin:
        0
        auto
        !important;

    padding: 0 !important;

    color:
        var(
            --axia-text,
            #302b35
        );
}


/* ==========================================================
   BODY COPY
   ========================================================== */

.axia-plain-content
.wp-block-post-content p,

.axia-plain-content
.wp-block-post-content li {
    font-family:
        "DM Sans",
        Arial,
        sans-serif;

    font-size:
        clamp(
            1.0625rem,
            0.25vw + 1rem,
            1.1875rem
        );

    font-weight: 400;

    line-height: 1.68;

    letter-spacing: -0.012em;
}


.axia-plain-content
.wp-block-post-content p {
    margin:
        0
        0
        1.4rem;
}


/* ==========================================================
   HEADINGS
   ========================================================== */

.axia-plain-content
.wp-block-post-content h2,

.axia-plain-content
.wp-block-post-content h3,

.axia-plain-content
.wp-block-post-content h4,

.axia-plain-content
.wp-block-post-content h5,

.axia-plain-content
.wp-block-post-content h6 {
    color:
        var(
            --axia-purple,
            #482075
        );

    font-family:
        "Inter Tight",
        "Helvetica Neue",
        Helvetica,
        Arial,
        sans-serif;

    font-style: normal;
    font-weight: 700;

    text-wrap: balance;
}


/* H2 */

.axia-plain-content
.wp-block-post-content h2 {
    margin:
        clamp(3.25rem, 5vw, 4.5rem)
        0
        1rem;

    font-size:
        clamp(
            2rem,
            3vw,
            2.8rem
        );

    line-height: 1;

    letter-spacing: -0.045em;
}


/* H3 */

.axia-plain-content
.wp-block-post-content h3 {
    margin:
        2.75rem
        0
        0.85rem;

    font-size:
        clamp(
            1.5rem,
            2vw,
            1.9rem
        );

    line-height: 1.08;

    letter-spacing: -0.035em;
}


/* H4 */

.axia-plain-content
.wp-block-post-content h4 {
    margin:
        2.25rem
        0
        0.7rem;

    font-size:
        clamp(
            1.2rem,
            1.5vw,
            1.45rem
        );

    line-height: 1.15;

    letter-spacing: -0.025em;
}


/* H5 / H6 */

.axia-plain-content
.wp-block-post-content h5,

.axia-plain-content
.wp-block-post-content h6 {
    margin:
        2rem
        0
        0.65rem;

    font-size: 1.125rem;

    line-height: 1.2;
}


/* ==========================================================
   LISTS
   ========================================================== */

.axia-plain-content
.wp-block-post-content ul,

.axia-plain-content
.wp-block-post-content ol {
    margin:
        0.75rem
        0
        1.8rem;

    padding-left: 1.6rem;
}


.axia-plain-content
.wp-block-post-content li {
    padding-left: 0.15rem;
}


.axia-plain-content
.wp-block-post-content li + li {
    margin-top: 0.55rem;
}


.axia-plain-content
.wp-block-post-content li::marker {
    color:
        var(
            --axia-purple-mid,
            #7558a0
        );

    font-weight: 700;
}


/* ==========================================================
   LINKS
   ========================================================== */

.axia-plain-content
.wp-block-post-content a {
    color:
        var(
            --axia-purple,
            #482075
        );

    font-weight: 600;

    text-decoration-line: underline;

    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.16em;

    transition:
        color 160ms ease,
        text-decoration-color 160ms ease;
}


.axia-plain-content
.wp-block-post-content a:hover {
    color:
        var(
            --axia-purple-mid,
            #7558a0
        );
}


/* ==========================================================
   HORIZONTAL RULE
   ========================================================== */

.axia-plain-content
.wp-block-post-content hr {
    margin:
        2.75rem
        0;

    border: 0;

    border-top:
        1px solid
        var(
            --axia-border,
            rgba(72, 32, 117, 0.14)
        );
}


/* ==========================================================
   BLOCKQUOTES
   ========================================================== */

.axia-plain-content
.wp-block-post-content blockquote {
    margin:
        2.25rem
        0;

    padding:
        1.25rem
        1.5rem;

    background:
        var(
            --axia-purple-soft,
            #f4f0f8
        );

    border-left:
        4px solid
        var(
            --axia-purple-mid,
            #7558a0
        );

    border-radius:
        0
        12px
        12px
        0;
}


.axia-plain-content
.wp-block-post-content blockquote p {
    margin-bottom: 1rem;
}


.axia-plain-content
.wp-block-post-content blockquote p:last-child {
    margin-bottom: 0;
}


/* ==========================================================
   TABLES
   ========================================================== */

.axia-plain-content
.wp-block-post-content .wp-block-table {
    width: 100%;

    margin:
        2rem
        0;

    overflow-x: auto;
}


.axia-plain-content
.wp-block-post-content table {
    width: 100%;

    border-collapse: collapse;

    font-family:
        "DM Sans",
        Arial,
        sans-serif;

    font-size: 1rem;
    line-height: 1.5;
}


.axia-plain-content
.wp-block-post-content th,

.axia-plain-content
.wp-block-post-content td {
    padding:
        0.85rem
        1rem;

    vertical-align: top;

    text-align: left;

    border:
        1px solid
        var(
            --axia-border,
            rgba(72, 32, 117, 0.14)
        );
}


.axia-plain-content
.wp-block-post-content th {
    color:
        var(
            --axia-purple,
            #482075
        );

    background:
        var(
            --axia-purple-soft,
            #f4f0f8
        );

    font-weight: 700;
}


/* ==========================================================
   IMAGES / MEDIA
   ========================================================== */

.axia-plain-content
.wp-block-post-content
.wp-block-image {
    margin:
        2rem
        0;
}


.axia-plain-content
.wp-block-post-content img {
    display: block;

    max-width: 100%;
    height: auto;

    border-radius: 14px;
}


.axia-plain-content
.wp-block-post-content figcaption {
    margin-top: 0.65rem;

    color: rgba(48, 43, 53, 0.72);

    font-family:
        "DM Sans",
        Arial,
        sans-serif;

    font-size: 0.9rem;

    line-height: 1.5;
}


/* ==========================================================
   BUTTONS
   ========================================================== */

.axia-plain-content
.wp-block-post-content
.wp-block-button__link {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 44px;

    padding:
        0.75rem
        1.25rem;

    color: #ffffff !important;

    background:
        var(
            --axia-purple,
            #482075
        )
        !important;

    border-radius: 999px;

    font-family:
        "DM Sans",
        Arial,
        sans-serif;

    font-weight: 700;

    text-decoration: none !important;

    transition:
        transform 160ms ease,
        background-color 160ms ease;
}


.axia-plain-content
.wp-block-post-content
.wp-block-button__link:hover {
    background:
        var(
            --axia-purple-mid,
            #7558a0
        )
        !important;

    transform: translateY(-1px);
}


/* ==========================================================
   EMBEDS
   ========================================================== */

.axia-plain-content
.wp-block-post-content iframe {
    max-width: 100%;

    border-radius: 14px;
}


/* ==========================================================
   FIRST / LAST ELEMENT CLEANUP
   ========================================================== */

.axia-plain-content
.wp-block-post-content
> :first-child {
    margin-top: 0;
}


.axia-plain-content
.wp-block-post-content
> :last-child {
    margin-bottom: 0;
}


/* ==========================================================
   TABLET / MOBILE
   ========================================================== */

@media (max-width: 781px) {

    .axia-plain-content {
        width:
            calc(
                100% - 1.5rem
            );

        padding:
            2.75rem
            0
            4.5rem;
    }


    .axia-plain-content
    > .wp-block-post-title,

    .axia-plain-content
    .wp-block-post-content h1 {
        max-width: 100%;

        margin-bottom: 2.25rem;

        font-size:
            clamp(
                2.5rem,
                12vw,
                3.6rem
            );

        line-height: 0.97;

        letter-spacing: -0.045em;
    }


    .axia-plain-content
    .wp-block-post-content h2 {
        margin-top: 2.75rem;

        font-size:
            clamp(
                1.9rem,
                9vw,
                2.5rem
            );
    }


    .axia-plain-content
    .wp-block-post-content h3 {
        margin-top: 2.25rem;

        font-size:
            clamp(
                1.45rem,
                7vw,
                1.85rem
            );
    }


    .axia-plain-content
    .wp-block-post-content p,

    .axia-plain-content
    .wp-block-post-content li {
        font-size: 1.0625rem;

        line-height: 1.62;
    }


    .axia-plain-content
    .wp-block-post-content ul,

    .axia-plain-content
    .wp-block-post-content ol {
        padding-left: 1.35rem;
    }


    .axia-plain-content
    .wp-block-post-content th,

    .axia-plain-content
    .wp-block-post-content td {
        padding:
            0.7rem
            0.8rem;
    }

}


/* ==========================================================
   SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

    .axia-plain-content {
        width:
            calc(
                100% - 1.25rem
            );

        padding:
            2.25rem
            0
            4rem;
    }


    .axia-plain-content
    > .wp-block-post-title,

    .axia-plain-content
    .wp-block-post-content h1 {
        font-size:
            clamp(
                2.25rem,
                12vw,
                3rem
            );
    }


    .axia-plain-content
    .wp-block-post-content p,

    .axia-plain-content
    .wp-block-post-content li {
        font-size: 1rem;

        line-height: 1.62;
    }

}
/* =========================================================
   AXIA — GLOBAL RESPONSIVE YOUTUBE EMBEDS
   ---------------------------------------------------------
   Handles:
   - Gutenberg YouTube embeds
   - old pasted <iframe width="560" height="315">
   - youtube.com/embed
   - youtube-nocookie.com/embed
   ========================================================= */

.wp-block-embed-youtube,
.wp-block-embed-youtube .wp-block-embed__wrapper,
figure.wp-block-embed-youtube,
iframe[src*="youtube.com/embed"],
iframe[src*="youtube-nocookie.com/embed"] {
    box-sizing: border-box;
    max-width: 100% !important;
}


/* Gutenberg wrapper */
.wp-block-embed-youtube,
figure.wp-block-embed-youtube {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}


/*
 * WordPress sometimes creates a wrapper around the iframe.
 * Give that wrapper a proper responsive video ratio.
 */
.wp-block-embed-youtube .wp-block-embed__wrapper {
    position: relative;

    width: 100% !important;
    max-width: 100% !important;

    aspect-ratio: 16 / 9;

    overflow: hidden;
}


/* Actual YouTube player */
iframe[src*="youtube.com/embed"],
iframe[src*="youtube-nocookie.com/embed"] {
    display: block;

    width: 100% !important;
    max-width: 100% !important;

    height: auto !important;
    aspect-ratio: 16 / 9;

    margin-left: auto !important;
    margin-right: auto !important;

    border: 0;
}


/*
 * If the iframe is inside Gutenberg's responsive wrapper,
 * make it fill that wrapper exactly.
 */
.wp-block-embed-youtube .wp-block-embed__wrapper
iframe[src*="youtube.com"],
.wp-block-embed-youtube .wp-block-embed__wrapper
iframe[src*="youtube-nocookie.com"] {
    position: absolute;

    inset: 0;

    width: 100% !important;
    height: 100% !important;

    aspect-ratio: auto;
}


/* Extra protection for smaller screens */
@media (max-width: 781px) {

    .wp-block-embed-youtube,
    .wp-block-embed-youtube .wp-block-embed__wrapper,
    iframe[src*="youtube.com/embed"],
    iframe[src*="youtube-nocookie.com/embed"] {
        width: 100% !important;
        max-width: 100% !important;

        min-width: 0 !important;

        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}