/**
 * Surf Shack — the Customizer's Additional CSS, migrated into the plugin.
 *
 * WHAT THIS IS AND WHY IT EXISTS
 *
 * 64,488 characters / 414 rules lived in Appearance -> Customize -> Additional CSS,
 * which is a row in the `custom_css` post type (post 1399, `hello-theme-child-master-2`)
 * and NOT a file. The production release plan moves code as a plugin upload, so none of
 * it would have travelled: the pass picker, large parts of the account screens and a
 * great deal of the site chrome would have landed on production unstyled.
 *
 * Nick, 15 Aug: "anything in customizer that needs to be incorporated, duplicate in your
 * files" / "customizer should be empty when we're done."
 *
 * VERBATIM. Not one declaration below this header has been edited, reordered or
 * reformatted. A migration that also tidies is two changes wearing one coat, and when
 * the rendering differs afterwards there is no way to tell which half did it. The
 * content is byte-identical to post 1399 as of 15 Aug 2026 (sha256 7a07b2c0db3b...).
 *
 * CASCADE POSITION. `wp_custom_css_cb()` prints on `wp_head` at priority 101, which is
 * after every enqueued stylesheet no matter what priority it was enqueued at. So this
 * file cannot be `wp_enqueue_style`d and still land where it used to — it is printed as
 * a <link> on `wp_head` at 102 instead. See includes/modules/marketing/customizer-css.php.
 *
 * That position matters. Two of this plugin's own files were written specifically to beat
 * this CSS: ss-tokens-compat.css uses `html:root` to outrank its `:root` block, and its
 * `.ssr-pp` rules use a doubled class plus !important against the !important rules below.
 * Move this file earlier in the cascade and those defences become unnecessary in a way
 * that will look like dead code to whoever reads them next.
 *
 * WHAT SHOULD HAPPEN TO IT
 *
 * This is a migration, not a cleanup. The file is full of things the design system has
 * since answered — hardcoded hexes that now have tokens, a `:root` block declaring
 * `--ss-*` values, per-page overrides that duplicate component CSS. Folding those into
 * the system properly is real work with real regression risk, and it should happen rule
 * by rule with the style audit run in between, not in the same stroke as moving the file.
 *
 * VERIFICATION, 15 Aug. Computed-style fingerprints were taken across /, /order/,
 * /passes/, /account/, /privacy/ and /spa/ before the migration and compared after the
 * Customizer field was emptied: every element on every page, fifteen properties each.
 * See tools/fingerprint.js.
 *
 * @package SurfShack\Core
 */

/* === Surf Shack OFC card polish v2 === */
span.ss-ofc-rider-name {
  font-size: 22px;
}
.ss-ofc {
  background: #fff;
  border: 1px solid #e5e8e8;
  border-radius: 14px;
  padding: 22px 26px;
  margin-bottom: 18px;
}
.ss-ofc__head {
  display: flex !important;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.ss-ofc-status {
  display: inline-block !important;
  width: auto !important;
}
.ss-ofc-status .elementor-widget-container {
  display: inline-block;
}
.ss-ofc-status .jet-listing-dynamic-field__content {
  display: inline-block;
  padding: 4px 14px;
  border-radius: 999px;
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: #f2eded;
  color: #74575a;
}
.ss-ofc-status--approved .jet-listing-dynamic-field__content {
  background: #d8f0e1;
  color: #1d6b3b;
}
.ss-ofc-status--in-progress .jet-listing-dynamic-field__content {
  background: #fff2c9;
  color: #7a5a07;
}
.ss-ofc-status--not-started .jet-listing-dynamic-field__content {
  background: #f2eded;
  color: #74575a;
}
.ss-ofc-status--revoked .jet-listing-dynamic-field__content {
  background: #ffe1e3;
  color: #a3242d;
}

.ss-ofc-since .jet-listing-dynamic-field__content {
  color: #8a9d9e;
  font-size: 12px;
  font-family: "League Spartan", sans-serif;
}

.ss-ofc-skills-block,
.ss-ofc-skills-wrap {
  min-width: 260px;
  max-width: 100%;
}
.ss-ofc-count {
  color: #1f3c3d;
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 6px;
  font-family: "League Spartan", sans-serif;
}
.ss-ofc-bar {
  height: 10px;
  background: #dcefe9;
  border-radius: 999px;
  overflow: hidden;
}
.ss-ofc-bar__fill {
  height: 100%;
  background: linear-gradient(90deg, #3d8d90, #a3d6cb);
  border-radius: 999px;
  transition: width 0.3s ease;
}

.ss-ofc-list {
  list-style: none;
  padding: 0;
  margin: 14px 0 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px 16px;
  font-family: "League Spartan", sans-serif;
  width: 100% !important;
}
.ss-ofc-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0px 10px;
  padding: 9px 12px;
  border-radius: 8px;
  background: #f6f8f8;
  color: #5b7677;
  font-size: 14px;
}
.ss-ofc-list li::before {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #e5e8e8;
  flex-shrink: 0;
}
.ss-ofc-list li[data-passed="1"] {
  background: #dcefe9;
  color: #1f3c3d;
  font-weight: 600;
}
.ss-ofc-list li[data-passed="1"]::before {
  background: #3d8d90;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size: 12px;
  background-position: center;
  background-repeat: no-repeat;
}
.ss-ofc-name {
  flex: 1;
}
.ss-ofc-date {
  font-size: 11px;
  color: #8a9d9e;
  width: 100%;
}

.ss-ofc-approved-date:has(.jet-listing-dynamic-field__content:empty),
.ss-ofc-approved-by:has(.jet-listing-dynamic-field__content:empty),
.ss-ofc-video-status:has(.jet-listing-dynamic-field__content:empty),
.ss-ofc-video-link:has(.jet-listing-dynamic-field__content:empty),
.ss-ofc-notes:has(.jet-listing-dynamic-field__content:empty) {
  display: none;
}

.ss-ofc__approval:has(
    .ss-ofc-approved-date .jet-listing-dynamic-field__content:empty
  ):has(.ss-ofc-approved-by .jet-listing-dynamic-field__content:empty) {
  display: none;
}
.ss-ofc__video:has(
    .ss-ofc-video-status .jet-listing-dynamic-field__content:empty
  ):has(.ss-ofc-video-link .jet-listing-dynamic-field__content:empty) {
  display: none;
}
.ss-ofc__notes:has(.ss-ofc-notes .jet-listing-dynamic-field__content:empty) {
  display: none;
}

.ss-ofc__approval,
.ss-ofc__video,
.ss-ofc__notes {
  margin-top: 14px !important;
  padding: 14px 18px;
  border-radius: 10px;
  background: #f6f8f8;
}
.ss-ofc__approval {
  background: #d8f0e1;
}
.ss-ofc__approval .jet-listing-dynamic-field__content {
  color: #0e4a25;
  font-size: 14px;
  font-family: "League Spartan", sans-serif;
}
.ss-ofc-approved-date .jet-listing-dynamic-field__content:not(:empty)::before {
  content: "Approved on: ";
  font-weight: 700;
}
.ss-ofc-approved-by .jet-listing-dynamic-field__content:not(:empty)::before {
  content: "Signed off by: ";
  font-weight: 700;
}

.ss-ofc__video .jet-listing-dynamic-field__content {
  color: #1f3c3d;
  font-size: 14px;
  font-family: "League Spartan", sans-serif;
}
.ss-ofc-video-status .jet-listing-dynamic-field__content:not(:empty)::before {
  content: "Video status: ";
  font-weight: 600;
}
.ss-ofc-video-link .jet-listing-dynamic-field__content a,
.ss-ofc-video-link .jet-listing-dynamic-field__content {
  color: #3d8d90;
  font-weight: 600;
  text-decoration: none;
}

.ss-ofc__notes::before {
  content: "Notes from your coaches";
  display: block;
  font-weight: 700;
  color: #1f3c3d;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
  font-family: "League Spartan", sans-serif;
}
.ss-ofc__notes .jet-listing-dynamic-field__content {
  color: #1f3c3d;
  font-size: 14px;
  line-height: 1.5;
  font-family: "League Spartan", sans-serif;
  white-space: pre-wrap;
}

.ss-ofc-cta-btn .elementor-button,
.ss-ofc-cta-btn .elementor-button-link {
  font-family: "League Spartan", sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
  padding: 10px 20px !important;
  border-radius: 999px !important;
  background: #3d8d90 !important;
  color: #fff !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.ss-ofc-cta-btn .elementor-button:hover {
  background: #f09956 !important;
  color: #fff !important;
}
.ss-ofc-cta-btn .elementor-button-icon {
  display: none;
}

@media (max-width: 1080px) {
  .ss-ofc-list {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .ss-ofc-list {
    grid-template-columns: 1fr;
  }
  .ss-ofc__head {
    flex-direction: column;
  }
  .ss-ofc-skills-block {
    max-width: none;
  }
}

/* --- OFC dynamic status colors (driven by JS-set data-ofc-status) --- */
/* The HTML widget in the OFC skills tracker sets data-ofc-status on each
   .jet-listing-grid__item wrap to one of: not_started | in_progress | approved | revoked | unset.
   These rules color the status pill, progress bar, and gate the Apply CTA. */

/* CTA: only show when status is Not Started (or unset / no data yet) */
.jet-listing-grid__item[data-ofc-status]:not(
    [data-ofc-status="not_started"]
  ):not([data-ofc-status="unset"])
  .ss-ofc-cta-btn {
  display: none !important;
}

/* Status pill colors — target the inner Dynamic Field content, not the widget wrapper */
.jet-listing-grid__item[data-ofc-status="not_started"]
  .ss-ofc-status
  .jet-listing-dynamic-field__content {
  background: #f6f8f8;
  color: #789;
}
.jet-listing-grid__item[data-ofc-status="in_progress"]
  .ss-ofc-status
  .jet-listing-dynamic-field__content {
  background: #f4d266;
  color: #5c3a00;
}
.jet-listing-grid__item[data-ofc-status="approved"]
  .ss-ofc-status
  .jet-listing-dynamic-field__content {
  background: #a3d6cb;
  color: #1f5f3a;
}
.jet-listing-grid__item[data-ofc-status="revoked"]
  .ss-ofc-status
  .jet-listing-dynamic-field__content {
  background: #f4c8b0;
  color: #8a3a12;
}

/* Skills progress bar fill — match the status mood */
.jet-listing-grid__item[data-ofc-status="in_progress"] .ss-ofc-bar__fill {
  background: #f09956;
}
.jet-listing-grid__item[data-ofc-status="approved"] .ss-ofc-bar__fill {
  background: #2dd5a8;
}
.jet-listing-grid__item[data-ofc-status="revoked"] .ss-ofc-bar__fill {
  background: #f4c8b0;
}

/* === end OFC polish v2 === */
.woocommerce-notices-wrapper {
  visibility: hidden;
}
.fcal_cal_wrap,
.fcal_cal_wrap * {
  box-sizing: border-box;
  font-family:
    var(--e-global-typography-primary-font-family), Sans-serif !important;
  font-family: "league spartan";
  font-size: unset !important;
  font-size: 18px !important;
}
td.wc-block-cart-item__image,
.elementor-menu-cart__product-image {
  display: none;
}
svg.jet-sub-mega-menu__loader g linearGradient {
  display: none;
  border: 0;
  fill: none !important;
}
.elementor-element,
.elementor-lightbox {
  color: var(--e-global-color-text);
}
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product p.price,
.woocommerce:where(body:not(.woocommerce-uses-block-theme))
  div.product
  span.price {
  color: var(--e-global-color-accent);
  font-family: "League Spartan", Sans-serif;
  font-size: 1.4em;
  font-weight: 600;
  text-transform: none;
  text-align: center !important;
  display: block;
}
/* only when header is NOT sticky yet */
.elementor-element-1d1f5d2f:not(.elementor-sticky--active) {
  position: relative;
  z-index: 50;
  overflow: visible !important;
}

.elementor-element-1d1f5d2f:not(.elementor-sticky--active)
  .elementor-element-f415190
  .jet-mega-menu-mega-container {
  z-index: 9999 !important;
}

.jet-form-builder-file-upload__content {
  min-height: unset;
  display: unset;
}
input[type="file" i] {
  background: #eee !important;
  border-radius: 5px !important;
  padding: 10px !important;
  border: 1px dashed #000 !important;
}
input[type="file"]::file-selector-button,
input[type="file"]::-webkit-file-upload-button {
  background: #0000;
  color: var(--e-global-color-text);
  border: none;
  padding: 10px 16px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
}

input[type="file"]::file-selector-button:hover {
  /*   background: #333; */
}
.jet-popup__overlay {
  background: #fffb !important;
  backdrop-filter: blur(5px);
}

tr.jet-wc-product-table-row.jet-wc-product-table-row--body td {
  border-right: 0;
  padding: 10px 10px 10px 35px !important;
}

/* === Surf Shack Brand Color Overrides === */

/* Override Elementor + WP default colors sitewide.
   Surf Shack brand primary = deep teal #3D8D90. */

:root,
.elementor-kit-default,
.elementor {
  --e-global-color-primary: #3d8d90 !important;
  --e-global-color-accent: #3d8d90 !important;
  --e-global-color-secondary: #15325b !important;
  --e-global-color-text: #15325b !important;
}

/* WP block editor token (used by core/button defaults) */
:root {
  --wp--preset--color--primary: #3d8d90;
  --wp--preset--color--accent: #3d8d90;
}

/* OFC badge catchall — any rider whose ofc status is NOT approved gets teal.
   This covers active, started, pending, not_started, none, rejected, and
   any future status values without needing to enumerate them. */

.ssr-rider-ofc:not(.ssr-ofc-approved) {
  background: rgba(61, 141, 144, 0.12) !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
}

/* === end Surf Shack Brand Color Overrides === */
/* === Surf Shack Forms === */
:root {
  --ss-deep-teal: #3d8d90;
  --ss-sandy-yellow: #f4d266;
  --ss-sunset-orange: #f09956;
  --ss-soft-mint: #a3d6cb;
  --ss-mint-light: #f3faf7;
  --ss-text-dark: #15325b;
  --ss-text-muted: #4a6b7e;
  --ss-border-soft: #e7efed;
  --ss-error: #c0392b;
}

/* Form base */
.jet-form-builder,
.elementor-form,
.woocommerce form {
  font-family: "League Spartan", sans-serif;
  color: var(--ss-text-dark);
  max-width: 720px;
  margin: 0 auto;
}

/* Headings */
.jet-form-builder h1,
.jet-form-builder h2,
.jet-form-builder h3,
.jet-form-builder h4 {
  font-family: "League Spartan", sans-serif;
  color: var(--ss-text-dark);
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 8px 0 20px;
}
.jet-form-builder h3 {
  font-size: 22px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ss-soft-mint);
}

/* Labels */
.jet-form-builder label,
.elementor-field-group label {
  font-family: "League Spartan", sans-serif;
  font-weight: 600;
  color: var(--ss-deep-teal);
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 6px;
  display: block;
}

/* Inputs */
.jet-form-builder input[type="text"],
.jet-form-builder input[type="email"],
.jet-form-builder input[type="tel"],
.jet-form-builder input[type="number"],
.jet-form-builder input[type="date"],
.jet-form-builder input[type="password"],
.jet-form-builder input[type="url"],
.jet-form-builder select,
.jet-form-builder textarea {
  font-family: "League Spartan", sans-serif;
  font-size: 16px;
  color: var(--ss-text-dark);
  background: #fff;
  border: 1.5px solid var(--ss-border-soft);
  border-radius: 8px;
  padding: 12px 14px;
  width: 100%;
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
}
.jet-form-builder input:focus,
.jet-form-builder select:focus,
.jet-form-builder textarea:focus {
  outline: none;
  border-color: var(--ss-deep-teal);
  box-shadow: 0 0 0 3px rgba(61, 141, 144, 0.15);
}

/* Field spacing */
.jet-form-builder__field-wrap {
  margin-bottom: 18px;
}

/* Buttons — CORRECT JF class names */
.jet-form-builder__action-button,
.jet-form-builder__submit,
.jet-form-builder__next-page,
.jet-form-builder__prev-page {
  font-family: "League Spartan", sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  border-radius: 999px !important;
  padding: 12px 28px !important;
  font-size: 16px !important;
  cursor: pointer;
  transition: all 0.15s ease;
  border: 2px solid transparent !important;
  min-width: 120px;
}

/* Next + Submit — solid teal */
.jet-form-builder__next-page,
.jet-form-builder__submit {
  background: var(--ss-deep-teal) !important;
  color: #fff !important;
  border-color: var(--ss-deep-teal) !important;
}
.jet-form-builder__next-page:hover,
.jet-form-builder__submit:hover {
  background: #2b6f72 !important;
  border-color: #2b6f72 !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(61, 141, 144, 0.25);
}

/* Back — outline teal */
.jet-form-builder__prev-page {
  background: transparent !important;
  color: var(--ss-deep-teal) !important;
  border: 2px solid var(--ss-deep-teal) !important;
}
.jet-form-builder__prev-page:hover {
  background: var(--ss-mint-light) !important;
  transform: translateY(-1px);
}

/* Button row spacing */
.jet-form-builder__action-button + .jet-form-builder__action-button {
  margin-left: 8px;
}

/* Progress bar — CORRECT JF class names (single dash) */
.jet-form-builder-progress-pages {
  display: flex !important;
  justify-content: space-between;
  align-items: flex-start;
  margin: 0 auto 40px;
  max-width: 640px;
  padding: 16px 0;
  position: relative;
  gap: 0;
}
.jet-form-builder-progress-pages__item--wrapper {
  position: relative;
  flex: 1;
  text-align: center;
  color: var(--ss-text-muted);
  font-family: "League Spartan", sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
/* Native circle */
.jet-form-builder-progress-pages__item--circle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--ss-soft-mint);
  color: var(--ss-text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  transition: all 0.2s ease;
}
.jet-form-builder-progress-pages__item--label {
  color: inherit;
  font-size: 13px;
  margin-top: 6px;
  font-weight: 600;
}
.jet-form-builder-progress-pages__item--wrapper.active-page {
  color: var(--ss-deep-teal);
  font-weight: 700;
}
.jet-form-builder-progress-pages__item--wrapper.active-page
  .jet-form-builder-progress-pages__item--circle {
  background: var(--ss-deep-teal);
  border-color: var(--ss-deep-teal);
  color: #fff;
  box-shadow: 0 0 0 6px rgba(61, 141, 144, 0.15);
}
.jet-form-builder-progress-pages__item--wrapper.completed-page
  .jet-form-builder-progress-pages__item--circle,
.jet-form-builder-progress-pages__item--wrapper.is-completed
  .jet-form-builder-progress-pages__item--circle {
  background: var(--ss-soft-mint);
  border-color: var(--ss-soft-mint);
  color: var(--ss-deep-teal);
}
/* Use JF native circle + label divs */

/* Connector line between steps */
.jet-form-builder-progress-pages__separator {
  content: "";
  position: absolute;
  top: 34px;
  left: calc(50% + 22px);
  right: calc(-50% + 22px);
  height: 2px;
  background: var(--ss-soft-mint);
  z-index: 0;
}
.jet-form-builder-progress-pages__item--wrapper.completed-page
  .jet-form-builder-progress-pages__separator,
.jet-form-builder-progress-pages__item--wrapper.is-completed
  .jet-form-builder-progress-pages__separator {
  background: var(--ss-deep-teal);
}

/* Error states */
.jet-form-builder__field-wrap.error input,
.jet-form-builder__field-wrap.error select,
.jet-form-builder__field-wrap.error textarea {
  border-color: var(--ss-error) !important;
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.1) !important;
}
.jet-form-builder__field-error,
.jet-form-builder__form-error-message {
  color: var(--ss-error);
  font-size: 13px;
  margin-top: 4px;
}

/* Mobile */
@media (max-width: 640px) {
  .jet-form-builder-progress-pages {
    gap: 4px;
  }
  .jet-form-builder-progress-pages__item--wrapper {
    font-size: 11px;
  }
  .jet-form-builder-progress-pages__item--wrapper::before {
    width: 30px;
    height: 30px;
    font-size: 12px;
  }
  .jet-form-builder-progress-pages__separator {
    top: 30px;
    left: calc(50% + 18px);
    right: calc(-50% + 18px);
  }
  .jet-form-builder__action-button {
    padding: 10px 20px !important;
    font-size: 14px !important;
    min-width: 90px;
  }
}

/* Review summary on final step */
.ss-review-summary {
  background: var(--ss-mint-light);
  border: 1px solid var(--ss-soft-mint);
  border-radius: 12px;
  padding: 20px 24px;
  margin: 16px 0 28px;
}
.ss-review-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--ss-soft-mint);
}
.ss-review-row:last-child {
  border-bottom: 0;
}
.ss-review-label {
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ss-deep-teal);
  white-space: nowrap;
}
.ss-review-value {
  font-family: "League Spartan", sans-serif;
  color: var(--ss-text-dark);
  text-align: right;
  font-size: 15px;
}
@media (max-width: 480px) {
  .ss-review-row {
    flex-direction: column;
    gap: 2px;
  }
  .ss-review-value {
    text-align: left;
  }
}

/* Row breathing room (added per Nick request) */
.jet-form-builder-row {
  /*   padding: 14px 0 !important; */
  display: flex !important;
  flex-direction: column !important;
  /*   gap: 8px !important; */
}
.jet-form-builder__label-text {
  font-weight: 700;
  font-size: 14px;
  color: var(--ss-text-dark);
  margin-bottom: 2px;
  letter-spacing: 0.01em;
}
.jet-form-builder__field-wrap input[type="text"],
.jet-form-builder__field-wrap input[type="email"],
.jet-form-builder__field-wrap input[type="tel"],
.jet-form-builder__field-wrap input[type="number"],
.jet-form-builder__field-wrap input[type="date"],
.jet-form-builder__field-wrap select,
.jet-form-builder__field-wrap textarea {
  width: 100%;
  box-sizing: border-box;
}

/* Date-field height equalizer — adjacent date rows otherwise look 18px tighter than text rows because text rows have an extra field-wrap div */
.jet-form-builder-row.field-type-date-field {
  padding-bottom: 25px !important;
}
.jet-form-builder input[type="date"]{
	padding:9px 14px;
}

/* Choices field card styling — make selection obvious */
.field-type-choices-field .jet-form-builder-choice {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  gap: 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.field-type-choices-field .jet-form-builder-choice--item {
  position: relative;
  background: #ffffff;
  border: 2px solid var(--ss-border-soft, #c4d8d2);
  border-radius: 16px;
  padding: 24px 20px 20px;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}
.field-type-choices-field .jet-form-builder-choice--item:hover {
  border-color: var(--ss-soft-mint, #a3d6cb);
  background: var(--ss-mint-light, #dcefe9);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(61, 141, 144, 0.12);
}
/* SELECTED state — :has() detects the checked radio inside the LI */
.field-type-choices-field .jet-form-builder-choice--item:has(input:checked) {
  border-color: var(--ss-deep-teal, #3d8d90);
  background: var(--ss-mint-light, #dcefe9);
  box-shadow:
    0 0 0 3px rgba(61, 141, 144, 0.25),
    0 6px 18px rgba(61, 141, 144, 0.18);
  transform: translateY(-2px);
}
.field-type-choices-field
  .jet-form-builder-choice--item:has(input:checked)::after {
  content: "\2713";
  position: absolute;
  top: 10px;
  right: 12px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--ss-deep-teal, #3d8d90);
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(61, 141, 144, 0.3);
}
.field-type-choices-field .jet-form-builder-choice--item figure {
  margin: 0;
}
.field-type-choices-field .jet-form-builder-choice--item figure img {
  max-width: 100%;
  height: auto;
  display: block;
}
.field-type-choices-field .jet-form-builder-choice--item p {
  margin: 0;
  font-family: "League Spartan", sans-serif;
  font-weight: 700;
  font-size: 18px;
  color: var(--ss-text-dark, #15325b);
  letter-spacing: 0.02em;
}
.field-type-choices-field .jet-form-builder-choice--item:has(input:checked) p {
  color: var(--ss-deep-teal, #3d8d90);
}
/* Hide the native radio — clicking the card toggles it via JS */
.field-type-choices-field .jet-form-builder-choice--item input[type="radio"],
.field-type-choices-field
  .jet-form-builder-choice--item
  input[type="checkbox"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  margin: 0;
  cursor: pointer;
  z-index: 2;
}
/* Make sure label image + text stay below the click overlay but still visible */
.field-type-choices-field .jet-form-builder-choice--item > figure,
.field-type-choices-field .jet-form-builder-choice--item > p {
  position: relative;
  z-index: 1;
  pointer-events: none;
}
/* Center the heading label for this field */
.field-type-choices-field .jet-form-builder__label {
  text-align: center;
}

/* === Surf Shack Booking UI === */
.ssr-book-shell {
  max-width: 980px;
  margin: 40px auto;
  padding: 32px 28px;
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 4px 24px rgba(21, 50, 91, 0.08);
  font-family: "League Spartan", sans-serif;
  color: var(--ss-text-dark, #15325b);
}
.ssr-book-cta {
  text-align: center;
}
.ssr-book-cta h1 {
  font-size: 32px;
  color: var(--ss-deep-teal, #3d8d90);
  margin: 0 0 12px;
}
.ssr-book-cta p {
  font-size: 17px;
  color: var(--ss-text-muted, #4a6b7e);
  margin: 0 0 24px;
}
.ssr-book-cta .ssr-muted {
  font-size: 14px;
  margin-top: 18px;
}
.ssr-btn-primary {
  display: inline-block;
  padding: 14px 36px;
  background: var(--ss-deep-teal, #3d8d90);
  color: #ffffff !important;
  border: none;
  border-radius: 999px;
  font-family: "League Spartan", sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  transition: all 0.2s;
}
.ssr-btn-primary:hover {
  background: #2f6e70;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(61, 141, 144, 0.25);
}
.ssr-balance-widget {
  display: flex;
  gap: 16px;
  justify-content: center;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.ssr-balance-item {
  flex: 0 1 200px;
  padding: 16px 20px;
  background: var(--ss-mint-light, #dcefe9);
  border: 2px solid var(--ss-soft-mint, #a3d6cb);
  border-radius: 14px;
  text-align: center;
}
.ssr-bal-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ss-deep-teal, #3d8d90);
  margin-bottom: 4px;
}
.ssr-bal-count {
  display: block;
  font-size: 36px;
  font-weight: 700;
  color: var(--ss-text-dark, #15325b);
  line-height: 1;
}
.ssr-month-cal {
  margin-top: 24px;
}
.ssr-month-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.ssr-month-title {
  margin: 0;
  font-size: 24px;
  color: var(--ss-text-dark, #15325b);
}
.ssr-month-nav {
  background: transparent;
  border: 2px solid var(--ss-soft-mint, #a3d6cb);
  color: var(--ss-deep-teal, #3d8d90);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 22px;
  cursor: pointer;
  line-height: 1;
}
.ssr-month-nav:hover {
  background: var(--ss-mint-light, #dcefe9);
}
.ssr-month-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin-bottom: 6px;
}
.ssr-month-weekdays span {
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--ss-text-muted, #4a6b7e);
  text-transform: uppercase;
  padding: 4px 0;
}
.ssr-month-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}
.ssr-day {
  aspect-ratio: 1;
  background: #fafcfb;
  border: 1px solid var(--ss-border-soft, #c4d8d2);
  border-radius: 10px;
  padding: 6px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  font-family: "League Spartan", sans-serif;
  transition: all 0.15s;
}
.ssr-day:hover:not(:disabled):not(.ssr-day-past):not(.ssr-day-full) {
  background: var(--ss-mint-light, #dcefe9);
  border-color: var(--ss-soft-mint, #a3d6cb);
  transform: translateY(-1px);
}
.ssr-day-empty {
  background: transparent;
  border: none;
  cursor: default;
}
.ssr-day-past {
  opacity: 0.35;
  cursor: not-allowed;
}
.ssr-day-today {
  border-color: var(--ss-deep-teal, #3d8d90);
  border-width: 2px;
}
.ssr-day-full {
  background: #f5f0f0;
  opacity: 0.6;
  cursor: not-allowed;
}
.ssr-day-num {
  font-size: 16px;
  font-weight: 600;
  color: var(--ss-text-dark, #15325b);
}
.ssr-day-dots {
  display: flex;
  gap: 3px;
  min-height: 8px;
}
.ssr-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.ssr-dot-open {
  background: var(--ss-sunset-orange, #f09956);
}
.ssr-dot-guided {
  background: var(--ss-deep-teal, #3d8d90);
}
.ssr-month-legend {
  margin-top: 12px;
  display: flex;
  gap: 18px;
  justify-content: center;
  font-size: 13px;
  color: var(--ss-text-muted, #4a6b7e);
}
.ssr-month-legend .ssr-dot {
  vertical-align: middle;
  margin-right: 4px;
}
.ssr-day-drawer {
  margin-top: 24px;
  padding: 24px;
  background: var(--ss-mint-light, #dcefe9);
  border: 1px solid var(--ss-soft-mint, #a3d6cb);
  border-radius: 14px;
  position: relative;
}
.ssr-drawer-close {
  position: absolute;
  top: 12px;
  right: 14px;
  background: transparent;
  border: none;
  font-size: 26px;
  color: var(--ss-text-muted, #4a6b7e);
  cursor: pointer;
  line-height: 1;
}
.ssr-day-title {
  margin: 0 0 18px;
  font-size: 22px;
  color: var(--ss-text-dark, #15325b);
}
.ssr-day-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.ssr-day-col h3 {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ss-deep-teal, #3d8d90);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ssr-bal-mini {
  font-size: 11px;
  font-weight: 600;
  color: var(--ss-text-muted, #4a6b7e);
  text-transform: none;
  letter-spacing: 0;
}
.ssr-day-slots {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ssr-slot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: #ffffff;
  border: 1.5px solid var(--ss-soft-mint, #a3d6cb);
  border-radius: 10px;
  cursor: pointer;
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  color: var(--ss-text-dark, #15325b);
  transition: all 0.15s;
}
.ssr-slot:hover:not(:disabled) {
  border-color: var(--ss-deep-teal, #3d8d90);
  background: var(--ss-mint-light, #dcefe9);
  transform: translateX(2px);
}
.ssr-slot:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.ssr-slot-full {
  background: #f5f0f0;
}
.ssr-slot-mine {
  background: var(--ss-deep-teal, #3d8d90);
  color: #ffffff;
  border-color: var(--ss-deep-teal, #3d8d90);
}
.ssr-slot-time {
  font-weight: 700;
}
.ssr-slot-rem {
  font-size: 12px;
  opacity: 0.75;
}
.ssr-reserve-status {
  margin-top: 14px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 14px;
  min-height: 22px;
}
.ssr-status-success {
  background: var(--ss-soft-mint, #a3d6cb);
  color: var(--ss-deep-teal, #3d8d90);
  font-weight: 600;
}
.ssr-status-error {
  background: #f8e4e0;
  color: var(--ss-error, #c0392b);
  font-weight: 600;
}
.ssr-loading {
  font-size: 13px;
  color: var(--ss-text-muted, #4a6b7e);
  margin: 0;
}
@media (max-width: 640px) {
  .ssr-day-cols {
    grid-template-columns: 1fr;
  }
  .ssr-month-grid {
    gap: 3px;
  }
  .ssr-day-num {
    font-size: 13px;
  }
}
/* === end Surf Shack Booking UI === */
/* === Surf Shack Booking Phase 2-7 === */
.ssr-mb-shell {
  max-width: 880px;
  margin: 32px auto;
  padding: 32px 28px;
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 4px 24px rgba(21, 50, 91, 0.08);
  font-family: "League Spartan", sans-serif;
}
.ssr-mb-tabs {
  display: flex;
  gap: 8px;
  border-bottom: 2px solid var(--ss-border-soft, #c4d8d2);
  margin-bottom: 20px;
}
.ssr-mb-tab {
  background: transparent;
  border: none;
  padding: 10px 22px;
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ss-text-muted, #4a6b7e);
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
}
.ssr-mb-tab:hover {
  color: var(--ss-deep-teal, #3d8d90);
}
.ssr-mb-tab-active {
  color: var(--ss-deep-teal, #3d8d90);
  border-bottom-color: var(--ss-deep-teal, #3d8d90);
}
.ssr-mb-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ssr-mb-card {
  padding: 18px 22px;
  background: #fafcfb;
  border: 1.5px solid var(--ss-border-soft, #c4d8d2);
  border-radius: 12px;
}
.ssr-mb-cancelled {
  opacity: 0.55;
}
.ssr-mb-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.ssr-mb-when {
  font-size: 18px;
  font-weight: 700;
  color: var(--ss-text-dark, #15325b);
}
.ssr-mb-svc {
  font-size: 13px;
  padding: 4px 12px;
  background: var(--ss-mint-light, #dcefe9);
  color: var(--ss-deep-teal, #3d8d90);
  border-radius: 999px;
  font-weight: 600;
}
.ssr-mb-card-bot {
  margin-top: 8px;
}
.ssr-mb-status {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--ss-soft-mint, #a3d6cb);
  color: var(--ss-deep-teal, #3d8d90);
}
.ssr-mb-status-cancelled,
.ssr-mb-status-canceled {
  background: #f8e4e0;
  color: var(--ss-error, #c0392b);
}
.ssr-mb-status-checked-in {
  background: var(--ss-sandy-yellow, #f4d266);
  color: var(--ss-text-dark, #15325b);
}
.ssr-mb-actions {
  margin-top: 14px;
  display: flex;
  gap: 10px;
}
.ssr-btn-secondary {
  display: inline-block;
  padding: 10px 22px;
  background: transparent;
  color: var(--ss-deep-teal, #3d8d90) !important;
  border: 2px solid var(--ss-deep-teal, #3d8d90);
  border-radius: 999px;
  font-family: "League Spartan", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.15s;
}
.ssr-btn-secondary:hover {
  background: var(--ss-mint-light, #dcefe9);
}
.ssr-btn-secondary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.ssr-mb-locked {
  margin-top: 12px;
  font-size: 12px;
  color: var(--ss-text-muted, #4a6b7e);
  font-style: italic;
}
.ssr-mb-empty {
  text-align: center;
  padding: 40px 0;
}
.ssr-mb-empty p {
  color: var(--ss-text-muted, #4a6b7e);
  margin-bottom: 16px;
}
/* Staff roster Phase 7 */
.ssr-roster {
  max-width: 1100px;
  margin: 32px auto;
  padding: 28px;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(21, 50, 91, 0.06);
  font-family: "League Spartan", sans-serif;
}
.ssr-roster-title {
  font-size: 26px;
  color: var(--ss-deep-teal, #3d8d90);
  margin: 0 0 24px;
}
.ssr-roster-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.ssr-roster-slot {
  border: 1.5px solid var(--ss-border-soft, #c4d8d2);
  border-radius: 12px;
  overflow: hidden;
}
.ssr-roster-slot-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: var(--ss-mint-light, #dcefe9);
}
.ssr-roster-hour {
  font-size: 18px;
  font-weight: 700;
  color: var(--ss-text-dark, #15325b);
}
.ssr-roster-meter {
  font-size: 12px;
  font-weight: 600;
  color: var(--ss-deep-teal, #3d8d90);
  letter-spacing: 0.04em;
}
.ssr-roster-slot-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 14px 16px;
}
.ssr-roster-col h4 {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ss-deep-teal, #3d8d90);
}
.ssr-roster-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 13px;
  color: var(--ss-text-dark, #15325b);
}
.ssr-roster-col li {
  padding: 2px 0;
}
/* === end Surf Shack Booking Phase 2-7 === */
/* === Picker v2 layout === */
.ssr-book-v2 .ssr-book-2col {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 24px;
}
@media (max-width: 900px) {
  .ssr-book-v2 .ssr-book-2col {
    grid-template-columns: 1fr;
  }
}
.ssr-rider-aside {
  background: var(--ss-mint-light, #dcefe9);
  border-radius: 14px;
  padding: 20px 18px;
}
.ssr-rider-aside h3 {
  margin: 0 0 14px;
  font-size: 16px;
  color: var(--ss-deep-teal, #3d8d90);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ssr-rider-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ssr-rider-card {
  display: flex !important;
  flex-direction: column;
  gap: 4px;
  padding: 14px 16px;
  background: #ffffff !important;
  border: 2px solid var(--ss-border-soft, #c4d8d2) !important;
  border-radius: 12px;
  text-align: left;
  cursor: pointer;
  transition: all 0.15s;
  font-family: "League Spartan", sans-serif;
}
.ssr-rider-card:hover {
  border-color: var(--ss-soft-mint, #a3d6cb) !important;
  transform: translateY(-1px);
}
.ssr-rider-selected {
  border-color: var(--ss-deep-teal, #3d8d90) !important;
  background: var(--ss-mint-light, #dcefe9) !important;
  box-shadow: 0 0 0 3px rgba(61, 141, 144, 0.15);
}
.ssr-rider-card-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}
.ssr-rider-name {
  font-weight: 700;
  font-size: 16px;
  color: var(--ss-text-dark, #15325b);
}
.ssr-rider-age {
  font-size: 12px;
  color: var(--ss-text-muted, #4a6b7e);
}
.ssr-rider-ofc {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ssr-ofc-approved {
  color: var(--ss-deep-teal, #3d8d90);
}
.ssr-ofc-pending,
.ssr-ofc-none,
.ssr-ofc-unknown,
.ssr-ofc-rejected {
  color: var(--ss-text-muted, #4a6b7e);
}
.ssr-rider-balance {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.ssr-bal-mini {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 999px;
  font-weight: 600;
}
.ssr-bal-mini-open {
  background: rgba(240, 153, 86, 0.15);
  color: var(--ss-sunset-orange, #f09956);
}
.ssr-bal-mini-guided {
  background: rgba(61, 141, 144, 0.12);
  color: var(--ss-deep-teal, #3d8d90);
}
.ssr-bal-mini-empty {
  background: #f0f0f0;
  color: var(--ss-text-muted, #4a6b7e);
}
.ssr-rider-summary {
  margin-top: 14px;
  font-size: 13px;
  color: var(--ss-text-muted, #4a6b7e);
  text-align: center;
}
.ssr-rider-summary strong {
  color: var(--ss-deep-teal, #3d8d90);
  font-size: 18px;
}
/* Day drawer slots with qty steppers */
.ssr-drawer-hint {
  font-size: 12px;
  color: var(--ss-text-muted, #4a6b7e);
  margin: -8px 0 14px;
  font-style: italic;
}
.ssr-day-slots {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ssr-slot-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #ffffff;
  border: 1.5px solid var(--ss-soft-mint, #a3d6cb);
  border-radius: 10px;
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  position: relative;
}
.ssr-slot-row.ssr-slot-full {
  opacity: 0.4;
  background: #f5f0f0;
}
.ssr-slot-row.ssr-slot-ineligible {
  opacity: 0.4;
}
.ssr-slot-time {
  font-weight: 700;
  color: var(--ss-text-dark, #15325b);
}
.ssr-slot-rem {
  font-size: 12px;
  color: var(--ss-text-muted, #4a6b7e);
}
.ssr-slot-qty {
  display: flex;
  align-items: center;
  gap: 6px;
}
.ssr-slot-qty button {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--ss-mint-light, #dcefe9) !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
  border: 1.5px solid var(--ss-soft-mint, #a3d6cb) !important;
  font-weight: 700;
  cursor: pointer;
  line-height: 1;
  padding: 0;
}
.ssr-slot-qty button:hover {
  background: var(--ss-deep-teal, #3d8d90) !important;
  color: #ffffff !important;
}
.ssr-slot-qty-val {
  font-weight: 700;
  min-width: 18px;
  text-align: center;
  color: var(--ss-text-dark, #15325b);
}
.ssr-slot-flash {
  position: absolute;
  right: 10px;
  top: -22px;
  background: var(--ss-error, #c0392b);
  color: #ffffff;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 4px;
  z-index: 5;
  animation: ssrFade 0.25s;
}
/* Review bar (sticky CTA) */
.ssr-review-bar {
  position: sticky;
  bottom: 20px;
  margin-top: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 14px 22px;
  background: var(--ss-text-dark, #15325b);
  color: #ffffff;
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(21, 50, 91, 0.25);
}
.ssr-review-summary {
  font-size: 14px;
	color:var(--e-global-color-text);
}
.ssr-review-summary strong {
  color: var(--ss-sandy-yellow, #f4d266);
  font-size: 18px;
  margin-right: 4px;
}
.ssr-review-bar .ssr-btn-primary {
  background: var(--ss-sunset-orange, #f09956) !important;
}
/* Confirmation card */
.ssr-confirm-card {
  margin-top: 24px;
  background: #ffffff;
  border: 2px solid var(--ss-deep-teal, #3d8d90);
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 4px 24px rgba(21, 50, 91, 0.12);
}
.ssr-confirm-card h2 {
  margin: 0 0 16px;
  color: var(--ss-deep-teal, #3d8d90);
}
.ssr-confirm-list {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ssr-confirm-list li {
  padding: 10px 14px;
  background: var(--ss-mint-light, #dcefe9);
  border-radius: 8px;
  font-size: 14px;
  color: var(--ss-text-dark, #15325b);
}
.ssr-confirm-actions {
  display: flex;
  gap: 12px;
}
.ssr-confirm-actions .ssr-btn-primary,
.ssr-confirm-actions .ssr-btn-secondary {
  flex: 1;
}

/* Pool balance pill */
.ssr-pool-balance {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 16px;
  background: #ffffff;
  border: 2px solid var(--ss-soft-mint, #a3d6cb);
  border-radius: 12px;
  margin-bottom: 18px;
}
.ssr-pool-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ss-deep-teal, #3d8d90);
}
.ssr-pool-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.ssr-pool-note {
  font-size: 11px;
  color: var(--ss-text-muted, #4a6b7e);
  font-style: italic;
}
.ssr-pool-pills a {
  color: var(--ss-deep-teal, #3d8d90);
  text-decoration: underline;
}
/* === end Picker v2 layout === */

/* === Pass picker v2 === */
.ssr-pp {
  max-width: 880px;
  margin: 0 auto;
  padding: 32px 28px;
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 4px 24px rgba(21, 50, 91, 0.08);
  font-family: "League Spartan", sans-serif;
  color: var(--ss-text-dark, #15325b);
}
.ssr-pp h2 {
  font-size: 28px;
  color: var(--ss-text-dark, #15325b);
  text-align: center;
  margin: 0 0 8px;
}
.ssr-pp-subtitle {
  text-align: center;
  color: var(--ss-text-muted, #4a6b7e);
  margin: 0 0 28px;
  font-size: 15px;
}
.ssr-pp-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 32px;
  font-size: 12px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 700;
}
.ssr-pp-prog-step {
  color: var(--ss-text-muted, #4a6b7e);
  opacity: 0.5;
  transition: all 0.2s;
}
.ssr-pp-prog-active {
  color: var(--ss-deep-teal, #3d8d90);
  opacity: 1;
}
.ssr-pp-prog-sep {
  width: 28px;
  height: 2px;
  background: var(--ss-border-soft, #c4d8d2);
}
.ssr-pp-back {
  background: transparent;
  border: none;
  color: var(--ss-deep-teal, #3d8d90);
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  padding: 4px 0;
  margin-bottom: 16px;
}
.ssr-pp-back:hover {
  text-decoration: underline;
}
.ssr-pp-step {
  animation: ssrFade 0.25s ease;
}
@keyframes ssrFade {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
/* Step 1: flow type cards */
.ssr-pp-type-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 16px;
}
.ssr-pp-type-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  padding: 32px 24px;
  background: #ffffff;
  border: 2px solid var(--ss-border-soft, #c4d8d2);
  border-radius: 16px;
  cursor: pointer;
  transition: all 0.18s;
  font-family: "League Spartan", sans-serif;
}
.ssr-pp-type-card:hover {
  border-color: var(--ssr-card-accent);
  background: var(--ss-mint-light, #dcefe9);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(61, 141, 144, 0.15);
}
.ssr-pp-type-name {
  font-size: 22px;
  font-weight: 700;
  color: var(--ss-text-dark, #15325b);
}
.ssr-pp-type-sub {
  font-size: 14px;
  color: var(--ss-text-muted, #4a6b7e);
}
.ssr-pp-type-from {
  font-size: 13px;
  font-weight: 700;
  color: var(--ssr-card-accent);
  margin-top: 4px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
/* Step 2: variation cards + qty */
.ssr-pp-step-title {
  font-size: 24px;
  margin-bottom: 16px;
}
.ssr-pp-variation-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}
.ssr-pp-var-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: 4px;
  padding: 18px 20px;
  background: #fafcfb;
  border: 2px solid var(--ss-border-soft, #c4d8d2);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.15s;
  font-family: "League Spartan", sans-serif;
}
.ssr-pp-var-card:hover {
  border-color: var(--ssr-card-accent);
  transform: translateY(-1px);
}
.ssr-pp-var-selected {
  border-color: var(--ssr-card-accent) !important;
  background: var(--ss-mint-light, #dcefe9);
  box-shadow: 0 0 0 3px rgba(61, 141, 144, 0.15);
}
.ssr-pp-var-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--ss-text-dark, #15325b);
}
.ssr-pp-var-price {
  font-size: 22px;
  font-weight: 700;
  color: var(--ssr-card-accent);
}
.ssr-pp-var-tip {
  font-size: 12px;
  color: var(--ss-text-muted, #4a6b7e);
  margin-top: 4px;
}
.ssr-pp-qty-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  background: var(--ss-mint-light, #dcefe9);
  border-radius: 10px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.ssr-pp-qty-label {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ss-deep-teal, #3d8d90);
}
.ssr-pp-qty {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ssr-pp-qty-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #ffffff;
  border: 2px solid var(--ss-soft-mint, #a3d6cb);
  color: var(--ss-deep-teal, #3d8d90);
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  line-height: 1;
}
.ssr-pp-qty-btn:hover {
  background: var(--ss-deep-teal, #3d8d90);
  color: #ffffff;
}
.ssr-pp-qty-val {
  font-size: 20px;
  font-weight: 700;
  min-width: 24px;
  text-align: center;
  color: var(--ss-text-dark, #15325b);
}
.ssr-pp-qty-subtotal {
  font-size: 14px;
  font-weight: 600;
  color: var(--ss-text-dark, #15325b);
}
.ssr-pp-add-to-bag {
  width: 100%;
}
/* Step 3: just added */
.ssr-pp-step-3 {
  text-align: center;
  padding: 24px 0;
}
.ssr-pp-just-added-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--ss-soft-mint, #a3d6cb);
  color: var(--ss-deep-teal, #3d8d90);
  font-size: 36px;
  margin-bottom: 16px;
}
.ssr-pp-just-added {
  font-size: 16px;
  color: var(--ss-text-dark, #15325b);
  margin: 0 0 8px;
  font-weight: 600;
}
.ssr-pp-bag-running {
  font-size: 14px;
  color: var(--ss-text-muted, #4a6b7e);
  margin: 0 0 24px;
}
.ssr-pp-step3-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
/* Step 4: bag summary */
.ssr-pp-bag-list {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ssr-pp-bag-item {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: #fafcfb;
  border: 1.5px solid var(--ss-border-soft, #c4d8d2);
  border-radius: 10px;
}
.ssr-pp-bag-qty {
  font-size: 16px;
  font-weight: 700;
  color: var(--ss-deep-teal, #3d8d90);
}
.ssr-pp-bag-name {
  font-size: 15px;
  color: var(--ss-text-dark, #15325b);
}
.ssr-pp-bag-line {
  font-size: 16px;
  font-weight: 700;
  color: var(--ss-text-dark, #15325b);
}
.ssr-pp-bag-remove {
  background: transparent;
  border: none;
  color: var(--ss-text-muted, #4a6b7e);
  font-size: 22px;
  cursor: pointer;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 50%;
}
.ssr-pp-bag-remove:hover {
  background: #f8e4e0;
  color: var(--ss-error, #c0392b);
}
.ssr-pp-bag-total {
  display: flex;
  justify-content: space-between;
  padding: 16px 18px;
  background: var(--ss-mint-light, #dcefe9);
  border-radius: 10px;
  margin-bottom: 20px;
  font-size: 18px;
}
.ssr-pp-bag-total strong {
  color: var(--ss-deep-teal, #3d8d90);
  font-size: 24px;
}
.ssr-pp-step4-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.ssr-pp-step4-actions .ssr-btn-primary {
  flex: 1 1 220px;
}
.ssr-pp-checkout-status {
  margin-top: 14px;
  text-align: center;
  font-size: 14px;
  color: var(--ss-text-muted, #4a6b7e);
}
@media (max-width: 600px) {
  .ssr-pp-type-grid {
    grid-template-columns: 1fr;
  }
  .ssr-pp-bag-item {
    grid-template-columns: 1fr auto auto;
  }
  .ssr-pp-bag-qty {
    grid-row: 1;
  }
}
/* === end Pass picker v2 === */

/* === Surf Shack Slot Toggle === */

.ssr-slot-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: #ffffff;
  border: 2px solid var(--ss-soft-mint, #a3d6cb);
  border-radius: 12px;
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  color: var(--ss-text-dark, #15325b);
  cursor: pointer;
  transition: all 0.15s;
  position: relative;
  text-align: left;
  width: 100%;
}

.ssr-slot-row:hover:not(.ssr-slot-full):not(.ssr-slot-ineligible) {
  border-color: var(--ss-deep-teal, #3d8d90);
  background: #fafcfb;
  transform: translateX(2px);
}

.ssr-slot-row.ssr-slot-selected {
  background: var(--ss-mint-light, #dcefe9) !important;
  border-color: var(--ss-deep-teal, #3d8d90) !important;
  box-shadow: 0 0 0 3px rgba(61, 141, 144, 0.15);
}

.ssr-slot-row.ssr-slot-full {
  opacity: 0.4;
  background: #f5f0f0;
  cursor: not-allowed;
}

.ssr-slot-row.ssr-slot-ineligible {
  opacity: 0.4;
  cursor: not-allowed;
}

.ssr-slot-time {
  font-weight: 700;
  font-size: 16px;
  color: var(--ss-text-dark, #15325b);
}

.ssr-slot-rem {
  font-size: 12px;
  color: var(--ss-text-muted, #4a6b7e);
}

.ssr-slot-status {
  font-size: 12px;
  font-weight: 700;
  color: var(--ss-deep-teal, #3d8d90);
  letter-spacing: 0.02em;
  min-width: 50px;
  text-align: right;
}

.ssr-slot-row.ssr-slot-selected .ssr-slot-time,
.ssr-slot-row.ssr-slot-selected .ssr-slot-rem {
  color: var(--ss-deep-teal, #3d8d90) !important;
}

/* Hide the legacy +/- stepper if any old shortcode renders still reference it */
.ssr-slot-qty {
  display: none !important;
}

/* Focus state for keyboard users */
.ssr-slot-row:focus,
.ssr-slot-row:focus-visible {
  outline: 2px solid var(--ss-soft-mint, #a3d6cb);
  outline-offset: 2px;
}

.ssr-slot-flash {
  position: absolute;
  right: 10px;
  top: -22px;
  background: var(--ss-error, #c0392b);
  color: #ffffff;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 4px;
  z-index: 5;
  white-space: nowrap;
}

/* === end Surf Shack Slot Toggle === */

/* === Surf Shack Review Step === */

.ssr-book-v2.ssr-on-review .ssr-book-2col,
.ssr-book-v2.ssr-on-review .ssr-review-bar {
  display: none !important;
}

.ssr-book-v2.ssr-on-review .ssr-confirm-card {
  max-width: 760px;
  margin: 0 auto;
  padding: 32px 36px;
}

.ssr-post-book-actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
  flex-wrap: wrap;
}

.ssr-post-book-actions .ssr-btn-primary,
.ssr-post-book-actions .ssr-btn-secondary {
  flex: 1 1 220px;
  text-align: center;
}

/* === end Surf Shack Review Step === */

/* === Surf Shack OFC Badges === */

/* OFC badges on rider cards — colored to match the pool balance pills above.
   Open Flow Card == orange (matches .ssr-bal-mini-open)
   Guided only    == teal   (matches .ssr-bal-mini-guided) */

.ssr-rider-ofc {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  align-self: flex-start;
}

.ssr-rider-ofc.ssr-ofc-approved {
  background: rgba(240, 153, 86, 0.15) !important;
  color: var(--ss-sunset-orange, #f09956) !important;
}

.ssr-rider-ofc.ssr-ofc-pending,
.ssr-rider-ofc.ssr-ofc-none,
.ssr-rider-ofc.ssr-ofc-unknown,
.ssr-rider-ofc.ssr-ofc-rejected {
  background: rgba(61, 141, 144, 0.12) !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
}

/* === end Surf Shack OFC Badges === */

/* === Surf Shack Pool Gate & Confirm Polish === */

/* Remove the deep-teal border ring around the review/confirm card */

.ssr-confirm-card {
  border: none !important;
}

/* Slot rows that the pool has no credits for — visually muted, click-blocked */

.ssr-slot-row.ssr-slot-no-credit {
  opacity: 0.35;
  background: #f5f5f5 !important;
  cursor: not-allowed;
}

.ssr-slot-row.ssr-slot-no-credit:hover {
  transform: none !important;
  border-color: var(--ss-soft-mint, #a3d6cb) !important;
  background: #f5f5f5 !important;
}

/* "X left" pill in the day-drawer column header — real-time pool tally */

.ssr-day-col h3 {
  display: flex !important;
  justify-content: space-between;
  align-items: center;
}

.ssr-pool-left {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 2px 10px;
  border-radius: 999px;
  background: var(--ss-mint-light, #dcefe9);
  color: var(--ss-deep-teal, #3d8d90);
  font-family: "League Spartan", sans-serif;
}

/* === end Surf Shack Pool Gate & Confirm Polish === */

/* === Surf Shack Pass Picker Cart === */

.ssr-pp {
  position: relative;
}

.ssr-pp-cart {
  position: absolute;
  top: 18px;
  right: 20px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--ss-mint-light, #dcefe9) !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
  border: 2px solid var(--ss-soft-mint, #a3d6cb) !important;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s;
  z-index: 10;
  padding: 0;
  box-shadow: 0 2px 8px rgba(21, 50, 91, 0.08);
}

.ssr-pp-cart[hidden] {
  display: none !important;
}

.ssr-pp-cart:hover {
  background: var(--ss-deep-teal, #3d8d90) !important;
  color: #ffffff !important;
  transform: scale(1.05);
  box-shadow: 0 4px 14px rgba(61, 141, 144, 0.25);
}

.ssr-pp-cart:focus,
.ssr-pp-cart:focus-visible,
.ssr-pp-cart:active {
  background: var(--ss-mint-light, #dcefe9) !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
  outline: 2px solid var(--ss-soft-mint, #a3d6cb) !important;
  outline-offset: 2px;
}

.ssr-pp-cart svg {
  width: 22px;
  height: 22px;
  pointer-events: none;
}

.ssr-pp-cart-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 22px;
  height: 22px;
  border-radius: 999px;
  background: var(--ss-sunset-orange, #f09956);
  color: #ffffff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border: 2px solid #ffffff;
  font-family: "League Spartan", sans-serif;
}

/* Hide the legacy bottom review-jump pill — the cart icon supersedes it */
.ssr-pp-review-jump-wrap,
.ssr-pp-review-jump {
  display: none !important;
}

/* Kill Elementor pink focus/active bg bleed on picker buttons */
.ssr-pp .ssr-btn-primary:focus,
.ssr-pp .ssr-btn-primary:focus-visible,
.ssr-pp .ssr-btn-primary:active {
  background-color: var(--ss-deep-teal, #3d8d90) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.ssr-pp .ssr-btn-secondary:focus,
.ssr-pp .ssr-btn-secondary:focus-visible,
.ssr-pp .ssr-btn-secondary:active {
  background-color: transparent !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
  box-shadow: none !important;
}

/* === end Surf Shack Pass Picker Cart === */

/* Picker chip + review-jump !important rescue */
.ssr-pp .ssr-pp-progress {
  gap: 10px;
}
.ssr-pp .ssr-pp-prog-step {
  color: var(--ss-text-muted, #4a6b7e) !important;
  opacity: 0.4 !important;
  transition:
    opacity 0.2s,
    color 0.2s;
}
.ssr-pp .ssr-pp-prog-step.ssr-pp-prog-active {
  color: var(--ss-deep-teal, #3d8d90) !important;
  opacity: 1 !important;
}
.ssr-pp .ssr-pp-prog-sep {
  width: 28px;
  height: 2px;
  background: var(--ss-border-soft, #c4d8d2);
  display: inline-block;
}
.ssr-pp .ssr-pp-review-jump[hidden] {
  display: none !important;
}
.ssr-pp .ssr-pp-review-jump:not([hidden]).ssr-show {
  display: inline-flex !important;
}
.ssr-pp .ssr-pp-review-jump:not([hidden]) {
  display: inline-flex !important;
}

/* Pass picker button bg restoration */
.ssr-pp .ssr-btn-primary,
.ssr-pp .ssr-btn-primary:focus,
.ssr-pp .ssr-btn-primary:active {
  background: var(--ss-deep-teal, #3d8d90) !important;
  color: #ffffff !important;
  border: none !important;
}
.ssr-pp .ssr-btn-primary:hover {
  background: #2f6e70 !important;
  color: #ffffff !important;
}
.ssr-pp .ssr-btn-primary:disabled,
.ssr-pp .ssr-btn-primary[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
}
.ssr-pp .ssr-btn-secondary,
.ssr-pp .ssr-btn-secondary:focus,
.ssr-pp .ssr-btn-secondary:active {
  background: transparent !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
  border: 2px solid var(--ss-deep-teal, #3d8d90) !important;
}
.ssr-pp .ssr-btn-secondary:hover {
  background: var(--ss-mint-light, #dcefe9) !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
}
/* Review bag jump button (shown on steps 1/2 when bag has items) */
.ssr-pp-review-jump {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: -8px auto 20px;
  padding: 10px 20px;
  background: var(--ss-mint-light, #dcefe9);
  color: var(--ss-deep-teal, #3d8d90);
  border: 1.5px solid var(--ss-soft-mint, #a3d6cb);
  border-radius: 999px;
  font-family: "League Spartan", sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.15s;
}
.ssr-pp-review-jump.ssr-show {
  display: inline-flex;
}
.ssr-pp-review-jump:hover {
  background: var(--ss-soft-mint, #a3d6cb) !important;
  transform: translateY(-1px);
}
.ssr-pp-review-jump .ssr-pp-jump-count {
  background: var(--ss-deep-teal, #3d8d90);
  color: #ffffff;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 11px;
}
/* Wrapper so the pill centers */
.ssr-pp-review-jump-wrap {
  text-align: center;
}

/* Pass picker hover overrides — beat Elementor button styles */
.ssr-pp .ssr-pp-back,
.ssr-pp .ssr-pp-back:hover,
.ssr-pp .ssr-pp-back:focus,
.ssr-pp .ssr-pp-back:active {
  background: transparent !important;
  border: none !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
}
.ssr-pp .ssr-pp-back:hover {
  text-decoration: underline;
}
.ssr-pp .ssr-pp-type-card {
  background: #ffffff !important;
  color: var(--ss-text-dark, #15325b);
}
.ssr-pp .ssr-pp-type-card:hover,
.ssr-pp .ssr-pp-type-card:focus {
  background: var(--ss-mint-light, #dcefe9) !important;
}
.ssr-pp .ssr-pp-var-card {
  background: #fafcfb !important;
  color: var(--ss-text-dark, #15325b);
}
.ssr-pp .ssr-pp-var-card:hover,
.ssr-pp .ssr-pp-var-card:focus {
  background: #ffffff !important;
}
.ssr-pp .ssr-pp-var-selected,
.ssr-pp .ssr-pp-var-selected:hover,
.ssr-pp .ssr-pp-var-selected:focus {
  background: var(--ss-mint-light, #dcefe9) !important;
  color: var(--ss-text-dark, #15325b) !important;
}
.ssr-pp .ssr-pp-var-card .ssr-pp-var-name {
  color: var(--ss-text-dark, #15325b) !important;
}
.ssr-pp .ssr-pp-var-card .ssr-pp-var-price {
  color: var(--ssr-card-accent) !important;
}
.ssr-pp .ssr-pp-var-card .ssr-pp-var-tip {
  color: var(--ss-text-muted, #4a6b7e) !important;
}
.ssr-pp .ssr-pp-bag-remove,
.ssr-pp .ssr-pp-bag-remove:focus {
  background: transparent !important;
  color: var(--ss-text-muted, #4a6b7e) !important;
  border: none !important;
}
.ssr-pp .ssr-pp-bag-remove:hover {
  background: #f8e4e0 !important;
  color: var(--ss-error, #c0392b) !important;
}
.ssr-pp .ssr-pp-qty-btn {
  background: #ffffff !important;
  color: var(--ss-deep-teal, #3d8d90) !important;
}
.ssr-pp .ssr-pp-qty-btn:hover {
  background: var(--ss-deep-teal, #3d8d90) !important;
  color: #ffffff !important;
}

/* Pass picker card embellishments */
.field-type-choices-field .jet-form-builder-choice--item h3,
.field-type-choices-field .jet-form-builder-choice--item h4 {
  margin: 0;
  padding: 0;
}
.field-type-choices-field .ssr-pass-flow-tag {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ss-deep-teal, #3d8d90) !important;
  background: var(--ss-mint-light, #dcefe9);
  padding: 4px 10px;
  border-radius: 999px;
  align-self: flex-start;
  margin: 0 auto 8px !important;
  display: inline-block;
}
.field-type-choices-field .ssr-pass-price {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--ss-sunset-orange, #f09956) !important;
  margin-top: 4px !important;
}
.field-type-choices-field
  .jet-form-builder-choice--item:has(input:checked)
  .ssr-pass-price {
  color: var(--ss-deep-teal, #3d8d90) !important;
}
.field-type-choices-field .jet-form-builder-choice {
  flex-wrap: wrap !important;
  gap: 16px !important;
}
.field-type-choices-field .jet-form-builder-choice--item {
  flex: 0 1 200px !important;
  min-width: 180px;
}

/* === end Surf Shack Forms === */

/* === Surf Shack Confirm + Slot Polish === */

.ssr-confirm-card {
  box-shadow: none !important;
}

.ssr-confirm-card .ssr-reserve-status,
.ssr-confirm-card .ssr-status-success {
  background: transparent !important;
  padding: 16px 0 0 0 !important;
  border-radius: 0 !important;
}

.ssr-slot-row,
.ssr-slot-row:focus,
.ssr-slot-row:focus-visible,
.ssr-slot-row:active {
  background-color: #ffffff !important;
  box-shadow: none !important;
}

.ssr-slot-row.ssr-slot-selected,
.ssr-slot-row.ssr-slot-selected:focus,
.ssr-slot-row.ssr-slot-selected:focus-visible,
.ssr-slot-row.ssr-slot-selected:active {
  background-color: var(--ss-mint-light, #dcefe9) !important;
  box-shadow: 0 0 0 3px rgba(61, 141, 144, 0.15) !important;
}

.ssr-slot-row.ssr-slot-no-credit,
.ssr-slot-row.ssr-slot-no-credit:hover,
.ssr-slot-row.ssr-slot-no-credit:focus,
.ssr-slot-row.ssr-slot-no-credit:focus-visible,
.ssr-slot-row.ssr-slot-no-credit:active {
  background-color: #f5f5f5 !important;
  border-color: var(--ss-border-soft, #c4d8d2) !important;
  box-shadow: none !important;
  transform: none !important;
  opacity: 0.35;
  cursor: not-allowed;
}

/* === end Surf Shack Confirm + Slot Polish === */

/* === Surf Shack Listing + OFC Polish === */

.jet-listing-not-found {
  text-align: left;
}

.ss-ofc-list {
  grid-template-columns: 1fr;
}

.ss-ofc-list li {
  padding: 0 0 5px 0;
  background: #0000;
  border-bottom: 1px solid #0001;
  border-radius: 0;
}

.ss-ofc-skills-block,
.ss-ofc-skills-wrap {
  min-width: unset;
  max-width: 100%;
}

/* === end Surf Shack Listing + OFC Polish === */

/* === Surf Shack Booking Card === */

.ss-booking-svc-badge {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 999px;
  background: rgba(61, 141, 144, 0.12);
  color: var(--ss-deep-teal, #3d8d90) !important;
}

.ss-booking-status-badge {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 999px;
  background: var(--ss-mint-light, #dcefe9);
  color: var(--ss-text-dark, #15325b) !important;
}

/* === end Surf Shack Booking Card === */

/* === Surf Shack Booking Card Actions === */

.ssr-booking-card-actions {
  display: flex;
  gap: 10px;
  margin-top: 4px;
}

.ssr-booking-card-actions .ssr-booking-cancel,
.ssr-booking-card-actions .ssr-booking-reschedule {
  flex: 1;
  padding: 10px 16px;
  border-radius: 999px;
  font-family: "League Spartan", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.15s;
}

.ssr-booking-card-actions .ssr-booking-cancel {
  background: transparent !important;
  color: var(--ss-text-muted, #4a6b7e) !important;
  border: 1.5px solid var(--ss-border-soft, #c4d8d2) !important;
}

.ssr-booking-card-actions .ssr-booking-cancel:hover {
  background: rgba(192, 57, 43, 0.08) !important;
  color: var(--ss-error, #c0392b) !important;
  border-color: var(--ss-error, #c0392b) !important;
}

.ssr-booking-card-actions .ssr-booking-cancel:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.ssr-booking-card-actions .ssr-booking-reschedule {
  background: var(--ss-deep-teal, #3d8d90) !important;
  color: #ffffff !important;
  border: 1.5px solid var(--ss-deep-teal, #3d8d90) !important;
}

.ssr-booking-card-actions .ssr-booking-reschedule:hover {
  background: #2f6e70 !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(61, 141, 144, 0.2);
}

/* === end Surf Shack Booking Card Actions === */

/* === Surf Shack Pool Top-up === */

.ssr-pool-topup {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  margin: 12px 0 18px;
  background: transparent;
  border: 1.5px dashed var(--ss-soft-mint, #a3d6cb);
  border-radius: 12px;
  color: var(--ss-text-dark, #15325b) !important;
  text-decoration: none;
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  transition: all 0.15s;
}

.ssr-pool-topup:hover {
  background: var(--ss-mint-light, #dcefe9);
  border-color: var(--ss-deep-teal, #3d8d90);
  transform: translateY(-1px);
  text-decoration: none;
}

.ssr-pool-topup-text {
  color: var(--ss-text-muted, #4a6b7e);
  font-weight: 500;
}

.ssr-pool-topup-cta {
  color: var(--ss-deep-teal, #3d8d90);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 11px;
  white-space: nowrap;
}

/* === end Surf Shack Pool Top-up === */
.ssr-portal .ssr-btn-secondary {
	background:unset !important;
	border:1px solid var(--ss-mint-light) !important;
}
.ssr-portal .ssr-btn-secondary:hover {
	background:var(--ss-mint-light) !important;
	border:1px solid var(--ss-soft-mint) !important;
}

/* /account/qr/ : restore the page's boxed width (the QR shortcode forces the container to full width via a :has rule). Higher specificity than the plugin rule so it wins. */
body .e-con-inner:has(.ssr-qr-grid){max-width:var(--content-width)!important;}