/* Service detail pages: a light, article-style layout with a sticky contact panel.
   Shares tokens, type, buttons and chrome (site.css) and FAQ, lists and links (base.css) with the homepage,
   but not its navy split hero or full-width bands. */

/* Page head: title and actions on paper, then the client's job photos */
.svc-head {
  padding-block: var(--s7) var(--s6);
}

.svc-head h1 {
  max-width: 18ch;
  font: var(--display-xl);
  color: var(--navy);
}

.svc-lede {
  max-width: 52ch;
  margin-top: var(--s4);
  font: var(--body-lg);
  color: var(--text-muted);
}

.svc-head .actions {
  margin-top: var(--s5);
}

.svc-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s3);
  margin-top: var(--s6);
}

.svc-photos img {
  width: 100%;
  aspect-ratio: 3 / 2;
  border-radius: var(--radius);
  background: var(--line);
  object-fit: cover;
}

.svc-photos img:only-child {
  grid-column: 1 / -1;
  aspect-ratio: 21 / 9;
}

/* Body: reading column plus contact panel */
.svc-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--s8);
  align-items: start;
  padding-block: var(--s6) var(--s8);
}

.svc-article {
  max-width: 680px;
}

.svc-article > section + section {
  margin-top: var(--s7);
  padding-top: var(--s7);
  border-top: 1px solid var(--line);
}

.svc-article > section {
  padding-block: 0;
}

.svc-article h2 {
  margin-bottom: var(--s3);
}

.svc-article > section > p {
  font: var(--body-lg);
  color: var(--text-muted);
}

.checklist {
  margin-top: var(--s4);
}

.checklist li {
  padding-block: var(--s3);
  border-top: 1px solid var(--line);
  font: var(--body-lg);
  color: var(--text);
}

.checklist li:last-child {
  border-bottom: 1px solid var(--line);
}

.area-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--s5);
  margin-top: var(--s3);
}

.svc-article .faq-list {
  margin-top: var(--s4);
}

/* Contact panel: navy, sticky beside the article on wide screens */
.svc-aside {
  position: sticky;
  top: 100px;
  display: grid;
  gap: var(--s6);
}

.help-panel {
  padding: var(--s5);
  border-radius: var(--radius);
  background: var(--navy);
  color: var(--on-navy);
}

.help-panel h2 {
  font: var(--title);
  font-size: 1.75rem;
  color: var(--on-navy);
}

.help-panel > p {
  margin-top: var(--s2);
  color: var(--on-navy-muted);
}

.help-panel .btn {
  width: 100%;
  margin-top: var(--s4);
}

.related h2 {
  margin-bottom: var(--s2);
  font: var(--label);
  font-size: 1.125rem;
  color: var(--navy);
}

.related a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  border-top: 1px solid var(--line);
  color: var(--ink);
  font: var(--label);
  font-size: 0.9375rem;
  text-decoration: none;
}

.related li:last-child a {
  border-bottom: 1px solid var(--line);
}

.related .icon {
  width: 18px;
  height: 18px;
}

@media (hover: hover) and (pointer: fine) {
  .related a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
  }
}

@media (max-width: 1024px) {
  .svc-body {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: var(--s6);
  }
}

@media (max-width: 820px) {
  .svc-head {
    padding-block: var(--s6) var(--s5);
  }

  .svc-photos {
    margin-top: var(--s5);
  }

  .svc-body {
    grid-template-columns: 1fr;
    padding-block: var(--s5) var(--s7);
  }

  .svc-aside {
    position: static;
  }

  .svc-article > section + section {
    margin-top: var(--s6);
    padding-top: var(--s6);
  }

  /* The closing CTA follows straight after, so the panel would only repeat it. */
  .help-panel {
    display: none;
  }
}

@media (max-width: 520px) {
  .svc-photos {
    gap: var(--s2);
  }

  .svc-photos img {
    aspect-ratio: 1;
  }

  .svc-photos img:only-child {
    aspect-ratio: 4 / 3;
  }

  .help-panel {
    padding: var(--s4);
  }
}

/* Refresh (Nov 2026, approved on the mold page): white page, bigger display type,
   photo-topped contact panel and a photo list of other services. Kept last so it wins over the rules above. */
body,
.svc-head {
  background: var(--white);
}

.svc-head h1 {
  max-width: none;
  font: 600 clamp(3rem, 6.2vw, 5.25rem) / 0.95 var(--font-display);
}

.svc-head h1 span {
  display: block;
  color: var(--ink);
}

.svc-lede {
  font-size: 1.25rem;
  color: var(--text);
}

.svc-photos {
  margin-top: var(--s6);
}

.svc-head .btn-secondary {
  border-width: 2px;
  border-color: var(--navy);
  background: var(--white);
}

.svc-head .btn-secondary:hover {
  background: var(--navy);
  color: var(--on-navy);
}

.btn .icon {
  width: 20px;
  height: 20px;
}

.svc-body {
  padding-block: var(--s7) var(--s8);
}

@media (min-width: 1025px) {
  .svc-body {
    grid-template-columns: minmax(0, 1fr) 360px;
  }
}

.svc-article h2 {
  margin-bottom: var(--s4);
  font: 600 clamp(2.25rem, 3.6vw, 3rem) / 1 var(--font-display);
}

.svc-article > section + section {
  margin-top: var(--s8);
  padding-top: 0;
  border-top: 0;
}

.checklist li {
  display: flex;
  align-items: baseline;
  gap: var(--s3);
  padding-block: 20px;
  font-size: 1.1875rem;
  font-weight: 600;
}

.checklist li::before {
  content: "";
  flex: none;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--accent);
  transform: translateY(-2px);
}

.help-panel {
  padding: 0;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 18px 40px -18px rgba(1, 40, 60, 0.45);
}

.help-photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.help-inner {
  padding: var(--s5);
  border-top: 4px solid var(--accent);
}

.help-panel h2 {
  font: 600 2.25rem / 1 var(--font-display);
}

.help-panel .help-inner > p {
  margin-top: var(--s2);
  font-size: 1rem;
  color: var(--on-navy-muted);
}

.help-panel .btn-help {
  width: 100%;
  margin-top: var(--s3);
  border: 2px solid var(--on-navy);
  background: transparent;
  color: var(--on-navy);
}

.help-panel .btn-help:hover {
  background: var(--on-navy);
  color: var(--navy);
}

.help-list {
  display: grid;
  gap: 12px;
  margin-top: var(--s4);
  padding-top: var(--s4);
  border-top: 1px solid var(--line-on-navy);
}

.help-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  font: 600 0.9375rem / 1.4 var(--font-body);
  color: var(--on-navy);
}

.help-list .icon {
  width: 20px;
  height: 20px;
  flex: none;
  color: var(--accent);
}

.related {
  overflow: hidden;
  border-radius: 10px;
  background: var(--white);
  box-shadow: 0 18px 40px -22px rgba(1, 40, 60, 0.35);
}

.related h2 {
  margin: 0;
  padding: var(--s4) var(--s4) var(--s3);
  border-bottom: 4px solid var(--accent);
  font: 600 1.75rem / 1 var(--font-display);
  color: var(--navy);
}

.related ul {
  padding: var(--s2) 0;
}

.related ul a {
  gap: var(--s3);
  justify-content: flex-start;
  min-height: 0;
  margin: 0 var(--s4);
  padding-block: 12px;
  border-top: 0;
  font: 600 0.9375rem / 1.3 var(--font-body);
  color: var(--navy);
}

.related li + li a {
  border-top: 1px solid var(--line);
}

.related li:last-child a {
  border-bottom: 0;
}

.related ul a img {
  width: 52px;
  height: 52px;
  flex: none;
  border-radius: var(--radius);
  object-fit: cover;
}

.related ul a span {
  flex: 1;
}

.related .icon {
  width: 20px;
  height: 20px;
  flex: none;
  color: var(--accent);
  transition: transform 0.15s ease-out;
}

.related a:hover .icon {
  transform: translateX(3px);
}

.related ul a:hover {
  text-decoration: none;
}

.related ul a:hover span {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.related .related-all {
  justify-content: center;
  gap: var(--s2);
  min-height: 0;
  padding: var(--s3);
  border-top: 0;
  background: var(--paper);
  font: 600 1rem / 1.3 var(--font-body);
  color: var(--ink);
}

.related .related-all:hover {
  background: var(--navy);
  color: var(--on-navy);
  text-decoration: none;
}

.related .related-all:hover .icon {
  color: var(--on-navy);
}

@media (max-width: 720px) {
  .area-links {
    gap: 0 var(--s3);
  }

  .svc-article > section + section {
    margin-top: var(--s7);
  }
}
