/* =========================================================
   page.css — content components
   grids, cards, steps, chips, tables, CTA band, quote form
   ========================================================= */

/* ---------------- grids ---------------- */
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid.list{grid-template-columns:1fr}

/* ---------------- cards ---------------- */
.card{
  position:relative;display:flex;flex-direction:column;gap:12px;
  border:1px solid var(--line);border-radius:var(--radius);background:#fff;
  padding:26px 24px;min-width:0;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s,border-color .25s;
}
.card::before{
  content:"";position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,var(--blue),#64b5f6);
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--line-2)}
.card:hover::before{transform:scaleX(1)}
.card__image{
  width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;
  border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-tint);
}
.card__icon{
  width:46px;height:46px;border-radius:12px;display:grid;place-items:center;flex:none;
  background:var(--blue-soft);color:var(--blue);
}
.card__icon .icon{width:23px;height:23px}
.card h3{font-size:1.06rem}
.card p{color:var(--text-2);font-size:.93rem}
.card__extra{
  margin-top:auto;padding-top:12px;border-top:1px dashed var(--line-2);
  font-size:.83rem;color:var(--text-3);
}
.grid-3 .card:nth-child(3n+2) .card__icon,
.grid-2 .card:nth-child(2n) .card__icon{background:var(--amber-soft);color:var(--amber-dark)}
.grid-3 .card:nth-child(3n) .card__icon{background:var(--green-soft);color:var(--green)}

.ticks{display:grid;gap:9px;font-size:.9rem;color:var(--text-2);min-width:0}
.ticks li{display:flex;gap:9px;align-items:flex-start;min-width:0}
.ticks .icon{width:15px;height:15px;margin-top:4px;color:var(--blue)}
.ticks li > span{min-width:0}

.specs{
  margin-top:auto;padding-top:14px;border-top:1px dashed var(--line-2);
  display:grid;gap:7px;font-size:.84rem;
}
.specs > div{display:flex;gap:10px;justify-content:space-between;align-items:baseline}
.specs dt{color:var(--text-3);flex:none}
.specs dd{margin:0;color:var(--text);font-weight:620;text-align:right;min-width:0;overflow-wrap:anywhere}

/* ---------------- steps ---------------- */
.steps{display:grid;gap:18px;counter-reset:none}
.step{
  position:relative;border:1px solid var(--line);border-radius:var(--radius);background:#fff;
  padding:24px 22px;display:flex;flex-direction:column;gap:10px;min-width:0;
  transition:transform .3s var(--ease),box-shadow .3s;
}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.step__n{
  display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;
  background:var(--ink);color:#fff;font-size:.88rem;font-weight:750;
}
.step h3{font-size:1rem}
.step p{font-size:.9rem;color:var(--text-2)}

/* ---------------- chips ---------------- */
.chips{display:flex;flex-wrap:wrap;gap:9px;max-width:100%;min-width:0}
.chip{
  display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:999px;
  background:#fff;border:1px solid var(--line-2);font-size:.88rem;font-weight:550;
  max-width:100%;overflow-wrap:anywhere;
  transition:border-color .18s,color .18s,transform .2s var(--ease);
}
.chip:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}
.chip .icon{width:15px;height:15px;color:var(--blue)}

/* ---------------- comparison table ---------------- */
.table-wrap{
  overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff;
  -webkit-overflow-scrolling:touch;
}
table.cmp{min-width:620px;font-size:.9rem}
table.cmp th,table.cmp td{
  padding:14px 18px;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--line);border-left:1px solid var(--line);
}
table.cmp tbody tr:last-child th,table.cmp tbody tr:last-child td{border-bottom:0}
table.cmp th:first-child,table.cmp td:first-child{border-left:0}
table.cmp th[scope="row"]{
  width:26%;font-weight:650;color:var(--text);background:var(--bg-soft);
}
table.cmp td b{display:block;font-size:.82rem;color:var(--text-3);font-weight:650;margin-bottom:2px}
table.cmp tbody tr:hover td{background:var(--bg-soft)}

/* ---------------- CTA band ---------------- */
.cta-band{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  padding:clamp(36px,5vw,62px) clamp(22px,4vw,54px);text-align:center;
  background:linear-gradient(140deg,rgba(30,136,229,.16),rgba(255,143,0,.12));
  border:1px solid var(--line-2);
}
.cta-band h2{max-width:26ch;margin-inline:auto}
.cta-band .lead{margin:14px auto 0}
.cta-band .eyebrow{justify-content:center}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:26px}
.cta-band__alt{
  display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center;
  margin-top:18px;font-size:.9rem;color:var(--text-2);
}
.cta-band__alt a{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--blue-dark)}
.cta-band__alt a:hover{color:var(--blue);text-decoration:underline}
.cta-band__alt .icon{width:16px;height:16px}

/* ---------------- quote / contact ---------------- */
.quote-grid{
  display:grid;gap:clamp(28px,4vw,50px);
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  align-items:start;
}
.contact-list{display:grid;gap:14px;margin-top:24px}
.contact-list li{display:flex;gap:12px;align-items:flex-start;font-size:.96rem;min-width:0}
.contact-list .icon{width:19px;height:19px;color:var(--blue);margin-top:3px}
.contact-list a:hover{color:var(--blue)}
.quote-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

.form-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(22px,3vw,32px);box-shadow:var(--shadow-sm);min-width:0;
}

/* ---------------- footer-adjacent page list ---------------- */
.page-links{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}
.page-links a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;
  padding:15px 17px;font-size:.94rem;font-weight:600;
  transition:border-color .2s,transform .2s var(--ease),color .2s;
}
.page-links a:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}
.page-links .icon{width:16px;height:16px;color:var(--blue)}

/* ---------------- responsive ---------------- */
@media (max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quote-grid{grid-template-columns:1fr}
  .page-links{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .page-links{grid-template-columns:1fr}
  .card{padding:22px 20px}
  .ticks li > span,.specs dd{overflow-wrap:anywhere}
}
