/* KD Roofers v3.0.59 base.css — tokens, fonts, reset only */
@font-face{font-family:"Fivo Sans";src:url("../fonts/FivoSans-Regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Fivo Sans";src:url("../fonts/FivoSans-Medium.otf") format("opentype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Fivo Sans";src:url("../fonts/FivoSans-Bold.otf") format("opentype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Fivo Sans";src:url("../fonts/FivoSans-Heavy.otf") format("opentype");font-weight:800;font-style:normal;font-display:swap}
:root{
  --kd-red:#dd183b;
  --kd-red-dark:#a80f2b;
  --kd-black:#050505;
  --kd-dark:#111111;
  --kd-charcoal:#242424;
  --kd-ink:#171717;
  --kd-muted:#5f6670;
  --kd-line:#e5e2dc;
  --kd-white:#ffffff;
  --kd-cream:#f6f2eb;
  --kd-soft:#f7f7f5;
  --kd-font-main:"Fivo Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --kd-header-height:72px;
  --kd-page-gutter:clamp(1.25rem,4vw,4.75rem);
  --kd-container:1180px;
  --kd-container-wide:1320px;
  --kd-container-narrow:860px;
  --kd-section-y:clamp(5.25rem,7.4vw,7.8rem);
  --kd-section-y-compact:clamp(4.15rem,5.8vw,5.85rem);
  --kd-section-y-tight:clamp(3.35rem,4.6vw,4.6rem);
  --kd-section-gap:clamp(2.8rem,4.2vw,4.65rem);
  --kd-section-boundary-gap:clamp(3rem,4.7vw,4.75rem);
  --kd-hero-y:clamp(4.2rem,6.4vw,6.6rem);
  --kd-home-hero-y:clamp(4.3rem,6.4vw,6.8rem);
  --kd-hero-max-block:780px;
  --kd-hero-media-block:clamp(360px,44vh,520px);
  --kd-card-gap:clamp(1.35rem,2.25vw,2.15rem);
  --kd-card-padding:clamp(1.35rem,2vw,2.05rem);
  --kd-roof-cut:22px;
  --kd-roof-cut-sm:14px;
  --kd-roof-clip:polygon(0 0,calc(100% - var(--kd-roof-cut)) 0,100% var(--kd-roof-cut),100% 100%,var(--kd-roof-cut) 100%,0 calc(100% - var(--kd-roof-cut)));
  --kd-roof-clip-sm:polygon(0 0,calc(100% - var(--kd-roof-cut-sm)) 0,100% var(--kd-roof-cut-sm),100% 100%,var(--kd-roof-cut-sm) 100%,0 calc(100% - var(--kd-roof-cut-sm)));
  --kd-shadow-sm:0 10px 28px rgba(17,24,39,.08);
  --kd-shadow:0 20px 52px rgba(17,24,39,.12);
  --kd-shadow-dark:0 24px 60px rgba(0,0,0,.28);

  --kd-roof-edge-light:rgba(17,17,17,.22);
  --kd-roof-edge-dark:rgba(255,255,255,.26);
  --kd-roof-edge-red:rgba(221,24,59,.85);
  --kd-roof-surface-shadow:0 18px 46px rgba(17,24,39,.07);
  --kd-transition:220ms ease;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;padding-top:var(--kd-header-height);font-family:var(--kd-font-main);font-size:16px;line-height:1.62;color:var(--kd-ink);background:var(--kd-white);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.kd-menu-open{overflow:hidden}
img,svg,video,iframe{max-width:100%;display:block}
img{height:auto}
a{color:inherit;text-decoration:none;transition:color var(--kd-transition),background var(--kd-transition),border-color var(--kd-transition),transform var(--kd-transition),box-shadow var(--kd-transition)}
a:hover{color:var(--kd-red)}
p{margin:0 0 1rem;color:var(--kd-muted)}
p:last-child{margin-bottom:0}
h1,h2,h3,h4,h5,h6{margin:0 0 .78rem;color:var(--kd-ink);line-height:1.12;letter-spacing:-.026em;font-weight:700}
h1,.kd-heading-xl{font-size:clamp(2.1rem,4.2vw,4rem)}
h2,.kd-heading-lg{font-size:clamp(1.65rem,2.9vw,2.65rem)}
h3,.kd-heading-md{font-size:clamp(1.16rem,1.7vw,1.55rem)}
h4{font-size:clamp(1rem,1.22vw,1.24rem)}
h5{font-size:clamp(.95rem,1.08vw,1.08rem)}
h6{font-size:clamp(.86rem,.95vw,.98rem)}
ul,ol{margin:0;padding:0}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
::selection{background:var(--kd-red);color:#fff}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.kd-eyebrow,.kd-hero__eyebrow,.kd-main-service__eyebrow{display:inline-flex;align-items:center;gap:.55rem;margin:0 0 .85rem;color:var(--kd-red);font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.kd-eyebrow::before,.kd-hero__eyebrow::before,.kd-main-service__eyebrow::before{content:"";width:30px;height:2px;background:currentColor;clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}
.kd-body{font-size:clamp(.95rem,1vw,1.03rem);line-height:1.66}
.kd-svg-icon,.kd-icon-file{width:1em;height:1em;object-fit:contain;display:inline-block;flex:0 0 auto}
.kd-roof-shape{clip-path:var(--kd-roof-clip)}
