/* ============================================================
   Fix My Door Now Ottawa — typography override (loaded last)
   Geist  = headings / major labels / footer section titles
   Inter  = body, nav, buttons, forms, FAQs, search, labels, small text
   ============================================================ */

@font-face{
  font-family:'Geist';
  font-style:normal;
  font-display:swap;
  font-weight:100 900;
  src:url('/assets/fonts/geist-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Geist';
  font-style:normal;
  font-display:swap;
  font-weight:100 900;
  src:url('/assets/fonts/geist-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --font-heading:'Geist',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-button:'Inter',sans-serif;
  --font-ui:'Inter',sans-serif;
  --btn-radius:10px;
}

/* ── Base / body / UI ── */
html,body{
  font-family:var(--font-body) !important;
}

p,li,td,th,label,.lead,.crumbs,.crumbs a,
.fg input,.fg select,.fg textarea,
input,select,textarea,
.faq-a,.faq-a p,
.find-box input,.search-field input,
.ss-overlay-input,.ss-card-desc,
.nav-links a,.canlock-line,
.topbar,.topbar a,.topbar-tag,
.mobile-menu a,.mobile-menu button,
.btn,.nav-call,.form-call-btn,.form-submit,
.fab-float,a.fab-float,
.mobile-menu-quote,.mobile-menu-phone,
.ss-menu-search,.ss-overlay-close,
.label,.midcta-eyebrow,.areas-group-label,
.vshow-head .label,.photo-strip-tag,.rp-cat,
.job-tag,.ba-label,.ba-cat,.ba-tag,
.fmdn-reviews-kicker,
.footer-col a,.footer-email,.footer-bottom,
.mobile-menu-links a{
  font-family:var(--font-ui) !important;
}

/* Eyebrow labels: uppercase only here */
.label,.midcta-eyebrow,.areas-group-label,
.vshow-head .label,.photo-strip-tag,.rp-cat,
.job-tag,.ba-label,.ba-cat,.ba-tag,
.fmdn-reviews-kicker,.find-meta,.find-all{
  text-transform:uppercase;
  letter-spacing:.14em;
}

/* ── Headings: Geist, sharper tracking / line-height ── */
h1,h2,h3,h4,
.h2,.page-head h1,.hero h1,.authority-head h2,.cta-band h2,.midcta h2,
.qb-info h2,.emergency h2,.gal-cat-head h2,.proj-body h2,.proj-cta h2,
.vshow-head h2,.video-copy h2,.video-details h2,.video-watch-head h1,
.fmdn-reviews-title,.service-prose h2,.service-prose h3,.prose h2,.prose h3,
.svc-card h3,.form-box h3,.qb-form h3,.job-card-body h3,.ba-body h3,
.rel-body h3,.feat-project .fp-body h3,.about-value h3,.price-card h3,
.why-item h4,.why-item-text h4,.step h4,.rp-body h3,.lightbox-cap h4,
.ss-card-title,#ssPageHeading,
.footer-col h5{
  font-family:var(--font-heading) !important;
  text-transform:none !important;
  text-wrap:balance;
}

h1,.page-head h1,.hero h1,.video-watch-head h1{
  font-weight:700 !important;
  letter-spacing:-.03em !important;
  line-height:1.02 !important;
}

h2,.h2,.authority-head h2,.cta-band h2,.midcta h2,.qb-info h2,.emergency h2,
.gal-cat-head h2,.proj-body h2,.proj-cta h2,.vshow-head h2,.video-copy h2,
.video-details h2,.fmdn-reviews-title,.service-prose h2,.prose h2{
  font-weight:700 !important;
  letter-spacing:-.025em !important;
  line-height:1.05 !important;
}

h3,.svc-card h3,.form-box h3,.qb-form h3,.job-card-body h3,.ba-body h3,
.rel-body h3,.feat-project .fp-body h3,.about-value h3,.price-card h3,
.service-prose h3,.prose h3,.rp-body h3,.ss-card-title,#ssPageHeading{
  font-weight:650 !important;
  letter-spacing:-.02em !important;
  line-height:1.08 !important;
}

h4,.why-item h4,.why-item-text h4,.step h4,.footer-col h5,.lightbox-cap h4{
  font-weight:650 !important;
  letter-spacing:-.02em !important;
  line-height:1.08 !important;
}

/* Beat inline style="font-family:…" on headings */
h1[style],h2[style],h3[style],h4[style],.h2[style]{
  font-family:var(--font-heading) !important;
  text-transform:none !important;
}
h1[style]{font-weight:700 !important;letter-spacing:-.03em !important;line-height:1.02 !important}
h2[style],.h2[style]{font-weight:700 !important;letter-spacing:-.025em !important;line-height:1.05 !important}
h3[style]{font-weight:650 !important;letter-spacing:-.02em !important;line-height:1.08 !important}
h4[style]{font-weight:650 !important;letter-spacing:-.02em !important;line-height:1.08 !important}

/* Responsive sizes */
.hero h1{font-size:clamp(2.5rem,5vw,4.75rem) !important}
.page-head h1,.video-watch-head h1{font-size:clamp(2.25rem,4vw,4rem) !important}
.h2,h2.section-title,.authority-head h2,.cta-band h2,.qb-info h2,.emergency h2,
.vshow-head h2,.fmdn-reviews-title{font-size:clamp(1.9rem,3vw,3rem) !important}
.midcta h2{font-size:clamp(1.35rem,2.4vw,1.85rem) !important}
h3,.svc-card h3,.service-prose h3,.prose h3{font-size:clamp(1.25rem,2vw,1.65rem) !important}
.form-box h3{font-size:clamp(1.25rem,2vw,1.45rem) !important}
.qb-form h3{font-size:clamp(1.25rem,2vw,1.35rem) !important}
.job-card-body h3,.ba-body h3,.feat-project .fp-body h3,.about-value h3{font-size:1.2rem !important}
.rel-body h3{font-size:1.08rem !important}
.gal-cat-head h2,.proj-cta h2{font-size:clamp(1.35rem,2vw,1.5rem) !important}
.proj-body h2{font-size:clamp(1.3rem,2vw,1.4rem) !important}
.service-prose h2,.prose h2{font-size:clamp(1.45rem,2.4vw,2rem) !important}
.video-copy h2,.video-details h2{font-size:1.45rem !important}
.why-item h4,.why-item-text h4,.step h4{font-size:1.08rem !important}

/* Widen heading containers so lines balance into 2–3 wraps */
.page-head h1{max-width:960px !important}
.hero h1{max-width:min(980px,94vw) !important}
.section-head{max-width:820px !important}
.section-head .h2,.section-head h2{max-width:100%}
.authority-head{max-width:780px !important}
.cta-band h2,.emergency h2,.qb-info h2{max-width:860px}

/* Reduce excessive vertical spacing around headings ~10–15% */
.section{padding-top:70px !important;padding-bottom:70px !important}
.section-head{margin-bottom:40px !important}
.page-head{padding-top:62px !important;padding-bottom:54px !important}
.page-head h1{margin-bottom:0}
.page-head p{margin-top:14px !important}
.hero h1{margin-bottom:14px !important}
.service-prose h2,.prose h2{margin:0 0 12px !important}
.service-prose h3,.prose h3{margin:20px 0 8px !important}
.form-box h3,.qb-form h3{margin-bottom:4px !important}
.cta-band h2,.emergency h2{margin-bottom:12px !important}
.proj-body h2{margin:28px 0 10px !important}
.midcta h2{margin:0 0 5px !important}

/* FAQ questions: Inter (UI), not display headings */
.faq-q{
  font-family:var(--font-ui) !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  line-height:1.35 !important;
  text-transform:none !important;
}

/* Major labels that should read as headings */
.footer-col h5,
.service-trust-item strong,
.footer-trust-item strong,
.hero-bbb-copy strong,
.trust-copy strong,
.authority-bbb strong{
  font-family:var(--font-heading) !important;
  font-weight:650 !important;
  letter-spacing:.01em !important;
}

/* ── Buttons & navigation stay Inter ── */
.btn,
.nav-call,
.form-call-btn,
.form-submit,
.fab-float,
a.fab-float,
.mobile-menu-quote,
.mobile-menu-phone,
.nav-links a,
.ss-menu-search,
.install-tab,
.svc-card-arrow,
.rp-links a,
.rp-foot a{
  font-family:var(--font-button) !important;
  font-weight:700 !important;
  letter-spacing:.005em !important;
  line-height:1.3 !important;
}

.btn{
  padding:16px 36px !important;
  min-height:48px;
  border-radius:var(--btn-radius) !important;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}

.nav-call{
  padding:8px 16px !important;
  min-height:36px;
  font-size:.85rem !important;
  border-radius:var(--btn-radius) !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}

.form-call-btn,
.form-submit{
  padding:17px 30px !important;
  min-height:52px;
  border-radius:var(--btn-radius) !important;
}

.fab-float,
a.fab-float{
  padding:14px 22px !important;
  min-height:48px;
  border-radius:12px !important;
  white-space:nowrap;
}

.mobile-menu-quote,
.mobile-menu-phone{
  padding:12px 18px !important;
  min-height:44px;
  border-radius:var(--btn-radius) !important;
}

.nav-links a{
  letter-spacing:.01em !important;
  text-transform:none !important;
  font-size:.9rem !important;
  font-weight:650 !important;
}

.mobile-menu a:not(.mobile-menu-phone):not(.mobile-menu-quote):not(.ss-menu-search),
.mobile-menu-links a{
  font-family:var(--font-ui) !important;
  font-weight:650 !important;
  letter-spacing:.01em !important;
  text-transform:none !important;
  font-size:1.15rem !important;
}

.midcta-actions .btn{
  white-space:normal;
  max-width:100%;
}

@media(max-width:560px){
  .btn{
    padding:15px 28px !important;
    min-height:48px;
  }
  .fab-float,
  a.fab-float{
    padding:12px 18px !important;
    min-height:46px;
    font-size:.92rem !important;
    max-width:calc(100vw - 32px);
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .hero-actions .btn{justify-content:center}
  .hero h1{font-size:clamp(2.35rem,9vw,3.1rem) !important;max-width:100% !important}
  .section{padding-top:56px !important;padding-bottom:56px !important}
  .section-head{margin-bottom:32px !important}
  .page-head{padding-top:48px !important;padding-bottom:42px !important}
}

/* Top bar: Inter */
.topbar,
.topbar a,
.topbar-tag{
  font-family:var(--font-ui) !important;
  letter-spacing:.04em !important;
}

/* Keep logo / SVG marks untouched */
.hero-bbb svg,
.authority-bbb svg,
.trust-icon svg,
.logo-img,
.brand svg,
.canlock-logo{
  font-family:inherit;
}
