/* SkiCoach booking — trip-page UI */
.scb-trip {
  max-width: 460px;
  margin: 1.5em 0;
  font-size: 16px;
}
.scb-trip .scb-row { margin: 0 0 1.1em; padding: 0; border: 0; }
.scb-label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .65;
  margin-bottom: .5em;
}
.scb-guests-row { display: flex; align-items: center; gap: 14px; }
.scb-guests-row .scb-label { margin: 0; }
.scb-qty { display: inline-flex; align-items: center; border: 1px solid #ddd; border-radius: 8px; overflow: hidden; }
.scb-qty button {
  width: 38px; height: 38px; border: 0; background: #f5f5f5;
  font-size: 20px; line-height: 1; cursor: pointer;
}
.scb-qty button:hover { background: #ececec; }
.scb-guests { width: 46px; height: 38px; text-align: center; border: 0; font-size: 16px; -moz-appearance: textfield; }
.scb-guests::-webkit-outer-spin-button, .scb-guests::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.scb-seats-left { font-size: 13px; opacity: .6; }

.scb-plan, .scb-addon {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px; margin-bottom: 8px;
  border: 1px solid #e2e2e2; border-radius: 10px; cursor: pointer;
  transition: border-color .15s, background .15s;
}
.scb-plan:hover, .scb-addon:hover { border-color: #bbb; }
.scb-plan input, .scb-addon input { margin: 0; }
.scb-addon-label { flex: 1; }
.scb-addon-price { font-weight: 600; opacity: .8; }

.scb-summary {
  margin: 1.2em 0;
  padding: 16px 18px;
  background: #f7f8fa;
  border-radius: 12px;
}
.scb-line { display: flex; justify-content: space-between; padding: 4px 0; }
.scb-line.scb-today { font-size: 1.15em; font-weight: 800; border-top: 1px solid #e3e6ea; margin-top: 6px; padding-top: 12px; }
.scb-balance-line { font-size: 14px; opacity: .7; }

.scb-reserve { width: 100%; padding: 16px; font-size: 17px; font-weight: 700; }
.scb-reserve:disabled { opacity: .5; cursor: not-allowed; }
.scb-note { font-size: 13px; opacity: .6; text-align: center; margin-top: .6em; }

/* Terms acceptance + e-signature */
.scb-agree { border: 1px solid #e2e2e2; border-radius: 10px; padding: 14px 16px; }
.scb-terms-box { margin-bottom: 12px; }
.scb-terms-box > summary { cursor: pointer; font-weight: 600; }
.scb-terms-content {
  max-height: 240px; overflow-y: auto;
  margin-top: 10px; padding: 12px 14px;
  border: 1px solid #ececec; border-radius: 8px; background: #fafafa;
  font-size: 14px; line-height: 1.5;
}
.scb-terms-content h3 { font-size: 15px; margin: 1em 0 .3em; }
.scb-agree-check { align-items: flex-start; font-size: 14px; line-height: 1.45; }
.scb-agree-check input { margin-top: 3px; }
.scb-sign-field { margin-top: 12px; }
.scb-signature { max-width: 340px; }
.scb-sign-note { font-size: 12px; opacity: .6; margin: 6px 0 0; }

/* Intent fields (rooms reuse .scb-plan styling) */
.scb-intent .scb-field { margin-bottom: 14px; }
.scb-sub { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }
.scb-pill { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; margin: 0 8px 8px 0; border: 1px solid #e2e2e2; border-radius: 999px; cursor: pointer; }
.scb-pill:hover { border-color: #bbb; }
.scb-select { width: 100%; max-width: 340px; padding: 10px; border: 1px solid #cfd4da !important; border-radius: 8px !important; font-size: 15px; background: #fff !important; box-shadow: none !important; }
.scb-check { display: flex; align-items: center; gap: 8px; padding: 5px 0; cursor: pointer; }
.scb-note-input { width: 100%; border: 1px solid #cfd4da !important; border-radius: 8px !important; padding: 10px; font-size: 15px; background: #fff !important; box-shadow: none !important; }
/* Salient strips text-input borders — keep our form fields outlined + focusable */
.scb-note-input:focus, .scb-select:focus { border-color: #3858e9 !important; outline: none !important; }

/* Page H1s added for SEO on layouts that had none */
.scb-seo-h1, .scb-inq-h1 { margin: 0 0 .6em; font-size: 2em; line-height: 1.18; font-weight: 800; }
@media (max-width: 640px) { .scb-seo-h1, .scb-inq-h1 { font-size: 1.55em; } }

/* Hosted Custom Experiences inquiry form */
.scb-inquiry { max-width: 720px; margin: 1.5em auto; font-size: 16px; }
.scb-inquiry .scb-inq-h {
  margin: 1.6em 0 .8em; padding-bottom: .35em;
  font-size: 18px; font-weight: 800;
  border-bottom: 1px solid #ececec;
}
.scb-inquiry .scb-inq-h:first-of-type { margin-top: .2em; }
.scb-inq-field { margin-bottom: 16px; }
.scb-inq-field .scb-select,
.scb-inq-field .scb-note-input { max-width: 100%; }
.scb-pills { display: flex; flex-wrap: wrap; }
.scb-inq-services {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px 24px;
  margin-bottom: 4px;
}
.scb-inq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.scb-inq-submit { margin-top: 8px; }
.scb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.scb-inq-thanks {
  background: #f1f8f2; border: 1px solid #cfe8d4; border-radius: 12px;
  padding: 22px 24px;
}
.scb-inq-thanks h2 { margin-top: 0; }
.scb-inq-error {
  background: #fdecec; border: 1px solid #f6c5c5; border-radius: 10px;
  padding: 12px 16px; margin-bottom: 18px;
}
@media (max-width: 600px) {
  .scb-inq-services, .scb-inq-grid { grid-template-columns: 1fr; }
}

/* Season sold-out banner (waitlist) */
.scb-soldout {
  background: #fff4e5; border: 1px solid #f5c56b; border-left: 5px solid #e08a00;
  border-radius: 12px; padding: 20px 24px; margin-bottom: 22px;
}
.scb-soldout h2 { margin: 0 0 .3em; font-size: 22px; }
.scb-soldout p { margin: 0 0 .4em; font-size: 15px; line-height: 1.5; }

/* Mountain Experiences landing page */
/* text-wrap:balance evens the lines instead of leaving a one-word orphan on the last
   row. Purely progressive: browsers without it wrap exactly as they did before. */
.scb-lp-h1 { margin: 0 0 .5em; font-size: 2.1em; line-height: 1.15; font-weight: 800;
             text-wrap: balance; }
.scb-lp h2, .scb-lp h3, .scb-lp-lede { text-wrap: balance; }
/* Posts render the theme's own title rather than .scb-lp-h1, so it needs the same
   treatment or long post titles keep orphaning a word onto the second line. */
#ajax-content-wrap .entry-title { text-wrap: balance; }
/* Hero photos come in mixed aspect ratios; crop to a consistent banner so a 3:2 shot
   doesn't tower over the page on desktop. */
.scb-lp-herofig { max-width: 900px; margin: 0 auto 1.6em; }
/* Never crop the hero. Forcing a 16:9 box on a 3:2 photo cut the tops of heads off, so the
   height is controlled by capping the figure width instead and letting the image keep its
   own aspect ratio. */
.scb-lp-hero { width: 100%; height: auto; display: block; border-radius: 14px; }
.scb-lp-herocap { margin-top: .6em; font-size: 13px; line-height: 1.45; opacity: .65; text-align: center; }
@media (max-width: 640px) { .scb-lp-h1 { font-size: 1.6em; } }
/* ONE measure for everything in here.
   The previous version set the container to 1380px and then capped only paragraphs and
   ordered lists at 820px. On the post template the column resolves to 1000px, so prose
   stopped at 820 while every heading, bullet list, card grid and figure ran to 1000: text
   that visibly failed to fill its own containers and a ragged right edge down the page.
   Cap the container instead and let every child share its edges. 880px keeps running prose
   near an 80-character measure at the theme's 19px body size. */
.scb-lp { max-width: 880px; margin: 0 auto; }
.scb-lp .scb-lp-lede { font-size: 1.2em; line-height: 1.55; opacity: .9; }
.scb-lp-benefits { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 1.5em 0; }
.scb-lp-benefit { border: 1px solid #e6e8eb; border-radius: 12px; padding: 18px 20px; background: #fafbfc; }
.scb-lp-benefit h3 { margin: 0 0 .35em; font-size: 17px; }
.scb-lp-benefit p { margin: 0; font-size: 15px; line-height: 1.5; opacity: .85; }
.scb-lp-price {
  background: #eef4ff; border: 1px solid #cfe0ff; border-radius: 14px;
  padding: 22px 26px; margin: 1.6em 0; text-align: center;
}
.scb-lp-price .scb-lp-amount { font-size: 2.1em; font-weight: 800; line-height: 1.1; }
.scb-lp-price p { margin: .4em 0 0; opacity: .8; }
.scb-lp-compare { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: 15px; }
.scb-lp-compare th, .scb-lp-compare td { border: 1px solid #e6e8eb; padding: 11px 14px; text-align: left; vertical-align: top; }
.scb-lp-compare thead th { background: #f2f5f8; }
.scb-lp-compare td.scb-lp-us { background: #f1f8f2; font-weight: 600; }
.scb-lp-faq details { border-bottom: 1px solid #ececec; padding: 12px 0; }
.scb-lp-faq summary { cursor: pointer; font-weight: 700; font-size: 16px; }
.scb-lp-faq details p { margin: .6em 0 0; line-height: 1.55; opacity: .88; }
@media (max-width: 640px) { .scb-lp-benefits { grid-template-columns: 1fr; } }
.scb-soldout-product .scb-waitlist-cta { display: inline-block; margin-top: 8px; padding: 14px 22px; font-size: 16px; font-weight: 700; }
.scb-price-soldout { font-weight: 700; color: #c1440e; }

/* Private coach card (/c/<code>) — standalone page, no theme chrome */
.scb-cc-body {
  margin: 0; padding: 0;
  background: #f2f4f7;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: #1c2530;
  -webkit-font-smoothing: antialiased;
}
.scb-cc {
  max-width: 480px; margin: 0 auto; padding: 28px 20px 90px;
  font-size: 16px; line-height: 1.55;
}
.scb-cc-head { text-align: center; }
.scb-cc-photo {
  width: 132px; height: 132px; object-fit: cover;
  border-radius: 50%; border: 4px solid #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.12);
}
.scb-cc-name { margin: 14px 0 2px; font-size: 26px; font-weight: 800; line-height: 1.2; }
.scb-cc-role { margin: 0; font-size: 14px; font-weight: 600; color: #0b84e5; }
.scb-cc-bio { margin: 18px 0 0; }
.scb-cc-bio p { margin: 0 0 .7em; }

.scb-cc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 6px; }
.scb-cc-btn {
  flex: 1 1 0; min-width: 88px;
  padding: 12px 10px; border-radius: 10px;
  background: #fff; border: 1px solid #dfe3e8;
  font-size: 15px; font-weight: 700; text-align: center;
  text-decoration: none; color: #1c2530;
}
.scb-cc-btn:hover { border-color: #b9c0c8; }
.scb-cc-btn-primary { background: #0b84e5; border-color: #0b84e5; color: #fff; }
.scb-cc-btn-primary:hover { background: #0a76ce; border-color: #0a76ce; color: #fff; }
/* Sole contact action on the card — phone/email live only in the vCard. */
.scb-cc-btn-wide { flex: 1 1 100%; padding: 15px 12px; font-size: 16px; }
.scb-cc-note-left { text-align: left; margin: 8px 2px 0; }

.scb-cc-sec {
  margin-top: 22px; padding: 18px 20px;
  background: #fff; border: 1px solid #e6e8eb; border-radius: 14px;
}
.scb-cc-h {
  margin: 0 0 .6em; font-size: 13px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .05em; opacity: .55;
}
.scb-cc-svcs, .scb-cc-list, .scb-cc-posts { margin: 0; padding: 0; list-style: none; }
.scb-cc-svcs li, .scb-cc-posts li { padding: 9px 0; border-bottom: 1px solid #f0f2f4; }
.scb-cc-svcs li:last-child, .scb-cc-posts li:last-child { border-bottom: 0; }
.scb-cc-svcs a, .scb-cc-posts a { color: #0b84e5; text-decoration: none; font-weight: 600; }
.scb-cc-svcs a:hover, .scb-cc-posts a:hover { text-decoration: underline; }
.scb-cc-list li { padding: 5px 0 5px 18px; position: relative; font-size: 15px; }
.scb-cc-list li:before { content: "•"; position: absolute; left: 2px; color: #0b84e5; }
.scb-cc-date { display: block; font-size: 13px; opacity: .55; }
.scb-cc-badge {
  display: inline-block; margin-top: 3px; padding: 2px 8px;
  background: #fff4e5; border: 1px solid #f5c56b; border-radius: 999px;
  font-size: 11px; font-weight: 700; color: #8a5300;
}

.scb-cc-book {
  display: block; margin-top: 22px; padding: 16px;
  background: #0b2c4d; border-radius: 12px;
  color: #fff; font-size: 17px; font-weight: 800;
  text-align: center; text-decoration: none;
}
.scb-cc-book:hover { background: #123c66; color: #fff; }

/* Soft tip ask — warm tint, outline button. Intentionally lower-key than .scb-cc-book
   so it invites rather than sells. */
.scb-cc-tip {
  margin-top: 22px; padding: 20px 22px;
  background: #fef6f3; border: 1px solid #f4d9cf; border-radius: 14px;
  text-align: center;
}
.scb-cc-tip-title { margin: 0 0 .35em; font-size: 17px; font-weight: 800; }
.scb-cc-tip-copy { margin: 0 0 15px; font-size: 15px; line-height: 1.5; opacity: .82; }
.scb-cc-tip-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px; border-radius: 999px;
  background: #fff; border: 1.5px solid #e8734d; color: #c1440e;
  font-size: 15px; font-weight: 700; text-decoration: none;
}
.scb-cc-tip-btn:hover { background: #e8734d; border-color: #e8734d; color: #fff; }
.scb-cc-heart { font-size: 15px; line-height: 1; }

.scb-cc-qr-sec { text-align: center; }
.scb-cc-qr { display: inline-block; line-height: 0; }
.scb-cc-qr img, .scb-cc-qr canvas { display: block; margin: 0 auto; }
.scb-cc-note { margin: 10px 0 0; font-size: 13px; opacity: .55; }
.scb-cc-foot { margin: 26px 0 0; text-align: center; font-size: 13px; font-weight: 700; opacity: .45; }

/* Slide-up "save to contacts" prompt — a tap, because browsers block
   gesture-less downloads (a timed auto-download of the .vcf silently fails). */
.scb-cc-prompt {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9;
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
  background: #fff; border-top: 1px solid #e2e5e9;
  box-shadow: 0 -4px 18px rgba(0,0,0,.10);
  transform: translateY(110%); transition: transform .28s ease;
}
.scb-cc-prompt.is-up { transform: translateY(0); }
.scb-cc-prompt span { flex: 1; font-size: 15px; font-weight: 700; }
.scb-cc-prompt .scb-cc-btn { flex: 0 0 auto; min-width: 0; padding: 10px 20px; }
.scb-cc-x {
  flex: 0 0 auto; width: 32px; height: 32px; padding: 0;
  background: none; border: 0; font-size: 24px; line-height: 1;
  color: #8a929b; cursor: pointer;
}
@media (max-width: 380px) { .scb-cc-btn { min-width: 74px; font-size: 14px; } }

/* Mountain Mentorship booking (calendar + panel) */
.scb-lb-h1 { margin: 0 0 .6em; font-size: 1.9em; line-height: 1.2; font-weight: 800; }
@media (max-width: 560px) { .scb-lb-h1 { font-size: 1.5em; } }
.scb-lb { max-width: 720px; margin: 1.5em auto; font-size: 16px; }
.scb-lb-coachnote { background: #eef4ff; border: 1px solid #cfe0ff; border-radius: 10px; padding: 10px 14px; font-size: 14px; }
.scb-lb-loading { padding: 28px; text-align: center; opacity: .6; }
.scb-lb-legend { margin-top: 16px; font-size: 13px; opacity: .8; }
.scb-lb-legend .scb-lb-dot { display: inline-block; vertical-align: middle; margin-right: 4px; }

.scb-lb-calhead { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; font-size: 18px; }
.scb-lb-nav { width: 40px; height: 40px; border: 1px solid #dfe3e8; background: #fff; border-radius: 10px; font-size: 22px; line-height: 1; cursor: pointer; }
.scb-lb-nav:disabled { opacity: .35; cursor: default; }
.scb-lb-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.scb-lb-dow { text-align: center; font-size: 12px; font-weight: 700; opacity: .5; padding-bottom: 4px; }
.scb-lb-day { position: relative; min-height: 54px; border: 1px solid #edeff2; border-radius: 10px; padding: 6px; background: #fafbfc; }
.scb-lb-empty { border: 0; background: transparent; }
.scb-lb-past { opacity: .3; }
.scb-lb-num { font-size: 14px; }
.scb-lb-has { cursor: pointer; background: #fff; border-color: #cfe0ff; }
.scb-lb-has:hover { border-color: #3858e9; box-shadow: 0 0 0 1px #3858e9 inset; }
.scb-lb-sel { border-color: #0b84e5 !important; box-shadow: 0 0 0 2px #0b84e5 inset; }
.scb-lb-dots { position: absolute; left: 6px; bottom: 6px; display: flex; gap: 3px; }
.scb-lb-dot { width: 8px; height: 8px; border-radius: 50%; }
.scb-lb-instant { background: #46b450; }
.scb-lb-request { background: #dba617; }
.scb-lb-assisted { background: #3858e9; }

.scb-lb-panel { margin-top: 22px; padding: 20px 22px; background: #fff; border: 1px solid #e6e8eb; border-radius: 14px; }
.scb-lb-h { margin: 0 0 2px; font-size: 20px; }
.scb-lb-sub { margin: 0 0 14px; opacity: .7; }
.scb-lb-slots { display: flex; flex-direction: column; gap: 10px; }
.scb-lb-slot { display: flex; justify-content: space-between; align-items: center; gap: 12px; text-align: left; width: 100%; padding: 14px 16px; border: 1px solid #e2e2e2; border-radius: 12px; background: #fff; cursor: pointer; }
.scb-lb-slot:hover { border-color: #0b84e5; }
.scb-lb-slot-main { display: flex; flex-direction: column; gap: 2px; }
.scb-lb-blurb { font-size: 13px; opacity: .7; }
.scb-lb-slot-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; white-space: nowrap; }
.scb-lb-tag { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 999px; color: #fff; }
.scb-lb-tag.scb-lb-instant { background: #46b450; }
.scb-lb-tag.scb-lb-request { background: #b9860b; }
.scb-lb-tag.scb-lb-assisted { background: #3858e9; }
.scb-lb-price { font-size: 13px; font-weight: 600; opacity: .85; }

.scb-lb-back { border: 0; background: none; color: #0b84e5; font-weight: 700; cursor: pointer; padding: 0 0 8px; font-size: 14px; }
.scb-lb-form .scb-inq-field { margin-bottom: 16px; }
.scb-lb-att { display: flex; flex-direction: column; gap: 8px; }
.scb-lb-attrow { display: grid; grid-template-columns: 1fr 150px; gap: 8px; }
.scb-lb-est { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0; margin: 6px 0 10px; border-top: 1px solid #ececec; font-size: 15px; }
.scb-lb-est strong { font-size: 22px; }
.scb-lb-msg { margin: 10px 0 0; font-size: 14px; }
.scb-lb-err { color: #c1440e; font-weight: 600; }
@media (max-width: 560px) {
  .scb-lb-day { min-height: 46px; }
  .scb-lb-attrow { grid-template-columns: 1fr; }
  .scb-lb-slot { flex-direction: column; align-items: flex-start; }
  .scb-lb-slot-meta { align-items: flex-start; }
}

/* Uniform product-grid thumbnails (related products + shop/category archives) —
   source photos have different aspect ratios; crop them to one shape so the
   cards, titles and prices line up evenly. */
ul.products li.product a img,
ul.products li.product img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
ul.products li.product { display: flex; flex-direction: column; }

/* ---- Resort-expansion interest form (coming-soon panel) ------------------ */
/* Reuses the .scb-inq-* form styling; only the "coming soon" badge is new. */
.scb-exp-badge {
  display: inline-block;
  padding: 5px 13px;
  border-radius: 999px;
  background: #1d6fb8;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.scb-exp .scb-sub { display: block; margin-bottom: .5em; opacity: .75; }

/* ---- Calendar empty state ------------------------------------------------ */
/* Shown when a month has zero open days. Without this the grid just greys out
   with no explanation, which reads as a broken page rather than "not yet". */
.scb-lb-none {
  margin-top: 1.1em;
  padding: 16px 18px;
  border: 1px solid rgba(0, 0, 0, .12);
  border-left: 3px solid #1d6fb8;
  border-radius: 8px;
  background: rgba(29, 111, 184, .05);
}
.scb-lb-none strong { display: block; margin-bottom: .35em; }
.scb-lb-none p { margin: 0 0 .2em; font-size: 14px; line-height: 1.5; opacity: .8; }
.scb-lb-noneacts { margin-top: .9em !important; }
.scb-lb-nonebtn {
  display: inline-block;
  padding: 9px 18px;
  border-radius: 6px;
  background: #1d6fb8;
  color: #fff !important;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none !important;
}
.scb-lb-nonebtn:hover { background: #17588f; }

/* ---- Performance Iceberg -------------------------------------------------
   Built as real markup rather than dropped in as an infographic image. The
   original graphic sets its labels in type that is unreadable on a phone, and
   text baked into a PNG is invisible to search engines and to screen readers.
   Same diagram, but it reflows, it scales, and Google can read every word. */
.scb-berg { margin: 2.2em 0; border-radius: 14px; overflow: hidden;
            border: 1px solid rgba(11,123,239,.22); }
.scb-berg-part { padding: 1.6em 1.3em; }
.scb-berg-sky   { background: linear-gradient(180deg,#eaf3fb 0%,#d7e9f8 100%); }
.scb-berg-sea   { background: linear-gradient(180deg,#0f2c47 0%,#071a2b 100%); color:#eaf2f9; }
.scb-berg-line  { display:flex; align-items:center; gap:.9em; padding:.55em 1.3em;
                  background:#0B7BEF; color:#fff; font-size:.82em; font-weight:700;
                  letter-spacing:.09em; text-transform:uppercase; }
.scb-berg-line:before, .scb-berg-line:after { content:""; flex:1; height:1px;
                  background:rgba(255,255,255,.45); }
.scb-berg-tier + .scb-berg-tier { margin-top:1.8em; padding-top:1.6em;
                  border-top:1px solid rgba(255,255,255,.16); }
.scb-berg-sky .scb-berg-tier + .scb-berg-tier { border-top-color:rgba(15,44,71,.16); }
.scb-berg-n { display:inline-flex; align-items:center; justify-content:center;
              width:2em; height:2em; border-radius:50%; background:#0B7BEF; color:#fff;
              font-weight:800; font-size:.95em; margin-bottom:.5em; }
/* Salient sets an ID-prefixed h3 color that beats a plain class selector, so the headings
   in the underwater half rendered near-black on near-black. Scoped to this component. */
.scb-berg h3 { margin:.1em 0 .15em; font-size:1.45em; font-weight:800; line-height:1.15; }
#ajax-content-wrap .scb-berg-sea h3 { color:#ffffff; }
#ajax-content-wrap .scb-berg-sky h3 { color:#0f2c47; }
#ajax-content-wrap .scb-berg-sea .scb-berg-q { color:#cfe2f3; }
.scb-berg-q { margin:0 0 .9em; font-weight:600; opacity:.75; }
.scb-berg-items { list-style:none; margin:0 0 .9em; padding:0; display:flex;
                  flex-wrap:wrap; gap:.5em; }
.scb-berg-items li { list-style:none; margin:0; padding:.4em .8em; border-radius:999px;
                  font-size:.9em; font-weight:600; }
.scb-berg-sea .scb-berg-items li { background:rgba(255,255,255,.10);
                  border:1px solid rgba(255,255,255,.18); }
.scb-berg-sky .scb-berg-items li { background:rgba(11,123,239,.10);
                  border:1px solid rgba(11,123,239,.24); }
.scb-berg-sum { margin:0; font-size:.92em; font-weight:700; letter-spacing:.03em;
                text-transform:uppercase; color:#0B7BEF; }
.scb-berg-sea .scb-berg-sum { color:#6FB6FF; }
.scb-berg-rule { display:grid; grid-template-columns:1fr 1fr; gap:1px;
                 background:rgba(11,123,239,.22); }
.scb-berg-rule > div { background:#fff; padding:1em 1.2em; font-size:.93em; }
.scb-berg-rule b { display:block; margin-bottom:.2em; }
.scb-berg-up b   { color:#2E7D32; }
.scb-berg-down b { color:#C62828; }
@media (max-width:560px){ .scb-berg-rule{ grid-template-columns:1fr; } }

.scb-byline { margin:-.4em 0 1.6em; font-size:.95em; opacity:.8; }
.scb-byline strong { opacity:1; }

/* The poster is 2:3 portrait. Unconstrained it would run well past a screen height on
   desktop, so it is capped and centred; the readable version is the .scb-berg above it. */
.scb-berg-poster { margin: 2em 0; text-align: center; }
.scb-berg-poster img { max-width: min(100%, 620px); height: auto; border-radius: 10px; }
.scb-berg-poster figcaption { margin-top: .7em; font-size: .93em; opacity: .8; }

/* Two renderings of the same diagram, one shown at a time.
   The poster carries the detail and the atmosphere, and it earns its space on a wide screen.
   Below 768px its labels fall under about 9px, which is unreadable, so the markup version
   takes over: same content, reflowed and legible. Both stay in the HTML either way, so the
   text is always there for search engines and screen readers whichever one is painted. */
.scb-berg-poster { display: none; }
@media (min-width: 768px) {
  .scb-berg-poster { display: block; }
  .scb-berg        { display: none; }
}

/* ---- Typographic scale for landing pages and posts ------------------------
   Every heading rule above this point was losing to Salient. The theme prints
   its own rules under #ajax-content-wrap, and an ID beats any number of
   classes, so h2 and h3 computed to font-weight 400 with margin-top 0 no
   matter what the component asked for. The result was headings the same
   weight as body copy, sitting flush against the paragraph above them, with
   no paragraph spacing either: one undifferentiated wall of text.

   These carry the same ID prefix so they actually win, and they set a real
   scale. Body 20px, h3 22px, h2 31px, each with weight and space above it. */
#ajax-content-wrap .scb-lp p { margin: 0 0 1.15em; }
#ajax-content-wrap .scb-lp ul,
#ajax-content-wrap .scb-lp ol { margin: 0 0 1.3em; }
#ajax-content-wrap .scb-lp li { margin-bottom: .45em; }

#ajax-content-wrap .scb-lp h2 {
  font-size: 31px; font-weight: 800; line-height: 1.2; letter-spacing: -.01em;
  margin: 2.1em 0 .55em; color: #14181d;
}
#ajax-content-wrap .scb-lp h3 {
  font-size: 22px; font-weight: 700; line-height: 1.3;
  margin: 1.7em 0 .4em; color: #14181d;
}
/* First heading after the hero should not push the page down twice. */
#ajax-content-wrap .scb-lp > h2:first-of-type { margin-top: 1.2em; }

#ajax-content-wrap .scb-lp .scb-lp-lede {
  font-size: 23px; line-height: 1.5; font-weight: 400; margin-bottom: 1.3em;
}
#ajax-content-wrap .scb-byline { margin: 0 0 1.8em; }

/* Components keep their own sizes; they are cards, not document structure. */
#ajax-content-wrap .scb-lp-benefit h3 { font-size: 17px; font-weight: 700; margin: 0 0 .35em; }
#ajax-content-wrap .scb-berg h3       { font-size: 27px; font-weight: 800; margin: .1em 0 .15em; }
#ajax-content-wrap .scb-berg-sea h3   { color: #fff; }
#ajax-content-wrap .scb-berg-sky h3   { color: #0f2c47; }

@media (max-width: 640px) {
  #ajax-content-wrap .scb-lp h2 { font-size: 25px; margin-top: 1.7em; }
  #ajax-content-wrap .scb-lp h3 { font-size: 20px; }
  #ajax-content-wrap .scb-lp .scb-lp-lede { font-size: 20px; }
}

/* ---- Visual treatment for landing pages -----------------------------------
   Everything below carries the #ajax-content-wrap prefix for the same reason
   the scale above does: Salient's ID-scoped rules outrank plain classes. */

/* Accent rule above every section heading. Cheap, and it gives the page a
   rhythm you can scan without reading. */
#ajax-content-wrap .scb-lp h2::before {
  content: ""; display: block; width: 46px; height: 4px; border-radius: 2px;
  background: #0B7BEF; margin-bottom: .55em;
}
#ajax-content-wrap .scb-lp .scb-tier h2::before { background: currentColor; opacity: .9; }

/* Lede reads as a standfirst rather than a slightly bigger paragraph. */
#ajax-content-wrap .scb-lp .scb-lp-lede {
  border-left: 4px solid #0B7BEF; padding: .1em 0 .1em 1.1em; color: #22303c;
}

/* The three levels, tinted with the same colours the infographic uses, so the
   prose and the graphic read as one thing. */
#ajax-content-wrap .scb-lp .scb-tier {
  border: 1px solid; border-left-width: 5px; border-radius: 14px;
  padding: 1.4em 1.6em .4em; margin: 2.2em 0;
  box-shadow: 0 2px 10px rgba(16,32,48,.05);
}
#ajax-content-wrap .scb-lp .scb-tier h2 { margin-top: .2em; font-size: 27px; }
#ajax-content-wrap .scb-lp .scb-tier-1 { color:#0B63C5; border-color:#bfdcfa; background:#f5faff; }
#ajax-content-wrap .scb-lp .scb-tier-2 { color:#3F7A2E; border-color:#cfe4c4; background:#f7fcf4; }
#ajax-content-wrap .scb-lp .scb-tier-3 { color:#5B3FB5; border-color:#d8cef2; background:#faf8ff; }
#ajax-content-wrap .scb-lp .scb-tier p { color:#22303c; }

/* Key takeaway. Used sparingly: one per page, for the thing worth remembering. */
#ajax-content-wrap .scb-lp .scb-callout {
  background: linear-gradient(180deg,#0f2c47,#0a1f33); color:#eaf2f9;
  border-radius: 14px; padding: 1.5em 1.7em; margin: 2em 0;
  box-shadow: 0 6px 22px rgba(15,44,71,.22);
}
#ajax-content-wrap .scb-lp .scb-callout p { color:#eaf2f9; margin:0; font-size:20px; line-height:1.5; }
#ajax-content-wrap .scb-lp .scb-callout p + p { margin-top:.8em; }
#ajax-content-wrap .scb-lp .scb-callout strong { color:#7FC0FF; }

/* Cards lift off the page instead of sitting flat on it. */
#ajax-content-wrap .scb-lp .scb-lp-benefit {
  background:#fff; border:1px solid #e3e8ee; border-radius:14px;
  box-shadow:0 2px 10px rgba(16,32,48,.06); transition:box-shadow .18s, transform .18s;
}
#ajax-content-wrap .scb-lp .scb-lp-benefit:hover {
  box-shadow:0 8px 24px rgba(16,32,48,.12); transform:translateY(-2px);
}
#ajax-content-wrap .scb-lp .scb-lp-benefit h3 { color:#0B63C5; }

/* FAQ rows as cards, so a long list stops reading as undifferentiated text. */
#ajax-content-wrap .scb-lp .scb-lp-faq details {
  background:#fff; border:1px solid #e3e8ee; border-radius:12px;
  padding:.9em 1.1em; margin-bottom:.6em; box-shadow:0 1px 4px rgba(16,32,48,.04);
}
#ajax-content-wrap .scb-lp .scb-lp-faq details[open] { border-color:#bfdcfa; background:#fbfdff; }
#ajax-content-wrap .scb-lp .scb-lp-faq summary {
  cursor:pointer; font-weight:700; color:#14181d; list-style:none;
}
#ajax-content-wrap .scb-lp .scb-lp-faq summary::-webkit-details-marker { display:none; }
#ajax-content-wrap .scb-lp .scb-lp-faq summary::before {
  content:"+"; color:#0B7BEF; font-weight:800; margin-right:.6em;
}
#ajax-content-wrap .scb-lp .scb-lp-faq details[open] summary::before { content:"\2212"; }

@media (max-width: 640px) {
  #ajax-content-wrap .scb-lp .scb-tier { padding:1.1em 1.1em .3em; }
  #ajax-content-wrap .scb-lp .scb-tier h2 { font-size:23px; }
  #ajax-content-wrap .scb-lp .scb-callout { padding:1.2em 1.2em; }
  #ajax-content-wrap .scb-lp .scb-callout p { font-size:18px; }
}

/* ---- Injected page intros vs the page builder -----------------------------
   Several of these pages are built in WPBakery with a first column carrying an
   inline `margin-top: -5%` (Salient's `neg-marg`), added to pull the builder
   content up under the site header. That was fine when nothing preceded it.
   Our intro copy is injected by the_content ABOVE that row, so the negative
   margin then hauls the builder content up over the intro instead: on /blog/
   the H1 landed on top of the last paragraph.

   Do NOT simply zero that negative margin: the lift is deliberate, and on /blog/ it is what
   keeps the "Ski & Snowboard Coaching Blog" heading on white instead of dropping it into the
   dark card band directly below, where it renders dark on dark. Removing it fixed the overlap
   and immediately created that second bug.

   Instead give the intro exactly as much bottom margin as the row takes back. Percentage
   margins resolve against the same containing block width the -5% does, so 5% cancels the
   lift precisely and keeps doing so at every viewport, with 2.2em on top for real spacing. */
#ajax-content-wrap .scb-page-intro { margin-bottom: calc(5% + 2.2em); }

/* Pre-season notice on /book-a-lesson/, shown only while no open days exist. */
#ajax-content-wrap .scb-lb-preseason {
  background: linear-gradient(180deg,#0f2c47,#0a1f33); color:#eaf2f9;
  border-radius: 14px; padding: 1.5em 1.7em; margin: 1.4em 0 2em;
  box-shadow: 0 6px 22px rgba(15,44,71,.22);
}
#ajax-content-wrap .scb-lb-preseason p { color:#eaf2f9; margin:0; line-height:1.55; }
#ajax-content-wrap .scb-lb-preseason p + p { margin-top:.8em; }
#ajax-content-wrap .scb-lb-preseason strong { color:#7FC0FF; }

/* ---- content figures ----
   scb-lp-figure was used in content for months with no styles behind it, so figures
   fell back to the browser default <figure> margin (40px each side) and sat narrower
   than the surrounding prose. ID-prefixed because Salient's own rules are, and an id
   beats any number of classes. */
#ajax-content-wrap .scb-lp .scb-lp-figure { margin: 2.1em 0; }
#ajax-content-wrap .scb-lp .scb-lp-figure img {
  display: block; width: 100%; height: auto; border-radius: 6px;
}
#ajax-content-wrap .scb-lp .scb-lp-figure figcaption {
  margin-top: .75em; font-size: 14px; line-height: 1.55; color: #5A6672;
}
#ajax-content-wrap .scb-lp .scb-coach-portrait { max-width: 420px; }
