@charset "UTF-8";

/* V143: service pages aligned with the accepted cinematic V125 homepage. */
.service-page {
  --service-card: rgba(15,17,18,.86);
  --service-line: rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 82% 12%, rgba(var(--red-rgb),.085), transparent 30%),
    #090a0b;
}

.service-page .site-header {
  position: absolute;
}

/* Keep the mobile menu at the right edge without a language-switch spacer. */
.service-page .menu-button {
  margin-left: auto;
}

.service-page .desktop-nav > a[aria-current="page"]::after,
.service-page .nav-services-trigger.is-current::after {
  position: absolute;
  right: 0;
  bottom: 21px;
  left: 0;
  height: 1px;
  content: "";
  background: var(--red);
}

.service-hero {
  min-height: min(860px,calc(100svh - var(--emergency-height)));
  align-items: end;
}

.service-hero .hero-media img {
  object-position: var(--service-hero-position,center 52%);
  filter: saturate(.83) contrast(1.04);
}

.service-hero .hero-shade {
  background:
    linear-gradient(90deg,rgba(4,5,6,.98) 0%,rgba(4,5,6,.88) 36%,rgba(4,5,6,.26) 73%,rgba(4,5,6,.46) 100%),
    linear-gradient(0deg,rgba(4,5,6,.98) 0%,transparent 54%);
}

.service-hero .hero-inner {
  grid-template-columns: minmax(0,1fr);
  align-items: end;
  gap: clamp(36px,6vw,90px);
  padding-top: 185px;
  padding-bottom: clamp(70px,8vw,112px);
}

.service-hero .hero-copy {
  max-width: 900px;
}

.service-hero h1 {
  max-width: 1020px;
  font-size: clamp(3.45rem,7.7vw,8rem);
  font-weight: 540;
  line-height: .9;
  overflow-wrap: normal;
}

.service-hero h1 span,
.service-hero h1 em {
  display: block;
}

.service-hero h1 em {
  color: var(--red);
  font-style: normal;
  font-weight: 430;
}

.service-hero .hero-lead {
  max-width: 760px;
}

.service-proof {
  position: relative;
  z-index: 4;
  margin-top: -1px;
  border-block: 1px solid var(--service-line);
  background: rgba(9,10,11,.97);
}

.service-proof-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
}

.service-proof-grid > div {
  min-width: 0;
  padding: 25px clamp(20px,2.3vw,34px);
}

.service-proof-grid > div + div {
  border-left: 1px solid var(--service-line);
}

.service-proof-grid span,
.service-proof-grid b,
.service-proof-grid small {
  display: block;
}

.service-proof-grid span {
  margin-bottom: 8px;
  color: var(--red);
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .16em;
}

.service-proof-grid b {
  font-size: .88rem;
  font-weight: 800;
}

.service-proof-grid small {
  margin-top: 5px;
  color: #858a8c;
  font-size: .68rem;
  line-height: 1.55;
}

.service-switch {
  padding: clamp(48px,6vw,78px) 0;
  background: #0c0e0f;
}

.service-switch-label {
  margin: 0 0 17px;
  color: #73787a;
  font-size: .57rem;
  font-weight: 850;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.service-switch-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  overflow: hidden;
  border: 1px solid var(--service-line);
  border-radius: 14px;
  background: #0a0b0c;
}

.service-switch-card {
  position: relative;
  min-width: 0;
  min-height: 148px;
  display: grid;
  align-content: end;
  padding: 24px;
  color: #8d9294;
}

.service-switch-card + .service-switch-card {
  border-left: 1px solid var(--service-line);
}

.service-switch-card::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 3px;
  content: "";
  background: var(--red);
  opacity: .72;
}

.service-switch-card span,
.service-switch-card b,
.service-switch-card small {
  display: block;
}

.service-switch-card span {
  margin-bottom: 22px;
  color: #717678;
  font-size: .59rem;
  font-weight: 900;
  letter-spacing: .17em;
}

.service-switch-card b {
  color: #f4f3ef;
  font-size: .9rem;
  font-weight: 850;
}

.service-switch-card small {
  margin-top: 5px;
  font-size: .67rem;
  line-height: 1.5;
}

.service-switch-card:hover,
.service-switch-card:focus-visible,
.service-switch-card[aria-current="page"] {
  color: #b7bbbd;
  background:
    radial-gradient(circle at 92% 92%,rgba(var(--red-rgb),.23),transparent 35%),
    #121416;
}

.service-switch-card[aria-current="page"] {
  box-shadow: inset 0 -3px 0 var(--red);
}

.service-content {
  position: relative;
  overflow: hidden;
}

.service-content::before {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: repeating-linear-gradient(112deg,transparent 0,transparent 142px,rgba(255,255,255,.018) 143px,transparent 144px);
}

.service-section {
  position: relative;
  padding: clamp(84px,9vw,145px) 0;
}

.service-section--alt {
  border-block: 1px solid rgba(255,255,255,.08);
  background: rgba(17,19,21,.78);
}

.service-heading {
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr);
  align-items: end;
  gap: clamp(35px,7vw,105px);
  margin-bottom: clamp(45px,6vw,82px);
}

.service-heading .eyebrow {
  margin-bottom: 21px;
}

.service-emergency-page .service-heading .eyebrow-symmetric {
  width: max-content;
  gap: 18px;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .22em;
}

.service-emergency-page .service-heading .eyebrow-symmetric::before,
.service-emergency-page .service-heading .eyebrow-symmetric::after {
  width: 46px;
  flex-basis: 46px;
}

.service-heading h2 {
  max-width: 890px;
  font-size: clamp(2.75rem,5.8vw,6.1rem);
  line-height: .94;
}

.service-heading > p,
.service-copy p,
.service-card p,
.service-step p,
.service-cta p {
  color: #979b9d;
  line-height: 1.78;
}

.service-heading > p {
  margin: 0 0 6px;
  font-size: .9rem;
}

.service-split {
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr);
  align-items: center;
  gap: clamp(28px,5vw,72px);
}

.service-media {
  position: relative;
  min-height: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--service-line);
  border-radius: 18px;
  background: #111315;
}

.service-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  transition: transform .7s cubic-bezier(.2,.75,.25,1),filter .4s ease;
}

.service-media::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(0deg,rgba(4,5,6,.5),transparent 50%);
}

.service-media:hover img {
  transform: none;
}

.service-copy {
  display: grid;
  align-content: center;
  padding-block: 20px;
}

.service-copy h3 {
  font-size: clamp(2rem,3.7vw,4rem);
  line-height: .98;
}

.service-copy > p {
  margin: 25px 0 0;
  font-size: .9rem;
}

.service-checklist {
  display: grid;
  gap: 0;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}

.service-checklist li {
  position: relative;
  padding: 14px 0 14px 27px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: #d3d5d5;
  font-size: .75rem;
  font-weight: 700;
}

.service-checklist li::before {
  position: absolute;
  top: 14px;
  left: 0;
  color: var(--red);
  content: "↗";
}

.service-page .service-card-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
}

.service-page .service-card {
  min-width: 0;
  grid-column: auto;
  padding: clamp(25px,3vw,38px);
  border: 1px solid var(--service-line);
  border-radius: 14px;
  background: var(--service-card);
}

.service-card > span,
.service-step > span {
  display: block;
  margin-bottom: 45px;
  color: var(--red);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .17em;
}

.service-card h3 {
  font-size: clamp(1.35rem,2.2vw,2rem);
  line-height: 1.08;
}

.service-card p {
  margin: 17px 0 0;
  font-size: .75rem;
}

.service-emergency-page .service-decision-grid {
  gap: 18px;
}

.service-emergency-page .service-decision-card {
  position: relative;
  min-height: 350px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: clamp(30px,3.5vw,48px);
  border-color: rgba(255,255,255,.13);
  border-radius: 20px;
  background:
    radial-gradient(circle at 100% 0,rgba(var(--red-rgb),.15),transparent 46%),
    linear-gradient(145deg,#121416 0%,#0b0c0d 72%);
  box-shadow: 0 22px 60px rgba(0,0,0,.18);
}

.service-emergency-page .service-decision-card::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 92px;
  height: 3px;
  content: "";
  background: linear-gradient(90deg,var(--red),rgba(var(--red-rgb),.08));
}

.service-emergency-page .service-decision-card::after {
  position: absolute;
  right: 16px;
  bottom: -25px;
  color: rgba(255,255,255,.035);
  content: attr(data-index);
  font-size: clamp(7rem,11vw,12rem);
  font-weight: 850;
  letter-spacing: -.08em;
  line-height: .8;
  pointer-events: none;
}

.service-emergency-page .service-decision-card > * {
  position: relative;
  z-index: 1;
}

.service-emergency-page .service-decision-card > span {
  margin-bottom: auto;
}

.service-emergency-page .service-decision-card h3 {
  max-width: 250px;
  margin-top: clamp(55px,6vw,90px);
  font-size: clamp(1.75rem,2.7vw,2.65rem);
}

.service-emergency-page .service-decision-card p {
  max-width: 350px;
}

.service-decision-status {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: 34px;
  padding-top: 17px;
  border-top: 1px solid rgba(255,255,255,.1);
  color: #d6d8d8;
  font-size: .61rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.service-decision-status i {
  width: 8px;
  height: 8px;
  flex: none;
  border: 2px solid var(--red);
  border-radius: 50%;
  box-shadow: 0 0 15px rgba(var(--red-rgb),.38);
}

.service-process {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  overflow: hidden;
  border: 1px solid var(--service-line);
  border-radius: 18px;
  background: #090a0b;
}

.service-step {
  min-width: 0;
  padding: clamp(27px,3.3vw,45px);
}

.service-step + .service-step {
  border-left: 1px solid var(--service-line);
}

.service-step > span {
  margin-bottom: clamp(55px,7vw,95px);
}

.service-step h3 {
  font-size: clamp(1.45rem,2.5vw,2.35rem);
}

.service-step p {
  margin: 18px 0 0;
  font-size: .75rem;
}

.service-emergency-page .service-process--visual {
  gap: 18px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.service-emergency-page .service-process--visual .service-step {
  position: relative;
  min-height: 370px;
  display: flex;
  flex-direction: column;
  padding: clamp(30px,3.5vw,48px);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 20px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.025),transparent 38%),
    #0b0d0e;
  box-shadow: 0 22px 60px rgba(0,0,0,.2);
}

.service-emergency-page .service-process--visual .service-step::before {
  position: absolute;
  top: 73px;
  left: 112px;
  width: 58px;
  height: 1px;
  content: "";
  background: linear-gradient(90deg,var(--red),transparent);
}

.service-emergency-page .service-process--visual .service-step:not(:last-child)::after {
  position: absolute;
  z-index: 3;
  top: 73px;
  right: -19px;
  width: 18px;
  height: 1px;
  content: "";
  background: linear-gradient(90deg,rgba(var(--red-rgb),.2),var(--red));
}

.service-step-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.service-step-head strong {
  width: 66px;
  height: 66px;
  display: grid;
  flex: none;
  place-items: center;
  border: 1px solid rgba(var(--red-rgb),.75);
  border-radius: 50%;
  color: #fff;
  background: rgba(var(--red-rgb),.1);
  font-size: 1rem;
  letter-spacing: .08em;
  box-shadow: inset 0 0 0 6px rgba(var(--red-rgb),.04),0 0 26px rgba(var(--red-rgb),.12);
}

.service-step-head small {
  color: #777d7f;
  font-size: .57rem;
  font-weight: 850;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.service-emergency-page .service-process--visual .service-step h3 {
  max-width: 300px;
  margin-top: clamp(62px,6vw,94px);
  font-size: clamp(1.75rem,2.8vw,2.65rem);
  line-height: 1.03;
}

.service-emergency-page .service-process--visual .service-step p {
  max-width: 340px;
}

.service-step-meta {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: auto;
  padding-top: 28px;
  color: #8c9193;
  font-size: .59rem;
  font-weight: 750;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.service-step-meta i {
  width: 18px;
  height: 1px;
  flex: none;
  background: var(--red);
}

.service-gallery {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
}

.service-gallery figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--service-line);
  border-radius: 14px;
  background: #111315;
}

.service-gallery img {
  height: auto;
  aspect-ratio: 4/3;
  object-fit: cover;
  object-position: var(--service-gallery-position,center);
}

.service-gallery figcaption {
  min-height: 92px;
  padding: 18px 20px;
}

.service-gallery b,
.service-gallery small {
  display: block;
}

.service-gallery b {
  font-size: .8rem;
}

.service-gallery small {
  margin-top: 5px;
  color: #777c7e;
  font-size: .65rem;
  line-height: 1.55;
}

.service-cta-wrap {
  padding-top: 0;
}

.service-cta {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 40px;
  overflow: hidden;
  padding: clamp(32px,5vw,66px);
  border: 1px solid rgba(var(--red-rgb),.43);
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 20%,rgba(var(--red-rgb),.25),transparent 34%),
    #111315;
}

.service-cta::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  content: "";
  background: linear-gradient(90deg,var(--red),transparent 75%);
}

.service-cta h2 {
  max-width: 880px;
  font-size: clamp(2.4rem,4.8vw,5rem);
  line-height: .95;
}

.service-cta p {
  max-width: 700px;
  margin: 19px 0 0;
  font-size: .82rem;
}

.service-cta-actions {
  min-width: min(100%,250px);
  display: grid;
  gap: 10px;
}

.service-page .button {
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 999px;
  color: #fff;
  background: rgba(8,9,10,.68);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .02em;
  text-align: center;
}

.service-page .button.primary {
  border-color: var(--red);
  background: var(--red);
  box-shadow: 0 12px 35px rgba(var(--red-rgb),.22);
}

.service-page .button:hover,
.service-page .button:focus-visible {
  transform: translateY(-2px);
}

.service-page .site-footer {
  position: relative;
  z-index: 2;
}

@media (max-width:1120px) {
  .service-switch-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-switch-card:nth-child(3) { border-left: 0; border-top: 1px solid var(--service-line); }
  .service-switch-card:nth-child(4) { border-top: 1px solid var(--service-line); }
  .service-hero .hero-inner { grid-template-columns: minmax(0,1fr); }
}

@media (max-width:860px) {
  .service-hero { min-height: min(820px,calc(100svh - var(--emergency-height))); }
  .service-hero .hero-inner { grid-template-columns: 1fr; align-content: end; padding-top: 160px; }
  .service-proof-grid { grid-template-columns: 1fr; }
  .service-proof-grid > div + div { border-top: 1px solid var(--service-line); border-left: 0; }
  .service-heading { grid-template-columns: 1fr; gap: 25px; }
  .service-heading > p { max-width: 680px; }
  .service-split { grid-template-columns: 1fr; }
  .service-media { min-height: auto; aspect-ratio: 4/3; }
  .service-copy { padding-top: 8px; }
  .service-page .service-card-grid,.service-page .service-gallery { grid-template-columns: 1fr 1fr; }
  .service-page .service-card:last-child { grid-column: 1 / -1; }
  .service-process { grid-template-columns: 1fr; }
  .service-step + .service-step { border-top: 1px solid var(--service-line); border-left: 0; }
  .service-step > span { margin-bottom: 28px; }
  .service-emergency-page .service-process--visual .service-step:not(:last-child)::after {
    top: auto;
    right: 50%;
    bottom: -19px;
    width: 1px;
    height: 18px;
    background: linear-gradient(180deg,rgba(var(--red-rgb),.2),var(--red));
  }
  .service-cta { grid-template-columns: 1fr; }
  .service-cta-actions { width: 100%; }
}

@media (max-width:620px) {
  .service-page .service-hero .hero-inner {
    width: calc(100% - 32px) !important;
    max-width: calc(100% - 32px);
    min-width: 0;
    margin-inline: auto;
  }
  .service-page .service-hero .hero-copy,
  .service-page .service-hero h1,
  .service-page .service-hero h1 span,
  .service-page .service-hero h1 em {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .service-page .service-hero h1 { display: block; }
  .service-hero .hero-media img { object-position: var(--service-hero-mobile-position,var(--service-hero-position,center)); }
  .service-hero .hero-shade { background: linear-gradient(90deg,rgba(4,5,6,.97),rgba(4,5,6,.72)),linear-gradient(0deg,rgba(4,5,6,.94),transparent 58%); }
  .service-hero .hero-inner { padding-top: 120px; padding-bottom: 52px; }
  .service-hero h1 { font-size: clamp(2.8rem,14vw,4.7rem); line-height: .92; }
  .service-hero .hero-lead { margin-top: 24px; font-size: .84rem; line-height: 1.7; }
  .service-switch-grid { grid-template-columns: 1fr; border-radius: 10px; }
  .service-switch-card { min-height: 116px; }
  .service-switch-card + .service-switch-card { border-top: 1px solid var(--service-line); border-left: 0; }
  .service-switch-card span { margin-bottom: 14px; }
  .service-section { padding: 72px 0; }
  .service-heading { margin-bottom: 38px; }
  .service-emergency-page .service-heading .eyebrow-symmetric { gap: 11px; font-size: .62rem; letter-spacing: .16em; }
  .service-emergency-page .service-heading .eyebrow-symmetric::before,
  .service-emergency-page .service-heading .eyebrow-symmetric::after { width: 24px; flex-basis: 24px; }
  .service-heading h2 { font-size: clamp(2.45rem,12vw,4rem); }
  .service-heading > p { font-size: .8rem; }
  .service-page .service-card-grid,.service-page .service-gallery { grid-template-columns: 1fr; }
  .service-page .service-card:last-child { grid-column: auto; }
  .service-emergency-page .service-decision-card,
  .service-emergency-page .service-process--visual .service-step { min-height: 330px; padding: 28px 24px; border-radius: 15px; }
  .service-emergency-page .service-decision-card h3,
  .service-emergency-page .service-process--visual .service-step h3 { margin-top: 55px; }
  .service-media { border-radius: 12px; }
  .service-copy h3 { font-size: clamp(1.9rem,9vw,3rem); }
  .service-cta { padding: 30px 24px; border-radius: 12px; }
  .service-page .button { width: 100%; }
}

@media (prefers-reduced-motion:reduce) {
  .service-media img,.service-page .button { transition: none; }
}
