/* ══════════════════════════════════════════════════════════
   A1 Glass & Glazing — blog
   Additive only. Loaded after style.css and reuses its tokens,
   header, footer and buttons, so the main page is untouched.
   ══════════════════════════════════════════════════════════ */

/* The blog pages have no dark hero behind the header, so the header
   wears its solid state from the very top. This mirrors .hdr.is-stuck
   rather than editing it, so the home page is untouched. */
body.blog{padding-top:66px}
body.blog .hdr{
  background:rgba(255,255,255,.9);backdrop-filter:blur(18px) saturate(180%);
  box-shadow:0 1px 0 var(--line),0 10px 32px -14px rgba(12,18,28,.2);
}
body.blog .hdr__in{height:66px}
body.blog .hdr__logo img{height:30px;content:url("../brand/a1-logo-dark.png")}
body.blog .hdr__nav a{color:var(--tx-2)}
body.blog .hdr__nav a:hover{color:var(--tx)}
body.blog .hdr__tel{color:var(--tx)}
body.blog .hdr__tel svg{fill:var(--red)}
body.blog .hdr__burger span{background:var(--tx)}

/* ─────────────── page head ─────────────── */
.bhead{
  background:var(--ink);color:var(--tx-w);
  padding:64px 0 56px;border-bottom:1px solid var(--line-d);
}
.bhead__in{max-width:780px}
.bhead h1{
  font-size:clamp(34px,5.2vw,56px);line-height:1.02;margin-top:14px;
}
.bhead__sub{
  margin-top:18px;font-size:clamp(16px,1.9vw,18.5px);color:var(--tx-w2);
  line-height:1.6;max-width:62ch;
}

/* ─────────────── post list ─────────────── */
.blist{padding:60px 0 80px}
.blist__grid{
  display:grid;gap:26px;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
}
.bcard{
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  background:var(--paper);display:flex;flex-direction:column;
  transition:transform .34s var(--ease),box-shadow .34s var(--ease);
}
.bcard:hover{transform:translateY(-3px);box-shadow:var(--sh-l)}
.bcard img{aspect-ratio:16/10;object-fit:cover;width:100%}
.bcard__body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.bcard__meta{
  font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--tx-3);display:flex;gap:10px;align-items:center;
}
.bcard__meta span{color:var(--red)}
.bcard h2{font-size:21px;line-height:1.2;margin-top:10px}
.bcard p{margin-top:10px;font-size:15px;color:var(--tx-2);line-height:1.58}
.bcard__more{
  margin-top:16px;padding-top:0;font-size:14.5px;font-weight:650;color:var(--red);
  display:inline-flex;align-items:center;gap:7px;
}
.bcard__more svg{width:15px;height:15px}
.bcard a.bcard__hit{position:absolute;inset:0}
.bcard{position:relative}

/* Shown while there are no posts. Deliberately not a sad grey box:
   it still carries the pitch and a CTA, so an empty blog never looks
   like an unfinished website. */
.bempty{
  border:1px dashed var(--line);border-radius:var(--r);background:var(--paper-2);
  padding:52px 44px;max-width:760px;
}
.bempty h2{font-size:clamp(24px,3.4vw,32px);line-height:1.1}
.bempty p{margin-top:14px;font-size:16.5px;line-height:1.62;color:var(--tx-2);max-width:60ch}
.bempty__ask{font-weight:550;color:var(--tx)}
.bempty .btn{margin-top:26px}
@media (max-width:640px){ .bempty{padding:34px 26px} }

/* Sits inside the grid as the last tile, so a single post does not
   leave two empty columns. Once there are several posts it simply
   flows to the end. Spans two tracks on wide screens, one on narrow. */
.bsoon{
  grid-column:span 2;align-self:stretch;
  border:1px dashed var(--line);border-radius:var(--r);
  padding:30px 28px;background:var(--paper-2);
  display:flex;flex-direction:column;justify-content:center;
}
@media (max-width:1099px){ .bsoon{grid-column:span 1} }
.bsoon h3{font-size:18px}
.bsoon p{margin-top:8px;font-size:15px;color:var(--tx-2);max-width:64ch}

/* ─────────────── article ─────────────── */
.art{padding:56px 0 76px}
.art__in{width:min(100% - 40px,760px);margin-inline:auto}
.art__meta{
  font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--tx-3);display:flex;gap:10px;align-items:center;flex-wrap:wrap;
}
.art__meta span{color:var(--red)}
.art__hero{
  margin:30px 0 0;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);
}
.art__hero img{width:100%;aspect-ratio:16/9;object-fit:cover}
.art__hero figcaption{
  padding:12px 18px;font-size:13px;color:var(--tx-3);background:var(--paper-2);
  border-top:1px solid var(--line);
}
.art__body{margin-top:36px;font-size:17.5px;line-height:1.72;color:var(--tx-2)}
.art__body > * + *{margin-top:22px}
.art__body h2{
  font-size:clamp(24px,3.2vw,30px);color:var(--tx);margin-top:42px;line-height:1.14;
}
.art__body h3{font-size:20px;color:var(--tx);margin-top:32px}
.art__body strong{color:var(--tx);font-weight:650}
.art__body ul{list-style:none;margin-top:18px}
.art__body ul li{position:relative;padding-left:26px;margin-top:11px}
.art__body ul li::before{
  content:"";position:absolute;left:2px;top:11px;width:8px;height:8px;
  border-radius:50%;background:var(--red);
}
.art__body a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.art__note{
  border-left:3px solid var(--red);background:var(--paper-2);
  padding:20px 24px;border-radius:0 var(--r-s) var(--r-s) 0;font-size:16px;
}
.art__note strong{color:var(--tx)}

/* the standing CTA back to the pricing tool */
.art__cta{
  margin-top:48px;background:var(--ink);color:var(--tx-w);
  border-radius:var(--r);padding:34px 34px 36px;
}
.art__cta h2{font-size:clamp(22px,3vw,28px);color:var(--tx-w);line-height:1.12}
.art__cta p{margin-top:12px;color:var(--tx-w2);font-size:16px;max-width:52ch}
.art__cta .btn{margin-top:22px}

.bback{
  display:inline-flex;align-items:center;gap:8px;margin-top:44px;
  font-size:15px;font-weight:600;color:var(--tx-2);
}
.bback:hover{color:var(--red)}
.bback svg{width:16px;height:16px}

@media (max-width:640px){
  body.blog{padding-top:66px}
  .bhead{padding:44px 0 40px}
  .blist{padding:44px 0 60px}
  .art{padding:40px 0 56px}
  .art__cta{padding:26px 24px 28px}
}
