/* The two blogs (/blog/ and /roofing-blog/). Pages are generated by scripts/build-blog.mjs.
   Fonts (Archivo, Public Sans) come from pages.css. The footer component ships a sitewide
   a:hover{color:#fff}, so every link in here sets its own hover colour. */

.bl{--ink:#101c26;--body:#26333d;--soft:#4a5863;--line:rgba(16,28,38,0.14);--paper:#f7f5f2;--red:#e01e26;--red-text:#c4141c;--red-deep:#99101a;--navy:#12202b;
  background:var(--paper);color:var(--ink);font-family:'Public Sans',system-ui,sans-serif}
.bl ::selection{background:#e01e26;color:#fff}
.bl a{color:inherit;text-decoration:none}
.bl a:hover{color:inherit}
.bl a:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
.bl img{display:block;max-width:100%;height:auto}
.bl-wrap{max-width:1240px;margin:0 auto;padding:0 32px}

/* ---- top of the index ---- */
.bl-top{padding:72px 0 44px}
.bl-top__title{font-family:'Archivo',sans-serif;font-weight:700;font-size:clamp(34px,4.4vw,58px);line-height:1.04;letter-spacing:-0.03em;margin:0;max-width:19ch;text-wrap:balance}
.bl-top__lede{margin:18px 0 0;font-size:19px;line-height:1.6;color:var(--soft);max-width:38em}

/* ---- the list ---- */
.bl-list{padding:0 0 88px}
.bl-meta{margin:0;font-size:14.5px;line-height:1.4;color:var(--soft)}
.bl-meta b{font-weight:600;color:var(--red-text)}
.bl-more{display:inline-flex;align-items:center;gap:8px;font-family:'Archivo',sans-serif;font-weight:600;font-size:16px;color:var(--red-text)}
.bl-more svg{transition:transform 220ms cubic-bezier(0.16,1,0.3,1)}
.bl-shot{overflow:hidden;border-radius:12px;background:#dfe3e6}
.bl-shot img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform 600ms cubic-bezier(0.16,1,0.3,1)}

.bl-lead{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:44px;align-items:center;padding-bottom:56px;border-bottom:1px solid var(--line)}
.bl-lead__title{font-family:'Archivo',sans-serif;font-weight:700;font-size:clamp(27px,3vw,40px);line-height:1.1;letter-spacing:-0.025em;margin:14px 0 0;text-wrap:balance}
.bl-lead__desc{margin:14px 0 22px;font-size:18px;line-height:1.6;color:var(--body)}
.bl a.bl-lead:hover .bl-lead__title,.bl a.bl-card:hover .bl-card__title{color:var(--red-text)}
.bl a.bl-lead:hover .bl-shot img,.bl a.bl-card:hover .bl-shot img{transform:scale(1.035)}
.bl a.bl-lead:hover .bl-more svg{transform:translateX(4px)}

.bl-cards{list-style:none;margin:0;padding:56px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:52px 32px}
.bl-card{display:block}
.bl-card .bl-meta{margin-top:16px}
.bl-card__title{font-family:'Archivo',sans-serif;font-weight:700;font-size:22px;line-height:1.2;letter-spacing:-0.015em;margin:8px 0 0;text-wrap:balance;transition:color 160ms}
.bl-card__desc{margin:8px 0 0;font-size:16px;line-height:1.55;color:var(--body)}
.bl-empty{margin:0;padding:8px 0 24px;font-size:18px;color:var(--soft)}

.bl-pager{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:64px;padding-top:24px;border-top:1px solid var(--line);font-family:'Archivo',sans-serif;font-weight:600;font-size:16px}
.bl-pager a{color:var(--red-text)}
.bl-pager a:hover{color:var(--red-deep)}
.bl-pager span{color:var(--soft);font-family:'Public Sans',sans-serif;font-weight:400;font-size:15px}
.bl-other{margin:56px 0 0;font-size:16px}
.bl-other a{color:var(--red-text);text-decoration:underline;text-underline-offset:4px}
.bl-other a:hover{color:var(--red-deep)}

/* ---- an article ---- */
.bl-head{padding:44px 0 36px}
.bl-crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:15px;color:var(--soft)}
.bl-crumbs a{color:var(--red-text);font-weight:600}
.bl-crumbs a:hover{color:var(--red-deep)}
.bl-head__title{font-family:'Archivo',sans-serif;font-weight:700;font-size:clamp(32px,4.2vw,54px);line-height:1.06;letter-spacing:-0.03em;margin:18px 0 0;max-width:21ch;text-wrap:balance}
.bl-dek{margin:20px 0 0;font-size:clamp(18px,1.5vw,21px);line-height:1.55;color:var(--body);max-width:36em}
.bl-by{margin:22px 0 0;font-size:15px;color:var(--soft)}
.bl-by b{font-weight:600;color:var(--ink)}
.bl-hero img{width:100%;aspect-ratio:3/2;max-height:620px;object-fit:cover;border-radius:12px;background:#dfe3e6}

.bl-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:72px;align-items:start;padding-top:56px;padding-bottom:96px}
.bl-prose{max-width:68ch;font-size:18px;line-height:1.72;color:var(--body)}
.bl-prose > :first-child{margin-top:0}
.bl-prose h2{font-family:'Archivo',sans-serif;font-weight:700;font-size:clamp(24px,2.3vw,30px);line-height:1.18;letter-spacing:-0.02em;color:var(--ink);margin:52px 0 14px;text-wrap:balance}
.bl-prose h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:21px;line-height:1.25;letter-spacing:-0.01em;color:var(--ink);margin:34px 0 10px}
.bl-prose p{margin:0 0 20px}
.bl-prose ul,.bl-prose ol{margin:0 0 22px;padding-left:24px}
.bl-prose li{margin:0 0 10px;padding-left:4px}
.bl-prose li::marker{color:var(--red-text);font-weight:600}
.bl-prose strong{font-weight:600;color:var(--ink)}
.bl-prose a{color:var(--red-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.bl-prose a:hover{color:var(--red-deep);text-decoration-thickness:2px}
.bl-prose a[href^="tel:"]{white-space:nowrap}
.bl-prose blockquote{margin:28px 0;padding:4px 0 4px 22px;border-left:1px solid var(--ink);font-size:20px;line-height:1.55;color:var(--ink)}
.bl-prose .blog-fig{margin:40px 0 44px}
.bl-prose .blog-fig img{width:100%;border-radius:12px;background:#dfe3e6}
.bl-prose .blog-fig figcaption{margin-top:12px;font-size:15px;line-height:1.5;color:var(--soft)}
.bl-updated{font-size:15px;color:var(--soft)}

.bl-aside{position:sticky;top:104px;display:grid;gap:36px}
.bl-ticket{background:var(--navy);color:#f7f5f2;border-radius:12px;padding:28px 26px 26px}
.bl-ticket__title{font-family:'Archivo',sans-serif;font-weight:700;font-size:23px;line-height:1.15;letter-spacing:-0.015em;margin:0}
.bl-ticket p{margin:12px 0 0;font-size:15.5px;line-height:1.6;color:#d0d8de}
.bl a.bl-btn{display:block;margin-top:20px;padding:15px 20px;border-radius:8px;background:var(--red);color:#fff;text-align:center;font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;transition:background-color 180ms}
.bl a.bl-btn:hover{background:#c4141c;color:#fff}
.bl a.bl-btn:focus-visible{outline-color:#fff}
.bl-ticket__call{margin-top:16px !important;text-align:center;font-size:15px !important}
.bl-ticket__call a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.bl-ticket__call a:hover{color:#ffb3b6}
.bl-also__title{font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;margin:0 0 4px}
.bl-also a{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-family:'Archivo',sans-serif;font-weight:600;font-size:16.5px;line-height:1.3;color:var(--ink)}
.bl-also a:hover{color:var(--red-text)}
.bl-also a.bl-also__all{border-bottom:0;color:var(--red-text);font-size:15.5px}
.bl-also a.bl-also__all:hover{color:var(--red-deep)}

/* ---- closing band ---- */
.bl-band{background:var(--navy);color:#fff;text-align:center;padding:76px 24px}
.bl-band__title{font-family:'Archivo',sans-serif;font-weight:700;font-size:clamp(27px,3.3vw,42px);line-height:1.1;letter-spacing:-0.025em;margin:0 auto;max-width:22ch;text-wrap:balance}
.bl-band__text{margin:14px auto 0;font-size:18px;line-height:1.55;color:#d5dbe0;max-width:36em}
.bl-band__row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 28px;margin-top:30px}
.bl a.bl-band__btn{padding:18px 32px;border-radius:8px;background:var(--red);color:#fff;font-family:'Archivo',sans-serif;font-weight:700;font-size:18px;transition:background-color 180ms}
.bl a.bl-band__btn:hover{background:#c4141c;color:#fff}
.bl a.bl-band__btn:focus-visible,.bl a.bl-band__call:focus-visible{outline-color:#fff}
.bl a.bl-band__call{color:#fff;font-weight:600;font-size:18px;text-decoration:underline;text-underline-offset:5px;white-space:nowrap}
.bl a.bl-band__call:hover{color:#ffb3b6}

@media (max-width:1040px){
  .bl-grid{grid-template-columns:minmax(0,1fr);gap:48px;padding-bottom:72px}
  .bl-aside{position:static}
  .bl-ticket{display:none}
  .bl-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .bl-wrap{padding-left:20px;padding-right:20px}
  .bl-top{padding:44px 0 32px}
  .bl-top__lede{font-size:17.5px}
  .bl-lead{grid-template-columns:minmax(0,1fr);gap:20px;padding-bottom:40px}
  .bl-lead__desc{font-size:17px}
  .bl-cards{grid-template-columns:minmax(0,1fr);gap:40px;padding-top:40px}
  .bl-list{padding-bottom:64px}
  .bl-head{padding:28px 0 26px}
  .bl-grid{padding-top:36px;gap:44px}
  .bl-prose{font-size:17.5px}
  .bl-prose h2{margin-top:42px}
  .bl-band{padding:56px 20px}
}
@media (prefers-reduced-motion:reduce){
  .bl-shot img,.bl-more svg,.bl-card__title,.bl a.bl-btn,.bl a.bl-band__btn{transition:none}
  .bl a.bl-lead:hover .bl-shot img,.bl a.bl-card:hover .bl-shot img{transform:none}
}
