.elementor-kit-15{--e-global-color-primary:#585553;--e-global-color-secondary:#585553;--e-global-color-text:#585553;--e-global-color-accent:#95C59C;--e-global-color-bs_light_teal:#C1DFE4;--e-global-color-bs_chelsea_gray:#86847D;--e-global-color-bs_silver:#9EA1A2;--e-global-color-bs_emerald:#95C59C;--e-global-color-bs_white:#FFFFFF;--e-global-color-bs_teal:#8AC3CB;--e-global-color-bs_iron:#585553;--e-global-typography-primary-font-family:"helvetica-neue-lt-pro";--e-global-typography-primary-font-weight:500;--e-global-typography-secondary-font-family:"helvetica-neue-lt-pro";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"helvetica-neue-lt-pro";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"eurostile";--e-global-typography-accent-font-weight:500;--e-global-typography-bs_display-font-family:"helvetica-neue-lt-pro";--e-global-typography-bs_display-font-size:80px;--e-global-typography-bs_display-font-weight:500;--e-global-typography-bs_display-line-height:1.1em;--e-global-typography-bs_headline-font-family:"helvetica-neue-lt-pro";--e-global-typography-bs_headline-font-size:55px;--e-global-typography-bs_headline-font-weight:500;--e-global-typography-bs_headline-line-height:1.1em;--e-global-typography-bs_title-font-family:"helvetica-neue-lt-pro";--e-global-typography-bs_title-font-size:32px;--e-global-typography-bs_title-font-weight:500;--e-global-typography-bs_title-line-height:1.1em;--e-global-typography-bs_subhead-font-family:"helvetica-neue-lt-pro";--e-global-typography-bs_subhead-font-size:24px;--e-global-typography-bs_subhead-font-weight:400;--e-global-typography-bs_subhead-line-height:1.1em;--e-global-typography-bs_bodylead-font-family:"helvetica-neue-lt-pro";--e-global-typography-bs_bodylead-font-size:26px;--e-global-typography-bs_bodylead-font-weight:500;--e-global-typography-bs_bodylead-line-height:1.4em;--e-global-typography-bs_body-font-family:"helvetica-neue-lt-pro";--e-global-typography-bs_body-font-size:16px;--e-global-typography-bs_body-font-weight:400;--e-global-typography-bs_body-line-height:1.45em;--e-global-typography-bs_button-font-family:"eurostile";--e-global-typography-bs_button-font-size:22px;--e-global-typography-bs_button-font-weight:500;--e-global-typography-bs_button-text-transform:uppercase;--e-global-typography-bs_button-line-height:1em;--e-global-typography-bs_button-letter-spacing:0.05em;--e-global-typography-bs_caption-font-family:"fira-mono";--e-global-typography-bs_caption-font-size:16px;--e-global-typography-bs_caption-font-weight:400;--e-global-typography-bs_caption-text-transform:uppercase;--e-global-typography-bs_caption-line-height:1.3em;--e-global-typography-bs_label-font-family:"eurostile";--e-global-typography-bs_label-font-size:14px;--e-global-typography-bs_label-font-weight:500;--e-global-typography-bs_label-text-transform:uppercase;--e-global-typography-bs_label-line-height:1.2em;font-family:var( --e-global-typography-bs_body-font-family ), Sans-serif;font-size:var( --e-global-typography-bs_body-font-size );font-weight:var( --e-global-typography-bs_body-font-weight );line-height:var( --e-global-typography-bs_body-line-height );letter-spacing:var( --e-global-typography-bs_body-letter-spacing );word-spacing:var( --e-global-typography-bs_body-word-spacing );}.elementor-kit-15 button,.elementor-kit-15 input[type="button"],.elementor-kit-15 input[type="submit"],.elementor-kit-15 .elementor-button{background-color:#FFFFFF;font-family:"eurostile", Sans-serif;font-size:14px;font-weight:600;text-transform:uppercase;color:#585553;border-style:none;border-radius:10px 10px 10px 10px;padding:12px 24px 12px 24px;}.elementor-kit-15 e-page-transition{background-color:#FFBC7D;}.elementor-kit-15 a{color:#585553;}.elementor-kit-15 h1{font-family:var( --e-global-typography-bs_headline-font-family ), Sans-serif;font-size:var( --e-global-typography-bs_headline-font-size );font-weight:var( --e-global-typography-bs_headline-font-weight );line-height:var( --e-global-typography-bs_headline-line-height );letter-spacing:var( --e-global-typography-bs_headline-letter-spacing );word-spacing:var( --e-global-typography-bs_headline-word-spacing );}.elementor-kit-15 h2{font-family:var( --e-global-typography-bs_title-font-family ), Sans-serif;font-size:var( --e-global-typography-bs_title-font-size );font-weight:var( --e-global-typography-bs_title-font-weight );line-height:var( --e-global-typography-bs_title-line-height );letter-spacing:var( --e-global-typography-bs_title-letter-spacing );word-spacing:var( --e-global-typography-bs_title-word-spacing );}.elementor-kit-15 h3{font-family:var( --e-global-typography-bs_subhead-font-family ), Sans-serif;font-size:var( --e-global-typography-bs_subhead-font-size );font-weight:var( --e-global-typography-bs_subhead-font-weight );line-height:var( --e-global-typography-bs_subhead-line-height );letter-spacing:var( --e-global-typography-bs_subhead-letter-spacing );word-spacing:var( --e-global-typography-bs_subhead-word-spacing );}.elementor-kit-15 h4{font-family:var( --e-global-typography-bs_bodylead-font-family ), Sans-serif;font-size:var( --e-global-typography-bs_bodylead-font-size );font-weight:var( --e-global-typography-bs_bodylead-font-weight );line-height:var( --e-global-typography-bs_bodylead-line-height );letter-spacing:var( --e-global-typography-bs_bodylead-letter-spacing );word-spacing:var( --e-global-typography-bs_bodylead-word-spacing );}.elementor-kit-15 h5{font-family:"helvetica-neue-lt-pro", Sans-serif;font-size:22px;font-weight:500;}.elementor-kit-15 h6{font-family:"helvetica-neue-lt-pro", Sans-serif;font-size:18px;font-weight:500;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-15{--e-global-typography-bs_button-font-size:18px;font-size:var( --e-global-typography-bs_body-font-size );line-height:var( --e-global-typography-bs_body-line-height );letter-spacing:var( --e-global-typography-bs_body-letter-spacing );word-spacing:var( --e-global-typography-bs_body-word-spacing );}.elementor-kit-15 h1{font-size:var( --e-global-typography-bs_headline-font-size );line-height:var( --e-global-typography-bs_headline-line-height );letter-spacing:var( --e-global-typography-bs_headline-letter-spacing );word-spacing:var( --e-global-typography-bs_headline-word-spacing );}.elementor-kit-15 h2{font-size:var( --e-global-typography-bs_title-font-size );line-height:var( --e-global-typography-bs_title-line-height );letter-spacing:var( --e-global-typography-bs_title-letter-spacing );word-spacing:var( --e-global-typography-bs_title-word-spacing );}.elementor-kit-15 h3{font-size:var( --e-global-typography-bs_subhead-font-size );line-height:var( --e-global-typography-bs_subhead-line-height );letter-spacing:var( --e-global-typography-bs_subhead-letter-spacing );word-spacing:var( --e-global-typography-bs_subhead-word-spacing );}.elementor-kit-15 h4{font-size:var( --e-global-typography-bs_bodylead-font-size );line-height:var( --e-global-typography-bs_bodylead-line-height );letter-spacing:var( --e-global-typography-bs_bodylead-letter-spacing );word-spacing:var( --e-global-typography-bs_bodylead-word-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-15{--e-global-typography-bs_button-font-size:16px;font-size:var( --e-global-typography-bs_body-font-size );line-height:var( --e-global-typography-bs_body-line-height );letter-spacing:var( --e-global-typography-bs_body-letter-spacing );word-spacing:var( --e-global-typography-bs_body-word-spacing );}.elementor-kit-15 h1{font-size:var( --e-global-typography-bs_headline-font-size );line-height:var( --e-global-typography-bs_headline-line-height );letter-spacing:var( --e-global-typography-bs_headline-letter-spacing );word-spacing:var( --e-global-typography-bs_headline-word-spacing );}.elementor-kit-15 h2{font-size:var( --e-global-typography-bs_title-font-size );line-height:var( --e-global-typography-bs_title-line-height );letter-spacing:var( --e-global-typography-bs_title-letter-spacing );word-spacing:var( --e-global-typography-bs_title-word-spacing );}.elementor-kit-15 h3{font-size:var( --e-global-typography-bs_subhead-font-size );line-height:var( --e-global-typography-bs_subhead-line-height );letter-spacing:var( --e-global-typography-bs_subhead-letter-spacing );word-spacing:var( --e-global-typography-bs_subhead-word-spacing );}.elementor-kit-15 h4{font-size:var( --e-global-typography-bs_bodylead-font-size );line-height:var( --e-global-typography-bs_bodylead-line-height );letter-spacing:var( --e-global-typography-bs_bodylead-letter-spacing );word-spacing:var( --e-global-typography-bs_bodylead-word-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ===== BOOT ACCOUNT PORTAL — scoped cross-cutting fixes (2026-06-19) =====
   Scoped to the 4 account state pages only (page-id body classes).
   Shared element IDs are clones across all states, so one rule hits all. */
body.elementor-page-4149, body.elementor-page-4165,
body.elementor-page-4166, body.elementor-page-4051 {}

/* --- Headline + subtext: force the LOADED brand font (inline used an unloaded name) --- */
body.elementor-page-4149 .elementor-element-29ef368 p,
body.elementor-page-4165 .elementor-element-29ef368 p,
body.elementor-page-4166 .elementor-element-29ef368 p,
body.elementor-page-4051 .elementor-element-29ef368 p,
body.elementor-page-4168 .elementor-element-29ef368 p,
body.elementor-page-4169 .elementor-element-29ef368 p,
body.elementor-page-4170 .elementor-element-29ef368 p,
body.elementor-page-4584 .elementor-element-29ef368 p, body.elementor-page-4171 .elementor-element-29ef368 p {
  font-family: "helvetica-neue-lt-pro","Helvetica Neue",Arial,sans-serif !important;
  font-style: italic !important;
  font-size: 50px !important;
  line-height: 1.12 !important;
}
/* [dead_block_1 (Account Name heading, desktop)] — REMOVED 2026-07-03 kit hygiene pass: zero DOM matches across all 25 censused pages/templates (IDs from a pre-redesign 'Account Name' heading structure that no longer exists on account states A/B/C/D). See docs/kit-css-backup-2026-07-03-pre-hygiene.css for the original block. */
/* [dead_block_2 (subtext blurb, desktop)] — REMOVED 2026-07-03 kit hygiene pass: zero DOM matches across all 25 censused pages/templates (IDs from a pre-redesign 'Account Name' heading structure that no longer exists on account states A/B/C/D). See docs/kit-css-backup-2026-07-03-pre-hygiene.css for the original block. */

/* --- Sidebar column width (desktop): 32% like the design two-panel split --- */
.elementor-element-6b41b45 { flex: 1 1 auto !important; max-width: 100% !important; width: 100% !important; }

/* --- Sidebar menu items: white rule line under each (replaces divider widgets) --- */
.elementor-element-6b41b45 > .elementor-widget-text-editor:nth-child(n+4) {
  border-bottom: 1px solid #585553;
}
.elementor-element-6b41b45 > .elementor-widget-text-editor:nth-child(n+4) p {
  font-family: "helvetica-neue-lt-pro","Helvetica Neue",Arial,sans-serif !important;
  color: #585553 !important;
}


/* --- Sidebar row flex-child width (desktop): 32% on the template widget = the actual flex-child --- */
/* Repoints the basis from the nested sidebar root to the template widget wrapper that row sees. */
.elementor-element-aad55f9 > .elementor-widget-template { flex: 0 0 32% !important; max-width: 32% !important; }

/* ==F21-margin-clamp-2026-07-02== element aad55f9 uses the site gutter token (--bs-gutter: clamp(30px, 3.54vw + 16px, 84px)) instead of a bespoke clamp, so it tracks the universal 84px content gutter. */
.elementor-element-aad55f9 { padding-left: var(--bs-gutter) !important; padding-right: var(--bs-gutter) !important; }
/* ==/F21-margin-clamp-2026-07-02== */
/* ===================== MOBILE (<=767px) ===================== */
@media (max-width:767px){
  /* headline a touch smaller so it fits the narrow sidebar like the design */
  body.elementor-page-4149 .elementor-element-29ef368 p,
  body.elementor-page-4165 .elementor-element-29ef368 p,
  body.elementor-page-4166 .elementor-element-29ef368 p,
  body.elementor-page-4051 .elementor-element-29ef368 p,

  /* TWO-COLUMN menu: sidebar becomes row-wrap; headline/subtext full width.
     Target by explicit shared element IDs (clones across all states) to avoid
     nth-child fragility (a heading widget + hidden dividers shift the counts). */
  .elementor-element-6b41b45 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-content: flex-start !important;
  }
  /* Top block: headline text-editor, "Account Name" heading, subtext = full width */
  .elementor-element-6b41b45 > .elementor-widget-heading,
  .elementor-element-29ef368,
  .elementor-element-fe27e54 {
    flex: 0 0 100% !important; max-width: 100% !important;
  }
  /* Menu items (shared IDs across A/B/C + D's extra item) = half width, two columns */

  .elementor-element-f2170c8,
  .elementor-element-b4461cd,
  .elementor-element-9cfdd1d,
  .elementor-element-c845b8e,
  .elementor-element-95ed72c {
    flex: 0 0 48% !important; max-width: 48% !important; box-sizing: border-box !important;
  }
  /* small gutter between the two columns */
  .elementor-element-6b41b45 { column-gap: 4% !important; }
  /* hide the standalone divider widgets on mobile (rule lines come from border-bottom) */
  .elementor-element-6b41b45 > .elementor-widget-divider { display:none !important; }
}


/* ==================================================================
   BOOT SOLUTIONS — GLOBAL BUTTON SYSTEM (buttons only) — 2026-06-23
   CANONICAL: Peter's 6-variant button spec. Source of truth for all
   button styling and every future review. Apply ONE class via a
   Button/Form widget's Advanced > CSS Classes:
     bs-btn--white  bs-btn--teal  bs-btn--iron
     bs-btn--form   bs-btn--newsletter   bs-btn--header
   Full spec table: design/button-form-style-catalog.md

   MECHANISM: to adopt a global style on a hand-styled button you must
   (1) add the class AND (2) remove the widget's per-widget style
   overrides (bg/text/border/radius/typography + __globals__ + any
   button lines in the widget custom_css). Then the class takes over.
   Selector styles the .elementor-button inside the classed wrapper
   (works for both Button widgets and Form submit buttons).
   ================================================================== */

/* shared identity (all variants): Eurostile UPPERCASE, responsive 22px desktop / 18px tablet / 16px mobile (Peter 2026-07-01: artboards win, supersedes flat 14px), no border, 10px radius, 12/24 padding */
.bs-btn--white .elementor-button, .bs-btn--teal .elementor-button, .bs-btn--iron .elementor-button,
.bs-btn--form .elementor-button, .bs-btn--newsletter .elementor-button, .bs-btn--header .elementor-button {
  font-family:"eurostile","Helvetica Neue",Arial,sans-serif !important;
  font-weight:600 !important; text-transform:uppercase !important; letter-spacing:0.05em !important;
  font-size:14px !important; line-height:1 !important; border:none !important;
  border-radius:10px !important; padding:12px 24px !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  transition:background-color .2s ease,color .2s ease !important;
}


/* --- fills --- */
/* White: page CTAs (RESERVE SPOT etc.) */
.bs-btn--white .elementor-button { background-color:#FFFFFF !important; color:#585553 !important; }
.bs-btn--white .elementor-button:hover { background-color:#ECECEC !important; color:#585553 !important; }
/* Teal: OUR FIT PROCESS, ABOUT US, JOIN OUR NEWSLETTER */
.bs-btn--teal  .elementor-button { background-color:#8AC3CB !important; color:#585553 !important; }
.bs-btn--teal  .elementor-button:hover { background-color:#79B7C0 !important; color:#585553 !important; }
/* Iron: SIGN UP FOR OUR NEWSLETTER */
.bs-btn--iron  .elementor-button { background-color:#585553 !important; color:#FFFFFF !important; }
.bs-btn--iron  .elementor-button:hover { background-color:#46443F !important; color:#FFFFFF !important; }

/* --- submit variants (tighter vertical padding) --- */
/* Form submit (Contact form): white, 11px radius, 0/24 padding */
.bs-btn--form .elementor-button { border-radius:11px !important; padding:0 24px !important;
  background-color:#FFFFFF !important; color:#585553 !important; }
.bs-btn--form .elementor-button:hover { background-color:#ECECEC !important; color:#585553 !important; }
/* Newsletter inline submit: white, 1px Iron border, 5px radius, 0/24 padding */
.bs-btn--newsletter .elementor-button { border:1px solid #585553 !important; border-radius:5px !important;
  padding:0 24px !important; background-color:#FFFFFF !important; color:#585553 !important; }
.bs-btn--newsletter .elementor-button:hover { background-color:#585553 !important; color:#FFFFFF !important; }

/* --- header nav CTA (RESERVE SPOT in nav): white, near-black text, 5px radius, 11px --- */
.bs-btn--header .elementor-button { background-color:#FFFFFF !important; color:#2D2B2A !important;
  border-radius:5px !important; font-size:11px !important; padding:12px 24px !important; }
.bs-btn--header .elementor-button:hover { background-color:#ECECEC !important; color:#2D2B2A !important; }

/* --- Account — Chat (4170): shortcode slot width fix (2026-06-23) ---
   Chat page sidebar uses .elementor-widget-shortcode (not .elementor-widget-template).
   The existing template-.elementor-kit-15 rule misses it. This additive rule brings it to 32%. */
.elementor-element-aad55f9 > .elementor-widget-shortcode { flex: 0 0 32% !important; max-width: 32% !important; }


/* ==F30-remove-stale-equal-height-2026-07-03== Removed 3 pre-F28/F29 'equal height' schemes (v4 generic aad55f9-stretch chain, v5 chat-shortcode corrective, skier-assessment-specific 41c603c block) that forced #6b41b45 to height:100%/flex-grow:1 inside shortcode/template slots. These predate Peter's F28v2/F29 ruling (fixed 815px panel height, align-self:flex-start, bottom-anchored menu via margin-top:auto — no longer stretch-to-match-neighbor). Never cleaned up after that ruling landed on the 5 account pages; this stale kit-level height:100% !important on the shortcode-slot descendant .elementor-kit-15 (matching 4584's ancestor chain via #41c603c) won the cascade tie against the template's own F28v2 815px rule, producing 871.39px instead of 815px on Skier Assessment only. Root-cause note: template custom_css (post 5248 _elementor_data) and kit custom_css (post 15 _elementor_page_settings) are two separate stylesheets; on an !important/specificity tie between them, whichever loads later in the compiled output wins — kit CSS here was landing after the template's F28v2 rule for the shortcode-slot page. Full removed text backed up in docs/dev-migration-log.md and /tmp/f30-removed-block[1-3].css this session. */



/* === Blog Post spacing tokens (2026-06-29) === */
:root{
  --bs-gutter: clamp(30px, 3.54vw + 16px, 84px);
  --bs-grid-gap: clamp(12px, 0.79vw + 8.9px, 24px);
  /* chrome gutter — tighter than content (header 50 / footer 40 desktop) */
  --bs-gutter-chrome: clamp(20px, 2.6vw, 50px);
  /* vertical rhythm — STARTING values; calibrate at Home pilot, then freeze into RESPONSIVE-SPEC §3 */
  --bs-section-y: clamp(40px, 4.7vw, 90px);
  --bs-band-y: clamp(24px, 2.6vw, 50px);
  --bs-stack: clamp(16px, 1.2vw, 24px);
  /* generic step scale for one-offs */
  --bs-1:4px; --bs-2:8px; --bs-3:16px; --bs-4:24px; --bs-5:40px; --bs-6:64px;
}

/* === BS Account round-5 (managed 2026-06-29) === */
/* (1) Sidebar TWO-COLUMN nav at TABLET (768-1024) — mirror the mobile 2-col (Peter v6).
   Robust: every direct child is full-width by default (headline/name/subtext, whatever its
   per-page ID), ONLY the 6 nav links drop to 48% (two columns). Avoids the subtext-beside-link
   glitch from enumerating only the dashboard-state IDs. */
@media (min-width:768px) and (max-width:1024px){
  .elementor-element-6b41b45{
    flex-direction:row !important; flex-wrap:wrap !important;
    align-content:flex-start !important; column-gap:4% !important;
  }
  .elementor-element-6b41b45 > *{ flex:0 0 100% !important; max-width:100% !important; }
  .elementor-element-6b41b45 > .elementor-element-f84debe,
  .elementor-element-6b41b45 > .elementor-element-f2170c8,
  .elementor-element-6b41b45 > .elementor-element-b4461cd,
  .elementor-element-6b41b45 > .elementor-element-9cfdd1d,
  .elementor-element-6b41b45 > .elementor-element-c845b8e,
  .elementor-element-6b41b45 > .elementor-element-95ed72c{ flex:0 0 48% !important; max-width:48% !important; box-sizing:border-box !important; }
  .elementor-element-6b41b45 > .elementor-widget-divider{ display:none !important; }
}

/* (3) Order History (4168) order list → brand Helvetica (was monospace) */
.elementor-element-9a10a52, .elementor-element-9a10a52 *{
  font-family:"helvetica-neue-lt-pro","Helvetica Neue",Arial,sans-serif !important;
}
/* (4) State D (4051) — action buttons LAST on tablet too (mirror mobile) */
@media (min-width:768px) and (max-width:1024px){
  body.elementor-page-4051 .elementor-element-9d421cc > .elementor-element-7d27a98{ margin-top:0 !important; }
  body.elementor-page-4051 .elementor-element-427b973{ order:-1 !important; }
}
/* (5) State D (4051) — CENTER the report content all the way down on tablet+mobile (Peter v10).
   Stack the two-col header rows (heading|status) to column + center; center all text + flex items. */
@media (max-width:1024px){
  body.elementor-page-4051 .elementor-element-717e82e,
  body.elementor-page-4051 .elementor-element-90b4763,
  body.elementor-page-4051 .elementor-element-0f84da0{
    flex-direction:column !important; align-items:center !important; justify-content:center !important;
  }
  body.elementor-page-4051 .elementor-element-8ee6efa .elementor-element,
  body.elementor-page-4051 .elementor-element-9d421cc,
  body.elementor-page-4051 .elementor-element-427b973,
  body.elementor-page-4051 .elementor-element-0fbe5c4,
  body.elementor-page-4051 .elementor-element-879f980,
  body.elementor-page-4051 .elementor-element-b72e8d1{
    align-items:center !important; justify-content:center !important;
  }
  body.elementor-page-4051 .elementor-element-8ee6efa,
  body.elementor-page-4051 .elementor-element-8ee6efa p,
  body.elementor-page-4051 .elementor-element-8ee6efa .elementor-heading-title,
  body.elementor-page-4051 .elementor-element-8ee6efa .elementor-widget-container{
    text-align:center !important;
  }
}
/* (6) Skier Assessment (4584) — fit ALL 7 step indicators on ONE row on mobile (Peter v10).
   The wide step LABELS were forcing each indicator wide → overflow. Hide labels on mobile +
   shrink the number circles; the connector lines flex to fill, so all 7 fit one row. */
@media (max-width:767px){
  body.elementor-page-4584 .e-form__indicators{ flex-wrap:nowrap !important; justify-content:center !important; }
  body.elementor-page-4584 .e-form__indicators__indicator{ flex:0 1 auto !important; padding:0 !important; }
  body.elementor-page-4584 .e-form__indicators__indicator__label{ display:none !important; }
  body.elementor-page-4584 .e-form__indicators__indicator__number{
    width:26px !important; height:26px !important; min-width:26px !important; font-size:11px !important; margin:0 !important;
  }
}
/* === end BS Account round-5 === */

/* === BS Account round-6 (managed) === */

/* #4 — Chat + Warranty form SUBMIT buttons: dark charcoal (contrasts on the Iron #585553 panel) */
.elementor-element-bf5be86 .elementor-button,
.elementor-element-26b1603 .elementor-button{
  background-color:#2D2B2A !important; color:#FFFFFF !important;
}
.elementor-element-bf5be86 .elementor-button:hover,
.elementor-element-26b1603 .elementor-button:hover{
  background-color:#232521 !important; color:#FFFFFF !important;
}

/* #6 — uniform account CTA width: 340px desktop / full-width mobile.
   Explicit IDs ONLY (do NOT use a bare .bs-btn--white rule — that class is the site-wide default). */
.elementor-element-7d27a98 .elementor-button,
.elementor-element-561599b .elementor-button,
.elementor-element-a0f3b6c .elementor-button,
.elementor-element-a6afc70 .elementor-button,
.elementor-element-e72f470 .elementor-button,
.elementor-element-522b4f8 .elementor-button,
.elementor-element-e09bfba .elementor-button{
  width:340px !important; max-width:340px !important;
}
@media (max-width:767px){
  .elementor-element-7d27a98 .elementor-button,
  .elementor-element-561599b .elementor-button,
  .elementor-element-a0f3b6c .elementor-button,
  .elementor-element-a6afc70 .elementor-button,
  .elementor-element-e72f470 .elementor-button,
  .elementor-element-522b4f8 .elementor-button,
  .elementor-element-e09bfba .elementor-button{
    width:100% !important; max-width:100% !important;
  }
}

/* #3 — content panel sizes to content when the layout is stacked (tablet+mobile <=1024).
   Desktop (>1024) keeps min-height:815px + align-items:stretch = intended equal-height. */
@media (max-width:1024px){
  .elementor-element-8ee6efa{ min-height:auto !important; }
}

/* #1 — sidebar nav labels fit ONE line in the mobile 2-col grid (tuned per capture) */
@media (max-width:767px){
  .elementor-element-f84debe a, .elementor-element-f84debe p,
  .elementor-element-f2170c8 a, .elementor-element-f2170c8 p,
  .elementor-element-b4461cd a, .elementor-element-b4461cd p,
  .elementor-element-9cfdd1d a, .elementor-element-9cfdd1d p,
  .elementor-element-c845b8e a, .elementor-element-c845b8e p,
  .elementor-element-95ed72c a, .elementor-element-95ed72c p,
  .elementor-element-4ba4c50 a, .elementor-element-4ba4c50 p,
  .elementor-element-2b29b73 a, .elementor-element-2b29b73 p{
    font-size:15px !important; line-height:1.3 !important; white-space:nowrap !important;
  } /* 2026-07-01: was a wildcard [class*="elementor-element-"] .elementor-kit-15 -- narrowed to the
       actual nav-item IDs (was clobbering the eyebrow 29ef368, name heading 8b2a848, and
       subline bf5cff9 mobile type-scale sizes, all direct children of the same sidebar). */
}

/* === end round-6 === */

/* === BS Account round-7 (managed) === */

/* Default: hide both contextual first-items; state classes reveal the right one. */
.elementor-element-4ba4c50,
.elementor-element-2b29b73{ display:none !important; }

/* State A → "Start a New Order" */
body.bsar-state-A .elementor-element-4ba4c50{ display:block !important; }

/* States B/C/C2 → "Resume Order" */
body.bsar-state-B  .elementor-element-2b29b73,
body.bsar-state-C  .elementor-element-2b29b73,
body.bsar-state-C2 .elementor-element-2b29b73{ display:block !important; }

/* Warranty only in State D (hide on every non-D state) */
body:not(.bsar-state-D) .elementor-element-c845b8e{ display:none !important; }

/* STEP 4 — contextual first item spans full width on mobile + tablet */
@media (max-width:767px){
  .elementor-element-6b41b45 > .elementor-element-4ba4c50,
  .elementor-element-6b41b45 > .elementor-element-2b29b73{ flex:0 0 100% !important; max-width:100% !important; }
}
@media (min-width:768px) and (max-width:1024px){
  .elementor-element-6b41b45 > .elementor-element-4ba4c50,
  .elementor-element-6b41b45 > .elementor-element-2b29b73{ flex:0 0 100% !important; max-width:100% !important; }
}

/* === end round-7 === */

/* 2026-07-01 loop4: anchor jumps land below the fixed header (90 desktop / 70 tablet / 60 mobile) */
html{scroll-padding-top:90px;}
@media (min-width:768px) and (max-width:1024px){html{scroll-padding-top:70px;}}
@media (max-width:767px){html{scroll-padding-top:60px;}}

/* ==BS:fluid-doctrine-2026-07-01== VOICE type fluid at ALL widths (RESPONSIVE-SPEC §2b, Peter-approved).
   floor = approved mobile size, ceiling = 1920 artboard; kit tablet/mobile px steps deleted (the floor
   IS the mobile size — monotonic by construction). READING type flat via base values (body 16,
   caption 16, label 14, subhead 24 — old overrides removed). Buttons keep their steps (controls). */
.elementor-kit-15{
  --e-global-typography-bs_display-font-size:  clamp(40px, 4.167vw, 80px) !important;
  --e-global-typography-bs_headline-font-size: clamp(32px, 2.865vw, 55px) !important;
  --e-global-typography-bs_title-font-size:    clamp(28px, 1.667vw, 32px) !important;
  --e-global-typography-bs_bodylead-font-size: clamp(18px, 1.354vw, 26px) !important;
}


/* ==BS:customizer-drain-2026-07-03== moved from WP Customizer Additional CSS (post 2085) to the
   kit so all global CSS lives in ONE visible layer (Elementor tooling can see it here; the
   Customizer layer was invisible to every MCP/audit tool). Backup of the pre-drain post 2085:
   docs/customizer-2085-backup-2026-07-03.css. Rules that were byte/functional duplicates of an
   existing Elementor-layer rule were folded rather than kept twice — see the drain log
   (docs/dev-migration-log.md) for the one fold (BS Account sidebar stack/width, superseding
   element 4051's local custom_css on aad55f9). */

/* === REPLICA IMAGE FIX (was Customizer) === */
#replica-image {
	  overflow: hidden;
}
#replica-image img {
	  transform: scale(1.8);
	  transform-origin: center center;
}

/* === MOBILE HEADER GAP FIX (was Customizer, 2026-06-14) === */
/* Prevent the sticky JS spacer from using desktop height (90px) on mobile.
   The spacer clone is inserted by jquery.sticky.js after the header activates.
   On iOS Safari the spacer can inherit the base 90px rule before the
   mobile media query overrides it, creating a ~90px dead gap at the top.
   NOTE: element 8d1781b (tmpl 265) also carries its own height-lock custom_css —
   two layers co-own header height; see census TOP-10 #2. Not folded here because
   the element-layer CSS does not cover this specific sticky-spacer .elementor-kit-15. */
@media (max-width: 767px) {
  .elementor-265 .elementor-element-8d1781b.sticky-spacer {
    height: 45px !important;
    min-height: 45px !important;
    max-height: 45px !important;
  }
  /* Also hide the server-side invisible clone — it is position:absolute but
     on some iOS renders it can briefly participate in layout */
  .elementor-265 .elementor-element-8d1781b.elementor-invisible {
    display: none !important;
  }
}

/* === Cross-browser form-control normalization (was Customizer, 2026-06-14) === */
/* Neutralizes Safari/WebKit native control chrome so inputs/selects match Chrome. */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="search"], input[type="password"], input[type="url"], textarea {
  -webkit-appearance: none;
  appearance: none;
}
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23585553'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 34px;
}

/* #11 my-account un-squish (was Customizer, 2026-06-19) */
.woocommerce-account .woocommerce { max-width: 1000px !important; width: 100% !important; margin-left: auto !important; margin-right: auto !important; }
.woocommerce-account .u-columns.col2-set { display: flex !important; gap: 48px !important; width: 100% !important; max-width: none !important; float: none !important; align-items: flex-start !important; }
.woocommerce-account .u-columns.col2-set .u-column1, .woocommerce-account .u-columns.col2-set .u-column2 { width: 50% !important; max-width: 50% !important; float: none !important; margin: 0 !important; }
@media (max-width: 767px) { .woocommerce-account .u-columns.col2-set { flex-direction: column !important; gap: 24px !important; } .woocommerce-account .u-columns.col2-set .u-column1, .woocommerce-account .u-columns.col2-set .u-column2 { width: 100% !important; max-width: 100% !important; } }

/* === BS Account sidebar stack/width (was Customizer; FOLDED with element 4051's aad55f9
   local custom_css 2026-07-03 — this kit version is the superset: covers both
   .elementor-widget-template AND .elementor-widget-shortcode, with !important) === */
@media (max-width: 1024px){
  .elementor-element-aad55f9 > .elementor-widget-template,
  .elementor-element-aad55f9 > .elementor-widget-template > .elementor-widget-container,
  .elementor-element-aad55f9 > .elementor-widget-shortcode,
  .elementor-element-aad55f9 > .elementor-widget-shortcode > .elementor-shortcode{
    flex-basis: 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
}
/* === end BS Account sidebar stack/width === */

/* === BS Checkout block brand skin (was Customizer; sole owner, page 8 has no Elementor data) === */
.wc-block-checkout, .wc-block-checkout p, .wc-block-checkout span, .wc-block-checkout label,
.wc-block-checkout input, .wc-block-checkout select, .wc-block-checkout textarea,
.wc-block-checkout a, .wp-block-woocommerce-checkout * {
  font-family: "Helvetica Neue LT Pro","Helvetica Neue",Helvetica,Arial,sans-serif !important;
}
/* Section / step / summary titles → Eurostile, Iron */
.wc-block-checkout .wc-block-components-title,
.wc-block-checkout .wc-block-components-checkout-step__title,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title {
  font-family: "Eurostile",sans-serif !important;
  color: #585553 !important;
  text-transform: uppercase;
  letter-spacing: .4px;
}
/* Body copy / labels / address text → Iron (checkout sits on white, so dark not white) */
.wc-block-checkout,
.wc-block-checkout .wc-block-components-text-input label,
.wc-block-checkout .wc-block-components-checkout-step__description,
.wc-block-checkout .wc-block-components-address-card,
.wc-block-checkout .wc-block-components-address-card address {
  color: #585553 !important;
}
/* Inputs / selects / textareas → white, Iron text, 8px rounded, brand border */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-select .wc-block-components-select__container,
.wc-block-checkout .wc-block-components-select select,
.wc-block-checkout textarea {
  background:#FFFFFF !important;
  color:#585553 !important;
  border:1px solid #d0cece !important;
  border-radius:8px !important;
  font-size:14px !important;
}
.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-select select:focus,
.wc-block-checkout textarea:focus {
  border-color:#8AC3CB !important;
  box-shadow:0 0 0 1px #8AC3CB !important;
  outline:none !important;
}
.wc-block-checkout .wc-block-components-text-input.is-active label,
.wc-block-checkout .wc-block-components-text-input label { color:#585553 !important; }
/* Option cards (shipping / payment) → rounded, Iron when selected */
.wc-block-checkout .wc-block-components-radio-control-accordion-option,
.wc-block-checkout .wc-block-components-radio-control__option {
  border-radius:8px !important;
}
.wc-block-checkout .wc-block-components-radio-control__option--checked,
.wc-block-checkout .wc-block-components-radio-control-accordion-option--checked {
  border-color:#585553 !important;
}
.wc-block-checkout .wc-block-components-radio-control__input:checked { accent-color:#585553 !important; }
/* Order summary panel → clean white card, Iron numbers */
.wp-block-woocommerce-checkout-order-summary-block {
  border:1px solid #e3e1e0 !important;
  border-radius:10px !important;
}
.wc-block-checkout .wc-block-components-totals-item__label,
.wc-block-checkout .wc-block-components-totals-item__value,
.wc-block-checkout .wc-block-formatted-money-amount,
.wc-block-checkout .wc-block-components-product-metadata,
.wc-block-checkout .wc-block-components-order-summary-item__total-price {
  color:#585553 !important;
}
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-weight:700 !important;
}
/* Links / coupon toggle / Edit → teal accent */
.wc-block-checkout a,
.wc-block-checkout .wc-block-components-button.is-link {
  color:#8AC3CB !important;
  text-decoration-color:#8AC3CB !important;
}
/* PLACE ORDER → Iron pill, white Eurostile text (matches kit bs-btn--iron) */
.wc-block-checkout .wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout-actions-block .wc-block-components-button {
  background:#585553 !important;
  color:#FFFFFF !important;
  border:1px solid #585553 !important;
  border-radius:15px !important;
  font-family:"Eurostile",sans-serif !important;
  text-transform:uppercase !important;
  letter-spacing:1px !important;
  font-weight:600 !important;
  min-height:52px !important;
}
.wc-block-checkout .wc-block-components-checkout-place-order-button:hover {
  background:#4a4845 !important; border-color:#4a4845 !important;
}
.wc-block-checkout .wc-block-components-checkout-place-order-button .wc-block-components-button__text {
  color:#FFFFFF !important;
}
/* === end BS Checkout block brand skin === */

/* === BS Checkout header-clearance fix (was Customizer, 2026-07-02 — note #159, el 2baab4f0) === */
/* The site header (.elementor-element-2baab4f0) is position:fixed with no in-flow spacer
   on this Woo-block page (Elementor's sticky spacer lives inside the fixed <header> itself,
   so it reserves zero space in normal flow) — checkout content renders BEHIND the header
   instead of below it. Push #main down by the header's own responsive height (var(--bs-header-h-desktop/tablet/mobile),
   matching the header's own custom-CSS height-lock breakpoints at 1024/767px). Scoped to
   the checkout page only via body.woocommerce-checkout so it can't affect any other page.
   NOTE (2026-07-03): now sourced from the shared --bs-header-h-* kit tokens (see
   ==BS:header-height-tokens-2026-07-03== above) — same tokens consumed by element 2baab4f0
   (tmpl 1892) and 8d1781b (tmpl 265). Census TOP-10 #2 debt resolved. */
body.woocommerce-checkout #main,
body.woocommerce-checkout .site-main {
  padding-top: var(--bs-header-h-desktop) !important;
}
@media (min-width: 768px) and (max-width: 1024px) {
  body.woocommerce-checkout #main,
  body.woocommerce-checkout .site-main {
    padding-top: var(--bs-header-h-tablet) !important;
  }
}
@media (max-width: 767px) {
  body.woocommerce-checkout #main,
  body.woocommerce-checkout .site-main {
    padding-top: var(--bs-header-h-mobile) !important;
  }
}
/* === end BS Checkout header-clearance fix === */
/* ==BS:customizer-drain-2026-07-03-end== */


/* ==BS:header-height-tokens-2026-07-03== single source for header height across templates 265/1892 + the drained Customizer sticky-spacer/checkout-clearance blocks. Values: 90/70/60 unscrolled desktop/tablet/mobile (both templates); 80 = desktop scrolled-state height (both templates, verified identical live). Do not hand-edit these numbers elsewhere — change here, all consumers follow via var(). */
:root {
  --bs-header-h-desktop: 90px;
  --bs-header-h-desktop-scrolled: 80px;
  --bs-header-h-tablet: 70px;
  --bs-header-h-mobile: 60px;
}
/* ==BS:header-height-tokens-2026-07-03-end== */


/* ==BS:F11-section-header-token-2026-07-03== shared kit-level definition for the
   42px "section header" role duplicated as unbound shadow overrides on Home
   (278ac94a) and Inventory (bbdfccc, abf5d44) — FLUID-TYPE-PLAN.md §4 Phase 2.
   Formula anchored to the existing rendered value (42px ceiling, doctrine floor
   28px per RESPONSIVE-SPEC §2b's VOICE-gentle-curve category, matching bs_title's
   treatment). NOT yet applied to any page element — kit-level mint only; the 3
   page elements above still carry their own local 42px override and are NOT
   rebound this pass (that rebind is wave 2, a different owner, per the FLUID-TYPE
   plan's explicit sequencing). Define as both a CSS custom property (for a future
   custom_css consumer) and an Elementor global-typography var in case Phase 2's
   rebind chooses to promote this into a real named kit typography token instead. */
:root {
  --bs-section-header-size: clamp(28px, 2.1875vw, 42px);
}
/* ==BS:F11-section-header-token-2026-07-03-end== */

/* ==BS:new-tokens-2026-07-03== breather batch (docs/FLUID-TYPE-PLAN.md kit-side
   step 3): radius + border + focus-ring tokens, ratified design/GLOBALS-LOCK.md
   2026-07-03 breather-batch entry ("--bs-radius: 10px" ratified as the site
   radius token). Border/divider check (this session): live dividers on Cart (7,
   elements 84875c8/7ce7189) and Account sidebar render SOLID #585553 (Iron), no
   alpha — genuinely NOT the same value as the rgba(88,85,83,0.6) figure named in
   the build brief. No live rendered element was found using that 0.6-alpha value
   anywhere in the kit or page CSS censused this session. Per the brief's own
   fallback clause ("if dividers and borders genuinely differ... mint two tokens
   and say so") this mints TWO tokens: --bs-divider (solid Iron, matching what's
   actually live) and --bs-border (the rgba(88,85,83,0.6) value as briefed, for
   future lighter-weight border use e.g. form fields/cards) — neither rebinds any
   existing element this pass. */
:root {
  --bs-radius: 10px;
  --bs-divider: 1px solid #585553;
  --bs-border: 1px solid #585553; /* solid = site reality (forms, card borders); alpha divider lives in --bs-divider-soft */
}
/* Focus-ring: visible :focus-visible outline, checked against both light (#FFFFFF)
   and teal (#8AC3CB) backgrounds. Iron (#585553) on white = 7.18:1 (WCAG AAA for
   UI-component 3:1 minimum, comfortably passes). Iron on Teal #8AC3CB = 2.55:1 —
   FAILS the 3:1 non-text-contrast minimum (WCAG 2.2 SC 1.4.11) on the teal
   background alone, so the ring uses a 2px white halo (box-shadow) underneath the
   Iron outline on teal surfaces specifically, giving Iron-on-white effective
   contrast against the teal field regardless of what's directly behind it — same
   pattern already used by the checkout skin's focus states (rgba edge + solid
   ring) rather than inventing a new mechanism. Additive-only: no element opts in
   without also getting the class/.elementor-kit-15, so this cannot change any current
   render. */
:focus-visible {
  outline: 2px solid #585553;
  outline-offset: 2px;
}
.bs-btn--teal:focus-visible,
.bs-btn--form:focus-visible,
[style*="background"][class*="teal"]:focus-visible {
  box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 4px #585553;
  outline: none;
}
/* ==BS:new-tokens-2026-07-03-end== */

/* ==BS:form-system-2026-07-03== R1-ratified (GLOBALS-LOCK.md 2026-07-03 breather
   batch): ".bs-form kit class" — canonical form treatment extracted from the
   Process page (57) form widget e334a58's NATIVE Elementor Style-tab controls
   (verified live via get-element-settings, not guessed): field_border_color
   #585553, field_background_color transparent, no radius set natively (kit now
   supplies --bs-radius), placeholder color #6E6A67, uppercase Fira-Mono field
   text. Page 57's own e334a58 custom_css (==BS:cta-form-2026-07-02==) is COLUMN
   GEOMETRY only (flex-basis splits, gutter alignment) — that block stays
   page-local per its own comment ("single owner for CTA form geometry"); this
   kit class captures the SKIN half only, parameterized on the new radius/border/
   focus tokens. Six per-widget form skins (Process, Contact, Footer newsletter,
   Chat, Warranty, Skier Assessment) are NOT converted to this class yet — that
   conversion is wave 2, per-post owners, per the build brief. This pass only
   defines the reusable class and verifies it renders (DOM-injected probe, no
   persistence — see dev-migration-log.md). */
.bs-form .elementor-field-group .elementor-field:not(.elementor-select-wrapper),
.bs-form .elementor-field-group .elementor-select-wrapper select {
  background-color: transparent !important;
  border: var(--bs-border) !important;
  border-radius: var(--bs-radius) !important;
  color: #585553 !important;
}
.bs-form .elementor-field-group .elementor-field::placeholder {
  color: #6E6A67 !important;
  opacity: 1;
}
.bs-form .elementor-field-group .elementor-field:focus-visible,
.bs-form .elementor-field-group select:focus-visible {
  outline: 2px solid #585553;
  outline-offset: 2px;
}
/* ==BS:form-system-2026-07-03-end== */



/* ==BS:checkout-sticky-offset-2026-07-08== Peter live walkthrough 2026-07-08 (screenshot):
   "the items in cart section hides under the menu bar up top" on /checkout/ when scrolling
   up. Root cause: WooCommerce's own checkout.css puts the order-summary sidebar at
   position:sticky; top:24px (@container min-width:700px, .wc-block-checkout__sidebar.is-sticky)
   — 24px is well inside the site's fixed header's footprint, so the sidebar's top edge is
   covered whenever the sticky header is showing. Fix: push the sticky top offset past the
   header using the same --bs-header-h-* tokens the checkout page's own header-clearance fix
   uses (==BS:header-height-tokens-2026-07-03==), plus 16px breathing room. Scoped to the
   checkout page only via body.woocommerce-checkout so it can't affect any other sticky
   sidebar on the site. */
body.woocommerce-checkout .wc-block-checkout__sidebar.is-sticky {
  top: calc(var(--bs-header-h-desktop) + 16px) !important;
}
@media (min-width: 768px) and (max-width: 1024px) {
  body.woocommerce-checkout .wc-block-checkout__sidebar.is-sticky {
    top: calc(var(--bs-header-h-tablet) + 16px) !important;
  }
}
@media (max-width: 767px) {
  body.woocommerce-checkout .wc-block-checkout__sidebar.is-sticky {
    top: calc(var(--bs-header-h-mobile) + 16px) !important;
  }
}
/* ==BS:checkout-sticky-offset-2026-07-08-end== */

/* === BS Account round-8 (managed) === */

/* Resume Order (2b29b73) — narrow round-7's B/C/C2 reveal to State B ONLY.
   Router semantics: B = pre-purchase (correct "resume order" moment);
   C/C2/D are all POST-purchase — showing "Resume Order" there is the bug
   Peter flagged ("I already ordered - so what is this resume order for").
   Re-hide it explicitly for C and C2 (round-7 revealed it; D was already
   hidden by round-7's default + the Warranty-only-in-D rule doesn't touch
   this element, so D needs an explicit hide too since round-7's base
   default:none is overridden by round-7's own .bsar-state-C2 reveal chain
   only for B/C/C2 — D was never revealed, stays hidden, no action needed). */
body.bsar-state-C  .elementor-element-2b29b73,
body.bsar-state-C2 .elementor-element-2b29b73{ display:none !important; }

/* === end round-8 === *//* End custom CSS */