:root {
  --blue: #006fff;
  --ink: #111827;
  --muted: #5f6978;
  --line: #E4E0D7;
  --wash: #F0EDE6;
}

html { scroll-behavior: smooth; }
body { background: #F3F1EB; }
.mobile-cta { display: none !important; }

.phn-section { position: relative; }
.tone-blue,
.tone-violet { background: #F0EDE6 !important; }
.tone-cyan,
.tone-teal { background: #FBFAF7fff !important; }
.tone-grid { background: #F2EFE9 !important; }

.install-grid > div,
.pricing-mini > a,
.pkg-grid > div,
.reviews-grid > * {
  box-shadow: 0 16px 38px -34px rgba(17,24,39,.4);
}

.install-grid > div {
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid #CFC9BC !important;
  border-radius: 0 !important;
  padding: 26px 20px 30px 0 !important;
  box-shadow: none !important;
}
.install-grid > div > div:first-child { display: none !important; }
.install-grid > div h3 { margin-top: 0 !important; }

.service-outcomes figure > div:first-child { display: none !important; }
.service-outcomes figure { padding-top: 30px !important; }

.phn-trust-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
  color: #4b5563;
  font-size: 13.5px;
}
.phn-trust-strip span { display: inline-flex; align-items: center; gap: 7px; }
.phn-trust-strip i { width: 5px; height: 5px; border-radius: 50%; background: #006fff; }

.mesh-note {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  padding: 30px 0 0;
  border: 0;
  border-top: 1px solid #CFC9BC;
  border-radius: 0;
  background: transparent;
}
.mesh-note__icon { display: none; }
.mesh-note h3 { margin: 0; font-size: 18px; font-weight: 600; color: #111827; }
.mesh-note p { margin: 6px 0 0; font-size: 14.5px; line-height: 1.6; color: #5f6978; }
.mesh-note a { white-space: nowrap; color: #0058cc; font-size: 14px; font-weight: 600; text-decoration: none; }

.gallery-grid figure { isolation: isolate; }
.gallery-grid img { transition: transform .55s cubic-bezier(.16,1,.3,1); }
.gallery-grid figure:hover img { transform: scale(1.025); }
.gallery-grid figcaption { transition: padding .25s ease, background .25s ease; }
.gallery-grid figure:hover figcaption { padding-bottom: 17px !important; background: linear-gradient(to top, rgba(17,24,39,.72), transparent) !important; }

.phn-lightbox { animation: backdropIn .2s ease both; }
.phn-lightbox__panel {
  position: relative;
  width: min(1080px, 94vw);
  max-height: 86vh;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 16px;
  background: #090d12;
  box-shadow: 0 40px 100px -30px rgba(0,0,0,.85);
  animation: panelIn .4s cubic-bezier(.16,1,.3,1) both;
}
.phn-lightbox__media { min-height: 460px; }
.phn-lightbox__media img { width: 100%; height: min(78vh, 760px); object-fit: cover; display: block; }
.phn-lightbox__copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 72px clamp(24px, 4vw, 46px) clamp(24px, 4vw, 40px);
  color: #fff;
  background: linear-gradient(to top, rgba(5,9,14,.94), rgba(5,9,14,.72) 55%, transparent);
}
.phn-lightbox__eyebrow { color: #a9cfff; font: 600 10.5px/1.3 'Hanken Grotesk', system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.phn-lightbox__copy h2 { margin: 10px 0 0; max-width: 22ch; font-size: clamp(24px, 3vw, 38px); font-weight: 400; line-height: 1.08; letter-spacing: -.025em; }
.phn-lightbox__copy p { margin: 12px 0 0; max-width: 62ch; color: #d4d9df; font-size: 14.5px; line-height: 1.6; }
.phn-lightbox__copy a { margin-top: 20px; display: inline-flex; align-items: center; gap: 8px; padding: 11px 15px; border-radius: 9px; background: #006fff; color: white; text-decoration: none; font-size: 13.5px; font-weight: 600; }

.consent-note { margin: 0; font-size: 12.5px; line-height: 1.55; color: #636C7B; }
.consent-note a { color: #0058cc; }

.phn-legal-links { display: flex; flex-wrap: wrap; gap: 14px; }
.phn-legal-links a { color: #6b7280; text-decoration: none; }
.phn-legal-links a:hover { color: #006fff; }

.legal-page { color: #111827; }
.legal-wrap { max-width: 860px; margin: 0 auto; padding: 78px 24px 96px; }
.legal-wrap h1 { margin: 18px 0 0; font-size: clamp(38px, 5vw, 60px); font-weight: 300; letter-spacing: -.03em; line-height: 1.03; }
.legal-wrap .updated { margin-top: 16px; color: #636C7B; font: 600 11px/1.5 'Hanken Grotesk', system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.legal-wrap .legal-intro { margin: 24px 0 0; font-size: 18px; line-height: 1.7; color: #4b5563; }
.legal-copy { margin-top: 48px; padding: clamp(28px, 5vw, 54px); border: 1px solid #E4E0D7; border-radius: 18px; background: #FBFAF7; }
.legal-copy section + section { margin-top: 38px; padding-top: 38px; border-top: 1px solid #EAE7DE; }
.legal-copy h2 { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.015em; }
.legal-copy p, .legal-copy li { font-size: 15.5px; line-height: 1.7; color: #526071; }
.legal-copy p { margin: 13px 0 0; }
.legal-copy ul { margin: 14px 0 0; padding-left: 20px; }
.legal-copy a { color: #0058cc; }

@keyframes backdropIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes panelIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

@media (max-width: 760px) {
  .mesh-note { grid-template-columns: 1fr; }
  .mesh-note a { grid-column: 1; }
  .phn-lightbox__media { min-height: 360px; }
  .phn-lightbox__media img { height: min(78vh, 680px); }
  .phn-lightbox__copy p { max-height: none; }
}

@media (max-width: 560px) {
  .header-cta { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .gallery-grid img { transition: none; }
  .phn-lightbox, .phn-lightbox__panel { animation: none; }
}
