/*
Theme Name: Panda Systems on Full Supertree Theme
Theme URI: https://www.pandasystems.org
Author: Panda Systems
Description: Panda Systems corporate and product website, using the shared Supertree/Adeco component system and Graphite Cherry identity.
Version: 1.0.0
Text Domain: wpsupertree-theme
*/

:root {
  color-scheme: light;
  /* Brand palette — see Supertree_Brandbook.pdf p.14 and skill/brand. */
  /* Primary */
  --wps-white: #fff;            /* Brandbook: White (bg color 1) */
  --wps-light-gray: #f2f2f2;    /* Brandbook: Light Gray (bg color 2) */
  --wps-purple-bold: #855ce8;   /* Brandbook: Bold Purple — predominant primary (color 3) */
  --wps-purple: #a678ff;        /* Brandbook: Purple (color 4) */
  /* Secondary accents */
  --wps-teal: #33cc99;          /* Brandbook: Energized Teal */
  --wps-green-deep: #2bab80;    /* Brandbook: Green */
  --wps-coral: #ff6666;         /* Brandbook: Vibrant Coral */
  --wps-red: #d64848;           /* Brandbook: Red */
  /* Neutrals */
  --wps-black: #000;            /* Brandbook: Black — text only, never as background */
  --wps-text: #272626;
  --wps-text-soft: #6c6a6a;
  --wps-line: #e8e8e8;

  /* Backwards-compatible aliases used across the existing theme.
     Do not remove without migrating every consumer. */
  --wps-soft: var(--wps-light-gray);
  --wps-purple-deep: var(--wps-purple-bold);
  --wps-purple-ink: #423687;    /* Local extension, not in brandbook. */
  --wps-green: var(--wps-teal);
  --wps-shell: min(106rem, calc(100% - 2rem));
  --wps-radius-pill: 10rem;
  --wps-radius-xl: 1.875rem;
  --wps-radius-lg: 1.25rem;
  --wps-radius-md: 1rem;
  --wps-shadow: 0 24px 80px rgba(35, 35, 35, 0.08);
  --wps-type-display-size: 5rem;
  --wps-type-display-line: 6rem;
  --wps-type-display-subtitle-size: 2rem;
  --wps-type-display-subtitle-line: normal;
  --wps-type-section-title-size: 3rem;
  --wps-type-section-title-line: 4rem;
  --wps-type-section-title-gap: 0.75rem;
  --wps-type-section-subtitle-size: 1.5rem;
  --wps-type-section-subtitle-line: normal;
  --wps-type-card-title-lg-size: 2rem;
  --wps-type-card-title-lg-line: 2.25rem;
  --wps-type-card-title-md-size: 1.75rem;
  --wps-type-card-title-md-line: 1.9rem;
  --wps-type-body-md-size: 1rem;
  --wps-type-body-md-line: 1.4;
  --wps-type-footer-size: 1rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 0.87vw;
  scroll-behavior: smooth;
}

/* "Book a Tour" CTAs scroll to the on-page booking form; offset for the fixed header. */
#book-tour-form {
  scroll-margin-top: 120px;
}

@media (max-width: 1200px) {
  html {
    font-size: 1.2vw;
  }
}

@media (max-width: 900px) {
  html {
    font-size: 1.9vw;
  }
}

@media (max-width: 767px) {
  :root {
    --wps-type-section-title-size: 1.875rem;
    --wps-type-section-title-line: 1.2;
    --wps-type-section-subtitle-size: 1rem;
    --wps-type-section-subtitle-line: 1.35;
  }

  html {
    font-size: 3.8vw;
  }
}

body {
  margin: 0;
  min-width: 320px;
  font-family: "Manrope", sans-serif;
  color: var(--wps-text);
  background: var(--wps-white);
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-synthesis: none;
}

body.sidebar-open,
body.popup-open {
  overflow: hidden;
}

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

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  font: inherit;
}

button {
  cursor: pointer;
}

iframe {
  border: 0;
}

input,
textarea {
  width: 100%;
  padding: 1rem 1.125rem;
  border: 0;
  border-radius: 1rem;
  background: var(--wps-white);
  color: var(--wps-text);
  outline: none;
}

input::placeholder,
textarea::placeholder {
  color: #8a8a8a;
}

textarea {
  min-height: 160px;
  resize: vertical;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-shell {
  width: var(--wps-shell);
  margin: 0 auto;
}

.navigation-target {
  position: relative;
  top: -6rem;
  display: block;
  visibility: hidden;
}

.atom-title {
  max-width: 62rem;
  margin-bottom: 3rem;
}

.atom-title .overline {
  margin-bottom: 0.75rem;
  color: var(--wps-coral);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1rem;
  letter-spacing: 0.125rem;
}

.atom-title h2,
.atom-title h3 {
  margin: 0;
}

.atom-title h2 {
  margin-bottom: var(--wps-type-section-title-gap);
  font-size: var(--wps-type-section-title-size);
  font-weight: 300;
  line-height: var(--wps-type-section-title-line);
  letter-spacing: 0;
}

.atom-title h3 {
  margin-top: 0;
  color: var(--wps-text);
  font-size: var(--wps-type-section-subtitle-size);
  font-weight: 400;
  line-height: var(--wps-type-section-subtitle-line);
}

.atom-title h2:empty,
.atom-title h3:empty {
  display: none;
}

@media (max-width: 767px) {
  .atom-title h2 {
    font-size: var(--wps-type-section-title-size);
    line-height: var(--wps-type-section-title-line);
  }

  .atom-title h3 {
    font-size: var(--wps-type-section-subtitle-size);
    line-height: var(--wps-type-section-subtitle-line);
  }
}

.atom-title--center {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.atom-title--inverse h2,
.atom-title--inverse h3 {
  color: var(--wps-white);
}

.site-header {
  position: fixed;
  top: 0.625rem;
  left: 0.625rem;
  z-index: 40;
  pointer-events: none;
}

.site-header .site-shell {
  width: auto;
  margin: 0;
}

.site-menu-bar {
  display: inline-flex;
  max-width: none;
  padding: 0.625rem 1.5rem 0.625rem 1rem;
  border-radius: var(--wps-radius-pill);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 0 0.063rem 0.063rem #f7f7f7;
  pointer-events: auto;
}

.site-menu-bar__content {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.site-menu-bar__brand {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.site-menu-trigger {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.188rem;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(2, 2, 2, 0.04);
}

.site-menu-trigger span {
  display: block;
  width: 1.5rem;
  height: 2px;
  background: var(--wps-black);
  border-radius: 999px;
}

.site-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 2rem;
  min-height: 3.25rem;
}

.site-logo img {
  display: block;
  max-height: 2.3rem;
}

.site-desktop-nav {
  display: block;
}

.site-desktop-nav__list {
  display: flex;
  align-items: center;
  gap: 0.125rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-desktop-nav__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.5rem;
  padding: 0.5rem;
  border-radius: 0.188rem;
  color: #020202;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.063rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition:
    background-color 180ms ease,
    color 180ms ease;
}

.site-desktop-nav__link:hover,
.site-desktop-nav__link:focus-visible {
  color: var(--wps-white);
  background-color: var(--wps-purple-deep);
}

.site-sidebar {
  position: fixed;
  inset: 0;
  z-index: 60;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 220ms ease,
    visibility 220ms ease;
}

body.sidebar-open .site-sidebar {
  opacity: 1;
  visibility: visible;
}

.site-sidebar__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(22, 18, 35, 0.48);
  backdrop-filter: blur(4px);
}

.site-sidebar__panel {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  bottom: 1.5rem;
  width: min(34rem, calc(100vw - 3rem));
  padding: 1.5rem;
  border-radius: 2rem;
  background: var(--wps-white);
  transform: translateX(-2rem);
  transition: transform 220ms ease;
}

body.sidebar-open .site-sidebar__panel {
  transform: translateX(0);
}

.site-sidebar__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 3.75rem 1rem 1rem;
}

.site-sidebar__close {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--wps-soft);
}

.site-sidebar__close span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.1rem;
  height: 2px;
  background: var(--wps-black);
  border-radius: 999px;
}

.site-sidebar__close span:first-child {
  transform: translate(-50%, -50%) rotate(45deg);
}

.site-sidebar__close span:last-child {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.site-sidebar__label {
  margin-bottom: 1.5rem;
  color: var(--wps-coral);
  font-size: 0.875rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.site-sidebar__menu {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-sidebar__menu li {
  margin: 0;
  padding: 0;
}

.site-sidebar__link {
  font-size: clamp(1.65rem, 5vw, 2.85rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.06em;
}

.site-sidebar__socials {
  margin-top: auto;
  display: grid;
  gap: 0.75rem;
  padding-top: 2rem;
}

.site-sidebar__socials a {
  font-size: 1rem;
  color: var(--wps-purple-ink);
}

.section-our-services,
.section-pricing,
.section-benefits,
.section-coworking,
.section-support,
.section-app,
.section-mentorship,
.section-gallery,
.section-about-us,
.section-contact,
.section-location,
.standard-page__hero {
  padding-bottom: 6.75rem;
}

.section-main {
  position: relative;
  box-sizing: border-box;
  min-height: 100svh;
  height: 100svh;
  display: flex;
  align-items: center;
  padding: 7.5rem 4.75rem 2.5rem;
  background: var(--wps-purple);
  color: var(--wps-white);
  overflow: hidden;
}

.section-main__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 70rem;
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.section-main__background-logo {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  opacity: 0.1;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
}

.section-main__copy {
  position: relative;
  width: 100%;
  max-width: 70rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  transform: none;
}

.section-main h1 {
  margin: 0;
  font-size: var(--wps-type-display-size);
  font-weight: 400;
  line-height: var(--wps-type-display-line);
  letter-spacing: 0;
}

.section-main p {
  max-width: 68rem;
  margin: 3rem 0 6rem;
  font-size: var(--wps-type-display-subtitle-size);
  line-height: 1.35;
}

@media (max-width: 767px) {
  .site-desktop-nav {
    display: none;
  }

  .site-menu-trigger {
    display: inline-flex;
  }

  .site-header {
    top: 0.625rem;
    left: 0.625rem;
    right: 0.625rem;
  }

  .site-header .site-shell {
    width: 100%;
  }

  .site-menu-bar {
    width: calc(100vw - 1.25rem);
    padding: 0.188rem 1.25rem 0.188rem 0.5rem;
  }

  .site-menu-bar__content {
    position: relative;
    width: 100%;
    min-height: 3.25rem;
  }

  .site-menu-bar__brand {
    width: 100%;
  }

  .site-logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    min-height: 100%;
  }

  .section-main {
    min-height: 100svh;
    height: 100svh;
    display: flex;
    align-items: center;
    padding: 7rem 1rem 2.5rem;
  }

  .section-main__content {
    width: 100%;
    height: 100%;
  }

  .section-main__copy {
    transform: none;
  }

  .section-main h1 {
    margin-bottom: 1.5rem;
    font-size: 2.25rem;
    font-weight: 400;
    line-height: 1.4;
  }

  .section-main p {
    margin: 1.125rem 0 2.5rem;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: normal;
  }

  .section-main__background-logo {
    width: min(42rem, 90vw);
    transform: translate(-50%, -42%);
  }
}

.section-our-services,
.section-pricing,
.section-benefits,
.section-coworking,
.section-support,
.section-app,
.section-mentorship,
.section-about-us,
.section-contact,
.section-location {
  background: var(--wps-white);
}

.section-our-services {
  padding-top: 0;
}

.section-our-services .site-shell {
  margin-top: 6rem;
}

.section-our-services .atom-title {
  max-width: 87rem;
  margin: 0 auto 4.75rem;
  text-align: center;
}

.our-services-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5rem;
  width: 100%;
  max-width: 87rem;
  margin: 0 auto;
}

.our-services-box {
  position: relative;
  min-height: 25rem;
  padding: 2.5rem 2.188rem 1.875rem;
  border-radius: 1.25rem;
  background-position: center;
  background-size: cover;
  overflow: hidden;
}

.section-our-services .box-overlay {
  position: absolute;
  inset: 0;
  border-radius: 1.25rem;
  background-color: rgba(0, 0, 0, 0.5);
}

.section-our-services .box-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  height: 100%;
  align-items: center;
  text-align: center;
  color: var(--wps-white);
}

.section-our-services .box-title {
  margin-bottom: 1.875rem;
  font-size: 3rem;
  font-weight: 800;
  line-height: 3.063rem;
  letter-spacing: 0;
}

.section-our-services .box-text {
  flex-grow: 1;
  max-width: 19rem;
  margin-top: 0;
  font-size: 1rem;
  line-height: 1.4;
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
  max-width: 76rem;
  margin: 0 auto;
}

.pricing-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 2px solid var(--wps-soft);
  border-radius: 1.25rem;
  overflow: hidden;
  background: var(--wps-white);
}

.section-pricing .site-shell,
.section-benefits .site-shell,
.section-coworking .site-shell,
.section-support .site-shell,
.section-mentorship .site-shell,
.section-contact .site-shell,
.site-footer .site-shell {
  width: min(80rem, calc(100% - 2rem));
}

.section-pricing .atom-title,
.section-benefits .atom-title,
.section-coworking .atom-title,
.section-support .atom-title,
.section-app .atom-title,
.section-contact .atom-title,
.section-location .atom-title {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.section-pricing .atom-title {
  max-width: 62rem;
  margin-bottom: 5.75rem;
}

.section-benefits .atom-title {
  max-width: 62rem;
  margin-bottom: 7rem;
}

.section-coworking .atom-title {
  max-width: 62rem;
  margin-bottom: 5.5rem;
}

.section-support .atom-title {
  max-width: 62rem;
  margin-bottom: 4.313rem;
}

.section-about-us .atom-title {
  max-width: 49rem;
  margin: 0 auto;
  text-align: center;
}

.section-location .atom-title {
  max-width: 49rem;
  margin-bottom: 2.5rem;
}

.section-pricing .atom-title h2,
.section-benefits .atom-title h2,
.section-coworking .atom-title h2,
.section-support .atom-title h2,
.section-app .atom-title h2,
.section-mentorship .atom-title h2,
.section-about-us .atom-title h2,
.section-contact .atom-title h2,
.section-location .atom-title h2 {
  color: var(--wps-black);
  margin-bottom: var(--wps-type-section-title-gap);
  font-size: var(--wps-type-section-title-size);
  font-weight: 700;
  line-height: var(--wps-type-section-title-line);
  letter-spacing: 0;
}

.section-pricing .atom-title h3,
.section-benefits .atom-title h3,
.section-coworking .atom-title h3,
.section-support .atom-title h3,
.section-app .atom-title h3,
.section-mentorship .atom-title h3,
.section-about-us .atom-title h3,
.section-contact .atom-title h3,
.section-location .atom-title h3 {
  color: var(--wps-black);
  font-size: var(--wps-type-section-subtitle-size);
  line-height: var(--wps-type-section-subtitle-line);
}

.pricing-card:has(.pricing-badge) {
  margin-top: 2.4rem;
  overflow: visible;
}

.pricing-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: -2px;
  top: -2.4rem;
  width: calc(100% + 4px);
  margin: 0;
  padding: 0.438rem 1.5rem;
  border: 2px solid var(--wps-purple);
  border-radius: 1.25rem 1.25rem 0 0;
  background: var(--wps-purple);
  color: var(--wps-white);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.125rem;
  text-transform: uppercase;
}

.pricing-header {
  padding: 1.125rem 1.75rem;
  background: var(--wps-white);
}

.pricing-icon {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  height: 8rem;
  width: auto;
  margin-bottom: 0.438rem;
}

.pricing-icon img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.pricing-title-text {
  color: var(--wps-purple);
  font-size: var(--wps-type-card-title-lg-size);
  font-weight: 800;
  line-height: var(--wps-type-card-title-lg-line);
  letter-spacing: 0;
  margin-bottom: 0.5rem;
}

.pricing-subtitle-text {
  margin-top: 0;
  margin-bottom: 0.7rem;
  color: var(--wps-black);
  font-size: var(--wps-type-body-md-size);
  line-height: var(--wps-type-body-md-line);
}

.pricing-price {
  margin-top: 0;
}

.price-amount {
  font-size: 2.25rem;
  font-weight: 400;
  line-height: 1;
  color: var(--wps-black);
}

.price-period {
  display: inline-block;
  margin-left: 0.25rem;
  font-size: var(--wps-type-body-md-size);
  line-height: 1.375rem;
  color: var(--wps-black);
}

.pricing-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.625rem 1.75rem;
  border-radius: 1.25rem;
  background: var(--wps-soft);
}

.pricing-body-title {
  margin-bottom: 1.5rem;
  font-size: 1.125rem;
  font-weight: 800;
  line-height: 1.25rem;
}

.pricing-features {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 2rem;
}

.pricing-feature {
  font-size: var(--wps-type-body-md-size);
  line-height: 1.75rem;
}

.pricing-feature strong {
  font-weight: 800;
}

.pricing-button-wrapper {
  margin-top: auto;
  padding-top: 0;
  text-align: center;
}

.pricing-more {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7rem 2.5rem;
}

.benefit-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  min-height: auto;
  padding: 0;
  text-align: center;
}

.benefit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 8rem;
  height: 8rem;
}

.benefit-icon img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.benefit-title {
  color: var(--wps-purple-deep);
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.75rem;
}

.accordion-section {
  display: grid;
  gap: 0;
  margin-bottom: 4.75rem;
}

.accordion-item {
  margin-bottom: 3rem;
  border-radius: 0;
  background: transparent;
  overflow: hidden;
}

.accordion-item:last-child {
  margin-bottom: 0;
}

.accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  padding: 0 0 0.625rem;
  border: 0;
  border-bottom: 1px solid var(--wps-black);
  margin-bottom: 1.5rem;
  background: transparent;
  text-align: left;
}

.accordion-title {
  color: var(--wps-purple);
  font-size: 2.25rem;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0;
}

.accordion-icon {
  position: relative;
  flex: 0 0 3rem;
  width: 3rem;
  height: 3rem;
}

.accordion-plus,
.accordion-minus {
  position: absolute;
  inset: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--wps-black);
  font-size: 3rem;
  font-weight: 300;
  transition: opacity 180ms ease;
}

.accordion-item.expanded .accordion-plus {
  opacity: 0;
}

.accordion-item:not(.expanded) .accordion-minus {
  opacity: 0;
}

.accordion-panel {
  padding: 0;
}

.accordion-text {
  max-width: none;
  color: var(--wps-black);
  font-size: 1.25rem;
  line-height: 1.5;
}

.checkboxes-section {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem 2rem;
  margin-top: 0;
  margin-bottom: 3.5rem;
}

.checkbox-content {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
}

.checkbox-icon {
  flex: 0 0 1.25rem;
  margin-top: 0.25rem;
}

.checkbox-icon img {
  width: 1.25rem;
  height: 1.25rem;
}

.checkbox-title {
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.5rem;
  text-transform: uppercase;
}

.button-section {
  display: flex;
  justify-content: center;
  margin-top: 0;
}

.support-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}

.support-card {
  min-height: 15rem;
  padding: 2rem;
  border-radius: 1.875rem;
  background: var(--wps-soft);
}

.support-card__title {
  color: var(--wps-purple);
  font-size: var(--wps-type-card-title-md-size);
  font-weight: 800;
  line-height: var(--wps-type-card-title-md-line);
  letter-spacing: 0;
}

.support-card__text {
  margin-top: 2.625rem;
  font-size: 1rem;
  line-height: 1.4;
}

.section-app .button-section {
  justify-content: center;
}

.section-app .atom-title {
  max-width: 49rem;
  margin-bottom: 2.5rem;
}

.mentorship-box {
  padding: 3.75rem 5.75rem;
  border-radius: 1.875rem;
  background: var(--wps-soft);
}

.mentorship-box__header {
  margin-bottom: 6.563rem;
  text-align: center;
}

.mentorship-box__content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(4rem, 8vw, 11rem);
}

.section-mentorship .atom-title {
  max-width: 60rem;
  margin: 0 auto;
}

.section-mentorship .atom-title h2,
.mentorship-card__title {
  color: var(--wps-green);
}

.mentorship-box__left p {
  margin: 0 0 1.5rem;
  color: var(--wps-black);
  font-size: 1.5rem;
  line-height: 1.28;
}

.mentorship-box__left p:last-child {
  margin-bottom: 0;
}

.mentorship-box__left strong {
  font-size: inherit;
  font-weight: 800;
}

.mentorship-box__right {
  display: flex;
  flex-direction: column;
  gap: 4.8rem;
}

.mentorship-card {
  display: grid;
  grid-template-columns: minmax(0, 11.5rem) 1fr;
  gap: 3rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
}

.mentorship-card__title {
  font-size: var(--wps-type-card-title-md-size);
  font-weight: 800;
  line-height: var(--wps-type-card-title-md-line);
}

.mentorship-card__text {
  margin-top: 0;
  font-size: 1rem;
  line-height: 1.4;
}

.section-gallery {
  padding-bottom: 5rem;
}

.gallery-shell {
  position: relative;
}

.gallery-stage {
  position: relative;
}

.gallery-track {
  position: relative;
}

.gallery-slide {
  margin: 0 0 0.75rem;
}

.gallery-slide__image {
  position: relative;
  height: 37.5rem;
  overflow: hidden;
  background: var(--wps-black);
}

.gallery-slide__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery-arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
  transform: translateY(-50%);
}

.gallery-arrow:hover,
.gallery-arrow:focus-visible {
  background: var(--wps-white);
  box-shadow: var(--wps-shadow);
}

.gallery-arrow--prev {
  left: 2rem;
}

.gallery-arrow--next {
  right: 2rem;
}

.gallery-arrow span {
  font-size: 1.2rem;
  font-weight: 700;
}

.gallery-thumbs {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(6rem, 1fr);
  gap: 0.2rem;
  overflow-x: auto;
  scrollbar-width: none;
}

.gallery-thumbs::-webkit-scrollbar {
  display: none;
}

.gallery-thumb {
  padding: 0;
  border: 0;
  background: transparent;
  opacity: 0.7;
  transition: opacity 180ms ease, transform 180ms ease;
}

.gallery-thumb img {
  display: block;
  width: 100%;
  height: 5.5rem;
  object-fit: cover;
}

.gallery-thumb:hover,
.gallery-thumb:focus-visible,
.gallery-thumb.is-active {
  opacity: 1;
  transform: translateY(-1px);
}

.contact-box {
  max-width: 80rem;
  margin: 0 auto;
  padding: 3.75rem 5.75rem;
  border-radius: 1.875rem;
  background: var(--wps-soft);
}

.contact-header {
  text-align: center;
  margin-bottom: 4.375rem;
}

.contact-header .atom-title {
  max-width: none;
  margin-bottom: 0;
}

.contact-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.5rem;
  margin-bottom: 2.5rem;
}

.contact-form__column {
  display: grid;
  gap: 1.625rem;
}

.contact-form__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-top: 1.875rem;
}

.contact-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  flex: 1;
  max-width: none;
  font-size: 1rem;
  line-height: 1.3;
}

.contact-checkbox .wpcf7-form-control-wrap,
.contact-checkbox .wpcf7-form-control,
.contact-checkbox .wpcf7-list-item {
  display: block;
  margin: 0;
}

.contact-checkbox label {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.contact-checkbox input {
  width: 0.938rem;
  height: 0.938rem;
  margin: 0.125rem 0 0;
  padding: 0;
}

.contact-checkbox a {
  text-decoration: underline;
}

.contact-box .wpcf7-response-output {
  margin: 1.5rem 0 0;
  padding: 0.875rem 1rem;
  border-radius: 1rem;
  font-size: 0.95rem;
}

.contact-box .wpcf7-not-valid-tip {
  margin-top: 0.5rem;
  font-size: 0.85rem;
}

.contact-box .wpcf7-spinner {
  margin: 0 0 0 0.75rem;
}

.contact-box .input-wrapper p {
  margin: 0;
}

.contact-box .input-wrapper input,
.contact-box .input-wrapper textarea {
  height: 4rem;
  padding: 1rem 1.25rem;
  border-radius: 1rem;
  background: var(--wps-white);
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.05);
  color: var(--wps-black);
}

.contact-box .input-wrapper textarea {
  min-height: 6.25rem;
  max-height: 6.25rem;
  resize: none;
}

.contact-popup {
  position: fixed;
  inset: 0;
  z-index: 80;
}

.contact-popup[hidden] {
  display: none;
}

.contact-popup__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}

.contact-popup__panel {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(28rem, calc(100vw - 2rem));
  padding: 2rem;
  border-radius: 2rem;
  background: var(--wps-white);
  text-align: center;
  transform: translate(-50%, -50%);
}

.contact-popup__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--wps-soft);
  font-size: 1.5rem;
}

.contact-popup__panel h3 {
  margin: 1rem 0 1.5rem;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.04em;
}

.location-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 24rem);
  grid-template-areas: "map sidebar";
  gap: 1rem;
  width: var(--wps-shell);
  margin: 0 auto;
}

.location-cover {
  min-height: 36rem;
  border-radius: var(--wps-radius-xl);
  background-position: center;
  background-size: cover;
  overflow: hidden;
}

.location-cover--compact {
  min-height: auto;
  aspect-ratio: 1 / 1;
}

.location-cover__gradient {
  display: flex;
  align-items: flex-end;
  height: 100%;
  padding: 2rem;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.62));
}

.section-location .location-cover .atom-title h2,
.section-location .location-cover .atom-title h3 {
  color: var(--wps-white);
}

.location-map {
  grid-area: map;
  min-height: 36rem;
  overflow: hidden;
}

.location-map iframe {
  width: 100%;
  height: 100%;
  min-height: 36rem;
}

.location-sidebar {
  grid-area: sidebar;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 36rem;
  padding: 1.5rem;
  border-radius: var(--wps-radius-xl);
  background: var(--wps-soft);
}

.location-sidebar__groups {
  display: grid;
  gap: 0.9rem;
}

.location-group {
  border-radius: 1.35rem;
  background: var(--wps-white);
  overflow: hidden;
}

.location-group__header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
}

.location-group__trigger {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}

.location-group__title {
  font-size: 1.05rem;
  font-weight: 700;
}

.location-group__icon {
  position: relative;
  width: 1.5rem;
  height: 1.5rem;
}

.location-group__icon::before,
.location-group__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1rem;
  height: 2px;
  background: var(--wps-purple-ink);
  transform: translate(-50%, -50%);
}

.location-group__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.location-group.is-open .location-group__icon::after {
  opacity: 0;
}

.location-group__tabs {
  display: inline-flex;
  gap: 0.45rem;
}

.location-tab {
  min-width: 3.3rem;
  padding: 0.45rem 0.65rem;
  border: 0;
  border-radius: 999px;
  background: var(--wps-soft);
  color: var(--wps-text);
  font-size: 0.82rem;
  font-weight: 700;
}

.location-tab.is-active {
  background: var(--wps-purple);
  color: var(--wps-white);
}

.location-group__panel {
  padding: 0 1rem 1rem;
}

.location-routes {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.location-route {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.85rem 0.95rem;
  border-radius: 1rem;
  background: var(--wps-soft);
}

.location-route__name {
  font-size: 0.94rem;
  font-weight: 700;
  line-height: 1.35;
}

.location-route__meta {
  color: var(--wps-text-soft);
  font-size: 0.88rem;
}

.location-sidebar__footer {
  margin-top: auto;
}

.location-sidebar__footer .location-cover__gradient {
  padding: 1.4rem;
}

.location-sidebar__footer .atom-title {
  margin-bottom: 0;
}

.location-sidebar__footer .atom-title h2 {
  font-size: 1.4rem;
}

.location-sidebar__footer .atom-title h3 {
  font-size: 0.92rem;
  line-height: 1.35;
}

.location-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: calc(100% - 64px);
  margin: 0 auto 1rem;
  padding: 1rem 1.25rem;
  border: 0;
  border-radius: 1rem;
  background: var(--wps-soft);
  color: var(--wps-purple-ink);
  font-weight: 700;
}

.location-toggle__hide {
  display: none;
}

.location-sidebar-open .location-toggle__show {
  display: none;
}

.location-sidebar-open .location-toggle__hide {
  display: inline;
}

.site-footer {
  padding: 4rem 0 1.25rem;
  background: var(--wps-purple-deep);
  color: var(--wps-white);
}

.site-footer__content {
  display: grid;
  grid-template-columns: 0.7fr 1.35fr 0.85fr 0.8fr 0.7fr;
  gap: 1.5rem;
  padding: 0;
}

.site-footer__column--logo {
  display: flex;
  align-items: flex-start;
}

.site-footer__logo img {
  width: auto;
  max-width: 7rem;
  max-height: 7rem;
}

.site-footer__info-item + .site-footer__info-item {
  margin-top: 2.5rem;
}

.site-footer__info-title {
  margin-bottom: 0.5rem;
  font-size: var(--wps-type-footer-size);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.site-footer__info-text {
  font-size: var(--wps-type-footer-size);
  font-weight: 200;
  line-height: 1.4;
  opacity: 0.9;
}

.site-footer__links {
  display: grid;
  gap: 1rem;
}

.site-footer__link {
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: 100%;
  font-size: var(--wps-type-footer-size);
  font-weight: 200;
  opacity: 0.9;
  transition: transform 180ms ease;
}

.site-footer__link:hover,
.site-footer__link:focus-visible {
  transform: translateX(5px);
}

.site-footer__links--badges {
  gap: 0.75rem;
}

.site-footer__link--badge:hover,
.site-footer__link--badge:focus-visible {
  transform: none;
}

.site-footer__badge {
  width: 100%;
  max-width: 11rem;
}

.standard-page,
.standard-post,
.standard-archive {
  padding: 0 0 5rem;
  background: var(--wps-soft);
}

.standard-page__hero {
  position: relative;
  min-height: 92vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding-top: 100px;
  padding-bottom: 0;
  background: linear-gradient(160deg, #8B5CF6 0%, #9b6ffb 40%, #a07dfb 60%, #8B5CF6 100%);
  color: var(--wps-white);
}

.standard-page__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: radial-gradient(ellipse at 30% 0%, rgba(255, 255, 255, 0.14) 0%, transparent 55%);
  pointer-events: none;
}

.standard-page__hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 80px 80px;
}

.standard-page__hero-eyebrow {
  display: inline-block;
  margin: 0 0 24px;
  padding: 8px 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--wps-radius-pill);
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px !important;
  font-weight: 700;
  letter-spacing: 2px;
  line-height: 1.45;
  text-transform: uppercase;
}

.standard-page__hero h1 {
  max-width: 22.5ch;
  margin: 0 0 22px;
  color: var(--wps-white);
  font-size: 56px !important;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-wrap: balance;
}

.standard-page__hero-subtitle {
  max-width: 50ch;
  margin: 0 0 36px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 18px;
  line-height: 175%;
  text-wrap: pretty;
}

.standard-page__hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.standard-page__hero-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 40px;
  border-radius: 50px;
  font-size: 16px !important;
  font-weight: 500;
  line-height: 1.2;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.standard-page__hero-button:hover {
  transform: translateY(-2px);
}

.standard-page__hero-button--primary {
  background: var(--wps-white);
  color: #1a1a2e;
}

.standard-page__hero-button--primary:hover {
  background: #f0f0f0;
  box-shadow: 0 8px 32px rgba(255, 255, 255, 0.2);
}

.standard-page__hero-button--secondary {
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: var(--wps-white);
}

.standard-page__hero-button--secondary:hover {
  background: var(--wps-white);
  color: #1a1a2e;
}

.standard-page__background-logo {
  position: absolute;
  right: -7%;
  top: 50%;
  z-index: 1;
  width: auto;
  height: 92%;
  object-fit: contain;
  object-position: center;
  opacity: 0.035;
  filter: brightness(0) invert(1);
  pointer-events: none;
  transform: translateY(-50%);
}

.standard-page__content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 4rem;
  background: transparent;
}

.standard-page--default:has(.standard-page__content > .cta-section:last-child),
.standard-page__content:has(> .cta-section:last-child),
.standard-page--content-only:has(> .cta-section:last-child),
.standard-page:has(> .cta-section:last-child) {
  padding-bottom: 0;
}

/* Same problem, other closing block. .standard-page carries a light-grey
   background and both it and .standard-page__content pad the bottom, which is
   invisible while a page ends on a light band. End on band--dark (the
   Ambassador page) and those two paddings become a ~112px light gutter
   between the dark band and the dark footer, which reads as a rendering bug.
   Page-agnostic on purpose: any page closing on a dark band gets this. */
.standard-page--default:has(.standard-page__content > .band--dark:last-child),
.standard-page__content:has(> .band--dark:last-child),
.standard-page--content-only:has(> .band--dark:last-child),
.standard-page:has(> .band--dark:last-child) {
  padding-bottom: 0;
}

.standard-page__content > :where(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, table, figure:not(.wp-block-image), .wp-block-buttons, .wp-block-details) {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 80px;
  padding-right: 80px;
}

.standard-page__content > *:first-child {
  margin-top: 0;
}

.post-thumbnail {
  margin: 0 0 2rem;
  border-radius: var(--wps-radius-xl);
  overflow: hidden;
  line-height: 0;
}

.post-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
}

.standard-page__content > *:last-child {
  margin-bottom: 0;
}

.standard-page__content h2,
.standard-page__content h3,
.standard-page__content h4 {
  color: var(--wps-purple);
  line-height: 1.15;
}

.standard-page__content h2 {
  font-size: 2rem;
}

.standard-page__content h3 {
  font-size: 1.75rem;
}

.standard-page__content h4 {
  font-size: 1.5rem;
}

/* :where() keeps this at specificity (0,0,1) on purpose. At (0,1,1) it beat
   every single-class component rule (.benefit-desc, .ba-hero__sub, .stat-label,
   .compare-note, .kids-hero-sub and friends), so those components silently
   rendered at 1rem instead of their declared px. Because the root font-size is
   fluid (html { font-size: 0.87vw }) that landed around 11-13px and read as a
   bug, not a choice. Plain unclassed paragraphs still fall through to 1rem, so
   prose pages are unchanged; anything carrying a component class now gets the
   size that component asked for. Do not re-raise this specificity. 2026-08-19 */
:where(.standard-page__content) p,
:where(.standard-page__content) li {
  font-size: 1rem;
  line-height: 1.7;
}

.standard-page__content ul {
  padding-left: 1.25rem;
}


[hidden] {
  display: none !important;
}

@media (max-width: 1200px) {
  .pricing-grid,
  .support-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .location-layout {
    grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
  }

  .location-sidebar {
    grid-column: 1 / -1;
    min-height: auto;
  }

  .site-footer__content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 960px) {
  :root {
    --wps-shell: calc(100% - 32px);
  }

  .section-our-services,
  .section-pricing,
  .section-benefits,
  .section-coworking,
  .section-support,
  .section-app,
  .section-mentorship,
  .section-gallery,
  .section-about-us,
  .section-contact,
  .section-location,
  .standard-page__hero {
    padding-bottom: 5rem;
  }

  .our-services-grid,
  .checkboxes-section,
  .contact-form__grid,
  .mentorship-box {
    grid-template-columns: 1fr;
  }

  .benefits-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .standard-page__hero {
    min-height: auto;
    padding-top: 120px;
    padding-bottom: 60px;
  }

  .standard-page__hero-inner {
    padding-left: 40px;
    padding-right: 40px;
  }

  .standard-page__content > :where(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, table, figure:not(.wp-block-image), .wp-block-buttons, .wp-block-details) {
    padding-left: 40px;
    padding-right: 40px;
  }

  .standard-page__hero-inner {
    padding-top: 20px;
    padding-bottom: 40px;
  }

  .standard-page__hero h1 {
    font-size: 42px !important;
  }

  .section-pricing .atom-title,
  .section-benefits .atom-title,
  .section-coworking .atom-title,
  .section-support .atom-title,
  .section-contact .atom-title,
  .section-location .atom-title {
    margin-bottom: 4rem;
  }

  .section-our-services .atom-title {
    margin-bottom: 3.125rem;
  }

  .section-our-services .site-shell {
    margin-top: 2rem;
  }

  .our-services-grid {
    max-width: none;
    gap: 4.375rem;
  }

  .our-services-box {
    min-height: auto;
    padding: 2rem 1.5rem;
  }

  .section-our-services .box-title {
    margin-bottom: 0.85rem;
    font-size: 1.9rem;
    line-height: 1.16;
  }

  .section-our-services .box-text {
    font-size: 1.07rem;
    line-height: 1.4;
  }

  .pricing-subtitle-text,
  .pricing-feature,
  .support-card__text,
  .mentorship-card__text,
  .contact-checkbox,
  .contact-box .input-wrapper input,
  .contact-box .input-wrapper textarea {
    font-size: 0.82rem;
    line-height: 1.4;
  }

  .pricing-body-title,
  .checkbox-title {
    font-size: 0.9rem;
    line-height: 1.18;
  }

  .support-grid,
  .pricing-grid {
    grid-template-columns: 1fr;
  }

  .pricing-card:has(.pricing-badge) {
    margin-top: 2.5rem;
  }

  .pricing-header,
  .pricing-body,
  .contact-box {
    padding-left: 1.875rem;
    padding-right: 1.875rem;
  }

  .pricing-grid {
    gap: 1.5rem;
  }

  .benefits-grid {
    gap: 4.375rem;
  }

  .benefit-card {
    gap: 1rem;
  }

  .benefit-icon {
    height: 6rem;
    flex-basis: 6rem;
  }

  .accordion-section {
    margin-bottom: 3.75rem;
  }

  .accordion-title {
    font-size: 1.2rem;
    line-height: 1.12;
  }

  .accordion-icon {
    width: 2.5rem;
    height: 2.5rem;
    flex-basis: 2.5rem;
  }

  .accordion-plus,
  .accordion-minus {
    font-size: 2.5rem;
  }

  .accordion-text {
    font-size: 0.98rem;
    line-height: 1.4;
  }

  .checkboxes-section {
    gap: 1.625rem;
    margin-bottom: 2.5rem;
  }

  .support-card {
    min-height: auto;
  }

  .support-card__title {
    font-size: 1.05rem;
    line-height: 1.18;
  }

  .support-card__text {
    margin-top: 1.25rem;
  }

  .mentorship-box {
    padding: 1.875rem 1.25rem 3rem;
  }

  .mentorship-box__header {
    margin-bottom: 3.125rem;
  }

  .mentorship-box__content {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .mentorship-box__left p {
    font-size: 0.98rem;
    line-height: 1.38;
  }

  .mentorship-box__right {
    gap: 3rem;
  }

  .mentorship-card {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .mentorship-card__title {
    font-size: 1.05rem;
    line-height: 1.18;
  }

  .mentorship-card__text {
    font-size: 1.2rem;
    line-height: 1.4;
  }

  .contact-header {
    margin-bottom: 3.125rem;
  }

  .gallery-slide__image {
    height: 28rem;
  }

  .gallery-thumbs {
    grid-auto-columns: 8rem;
  }

  .gallery-thumb img {
    height: 4.375rem;
  }

  .location-layout {
    display: block;
    width: 100%;
  }

  .location-toggle {
    display: flex;
    width: var(--wps-shell);
    margin: 0 auto 1rem;
  }

  .location-map {
    width: var(--wps-shell);
    margin: 0 auto 1rem;
    min-height: 26rem;
  }

  .location-map iframe {
    min-height: 26rem;
  }

  .location-sidebar {
    width: var(--wps-shell);
    margin: 0 auto;
    display: none;
  }

  .location-cover--compact {
    min-height: 18rem;
  }

  .location-sidebar-open .location-sidebar {
    display: flex;
  }

  .contact-form__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 720px) {
  .standard-page__content h2 {
    font-size: 1.45rem;
    line-height: 1.12;
  }

  .standard-page__content h3 {
    font-size: 1.25rem;
    line-height: 1.18;
  }

  .standard-page__content h4 {
    font-size: 1.08rem;
    line-height: 1.22;
  }

  /* Same reasoning as the base rule above: keep it at (0,0,1) so component
     classes still win at this breakpoint. */
  :where(.standard-page__content) p,
  :where(.standard-page__content) li {
    font-size: 0.88rem;
    line-height: 1.6;
  }

  .site-sidebar__link {
    font-size: clamp(1.2rem, 4.2vw, 1.9rem);
  }

  .site-sidebar__socials a,
  .site-sidebar__label {
    font-size: 0.88rem;
  }

  .site-sidebar__panel {
    top: 0.75rem;
    left: 0.75rem;
    right: 0.75rem;
    bottom: 0.75rem;
    width: auto;
  }

  .our-services-box,
  .location-cover,
  .location-map iframe {
    min-height: 22rem;
  }

  .contact-box,
  .mentorship-box {
    width: calc(100% - 2rem);
    padding: 1.25rem 0;
  }

  .pricing-header,
  .pricing-body {
    padding: 1.25rem;
  }

  .pricing-icon {
    height: 6rem;
    margin-bottom: 1rem;
  }

  .price-amount {
    font-size: 2rem;
  }

  .benefit-title {
    font-size: 0.98rem;
    line-height: 1.24;
  }

  .gallery-arrow {
    width: 1.875rem;
    height: 1.875rem;
  }

  .gallery-arrow--prev {
    left: 0.625rem;
  }

  .gallery-arrow--next {
    right: 0.625rem;
  }

  .gallery-slide__image {
    height: 22rem;
  }

  .gallery-thumbs {
    grid-auto-columns: 6.5rem;
    gap: 0.25rem;
  }

  .gallery-thumb img {
    height: 3.5rem;
  }

  .site-footer {
    padding-top: 4rem;
  }

  .site-footer__content {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 0 0 2rem;
  }
}

/* =============================================
   GLOBAL NAV + FOOTER (added 2026-05-05)
   Ported from Supertree HTML drafts. Used by header.php / footer.php.
============================================= */

/* CSS tokens used by the new nav/footer */
:root {
  --st-bg-primary: #f6f5f8;
  --st-bg-dark: #1a1a2e;
  --st-bg-footer: #161628;
  --st-text-heading: #1a1a2e;
  --st-text-body: #4a4a5a;
  --st-purple: #a78bfa;
  --st-purple-hover: #8b5cf6;
  --st-max-width: 1200px;
}

/* Buttons used by nav CTA */
.nav .btn-primary,
.nav .btn-small {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--st-purple);
  color: #fff !important;
  padding: 12px 28px;
  border-radius: 50px;
  font-weight: 500 !important;
  font-size: 14px !important;
  line-height: 120%;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  border: none;
  cursor: pointer;
  text-decoration: none !important;
}
.nav .btn-primary:hover {
  background: var(--st-purple-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(139, 92, 246, 0.3);
}

/* NAV — fixed, transparent over hero, scrolled bg on scroll */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: transparent;
  transition: background 0.3s ease, backdrop-filter 0.3s ease, border-color 0.3s ease;
  border-bottom: 1px solid transparent;
}
.nav.scrolled {
  background: rgba(246, 245, 248, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom-color: rgba(0, 0, 0, 0.06);
}
.nav-inner {
  max-width: var(--st-max-width);
  margin: 0 auto;
  padding: 16px 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.nav-logo img { height: 68px; width: auto; display: block; }
.nav .nav-logo .logo-dark { display: none; }
.nav .nav-logo .logo-light { display: block; }
.nav.scrolled .nav-logo .logo-dark { display: block; }
.nav.scrolled .nav-logo .logo-light { display: none; }
.nav-links {
  display: flex;
  gap: 36px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-links a {
  font-size: 15px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  transition: color 0.2s;
}
.nav.scrolled .nav-links a { color: var(--st-text-heading); }
.nav-links a:hover { color: var(--st-purple); }
.nav-links a.active,
.nav-links .current-menu-item > a,
.nav-links .current_page_item > a { color: #fff; font-weight: 700; }
.nav.scrolled .nav-links a.active,
.nav.scrolled .nav-links .current-menu-item > a,
.nav.scrolled .nav-links .current_page_item > a { color: var(--st-purple); }
.nav:not(.scrolled) .nav-cta .btn-primary { background: #fff; color: var(--st-bg-dark) !important; }
.nav:not(.scrolled) .nav-cta .btn-primary:hover { background: #f0f0f0; box-shadow: 0 8px 24px rgba(0,0,0,0.15); transform: translateY(-2px); }
.nav-mobile-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  color: #fff;
}
.nav.scrolled .nav-mobile-toggle { color: var(--st-text-heading); }

/* NAV RIGHT-SIDE ACTIONS — groups language switcher + CTA + mobile toggle */
.nav-actions { display: flex; align-items: center; gap: 32px; }

/* LANGUAGE SWITCHER (EN / RO) — Polylang, added 2026-07-08 */
.lang-switch { display: inline-flex; align-items: center; gap: 10px; }
.lang-switch-item {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.72);
  transition: color 0.2s;
}
.lang-switch-item + .lang-switch-item { padding-left: 10px; border-left: 1px solid rgba(255, 255, 255, 0.32); }
.lang-switch-item:hover,
.lang-switch-item.is-active { color: #fff; }
/* Scrolled / light nav (also the default state on non-dark-hero pages) */
.nav.scrolled .lang-switch-item { color: var(--st-text-body); }
.nav.scrolled .lang-switch-item:hover,
.nav.scrolled .lang-switch-item.is-active { color: var(--st-purple); }
.nav.scrolled .lang-switch-item + .lang-switch-item { border-left-color: rgba(0, 0, 0, 0.15); }
/* Mobile menu open — nav bar background turns light */
.nav.mobile-open .lang-switch-item { color: var(--st-text-body); }
.nav.mobile-open .lang-switch-item:hover,
.nav.mobile-open .lang-switch-item.is-active { color: var(--st-purple); }
.nav.mobile-open .lang-switch-item + .lang-switch-item { border-left-color: rgba(0, 0, 0, 0.15); }

/* NAV DROPDOWN — second-level menu (e.g. Community ▾) added 2026-06-25 */
.nav-links .menu-item-has-children { position: relative; }
.nav-links .menu-item-has-children > a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
/* Caret */
.nav-links .menu-item-has-children > a::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  transition: transform 0.2s ease;
  opacity: 0.8;
}
.nav-links .menu-item-has-children:hover > a::after,
.nav-links .menu-item-has-children:focus-within > a::after {
  transform: rotate(-135deg) translateY(-1px);
}

/* Dropdown panel */
.nav-links .sub-menu {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  left: auto;
  min-width: 248px;
  list-style: none;
  margin: 0;
  padding: 12px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 18px 48px rgba(26, 26, 46, 0.16);
  border: 1px solid rgba(0, 0, 0, 0.04);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  pointer-events: none;
  z-index: 110;
}
/* Invisible bridge so hover survives the gap between trigger and panel */
.nav-links .sub-menu::before {
  content: "";
  position: absolute;
  top: -16px;
  left: 0;
  right: 0;
  height: 16px;
}
.nav-links .menu-item-has-children:hover > .sub-menu,
.nav-links .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.nav-links .sub-menu li { margin: 0; }
.nav-links .sub-menu a {
  display: block;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 600;
  color: var(--st-text-heading);
  white-space: nowrap;
  transition: color 0.18s ease, background 0.18s ease;
}
.nav-links .sub-menu a:hover {
  color: var(--st-purple);
  background: rgba(166, 120, 255, 0.08);
}
.nav-links .sub-menu .current-menu-item > a,
.nav-links .sub-menu .current_page_item > a { color: var(--st-purple); }

/* FOOTER */
.footer {
  background: var(--st-bg-footer);
  padding: 80px 0 40px;
  color: rgba(255, 255, 255, 0.6);
}
.footer .container {
  max-width: var(--st-max-width);
  margin: 0 auto;
  padding: 0 80px;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 56px;
}
.footer-brand img { height: 40px; margin-bottom: 16px; display: block; }
.footer-brand p {
  font-size: 14px;
  line-height: 170%;
  color: rgba(255, 255, 255, 0.5);
  max-width: 260px;
}
.footer-social { display: flex; gap: 16px; margin-top: 20px; }
.footer-social a {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.footer-social a:hover { background: rgba(255, 255, 255, 0.15); }
.footer-social svg { width: 16px; height: 16px; color: rgba(255, 255, 255, 0.6); }
.footer-col h4 {
  font-size: 13px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 20px;
}
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col li { margin-bottom: 12px; }
.footer-col a {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  transition: color 0.2s;
}
.footer-col a:hover { color: #fff; }
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.footer-bottom p { font-size: 13px; color: rgba(255, 255, 255, 0.35); margin: 0; }
.footer-bottom a { font-size: 13px; color: rgba(255, 255, 255, 0.35); transition: color 0.2s; text-decoration: none; }
.footer-bottom a:hover { color: rgba(255, 255, 255, 0.6); }
.footer-legal { display: flex; gap: 18px; flex-wrap: wrap; justify-content: flex-end; }
.footer-legal-menu {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  justify-content: flex-end;
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-legal-menu li { margin: 0; }

/* RESPONSIVE — tablet */
@media (max-width: 968px) {
  .nav-inner { padding: 14px 40px; }
  .nav-links { display: none; }
  .nav-mobile-toggle { display: block; }
  .nav-cta { display: none; }
  .nav-search-toggle { display: inline-flex; }
  /* One more control in the bar than before, so the gap tightens. */
  .nav-actions { gap: 14px; }
  .footer .container { padding: 0 40px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 36px; }

  .nav.mobile-open {
    background: rgba(246, 245, 248, 0.98);
    border-bottom-color: rgba(0, 0, 0, 0.06);
  }
  .nav.mobile-open .nav-logo .logo-dark { display: block; }
  .nav.mobile-open .nav-logo .logo-light { display: none; }
  .nav.mobile-open .nav-mobile-toggle { color: var(--st-text-heading); }
  .nav.mobile-open .nav-inner { flex-wrap: wrap; }
  .nav.mobile-open .nav-links {
    display: flex;
    flex-direction: column;
    flex-basis: 100%;
    order: 2;
    gap: 18px;
    padding: 20px 0 8px;
    margin-top: 14px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
  }
  .nav.mobile-open .nav-links a { color: var(--st-text-heading); font-size: 16px; }

  /* The in-bar CTA stays hidden on mobile, as before. */
  .nav.mobile-open .nav-cta { display: none; }

  /* Book a Tour was desktop-only: hidden in the bar, and hidden again even
     when the menu was open. It now renders as a full-width button at the
     bottom of the open menu, via the dedicated .nav-cta-mobile element. */
  .nav.mobile-open .nav-cta-mobile {
    display: block;
    flex-basis: 100%;
    order: 3;
    margin: 4px 0 18px;
  }
  .nav.mobile-open .nav-cta-mobile .btn-primary {
    display: block;
    width: 100%;
    text-align: center;
  }

  /* The bar is too narrow at 375px for an inline field, so on mobile the
     panel becomes the first row of the open menu instead of a flex sibling
     that squeezes the logo. */
  .nav-search {
    flex-basis: 100%;
    max-width: none;
    order: 1;
    margin: 14px 0 0;
    display: none;
  }
  /* A hidden search panel must not become an extra flex item on menu-open.
     Keep its requested row full-width, even after the base search rules below. */
  .nav.mobile-open.search-open .nav-search {
    display: block;
    flex: 0 0 100%;
    max-width: none;
    margin: 14px 0 0;
    opacity: 1;
    visibility: visible;
  }

  /* Beats `.nav.search-open .nav-links { display: none }`, which is defined
     later in this file and would otherwise win on equal specificity. On
     mobile the field sits above the links rather than replacing them. */
  .nav.mobile-open.search-open .nav-links {
    display: flex;
  }

  /* Mobile: Community submenu becomes an inline accordion */
  .nav.mobile-open .nav-links .sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
    min-width: 0;
    padding: 0 0 0 14px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.28s ease;
  }
  .nav.mobile-open .nav-links .sub-menu::before { display: none; }
  .nav.mobile-open .nav-links .menu-item-has-children.submenu-open > .sub-menu {
    max-height: 240px;
    padding-top: 6px;
  }
  .nav.mobile-open .nav-links .sub-menu a { padding: 8px 0; font-size: 15px; }
  .nav.mobile-open .nav-links .menu-item-has-children.submenu-open > a::after {
    transform: rotate(-135deg) translateY(-1px);
  }
}

/* RESPONSIVE — mobile */
@media (max-width: 480px) {
  .nav-inner { padding: 12px 20px; }
  .standard-page__hero-inner { padding-left: 20px; padding-right: 20px; }
  .standard-page__content > :where(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, table, figure:not(.wp-block-image), .wp-block-buttons, .wp-block-details) { padding-left: 20px; padding-right: 20px; }
  .standard-page__hero-inner { padding-top: 20px; padding-bottom: 40px; }
  .standard-page__hero h1 { font-size: 34px !important; letter-spacing: -0.5px; }
  .standard-page__hero-subtitle { font-size: 16px; }
  .standard-page__hero-ctas { flex-direction: column; }
  .standard-page__hero-button { width: 100%; }
  .footer .container { padding: 0 20px; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
  .footer-legal { justify-content: center; }
}

/* ============================================================
   Native Gutenberg block compatibility shims.
   Pages compose with wp:group / wp:columns / wp:image / wp:button.
   These rules make the native block wrappers layout-transparent
   so existing section CSS (.pillar-card, .fit-card, .features-list,
   etc.) keeps working without per-page CSS rewrites.
   ============================================================ */

/* The .wp-block-group__inner-container WP adds inside every wp:group is
   layout-transparent: it inherits its parent's layout instead of imposing a
   new block context. This lets selectors like .pillar-card > h3 still match. */
.wp-block-group__inner-container { display: contents; }

/* wp:image figures should not impose extra spacing in card layouts. */
.wp-block-image { margin: 0; }
.wp-block-image figcaption { display: none; }

/* wp:button wrappers come with default flex/inline-flex behavior. Our btn-*
   classes already define their own display + padding, so unset the wrappers'
   defaults and let our classes win. */
.wp-block-buttons { display: contents; }
.wp-block-button { display: contents; }
/* height:auto: WP core (6.9) sets .wp-block-button__link { height:100% } for
   its vertical-alignment feature; with the theme's display:contents button
   wrappers that percentage resolves against the outer card/section and
   stretches links (first seen: homepage upcoming-events cards). */
.wp-block-button__link { padding: 0; background: transparent; border-radius: 0; color: inherit; height: auto; }
.wp-block-button__link.btn-primary,
.wp-block-button__link.btn-outline,
.wp-block-button__link.btn-outline--white,
.wp-block-button__link.btn-text,
.wp-block-button__link.btn-small,
.wp-block-button__link.btn-primary--white {
  /* Re-trigger the project's button styles by letting the .btn-* class own
     display/padding/background. The selectors above zero out wp-element-button
     defaults so they don't override our .btn-* rules. */
}

/* wp:heading and wp:paragraph emit `class="wp-block-heading"` on the heading
   element. Make sure that base class doesn't override our typography tokens. */
.wp-block-heading { font-family: inherit; }

/* 404 page */
.standard-page--404 .standard-page__hero {
  min-height: 72vh;
}

/* ---------- Search results (added 2026-08-06) ---------- */

.standard-page--search .search-term {
  color: var(--st-purple);
}

.search-results {
  padding-bottom: 96px;
}

/* The shared container rule is `.standard-page__content > :where(h1,...,ol,...)`,
   and :where() contributes no specificity, so a later single-class rule here
   would silently drop the 1200px cap and the 80px gutters. Restate them rather
   than zeroing the padding. */
.search-results__list {
  list-style: none;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 80px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.search-empty,
.search-results .pagination {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 80px;
  padding-right: 80px;
}

.search-result {
  padding: 28px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.search-result:first-child {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.search-result__type {
  display: inline-block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--st-purple);
}

.search-result__title {
  margin: 0 0 8px;
  font-size: 22px;
  line-height: 1.3;
}

.search-result__title a {
  color: var(--st-text-heading);
  text-decoration: none;
  transition: color 0.2s;
}

.search-result__title a:hover {
  color: var(--st-purple);
}

.search-result__excerpt {
  margin: 0;
  color: var(--st-text-body);
  line-height: 1.6;
}

.search-result__meta {
  margin: 8px 0 0;
  font-size: 13px;
  color: var(--st-text-body);
  opacity: 0.7;
}

/* Search form, shared by the results hero and the nav */
.search-form {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 520px;
  padding: 6px 6px 6px 18px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 999px;
}

.search-form__input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: none;
  background: transparent;
  font-family: inherit;
  font-size: 15px;
  color: var(--st-text-heading);
}

.search-form__input::placeholder {
  color: var(--st-text-body);
  opacity: 0.6;
}

.search-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--st-purple);
  color: #fff;
  cursor: pointer;
  transition: background 0.2s;
}

.search-form__submit:hover {
  background: var(--st-purple-hover);
}

.search-form--page {
  margin-top: 28px;
}

.search-empty {
  padding: 48px 0 24px;
}

.search-empty__title {
  margin: 0 0 12px;
}

.search-empty__text {
  margin: 0 0 28px;
  color: var(--st-text-body);
}

.search-empty__links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* Pagination: the shared theme has no visible styling for it, and the default
   markup rendered as near-invisible light text at the page edge. */
.search-results .pagination {
  margin-top: 40px;
}

.search-results .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.search-results .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 12px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 999px;
  color: var(--st-text-heading);
  font-size: 14px;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.search-results .page-numbers:hover {
  border-color: var(--st-purple);
  color: var(--st-purple);
}

.search-results .page-numbers.current {
  background: var(--st-purple);
  border-color: var(--st-purple);
  color: #fff;
}

.search-results .pagination .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

@media (max-width: 968px) {
  .search-results__list,
  .search-empty,
  .search-results .pagination {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media (max-width: 640px) {
  .search-result__title { font-size: 19px; }
  .search-form { max-width: none; }
}

/* ---------- Nav search (added 2026-08-06) ---------- */

.nav-inner {
  position: relative;
}

.nav-search-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.nav-search-toggle:hover {
  background: rgba(0, 0, 0, 0.06);
}

.nav:not(.scrolled) .nav-search-toggle {
  color: #fff;
}

.nav:not(.scrolled) .nav-search-toggle:hover {
  background: rgba(255, 255, 255, 0.18);
}

/* The panel overlays the nav links area so opening it does not reflow the
   logo or the actions. visibility (not display) keeps it out of the tab
   order while still allowing a transition. */
/* The panel is a flex sibling that takes the space the nav links give up,
   rather than an absolutely positioned overlay. An overlay needs hard-coded
   left/right offsets, and those silently overlapped the language switcher
   and crowded the logo once the field was wide enough to be useful. Flex
   sizing cannot overlap its siblings at any viewport width. */
.nav-search {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 0;
  margin: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  /* visibility is delayed rather than durated: hiding waits for the fade to
     finish, but revealing happens in the same tick the class lands. Giving
     visibility a duration leaves the panel hidden while it animates, and
     focus() on a hidden element is a silent no-op, so the field would open
     without a cursor in it. */
  transition: max-width 0.25s ease, margin 0.25s ease, opacity 0.25s ease, visibility 0s linear 0.25s;
}

.nav.search-open .nav-search {
  max-width: 560px;
  margin: 0 32px;
  opacity: 1;
  visibility: visible;
  transition: max-width 0.25s ease, margin 0.25s ease, opacity 0.25s ease, visibility 0s linear 0s;
}

.nav.search-open .nav-links {
  display: none;
}

.nav-search .search-form {
  max-width: none;
  padding: 4px 4px 4px 16px;
  border-color: rgba(0, 0, 0, 0.15);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.nav-search .search-form__input {
  font-size: 14px;
}

.nav-search .search-form__submit {
  width: 30px;
  height: 30px;
  flex-basis: 30px;
}

/* Mobile-only Book a Tour row; the desktop nav never renders it. */
.nav-cta-mobile {
  display: none;
}

/* ---------- Adeco editorial pages linked from the footer ----------
   These use only Supertree tokens and proportions. The old Adeco HTML mixed
   loose text, floated columns and inline padding, allowing individual lines to
   escape the shared content gutter. These wrappers make those imported pages
   deliberate Supertree layouts without affecting the rest of the fixture. */
.adeco-editorial {
  margin: 0;
  padding: clamp(72px, 8vw, 112px) 0;
  background: var(--st-bg-primary);
}

.adeco-editorial__inner {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 64px;
}

.adeco-editorial__inner--narrow {
  max-width: 880px;
}

.adeco-editorial__intro {
  max-width: 760px;
  margin: 0 0 48px;
}

.adeco-editorial__intro > * {
  margin-block-start: 0;
}

.adeco-editorial__intro .section-title {
  margin-bottom: 18px;
  font-size: clamp(30px, 3vw, 42px);
}

.adeco-editorial__intro > p:last-child {
  max-width: 680px;
  margin: 0;
  color: var(--st-text-body);
  font-size: 17px;
  line-height: 1.75;
}

.adeco-resource-list {
  display: grid;
  gap: 14px;
}

.adeco-resource-card {
  display: grid !important;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  margin: 0;
  padding: 24px 28px;
  border: 1px solid rgba(26, 26, 46, 0.07);
  border-radius: 18px;
  background: var(--st-card-bg);
  box-shadow: var(--st-card-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.adeco-resource-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(26, 26, 46, 0.08);
}

.adeco-resource-card__year {
  color: var(--st-purple-hover);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.adeco-resource-card__copy h3,
.adeco-resource-card__copy p {
  margin: 0;
}

.adeco-resource-card__copy h3 {
  color: var(--st-text-heading);
  font-size: 18px;
  line-height: 1.35;
}

.adeco-resource-card__copy p {
  margin-top: 5px;
  color: var(--st-text-muted);
  font-size: 13px;
}

.adeco-resource-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--st-purple-hover);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.adeco-resource-card__link:hover {
  color: var(--st-text-heading);
}

.adeco-value-grid {
  gap: 22px;
  margin: 0 0 28px;
}

.adeco-value-card {
  min-width: 0;
  padding: 32px;
  border: 1px solid rgba(26, 26, 46, 0.07);
  border-radius: 20px;
  background: var(--st-card-bg);
  box-shadow: var(--st-card-shadow);
}

.adeco-value-card__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 28px;
  border-radius: 50%;
  background: var(--st-purple-light);
  color: var(--st-purple-hover);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.adeco-value-card h3 {
  margin: 0 0 10px;
  color: var(--st-text-heading);
  font-size: 20px;
}

.adeco-value-card p {
  margin: 0;
  color: var(--st-text-body);
  font-size: 15px;
  line-height: 1.7;
}

.adeco-contact-panel {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: center;
  margin: 0;
  padding: 40px 44px;
  border-radius: 22px;
  background: linear-gradient(120deg, var(--st-purple-hover), var(--st-purple));
  color: #fff;
}

.adeco-contact-panel__copy {
  max-width: 630px;
}

.adeco-contact-panel .section-label,
.adeco-contact-panel h2,
.adeco-contact-panel p {
  margin-block-start: 0;
}

.adeco-contact-panel .section-label {
  margin-bottom: 10px;
  color: rgba(255,255,255,0.7);
}

.adeco-contact-panel h2 {
  margin-bottom: 10px;
  color: #fff;
  font-size: clamp(25px, 2.4vw, 34px);
}

.adeco-contact-panel__copy > p:last-child {
  margin: 0;
  color: rgba(255,255,255,0.82);
  line-height: 1.7;
}

.adeco-contact-panel__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 26px;
  border-radius: 999px;
  background: #fff;
  color: var(--st-text-heading);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.adeco-contact-panel__button:hover {
  transform: translateY(-2px);
  box-shadow: 0 9px 24px rgba(26, 26, 46, 0.2);
}

.adeco-policy-card {
  margin: 0;
  padding: clamp(34px, 5vw, 58px);
  border: 1px solid rgba(26, 26, 46, 0.07);
  border-radius: 22px;
  background: var(--st-card-bg);
  box-shadow: var(--st-card-shadow);
}

.adeco-policy-card > * {
  margin-block-start: 0;
}

.adeco-policy-card h2 {
  margin-bottom: 20px;
  color: var(--st-text-heading);
  font-size: clamp(30px, 3vw, 40px);
}

.adeco-policy-card h3 {
  margin: 0 0 12px;
  color: var(--st-text-heading);
  font-size: 21px;
}

.adeco-policy-card p {
  margin: 0 0 18px;
  color: var(--st-text-body);
  font-size: 16px;
  line-height: 1.8;
}

.adeco-policy-card .wp-block-separator {
  margin: 34px 0;
  border: 0;
  border-top: 1px solid rgba(26, 26, 46, 0.1);
}

.adeco-policy-card .wp-block-buttons {
  margin-top: 28px;
}

@media (max-width: 800px) {
  .adeco-editorial__inner { padding: 0 32px; }
  .adeco-resource-card {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 12px 18px;
  }
  .adeco-resource-card__link { grid-column: 2; justify-self: start; }
  .adeco-contact-panel { grid-template-columns: 1fr; gap: 26px; }
  .adeco-contact-panel__button { justify-self: start; }
}

@media (max-width: 560px) {
  .adeco-editorial { padding: 56px 0; }
  .adeco-editorial__inner { padding: 0 20px; }
  .adeco-resource-card {
    grid-template-columns: 1fr;
    padding: 24px;
  }
  .adeco-resource-card__link { grid-column: 1; }
  .adeco-value-grid { display: grid; grid-template-columns: 1fr; }
  .adeco-value-card { padding: 26px; }
  .adeco-contact-panel { padding: 32px 26px; }
}
