/* Page-specific polish for the isolated content-preserving redesign.
   Shared palette/type/navigation rules are supplied by the main preview CSS. */

/* Field Notes: retain every part of each article preview in open, readable rows. */
.site-preserved.page-blog .blog-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  border-bottom: 1px solid #d4dbe1;
}
.site-preserved.page-blog .blog-grid > .pcard {
  --ink: #101820;
  --muted: #525d68;
  --line: #d4dbe1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
  grid-template-rows: auto auto auto;
  align-items: start;
  gap: 12px clamp(28px, 5vw, 72px);
  padding: 32px 0 36px;
  border: 0;
  border-top: 1px solid #d4dbe1;
  border-radius: 0;
  background: transparent;
  color: #101820;
  box-shadow: none;
  transform: none;
  transition: border-color .18s ease;
  min-width: 0;
}
.site-preserved.page-blog .blog-grid > .pcard:hover {
  border-top-color: #ff3131;
  box-shadow: none;
  transform: none;
}
.site-preserved.page-blog .pcard .ptag {
  grid-column: 1;
  grid-row: 1;
  color: #525d68;
  font: 600 .94rem/1.4 "Barlow", sans-serif;
  text-transform: none;
  letter-spacing: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}
.site-preserved.page-blog .pcard .ptag::before { content: none; }
.site-preserved.page-blog .pcard h3 {
  grid-column: 1;
  grid-row: 2;
  font: 600 clamp(1.7rem, 2.6vw, 2.15rem)/1.12 "Barlow Condensed", sans-serif;
  letter-spacing: -.01em;
  margin: 0;
  max-width: 27ch;
  text-wrap: balance;
}
.site-preserved.page-blog .pcard p {
  grid-column: 2;
  grid-row: 2;
  color: #525d68;
  font-size: 1.06rem;
  line-height: 1.65;
  margin: 0;
  max-width: 62ch;
}
.site-preserved.page-blog .pcard .more {
  grid-column: 2;
  grid-row: 3;
  justify-self: start;
  color: #101820 !important;
  font: 600 .98rem/1.5 "Barlow", sans-serif;
  margin: 4px 0 0;
  padding: 0 0 3px;
  border-bottom: 1px solid #ff3131;
}
.site-preserved.page-blog .pcard .pmeta {
  grid-column: 1;
  grid-row: 3;
  color: #525d68;
  font-size: .88rem;
  line-height: 1.5;
  padding: 0;
  margin: 5px 0 0;
}
.site-preserved.page-blog .pcard:focus-visible {
  outline: 3px solid #101820;
  outline-offset: 6px;
}

/* Articles: typography and spacing only. Images remain uncropped. */
.site-preserved:is(.page-blog-isp-cutover,.page-blog-outdoor-wifi,.page-blog-access-control-laptop) .subhero h1 {
  max-width: 24ch;
}
.site-preserved:is(.page-blog-isp-cutover,.page-blog-outdoor-wifi,.page-blog-access-control-laptop) .post {
  --ink: #101820;
  --ink-2: #35424e;
  --muted: #525d68;
  --line: #d4dbe1;
  max-width: 760px;
  color: #101820;
  overflow-wrap: break-word;
}
.site-preserved .post > :is(p,ul,ol) {
  font-size: 1.12rem;
  line-height: 1.8;
}
.site-preserved .post li {
  font-size: inherit;
  line-height: 1.8;
  margin-bottom: .9rem;
}
.site-preserved .post :is(ul,ol) { padding-left: .4rem; }
.site-preserved .post li::marker { color: #525d68; }
.site-preserved .post .lede {
  font-size: 1.26rem;
  line-height: 1.7;
  color: #35424e;
}
.site-preserved:is(.page-blog-isp-cutover,.page-blog-outdoor-wifi,.page-blog-access-control-laptop) .post h2 {
  font-size: clamp(1.9rem, 3vw, 2.5rem) !important;
  line-height: 1.15;
  margin: 2.4rem 0 1rem;
}
.site-preserved .post h3 {
  font-family: "Barlow", sans-serif;
  font-weight: 600;
  font-size: 1.35rem;
  line-height: 1.35;
  margin: 2rem 0 .7rem;
}
.site-preserved .post .pmeta {
  font-size: .94rem;
  line-height: 1.6;
  padding-bottom: 24px;
  margin-bottom: 30px;
}
.site-preserved .post .backlink {
  color: #101820;
  font-size: 1rem;
  text-decoration: underline;
  text-decoration-color: #ff3131;
  text-underline-offset: 5px;
}
.site-preserved .post .callout {
  background: #f3f5f6;
  border-left: 3px solid #ff3131;
  padding: 24px 28px;
  margin: 2rem 0;
}
.site-preserved .post .callout p {
  font-size: 1.07rem;
  line-height: 1.75;
}
.site-preserved .post figure img { height: auto; }
.site-preserved .post figcaption {
  font-size: .96rem !important;
  line-height: 1.6;
  text-align: left !important;
}
.site-preserved .post-cta p {
  font-size: 1.04rem !important;
  line-height: 1.75;
}
.site-preserved .post-cta a {
  color: #101820 !important;
  text-decoration: underline;
  text-decoration-color: #ff3131;
  text-underline-offset: 4px;
}

/* About: preserve the full narrative, values, service list, credentials and stats. */
.site-preserved.page-about .subhero + .block > .wrap {
  text-align: left !important;
  max-width: 820px;
}
.site-preserved.page-about .subhero + .block p:not(.eyebrow) {
  font-size: 1.15rem !important;
  line-height: 1.8;
}
.site-preserved.page-about .vgrid { column-gap: clamp(30px, 5vw, 72px); }
.site-preserved.page-about .vgrid > .card { padding: 26px 0; }
.site-preserved.page-about .vgrid .card p {
  max-width: 58ch;
  font-size: 1.04rem;
  line-height: 1.75;
}
.site-preserved.page-about .statband {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  text-align: left;
}
.site-preserved.page-about .statband .s {
  min-width: 0;
  padding-top: 22px;
  border-top: 1px solid #d4dbe1;
}
.site-preserved.page-about .statband .s b {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.site-preserved.page-about .statband .s span {
  margin-top: 8px;
  font-size: 1rem;
  line-height: 1.5;
}

/* Contact: no form, submission, spam protection or map behavior changes. */
.site-preserved.page-contact .contact-grid {
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(32px, 5vw, 72px);
}
.site-preserved.page-contact .contact-grid h2 {
  font-size: clamp(1.9rem, 3vw, 2.5rem) !important;
  line-height: 1.15;
}
.site-preserved.page-contact #contact-form {
  --ink: #101820;
  --muted: #525d68;
  --line: #d4dbe1;
  --line-strong: #939fa9;
  background: #f3f5f6 !important;
  border: 0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  padding: clamp(22px, 3vw, 40px) !important;
  min-width: 0;
  color: #101820;
}
.site-preserved.page-contact .cinfo .item {
  gap: 14px;
  margin: 0;
  padding: 18px 0;
  border-bottom: 1px solid #d4dbe1;
}
.site-preserved.page-contact .cinfo .item > div { min-width: 0; }
.site-preserved.page-contact .cinfo .item :is(span,a) {
  font-size: 1rem;
  line-height: 1.65;
}
.site-preserved.page-contact .cinfo .item a {
  color: #101820;
  text-decoration: underline;
  text-decoration-color: #9ca8b1;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}
.site-preserved.page-contact .cinfo .item a:hover { text-decoration-color: #ff3131; }
.site-preserved.page-contact .cform { gap: 22px; }
.site-preserved.page-contact .cform .row { gap: 18px; }
.site-preserved.page-contact .cform label {
  color: #101820;
  font-size: 1rem;
  font-weight: 600;
}
.site-preserved.page-contact .cform :is(input:not(.hp),textarea) {
  background: #fff;
  color: #101820;
  border: 1px solid #939fa9;
  border-radius: 5px;
  font-family: "Barlow", sans-serif;
  font-size: 1.0625rem;
  line-height: 1.5;
  min-width: 0;
}
.site-preserved.page-contact .cform input { min-height: 50px; }
.site-preserved.page-contact .cform :is(input:not(.hp),textarea):focus-visible {
  border-color: #101820;
  outline: 2px solid #101820;
  outline-offset: 3px;
  box-shadow: none;
}
.site-preserved.page-contact .cform textarea { min-height: 180px; }
.site-preserved.page-contact .cform .formnote {
  color: #525d68;
  font-size: .93rem;
  line-height: 1.65;
}
.site-preserved.page-contact .cform .formnote a {
  color: #101820;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.site-preserved.page-contact .mapframe {
  border-radius: 8px;
  margin-top: 28px;
}

/* Short information pages retain their existing content and destinations. */
.site-preserved.page-careers main .block > .wrap {
  max-width: 760px !important;
  text-align: left;
}
.site-preserved.page-careers main .block p:not(.eyebrow) {
  font-size: 1.15rem;
  line-height: 1.8;
}
.site-preserved.page-privacy .privacy-copy {
  --ink: #101820;
  --muted: #525d68;
  max-width: 760px;
}
.site-preserved.page-privacy .privacy-copy h2 {
  font-size: clamp(1.85rem, 3vw, 2.4rem) !important;
  line-height: 1.2;
  margin: 2.5rem 0 1rem;
}
.site-preserved.page-privacy .privacy-copy h2:first-child { margin-top: 0; }
.site-preserved.page-privacy .privacy-copy :is(p,li) {
  color: #35424e;
  font-size: 1.1rem;
  line-height: 1.8;
}
.site-preserved.page-privacy .privacy-copy li { margin-bottom: .8rem; }
.site-preserved.page-privacy .privacy-copy a {
  text-decoration-color: #ff3131;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.site-preserved.page-404 .subhero h1 { margin-inline: auto; max-width: 24ch; }
.site-preserved.page-404 .services > .card { min-width: 0; }
.site-preserved.page-404 .services > .card:hover { border-top-color: #ff3131; }

@media (max-width: 860px) {
  .site-preserved.page-contact .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .site-preserved.page-about .statband { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .site-preserved.page-blog .blog-grid > .pcard { display: flex; gap: 0; padding: 28px 0 32px; }
  .site-preserved.page-blog .pcard .ptag { margin-bottom: 12px; }
  .site-preserved.page-blog .pcard h3 { font-size: 1.9rem; margin-bottom: 14px; max-width: none; }
  .site-preserved.page-blog .pcard p { margin-bottom: 18px; }
  .site-preserved.page-blog .pcard .more { margin-top: 0; }
  .site-preserved.page-blog .pcard .pmeta { margin-top: 14px; }
  .site-preserved .post .callout { padding: 20px; }
  .site-preserved .post > :is(p,ul,ol) { font-size: 1.06rem; line-height: 1.75; }
  .site-preserved .post .lede { font-size: 1.2rem; }
}
@media (max-width: 560px) {
  .site-preserved.page-about .statband { gap: 24px 18px; }
  .site-preserved.page-about .statband .s b { font-size: clamp(1.95rem, 7vw, 2.25rem); }
  .site-preserved.page-contact .cform .row { grid-template-columns: minmax(0, 1fr); }
  .site-preserved.page-contact #contact-form { padding: 24px 18px !important; }
}
