:root {
  --springthorpe-color-heading: var(--wp--preset--color--springthorpe-charcoal, #22201d);
  --springthorpe-color-text: var(--wp--preset--color--springthorpe-ink, #2d2a25);
  --springthorpe-color-muted: var(--wp--preset--color--springthorpe-muted, #625b52);
  --springthorpe-color-background: var(--wp--preset--color--springthorpe-paper, #fbfaf6);
  --springthorpe-color-surface: #ffffff;
  --springthorpe-color-soft: var(--wp--preset--color--springthorpe-mist, #eef3ee);
  --springthorpe-color-primary: var(--wp--preset--color--springthorpe-green, #4f6f52);
  --springthorpe-color-primary-hover: #3f5d43;
  --springthorpe-color-accent: var(--wp--preset--color--springthorpe-gold, #b58a2b);
  --springthorpe-color-border: rgba(34, 32, 29, 0.13);
  --springthorpe-radius-control: 4px;
  --springthorpe-shell-padding: clamp(1.25rem, 5vw, 2.5rem);
  --springthorpe-shell-max: var(--wp--style--global--wide-size, 1120px);
  --springthorpe-content-max: var(--wp--style--global--content-size, 760px);
  --springthorpe-charcoal: var(--springthorpe-color-heading);
  --springthorpe-gold: var(--springthorpe-color-accent);
  --springthorpe-green: var(--springthorpe-color-primary);
  --springthorpe-ink: var(--springthorpe-color-text);
  --springthorpe-paper: var(--springthorpe-color-background);
  --springthorpe-mist: var(--springthorpe-color-soft);
  --springthorpe-line: var(--springthorpe-color-border);
  --springthorpe-muted: var(--springthorpe-color-muted);
}

.springthorpe-portal-nav .wp-block-navigation__container {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.95rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.springthorpe-portal-nav a {
  color: var(--springthorpe-color-text);
  font-size: 0.95rem;
  font-weight: 650;
  text-decoration: none;
}

.springthorpe-portal-nav a:hover,
.springthorpe-portal-nav a:focus,
.springthorpe-portal-nav .is-active > a {
  color: var(--springthorpe-color-primary);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7-form select,
.wpcf7-form textarea {
  border: 1px solid color-mix(in srgb, var(--springthorpe-color-heading) 24%, transparent);
  border-radius: var(--springthorpe-radius-control);
  box-sizing: border-box;
  font: inherit;
  max-width: min(100%, 42rem);
  padding: 0.7rem 0.8rem;
  width: 100%;
}

.wpcf7-form label,
.wpcf7-form .wpcf7-form-control-wrap {
  box-sizing: border-box;
  display: block;
  max-width: 100%;
}

body.page-id-10.springthorpe-theme-smash .wpcf7 .form-style-1 .style-line[class*="icon-"]::before {
  left: 0.8rem;
}

body.page-id-10.springthorpe-theme-smash .wpcf7 .form-style-1 .style-line[class*="icon-"] input,
body.page-id-10.springthorpe-theme-smash .wpcf7 .form-style-1 .style-line[class*="icon-"] select,
body.page-id-10.springthorpe-theme-smash .wpcf7 .form-style-1 .style-line[class*="icon-"] textarea {
  padding-left: 2.75rem;
}

body.springthorpe-theme-smash .trx_addons_tabs_title_register[data-disabled="true"] {
  display: none !important;
}

.springthorpe-button {
  background: var(--springthorpe-color-heading);
  border: 0;
  border-radius: var(--springthorpe-radius-control);
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 650;
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  text-decoration: none;
  transition: background-color 160ms ease, box-shadow 160ms ease, color 160ms ease;
}

.springthorpe-button:hover,
.springthorpe-button:focus {
  background: var(--springthorpe-color-primary-hover);
  color: #ffffff;
  text-decoration: none;
}

.springthorpe-button--secondary {
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--springthorpe-color-accent);
  color: var(--springthorpe-color-heading);
}

.springthorpe-button--secondary:hover,
.springthorpe-button--secondary:focus {
  background: color-mix(in srgb, var(--springthorpe-color-accent) 12%, transparent);
  color: var(--springthorpe-color-heading);
}

.springthorpe-action-row,
.springthorpe-member-gate__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.springthorpe-action-link {
  font-weight: 700;
}

.springthorpe-section-list {
  display: grid;
  gap: 0;
  list-style: none;
  padding-left: 0;
}

.springthorpe-section-list li {
  border-top: 1px solid var(--springthorpe-color-border);
  padding-block: 0.9rem;
}

.springthorpe-section-list strong {
  color: var(--springthorpe-color-heading);
  display: block;
  font-size: 1.12rem;
  font-weight: 750;
  line-height: 1.25;
}

.springthorpe-section-list span {
  color: var(--springthorpe-color-muted);
  display: block;
  font-size: 0.95rem;
  line-height: 1.45;
  margin-top: 0.3rem;
}

.springthorpe-section-list a {
  color: var(--springthorpe-color-primary);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.springthorpe-operator-landing {
  box-sizing: border-box;
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 2rem);
  margin-block: 0 clamp(2rem, 4vw, 3rem);
  max-width: min(100%, 58rem);
}

.springthorpe-operator-landing > p {
  color: var(--springthorpe-color-muted);
  font-size: clamp(1rem, 1.4vw, 1.12rem);
  line-height: 1.55;
  margin: 0;
  max-width: 44rem;
}

.springthorpe-operator-actions {
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

.springthorpe-operator-section {
  border-top: 1px solid var(--springthorpe-color-border);
  display: grid;
  gap: 0.7rem;
  padding-block-start: clamp(1rem, 2vw, 1.35rem);
}

.springthorpe-operator-section h3 {
  color: var(--springthorpe-color-heading);
  font-size: clamp(1.03rem, 1.5vw, 1.18rem);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.25;
  margin: 0;
}

.springthorpe-operator-link-list {
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.springthorpe-operator-link-list li {
  align-items: start;
  border-top: 1px solid color-mix(in srgb, var(--springthorpe-color-border) 72%, transparent);
  display: grid;
  gap: 0.2rem clamp(1rem, 2vw, 1.5rem);
  grid-template-columns: minmax(11rem, 0.45fr) minmax(0, 1fr);
  padding-block: 0.82rem;
}

.springthorpe-operator-link-list li:first-child {
  border-top: 0;
}

.springthorpe-operator-link-list a {
  color: var(--springthorpe-color-primary);
  font-weight: 750;
  line-height: 1.35;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
  transition: color 160ms ease, text-decoration-color 160ms ease;
}

.springthorpe-operator-link-list a:hover,
.springthorpe-operator-link-list a:focus {
  color: var(--springthorpe-color-primary-hover);
  text-decoration-color: currentColor;
}

.springthorpe-operator-link-list span {
  color: var(--springthorpe-color-muted);
  font-size: 0.95rem;
  line-height: 1.45;
}

@media (max-width: 700px) {
  .springthorpe-operator-link-list li {
    grid-template-columns: 1fr;
  }
}

.springthorpe-native-login {
  background: var(--springthorpe-color-surface);
  border-block: 1px solid var(--springthorpe-color-border);
  box-sizing: border-box;
  display: grid;
  gap: 1rem;
  margin-block: 1.5rem;
  max-width: min(100%, 34rem);
  padding: 1.35rem clamp(1.25rem, 3vw, 1.75rem);
}

.springthorpe-native-login__intro {
  display: grid;
  gap: 0.35rem;
}

.springthorpe-native-login__intro h2,
.springthorpe-native-login--signed-in h2 {
  color: var(--springthorpe-color-heading);
  font-size: clamp(1.55rem, 2.4vw, 2rem);
  line-height: 1.1;
  margin: 0;
}

.springthorpe-native-login__intro p:not(.springthorpe-native-login__kicker),
.springthorpe-native-login--signed-in p:not(.springthorpe-native-login__kicker) {
  color: var(--springthorpe-color-muted);
  line-height: 1.5;
  margin: 0;
}

.springthorpe-native-login__kicker {
  color: var(--springthorpe-color-primary);
  font-size: 0.8rem;
  font-weight: 780;
  letter-spacing: 0.08em;
  margin: 0;
  text-transform: uppercase;
}

.springthorpe-native-login__notice {
  border-left: 4px solid var(--springthorpe-color-accent);
  color: var(--springthorpe-color-heading);
  margin: 0;
  padding: 0.15rem 0 0.15rem 0.85rem;
}

.springthorpe-native-login__notice--error {
  border-left-color: #b6432b;
}

.springthorpe-native-login form {
  display: grid;
  gap: 0.85rem;
  margin: 0;
}

.springthorpe-native-login form p {
  margin: 0;
}

.springthorpe-native-login label {
  color: var(--springthorpe-color-heading);
  display: block;
  font-weight: 700;
  margin-bottom: 0.35rem;
}

.springthorpe-native-login input[type="text"],
.springthorpe-native-login input[type="password"] {
  border: 1px solid color-mix(in srgb, var(--springthorpe-color-heading) 24%, transparent);
  border-radius: var(--springthorpe-radius-control);
  box-sizing: border-box;
  color: var(--springthorpe-color-text);
  font: inherit;
  max-width: 100%;
  padding: 0.75rem 0.85rem;
  width: 100%;
}

.springthorpe-native-login .login-remember label {
  align-items: center;
  color: var(--springthorpe-color-muted);
  display: inline-flex;
  gap: 0.5rem;
  font-weight: 600;
  margin: 0;
}

.springthorpe-native-login input[type="checkbox"] {
  margin: 0;
}

.springthorpe-native-login input[type="submit"] {
  background: var(--springthorpe-color-heading);
  border: 0;
  border-radius: var(--springthorpe-radius-control);
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 700;
  justify-self: start;
  padding: 0.75rem 1.1rem;
}

.springthorpe-native-login input[type="submit"]:hover,
.springthorpe-native-login input[type="submit"]:focus {
  background: var(--springthorpe-color-primary-hover);
}

.springthorpe-native-login__links {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
}

.springthorpe-native-login__links a {
  color: var(--springthorpe-color-primary);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.springthorpe-kicker,
.springthorpe-booking-kicker,
.springthorpe-member-gate__kicker {
  color: var(--springthorpe-color-primary);
  font-size: 0.8rem;
  font-weight: 780;
  letter-spacing: 0.08em;
  margin: 0 0 0.85rem;
  text-transform: uppercase;
}

.springthorpe-member-hub {
  display: grid;
  gap: 2rem;
  max-width: var(--springthorpe-shell-max);
  width: 100%;
}

.springthorpe-member-hub__media {
  aspect-ratio: 1080 / 304;
  margin: 0;
  overflow: hidden;
  width: 100%;
}

.springthorpe-member-hub__media picture {
  display: block;
  height: 100%;
  width: 100%;
}

.springthorpe-member-hub__media img {
  display: block;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  width: 100% !important;
}

.springthorpe-member-hub__header {
  align-items: end;
  border-bottom: 1px solid var(--springthorpe-color-border);
  display: grid;
  gap: 0.7rem;
  grid-template-columns: minmax(0, 1fr) auto;
  padding-bottom: 1.25rem;
}

.springthorpe-member-hub__header .springthorpe-kicker,
.springthorpe-member-hub__header h1,
.springthorpe-member-hub__header p {
  grid-column: 1;
}

.springthorpe-member-hub__header h1 {
  color: var(--springthorpe-color-heading);
  font-size: 3.75rem;
  line-height: 0.98;
  margin: 0;
}

.springthorpe-member-hub__header p:last-child {
  color: var(--springthorpe-color-muted);
  margin: 0;
}

.springthorpe-member-hub__tiles {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.springthorpe-member-hub__tile {
  align-content: space-between;
  background: color-mix(in srgb, var(--springthorpe-color-soft) 64%, #ffffff);
  box-shadow: inset 0 0 0 1px var(--springthorpe-color-border);
  color: var(--springthorpe-color-heading);
  display: grid;
  min-height: 16.5rem;
  overflow: hidden;
  padding: 1.25rem;
  position: relative;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.springthorpe-member-hub__tile > * {
  position: relative;
  z-index: 1;
}

.springthorpe-member-hub__tile:hover,
.springthorpe-member-hub__tile:focus {
  background: #ffffff;
  color: var(--springthorpe-color-primary);
  transform: translateY(-0.2rem);
}

.springthorpe-member-hub__icon {
  color: var(--springthorpe-color-primary);
  display: block;
  height: 4.5rem;
  width: 4.5rem;
}

.springthorpe-member-hub__icon svg {
  display: block;
  height: 100%;
  width: 100%;
}

.springthorpe-member-hub__tile-text {
  display: grid;
  gap: 0.45rem;
}

.springthorpe-member-hub__tile strong {
  font-size: 1.45rem;
  line-height: 1.05;
}

.springthorpe-member-hub__tile small {
  color: var(--springthorpe-color-muted);
  font-size: 0.94rem;
  line-height: 1.42;
}

.springthorpe-member-gate,
.springthorpe-profile-summary,
.springthorpe-profile-bookings {
  border-block: 1px solid var(--springthorpe-color-border);
  box-sizing: border-box;
  margin-block: 1.5rem;
  max-width: min(100%, var(--springthorpe-content-max));
  padding-block: 1.25rem;
}

.springthorpe-member-gate {
  background: color-mix(in srgb, var(--springthorpe-color-accent) 8%, var(--springthorpe-color-surface));
  display: grid;
  gap: 0.9rem;
}

.springthorpe-public-home-hero {
  align-content: center;
  background:
    linear-gradient(90deg, rgba(9, 15, 18, 0.68) 0%, rgba(9, 15, 18, 0.48) 44%, rgba(9, 15, 18, 0.18) 100%),
    var(--springthorpe-home-hero-image, none) center center / cover no-repeat;
  box-sizing: border-box;
  color: #ffffff;
  display: grid;
  gap: 1.4rem;
  margin: 0 calc(50% - 50vw);
  min-height: clamp(34rem, 76svh, 42rem);
  padding: clamp(4.5rem, 10vw, 7rem) max(7vw, calc((100vw - 1220px) / 2));
  position: relative;
  width: 100vw;
}

.springthorpe-public-home-hero__content {
  display: grid;
  gap: 1rem;
  max-width: 43rem;
}

.springthorpe-public-home-hero__kicker {
  color: #ffffff;
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  margin: 0;
  text-transform: uppercase;
}

.springthorpe-public-home-hero h1 {
  color: #ffffff;
  font-size: clamp(3.4rem, 7vw, 5.4rem);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 0.95;
  margin: 0;
  text-transform: uppercase;
}

.springthorpe-public-home-hero--pre-launch h1 {
  font-size: clamp(1.6rem, 3.2vw, 2.4rem);
  line-height: 1.15;
}

.springthorpe-public-home-hero p:not(.springthorpe-public-home-hero__kicker) {
  color: #ffffff;
  font-size: clamp(1.1rem, 1.7vw, 1.45rem);
  line-height: 1.35;
  margin: 0;
  max-width: 37rem;
}

.springthorpe-public-home-hero__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}

.springthorpe-public-home-hero .springthorpe-button {
  background: #ffffff;
  color: #151515;
  margin-top: 0;
  padding: 0.9rem 1.2rem;
}

.springthorpe-public-home-hero .springthorpe-button:hover,
.springthorpe-public-home-hero .springthorpe-button:focus {
  background: #f3f8f9;
  color: #151515;
}

.springthorpe-public-home-hero .springthorpe-button--secondary {
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.82);
  color: #ffffff;
}

.springthorpe-public-home-hero .springthorpe-button--secondary:hover,
.springthorpe-public-home-hero .springthorpe-button--secondary:focus {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

.springthorpe-member-gate h2,
.springthorpe-profile-summary h2,
.springthorpe-profile-bookings h2 {
  color: var(--springthorpe-color-heading);
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.12;
  margin: 0;
}

.springthorpe-member-gate p,
.springthorpe-profile-bookings p {
  color: var(--springthorpe-color-muted);
  line-height: 1.55;
  margin: 0;
}

@media (max-width: 767px) {
  .springthorpe-public-home-hero {
    min-height: clamp(30rem, 72svh, 38rem);
    padding-inline: 1.25rem;
  }
}

.springthorpe-booking-hub,
.springthorpe-booking-layout {
  margin-left: 0;
  margin-right: auto;
  max-width: var(--springthorpe-shell-max);
  width: 100%;
}

.springthorpe-booking-hub {
  display: grid;
  gap: clamp(1.4rem, 3vw, 2.35rem);
}

.springthorpe-booking-hub__header {
  border-bottom: 1px solid var(--springthorpe-color-border);
  display: grid;
  gap: 0.65rem;
  padding-bottom: 1.15rem;
}

.springthorpe-booking-hub__header h2 {
  color: var(--springthorpe-color-heading);
  font-size: clamp(2.8rem, 5vw, 4.6rem);
  line-height: 1;
  margin: 0;
}

.springthorpe-booking-summary,
.springthorpe-booking-footnote {
  color: var(--springthorpe-color-muted);
  line-height: 1.55;
  margin: 0;
  max-width: 42rem;
}

.springthorpe-booking-hub--editable > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  text-align: left;
}

.springthorpe-booking-hub--editable > .springthorpe-booking-kicker {
  margin-bottom: 0 !important;
}

.springthorpe-booking-hub--editable > .springthorpe-booking-summary {
  border-bottom: 1px solid var(--springthorpe-color-border);
  padding-bottom: 1.15rem;
  width: 100%;
}

.springthorpe-booking-hub--editable > .springthorpe-booking-note {
  background: transparent;
  border: 0;
  padding: 0;
}

.springthorpe-booking-hub--editable > .springthorpe-booking-note > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.springthorpe-booking-hub--editable .springthorpe-booking-editable-grid {
  --springthorpe-booking-grid-border: color-mix(in srgb, var(--springthorpe-color-heading) 22%, var(--springthorpe-color-border));

  background: var(--springthorpe-booking-grid-border);
  border-left: 2px solid var(--springthorpe-booking-grid-border);
  border-right: 2px solid var(--springthorpe-booking-grid-border);
  display: grid !important;
  gap: 2px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 !important;
  margin-block-end: 0 !important;
  margin-block-start: 0 !important;
}

.springthorpe-booking-hub--editable .springthorpe-booking-editable-grid--top {
  border-top: 2px solid var(--springthorpe-booking-grid-border);
}

.springthorpe-booking-hub--editable .springthorpe-booking-editable-grid--bottom {
  border-top: 2px solid var(--springthorpe-booking-grid-border);
  border-bottom: 2px solid var(--springthorpe-booking-grid-border);
  margin-block-start: calc(-1 * clamp(1.4rem, 3vw, 2.35rem)) !important;
}

.springthorpe-booking-hub--editable .springthorpe-booking-card {
  align-content: stretch;
  background: color-mix(in srgb, var(--springthorpe-color-soft) 74%, #ffffff);
  box-sizing: border-box;
  display: grid;
  flex-basis: auto !important;
  grid-template-rows: auto auto auto auto minmax(0, 1fr);
  justify-self: stretch;
  margin: 0 !important;
  max-width: none !important;
  min-height: 21rem;
  padding: 1.25rem !important;
  position: relative;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
  width: 100% !important;
}

.springthorpe-booking-hub--editable .springthorpe-booking-card:hover,
.springthorpe-booking-hub--editable .springthorpe-booking-card:focus-within {
  background: #ffffff;
  color: var(--springthorpe-color-primary);
  transform: translateY(-0.16rem);
}

.springthorpe-booking-hub--editable .springthorpe-booking-card::before {
  background: currentColor;
  color: var(--springthorpe-color-primary);
  content: "";
  display: block;
  height: 4rem;
  margin: 1.6rem 0 1.1rem;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 4rem;
}

.springthorpe-booking-hub--editable .springthorpe-booking-editable-grid--top .springthorpe-booking-card:nth-child(1)::before,
.springthorpe-booking-hub--editable .springthorpe-booking-editable-grid--top .springthorpe-booking-card:nth-child(2)::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19V5h14v14'/%3E%3Cpath d='M8 9h8'/%3E%3Cpath d='M8 13h8'/%3E%3Cpath d='M8 17h5'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19V5h14v14'/%3E%3Cpath d='M8 9h8'/%3E%3Cpath d='M8 13h8'/%3E%3Cpath d='M8 17h5'/%3E%3C/g%3E%3C/svg%3E");
}

.springthorpe-booking-hub--editable .springthorpe-booking-editable-grid--top .springthorpe-booking-card:nth-child(3)::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h14v16H5z'/%3E%3Cpath d='M12 4v16'/%3E%3Cpath d='M5 12h14'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h14v16H5z'/%3E%3Cpath d='M12 4v16'/%3E%3Cpath d='M5 12h14'/%3E%3C/g%3E%3C/svg%3E");
}

.springthorpe-booking-hub--editable .springthorpe-booking-editable-grid--bottom .springthorpe-booking-card:nth-child(1)::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19h14'/%3E%3Cpath d='M7 15h10'/%3E%3Cpath d='M9 15V9h6v6'/%3E%3Cpath d='M10 9l2-4 2 4'/%3E%3Cpath d='M8 5h8'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19h14'/%3E%3Cpath d='M7 15h10'/%3E%3Cpath d='M9 15V9h6v6'/%3E%3Cpath d='M10 9l2-4 2 4'/%3E%3Cpath d='M8 5h8'/%3E%3C/g%3E%3C/svg%3E");
}

.springthorpe-booking-hub--editable .springthorpe-booking-editable-grid--bottom .springthorpe-booking-card:nth-child(2)::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8.5' cy='9.5' r='4.2'/%3E%3Cpath d='M11.5 12.5l5 5'/%3E%3Cpath d='M15 19l3-3'/%3E%3Ccircle cx='17' cy='6' r='1.6'/%3E%3Cpath d='M4 20h16'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8.5' cy='9.5' r='4.2'/%3E%3Cpath d='M11.5 12.5l5 5'/%3E%3Cpath d='M15 19l3-3'/%3E%3Ccircle cx='17' cy='6' r='1.6'/%3E%3Cpath d='M4 20h16'/%3E%3C/g%3E%3C/svg%3E");
}

.springthorpe-booking-hub--editable .springthorpe-booking-editable-grid--bottom .springthorpe-booking-card:nth-child(3)::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 18h16'/%3E%3Cpath d='M6 14h12'/%3E%3Cpath d='M8 10h8'/%3E%3Cpath d='M10 6h4'/%3E%3Cpath d='M7 18v-4'/%3E%3Cpath d='M17 18v-4'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 18h16'/%3E%3Cpath d='M6 14h12'/%3E%3Cpath d='M8 10h8'/%3E%3Cpath d='M10 6h4'/%3E%3Cpath d='M7 18v-4'/%3E%3Cpath d='M17 18v-4'/%3E%3C/g%3E%3C/svg%3E");
}

.springthorpe-booking-hub--editable .springthorpe-booking-card h2 {
  color: var(--springthorpe-color-heading);
  font-size: clamp(1.45rem, 2.4vw, 1.85rem);
  letter-spacing: 0;
  line-height: 1.05;
  margin: 0;
  text-transform: none;
}

.springthorpe-booking-hub--editable .springthorpe-booking-card p {
  color: var(--springthorpe-color-muted);
  font-size: 0.94rem;
  line-height: 1.45;
  margin: 0.65rem 0 0;
}

.springthorpe-booking-hub--editable .springthorpe-booking-card__meta {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0;
}

.springthorpe-booking-hub--editable .springthorpe-booking-card__meta li {
  align-items: center;
  border: 1px solid color-mix(in srgb, var(--springthorpe-color-primary) 28%, transparent);
  color: var(--springthorpe-color-primary);
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 780;
  letter-spacing: 0.04em;
  line-height: 1;
  padding: 0.34rem 0.46rem;
  text-transform: uppercase;
}

.springthorpe-booking-hub--editable .springthorpe-booking-card .wp-block-buttons {
  position: absolute;
  right: 1.25rem;
  top: 1.25rem;
}

.springthorpe-booking-hub--editable .springthorpe-booking-card .wp-block-button__link {
  background: var(--springthorpe-color-primary);
  border: 1px solid var(--springthorpe-color-primary);
  border-radius: 999px;
  color: #ffffff;
  font-size: 0.9rem;
  font-weight: 750;
  line-height: 1;
  padding: 0.66rem 0.92rem;
  text-transform: uppercase;
}

.springthorpe-booking-layout {
  align-items: start;
  column-gap: clamp(2.25rem, 4vw, 4rem);
  display: grid;
  grid-template-columns: minmax(16rem, 0.62fr) minmax(42rem, 1.38fr);
  row-gap: 2rem;
}

.springthorpe-booking-brief {
  align-content: start;
  display: grid;
  gap: 0.9rem;
  /* Space between the full-width heading container above and the first content
     element (the photo) inside the left column of the Elementor grid. */
  padding-top: clamp(0.75rem, 1.5vw, 1.25rem);
}

@media (min-width: 761px) {
  .springthorpe-booking-layout .springthorpe-booking-brief {
    padding-top: clamp(0.5rem, 0.9vw, 0.75rem);
  }
}

/* Top-align the Amelia booking column in Elementor grids.
   Root cause: Elementor sets elementor-widget-container { height:100% } inside
   containers, so when the right column stretches to match the left column height
   the widget-container inherits that height and constrains/misaligns the Amelia
   form inside it.  Setting align-self:flex-start on the widget makes the column
   only as tall as its content, removing the constraint entirely.
   The class is added via _css_classes in the Elementor widget JSON data. */
.elementor-widget.springthorpe-amelia-col {
  align-self: flex-start !important;
}

/* Amelia shortcode wrapper — block-level div avoids the invalid-HTML gap
   that occurs when a <div> (Amelia's output) is placed inside a <p>. */
.springthorpe-booking-amelia {
  margin: 0;
  padding: 0;
}

/* #amelia-container carries a 100px top margin by default which pushes the
   booking form down relative to the image in the adjacent left column.
   Reset to zero and replace with a modest padding so the form aligns with
   the top of the neighbouring content image. */
.springthorpe-booking-amelia #amelia-container {
  margin-top: 0 !important;
  padding-top: 30px !important;
}

/* Amelia height, overflow, and footer-overlap fix.
   DevTools analysis (2026-05-25) identified the full constraint chain:
     #amelia-v2-booking-1000 / .am-fs__wrapper  — outer wrappers with fixed height
     .am-fs__main              — height set by a JS reactive Vue inline style;
                                 overflow:hidden clips content beyond that height
     .am-fs__main-inner        — height:100% inherits the JS height; needs explicit
                                 flex-column layout so header/content/footer stack
     .am-fs__main-content      — hardcoded height:444px in Amelia's own CSS
     .am-fs-dt__calendar /
     .am-advsc__wrapper        — internal calendar wrappers, also fixed-height
     .am-fs__main-footer       — position:absolute pins footer to the bottom of the
                                 old fixed container → overlaps content on taller
                                 steps (calendar view, services with custom fields).
   min-height:444px on content prevents collapse when Vue's <Transition> briefly
   sets the leaving step to position:absolute (contributing 0 height). */

.springthorpe-booking-amelia #amelia-v2-booking-1000,
.springthorpe-booking-amelia .am-fs__wrapper,
.springthorpe-booking-amelia .am-fs__main {
  height: auto !important;
  overflow: visible !important;
}

.springthorpe-booking-amelia .am-fs__main-inner {
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  overflow: visible !important;
}

.springthorpe-booking-amelia .am-fs__main-content {
  height: auto !important;
  max-height: none !important;
  min-height: 444px;
}

.springthorpe-booking-amelia .am-fs-dt__calendar,
.springthorpe-booking-amelia .am-advsc__wrapper {
  height: auto !important;
  overflow: visible !important;
}

/* Footer overlap fix — position:absolute pins the Continue button to the
   bottom of the old fixed-height container; static puts it back in flow. */
.springthorpe-booking-amelia .am-fs__main-footer {
  margin-top: 1.25rem;
  position: static !important;
}

/* "Get in Touch" contact block in the Amelia sidebar.
   Default Amelia styles centre-align this text and can allow the email
   address to wrap onto a second line. Left-align and reduce font size so
   the label and address sit cleanly on one line each. */
.springthorpe-booking-amelia .am-fs-sb__support,
.springthorpe-booking-amelia .am-fs-sb__support :is(p, span, a, div) {
  text-align: left !important;
}

.springthorpe-booking-amelia :is(.am-fs-sb__support-email, .am-fs-sb__support a) {
  display: block;
  font-size: 0.68rem !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
  overflow-wrap: normal !important;
  white-space: nowrap;
  word-break: normal !important;
}


.springthorpe-booking-feature-image {
  aspect-ratio: 1800 / 1012;
  margin: 0 0 clamp(1.5rem, 3vw, 2.4rem);
  max-width: var(--springthorpe-shell-max);
  overflow: hidden;
  width: 100%;
}

.springthorpe-booking-feature-image img {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  width: 100%;
}

body.springthorpe-theme-smash .springthorpe-booking-feature-image img {
  max-width: none;
  height: 100% !important;
  object-position: center center;
  width: 100% !important;
}

/* Content-level photo — sits inside the left column under the page heading,
   not a full-width hero. */
.springthorpe-booking-content-image {
  aspect-ratio: 16 / 9;
  border-radius: var(--springthorpe-radius-card);
  margin: 0.5rem 0 1.25rem;
  overflow: hidden;
  width: 100%;
}

.springthorpe-booking-content-image img {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  width: 100%;
}

body.springthorpe-theme-smash .springthorpe-booking-content-image img {
  height: 100% !important;
  max-width: none;
  object-position: center center;
  width: 100% !important;
}

.springthorpe-booking-facts {
  display: grid;
  gap: 0;
  margin: 0;
}

.springthorpe-booking-facts div {
  border-top: 1px solid var(--springthorpe-color-border);
  padding-block: 0.9rem;
}

.springthorpe-booking-facts dt {
  color: var(--springthorpe-color-heading);
  font-weight: 760;
}

.springthorpe-booking-facts dd {
  color: var(--springthorpe-color-muted);
  line-height: 1.5;
  margin: 0.25rem 0 0;
}

.springthorpe-booking-courts {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.springthorpe-booking-action {
  min-width: 0;
  width: 100%;
}

.springthorpe-booking-open-court,
.springthorpe-booking-unavailable {
  background: color-mix(in srgb, var(--springthorpe-color-soft) 52%, #ffffff);
  border-top: 1px solid var(--springthorpe-color-border);
  box-sizing: border-box;
  padding: 1.15rem 1.25rem;
}

.springthorpe-booking-unavailable h2 {
  color: var(--springthorpe-color-heading);
  font-size: 1.25rem;
  line-height: 1.15;
  margin: 0 0 0.45rem;
}

.springthorpe-booking-open-court p,
.springthorpe-booking-unavailable p {
  color: var(--springthorpe-color-muted);
  line-height: 1.5;
  margin: 0;
}

.springthorpe-booking-widget,
.springthorpe-customer-panel {
  --am-c-primary: var(--springthorpe-color-primary);
  --am-c-primary-op03: color-mix(in srgb, var(--springthorpe-color-primary) 5%, transparent);
  --am-c-primary-op05: color-mix(in srgb, var(--springthorpe-color-primary) 8%, transparent);
  --am-c-primary-op10: color-mix(in srgb, var(--springthorpe-color-primary) 12%, transparent);
  --am-c-primary-op20: color-mix(in srgb, var(--springthorpe-color-primary) 22%, transparent);
  --am-c-primary-op30: color-mix(in srgb, var(--springthorpe-color-primary) 30%, transparent);
  --am-c-primary-op60: color-mix(in srgb, var(--springthorpe-color-primary) 60%, transparent);
  --am-c-success: var(--springthorpe-color-primary);
  --am-c-main-bgr: var(--springthorpe-color-surface);
  --am-c-card-bgr: var(--springthorpe-color-surface);
  --am-c-main-heading-text: var(--springthorpe-color-heading);
  --am-c-main-text: var(--springthorpe-color-text);
  --am-c-main-text-op80: color-mix(in srgb, var(--springthorpe-color-text) 80%, transparent);
  --am-c-main-text-op60: color-mix(in srgb, var(--springthorpe-color-text) 60%, transparent);
  --am-c-main-text-op40: color-mix(in srgb, var(--springthorpe-color-text) 40%, transparent);
  --am-c-main-text-op25: color-mix(in srgb, var(--springthorpe-color-text) 25%, transparent);
  --am-c-sb-bgr: var(--springthorpe-color-primary);
  --am-c-sb-text: #ffffff;
  --am-c-msd-bgr: var(--springthorpe-color-primary);
  --am-c-msd-text: #ffffff;
  --am-c-msd-text-op10: rgba(255, 255, 255, 0.14);
  --am-c-msd-text-op60: rgba(255, 255, 255, 0.62);
  --am-c-inp-bgr: #ffffff;
  --am-c-inp-border: color-mix(in srgb, var(--springthorpe-color-heading) 24%, transparent);
  --am-c-inp-text: var(--springthorpe-color-text);
  --am-c-inp-placeholder: color-mix(in srgb, var(--springthorpe-color-text) 55%, transparent);
  --am-c-drop-bgr: #ffffff;
  --am-c-drop-text: var(--springthorpe-color-text);
  --am-c-btn-prim: var(--springthorpe-color-primary);
  --am-c-btn-prim-text: #ffffff;
  --am-c-btn-sec: #ffffff;
  --am-c-btn-sec-text: var(--springthorpe-color-heading);
  color: var(--springthorpe-color-text);
}

.springthorpe-booking-widget {
  margin-left: 0;
  max-width: 100%;
  width: 100%;
}

.springthorpe-booking-widget .amelia-v2-booking,
.springthorpe-booking-widget .amelia-v2-booking #amelia-container.am-fs__wrapper {
  max-width: 100% !important;
  width: 100% !important;
}

.springthorpe-booking-widget .amelia-v2-booking #amelia-container.am-fs__wrapper {
  --am-mw-main: 100%;
  --am-mw-fsm: 100%;
  height: auto !important;
  justify-content: stretch;
  margin: 0 !important;
  min-height: clamp(44rem, 84vh, 58rem);
}

.springthorpe-booking-widget .amelia-v2-booking #amelia-container .am-fs__main {
  --am-mw-fsm: 100%;
  flex: 1 1 auto;
  max-width: none !important;
  min-height: clamp(44rem, 84vh, 58rem);
}

.springthorpe-booking-widget .amelia-v2-booking #amelia-container .am-fs__main-inner {
  display: flex;
  flex-direction: column;
  height: auto !important;
  min-height: inherit;
  overflow: visible !important;
}

.springthorpe-booking-widget .amelia-v2-booking #amelia-container .am-fs__main-content {
  flex: 1 1 auto;
  height: auto !important;
  max-height: none !important;
  overflow-y: visible !important;
}

.springthorpe-booking-widget .amelia-v2-booking #amelia-container .am-fs__main-footer {
  margin-top: auto;
  position: static !important;
}

.springthorpe-customer-panel {
  max-width: 100%;
}

.springthorpe-customer-panel #amelia-container {
  --am-c-primary: var(--springthorpe-color-primary) !important;
  --am-c-sb-bgr: var(--springthorpe-color-primary) !important;
  --am-c-sb-text: #ffffff !important;
  --am-c-msd-bgr: var(--springthorpe-color-primary) !important;
  --am-c-msd-text: #ffffff !important;
  --am-c-msd-text-op10: rgba(255, 255, 255, 0.14) !important;
  --am-c-msd-text-op60: rgba(255, 255, 255, 0.62) !important;
  --am-c-btn-prim: var(--springthorpe-color-primary) !important;
  --am-c-btn-prim-text: #ffffff !important;
}

.springthorpe-booking-widget :is(.am-fs__main, .am-fs__main-content, .am-fs__main-footer, .el-date-picker, .el-picker-panel),
.springthorpe-customer-panel :is([class*="am-"], [class*="el-"], .el-date-picker, .el-picker-panel) {
  --am-c-primary: var(--springthorpe-color-primary) !important;
  --el-color-primary: var(--springthorpe-color-primary) !important;
}

.springthorpe-booking-widget :is(.am-button.am-button--filled, .am-fs__main-footer button, .am-fs__main button.am-button--filled, .el-button--primary),
.springthorpe-customer-panel :is(.am-button.am-button--filled, .am-button--primary, .el-button--primary, button[class*="primary"], button[class*="filled"]) {
  background-color: var(--springthorpe-color-primary) !important;
  border-color: var(--springthorpe-color-primary) !important;
  color: #ffffff !important;
}

.springthorpe-booking-widget :is(.am-button.am-button--filled, .am-fs__main-footer button, .am-fs__main button.am-button--filled, .el-button--primary):hover,
.springthorpe-booking-widget :is(.am-button.am-button--filled, .am-fs__main-footer button, .am-fs__main button.am-button--filled, .el-button--primary):focus,
.springthorpe-customer-panel :is(.am-button.am-button--filled, .am-button--primary, .el-button--primary, button[class*="primary"], button[class*="filled"]):hover,
.springthorpe-customer-panel :is(.am-button.am-button--filled, .am-button--primary, .el-button--primary, button[class*="primary"], button[class*="filled"]):focus {
  background-color: var(--springthorpe-color-primary-hover) !important;
  border-color: var(--springthorpe-color-primary-hover) !important;
}

.springthorpe-customer-panel .am-date-picker__input.am-daterange {
  align-items: center;
  display: flex;
  white-space: nowrap;
}

.springthorpe-customer-panel .am-date-picker__input-end::before {
  content: "-";
  display: inline-block;
  margin-inline: 0.45rem;
}

.springthorpe-booking-widget :is(.am-fs-sb, .am-fs__sidebar, .am-step-booking-catalog__sidebar) {
  background: var(--springthorpe-color-primary) !important;
}

.springthorpe-customer-panel .amelia-v2-booking #amelia-container.am-cap__wrapper .am-msd.am-slide-popup__block-inner {
  background-color: var(--springthorpe-color-primary) !important;
  color: #ffffff !important;
}

.springthorpe-customer-panel .amelia-v2-booking #amelia-container.am-cap__wrapper .am-msd__item {
  color: #ffffff !important;
}

.springthorpe-customer-panel .amelia-v2-booking #amelia-container.am-cap__wrapper .am-msd__item.selected {
  background-color: rgba(255, 255, 255, 0.14) !important;
}

.springthorpe-customer-panel .amelia-v2-booking #amelia-container.am-cap__wrapper .am-cc__heading:has(.am-cc__status-canceled, .am-cc__status-no-show) .am-cc__heading-actions {
  display: none !important;
}

.springthorpe-customer-panel .amelia-v2-booking #amelia-container.am-cap__wrapper .am-cc:has(.am-cc__status-canceled, .am-cc__status-no-show) :is(.am-cc__heading-actions, .am-cc__edit-btn) {
  display: none !important;
}

.springthorpe-customer-panel :is(.am-fs-sb, .am-fs-sb__page, .am-fs__sidebar, .am-msd, .am-cap__wrapper > aside, .am-cap__wrapper > nav, .am-cap__wrapper > div:first-child) {
  background: var(--springthorpe-color-primary) !important;
}

.springthorpe-booking-widget :is(.am-fs-sb__step-checker, .am-fs__sidebar [class*="checker"], .am-step-booking-catalog__sidebar [class*="checker"]) {
  background-color: var(--springthorpe-color-accent) !important;
  color: #ffffff !important;
}

.springthorpe-customer-panel :is(.am-fs-sb__step-checker, .am-fs__sidebar [class*="checker"], .am-step-booking-catalog__sidebar [class*="checker"], .am-msd__item.am-selected, .am-msd__item-wrapper.am-selected, .am-msd__item-wrapper:hover) {
  background-color: color-mix(in srgb, var(--springthorpe-color-primary-hover) 78%, #ffffff) !important;
  color: #ffffff !important;
}

.springthorpe-booking-widget :is(.am-fs-sb__support-email, .am-fs-sb__support a) {
  display: block;
  font-size: 0.72rem !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
  overflow-wrap: normal !important;
  text-align: center;
  white-space: nowrap;
  word-break: normal !important;
}

.springthorpe-booking-widget :is(.am-calendar-picker__day:not(.-disabled-), .c-day-content:not(.disabled), .el-date-table td.available:not(.disabled) span, .el-date-table td.available:not(.disabled) div),
.springthorpe-booking-widget :is(.el-date-table td.available:not(.disabled), .el-date-table td.today:not(.disabled), .el-date-table td.current:not(.disabled)) :is(span, div),
.springthorpe-booking-widget :is(.am-calendar-picker__day, .c-day-content) :is(span, div) {
  border-color: color-mix(in srgb, var(--springthorpe-color-primary) 68%, transparent) !important;
  color: var(--springthorpe-color-primary) !important;
}

.springthorpe-booking-widget :is(.am-calendar-picker__day.-selected-, .am-calendar-picker__day.is-selected, .c-day-content.is-selected, .el-date-table td.current:not(.disabled) span, .el-date-table td.current:not(.disabled) div) {
  background-color: color-mix(in srgb, var(--springthorpe-color-primary) 20%, transparent) !important;
  border-color: var(--springthorpe-color-primary) !important;
  color: var(--springthorpe-color-heading) !important;
}

.springthorpe-booking-widget :is(.am-calendar-picker__day.-selected-, .am-calendar-picker__day.is-selected, .c-day-content.is-selected, .el-date-table td.current:not(.disabled) span, .el-date-table td.current:not(.disabled) div)::after {
  background: var(--springthorpe-color-primary) !important;
}

.springthorpe-booking-widget :is(.am-advsc__slot-wrapper, .am-advsc__slot, .am-advsc__slot-inner, .am-advsc__slots, .am-advsc__slots-wrapper) {
  background-color: color-mix(in srgb, var(--springthorpe-color-primary) 12%, transparent) !important;
  border-color: color-mix(in srgb, var(--springthorpe-color-primary) 48%, transparent) !important;
  color: var(--springthorpe-color-text) !important;
}

.springthorpe-booking-widget :is(a, .am-link, .am-fs__main a),
.springthorpe-customer-panel :is(a, .am-link, .el-link, .el-tabs__item.is-active, .el-tabs__item:hover, [class*="tab"][class*="active"], [class*="tab"][class*="selected"]) {
  color: var(--springthorpe-color-primary);
}

.springthorpe-booking-widget .am-lite-footer,
.springthorpe-booking-widget .am-lite-footer-link,
.springthorpe-booking-widget a[href*="wpamelia.com"],
.springthorpe-booking-widget a[href*="ameliabooking"],
.springthorpe-customer-panel :is(.am-lite-footer, .am-lite-footer-link, a[href*="wpamelia.com"], a[href*="ameliabooking"]) {
  display: none !important;
}

.springthorpe-customer-panel :is(.el-tabs__active-bar, [class*="active-bar"]),
.springthorpe-customer-panel [class*="tab"]::after,
.springthorpe-customer-panel [class*="selected"]::after {
  background-color: var(--springthorpe-color-primary) !important;
}

.springthorpe-customer-panel :is(.el-radio__input.is-checked .el-radio__inner, .el-checkbox__input.is-checked .el-checkbox__inner, .el-switch.is-checked .el-switch__core, [class*="checked"] [class*="inner"]) {
  background-color: var(--springthorpe-color-primary) !important;
  border-color: var(--springthorpe-color-primary) !important;
}

.springthorpe-customer-panel :is(.el-select-dropdown__item.selected, .el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is-disabled):hover, [class*="selected"]) {
  color: var(--springthorpe-color-primary) !important;
}

.el-popper.el-popover.am-cc__popper:not(:has(.am-cc__edit-item)) {
  display: none !important;
}

.springthorpe-smash-footer {
  background: #171a17;
  color: #f4f1e8;
  margin: clamp(1.25rem, 3vw, 2.5rem) calc(50% - 50vw) 0;
  overflow: hidden;
  position: relative;
  text-align: left;
  width: 100vw;
}

.springthorpe-smash-footer::before {
  background: var(--springthorpe-color-accent);
  content: "";
  height: 0.28rem;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.springthorpe-smash-footer a {
  color: inherit;
  text-decoration: none;
}

.springthorpe-smash-footer a:hover,
.springthorpe-smash-footer a:focus {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.springthorpe-smash-footer :where(.wp-block-group, .wp-block-image, .wp-block-heading, p) {
  margin-block-end: 0 !important;
  margin-block-start: 0 !important;
}

.springthorpe-smash-footer :where(.wp-block-group, .wp-block-image, .wp-block-heading, p, nav) {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100% !important;
  text-align: left !important;
}

.springthorpe-smash-footer__inner {
  align-items: start;
  box-sizing: border-box;
  display: grid;
  gap: clamp(0.75rem, 1.5vw, 1.5rem);
  grid-template-columns: minmax(0, 0.43fr) minmax(0, 0.4fr) minmax(0, 0.45fr) minmax(0, 0.65fr) minmax(0, 1fr);
  margin-inline: auto !important;
  max-width: var(--springthorpe-shell-max) !important;
  padding-block: clamp(3rem, 6vw, 5rem);
  padding-inline: var(--theme-var-page_fullwide_extra, 60px);
  width: 100%;
}

.springthorpe-smash-footer__brand {
  align-content: start;
  align-self: start;
  display: grid;
  gap: 1.2rem;
  padding-top: 0.1rem;
}

.springthorpe-smash-footer__brand p,
.springthorpe-smash-footer__contact p {
  color: rgba(244, 241, 232, 0.72);
  line-height: 1.55;
  margin: 0;
}

.springthorpe-smash-footer__wordmark {
  align-items: center;
  display: inline-flex;
  justify-self: start;
  margin-top: 0.15rem;
  max-width: min(12.75rem, 100%);
}

.springthorpe-smash-footer__wordmark img {
  display: block;
  height: auto !important;
  max-width: 100%;
  width: clamp(10.75rem, 13.75vw, 12.75rem) !important;
}

.springthorpe-smash-footer__column {
  align-content: start;
  display: grid;
  gap: 0.7rem;
  justify-items: start;
  text-align: left;
}

.springthorpe-smash-footer__column h2 {
  color: #ffffff;
  font-size: 0.72rem;
  line-height: 1.1;
  margin: 0 0 0.4rem;
  text-transform: uppercase;
}

.springthorpe-smash-footer__column a,
.springthorpe-smash-footer__column p {
  font-size: 0.82rem;
  text-align: left;
}

.springthorpe-smash-footer__column a {
  color: rgba(244, 241, 232, 0.76);
  font-weight: 400;
}

.springthorpe-smash-footer__column:not(.springthorpe-smash-footer__contact) a {
  white-space: nowrap;
}

.springthorpe-smash-footer__contact a,
.springthorpe-smash-footer__contact p {
  overflow-wrap: anywhere;
}

.springthorpe-smash-footer__socials {
  gap: 0.85rem;
}

.springthorpe-smash-footer__social {
  border-top: 1px solid rgba(244, 241, 232, 0.18);
  display: block;
  padding-top: 0.85rem;
}

.springthorpe-smash-footer__social a {
  align-items: center;
  display: grid;
  gap: 0.8rem;
  grid-template-columns: 2.45rem minmax(0, 1fr);
}

.springthorpe-smash-footer__social span {
  align-items: center;
  background: var(--springthorpe-color-primary);
  border-radius: 50%;
  color: #ffffff;
  display: inline-flex;
  font-size: 1.35rem;
  font-weight: 850;
  height: 2.45rem;
  justify-content: center;
  line-height: 1;
  width: 2.45rem;
}

.springthorpe-smash-footer__social strong {
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.2;
}

.springthorpe-smash-footer__bottom {
  align-items: center;
  border-top: 1px solid rgba(244, 241, 232, 0.16);
  box-sizing: border-box;
  color: rgba(244, 241, 232, 0.62);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 2rem;
  justify-content: space-between;
  margin-inline: auto;
  max-width: var(--springthorpe-shell-max);
  padding-block: 1.1rem 1.25rem;
  padding-inline: var(--theme-var-page_fullwide_extra, 60px);
}

.springthorpe-smash-footer__bottom p,
.springthorpe-smash-footer__bottom a {
  font-size: 0.72rem;
  margin: 0;
}

.spt-portal-version {
  color: rgba(244, 241, 232, 0.42);
  font-size: 0.68rem;
  margin-left: 0.45em;
}

@media (min-width: 1191px) {
  .springthorpe-smash-footer__contact a[href^="mailto:"] {
    font-size: 0.78rem;
  }
}

@media (max-width: 1190px) and (min-width: 761px) {
  .springthorpe-smash-footer__inner {
    gap: 2.25rem 2rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .springthorpe-smash-footer__brand {
    grid-column: 1 / -1;
    max-width: 34rem;
  }
}

body.springthorpe-soft-launch .springthorpe-smash-footer p:has(> a[href*="/member/login"]),
body.springthorpe-soft-launch .springthorpe-smash-footer p:has(> a[href*="/member/signup"]) {
  display: none !important;
}

body.springthorpe-soft-launch .springthorpe-smash-footer [aria-label="Footer booking navigation"] {
  display: none !important;
}

/* With Bookings column removed, rebalance the 4-column grid so Contact
   gets enough width for the email address to sit on one line. */
body.springthorpe-soft-launch .springthorpe-smash-footer__inner {
  grid-template-columns: minmax(0, 0.43fr) minmax(0, 0.4fr) minmax(0, 1.1fr) minmax(0, 1fr);
}

.springthorpe-profile-summary dl {
  display: grid;
  gap: 0;
  margin: 1rem 0 0;
}

.springthorpe-profile-summary--editable {
  max-width: var(--springthorpe-shell-max) !important;
  width: min(100%, var(--springthorpe-shell-max)) !important;
}

.springthorpe-profile-summary--with-bookings {
  display: grid;
  align-items: start;
  gap: clamp(2rem, 5vw, 5rem);
  grid-template-columns: minmax(16rem, 0.62fr) minmax(25rem, 1fr);
  max-width: var(--springthorpe-shell-max);
}

.springthorpe-profile-summary--editable .springthorpe-profile-summary__columns {
  align-items: start;
  column-gap: clamp(2rem, 4vw, 4rem) !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  margin-bottom: 0;
  max-width: var(--springthorpe-shell-max);
  row-gap: clamp(2rem, 4vw, 4rem) !important;
  width: 100%;
}

.springthorpe-profile-summary--editable .springthorpe-profile-summary__columns > .wp-block-column {
  flex-basis: auto !important;
  flex-grow: 0 !important;
  margin: 0;
  min-width: 0;
  width: auto !important;
}

.springthorpe-profile-summary__left {
  display: grid;
  gap: clamp(1.35rem, 3vw, 2rem);
}

.springthorpe-profile-summary__intro {
  display: grid;
  gap: 0.95rem;
}

.springthorpe-profile-summary__intro .springthorpe-booking-summary {
  margin: 0;
}

.springthorpe-profile-summary--with-bookings .springthorpe-profile-bookings,
.springthorpe-profile-summary--with-bookings .springthorpe-customer-panel,
.springthorpe-profile-summary--editable .springthorpe-profile-bookings,
.springthorpe-profile-summary--editable .springthorpe-customer-panel {
  margin-block: 0;
  max-width: none;
}

.springthorpe-profile-summary__notice {
  grid-column: 1 / -1;
  margin: 0;
}

.springthorpe-profile-summary__account {
  background: color-mix(in srgb, var(--springthorpe-color-soft) 72%, #ffffff);
  border-top: 3px solid var(--springthorpe-color-primary);
  padding: 1.15rem;
}

.springthorpe-profile-summary dl > div {
  border-top: 1px solid var(--springthorpe-color-border);
  padding-block: 0.8rem;
}

.springthorpe-profile-summary dt {
  color: var(--springthorpe-color-heading);
  font-weight: 760;
}

.springthorpe-profile-summary dd {
  color: var(--springthorpe-color-muted);
  margin: 0.25rem 0 0;
}

.springthorpe-profile-account-actions {
  border-top: 1px solid var(--springthorpe-color-border);
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
  padding-top: 1rem;
}

.springthorpe-profile-account-action {
  border: 1px solid var(--springthorpe-color-border);
  box-sizing: border-box;
  color: var(--springthorpe-color-heading);
  display: inline-flex;
  font-size: 0.9rem;
  font-weight: 760;
  line-height: 1.2;
  padding: 0.72rem 0.85rem;
  text-decoration: none;
}

.springthorpe-profile-account-action:hover,
.springthorpe-profile-account-action:focus,
.springthorpe-profile-account-action.is-active {
  background: var(--springthorpe-color-heading);
  border-color: var(--springthorpe-color-heading);
  color: #ffffff;
  text-decoration: none;
}

.springthorpe-profile-account-form {
  border-top: 1px solid var(--springthorpe-color-border);
  display: grid;
  gap: 0.9rem;
  margin-top: 1rem;
  padding-top: 1rem;
}

.springthorpe-profile-account-form label {
  display: grid;
  gap: 0.4rem;
}

.springthorpe-profile-account-form label span {
  color: var(--springthorpe-color-heading);
  font-size: 0.82rem;
  font-weight: 780;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.springthorpe-profile-account-form input {
  border: 1px solid var(--springthorpe-color-border);
  box-sizing: border-box;
  font: inherit;
  padding: 0.74rem 0.8rem;
  width: 100%;
}

.springthorpe-profile-account-form button {
  background: var(--springthorpe-color-primary);
  border: 0;
  color: #ffffff;
  cursor: pointer;
  font: inherit;
  font-weight: 760;
  justify-self: start;
  padding: 0.78rem 1.05rem;
}

.springthorpe-profile-account-form button:hover,
.springthorpe-profile-account-form button:focus {
  background: var(--springthorpe-color-primary-hover);
}

.springthorpe-profile-bookings__list {
  border-bottom: 1px solid var(--springthorpe-color-border);
  display: grid;
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
}

.springthorpe-profile-bookings__list li {
  border-top: 1px solid var(--springthorpe-color-border);
  align-items: center;
  display: grid;
  gap: 0.45rem;
  grid-template-columns: minmax(0, 1fr) auto;
  padding-block: 0.95rem;
}

.springthorpe-profile-bookings__details,
.springthorpe-profile-bookings__note {
  color: var(--springthorpe-color-muted);
  font-size: 0.95rem;
  line-height: 1.45;
}

.springthorpe-profile-bookings__status {
  color: var(--springthorpe-color-primary);
  font-weight: 760;
}

.springthorpe-profile-bookings__notice {
  border-left: 3px solid var(--springthorpe-color-primary);
  border-radius: var(--springthorpe-radius-control);
  font-size: 0.94rem;
  line-height: 1.45;
  margin-bottom: 1.25rem;
  padding: 0.85rem 1rem;
}

.springthorpe-profile-bookings__notice--success {
  background: var(--springthorpe-color-soft);
  border-color: var(--springthorpe-color-primary);
  color: var(--springthorpe-color-heading);
}

.springthorpe-profile-bookings__notice--error {
  background: #fdf3f3;
  border-color: #b94040;
  color: #7a2020;
}

.springthorpe-profile-bookings__cancel {
  justify-self: end;
  margin: 0;
}

.springthorpe-profile-bookings__cancel button {
  align-items: center;
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--springthorpe-color-primary) 34%, transparent);
  border-radius: var(--springthorpe-radius-control);
  color: var(--springthorpe-color-primary);
  cursor: pointer;
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 760;
  justify-content: center;
  line-height: 1.2;
  min-height: 2rem;
  padding: 0.4rem 0.75rem;
}

.springthorpe-profile-bookings__cancel button:hover,
.springthorpe-profile-bookings__cancel button:focus {
  background: var(--springthorpe-color-primary);
  border-color: var(--springthorpe-color-primary);
  color: #ffffff;
}

.springthorpe-profile-summary--with-bookings .springthorpe-customer-panel__embed .am-fs__main,
.springthorpe-profile-summary--editable .springthorpe-customer-panel__embed .am-fs__main {
  border-radius: var(--springthorpe-radius-control);
  box-shadow: 0 1.6rem 3rem rgba(34, 32, 29, 0.08);
}

.springthorpe-profile-summary--with-bookings .springthorpe-customer-panel__embed .am-fs-sb,
.springthorpe-profile-summary--with-bookings .springthorpe-customer-panel__embed .am-fs-sb :is(p, span, div),
.springthorpe-profile-summary--editable .springthorpe-customer-panel__embed .am-fs-sb,
.springthorpe-profile-summary--editable .springthorpe-customer-panel__embed .am-fs-sb :is(p, span, div) {
  color: #ffffff !important;
}

.springthorpe-profile-summary--with-bookings .springthorpe-customer-panel__embed .am-fs-sb__page.selected,
.springthorpe-profile-summary--with-bookings .springthorpe-customer-panel__embed .am-fs-sb__page:hover,
.springthorpe-profile-summary--editable .springthorpe-customer-panel__embed .am-fs-sb__page.selected,
.springthorpe-profile-summary--editable .springthorpe-customer-panel__embed .am-fs-sb__page:hover {
  background: rgba(255, 255, 255, 0.1) !important;
}

body.springthorpe-approved-theme-preview footer .wp-block-group:has(a[href*="wordpress.org"]),
body.springthorpe-approved-theme-preview footer p:has(a[href*="wordpress.org"]) {
  display: none !important;
}

body.springthorpe-theme-smash .menu_main_nav_area .menu_main_nav,
body.springthorpe-theme-smash .menu_mobile_nav_area .menu_mobile_nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
}

@media (min-width: 1025px) {
  body.springthorpe-theme-smash .top_panel_default .top_panel_navi .columns_wrap {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
  }

  body.springthorpe-theme-smash .top_panel_default .top_panel_navi .sc_layouts_column {
    float: none;
  }

  body.springthorpe-theme-smash .top_panel_default .top_panel_navi .sc_layouts_column_align_right {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: clamp(0.65rem, 1vw, 1rem);
    justify-content: flex-end;
    min-width: 0;
  }

  body.springthorpe-theme-smash .top_panel_default .top_panel_navi .sc_layouts_column_align_right > .sc_layouts_item {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
  }

  body.springthorpe-theme-smash .top_panel_default .top_panel_navi .sc_layouts_column_align_right > .sc_layouts_item:first-child {
    flex: 1 1 auto;
    min-width: 0;
  }

  body.springthorpe-theme-smash .top_panel_default .sc_layouts_logo,
  body.springthorpe-theme-smash .top_panel_default .header_search {
    flex: 0 0 auto;
  }

  body.springthorpe-theme-smash .top_panel_default .menu_main_nav_area {
    flex: 1 1 auto;
    min-width: 0;
  }

  body.springthorpe-theme-smash .top_panel_default .menu_main_nav_area .menu_main_nav {
    flex-wrap: nowrap;
    gap: 0.35rem clamp(0.7rem, 1vw, 1rem);
  }

  body.springthorpe-theme-smash .top_panel_default .menu_main_nav_area .menu_main_nav > li > a {
    padding-left: 0;
    padding-right: 0;
    white-space: nowrap;
  }

  body.springthorpe-theme-smash .top_panel_default .header_search {
    box-sizing: border-box;
    margin-inline: clamp(0.45rem, 0.8vw, 0.75rem);
    min-width: 1.75rem;
    width: 1.75rem;
  }

  body.springthorpe-theme-smash .top_panel_default .header_search:not(.search_opened) .search_form_wrap,
  body.springthorpe-theme-smash .top_panel_default .header_search:not(.search_opened) .search_form {
    box-sizing: border-box;
    max-width: 1.75rem;
    overflow: visible;
    width: 1.75rem;
  }

  body.springthorpe-theme-smash .top_panel_default .header_search:not(.search_opened) .search_field {
    max-width: 0;
    opacity: 0;
    width: 0;
  }

  body.springthorpe-theme-smash .top_panel_default .header_search:not(.search_opened) .search_submit {
    display: inline-flex;
    height: 1.75rem;
    justify-content: center;
    line-height: 1;
    position: static;
    width: 1.75rem;
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen.search_opened .search_form_wrap {
    align-items: center;
    background: #f2f7f8;
    display: flex;
    inset: 0;
    justify-content: center;
    padding: clamp(2rem, 5vw, 5rem);
    position: fixed;
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen.search_opened .search_form_wrap::before {
    background: url("../img/springthorpe-logo@2x.png") left center / contain no-repeat;
    content: "";
    height: clamp(3.25rem, 5vw, 4.5rem);
    left: clamp(2rem, 5vw, 5rem);
    position: absolute;
    top: clamp(1.75rem, 4vw, 3.5rem);
    width: clamp(13rem, 18vw, 18rem);
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen.search_opened .search_form {
    left: auto;
    max-width: 54rem;
    right: auto;
    top: auto;
    transform: none;
    width: min(100%, 54rem);
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen.search_opened .search_field {
    border-bottom-color: rgba(15, 15, 15, 0.2);
    color: #0f0f0f;
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1.15;
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen.search_opened .search_field::placeholder {
    color: rgba(15, 15, 15, 0.46);
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen.search_opened .search_close {
    color: #0f0f0f;
    position: fixed;
    right: clamp(2rem, 5vw, 5rem);
    top: clamp(2rem, 4vw, 3.75rem);
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen.search_opened .search_submit {
    color: #0f0f0f;
  }
}

body.springthorpe-theme-smash .menu_mobile_nav_area .menu_mobile_nav {
  align-items: stretch;
  display: grid;
  gap: 0.65rem;
}

body.springthorpe-theme-smash .menu_main_nav_area .springthorpe-nav-item > a,
body.springthorpe-theme-smash .menu_mobile_nav_area .springthorpe-nav-item > a {
  color: inherit;
  font-weight: 700;
}

body.springthorpe-theme-smash .menu_main_nav_area .springthorpe-nav-item.current-menu-item > a,
body.springthorpe-theme-smash .menu_mobile_nav_area .springthorpe-nav-item.current-menu-item > a {
  color: var(--springthorpe-color-primary, #4f6f52);
}

body.springthorpe-theme-smash .springthorpe-member-hub,
body.springthorpe-theme-smash .springthorpe-booking-hub {
  animation: springthorpe-soft-enter 360ms ease both;
}

body.page-id-10.springthorpe-theme-smash .page_content_wrap,
body.page-id-15.springthorpe-theme-smash .page_content_wrap,
body.parent-pageid-15.springthorpe-theme-smash .page_content_wrap,
body.page-id-21.springthorpe-theme-smash .page_content_wrap,
body.page-id-22.springthorpe-theme-smash .page_content_wrap,
body.page-id-23.springthorpe-theme-smash .page_content_wrap,
body.page-id-24.springthorpe-theme-smash .page_content_wrap,
body.page-id-78.springthorpe-theme-smash .page_content_wrap,
body.post-type-archive-tribe_events.springthorpe-theme-smash .page_content_wrap {
  padding-top: clamp(1rem, 2vw, 1.6rem) !important;
}

body.page-id-10.springthorpe-theme-smash .top_panel_title,
body.page-id-15.springthorpe-theme-smash .top_panel_title,
body.parent-pageid-15.springthorpe-theme-smash .top_panel_title,
body.page-id-21.springthorpe-theme-smash .top_panel_title,
body.page-id-22.springthorpe-theme-smash .top_panel_title,
body.page-id-23.springthorpe-theme-smash .top_panel_title,
body.page-id-24.springthorpe-theme-smash .top_panel_title,
body.page-id-78.springthorpe-theme-smash .top_panel_title,
body.post-type-archive-tribe_events.springthorpe-theme-smash .top_panel_title {
  padding-top: clamp(1.25rem, 2.5vw, 2rem) !important;
  padding-bottom: clamp(1.35rem, 2.75vw, 2.25rem) !important;
}

body.page-id-10.springthorpe-theme-smash .page_wrap .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal,
body.page-id-15.springthorpe-theme-smash .page_wrap .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal,
body.parent-pageid-15.springthorpe-theme-smash .page_wrap .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal,
body.page-id-21.springthorpe-theme-smash .page_wrap .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal,
body.page-id-22.springthorpe-theme-smash .page_wrap .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal,
body.page-id-23.springthorpe-theme-smash .page_wrap .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal,
body.page-id-24.springthorpe-theme-smash .page_wrap .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal,
body.page-id-78.springthorpe-theme-smash .page_wrap .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal,
body.post-type-archive-tribe_events.springthorpe-theme-smash .page_wrap .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal {
  padding-top: clamp(1rem, 1.75vw, 1.5rem) !important;
  padding-bottom: clamp(1.1rem, 2vw, 1.65rem) !important;
}

body.springthorpe-theme-smash .top_panel_title.sc_layouts_row.sc_layouts_row_type_normal {
  display: none !important;
}

body.springthorpe-theme-smash .page_content_wrap {
  padding-top: clamp(0.85rem, 1.6vw, 1.25rem) !important;
  padding-bottom: clamp(1.25rem, 3vw, 2.5rem) !important;
}

body.home.springthorpe-theme-smash .page_content_wrap {
  padding-top: 0 !important;
  padding-bottom: clamp(1rem, 2.5vw, 2rem) !important;
}

@keyframes springthorpe-soft-enter {
  from {
    opacity: 0;
    transform: translateY(0.5rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.springthorpe-events-operator-actions {
  align-items: center;
  background: #f7fbf7;
  border: 1px solid #d5e4d6;
  border-left: 4px solid #4f8f42;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr) auto;
  margin: 0 0 2rem;
  padding: 1rem 1.1rem;
}

.springthorpe-events-operator-actions strong,
.springthorpe-events-operator-actions span {
  display: block;
}

.springthorpe-events-operator-actions strong {
  color: #17212a;
  font-size: 1rem;
  line-height: 1.3;
}

.springthorpe-events-operator-actions span {
  color: #5b6770;
  font-size: 0.94rem;
  margin-top: 0.2rem;
}

.springthorpe-events-operator-actions nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  justify-content: end;
}

.springthorpe-events-operator-actions a,
.springthorpe-event-flyers__action a,
.springthorpe-event-flyers__action button,
.springthorpe-past-event-flyers__action a {
  align-items: center;
  background: #ffffff;
  border: 1px solid #b7cfc0;
  color: #1e5e31;
  cursor: pointer;
  display: inline-flex;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.2;
  min-height: 2.45rem;
  padding: 0.65rem 0.82rem;
  text-decoration: none;
}

.springthorpe-events-operator-actions a:hover,
.springthorpe-events-operator-actions a:focus,
.springthorpe-event-flyers__action a:hover,
.springthorpe-event-flyers__action a:focus,
.springthorpe-event-flyers__action button:hover,
.springthorpe-event-flyers__action button:focus,
.springthorpe-past-event-flyers__action a:hover,
.springthorpe-past-event-flyers__action a:focus {
  background: #eef7ef;
  color: #164824;
}

.springthorpe-event-flyers,
.springthorpe-past-event-flyers {
  animation: springthorpe-soft-enter 360ms ease both;
  margin: 1.1rem auto 0;
  max-width: 60rem;
}

.springthorpe-event-flyers--future {
  margin-bottom: clamp(2.4rem, 5vw, 4rem);
}

.springthorpe-event-flyers__intro,
.springthorpe-event-flyers__empty,
.springthorpe-past-event-flyers__intro,
.springthorpe-past-event-flyers__empty {
  color: #64717a;
  font-size: 1rem;
  margin: 0 0 1rem;
}

.springthorpe-event-flyers__list,
.springthorpe-past-event-flyers__list {
  display: grid;
  gap: 0.9rem;
}

.springthorpe-event-flyers__item,
.springthorpe-past-event-flyers__item {
  align-items: start;
  background: #ffffff;
  border: 1px solid #e0e7df;
  border-left: 4px solid #4f8f42;
  display: grid;
  gap: clamp(0.95rem, 2vw, 1.4rem);
  grid-template-columns: minmax(9.5rem, 14rem) minmax(0, 1fr) 5.5rem max-content;
  min-height: 11.25rem;
  overflow: hidden;
  padding: clamp(0.8rem, 1.6vw, 1.1rem);
  position: relative;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.springthorpe-event-flyers__item::before,
.springthorpe-past-event-flyers__item::before {
  background: linear-gradient(180deg, rgba(79, 143, 66, 0.12), rgba(79, 143, 66, 0));
  content: "";
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  transition: opacity 180ms ease;
}

.springthorpe-event-flyers__item:hover,
.springthorpe-event-flyers__item:focus-within,
.springthorpe-past-event-flyers__item:hover,
.springthorpe-past-event-flyers__item:focus-within {
  border-color: #c6d9c6;
  box-shadow: 0 14px 34px rgba(24, 45, 34, 0.1);
  transform: translateY(-2px);
}

.springthorpe-event-flyers__item:hover::before,
.springthorpe-event-flyers__item:focus-within::before,
.springthorpe-past-event-flyers__item:hover::before,
.springthorpe-past-event-flyers__item:focus-within::before {
  opacity: 1;
}

.springthorpe-event-flyers__item > p:empty,
.springthorpe-past-event-flyers__item > p:empty {
  display: none;
}

.springthorpe-event-flyers__thumb,
.springthorpe-past-event-flyers__thumb {
  align-items: center;
  align-self: stretch;
  background: #f6f8f5;
  display: flex;
  grid-column: 1;
  height: 100%;
  justify-content: center;
  margin: 0;
  min-height: 9rem;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.springthorpe-event-flyers__thumb::after,
.springthorpe-past-event-flyers__thumb::after {
  border: 1px solid rgba(255, 255, 255, 0.65);
  content: "";
  inset: 0.45rem;
  pointer-events: none;
  position: absolute;
}

.springthorpe-event-flyers__thumb img,
.springthorpe-past-event-flyers__thumb img {
  display: block;
  height: 100% !important;
  inset: 0;
  object-fit: contain;
  position: absolute;
  transition: transform 220ms ease;
  width: 100% !important;
}

.springthorpe-event-flyers__item:hover .springthorpe-event-flyers__thumb img,
.springthorpe-event-flyers__item:focus-within .springthorpe-event-flyers__thumb img {
  transform: scale(1.035);
}

.springthorpe-event-flyers__thumb--missing::before,
.springthorpe-past-event-flyers__thumb--missing::before {
  color: #7c8990;
  content: "Flyer";
  font-size: 0.8rem;
  font-weight: 700;
}

.springthorpe-event-flyers__body,
.springthorpe-past-event-flyers__body {
  grid-column: 2;
  min-width: 0;
}

.springthorpe-event-flyers__body h3,
.springthorpe-past-event-flyers__body h3 {
  color: #24313a;
  font-size: clamp(1.05rem, 1.5vw, 1.22rem);
  line-height: 1.22;
  margin: 0 0 0.55rem;
}

.springthorpe-event-flyers__meta,
.springthorpe-past-event-flyers__meta {
  color: #66737d;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.94rem;
  gap: 0.4rem 0.85rem;
  line-height: 1.45;
  margin: 0;
}

.springthorpe-event-flyers__summary,
.springthorpe-past-event-flyers__summary {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  color: #52616b;
  display: -webkit-box;
  font-size: 0.92rem;
  line-clamp: 3;
  line-height: 1.45;
  margin: 0.55rem 0 0;
  max-height: calc(1.45em * 3);
  max-width: 42rem;
  overflow: hidden;
}

.springthorpe-event-flyers__description,
.springthorpe-past-event-flyers__description {
  color: #52616b;
  font-size: 0.94rem;
  line-height: 1.5;
  margin-top: 0.7rem;
  max-width: 44rem;
}

.springthorpe-event-flyers__description :first-child,
.springthorpe-past-event-flyers__description :first-child {
  margin-top: 0;
}

.springthorpe-event-flyers__description :last-child,
.springthorpe-past-event-flyers__description :last-child {
  margin-bottom: 0;
}

.springthorpe-event-flyers__description ul,
.springthorpe-past-event-flyers__description ul {
  margin: 0.4rem 0 0;
  padding-left: 1.15rem;
}

.springthorpe-event-flyers__gallery,
.springthorpe-past-event-flyers__gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.8rem;
}

.springthorpe-event-flyers__gallery a,
.springthorpe-past-event-flyers__gallery a {
  aspect-ratio: 4 / 3;
  background: #f6f8f5;
  border: 1px solid #e0e7df;
  display: block;
  overflow: hidden;
  width: clamp(4.5rem, 10vw, 6.5rem);
}

.springthorpe-event-flyers__gallery img,
.springthorpe-past-event-flyers__gallery img {
  display: block;
  height: 100% !important;
  object-fit: cover;
  width: 100% !important;
}

.springthorpe-event-flyers__date,
.springthorpe-past-event-flyers__date,
.springthorpe-event-flyers__price,
.springthorpe-past-event-flyers__price {
  color: #43525d;
  font-weight: 700;
}

.springthorpe-event-flyers__price {
  align-self: center;
  font-size: 0.95rem;
  grid-column: 3;
  justify-self: start;
  min-width: 5.5rem;
}

.springthorpe-event-flyers__location,
.springthorpe-past-event-flyers__location {
  min-width: min(18rem, 100%);
}

.springthorpe-event-flyers__action,
.springthorpe-past-event-flyers__action {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  grid-column: 4;
  justify-self: end;
}

.springthorpe-event-flyers__action span,
.springthorpe-past-event-flyers__action span {
  color: #7c8990;
  font-size: 0.86rem;
}

@media (max-width: 760px) {
  html,
  body.springthorpe-theme-smash {
    max-width: 100%;
    overflow-x: hidden;
  }

  body.springthorpe-theme-smash .top_panel_navi,
  body.springthorpe-theme-smash .sc_layouts_row_fixed_marker_on {
    box-sizing: border-box;
    left: 0 !important;
    max-width: 100vw !important;
    right: 0 !important;
    transform: none !important;
    width: 100% !important;
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen,
  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen .search_form,
  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen .search_form_wrap {
    box-sizing: border-box;
    max-width: 100vw !important;
    overflow-x: hidden;
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen {
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen .search_form {
    left: 1rem !important;
    max-width: calc(100vw - 2rem) !important;
    right: 1rem !important;
    transform: none !important;
    width: auto !important;
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen input[type="search"],
  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen input[type="text"],
  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen .search_field {
    box-sizing: border-box;
    left: auto !important;
    max-width: calc(100vw - 2rem) !important;
    right: 1rem !important;
    width: calc(100vw - 2rem) !important;
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen:not(.search_opened),
  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen:not(.search_opened) .search_form_wrap,
  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen:not(.search_opened) .search_form {
    left: auto !important;
    max-width: 2rem !important;
    overflow: visible !important;
    right: auto !important;
    width: 2rem !important;
  }

  body.springthorpe-theme-smash .search_wrap.search_style_fullscreen:not(.search_opened) .search_field {
    max-width: 0 !important;
    opacity: 0;
    width: 0 !important;
  }

  .springthorpe-portal-nav {
    width: 100%;
  }

  .springthorpe-member-hub__media {
    aspect-ratio: 16 / 9; /* pool sits in lower portion of photo */
  }

  .springthorpe-member-hub__media img {
    object-position: center center; /* mobile image is already cropped to pool */
  }

  .springthorpe-member-hub__tiles,
  .springthorpe-booking-hub--editable .springthorpe-booking-editable-grid,
  .springthorpe-booking-layout,
  .springthorpe-smash-footer__inner {
    grid-template-columns: 1fr !important;
  }

  .springthorpe-events-operator-actions,
  .springthorpe-event-flyers__item,
  .springthorpe-past-event-flyers__item {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .springthorpe-events-operator-actions nav,
  .springthorpe-event-flyers__action,
  .springthorpe-past-event-flyers__action {
    justify-content: start;
    justify-self: start;
  }

  .springthorpe-event-flyers__thumb,
  .springthorpe-past-event-flyers__thumb {
    aspect-ratio: 16 / 9;
    grid-column: 1;
    height: auto;
    width: 100%;
  }

  .springthorpe-event-flyers__body,
  .springthorpe-event-flyers__price,
  .springthorpe-event-flyers__action,
  .springthorpe-past-event-flyers__body,
  .springthorpe-past-event-flyers__action {
    grid-column: 1;
  }

  .springthorpe-event-flyers__price {
    min-width: 0;
  }

  .springthorpe-member-hub__header h1,
  .springthorpe-booking-hub__header h2 {
    font-size: 3rem;
  }

  .springthorpe-booking-hub--editable .springthorpe-booking-card {
    min-height: 0;
  }

  .springthorpe-profile-bookings__list li {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .springthorpe-profile-bookings__cancel,
  .springthorpe-profile-bookings__cancel button {
    justify-self: stretch;
    width: 100%;
  }

  .springthorpe-profile-summary--with-bookings,
  .springthorpe-profile-summary--editable .springthorpe-profile-summary__columns {
    grid-template-columns: 1fr !important;
  }

  .springthorpe-profile-account-action,
  .springthorpe-profile-account-form button {
    justify-content: center;
    width: 100%;
  }

  .springthorpe-smash-footer {
    margin-top: 2rem;
  }

  .springthorpe-smash-footer__bottom {
    align-items: start;
    flex-direction: column;
  }
}

/* ==========================================================================
   Strategic Plan page components
   ========================================================================== */

.springthorpe-sp-eyebrow {
  color: var(--springthorpe-green);
  font-size: 0.78rem !important;
  font-weight: 780;
  letter-spacing: 0.09em;
  margin-bottom: 0.3rem !important;
  text-transform: uppercase;
}

.springthorpe-sp-lead {
  border-left: 4px solid var(--springthorpe-green);
  color: var(--springthorpe-charcoal);
  font-size: 1.1rem;
  line-height: 1.65;
  margin-bottom: 1.4rem !important;
  padding-left: 1.1rem;
}

/* Callout boxes */
.springthorpe-sp-callout {
  background: var(--springthorpe-mist);
  border-left: 5px solid var(--springthorpe-green);
  margin: 1.6rem 0;
  padding: 1.1rem 1.3rem;
}
.springthorpe-sp-callout--gold {
  background: color-mix(in srgb, var(--springthorpe-gold) 8%, #ffffff);
  border-left-color: var(--springthorpe-gold);
}
.springthorpe-sp-callout--dark {
  background: color-mix(in srgb, var(--springthorpe-charcoal) 5%, #ffffff);
  border-left-color: var(--springthorpe-charcoal);
}
.springthorpe-sp-callout p:last-child { margin-bottom: 0; }

/* Principles grid */
.springthorpe-sp-principles {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  margin: 1.4rem 0;
}
.springthorpe-sp-principle {
  background: #ffffff;
  border: 1px solid var(--springthorpe-line);
  color: var(--springthorpe-ink);
  font-size: 0.9rem;
  line-height: 1.45;
  padding: 0.85rem 1rem;
}

/* Four-step cycle */
.springthorpe-sp-cycle {
  background: var(--springthorpe-line);
  border: 1px solid var(--springthorpe-line);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  margin: 1.8rem 0;
}
.springthorpe-sp-cycle__step {
  background: #ffffff;
  padding: 1.1rem 1rem;
}
.springthorpe-sp-cycle__num {
  align-items: center;
  background: var(--springthorpe-green);
  color: #ffffff;
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 780;
  height: 2rem;
  justify-content: center;
  margin-bottom: 0.55rem;
  width: 2rem;
}
.springthorpe-sp-cycle__title {
  color: var(--springthorpe-charcoal);
  font-size: 0.8rem;
  font-weight: 780;
  letter-spacing: 0.05em;
  margin-bottom: 0.35rem;
  text-transform: uppercase;
}
.springthorpe-sp-cycle__body {
  color: var(--springthorpe-muted);
  font-size: 0.85rem;
  line-height: 1.45;
  margin: 0;
}

/* Goal area cards */
.springthorpe-sp-goal {
  background: var(--springthorpe-mist);
  border-top: 4px solid var(--springthorpe-green);
  margin-bottom: 1.4rem;
  padding: 1.4rem 1.5rem;
}
.springthorpe-sp-goal--2 { border-top-color: #3d7a63; }
.springthorpe-sp-goal--3 { border-top-color: #5c7a3e; }
.springthorpe-sp-goal--4 { border-top-color: #5a6e30; }
.springthorpe-sp-goal--5 { border-top-color: var(--springthorpe-gold); }

.springthorpe-sp-goal__label {
  color: var(--springthorpe-muted);
  font-size: 0.72rem;
  font-weight: 780;
  letter-spacing: 0.09em;
  margin-bottom: 0.15rem !important;
  text-transform: uppercase;
}
.springthorpe-sp-goal__title {
  color: var(--springthorpe-charcoal);
  font-size: 1.15rem;
  margin-bottom: 0.5rem !important;
}
.springthorpe-sp-goal__pitch {
  border-left: 3px solid var(--springthorpe-green);
  color: var(--springthorpe-ink);
  font-style: italic;
  margin-bottom: 0.9rem !important;
  padding-left: 0.8rem;
}
.springthorpe-sp-goal--5 .springthorpe-sp-goal__pitch {
  border-left-color: var(--springthorpe-gold);
}

/* Get Involved band */
.springthorpe-sp-get-involved {
  background: var(--springthorpe-green);
  margin: 2.5rem 0 2rem;
  padding: 2.2rem 1.8rem;
}
.springthorpe-sp-get-involved h2 {
  border: none !important;
  color: #ffffff !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.springthorpe-sp-get-involved p,
.springthorpe-sp-get-involved li {
  color: rgba(255, 255, 255, 0.92);
}
.springthorpe-sp-get-involved strong {
  color: #ffffff;
}

/* ── Walk Preview Modal ──────────────────────────────────────────────────────
   Thumbnail trigger (.spt-walk-preview) + full-screen modal (.spt-walk-modal)
   ──────────────────────────────────────────────────────────────────────────── */

/* Thumbnail trigger — fills the __thumb container absolutely */
.spt-walk-preview {
  background: none;
  border: none;
  bottom: 0;
  cursor: pointer;
  display: block;
  left: 0;
  overflow: hidden;
  padding: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.spt-walk-preview img {
  display: block;
  height: 100% !important;
  inset: 0;
  object-fit: contain;
  position: absolute;
  transition: transform 220ms ease;
  width: 100% !important;
}

.spt-walk-preview:hover img,
.spt-walk-preview:focus img {
  transform: scale(1.04);
}

.spt-walk-preview__overlay {
  align-items: center;
  background: linear-gradient(to top, rgba(15, 30, 20, 0.76) 0%, rgba(15, 30, 20, 0) 100%);
  bottom: 0;
  color: #ffffff;
  display: flex;
  font-size: 0.77rem;
  font-weight: 600;
  left: 0;
  right: 0;
  justify-content: center;
  letter-spacing: 0.05em;
  opacity: 0;
  padding: 1.1rem 0.5rem 0.6rem;
  pointer-events: none;
  position: absolute;
  text-transform: uppercase;
  transform: translateY(6px);
  transition: opacity 200ms ease, transform 200ms ease;
}

.spt-walk-preview:hover .spt-walk-preview__overlay,
.spt-walk-preview:focus .spt-walk-preview__overlay {
  opacity: 1;
  transform: translateY(0);
}

/* Modal outer wrapper */
.spt-walk-modal {
  align-items: center;
  bottom: 0;
  display: flex;
  justify-content: center;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 999990;
}

.spt-walk-modal[hidden] {
  display: none;
}

/* Dimmed backdrop */
.spt-walk-modal__backdrop {
  background: rgba(10, 18, 12, 0.72);
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

/* Dialog card */
.spt-walk-modal__dialog {
  animation: spt-walk-modal-in 220ms cubic-bezier(0.2, 0, 0.2, 1) both;
  background: #ffffff;
  border-radius: 6px;
  box-shadow: 0 28px 72px rgba(0, 0, 0, 0.38);
  display: flex;
  flex-direction: column;
  height: calc(100vh - 2.5rem);
  height: calc(100dvh - 2.5rem);
  margin: 1.25rem;
  max-height: calc(100vh - 2.5rem);
  max-height: calc(100dvh - 2.5rem);
  max-width: 78rem;
  overflow: hidden;
  position: relative;
  width: 100%;
}

@keyframes spt-walk-modal-in {
  from {
    opacity: 0;
    transform: scale(0.965) translateY(10px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

/* Header bar */
.spt-walk-modal__header {
  align-items: center;
  background: #f7f8f7;
  border-bottom: 1px solid #e4e9e4;
  display: flex;
  flex-shrink: 0;
  gap: 0.55rem;
  padding: 0.65rem 0.8rem 0.65rem 1rem;
}

.spt-walk-modal__header-left {
  align-items: center;
  display: flex;
  flex: 1 1 0;
  gap: 0.45rem;
  min-width: 0;
}

.spt-walk-modal__icon {
  color: #4f6f52;
  flex-shrink: 0;
  line-height: 0;
}

.spt-walk-modal__title {
  color: #22201d;
  font-size: 0.87rem;
  font-weight: 600;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* "Open on Walking Maps" link */
.spt-walk-modal__new-tab {
  align-items: center;
  border: 1px solid #cdd8cd;
  border-radius: 4px;
  color: #4f6f52;
  display: inline-flex;
  flex-shrink: 0;
  font-size: 0.77rem;
  font-weight: 600;
  gap: 0.35rem;
  letter-spacing: 0.01em;
  line-height: 1;
  padding: 0.38rem 0.65rem;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease;
  white-space: nowrap;
}

.spt-walk-modal__new-tab:hover,
.spt-walk-modal__new-tab:focus {
  background: #eef7ef;
  border-color: #4f6f52;
  text-decoration: none;
}

/* Close × button */
.spt-walk-modal__close {
  align-items: center;
  background: none;
  border: 1px solid transparent;
  border-radius: 4px;
  color: #667a66;
  cursor: pointer;
  display: flex;
  flex-shrink: 0;
  height: 2rem;
  justify-content: center;
  line-height: 0;
  padding: 0;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
  width: 2rem;
}

.spt-walk-modal__close:hover,
.spt-walk-modal__close:focus {
  background: #f0f4f0;
  border-color: #c5d4c5;
  color: #22201d;
}

/* Iframe body — fills all space below the header */
.spt-walk-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  position: relative;
}

/* Loading overlay (shown while iframe loads) */
.spt-walk-modal__loading {
  align-items: center;
  bottom: 0;
  color: #66747a;
  display: flex;
  font-size: 0.9rem;
  gap: 0.6rem;
  justify-content: center;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.spt-walk-modal__spinner {
  animation: spt-walk-modal-spin 0.8s linear infinite;
  border: 2.5px solid #d4ddd4;
  border-radius: 50%;
  border-top-color: #4f6f52;
  display: inline-block;
  flex-shrink: 0;
  height: 1.25rem;
  width: 1.25rem;
}

@keyframes spt-walk-modal-spin {
  to {
    transform: rotate(360deg);
  }
}

.spt-walk-modal__iframe {
  border: none;
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

/* Prevent body scroll when modal is open */
body.spt-walk-modal-open {
  overflow: hidden;
}

/* ── Committee Members page ──────────────────────────────────────────────── */

/* Preamble highlight block */
.spt-committee-preamble {
  background: #fff;
  border-top: 3px solid var(--springthorpe-gold, #b58a2b);
  border-radius: 0 0 4px 4px;
  margin-top: 2rem;
  padding: 1.5rem 1.75rem;
}

.spt-committee-preamble blockquote {
  border-left: 3px solid var(--springthorpe-gold, #b58a2b);
  color: var(--springthorpe-muted, #625b52);
  font-style: italic;
  margin: 1rem 0;
  padding-left: 1rem;
}

/* OC Manager row */
.spt-ocm-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 1.25rem;
}

@media (max-width: 600px) {
  .spt-ocm-grid { grid-template-columns: 1fr; }
}

.spt-ocm-card {
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--springthorpe-line, rgba(34,32,29,.13));
  border-radius: 6px;
  display: flex;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
}

.spt-ocm-avatar {
  align-items: center;
  background: var(--springthorpe-charcoal, #22201d);
  border-radius: 50%;
  color: var(--springthorpe-gold, #b58a2b);
  display: flex;
  flex-shrink: 0;
  font-size: 1.25rem;
  font-weight: 700;
  height: 64px;
  justify-content: center;
  letter-spacing: .04em;
  width: 64px;
}

.spt-ocm-avatar img {
  border-radius: 50%;
  box-shadow: 0 0 0 2px var(--springthorpe-gold, #b58a2b);
  display: block;
  height: 64px !important;
  object-fit: cover;
  object-position: center 20%;
  width: 64px !important;
}

.spt-ocm-info strong { display: block; font-size: 1rem; margin-bottom: .15rem; }
.spt-ocm-info span   { color: var(--springthorpe-muted, #625b52); font-size: .85rem; }
.spt-ocm-info a      { color: var(--springthorpe-charcoal, #22201d); font-size: .85rem; }

/* Committee member grid */
.spt-committee-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 1.5rem;
}

@media (max-width: 820px) {
  .spt-committee-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 520px) {
  .spt-committee-grid { grid-template-columns: 1fr; gap: 1rem; }
}

.spt-committee-card {
  background: #fff;
  border: 1px solid rgba(34,32,29,.18);
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,.09);
  padding: 1.5rem 1.25rem 1.25rem;
  text-align: center;
}

.spt-committee-card--chair {
  border-top: 3px solid var(--springthorpe-gold, #b58a2b);
}

/*
 * Avatar wrap — plain sizing container, no border or overflow tricks.
 *
 * The gold ring is a box-shadow on the img/initials themselves.
 * box-shadow follows the element's own border-radius:50% so the ring is
 * geometrically perfect with zero gap. Unlike a CSS border, box-shadow does
 * not change the element's layout size so there is nothing for any parent
 * overflow to clip at an awkward edge.
 */
.spt-committee-avatar-wrap {
  height: 110px;
  margin: 0 auto .9rem;
  width: 110px;
}

.spt-committee-avatar-wrap img {
  border-radius: 50%;
  box-shadow: 0 0 0 3px var(--springthorpe-gold, #b58a2b);
  display: block;
  height: 110px !important;
  object-fit: cover;
  object-position: center 20%;
  width: 110px !important;
}

.spt-committee-initials {
  align-items: center;
  background: var(--springthorpe-charcoal, #22201d);
  border-radius: 50%;
  box-shadow: 0 0 0 3px var(--springthorpe-gold, #b58a2b);
  color: var(--springthorpe-gold, #b58a2b);
  display: flex;
  font-size: 1.6rem;
  font-weight: 700;
  height: 110px;
  justify-content: center;
  letter-spacing: .04em;
  width: 110px;
}

.spt-committee-card__name {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: .2rem !important;
}

/* Post-nominal honours (e.g. OAM) — smaller inline text, baseline-aligned */
.spt-committee-card__name .spt-postnominal {
  font-size: .6em;
  font-weight: 500;
  letter-spacing: .06em;
  vertical-align: baseline;
}

.spt-committee-card__role {
  color: var(--springthorpe-gold, #b58a2b);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .06em;
  margin-bottom: .75rem !important;
  text-transform: uppercase;
}

.spt-committee-card__bio {
  color: var(--springthorpe-muted, #625b52);
  font-size: .88rem;
  line-height: 1.55;
  text-align: left;
}

/* Sub-committee grid */
.spt-subcommittee-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 1.5rem;
}

@media (max-width: 820px) {
  .spt-subcommittee-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 520px) {
  .spt-subcommittee-grid { grid-template-columns: 1fr; gap: .85rem; }
}

.spt-subcommittee-card {
  background: var(--springthorpe-paper, #fbfaf6);
  border-radius: 4px;
  border-top: 3px solid var(--springthorpe-green, #4f6f52);
  padding: 1.1rem 1.25rem;
}

.spt-subcommittee-card h3 {
  color: var(--springthorpe-charcoal, #22201d);
  font-size: .95rem;
  margin-bottom: .5rem !important;
}

.spt-subcommittee-card p {
  color: var(--springthorpe-muted, #625b52);
  font-size: .85rem;
  line-height: 1.5;
  margin-bottom: .6rem !important;
}

.spt-subcommittee-card__members {
  border-top: 1px solid var(--springthorpe-line, rgba(34,32,29,.1));
  color: var(--springthorpe-charcoal, #22201d);
  font-size: .8rem;
  margin-top: .6rem !important;
  padding-top: .6rem;
}

/* Contact block */
.spt-committee-contacts {
  background: #fff;
  border-top: 3px solid var(--springthorpe-gold, #b58a2b);
  margin-top: 1.5rem;
  padding: 1.5rem 1.75rem;
}

.spt-committee-contacts table {
  border-collapse: collapse;
  width: 100%;
}

.spt-committee-contacts td {
  border-bottom: 1px solid var(--springthorpe-line, rgba(34,32,29,.1));
  font-size: .92rem;
  padding: .6rem .5rem;
  vertical-align: top;
}

.spt-committee-contacts td:first-child {
  color: var(--springthorpe-muted, #625b52);
  font-weight: 600;
  padding-right: 1.5rem;
  white-space: nowrap;
  width: 35%;
}

/* Two-card centered variant (used for OCM section) */
.spt-committee-grid--two-up {
  grid-template-columns: repeat(2, minmax(0, 340px));
  justify-content: center;
}

@media (max-width: 640px) {
  .spt-committee-grid--two-up { grid-template-columns: 1fr; }
}


/* Tighten inter-section spacing on the committee page */
.spt-committee-page h2 {
  margin-top: 1.5rem !important;
  margin-bottom: .4rem !important;
}

.spt-committee-page h2:first-child {
  margin-top: 0 !important;
}

/* Prevent paragraph theme styles from bloating card internals */
.spt-committee-card p {
  margin-bottom: 0 !important;
}
.spt-committee-card .spt-committee-card__name  { margin-bottom: .2rem  !important; }
.spt-committee-card .spt-committee-card__role  { margin-bottom: .75rem !important; }
.spt-committee-card .spt-committee-card__bio   { margin-bottom: 0      !important; }

/* Narrow-viewport padding guard */
@media (max-width: 480px) {
  .spt-committee-page {
    padding-left: .25rem;
    padding-right: .25rem;
  }
}

/* ── Pre-launch status banner ────────────────────────────────────────────── */

.springthorpe-prelaunch-banner {
  background: #3d2d00;
  border-bottom: 1px solid rgba(245, 200, 66, 0.28);
  width: 100%;
  z-index: 9990;
}

.springthorpe-prelaunch-banner__inner {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1rem;
  margin-inline: auto;
  max-width: var(--springthorpe-shell-max);
  padding-block: 0.6rem;
  padding-inline: max(1.25rem, var(--theme-var-page_fullwide_extra, 60px));
}

.springthorpe-prelaunch-banner__dot {
  animation: springthorpe-prelaunch-pulse 2.4s ease-in-out infinite;
  background: #f5c842;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
  height: 0.5rem;
  width: 0.5rem;
}

@keyframes springthorpe-prelaunch-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.35; }
}

.springthorpe-prelaunch-banner__text {
  color: rgba(255, 248, 220, 0.88);
  flex: 1 1 0;
  font-size: 0.8rem;
  line-height: 1.4;
  margin: 0;
  min-width: 0;
}

.springthorpe-prelaunch-banner__text strong {
  color: #f5c842;
  font-weight: 700;
}

.springthorpe-prelaunch-banner__action {
  color: rgba(255, 248, 220, 0.72);
  flex-shrink: 0;
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  white-space: nowrap;
}

.springthorpe-prelaunch-banner__action:hover,
.springthorpe-prelaunch-banner__action:focus {
  color: #ffffff;
}

/* ══════════════════════════════════════════════════════════════════════════════
   Springthorpe Traders Directory
   Cards ([spt_traders]) + detail lightbox (.spt-trader-modal)
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── Shared card base ────────────────────────────────────────────────────────── */

.spt-trader-grid {
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  margin-block: clamp(1.5rem, 3vw, 2.5rem);
}

.spt-trader-card {
  background: #fff;
  border: 1px solid rgba(34, 32, 29, .14);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: box-shadow .22s ease, transform .22s ease;
}

.spt-trader-card:hover {
  box-shadow: 0 10px 36px rgba(34, 32, 29, .12);
  transform: translateY(-3px);
}

.spt-trader-card__image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  position: relative;
}

/* Two-class selector (0,2,0) beats theme's (0,1,1) img resets */
.spt-trader-card__image img,
.spt-trader-card__image .spt-trader-card__main-img-el {
  display: block;
  height: 100%;
  left: 0;
  object-fit: cover;
  object-position: center center;
  position: absolute;
  top: 0;
  transition: transform .4s ease;
  width: 100%;
}

.spt-trader-card:hover .spt-trader-card__image img,
.spt-trader-card:hover .spt-trader-card__image .spt-trader-card__main-img-el {
  transform: scale(1.05);
}

.spt-trader-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 1.35rem 1.5rem 1.5rem;
}

.spt-trader-card__tagline {
  color: var(--springthorpe-green, #4f6f52);
  font-size: .72rem;
  font-weight: 780;
  letter-spacing: .09em;
  margin: 0 0 .45rem;
  text-transform: uppercase;
}

.spt-trader-card__name {
  color: var(--springthorpe-charcoal, #22201d);
  font-size: clamp(1.1rem, 1.8vw, 1.35rem);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  margin: 0 0 .85rem;
}

.spt-trader-card__address {
  color: var(--springthorpe-muted, #625b52);
  font-size: .875rem;
  margin: -.35rem 0 .85rem;
}

.spt-trader-card__excerpt {
  color: #4a453f;
  flex: 1 1 auto;
  font-size: .9rem;
  line-height: 1.55;
  margin: 0 0 1rem;
}

.spt-trader-card__btn,
.spt-trader-card__overlay-btn {
  align-items: center;
  background: transparent;
  border: 1.5px solid rgba(34, 32, 29, .28);
  border-radius: 4px;
  color: var(--springthorpe-charcoal, #22201d);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: .875rem;
  font-weight: 700;
  gap: .4rem;
  margin-top: auto;
  padding: .55rem 1.1rem;
  text-decoration: none;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}

.spt-trader-card__btn::after {
  content: '→';
  font-size: .9em;
}

.spt-trader-card__btn:hover,
.spt-trader-card__btn:focus {
  background: var(--springthorpe-green, #4f6f52);
  border-color: var(--springthorpe-green, #4f6f52);
  color: #fff;
}

/* ── V1: Clean cards (default) ───────────────────────────────────────────────── */

.spt-trader-grid--v1 .spt-trader-card {
  border-top: 3px solid transparent;
}

.spt-trader-grid--v1 .spt-trader-card:hover {
  border-top-color: var(--springthorpe-gold, #b58a2b);
}

/* ── V2: Overlay cards ──────────────────────────────────────────────────────── */

.spt-trader-grid--v2 .spt-trader-card__image {
  aspect-ratio: 3 / 4;
}

.spt-trader-card__overlay {
  align-items: flex-start;
  background: linear-gradient(to top, rgba(15, 25, 18, .88) 0%, rgba(15, 25, 18, .15) 60%, transparent 100%);
  bottom: 0;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  justify-content: flex-end;
  left: 0;
  opacity: 0;
  padding: 1.5rem 1.35rem;
  position: absolute;
  right: 0;
  top: 0;
  transform: translateY(6px);
  transition: opacity .25s ease, transform .25s ease;
}

.spt-trader-card:hover .spt-trader-card__overlay,
.spt-trader-card:focus-within .spt-trader-card__overlay {
  opacity: 1;
  transform: translateY(0);
}

.spt-trader-card__overlay-tag {
  color: rgba(255, 255, 255, .75);
  font-size: .72rem;
  font-weight: 780;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.spt-trader-card__overlay-name {
  color: #fff;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.2;
}

.spt-trader-card__overlay-btn {
  background: #fff;
  border-color: transparent;
  color: var(--springthorpe-charcoal, #22201d);
  margin-top: .65rem;
}

.spt-trader-card__overlay-btn:hover,
.spt-trader-card__overlay-btn:focus {
  background: var(--springthorpe-gold, #b58a2b);
  color: #fff;
}

.spt-trader-grid--v2 .spt-trader-card__body {
  display: none;
}

.spt-trader-card__name--v2 {
  display: none;
}

/* ── V3: Feature list ───────────────────────────────────────────────────────── */

.spt-trader-grid--v3 {
  grid-template-columns: 1fr;
  gap: clamp(1.5rem, 3vw, 2.25rem);
}

.spt-trader-card--v3 {
  align-items: stretch;
  flex-direction: row;
}

/* Left column: stacks main image on top of thumbnail strip */
.spt-trader-card--v3 .spt-trader-card__media {
  display: flex;
  flex: 0 0 clamp(220px, 40%, 360px);
  flex-direction: column;
}

/* Image fills all remaining height in the media column */
.spt-trader-card--v3 .spt-trader-card__image {
  aspect-ratio: auto;
  flex: 1 1 auto;
  min-height: 200px;
}

/* Thumbnail strip — grid fills available width, no scroll */
.spt-trader-card__card-thumbs {
  background: #f2f1ef;
  display: grid;
  flex-shrink: 0;
  gap: 4px;
  grid-auto-rows: 64px;
  grid-template-columns: repeat(auto-fill, minmax(56px, 1fr));
  padding: 6px;
}

.spt-trader-card__card-thumb {
  background: none;
  border: none;
  border-radius: 3px;
  box-shadow: 0 0 0 2.5px transparent;
  cursor: pointer;
  display: block;
  overflow: hidden;
  padding: 0;
  position: relative;
  transition: box-shadow .15s ease;
}

/* Two-class selector (0,2,1) beats theme img resets */
.spt-trader-card__card-thumbs .spt-trader-card__card-thumb img {
  display: block;
  height: 100%;
  left: 0;
  object-fit: cover;
  object-position: center center;
  position: absolute;
  top: 0;
  width: 100%;
}

.spt-trader-card__card-thumb.is-active {
  box-shadow: 0 0 0 2.5px var(--springthorpe-green, #4f6f52);
}

.spt-trader-card__card-thumb:hover,
.spt-trader-card__card-thumb:focus-visible {
  box-shadow: 0 0 0 2.5px rgba(79, 111, 82, .5);
}

/* Right column: content body */
.spt-trader-card--v3 .spt-trader-card__body {
  min-width: 0;
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
}

.spt-trader-card--v3 .spt-trader-card__name {
  font-size: clamp(1.1rem, 2vw, 1.45rem);
}

/* Full description (replaces 22-word excerpt) */
.spt-trader-card__description {
  color: #4a453f;
  flex: 1 1 auto;
  font-size: .9rem;
  line-height: 1.55;
  margin: 0 0 1rem;
}

.spt-trader-card__description p {
  margin: 0 0 .6em;
}

.spt-trader-card__description p:last-child {
  margin-bottom: 0;
}

/* Footer row: pills left (Book Now + socials), View More right */
.spt-trader-card--v3 .spt-trader-card__footer {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: space-between;
  margin-top: auto;
  padding-top: .75rem;
}

.spt-trader-card--v3 .spt-trader-card__footer .spt-trader-card__btn {
  flex-shrink: 0;
  margin-top: 0;
}

.spt-trader-card__footer-pills {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

/* Book Now pill — filled green, visually distinct from outline social links */
.spt-trader-card__book-pill {
  background: var(--springthorpe-green, #4f6f52);
  border: 1px solid var(--springthorpe-green, #4f6f52);
  border-radius: 100px;
  color: #fff;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .01em;
  padding: .28rem .8rem;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease;
  white-space: nowrap;
}

.spt-trader-card__book-pill:hover,
.spt-trader-card__book-pill:focus {
  background: var(--springthorpe-gold, #b58a2b);
  border-color: var(--springthorpe-gold, #b58a2b);
  color: #fff;
}

/* Social pills */
.spt-trader-card__socials {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.spt-trader-card__social-link {
  background: transparent;
  border: 1px solid rgba(34, 32, 29, .22);
  border-radius: 100px;
  color: var(--springthorpe-charcoal, #22201d);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .01em;
  padding: .28rem .7rem;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  white-space: nowrap;
}

.spt-trader-card__social-link:hover,
.spt-trader-card__social-link:focus {
  background: var(--springthorpe-green, #4f6f52);
  border-color: var(--springthorpe-green, #4f6f52);
  color: #fff;
}

/* ── Mobile ──────────────────────────────────────────────────────────────────── */

@media (max-width: 640px) {
  .spt-trader-card--v3 {
    flex-direction: column;
  }

  .spt-trader-card--v3 .spt-trader-card__media {
    flex: none;
    width: 100%;
  }

  /* Portrait image ratio on mobile stacks nicely */
  .spt-trader-card--v3 .spt-trader-card__image {
    aspect-ratio: 16 / 9;
    flex: none;
    min-height: unset;
  }

  /* Ensure body text doesn't overflow on small screens */
  .spt-trader-card--v3 .spt-trader-card__body {
    min-width: unset;
    width: 100%;
  }

  /* Footer wraps to two rows if needed */
  .spt-trader-card--v3 .spt-trader-card__footer {
    flex-direction: column;
    align-items: flex-start;
    gap: .6rem;
  }

  /* View More right-aligned on mobile */
  .spt-trader-card--v3 .spt-trader-card__footer .spt-trader-card__btn {
    align-self: flex-end;
  }
}

/* ══════════════════════════════════════════════════════════════════════════════
   Trader Detail Modal (.spt-trader-modal)
   ══════════════════════════════════════════════════════════════════════════════ */

.spt-trader-modal {
  bottom: 0;
  display: flex;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 99990;
}

.spt-trader-modal[hidden] {
  display: none;
}

.spt-trader-modal__backdrop {
  background: rgba(10, 18, 12, .68);
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.spt-trader-modal__dialog {
  animation: spt-trader-modal-in .22s cubic-bezier(.2, 0, .2, 1) both;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 24px 72px rgba(10, 18, 12, .32);
  display: flex;
  flex-direction: column;
  margin: auto;
  max-height: min(90svh, 780px);
  max-width: min(96vw, 920px);
  overflow: hidden;
  position: relative;
  width: 100%;
  z-index: 1;
}

@keyframes spt-trader-modal-in {
  from { opacity: 0; transform: translateY(16px) scale(.97); }
  to   { opacity: 1; transform: translateY(0)    scale(1);   }
}

/* Close button */
.spt-trader-modal__close {
  align-items: center;
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(34, 32, 29, .18);
  border-radius: 50%;
  color: #22201d;
  cursor: pointer;
  display: flex;
  height: 32px;
  justify-content: center;
  position: absolute;
  right: .85rem;
  top: .85rem;
  transition: background .16s ease, border-color .16s ease;
  width: 32px;
  z-index: 2;
}

.spt-trader-modal__close:hover,
.spt-trader-modal__close:focus {
  background: #f0f4f0;
  border-color: #b3c7b4;
}

/* Body: two-column gallery + info */
.spt-trader-modal__body {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: 44% 56%;
  min-height: 0;
  overflow: hidden;
}

/* Gallery column */
.spt-trader-modal__gallery-col {
  background: #f4f6f4;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.spt-trader-modal__main-img {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.spt-trader-modal__main-img-el {
  display: block;
  height: 100%;
  object-fit: cover;
  transition: opacity .2s ease;
  width: 100%;
}

.spt-trader-modal__thumbs {
  display: flex;
  flex-shrink: 0;
  gap: 4px;
  height: 90px;
  overflow-x: auto;
  scrollbar-width: none;
}

.spt-trader-modal__thumbs::-webkit-scrollbar {
  display: none;
}

.spt-trader-modal__thumb {
  background: none;
  border: none;
  cursor: pointer;
  flex: 1 1 0;
  min-width: 80px;
  overflow: hidden;
  padding: 0;
  position: relative;
  transition: opacity .16s ease;
}

.spt-trader-modal__thumb img {
  display: block;
  height: 100%;
  left: 0;
  object-fit: cover;
  object-position: center center;
  position: absolute;
  top: 0;
  width: 100%;
}

.spt-trader-modal__thumb::after {
  background: rgba(79, 111, 82, .45);
  bottom: 0;
  content: '';
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: opacity .16s ease;
}

.spt-trader-modal__thumb.is-active::after,
.spt-trader-modal__thumb:hover::after {
  opacity: 1;
}

/* Info column */
.spt-trader-modal__info-col {
  overflow-y: auto;
  padding: clamp(1.5rem, 3vw, 2rem) clamp(1.25rem, 3vw, 1.75rem);
  scroll-behavior: smooth;
}

.spt-trader-modal__tagline {
  color: var(--springthorpe-green, #4f6f52);
  font-size: .72rem;
  font-weight: 780;
  letter-spacing: .09em;
  margin: 0 0 .5rem;
  padding-right: 2.5rem; /* clear close btn */
  text-transform: uppercase;
}

.spt-trader-modal__name {
  color: var(--springthorpe-charcoal, #22201d);
  font-size: clamp(1.3rem, 2.5vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.15;
  margin: 0 0 1rem;
  padding-right: 2.5rem;
}

.spt-trader-modal__about {
  color: #4a453f;
  font-size: .9375rem;
  line-height: 1.6;
  margin-bottom: 1.25rem;
}

.spt-trader-modal__about p {
  margin-block: 0 .75rem;
}

/* Section label */
.spt-trader-modal__section-label {
  color: var(--springthorpe-muted, #625b52);
  font-size: .68rem;
  font-weight: 780;
  letter-spacing: .09em;
  margin: 0 0 .5rem;
  text-transform: uppercase;
}

/* Hours */
.spt-trader-modal__hours {
  border-top: 1px solid rgba(34, 32, 29, .1);
  margin-bottom: 1.25rem;
  padding-top: 1rem;
}

.spt-trader-modal__hours-list {
  display: grid;
  margin: 0;
}

.spt-trader-modal__hours-row {
  border-top: 1px solid rgba(34, 32, 29, .08);
  display: flex;
  gap: .5rem;
  justify-content: space-between;
  padding: .38rem 0;
}

.spt-trader-modal__hours-row dt {
  color: var(--springthorpe-charcoal, #22201d);
  font-size: .84rem;
  font-weight: 650;
  min-width: 2.2rem;
}

.spt-trader-modal__hours-row dd {
  color: var(--springthorpe-muted, #625b52);
  font-size: .84rem;
  margin: 0;
  text-align: right;
}

.spt-trader-modal__hours-row.is-closed dt,
.spt-trader-modal__hours-row.is-closed dd {
  opacity: .48;
}

/* Contact */
.spt-trader-modal__contact {
  border-top: 1px solid rgba(34, 32, 29, .1);
  margin-bottom: 1rem;
  padding-top: 1rem;
}

.spt-trader-modal__contact-row {
  align-items: baseline;
  display: flex;
  font-size: .9rem;
  gap: .6rem;
  margin-bottom: .45rem;
}

.spt-trader-modal__contact-icon {
  color: var(--springthorpe-green, #4f6f52);
  flex: 0 0 1.1em;
  font-size: .85em;
  text-align: center;
}

.spt-trader-modal__contact-text a {
  color: var(--springthorpe-charcoal, #22201d);
  text-decoration: none;
}

.spt-trader-modal__contact-text a:hover {
  color: var(--springthorpe-green, #4f6f52);
  text-decoration: underline;
}

/* Social links */
.spt-trader-modal__socials {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: 1.25rem;
}

.spt-trader-modal__social-link {
  border: 1px solid rgba(34, 32, 29, .22);
  border-radius: 99px;
  color: var(--springthorpe-charcoal, #22201d);
  font-size: .82rem;
  font-weight: 650;
  padding: .28rem .85rem;
  text-decoration: none;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}

.spt-trader-modal__social-link:hover,
.spt-trader-modal__social-link:focus {
  background: var(--springthorpe-green, #4f6f52);
  border-color: var(--springthorpe-green, #4f6f52);
  color: #fff;
}

/* Book Now button */
.spt-trader-modal__book-btn {
  background: var(--springthorpe-green, #4f6f52);
  border: none;
  border-radius: 4px;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font: inherit;
  font-size: .9375rem;
  font-weight: 700;
  padding: .7rem 1.5rem;
  text-decoration: none;
  transition: background .16s ease;
}

.spt-trader-modal__book-btn:hover,
.spt-trader-modal__book-btn:focus {
  background: #3f5d43;
  color: #fff;
  text-decoration: none;
}

/* Body scroll lock */
body.spt-trader-modal-open {
  overflow: hidden;
}

/* ── Responsive: stack on mobile ─────────────────────────────────────────────── */

@media (max-width: 600px) {
  .spt-trader-modal__dialog {
    border-radius: 12px 12px 0 0;
    margin: auto 0 0;
    max-height: 92svh;
    max-width: 100%;
  }

  .spt-trader-modal__body {
    grid-template-columns: 1fr;
    overflow-y: auto;
  }

  .spt-trader-modal__gallery-col {
    height: clamp(200px, 50vw, 280px);
    flex-shrink: 0;
  }

  .spt-trader-modal__info-col {
    overflow-y: visible;
  }
}
