/* One FLM brand language across the captured website. Layout and offer stay local. */
/* Preloaded local brand faces. Slow fonts keep a visible fallback for this load
   rather than changing heading wraps after the opening has already painted. */
@font-face{font-family:'FLM Body';font-style:normal;font-weight:100 900;font-display:optional;src:url('/assets/54dbf8a8d65ebb49eb315fa5.woff2') format('woff2')}
@font-face{font-family:'FLM Heading';font-style:normal;font-weight:400 800;font-display:optional;src:url('/assets/1828a0d8dfe50b405bbdea1e.woff2') format('woff2')}
html.flm-brand-system{
  --flm-ink:#162444;--flm-blue:#2458cf;--flm-blue-hover:#1d46a3;
  --flm-white:#fff;--flm-paper:#fbfcff;--flm-wash:#eef3fc;
  --flm-muted:#4e5f7a;--flm-line:#d5dfed;
  --flm-font-body:'FLM Body',Arial,sans-serif;
  --flm-font-heading:'FLM Heading',Arial,sans-serif;
  --flm-radius-button:12px;--flm-radius-card:16px;
  scroll-padding-top:100px;
  scrollbar-gutter:stable;
}
html.flm-skip-intro{scroll-behavior:auto!important}
html.flm-brand-system body{font-family:var(--flm-font-body);color:var(--flm-ink);background:var(--flm-paper)}
/* Squarespace's hidden x-overflow creates an accidental vertical scroll container.
   Clip that axis so the shared header can stick; modal/menu scroll locks win. */
html.flm-brand-system.flm-enhanced:not(.flm-photo-open):not(:has(dialog[open])),
html.flm-brand-system.flm-enhanced:not(.flm-photo-open):not(:has(dialog[open])) body:not(.flm-menu-open){overflow-x:clip!important;overflow-y:visible!important}
html.flm-brand-system body :is(#siteWrapper,#fmHeader,.fm-footer,#fm-app,#fm-toast-container) :is(p,li,a,button,label,input,select,textarea,summary,th,td,blockquote){font-family:var(--flm-font-body)!important}
html.flm-brand-system body :is(#siteWrapper,#fm-app,.fm-footer) :is(h1,h2,h3,h4){font-family:var(--flm-font-heading)!important;font-weight:650!important;letter-spacing:-.035em!important}
html.flm-brand-system #siteWrapper main:not(:has(#fm-app)) h1:not(.blog-title){font-size:clamp(34px,4.1vw,58px)!important;line-height:1.08!important;letter-spacing:-.045em!important}
html.flm-brand-system #siteWrapper :is(.flm-rollout,.flm-p2,#flm-social) h2:not(.social-dialog h2){font-size:clamp(28px,2.8vw,38px)!important;line-height:1.16!important}
html.flm-brand-system :is(.flm-rollout,.flm-p2,#flm-social){
  --ink:var(--flm-ink);--accent:var(--flm-blue);--blue:var(--flm-blue);
  --paper:var(--flm-paper);--wash:var(--flm-wash);--muted:var(--flm-muted);
  --edge:var(--flm-line);--heading:var(--flm-font-heading);
}
html.flm-brand-system #siteWrapper :is(.flm-rollout .wrap,.flm-p2 .p2-wrap){max-width:1244px!important;padding-inline:32px!important}
html.flm-brand-system #flm-social .social-shell{width:min(1180px,calc(100% - 64px))!important}
html.flm-brand-system #siteWrapper :is(.p2-hero-card,.flm-rollout .hero .copy){border-radius:var(--flm-radius-card)!important}
html.flm-brand-system #siteWrapper .flm-p2 img{border-radius:var(--flm-radius-card)!important}
/* Same CTA geometry; secondary, white and dark-section treatments keep their roles. */
html.flm-brand-system body :is(#siteWrapper,.fm-footer) :is(.btn,.p2-btn,.social-button,.social-btn,.pp-button,.flm-card-button,.fm-cta,.city-btn-primary,.city-btn-secondary,.fm-help-btn,.hlm-why-cta-btn,.fm-benefits-btn--solid,.fm-hero-btn-primary,.ph-end-btn--primary,.phl-btn-primary,.vd-end-btn--primary,.vdl-btn-primary,.hlm-video-more-btn,.dr-end-btn--primary,.drl-btn-primary,.fm-cta-btn--primary,.fm-btn-solid,.fm-submit-btn,.mck-services-cta-btn-primary,.fm-process-proof-cta-button,.fm-video-primary-btn,.cta-btn-primary,.cta-btn-secondary,.fm-footer-cta-btn,.fm-footer-cta-btn-outline){
  border-radius:var(--flm-radius-button)!important;font-family:var(--flm-font-body)!important;
  font-weight:600!important;letter-spacing:0!important;min-height:48px;
}
html.flm-brand-system body :is(#siteWrapper,.fm-footer) :is(.btn,.p2-btn,.social-button,.social-btn,.pp-button,.flm-card-button,.fm-cta,.city-btn-primary,.city-btn-secondary,.fm-help-btn,.hlm-why-cta-btn,.cta-btn-primary,.cta-btn-secondary):hover{transform:none!important}
html.flm-brand-system .fm-footer .fm-footer-cta-btn{background:var(--flm-blue)!important;border-color:var(--flm-blue)!important}
html.flm-brand-system #siteWrapper .flm-rollout .btn.secondary{background:var(--flm-wash)!important;color:var(--flm-blue)!important;border-color:var(--flm-line)!important}
html.flm-brand-system #fm-sticky-cta .fm-sticky-btn{border-radius:var(--flm-radius-button)!important;font-family:var(--flm-font-body)!important;font-weight:600!important}
/* Calm media and package frames rather than competing shapes and large hover shadows. */
html.flm-brand-system #siteWrapper :is(.flm-rollout .card,.p2-card,.social-card,.social-package,.social-package-card,.flm-package-card,.flm-pricing-card,.hlm-why-card,.city-card,.fm-benefit-card){border-radius:var(--flm-radius-card)!important;border-color:var(--flm-line)!important}
html.flm-brand-system #siteWrapper .flm-rollout .card:hover{transform:none!important;box-shadow:0 8px 24px #1624440c!important}
/* The shared nav and the ad page have the same white bar and logo proportions. */
html.flm-brand-system #fmHeader.flm-site-header{position:sticky!important;top:0;z-index:100;padding:0!important;background:var(--flm-white)!important;border-bottom:1px solid var(--flm-line)!important}
html.flm-brand-system #fmHeader .flm-header-wrap{max-width:1244px!important;padding-inline:32px!important;margin-inline:auto}
html.flm-brand-system #fmHeader .flm-header-bar{min-height:86px!important;padding:0!important;gap:18px!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--flm-white)!important}
html.flm-brand-system #fmHeader .flm-brand.flm-brand-approved{width:210px!important;flex:0 1 210px!important;min-height:44px}
html.flm-brand-system #fmHeader .flm-reserve{border-radius:var(--flm-radius-button)!important;background:var(--flm-blue)!important;box-shadow:none!important;transform:none!important}
html.flm-brand-system #fmHeader .flm-menu-toggle{border-radius:var(--flm-radius-button)!important;background:var(--flm-wash)!important}
html.flm-brand-system #fmHeader :is(.flm-nav-panel,#flm-site-mobile){border-color:var(--flm-line)!important;border-radius:var(--flm-radius-card)!important}
html.flm-brand-system .fm-footer{background:var(--flm-wash)!important;color:var(--flm-muted)!important;border-color:var(--flm-line)!important}
html.flm-brand-system .fm-footer :is(.fm-footer-link,.fm-hours-text,.fm-footer-desc,.fm-copyright-sub){color:var(--flm-muted)!important}
html.flm-brand-system #flm-pricing-tabs .flm-tabs-scroll{top:87px!important}
@media(max-width:760px){
  html.flm-brand-system{scroll-padding-top:84px}
  html.flm-brand-system #fmHeader .flm-header-wrap{padding-inline:18px!important}
  html.flm-brand-system #fmHeader .flm-header-bar{min-height:70px!important;gap:10px!important}
  html.flm-brand-system #fmHeader .flm-brand.flm-brand-approved{width:180px!important;flex-basis:180px!important}
  html.flm-brand-system #flm-pricing-tabs .flm-tabs-scroll{top:71px!important}
  html.flm-brand-system #siteWrapper :is(.flm-rollout .wrap,.flm-p2 .p2-wrap){padding-inline:18px!important}
  html.flm-brand-system #flm-social .social-shell{width:calc(100% - 36px)!important}
  html.flm-brand-system #siteWrapper :is(.flm-rollout,.flm-p2,#flm-social) h2:not(.social-dialog h2){font-size:28px!important}
}
@media(max-width:359px){
  html.flm-brand-system #fmHeader .flm-header-wrap{padding-inline:12px!important}
  html.flm-brand-system #fmHeader .flm-header-bar{gap:8px!important}
  html.flm-brand-system #fmHeader .flm-brand.flm-brand-approved{width:164px!important;flex-basis:164px!important}
  html.flm-brand-system #fmHeader .flm-reserve{padding-inline:10px!important}
}

/* FLM mobile scroll lock: body must never become the sticky header's scroll container. */
@media (max-width: 1180px) {
  html.flm-brand-system.flm-enhanced:has(body.flm-menu-open):not(.flm-photo-open):not(:has(dialog[open])) { overflow: hidden !important; }
  html.flm-brand-system.flm-enhanced body.flm-menu-open { overflow-x: clip !important; overflow-y: visible !important; }
  html.flm-brand-system.flm-enhanced #fmHeader #flm-site-mobile { overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; max-height: calc(100dvh - 100px - env(safe-area-inset-bottom)); }
  html.flm-brand-system #fmHeader .flm-menu-toggle { flex: none; min-width: 44px; min-height: 44px; touch-action: manipulation; }
  html.flm-brand-system #fmHeader .flm-reserve { flex-shrink: 0; }
  html.flm-brand-system #fm-sticky-cta { padding-bottom: max(10px, env(safe-area-inset-bottom)); }
  html.flm-brand-system main summary { min-height: 48px; padding-block: 12px; cursor: pointer; }
}
@media (max-width: 760px) {
  html.flm-brand-system #siteWrapper .stack-child-container:has(.flm-p2),
  html.flm-brand-system #siteWrapper .stack-child-container:has(.flm-p2) > .fe-block { width: 100% !important; min-width: 0 !important; max-width: 100% !important; flex-basis: 100% !important; }
  html.flm-brand-system #siteWrapper .sqs-block-content:has(> .sqs-code-container > .flm-p2) { width: 100%; min-width: 0; }
}
