/* BMX — WordPress layer (loaded after bmx-design.css).
   1 shell fixes · 2 page head · 3 prose (legacy + editorial bodies) · 4 booking (WPForms 204) · 5 misc */

/* == 1 SHELL == */
body.admin-bar .bmx-header{top:32px}
@media (max-width:782px){body.admin-bar .bmx-header{top:46px}}
.bmx-skip{position:absolute;left:12px;top:-60px;z-index:200;padding:10px 16px;border-radius:var(--bmx-r-sm);background:var(--bmx-ink);color:#fff;font-weight:700}
.bmx-skip:focus{top:12px}
.bmx-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bmx-nav__note{display:block;margin-top:2px;color:var(--bmx-mute);font-size:12.5px;line-height:1.35}
#bmx-main:focus{outline:0}

/* == 2 PAGE HEAD (legacy pages, archive, 404) == */
.bmx-page-head{padding:clamp(28px,4vw,48px) 0 clamp(20px,3vw,32px);background:var(--bmx-paper);border-bottom:var(--bmx-bd)}
.bmx-page-head__title{margin-top:12px;font-size:var(--bmx-fs-h2);line-height:1.08;font-stretch:var(--bmx-wide)}

/* == 3 PROSE: raw HTML from older pages and the editorial body of new templates == */
.bmx-prose{color:var(--bmx-body);font-size:1.0625rem;line-height:1.7}
.bmx-legacy.bmx-prose{padding-block:clamp(28px,4vw,56px)}
/* Vertical rhythm at any depth (editorial copy is grouped in <section class="bmx-prose-block">). */
.bmx-prose * + :is(p,ul,ol,table,details,blockquote,figure,img,.bmx-callout){margin-top:1em}
.bmx-prose * + h2{margin-top:1.8em}
.bmx-prose * + h3{margin-top:1.5em}
.bmx-prose * + h4{margin-top:1.3em}
.bmx-prose :is(h2,h3,h4) + *{margin-top:.55em}
.bmx-prose h1,.bmx-prose h2,.bmx-prose h3,.bmx-prose h4{color:var(--bmx-ink);line-height:1.2;letter-spacing:-.015em;font-weight:800}
.bmx-prose h1{font-size:var(--bmx-fs-h2)}
.bmx-prose h2{font-size:clamp(1.375rem,1.15rem + .9vw,1.875rem)}
.bmx-prose h3{font-size:var(--bmx-fs-h3)}
.bmx-prose h4{font-size:1.05rem}
.bmx-prose p,.bmx-prose li{max-width:76ch}
.bmx-prose a{color:var(--bmx-navy);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.bmx-prose a:hover{color:var(--bmx-orange-7)}
.bmx-prose ul,.bmx-prose ol{padding-left:1.35em}
.bmx-prose ul{list-style:disc}
.bmx-prose ol{list-style:decimal}
.bmx-prose li+li{margin-top:.4em}
.bmx-prose li::marker{color:var(--bmx-orange-7)}
.bmx-prose strong,.bmx-prose b{color:var(--bmx-ink);font-weight:700}
.bmx-prose img{height:auto;border-radius:var(--bmx-r-md)}
.bmx-prose table{width:100%;border-collapse:collapse;font-size:.95rem;display:block;overflow-x:auto}
.bmx-prose th,.bmx-prose td{padding:10px 12px;border:var(--bmx-bd);text-align:left;vertical-align:top}
.bmx-prose th{background:var(--bmx-paper);color:var(--bmx-ink)}
.bmx-prose details{padding:14px 18px;border:var(--bmx-bd);border-radius:var(--bmx-r-md);background:var(--bmx-white)}
.bmx-prose details+details{margin-top:10px}
.bmx-prose summary{cursor:pointer;color:var(--bmx-ink);font-weight:700}
.bmx-prose blockquote{margin:1.2em 0;padding:4px 0 4px 18px;border-left:3px solid var(--bmx-orange)}
.bmx-prose hr{border:0;border-top:var(--bmx-bd)}
.bmx-prose .bmx-list-cols{columns:2 300px;column-gap:40px}
.bmx-prose .bmx-list-cols li{break-inside:avoid}
.bmx-prose .bmx-numbered{counter-reset:n;list-style:none;padding-left:0}
.bmx-prose .bmx-numbered li{position:relative;padding-left:44px;counter-increment:n}
.bmx-prose .bmx-numbered li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;top:.15em;font:700 .8rem/1.6 var(--bmx-mono);color:var(--bmx-orange-7)}
.bmx-prose .bmx-callout{padding:20px 24px;border-radius:var(--bmx-r-lg);border:var(--bmx-bd);background:var(--bmx-paper)}
.bmx-prose .bmx-callout--stop{border-color:#B4231833;background:var(--bmx-err-0)}
.bmx-prose .bmx-callout h2{margin-top:0}
.bmx-prose .bmx-checklist{list-style:none;padding-left:0}
.bmx-prose .bmx-checklist li{position:relative;padding-left:28px}
.bmx-prose .bmx-checklist li::before{content:"";position:absolute;left:2px;top:.55em;width:12px;height:7px;border-left:2px solid var(--bmx-ok);border-bottom:2px solid var(--bmx-ok);transform:rotate(-45deg)}
.bmx-prose .bmx-checklist--warn li::before{width:10px;height:10px;top:.45em;border:0;border-radius:50%;background:var(--bmx-err);transform:none}
.bmx-prose-block+.bmx-prose-block{margin-top:2.2em}
.bmx-editorial .bmx-prose{max-width:860px}
/* Legacy bodies brought their own inline-styled orange buttons; keep them legible. */
.bmx-legacy a[style*="background"]{text-decoration:none}
.bmx-legacy--elementor{padding-bottom:var(--bmx-s7)}
.bmx-legacy--elementor .elementor-section-wrap,.bmx-legacy--elementor .elementor{max-width:100%}

/* == 4 BOOKING: WPForms form 204 inside the design == */
/* WPForms "modern" styles read these variables; setting them on the container themes the form at the source. */
.bmx-book__form .wpforms-container-full{
  --wpforms-field-border-radius:8px;--wpforms-field-border-color:var(--bmx-field);--wpforms-field-border-size:1px;
  --wpforms-field-background-color:var(--bmx-white);--wpforms-field-text-color:var(--bmx-ink);--wpforms-field-size-input-height:50px;--wpforms-field-size-font-size:16px;
  --wpforms-label-color:var(--bmx-ink);--wpforms-label-sublabel-color:var(--bmx-mute);--wpforms-label-size-font-size:15.5px;--wpforms-label-error-color:var(--bmx-err);
  --wpforms-button-background-color:var(--bmx-orange);--wpforms-button-text-color:var(--bmx-ink);--wpforms-button-border-radius:10px;--wpforms-button-size-height:56px;--wpforms-button-size-font-size:17px;--wpforms-button-size-padding-h:28px;
  font-family:var(--bmx-sans)}
.bmx-book__form .wpforms-container{margin:0}
/* WPForms resets every <button> in the form (div.wpforms-container-full button{background:none;padding:0}). */
.bmx-book__form div.wpforms-container-full .bmx-btn{min-height:56px;padding:0 26px;border:1px solid #0000;border-radius:10px;font:650 1.0625rem/1.1 var(--bmx-sans);font-stretch:104%}
.bmx-book__form div.wpforms-container-full .bmx-btn--primary{background:var(--bmx-orange);color:var(--bmx-ink);box-shadow:inset 0 -2px 0 #1215192e,inset 0 1px 0 #fff4,0 6px 16px -8px #c2410ca6}
.bmx-book__form div.wpforms-container-full .bmx-btn--primary:hover{background:var(--bmx-orange-h)}
.bmx-book__form div.wpforms-container-full .bmx-btn--ghost{background:var(--bmx-white);color:var(--bmx-ink);border-color:var(--bmx-line-2);box-shadow:var(--bmx-sh-1)}
.bmx-book__form div.wpforms-container-full .bmx-btn--ghost:hover{border-color:var(--bmx-ink)}
.bmx-book__form div.wpforms-container-full .bmx-btn:focus-visible{outline:3px solid #C2410C80;outline-offset:2px}
.bmx-book__form div.wpforms-container-full .wpforms-form .wpforms-field-radio ul{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important;gap:10px!important}
.bmx-book__form div.wpforms-container-full .wpforms-form .wpforms-field-radio ul li{width:auto!important;max-width:none!important}
/* Phones: the compact summary sits above the form (as designed); fee table, help and policies move below it. */
@media (max-width:1023px){
  .bmx-book__aside{display:contents}
  .bmx-book__aside>*{order:1}
  .bmx-book__aside>.bmx-summary{order:-1}
}
.bmx-book__form .wpforms-field{padding:0;margin:0 0 20px}
.bmx-book__form .wpforms-field-label{display:block;margin:0 0 8px;color:var(--bmx-ink);font-size:15.5px;font-weight:650;line-height:1.35}
.bmx-book__form .wpforms-required-label{color:var(--bmx-orange-7)}
.bmx-book__form .wpforms-field-description,.bmx-book__form .wpforms-field-sublabel{margin-top:6px;color:var(--bmx-mute);font-size:13.5px}
.bmx-book__form input[type=text],.bmx-book__form input[type=email],.bmx-book__form input[type=tel],.bmx-book__form input[type=date],.bmx-book__form input[type=number],.bmx-book__form select,.bmx-book__form textarea{width:100%!important;max-width:100%!important;min-height:50px;padding:12px 14px;border:1px solid var(--bmx-field);border-radius:var(--bmx-r-sm);background:var(--bmx-white);color:var(--bmx-ink);font-size:16px;line-height:1.4;box-shadow:none}
.bmx-book__form textarea{min-height:110px}
.bmx-book__form input:focus,.bmx-book__form select:focus,.bmx-book__form textarea:focus{outline:3px solid #C2410C47;outline-offset:0;border-color:var(--bmx-orange-7)}
.bmx-book__form .wpforms-field-radio ul,.bmx-book__form .wpforms-field-checkbox ul{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
/* WPForms prints <li><input><label for></label></li>: the li is the pill, the label's ::after makes all of it clickable. */
.bmx-book__form .wpforms-field-radio li,.bmx-book__form .wpforms-field-checkbox li{position:relative;display:flex;align-items:center;gap:10px;min-height:46px;margin:0!important;padding:10px 16px!important;border:1px solid var(--bmx-line-2);border-radius:var(--bmx-r-pill);background:var(--bmx-white);transition:var(--bmx-tf)}
.bmx-book__form .wpforms-field-radio li label,.bmx-book__form .wpforms-field-checkbox li label{margin:0;color:var(--bmx-ink);font-size:15px;font-weight:600;line-height:1.35;cursor:pointer}
.bmx-book__form .wpforms-field-radio li label::after,.bmx-book__form .wpforms-field-checkbox li label::after{content:"";position:absolute;inset:0;border-radius:inherit}
.bmx-book__form .wpforms-field-radio li input,.bmx-book__form .wpforms-field-checkbox li input{flex:none;accent-color:var(--bmx-orange-7);width:18px;height:18px;margin:0}
.bmx-book__form .wpforms-field-radio li:hover,.bmx-book__form .wpforms-field-checkbox li:hover{border-color:var(--bmx-ink)}
.bmx-book__form .wpforms-field-radio li:has(input:checked),.bmx-book__form .wpforms-field-radio li.wpforms-selected{border-color:var(--bmx-ink);background:var(--bmx-ink)}
.bmx-book__form .wpforms-field-radio li:has(input:checked) label,.bmx-book__form .wpforms-field-radio li.wpforms-selected label{color:#fff}
.bmx-book__form .wpforms-field-radio li:has(input:checked) input{accent-color:var(--bmx-orange)}
.bmx-book__form li:has(input:focus-visible){outline:3px solid #C2410C47;outline-offset:2px}
.bmx-book__form .wpforms-field-checkbox li{align-items:flex-start;border-radius:var(--bmx-r-md);padding:14px 16px!important}
.bmx-book__form .wpforms-field-checkbox li label{font-weight:500;line-height:1.5}
.bmx-book__form .wpforms-field-checkbox li input{margin-top:2px}
.bmx-book__form .wpforms-field-checkbox li:has(input:checked){border-color:var(--bmx-ok);background:var(--bmx-ok-0)}
.bmx-book__form fieldset{margin:0;padding:0;border:0;min-width:0}
.bmx-book__form legend{padding:0}
#wpforms-204-field_16-container{display:none!important}
.bmx-book__york{margin:-4px 0 20px;padding:14px 16px;border-left:3px solid var(--bmx-orange);border-radius:var(--bmx-r-sm);background:var(--bmx-paper);color:var(--bmx-ink);font-size:15px;line-height:1.5}
.bmx-book__form label.wpforms-error,.bmx-book__form em.wpforms-error{display:block;margin-top:6px;color:var(--bmx-err);font-size:14px;font-style:normal;font-weight:600}
.bmx-book__form input.wpforms-error,.bmx-book__form select.wpforms-error,.bmx-book__form textarea.wpforms-error{border-color:var(--bmx-err);background:var(--bmx-err-0)}
.bmx-book__form .wpforms-submit-container{margin-top:8px;padding:0}
.bmx-book__form button[type=submit].wpforms-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 28px;border:0;border-radius:var(--bmx-r-md);background:var(--bmx-orange);color:var(--bmx-ink);font-size:17px;font-weight:750;cursor:pointer;box-shadow:var(--bmx-sh-2)}
.bmx-book__form button[type=submit].wpforms-submit:hover{background:var(--bmx-orange-h)}
.bmx-book__form .wpforms-confirmation-container-full{padding:24px;border:1px solid #15734740;border-radius:var(--bmx-r-lg);background:var(--bmx-ok-0);color:var(--bmx-ink)}
.bmx-book__form .wpforms-confirmation-container-full p+p{margin-top:10px}
/* Steps built by bmx.js. Nothing is hidden until the script has built them, so without JS the form stays one page. */
.bmx-book__form{scroll-margin-top:calc(var(--bmx-header-h) + 16px)}
.bmx-book__form.is-stepped .bmx-wpstep{display:none}
.bmx-book__form.is-stepped .bmx-wpstep.is-current{display:block;animation:bmx-step-in .28s var(--bmx-ease,ease) both}
.bmx-wpstep__title{display:flex;flex-direction:column;gap:8px;margin:4px 0 22px;font-size:var(--bmx-fs-h3);line-height:1.2}
.bmx-wpstep__title:focus{outline:0}
.bmx-wpstep__title span{font:700 .78rem/1 var(--bmx-mono);letter-spacing:.06em;color:var(--bmx-orange-7)}
.bmx-wpstep__nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.bmx-wpstep__err{margin:0 0 18px;padding:12px 16px;border-radius:var(--bmx-r-sm);background:var(--bmx-err-0);color:var(--bmx-err);font-weight:600}
.bmx-book__form.is-stepped .wpforms-submit-container{display:none}
.bmx-book__form.is-stepped.is-last .wpforms-submit-container{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.bmx-book__form .wpforms-submit-container .bmx-wpstep__nav{margin:0}
@keyframes bmx-step-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.bmx-book__form.is-stepped .bmx-wpstep.is-current{animation:none}}
@media (max-width:560px){.bmx-wpstep__nav .bmx-btn,.bmx-book__form button[type=submit].wpforms-submit{flex:1 1 100%;width:100%}}
.bmx-book__policies summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-weight:700;color:var(--bmx-ink)}
.bmx-book__policies summary svg{width:18px;height:18px;transition:var(--bmx-tf)}
.bmx-book__policies[open] summary svg{transform:rotate(180deg)}
.bmx-book__policies .bmx-notes{margin-top:14px}

/* == 5 MISC == */
/* Service-page report card: sit lower than on the fridge prototype so it clears the left-hand labels of the other consoles. */
@media (min-width:1180px){.bmx-tpl-service .bmx-report{bottom:44px}}
/* Wide map drawn for light cards, reused inside the dark console on Ottawa-side area pages. */
.bmx-console .bmx-map--wide{display:block}
.bmx-console .bmx-map__city{fill:var(--bmx-on-dark)}
.bmx-console .bmx-map__prov{fill:var(--bmx-on-dark-2)}
.bmx-console .bmx-map__river{fill:#9FB0C8}
.bmx-console .bmx-map__pt circle{fill:var(--bmx-on-dark-2)}
.bmx-console .bmx-map__pt text{fill:var(--bmx-on-dark-2)}
.bmx-console .bmx-map__pt.is-on text{fill:var(--bmx-white);font-weight:700}
.bmx-console .bmx-map .bmx-map__hub text{fill:var(--bmx-on-dark)}
.bmx-console .bmx-map>rect:first-of-type{opacity:.12}
.bmx-pagination{margin-top:var(--bmx-s7)}
.bmx-pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px}
.bmx-pagination .page-numbers{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border:var(--bmx-bd);border-radius:var(--bmx-r-sm)}
.bmx-pagination .current{background:var(--bmx-ink);color:#fff;border-color:var(--bmx-ink)}
@media print{.bmx-header,.bmx-actionbar,.bmx-cta,.bmx-footer{display:none!important}}
