/**
 * ProScribe Custom Elementor Plugin Styles
 * Author: Anika Labs (anikalabs.com)
 * Matched to Figma Design & Frame 2.png
 */

/* ==========================================================================
   GLOBAL RESET & CONTAINER
   ========================================================================== */
html, body {
  margin: 0;
  padding: 0;
  background: #07090e;
}

/* Subtle, zero-risk smooth scroll (native browser behavior) for anchor jumps
   and programmatic scrollTo/scrollIntoView calls — safe replacement for
   Lenis, which conflicted with background-attachment:fixed on hero sections
   and broke scrolling entirely. This only smooths jumps, not continuous
   wheel/trackpad scrolling, so it can't cause that same failure mode. */
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* The header widget is position:fixed, so it contributes zero height to its
   Elementor ancestor chain (section > container > column > widget-wrap).
   That collapsed-but-not-quite-zero ancestor chain can still render its own
   default padding/background above the hero, producing a stray top bar.
   Zero it out completely since the header renders out-of-flow anyway. */
.elementor-top-section:has(> .elementor-container .proscribe-header-wrapper),
.elementor-top-section:has(> .elementor-container .proscribe-header-wrapper) .elementor-container,
.elementor-top-section:has(> .elementor-container .proscribe-header-wrapper) .elementor-column,
.elementor-top-section:has(> .elementor-container .proscribe-header-wrapper) .elementor-widget-wrap,
.elementor-top-section:has(> .elementor-container .proscribe-header-wrapper) .elementor-widget-container {
  min-height: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  overflow: visible !important;
}

.proscribe-container {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

.proscribe-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--proscribe-font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  padding: 16px 32px;
  border-radius: 4px;
  transition: var(--proscribe-transition);
  cursor: pointer;
}

.proscribe-btn--primary {
  background: linear-gradient(135deg, #b68f6e 0%, #ba997d 100%);
  color: #ffffff;
  border: 1px solid transparent;
  box-shadow: none;
}

.proscribe-btn--primary:hover {
  background: linear-gradient(135deg, #e5a167 0%, #ba997d 100%);
  border-color: transparent;
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: none;
}

.proscribe-btn--outline-pill {
  background: transparent;
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 9999px;
  padding: 10px 24px;
  font-size: 12px;
}

.proscribe-btn--outline-pill:hover {
  border-color: #ffffff;
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}

/* ==========================================================================
   WIDGET 1: HEADER & NAVIGATION
   ========================================================================== */
.proscribe-header-wrapper {
  position: fixed;
  top: -2px;
  left: 0;
  width: 100%;
  z-index: 100;
  padding: 26px 0 24px;
  background: transparent;
  border-bottom: 0;
  will-change: padding;
  transition: padding 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.proscribe-header-wrapper.proscribe-header--scrolled {
  padding: 12px 0;
}

.proscribe-header-container {
  transition:
    background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    backdrop-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    -webkit-backdrop-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    border-radius 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.proscribe-header-container {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.proscribe-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: #ffffff;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}

.proscribe-brand-emblem {
  color: #c29b62;
}

.proscribe-brand-name {
  display: flex;
  flex-direction: column;
}

.proscribe-brand-name .brand-title {
  font-family: var(--proscribe-font-serif);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.5px;
  line-height: 1;
}

.proscribe-brand-name .brand-tag {
  font-family: var(--proscribe-font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: #9ba1b0;
  margin-top: 2px;
}

.proscribe-nav-links {
  display: flex;
  gap: 32px;
}

.proscribe-nav-home { display: none; }

.proscribe-nav-links .nav-item {
  color: #d1d5db;
  text-decoration: none;
  font-family: var(--proscribe-font-sans);
  font-size: 14px;
  font-weight: 500;
  transition: color 0.2s ease;
}

.proscribe-nav-links .nav-item:hover {
  color: #c29b62;
}

/* ==========================================================================
   WIDGET 2: HERO SECTION
   ========================================================================== */
.proscribe-hero-section {
  position: relative;
  z-index: 0;
  min-height: 100vh;
  margin-top: -3px;
  display: flex;
  align-items: center;
  padding: 160px 0 100px;
  box-sizing: border-box;
}

/* Fixed-background parallax: the hero photo stays pinned to the viewport
   while the content and following sections scroll up and cover it. */
.proscribe-hero-bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
  background-color: #07090e;
  background-size: cover;
  background-position: right 30%;
  background-repeat: no-repeat;
}

.proscribe-hero-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(7,9,14,0.34);
}

@media (max-width: 1024px) {
  /* Fixed backgrounds are janky on touch — pin the image to its own section instead. */
  .proscribe-hero-bg {
    position: absolute;
    height: 100%;
  }
}

.proscribe-hero-content {
  max-width: 650px;
  position: relative;
  z-index: 2;
}

.proscribe-hero-title {
  font-family: var(--proscribe-font-serif);
  font-size: clamp(48px, 6vw, 84px);
  line-height: 1.1;
  font-weight: 400;
  color: #ffffff;
  margin: 0 0 28px;
}

.proscribe-hero-title .line-1 {
  display: block;
}

.proscribe-hero-title .line-2 {
  display: block;
  font-style: italic;
  color: #e2e8f0;
}

.proscribe-hero-desc {
  font-family: var(--proscribe-font-sans);
  font-size: clamp(16px, 1.8vw, 20px);
  line-height: 1.6;
  color: #a0aec0;
  margin: 0 0 40px;
}

/* ==========================================================================
   WIDGET 3: CASE ACCURACY & BENTO GALLERY (LIGHT SECTION)
   ========================================================================== */
.proscribe-accuracy-section {
  position: relative;
  z-index: 2;
  background-color: #edf2f7;
  padding: 120px 0;
  color: #1a202c;
  border-radius: 28px 28px 0 0;
  box-shadow: 0 -40px 60px -20px rgba(7,9,14,0.35);
}

.proscribe-split-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 60px;
  align-items: center;
}

.proscribe-section-title {
  font-family: var(--proscribe-font-serif);
  font-size: clamp(38px, 4.5vw, 64px);
  line-height: 1.15;
  font-weight: 500;
  color: #0f172a;
  margin: 0 0 28px;
}

.proscribe-section-title.dark {
  color: #ffffff;
}

.proscribe-title-accent {
  color: #3b6b88;
  font-style: italic;
}

.proscribe-lead-p {
  font-family: var(--proscribe-font-sans);
  font-size: 19px;
  line-height: 1.7;
  color: #334155;
  margin-bottom: 20px;
}

.proscribe-body-p {
  font-family: var(--proscribe-font-sans);
  font-size: 16px;
  line-height: 1.7;
  color: #94a3b8;
  margin-bottom: 36px;
}

.proscribe-bento-gallery {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: auto auto;
  gap: 16px;
}

.bento-main-img img,
.bento-main-img video,
.bento-sub-img-1 img,
.bento-sub-img-2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px !important;
  display: block;
}

.bento-main-img {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}

.bento-icon-box {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  background-color: #1e3a5f;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  color: #ffffff;
}

.bento-icon-box .bento-badge-inner {
  display: flex;
  align-items: center;
  justify-content: center;
}

.bento-icon-box img {
  width: 34px;
  height: 34px;
  filter: brightness(0) invert(1);
}

.bento-sub-img-1 {
  grid-column: 1 / 2;
}

.bento-sub-img-2 {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
}

/* ==========================================================================
   WIDGET 4: PROFESSIONAL SERVICES (6-CARD DARK GRID)
   ========================================================================== */
.proscribe-services-section {
  background-color: #07090e;
  padding: 120px 0;
}

.proscribe-services-header {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 40px;
  margin-bottom: 60px;
  align-items: center;
}

.proscribe-header-subtext {
  font-family: var(--proscribe-font-sans);
  font-size: 16px;
  line-height: 1.7;
  color: #D7CEB8;
  margin: 0 0 0 auto;
  max-width: 460px;
  text-align: right;
}

.proscribe-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.proscribe-service-card {
  background: #111622;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}

.service-card-icon {
  width: 52px;
  height: 52px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 28px;
}

.service-card-title {
  font-family: var(--proscribe-font-sans);
  font-size: 22px;
  font-weight: 600;
  color: #F5EBE0;
  margin: 0 0 16px;
}

.service-card-desc {
  font-family: var(--proscribe-font-sans);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.7;
  color: #94a3b8;
  margin: 0 0 28px;
  flex-grow: 1;
}

.service-card-link {
  font-family: var(--proscribe-font-mono);
  font-size: 12px;
  letter-spacing: 1.5px;
  font-weight: 600;
  color: #94a3b8;
  text-decoration: none;
  transition: color 0.2s;
}

.service-card-link:hover {
  color: #f5ebe0;
}

/* ==========================================================================
   WIDGET 5: TRIAL SUPPORT BANNER
   ========================================================================== */
.proscribe-trial-banner-section {
  min-height: 780px;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center 20%;
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}

.proscribe-trial-banner-video-el {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.proscribe-trial-banner-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.proscribe-trial-banner-video .proscribe-container {
  position: relative;
  z-index: 2;
}

.proscribe-trial-banner-content {
  max-width: 650px;
}

.proscribe-trial-title {
  font-family: var(--proscribe-font-serif);
  font-size: clamp(36px, 4vw, 54px);
  color: #ffffff;
  line-height: 1.2;
  margin: 0 0 18px;
}

.proscribe-trial-desc {
  font-family: var(--proscribe-font-sans);
  font-size: 17px;
  line-height: 1.7;
  color: #cbd5e1;
  margin: 0;
}

/* ==========================================================================
   WIDGET 6: TESTIMONIALS (LIGHT SECTION)
   ========================================================================== */
.proscribe-testimonials-section {
  background-color: #edf2f7;
  padding: 120px 0;
}

.proscribe-center-header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 60px;
}

.proscribe-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.proscribe-testimonial-card {
  background: #ffffff;
  border-radius: 8px;
  padding: 40px 32px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
}

.testimonial-stars {
  color: #c29b62;
  font-size: 22px;
  margin-bottom: 20px;
  letter-spacing: 1px;
}

.testimonial-quote {
  font-family: var(--proscribe-font-sans);
  font-size: 16px;
  line-height: 1.7;
  color: #475569;
  margin: 0 0 28px;
  flex-grow: 1;
}

.author-name {
  font-family: var(--proscribe-font-sans);
  font-size: 17px;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 4px;
}

.author-role {
  font-family: var(--proscribe-font-sans);
  font-size: 14px;
  color: #94a3b8;
}

/* ==========================================================================
   WIDGET 7: DEPOSITION SCHEDULE CTA
   ========================================================================== */
.proscribe-schedule-cta-section {
  min-height: 480px;
  display: flex;
  align-items: center;
  background-color: var(--proscribe-ink);
  background-size: cover;
  background-position: center;
  padding: 80px 0;
}

.proscribe-schedule-box {
  max-width: 600px;
}

.proscribe-schedule-title {
  font-family: var(--proscribe-font-serif);
  font-size: clamp(36px, 4vw, 56px);
  line-height: 1.15;
  color: #ffffff;
  margin: 0 0 20px;
}

.proscribe-schedule-desc {
  font-family: var(--proscribe-font-sans);
  font-size: 17px;
  line-height: 1.7;
  color: #cbd5e1;
  margin: 0 0 36px;
}

/* ==========================================================================
   WIDGET 8: FOOTER
   ========================================================================== */
.proscribe-footer-section {
  background-color: var(--proscribe-ink);
  padding: 80px 0 40px;
  color: #94a3b8;
}

.proscribe-footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 60px;
}

.footer-logo-img {
  display: block;
  width: 240px;
  height: auto;
  margin: 0 0 18px;
}

.footer-brand-text {
  font-family: var(--proscribe-font-sans);
  font-size: 14px;
  line-height: 1.7;
  color: #94a3b8;
  max-width: 320px;
}

.footer-col-title {
  font-family: var(--proscribe-font-sans);
  font-size: 16px;
  font-weight: 600;
  color: #ffffff;
  margin: 0 0 20px;
}

.footer-contact-item {
  font-family: var(--proscribe-font-sans);
  font-size: 14px;
  line-height: 1.6;
  color: #94a3b8;
  margin-bottom: 12px;
}

.footer-contact-item a {
  color: #ba997d;
  text-decoration: none;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links li {
  margin-bottom: 10px;
}

.footer-links a {
  color: #94a3b8;
  text-decoration: none;
  font-size: 14px;
  transition: color 0.2s;
}

.footer-links a:hover {
  color: #ffffff;
}

.proscribe-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  color: #94a3b8;
}

.proscribe-footer-bottom a {
  color: #c29b62;
  text-decoration: none;
}

/* ==========================================================================
   RESPONSIVE BREAKPOINTS
   ========================================================================== */
@media (max-width: 1024px) {
  .proscribe-split-grid {
    grid-template-columns: 1fr;
  }
  .proscribe-services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .proscribe-testimonials-grid {
    grid-template-columns: 1fr;
  }
  .proscribe-footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .proscribe-nav-links {
    display: none;
  }
  .proscribe-services-grid {
    grid-template-columns: 1fr;
  }
  .proscribe-services-header {
    grid-template-columns: 1fr;
  }
  .proscribe-footer-grid {
    grid-template-columns: 1fr;
  }
  .proscribe-footer-bottom {
    flex-direction: column;
    gap: 16px;
    text-align: center;
  }
}

/* Figma composition overrides: full-bleed roots with one intentional inner width. */
.elementor-section:has(.proscribe-accuracy-section), .elementor-section:has(.proscribe-services-section), .elementor-section:has(.proscribe-trial-banner-section), .elementor-section:has(.proscribe-case-standard-section), .elementor-section:has(.proscribe-standard-section), .elementor-section:has(.proscribe-testimonials-section), .elementor-section:has(.proscribe-schedule-cta-section), .elementor-section:has(.proscribe-footer-section) { width:100%; overflow:hidden; }
/* Hero's fixed-position background must not be clipped by an overflow:hidden ancestor. */
.elementor-section:has(.proscribe-hero-section) { width:100%; overflow:visible; }
.elementor-section:has(.proscribe-container) > .elementor-container { max-width:none !important; width:100% !important; }
.elementor-section:has(.proscribe-container) .elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding:0 !important; }
.proscribe-container, .proscribe-header-container { width:var(--proscribe-content); max-width:none; padding:0; }
.proscribe-btn { border-radius:5px; padding:16px 30px; font-family:var(--proscribe-font-sans); font-size:15px; font-weight:600; letter-spacing:0.3px; text-transform:none; }
.proscribe-btn--primary { background:linear-gradient(135deg, #b68f6e 0%, #ba997d 100%); border-color:transparent; }
.proscribe-header-wrapper { padding:20px 0; border:0; }
.proscribe-header-container { height:76px; padding:0 18px; background:var(--proscribe-ink); border-radius:7px; }
.proscribe-brand-name .brand-title { color:#e8d0a3; font-size:25px; }
.proscribe-brand-name .brand-tag { color:#b3cbd2; }
.proscribe-nav-links { gap:28px; margin-left:auto; }
.proscribe-nav-links .nav-item { color:#b3cbd2; font-size:15px; }
.proscribe-header-cta { margin-left:36px; }
.proscribe-btn--outline-pill { border:1px solid #e8d0a3; color:#f7e7c4; border-radius:5px; padding:12px 18px; }
.proscribe-hero-section { min-height:800px; padding:185px 0 80px; }
/* Align hero copy with the header's own inner inset (logo sits 18px in from
   the bar edge; the hero text grid should start at the same x-position). */
.proscribe-hero-section .proscribe-container { padding-left:18px; }
@media (min-width:1500px) { .proscribe-hero-section { min-height:880px; } .proscribe-hero-bg { background-position:right 50%; } }
@media (min-width:1800px) { .proscribe-hero-section { min-height:940px; } .proscribe-hero-bg { background-position:right 58%; } }
.proscribe-hero-content { max-width:680px; }
.proscribe-hero-title { font-size:clamp(40px,4vw,70px); line-height:1.04; color:var(--proscribe-cream); margin-bottom:30px; }
.proscribe-hero-title .line-2 { color:var(--proscribe-cream); font-style:normal; }
.proscribe-hero-desc { font-size:20px; line-height:1.65; color:#fff; max-width:630px; margin-bottom:36px; }
/* Case Accuracy section — matched to Figma proportions */
.proscribe-accuracy-section { background:var(--proscribe-powder-light); padding:92px 0 84px; overflow:visible; }
.proscribe-split-grid { grid-template-columns:1fr 44%; gap:48px; align-items:center; }
.proscribe-section-title { font-size:clamp(36px,3.3vw,50px); line-height:1.08; letter-spacing:-0.01em; color:#383b45; margin-bottom:20px; }
.proscribe-title-accent { color:#5b7a92; font-style:normal; }
.proscribe-lead-p, .proscribe-body-p { font-size:19px; line-height:1.7; color:#405365; max-width:none; margin-bottom:20px; }
.proscribe-split-text .proscribe-action-wrap { margin-top:28px; }
.proscribe-bento-gallery { grid-template-columns:repeat(12,1fr); grid-template-rows:auto auto; gap:12px; width:100%; max-width:620px; margin-left:auto; align-content:center; }
.bento-main-img { grid-column:1 / 10; grid-row:1 / 2; aspect-ratio:268 / 180; }
.bento-icon-box { grid-column:10 / 13; grid-row:1 / 2; align-self:end; aspect-ratio:1 / 1; min-height:0; border-radius:10px; background:#526878; }
.bento-sub-img-1 { grid-column:1 / 5; grid-row:2 / 3; aspect-ratio:129 / 115; align-self:start; }
.bento-sub-img-2 { grid-column:5 / 13; grid-row:2 / 3; aspect-ratio:226 / 163; }
.proscribe-services-section { background:var(--proscribe-ink); padding:100px 0 110px; }
.proscribe-services-header { margin-bottom:46px; }.proscribe-section-title.dark { color:#cac0a0; }
.proscribe-header-subtext { color:#c1d0d5; font-size:16px; max-width:460px; width:auto; margin-left:auto; }
.proscribe-services-grid { gap:12px; }.proscribe-service-card { background:#546776; border:0; border-radius:10px; padding:40px 28px; min-height:320px; }
.service-card-icon { background:rgba(15,22,34,0.55); border-radius:10px; width:52px; height:52px; margin-bottom:30px; }.service-card-title { font-size:18px; margin-bottom:12px; }.service-card-desc { font-size:17px; line-height:1.65; color:#edf2f5; }.service-card-link { color:#f5ebe0; font-size:12px; letter-spacing:2.2px; font-weight:600; }
.proscribe-trial-banner-section { min-height:780px; padding:70px 0; }.proscribe-trial-banner-content { max-width:570px; }.proscribe-trial-title { color:#ffffff; font:400 55px/59px "Season Serif TRIAL","The Seasons","Cormorant Garamond",Georgia,serif; }.proscribe-trial-desc { font-size:17px; }
.proscribe-case-standard-section { background:var(--proscribe-powder-light); padding:90px 0 90px; }.proscribe-case-standard-grid { display:grid; grid-template-columns:1.15fr .85fr; align-items:start; gap:90px; }.proscribe-case-standard-copy { align-self:center; padding-bottom:0; }.proscribe-case-standard-copy h2 { margin:0 0 28px; color:rgb(56,59,69); font:400 50px/54px "Season Serif TRIAL","The Seasons","Cormorant Garamond",Georgia,serif; }.proscribe-case-standard-copy h2 span { color:#5b7a92; }.proscribe-case-standard-copy p { max-width:680px; color:#405365; font-family:var(--proscribe-font-sans); font-weight:400; font-size:19px; line-height:32px; margin:0 0 20px; }.proscribe-case-standard-copy .proscribe-btn { margin-top:10px; }.proscribe-case-standard-image { position:relative; align-self:end; height:590px; overflow:visible; border-radius:10px; }.proscribe-case-standard-image-inner { width:100%; height:100%; overflow:hidden; border-radius:10px; }.proscribe-case-standard-image-inner img { width:100%; height:100%; object-fit:cover; object-position:center 22%; display:block; }
.proscribe-case-badge { position:absolute; right:24px; bottom:26px; width:158px; height:158px; border-radius:50%; background:var(--proscribe-ink); box-shadow:0 14px 34px rgba(12,22,36,.32); display:grid; place-items:center; z-index:2; }
.proscribe-badge-ring { position:absolute; inset:0; width:100%; height:100%; animation:proscribe-badge-spin 18s linear infinite; }
.proscribe-badge-ring text { fill:#f4f0e6; font-family:var(--proscribe-font-sans); font-size:15.5px; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; }
.proscribe-badge-logo { position:relative; width:60px; height:60px; object-fit:contain; z-index:1; }
@keyframes proscribe-badge-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .proscribe-badge-ring { animation:none; } }
.proscribe-standard-section { background:var(--proscribe-ink); padding:72px 0 105px; }.proscribe-stats { position:relative; display:grid; grid-template-columns:repeat(4,1fr); background:transparent; margin-top:56px; border-top:1px solid rgba(107,131,158,0.3); border-bottom:1px solid rgba(107,131,158,0.3); }.proscribe-stats::before,.proscribe-stats::after { content:""; position:absolute; top:-16px; bottom:-16px; width:1px; background:rgba(107,131,158,0.3); }.proscribe-stats::before { left:0; }.proscribe-stats::after { right:0; }
.proscribe-stats > div:first-child { position:relative; }.proscribe-stats > div:first-child::before,.proscribe-stats > div:first-child::after { content:""; position:absolute; left:-16px; width:16px; height:1px; background:rgba(107,131,158,0.3); }.proscribe-stats > div:first-child::before { top:-1px; }.proscribe-stats > div:first-child::after { bottom:-1px; }
.proscribe-stats > div:last-child { position:relative; }.proscribe-stats > div:last-child::before,.proscribe-stats > div:last-child::after { content:""; position:absolute; right:-16px; width:16px; height:1px; background:rgba(107,131,158,0.3); }.proscribe-stats > div:last-child::before { top:-1px; }.proscribe-stats > div:last-child::after { bottom:-1px; }.proscribe-stats div { border-right:1px solid rgba(107,131,158,0.3); padding:40px 34px; }.proscribe-stats div:last-child { border-right:0; }.proscribe-stats strong { display:block; margin-bottom:12px; color:#2f4a68; font:400 clamp(52px,4.4vw,64px)/1 var(--proscribe-font-serif); letter-spacing:-.5px; }.proscribe-stats span { color:#5d7080; font-family:var(--proscribe-font-sans); font-size:17px; letter-spacing:.2px; }
.proscribe-process-heading { text-align:center; max-width:620px; margin:0 auto 42px; }.proscribe-process-heading h2 { margin:0 0 12px; color:#cac0a0; font:400 50px/54px "Season Serif TRIAL","The Seasons","Cormorant Garamond",Georgia,serif; }.proscribe-process-heading p { margin:0; color:rgb(193,208,213); font:400 16px/27px Archivo,"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.proscribe-process-layout { display:grid; grid-template-columns: .72fr 1.28fr; gap:12px; align-items:stretch; }.proscribe-process-image { position:relative; min-height:760px; overflow:hidden; border-radius:10px; }.proscribe-process-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }.proscribe-process-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }.proscribe-process-card { background:#546776; padding:60px 28px; border-radius:10px; display:flex; flex-direction:column; justify-content:center; }.proscribe-process-card img { width:40px; height:40px; margin-bottom:28px; }.proscribe-process-card h3 { color:rgb(245,235,224); font:600 18px/22px Archivo,"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:0 0 12px; }.proscribe-process-card p { color:#edf2f5; font-family:var(--proscribe-font-sans); font-weight:400; font-size:17px; line-height:28px; margin:0; }
.proscribe-testimonials-section { background:var(--proscribe-powder); padding:100px 0; }.proscribe-center-header { margin-bottom:42px; }.proscribe-testimonials-section .proscribe-section-title { color:rgb(56,59,69); font:400 50px/54px "Season Serif TRIAL","The Seasons","Cormorant Garamond",Georgia,serif; }.proscribe-testimonial-card { box-shadow:none; border-radius:16px; padding:56px 32px; min-height:400px; justify-content:center; }.testimonial-quote { font-size:17px; line-height:1.6; }.author-name { font-size:18px; }.author-role { font-size:14px; }
.proscribe-schedule-cta-section { min-height:660px; }.proscribe-schedule-box { max-width:820px; }.proscribe-schedule-title { color:#ffffff; font:400 55px/59px "Season Serif TRIAL","The Seasons","Cormorant Garamond",Georgia,serif; }.proscribe-schedule-desc { font-size:17px; line-height:29px; max-width:540px; }.proscribe-footer-bottom .copyright-text { max-width:900px; font-size:14px; line-height:1.6; }
.proscribe-footer-section { background:var(--proscribe-ink); padding:75px 0 32px; }
@media (max-width: 1024px) { :root { --proscribe-content:min(calc(100% - 64px), 960px); } .proscribe-header-container { height:68px; }.proscribe-nav-links { gap:15px; }.proscribe-split-grid { gap:42px; }.proscribe-services-grid { grid-template-columns:repeat(2,1fr); }.proscribe-case-standard-grid { gap:45px; }.proscribe-case-standard-image { height:520px; }.proscribe-stats { padding:26px 0; }.proscribe-process-layout { grid-template-columns:1fr; }.proscribe-process-image { height:380px; }.proscribe-process-grid { min-height:420px; }.proscribe-stats div { padding:32px 24px; } }
@media (max-width: 768px) { :root { --proscribe-content:calc(100% - 40px); } .proscribe-header-wrapper { padding:12px 0; }.proscribe-header-container { height:60px; padding:0 14px; }.proscribe-brand-name .brand-title { font-size:21px; }.proscribe-header-cta .proscribe-btn { padding:10px 11px; font-size:11px; }.proscribe-header-cta { margin-left:auto; }.proscribe-hero-section { display:block; position:relative; min-height:0; height:auto; padding:0; overflow:hidden; }.proscribe-hero-content { margin:0; position:absolute; left:0; right:0; bottom:44px; padding:0 14px; z-index:2; }.proscribe-hero-title,.proscribe-hero-desc { text-shadow:0 2px 10px rgba(0,0,0,0.45); }.proscribe-hero-section .proscribe-container { padding-left:14px; position:static; }.proscribe-hero-bg { background-image:url('../images/hero-bg-mobile.png') !important; background-position:center 30px; position:relative !important; height:680px !important; width:100%; }.proscribe-hero-title { font-size:48px; }.proscribe-hero-desc { font-size:15px; }.proscribe-accuracy-section,.proscribe-services-section,.proscribe-testimonials-section { padding:44px 0; }.proscribe-accuracy-section { padding-top:24px; padding-bottom:32px; }.proscribe-split-grid { grid-template-columns:1fr; gap:35px; }.proscribe-section-title { font-size:40px; }.proscribe-bento-gallery { grid-template-rows:auto auto; margin:0 auto; max-width:520px; }.proscribe-services-grid,.proscribe-process-grid { grid-template-columns:1fr; }.proscribe-service-card { min-height:0; padding:34px 20px; }.proscribe-trial-banner-section { min-height:540px; }.proscribe-case-standard-section { padding-top:28px; padding-bottom:56px; }.proscribe-case-standard-grid { grid-template-columns:1fr; gap:25px; }.proscribe-stats { margin-top:28px; }.proscribe-case-standard-copy { padding-bottom:0; }.proscribe-case-standard-copy h2 { font-size:43px; }.proscribe-case-standard-image { height:430px; }.proscribe-case-badge { width:118px; height:118px; right:16px; bottom:16px; }.proscribe-badge-ring text { font-size:15px; letter-spacing:1.6px; }.proscribe-badge-logo { width:44px; height:44px; }.proscribe-stats { grid-template-columns:repeat(2,1fr); }.proscribe-stats div { padding:28px 20px; }.proscribe-stats div:nth-child(2),.proscribe-stats div:last-child { border-right:0; }.proscribe-stats div:nth-child(3),.proscribe-stats div:nth-child(4) { border-top:1px solid rgba(107,131,158,0.3); }.proscribe-process-heading { margin:65px auto 30px; }.proscribe-process-image { height:310px; min-height:0; }.proscribe-process-card { padding:24px; }.proscribe-standard-section { padding-bottom:48px; }.proscribe-testimonials-grid { grid-template-columns:1fr; }.proscribe-center-header { text-align:left; margin-left:0; margin-right:0; }.proscribe-testimonial-card { align-items:flex-start; text-align:left; }.testimonial-stars { text-align:left; }.proscribe-schedule-cta-section { min-height:500px !important; align-items:flex-end !important; padding:0 0 60px !important; background-image:linear-gradient(to top, rgba(7,9,14,0.9) 0%, rgba(7,9,14,0.55) 40%, rgba(7,9,14,0.15) 75%), url('../images/schedule-cta-mobile.png') !important; background-size:cover !important; background-position:center !important; }.proscribe-inner-cta { background-image:linear-gradient(to top, rgba(9,18,30,0.85) 0%, rgba(9,18,30,0.5) 40%, rgba(9,18,30,0.15) 75%), url('../images/schedule-cta-mobile.png') !important; background-size:cover !important; background-position:center !important; min-height:500px !important; align-items:flex-end !important; padding:0 0 60px !important; }.proscribe-footer-grid { grid-template-columns:1fr 1fr; gap:30px; } }

/* Interior page system */
.proscribe-inner-page { background:#f4f7f8; color:#263747; min-height:100vh; }.proscribe-inner-nav { position:fixed; top:0; left:0; width:100%; inset:0 0 auto; z-index:100; padding:20px 0; }.proscribe-inner-nav nav { display:flex; gap:28px; margin-left:auto; }.proscribe-inner-nav nav a { color:#b3cbd2; font-size:13px; text-decoration:none; }.proscribe-inner-hero { min-height:600px; display:flex; align-items:end; padding:180px 0 95px; background:linear-gradient(72deg,rgba(8,17,29,.95),rgba(15,25,39,.67)),url('../images/trial-support-2.png') center/cover; }.proscribe-inner-hero span { color:#d4b18c; font-size:13px; letter-spacing:2px; text-transform:uppercase; }.proscribe-inner-hero h1 { max-width:870px; margin:18px 0 24px; color:var(--proscribe-cream); font:400 clamp(54px,6vw,90px)/.98 var(--proscribe-font-serif); }.proscribe-inner-hero p { max-width:720px; margin:0; color:#d8e2e6; font-size:18px; line-height:1.7; }.proscribe-inner-content { background:var(--proscribe-powder-light); padding:105px 0; }.proscribe-inner-intro { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; margin-bottom:60px; }.proscribe-inner-intro h2 { margin:0; color:#383b45; font:400 clamp(42px,4vw,64px)/1.05 var(--proscribe-font-serif); }.proscribe-inner-intro p { color:#405365; font-size:16px; line-height:1.8; }.proscribe-inner-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.proscribe-inner-cards article { min-height:250px; display:flex; flex-direction:column; padding:34px; background:#546776; color:#f5ebe0; }.proscribe-inner-cards h3 { margin:0 0 17px; font-size:20px; }.proscribe-inner-cards p { color:#e1ebed; line-height:1.7; font-size:14px; }.proscribe-inner-cards a { margin-top:auto; color:#eed4b9; font-size:11px; letter-spacing:1px; text-transform:uppercase; }.proscribe-request-form { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:40px; background:#fff; }.proscribe-request-form label { color:#405365; font-size:13px; }.proscribe-request-form input,.proscribe-request-form textarea { margin-top:8px; border:1px solid #afc0ca; background:#f6f9fa; }.proscribe-request-form .wide { grid-column:1/-1; }.proscribe-request-form button { justify-self:start; }.proscribe-inner-cta { min-height:660px; display:flex; align-items:center; padding:95px 0; color:white; background:linear-gradient(80deg,rgba(9,18,30,.62),rgba(9,18,30,.22)),url('../images/panorama-schedule-bg.png') center/cover; }.proscribe-inner-cta h2 { margin:0 0 14px; color:var(--proscribe-cream); font:400 clamp(44px,4vw,64px)/1 var(--proscribe-font-serif); }.proscribe-inner-cta p { margin:0 0 28px; color:#d8e2e6; font-size:18px; line-height:1.7; }.proscribe-inner-footer { padding:65px 0; background:var(--proscribe-ink); color:#b3cbd2; }.proscribe-inner-footer .proscribe-container { display:flex; justify-content:space-between; }.proscribe-inner-footer strong { color:#e8d0a3; font-family:var(--proscribe-font-serif); font-size:24px; }.proscribe-inner-footer p { font-size:13px; }.proscribe-inner-footer a { color:#b3cbd2; margin-left:25px; font-size:13px; }
/* Schedule CTA duplicated inside the mobile hamburger menu — hidden on
   desktop by default, shown only inside the mobile media queries below.
   !important guarantees this wins over the .proscribe-btn base rule and
   the unscoped "emergency hardening" block regardless of source order. */
.proscribe-nav-cta-mobile { display: none !important; }

/* Inner-page mobile navigation menu */
.proscribe-nav-toggle {
  display: none !important;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  padding: 0;
}
@media(max-width:900px){
  .proscribe-nav-toggle{
    display:inline-flex; flex-direction:column; justify-content:center; gap:5px;
    width:44px; height:44px; margin-left:14px; padding:10px;
    background:transparent; border:1px solid rgba(211,181,140,.5); border-radius:7px;
    cursor:pointer; order:3; position:relative; z-index:1001;
  }
  .proscribe-nav-toggle span{ display:block; height:2px; width:100%; background:#e8d0a3; border-radius:2px; transition:transform .28s ease, opacity .2s ease; }
  .proscribe-inner-nav.is-open .proscribe-nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .proscribe-inner-nav.is-open .proscribe-nav-toggle span:nth-child(2){ opacity:0; }
  .proscribe-inner-nav.is-open .proscribe-nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  /* Fullscreen mobile menu — the nav becomes an independent fixed panel
     pinned to the top of the viewport, NOT an inline row expanding inside
     the small header pill. This removes the whole class of overlap bugs
     that came from fighting the desktop dropdown's position:absolute
     inside a cramped, auto-growing flex row. The Schedule button moves
     inside the panel; the top-bar copy is hidden on mobile. Every rule
     carries !important + is doubly scoped (selector AND body.proscribe-nav-open)
     so it cannot lose to the unscoped desktop "hardening" block, regardless
     of source order or caching. */
  .proscribe-inner-nav .proscribe-header-container{ position:relative; z-index:1001; }
  .proscribe-inner-nav .proscribe-header-container > .proscribe-btn{ display:none !important; }

  body.proscribe-nav-open{ overflow:hidden !important; }

  .proscribe-inner-nav nav{
    display:flex !important; flex-direction:column !important; align-items:stretch !important;
    gap:0 !important; margin:0 !important; position:fixed !important; z-index:999;
    top:0 !important; left:0 !important; right:0 !important; bottom:0 !important;
    width:100% !important; height:100dvh !important; height:100vh !important;
    padding:96px 0 56px !important; overflow-y:auto !important;
    background:rgba(9,16,27,.98) !important; border-radius:0 !important;
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .28s ease, visibility .28s ease;
  }
  .proscribe-inner-nav.is-open nav{ opacity:1 !important; visibility:visible !important; pointer-events:auto !important; }
  .proscribe-inner-nav nav > a{ display:block !important; padding:16px 28px !important; font-size:17px !important; border-bottom:1px solid rgba(255,255,255,.07); }
  .proscribe-nav-cta-mobile{
    display:block !important; margin:28px 28px 12px !important; padding:17px !important;
    text-align:center; border:0 !important; border-radius:6px;
    background:linear-gradient(135deg, #b68f6e 0%, #ba997d 100%) !important; color:#fff !important; font-weight:700 !important;
    font-size:15px !important;
  }
  body.proscribe-nav-open .proscribe-inner-nav .proscribe-nav-dropdown{ display:block !important; position:static !important; width:100%; min-height:0 !important; }
  body.proscribe-nav-open .proscribe-inner-nav .proscribe-nav-dropdown > a{ display:block !important; padding:16px 28px !important; font-weight:600; border-bottom:0 !important; }
  body.proscribe-nav-open .proscribe-inner-nav .proscribe-dropdown-menu{
    display:block !important; position:static !important; width:100% !important;
    min-width:0 !important; max-width:none !important; transform:none !important;
    opacity:1 !important; visibility:visible !important; pointer-events:auto !important;
    background:transparent !important; border:0 !important; box-shadow:none !important;
    backdrop-filter:none !important; padding:0 !important;
    border-bottom:1px solid rgba(255,255,255,.07);
  }
  body.proscribe-nav-open .proscribe-inner-nav .proscribe-dropdown-menu a{ display:block !important; padding:14px 28px 14px 44px !important; font-size:14px !important; color:#9fb6be !important; border-bottom:0 !important; }
}
@media(max-width:768px){.proscribe-inner-nav .proscribe-btn{font-size:11px;padding:11px 12px}.proscribe-inner-hero{min-height:560px;padding:150px 0 70px}.proscribe-inner-hero h1{font-size:52px}.proscribe-inner-hero p{font-size:16px}.proscribe-inner-content{padding:28px 0 70px}.proscribe-inner-intro{grid-template-columns:1fr;gap:20px}.proscribe-inner-cards{grid-template-columns:1fr}.proscribe-request-form{grid-template-columns:1fr;padding:24px}.proscribe-request-form .wide{grid-column:auto}.proscribe-inner-footer .proscribe-container{display:block}.proscribe-inner-footer a{margin:0 18px 0 0}}

/* Differentiated interior pages */
.ps-page { background: var(--proscribe-powder-light); }
.ps-page-hero { min-height: 620px; display: flex; align-items: flex-end; padding: 180px 0 92px; background-size: cover; background-position: center; }
.ps-page-hero--services { background-position: center 44%; }
.ps-page-hero--schedule { background-position: 58% center; }
.ps-page-hero--resources { background-position: center 30%; }
.ps-page-hero span, .ps-kicker { display: inline-block; color: #b68f6e; font: 700 12px/1 var(--proscribe-font-sans); letter-spacing: 1.8px; text-transform: uppercase; }
.ps-page-hero h1 { max-width: 920px; margin: 18px 0 24px; color: var(--proscribe-cream); font: 400 clamp(52px, 5.6vw, 88px)/.98 var(--proscribe-font-serif); }
.ps-page-hero p { max-width: 740px; margin: 0; color: #d8e2e6; font-size: 18px; line-height: 1.7; }
.ps-section-heading { max-width: 760px; margin-bottom: 42px; }
.ps-section-heading.centered { margin-left: auto; margin-right: auto; text-align: center; }
.ps-section-heading h2, .ps-story-grid h2, .ps-command-grid h2, .ps-schedule-panel h2, .ps-contact-form-panel h2, .ps-faq-grid h2 { margin: 14px 0 0; color: #383b45; font: 400 clamp(40px, 4vw, 64px)/1.05 var(--proscribe-font-serif); }
.ps-section-heading p, .ps-story-copy p, .ps-command-grid p, .ps-band-row p { color: #405365; font-size: 16px; line-height: 1.75; }
.ps-about-story { padding: 105px 0; background: var(--proscribe-powder-light); }
.ps-story-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: start; }
.ps-story-copy { border-left: 1px solid #afc0ca; padding-left: 42px; }
.ps-principles-band, .ps-trial-command, .ps-faq-band { padding: 105px 0; background: var(--proscribe-ink); color: #d8e2e6; }
.ps-principles-band .ps-section-heading h2, .ps-trial-command h2, .ps-faq-grid h2 { color: #cac0a0; }
.ps-principle-grid, .ps-resource-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ps-detail-card { min-height: 260px; padding: 32px; background: #546776; color: #f5ebe0; }
.ps-resource-grid .ps-detail-card { background: #fff; color: #263747; box-shadow: 0 18px 45px rgba(7, 18, 31, .07); }
.ps-detail-card span { color: #d7b48d; font: 700 12px var(--proscribe-font-sans); letter-spacing: 1.4px; text-transform: uppercase; }
.ps-detail-card h3 { margin: 24px 0 13px; color: inherit; font-size: 20px; }
.ps-detail-card p { margin: 0; color: #e1ebed; font-size: 14px; line-height: 1.7; }
.ps-resource-grid .ps-detail-card p { color: #536778; }
.ps-proof-strip { background: var(--proscribe-powder); padding: 42px 0; }
.ps-proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.ps-proof-grid div { padding: 0 28px; border-right: 1px solid #b7c7d0; }
.ps-proof-grid div:last-child { border: 0; }
.ps-proof-grid strong { display: block; color: #587a98; font: 500 34px var(--proscribe-font-sans); }
.ps-proof-grid span { color: #5d7080; font-size: 12px; }
.ps-service-hub, .ps-resource-library, .ps-contact-layout, .ps-schedule-layout { padding: 105px 0; background: var(--proscribe-powder-light); }
.ps-service-directory { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ps-service-directory article { min-height: 310px; padding: 32px; background: #fff; border-top: 5px solid #b68f6e; display: flex; flex-direction: column; }
.ps-service-directory span { color: #587a98; font-size: 13px; font-weight: 700; }
.ps-service-directory h3 { margin: 34px 0 14px; color: #263747; font-size: 22px; }
.ps-service-directory p { color: #536778; line-height: 1.7; font-size: 14px; }
.ps-service-directory a { margin-top: auto; color: #9b7456; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; }
.ps-service-detail-bands { padding: 95px 0 110px; background: var(--proscribe-ink); }
.ps-band-row { display: grid; grid-template-columns: .95fr 1.05fr; gap: 70px; align-items: center; padding: 42px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.ps-band-row.flipped img { order: 2; }
.ps-band-row img { width: 100%; height: 360px; object-fit: cover; }
.ps-band-row h2 { margin: 14px 0 18px; color: #cac0a0; font: 400 clamp(36px, 3.5vw, 56px)/1.05 var(--proscribe-font-serif); }
.ps-band-row p { color: #d8e2e6; }
.ps-command-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; }
.ps-command-grid p { color: #d8e2e6; }
.ps-command-panel { display: grid; gap: 12px; }
.ps-command-panel div { display: grid; grid-template-columns: 140px 1fr; gap: 24px; padding: 28px; background: #546776; }
.ps-command-panel strong { color: #f5ebe0; font-size: 22px; }
.ps-command-panel span { color: #e1ebed; line-height: 1.65; }
.ps-trial-lanes { padding: 105px 0; background: var(--proscribe-powder-light); }
.ps-trial-lanes .proscribe-container { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.ps-lane { padding: 36px; min-height: 230px; background: #fff; border-left: 5px solid #546776; }
.ps-lane span { color: #b68f6e; font-size: 13px; font-weight: 700; }
.ps-lane h3 { margin: 28px 0 12px; color: #263747; font-size: 22px; }
.ps-lane p { color: #536778; line-height: 1.7; margin: 0; }
.ps-schedule-grid, .ps-contact-grid, .ps-faq-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 65px; align-items: start; }
.ps-schedule-panel, .ps-contact-form-panel { padding: 44px; background: #fff; }
.ps-custom-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 28px; }
.ps-custom-form label { color: #405365; font-size: 13px; }
.ps-custom-form input, .ps-custom-form textarea { width: 100%; margin-top: 8px; border: 1px solid #afc0ca; background: #f6f9fa; min-height: 47px; padding: 10px 12px; }
.ps-custom-form textarea { min-height: 150px; resize: vertical; }
.ps-custom-form .wide, .ps-custom-form button { grid-column: 1 / -1; }
.ps-custom-form button { justify-self: start; }
.ps-custom-form button.proscribe-btn { background: linear-gradient(135deg, #b68f6e 0%, #ba997d 100%); border: 1px solid transparent; color: #fff; border-radius: 5px; padding: 15px 26px; font: 700 13px/1 var(--proscribe-font-sans); box-shadow: none; }
.ps-custom-form button.proscribe-btn:hover, .ps-custom-form button.proscribe-btn:focus { background: linear-gradient(135deg, #e5a167 0%, #ba997d 100%); border-color: transparent; }
.ps-schedule-aside { padding: 38px; background: #546776; color: #e1ebed; position: sticky; top: 24px; }
.ps-schedule-aside h3 { color: #f5ebe0; margin: 0 0 22px; font-size: 24px; }
.ps-schedule-aside ul { margin: 0; padding-left: 20px; line-height: 1.9; }
.ps-aside-note { margin-top: 30px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.18); display: grid; gap: 8px; }
.ps-aside-note strong { color: #f5ebe0; }
.ps-schedule-steps { background: var(--proscribe-ink); padding: 80px 0; }
.ps-schedule-steps .proscribe-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.ps-schedule-steps div { padding: 34px; background: #546776; color: #e1ebed; }
.ps-schedule-steps strong { color: #d7b48d; font-size: 36px; }
.ps-schedule-steps h3 { color: #f5ebe0; margin: 18px 0 10px; font-size: 22px; }
.ps-schedule-steps p { margin: 0; line-height: 1.65; }
.ps-faq-grid { grid-template-columns: .8fr 1.2fr; }
.ps-faq-list article { padding: 28px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.ps-faq-list article:first-child { padding-top: 0; }
.ps-faq-list h3 { color: #f5ebe0; margin: 0 0 10px; font-size: 21px; }
.ps-faq-list p { color: #d8e2e6; margin: 0; line-height: 1.7; }
.ps-contact-grid { grid-template-columns: .85fr 1.15fr; }
.ps-contact-cards { display: grid; gap: 14px; }
.ps-contact-cards article { padding: 30px; background: #546776; color: #e1ebed; }
.ps-contact-cards span, .ps-contact-strip span { color: #d7b48d; font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase; }
.ps-contact-cards h3 { color: #f5ebe0; margin: 18px 0 10px; font-size: 22px; }
.ps-contact-cards p { margin: 0; line-height: 1.65; }
.ps-contact-strip { padding: 45px 0; background: var(--proscribe-powder); }
.ps-contact-strip .proscribe-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ps-contact-strip div { border-right: 1px solid #b7c7d0; padding-right: 24px; }
.ps-contact-strip div:last-child { border: 0; }
.ps-contact-strip strong { display: block; color: #263747; margin-top: 8px; font-size: 18px; }
.proscribe-inner-footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 18px 25px; }
.proscribe-inner-footer-links a { margin-left: 0; }
@media (max-width:1024px){.ps-principle-grid,.ps-service-directory,.ps-resource-grid{grid-template-columns:repeat(2,1fr)}.ps-story-grid,.ps-command-grid,.ps-schedule-grid,.ps-contact-grid,.ps-faq-grid{grid-template-columns:1fr;gap:42px}.ps-schedule-aside{position:static}.ps-band-row{gap:42px}.ps-contact-grid{grid-template-columns:1fr}}
@media (max-width:768px){.ps-page-hero{min-height:560px;padding:145px 0 68px}.ps-page-hero h1{font-size:48px}.ps-page-hero p{font-size:16px}.ps-about-story,.ps-principles-band,.ps-service-hub,.ps-service-detail-bands,.ps-trial-command,.ps-trial-lanes,.ps-schedule-layout,.ps-resource-library,.ps-faq-band,.ps-contact-layout{padding:28px 0 70px}.ps-story-copy{border-left:0;padding-left:0}.ps-principle-grid,.ps-service-directory,.ps-resource-grid,.ps-proof-grid,.ps-trial-lanes .proscribe-container,.ps-schedule-steps .proscribe-container,.ps-contact-strip .proscribe-container{grid-template-columns:1fr}.ps-proof-grid div,.ps-contact-strip div{border-right:0;border-bottom:1px solid #b7c7d0;padding:18px 0}.ps-proof-grid div:last-child,.ps-contact-strip div:last-child{border:0}.ps-band-row,.ps-band-row.flipped{grid-template-columns:1fr;gap:26px}.ps-band-row.flipped img{order:0}.ps-band-row img{height:260px}.ps-command-panel div{grid-template-columns:1fr;gap:10px}.ps-custom-form{grid-template-columns:1fr}.ps-schedule-panel,.ps-contact-form-panel{padding:26px}.ps-schedule-steps{padding:60px 0}.proscribe-inner-footer-links{justify-content:flex-start;margin-top:20px}}

/* Inner pages v2: large modular section widgets */
.ps2-page { background: var(--proscribe-powder-light); color: #263747; }
.ps2-widget { padding: 104px 0; }
.ps2-dark { background: var(--proscribe-ink); color: #d8e2e6; }
.ps2-hero { min-height: 650px; display: flex; align-items: flex-end; padding: 175px 0 88px; background-size: cover; background-position: center; background-attachment: fixed; }
/* Contact + Schedule heroes are shorter (form-led pages) than the marketing heroes. */
.ps2-hero--contact, .ps2-hero--schedule { min-height: 300px; padding-top: 108px; padding-bottom: 36px; }
/* Fixed backgrounds are janky on touch devices — pin the image to its own section instead (same fallback as the homepage hero). */
@media (max-width: 1024px) {
	.ps2-hero { background-attachment: scroll; }
}
.ps2-hero--schedule, .ps2-hero--contact { background-position: 58% center; }
.ps2-hero--resources { background-position: center 28%; }
.ps2-hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 70px; align-items: end; }
.ps2-hero span, .ps2-section-heading span, .ps2-service-row span, .ps2-featured-article span, .ps2-route-stack span, .ps2-contact-strip span { color: #b68f6e; font: 700 12px/1 var(--proscribe-font-sans); letter-spacing: 1.8px; text-transform: uppercase; }
.ps2-hero h1 { max-width: 920px; margin: 18px 0 24px; color: var(--proscribe-cream); font: 400 clamp(54px, 5.7vw, 92px)/.98 var(--proscribe-font-serif); }
.ps2-hero p { max-width: 720px; margin: 0; color: #d8e2e6; font-size: 18px; line-height: 1.7; }
.ps2-hero-panel { display: grid; gap: 12px; }
.ps2-hero-panel div { background: rgba(84, 103, 118, .74); border: 1px solid rgba(232, 208, 163, .16); padding: 22px 24px; backdrop-filter: blur(6px); }
.ps2-hero-panel strong { display: block; color: #f5ebe0; font-size: 24px; line-height: 1.1; }
.ps2-hero-panel small { display: block; margin-top: 7px; color: #c7d5da; font-size: 12px; line-height: 1.4; }
.ps2-section-heading { max-width: 800px; margin-bottom: 42px; }
.ps2-section-heading h2 { margin: 14px 0 0; color: rgb(56, 59, 69); font: 400 50px/54px var(--proscribe-font-serif); }
.ps2-dark .ps2-section-heading h2 { color: #cac0a0; }
.ps2-section-heading p { margin: 18px 0 0; color: #405365; font-size: 16px; line-height: 1.75; }
.ps2-dark .ps2-section-heading p { color: #d8e2e6; }
.ps2-split-media, .ps2-proof-layout, .ps2-board-layout, .ps2-intake-layout, .ps2-contact-layout, .ps2-faq-layout { display: grid; grid-template-columns: 1.05fr .95fr; gap: 72px; align-items: start; }
.ps2-split-media figure, .ps2-service-row figure, .ps2-featured-article figure { margin: 0; overflow: hidden; background: #546776; }
.ps2-split-media img { display: block; width: 100%; height: 560px; object-fit: cover; }
.ps2-split-media figure { border-radius: 10px; }
/* Subtle hairline separator under the two side-by-side sections on service
   detail pages (overview + deep-dive). Scoped to .ps2-service-index so About
   and other split-media layouts are untouched. The line is centred between the
   two sections: kill the split section's bottom padding, give equal space above
   (container padding-bottom) and below (next section's padding-top). */
.ps2-service-index:has(> .ps2-split-media) { padding-bottom: 0; }
.ps2-service-index > .ps2-split-media { padding-bottom: 72px; border-bottom: 1px solid rgba(56, 59, 69, 0.1); }
.ps2-service-index:has(> .ps2-split-media) + .ps2-widget { padding-top: 72px; }
.ps2-text-stack { display: grid; gap: 18px; max-width: 720px; }
.ps2-text-stack p { margin: 0; color: rgb(64, 83, 101); font-family: var(--proscribe-font-sans); font-size: 19px; line-height: 32px; }
.ps2-number-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ps2-number-grid article, .ps2-board div, .ps2-process-grid article, .ps2-route-stack article { background: #546776; padding: 32px; min-height: 250px; }
.ps2-number-grid span, .ps2-board b, .ps2-process-grid span { color: #d7b48d; font-size: 13px; font-weight: 700; }
.ps2-number-grid h3, .ps2-board strong, .ps2-process-grid h3, .ps2-route-stack h3 { display: block; margin: 28px 0 12px; color: #f5ebe0; font-size: 22px; line-height: 1.2; }
.ps2-number-grid p, .ps2-board span, .ps2-process-grid p, .ps2-route-stack p { margin: 0; color: #e1ebed; font-size: 14px; line-height: 1.7; }

/* Service benefit cards — icon-led, taller, equal-height, rounded (replaces text-ticker cards) */
.ps2-icard-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ps2-icard { background: #546776; border-radius: 14px; padding: 44px 34px; min-height: 300px; display: flex; flex-direction: column; }
.ps2-icard-icon { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: #d7b48d; }
.ps2-icard-icon svg { width: 30px; height: 30px; }
.ps2-icard h3 { margin: 26px 0 14px; color: #f5ebe0; font-size: 21px; line-height: 1.25; }
.ps2-icard p { margin: 0; color: #e1ebed; font-size: 15px; line-height: 1.72; }

/* Full-width conversion break — dark navy, left-aligned, single CTA, open right side */
.ps2-service-break {
  position: relative;
  min-height: 660px;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  padding: 118px 0;
}
.ps2-service-break-body { max-width: 45%; }
.ps2-service-break-body h2 {
  margin: 0 0 22px;
  color: rgb(255, 244, 224);
  font-family: "Season Serif TRIAL", "The Seasons", "Cormorant Garamond", Georgia, serif;
  font-weight: 400;
  font-size: 50px;
  line-height: 54px;
}
.ps2-service-break-body p {
  margin: 0 0 34px;
  max-width: 480px;
  color: #d8e2e6;
  font-family: var(--proscribe-font-sans);
  font-size: 18px;
  line-height: 1.65;
}

@media (max-width: 1024px) {
  .ps2-service-break-body { max-width: 60%; }
}

@media (max-width: 768px) {
  .ps2-service-break { min-height: 560px; padding: 0 0 44px; align-items: flex-end; }
  .ps2-service-break-body { max-width: 100%; }
  .ps2-service-break-body h2 { font-size: 38px; line-height: 42px; }
}
/* Why ProScribe — tall editorial cards on navy */
.ps2-why { padding-top: 108px; padding-bottom: 112px; }
.ps2-why-head { max-width: 1020px; margin-bottom: 58px; }
.ps2-why-head h2 {
  margin: 0;
  color: #f3ead9;
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 50px;
  line-height: 54px;
}
.ps2-why-head h2 span { color: #d7b48d; }
.ps2-why-head p {
  margin: 20px 0 0;
  max-width: 620px;
  color: #b9c7d2;
  font-family: var(--proscribe-font-sans);
  font-weight: 400;
  font-size: 19px;
  line-height: 32px;
}

.ps2-why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.ps2-why-card {
  display: flex;
  flex-direction: column;
  min-height: 440px;
  padding: 38px 34px 40px;
  background: #1f2c3d;
  border-radius: 10px;
}
.ps2-why-icon { display: block; width: 34px; height: 34px; color: #d7b48d; }
.ps2-why-icon svg { width: 100%; height: 100%; display: block; }
.ps2-why-body { margin-top: 150px; }
.ps2-why-num {
  display: block;
  margin-bottom: 16px;
  color: #d7b48d;
  font-family: var(--proscribe-font-sans);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 1.5px;
}
.ps2-why-card h3 {
  margin: 0 0 14px;
  color: #f3ead9;
  font-family: var(--proscribe-font-sans);
  font-weight: 600;
  font-size: 21px;
  line-height: 1.25;
}
.ps2-why-card p {
  margin: 0;
  color: #b9c7d2;
  font-family: var(--proscribe-font-sans);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.72;
}
.ps2-why-foot {
  margin: 46px 0 0;
  max-width: 640px;
  color: #8ea0ad;
  font-family: var(--proscribe-font-sans);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.72;
}

@media (max-width: 980px) {
  .ps2-why-grid { grid-template-columns: repeat(2, 1fr); }
  .ps2-why-card { min-height: 360px; }
}
@media (max-width: 620px) {
  .ps2-why-grid { grid-template-columns: 1fr; }
  .ps2-why-card { min-height: 0; }
  .ps2-why-body { margin-top: 28px; }
  .ps2-why-head { margin-bottom: 40px; }
  .ps2-why .proscribe-container { width: calc(100% - 28px); }
}

/* Leadership — editorial side-by-side, single person */
.ps2-leadership { background: #dbe6ee; padding-top: 108px; padding-bottom: 112px; }
.ps2-leadership-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 72px;
  align-items: center;
}
.ps2-leadership-photo { margin: 0; border-radius: 12px; overflow: hidden; background: #2a3a4d; }
.ps2-leadership-photo img { display: block; width: 100%; height: 620px; object-fit: cover; object-position: center top; }

.ps2-leadership-head { margin-bottom: 26px; }
.ps2-leadership-head h2 {
  margin: 14px 0 0;
  color: rgb(56, 59, 69);
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 50px;
  line-height: 54px;
}
.ps2-leadership-head h2 span {
  display: inline;
  color: #5b7a92;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: 0;
  text-transform: none;
}
.ps2-leadership-name {
  margin: 0;
  padding-top: 26px;
  border-top: 1px solid rgba(82, 104, 120, 0.22);
  color: rgb(56, 59, 69);
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 27px;
  line-height: 1.25;
}
.ps2-leadership-suffix { color: #7d8b98; font-size: 18px; }
.ps2-leadership-suffix::before { content: ", "; }
@media (max-width: 620px) {
  .ps2-leadership-suffix { display: block; margin-top: 4px; }
  .ps2-leadership-suffix::before { content: ""; }
}
.ps2-leadership-role {
  margin: 4px 0 0;
  color: #6b7b88;
  font-family: var(--proscribe-font-sans);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .3px;
}
.ps2-leadership-bio {
  margin: 26px 0 0;
  max-width: 620px;
  color: rgb(64, 83, 101);
  font-family: var(--proscribe-font-sans);
  font-weight: 400;
  font-size: 17px;
  line-height: 30px;
}
.ps2-cred-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 32px 0 0;
  padding: 44px 0 0;
  border-top: 1px solid rgba(82, 104, 120, 0.22);
  list-style: none;
}
.ps2-cred-tags li {
  padding: 7px 15px;
  border: 1px solid rgba(182, 143, 110, 0.5);
  border-radius: 6px;
  background: rgba(182, 143, 110, 0.08);
  color: #9a7b5c;
  font-family: var(--proscribe-font-sans);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 1px;
}
.ps2-leadership-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 26px;
  color: #405365;
  font-family: var(--proscribe-font-sans);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  transition: color .25s ease;
}
.ps2-leadership-link span { transition: transform .25s ease; }
.ps2-leadership-link:hover { color: #b68f6e; }
.ps2-leadership-link:hover span { transform: translateX(4px); }

@media (max-width: 860px) {
  .ps2-leadership { padding-top: 40px; padding-bottom: 56px; }
  .ps2-leadership-grid { grid-template-columns: 1fr; gap: 36px; }
  .ps2-leadership-photo img { height: 460px; }
}

/* Values — editorial list rows */
.ps2-values { background: #eef3f7; padding-top: 104px; padding-bottom: 78px; }
.ps2-values-head { max-width: 900px; margin-bottom: 60px; }
.ps2-values-head h2 {
  margin: 0;
  color: rgb(56, 59, 69);
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 50px;
  line-height: 54px;
}
.ps2-values-head h2 span {
  display: inline;
  color: #5b7a92;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: 0;
  text-transform: none;
}

.ps2-values-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(82, 104, 120, 0.22); }
.ps2-value-row {
  display: grid;
  grid-template-columns: 64px minmax(180px, 280px) minmax(40px, 1fr) 680px 24px;
  align-items: center;
  column-gap: 40px;
  min-height: 142px;
  padding: 40px 0;
  border-bottom: 1px solid rgba(82, 104, 120, 0.22);
  transition: background .3s ease;
}
.ps2-value-desc { grid-column: 4; }
.ps2-value-arrow { grid-column: 5; }
.ps2-value-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 12px;
  background: #2c3e50;
  color: #b68f6e;
  font-family: var(--proscribe-font-mono);
}
.ps2-value-title {
  margin: 0;
  color: rgb(56, 59, 69);
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: clamp(28px, 2.7vw, 40px);
  line-height: 1.08;
}
.ps2-value-desc {
  margin: 0;
  max-width: none;
  color: #526878;
  font-family: var(--proscribe-font-sans);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.65;
}
.ps2-value-arrow {
  justify-self: end;
  color: #b68f6e;
  font-size: 20px;
  line-height: 1;
  opacity: .55;
  transition: transform .3s ease, opacity .3s ease;
}
.ps2-value-row:hover .ps2-value-arrow { opacity: 1; transform: translateX(6px); }

@media (max-width: 860px) {
  .ps2-values { padding-top: 56px; padding-bottom: 56px; }
  .ps2-values-head { margin-bottom: 36px; }
  .ps2-values-list {
    border-top: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .ps2-value-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    grid-template-columns: none;
    padding: 36px 24px;
    min-height: 0;
    background: #ffffff;
    border: 1px solid rgba(82, 104, 120, 0.16);
    border-radius: 14px;
  }
  .ps2-value-row .ps2-value-num { width: 48px; height: 48px; border-radius: 10px; }
  .ps2-value-row .ps2-value-num img { width: 22px; height: 22px; }
  .ps2-value-desc { grid-column: auto; }
  .ps2-value-title { align-self: auto; }
  .ps2-value-arrow { display: none; }
}

/* Full-width process section — frosted glass cards over a dark image */
.ps2-process-glass {
  position: relative;
  padding: 128px 0;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.ps2-process-glass-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(11, 18, 29, 0.78) 0%, rgba(15, 25, 39, 0.66) 55%, rgba(15, 25, 39, 0.56) 100%);
}
.ps2-process-glass-inner { position: relative; z-index: 1; }
.ps2-process-glass-head { max-width: 780px; margin-bottom: 56px; }
.ps2-process-glass-head h2 {
  margin: 0;
  color: #f3ead9;
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: clamp(42px, 4.4vw, 60px);
  line-height: 1.05;
}
.ps2-process-glass-head h2 span { color: #cdb79a; }
.ps2-process-glass-head p {
  margin: 22px 0 0;
  max-width: 620px;
  color: #cdd8e0;
  font-family: var(--proscribe-font-sans);
  font-weight: 400;
  font-size: 19px;
  line-height: 32px;
}

.ps2-glass-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ps2-glass-card {
  padding: 42px 36px 44px;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
  -webkit-backdrop-filter: blur(16px) saturate(120%);
  backdrop-filter: blur(16px) saturate(120%);
}
.ps2-glass-card h3 {
  margin: 0 0 16px;
  color: #f5ebe0;
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.1;
}
.ps2-glass-card p {
  margin: 0;
  color: #d3dde4;
  font-family: var(--proscribe-font-sans);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.7;
}

@media (max-width: 860px) {
  .ps2-process-glass {
    padding: 88px 0 48px;
    background-image: url('../images/process-glass-bg-mobile.jpg') !important;
    background-position: center !important;
  }
  .ps2-glass-grid { grid-template-columns: 1fr; gap: 18px; }
  .ps2-process-glass-overlay {
    background: linear-gradient(120deg, rgba(11, 18, 29, 0.92) 0%, rgba(15, 25, 39, 0.86) 55%, rgba(15, 25, 39, 0.8) 100%);
  }
}

.ps2-about-proof { background: var(--proscribe-powder); }
.ps2-proof-list { display: grid; gap: 12px; }
.ps2-proof-list div { background: #fff; padding: 28px 32px; border-left: 5px solid #b68f6e; }
.ps2-proof-list strong { display: block; color: #263747; font-size: 22px; margin-bottom: 8px; }
.ps2-proof-list span { color: #536778; line-height: 1.6; }
.ps2-service-index, .ps2-resource-grid-section, .ps2-contact-routing, .ps2-schedule-intake { background: var(--proscribe-powder-light); }
.ps2-service-map { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ps2-service-map article, .ps2-article-grid article { background: #fff; min-height: 305px; padding: 32px; border-top: 5px solid #b68f6e; display: flex; flex-direction: column; }
.ps2-service-map img { width: 31px; height: 31px; margin-bottom: 28px; }
.ps2-service-map span, .ps2-article-grid span { color: #587a98; font-size: 13px; font-weight: 700; }
.ps2-service-map h3, .ps2-article-grid h3 { color: #263747; margin: 22px 0 14px; font-size: 22px; line-height: 1.2; }
.ps2-service-map p, .ps2-article-grid p { margin: 0; color: #536778; font-size: 14px; line-height: 1.72; }
.ps2-service-deep { background: var(--proscribe-ink); }
.ps2-service-row { display: grid; grid-template-columns: .95fr 1.05fr; gap: 70px; align-items: center; padding: 48px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.ps2-service-row.reverse figure { order: 2; }
.ps2-service-row img { display: block; width: 100%; height: 380px; object-fit: cover; }
.ps2-service-row h2 { margin: 16px 0 18px; color: #cac0a0; font: 400 clamp(36px, 3.5vw, 58px)/1.04 var(--proscribe-font-serif); }
.ps2-service-row p { color: #d8e2e6; font-size: 16px; line-height: 1.75; margin: 0 0 24px; }
.ps2-service-row a, .ps2-featured-article a { color: #f5ebe0; background: linear-gradient(135deg, #b68f6e 0%, #ba997d 100%); display: inline-block; padding: 16px 30px; border-radius: 5px; text-decoration: none; font-family: var(--proscribe-font-sans); font-size: 15px; font-weight: 600; letter-spacing: 0.3px; }
.ps2-service-row a:hover, .ps2-featured-article a:hover { background: linear-gradient(135deg, #e5a167 0%, #ba997d 100%); color: #f5ebe0; }

/* Approach: dark side-by-side story (Coordinate -> Prepare -> Follow Through) */
.ps2-approach { background: var(--proscribe-ink); }
.ps2-approach .ps2-service-row:last-child { border-bottom: 0; }
.ps2-approach .ps2-service-row figure { border-radius: 14px; overflow: hidden; }
.ps2-approach .ps2-service-row img { height: 520px; border-radius: 14px; }
.ps2-approach .ps2-service-row h2 { margin: 0 0 20px; color: #cac0a0; font: 400 50px/54px var(--proscribe-font-serif); }
.ps2-approach .ps2-service-row p { color: #d8e2e6; font-size: 17px; line-height: 1.72; margin: 0 0 26px; }

/* What You Can Expect: light client-experience section (2x2 + full-width feature) */
.ps2-expect { background: var(--proscribe-powder-light); }
.ps2-expect-head { text-align: center; margin-bottom: 44px; }
.ps2-expect-head h2 { margin: 0; color: #383b45; font: 400 clamp(40px, 4vw, 54px)/1.1 var(--proscribe-font-serif); }
.ps2-expect-head h2 span { color: #5b7a92; }
.ps2-expect-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.ps2-expect-grid article { background: #546776; border-radius: 12px; padding: 46px 42px; min-height: 340px; display: flex; flex-direction: column; }
.ps2-expect-icon { display: flex; align-items: center; height: 40px; margin-bottom: 26px; }
.ps2-expect-icon img { width: 30px; height: 30px; }
.ps2-expect-grid h3 { margin: 0 0 14px; color: #f5ebe0; font: 600 22px/1.28 var(--proscribe-font-sans); }
.ps2-expect-grid p { margin: 0; color: #edf2f5; font-size: 16px; line-height: 1.72; }
.ps2-expect-long { margin-top: 12px; display: grid; grid-template-columns: 1.05fr .95fr; align-items: stretch; background: #1f3049; border-radius: 14px; overflow: hidden; }
.ps2-expect-long-body { padding: 56px 24px 56px 56px; align-self: center; }
.ps2-expect-long-body h3 { margin: 0 0 16px; color: #f5ebe0; font: 600 22px/1.28 var(--proscribe-font-sans); }
.ps2-expect-long-body p { margin: 0; color: #d8e2e6; font-size: 16px; line-height: 1.72; }
.ps2-expect-long .ps2-expect-media { position: relative; margin: 0; align-self: stretch; display: flex; align-items: flex-end; justify-content: flex-end; min-height: 320px; overflow: hidden; }
.ps2-expect-long .ps2-expect-media img { position: relative; z-index: 2; display: block; max-width: 100%; max-height: 100%; height: auto; object-fit: contain; object-position: bottom right; transform: translateX(-150px); }

/* Animated dashed rings behind the stenograph — slow, restrained rotation
   (concentric, staggered directions/speeds) for a premium, alive feel. */
.ps2-expect-rings { position: absolute; z-index: 1; top: 58%; right: 207px; width: 0; height: 0; pointer-events: none; transform: translateX(-150px); }
.ps2-expect-rings .ps2-ring { position: absolute; top: 0; left: 0; border-radius: 50%; border: 1.5px dashed rgba(232, 208, 163, 0.6); transform: translate(-50%, -50%); }
.ps2-expect-rings .ps2-ring--1 { width: 170px; height: 170px; animation: ps2-ring-spin 22s linear infinite; }
.ps2-expect-rings .ps2-ring--2 { width: 250px; height: 250px; border-color: rgba(232, 208, 163, 0.45); animation: ps2-ring-spin 32s linear infinite reverse; }
.ps2-expect-rings .ps2-ring--3 { width: 330px; height: 330px; border-color: rgba(232, 208, 163, 0.3); animation: ps2-ring-spin 44s linear infinite; }
@keyframes ps2-ring-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .ps2-expect-rings .ps2-ring { animation: none !important; }
}
@media (max-width: 1024px) {
	.ps2-approach .ps2-service-row img { height: 440px; }
}
@media (max-width: 768px) {
	.ps2-approach .ps2-service-row h2 { font-size: 36px; line-height: 1.08; }
	.ps2-approach .ps2-service-row img { height: 300px; }
	.ps2-service-directory .ps2-section-heading h2 { font-size: 36px; line-height: 1.1; }
	.ps2-service-directory { padding-top: 36px; }
	.ps2-approach { padding-top: 44px; padding-bottom: 44px; }
	.ps2-expect { padding-top: 30px; }
	.ps2-expect-grid { grid-template-columns: 1fr; }
	.ps2-expect-grid article { padding: 32px 22px; min-height: 0; }
	.ps2-expect-long { grid-template-columns: 1fr; }
	.ps2-expect-long-body { padding: 32px 22px; }
	.ps2-expect-long figure { min-height: 240px; }
	/* Center the stenograph image on mobile — desktop shoves it left with a
	   -150px translate + bottom-right anchor, which cropped/offset it on phones. */
	.ps2-expect-long .ps2-expect-media { justify-content: center !important; }
	.ps2-expect-long .ps2-expect-media img { transform: none !important; object-position: center bottom !important; margin: 0 auto !important; }
}

/* Deep split: second side-by-side on service pages (reversed, rounded image, 50/54 H2) */
.ps2-deep-split .ps2-split-media figure { border-radius: 14px; }
.ps2-deep-split .ps2-section-heading h2 { color: #383b45; font-size: 50px; line-height: 54px; }
.ps2-deep-split .ps2-text-small { font-size: 19px; line-height: 32px; color: rgb(64, 83, 101); }
@media (max-width: 768px) {
	.ps2-deep-split .ps2-section-heading h2 { font-size: 36px; line-height: 1.1; }
}

/* Journey: full-width 3-step editorial process (no cards, subtle gold numbers + connector) */
.ps2-journey { background: var(--proscribe-powder-light); }
.ps2-journey-head { text-align: center; max-width: 780px; margin: 0 auto 66px; }
.ps2-journey-head h2 { margin: 0; color: #383b45; font: 400 50px/54px var(--proscribe-font-serif); }
.ps2-journey-head p { margin: 18px auto 0; max-width: 560px; color: #405365; font-size: 17px; line-height: 1.7; }
.ps2-journey-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 60px; position: relative; }
.ps2-journey-grid::before { content: ""; position: absolute; top: 32px; left: 0; right: 0; height: 1px; background: rgba(56, 59, 69, 0.16); }
.ps2-journey-grid article { position: relative; }
.ps2-journey-ico { display: inline-flex; align-items: center; position: relative; margin-bottom: 24px; padding-right: 18px; background: var(--proscribe-powder-light); color: #b68f6e; line-height: 0; }
.ps2-journey-ico svg { width: 44px; height: 44px; }
.ps2-journey-grid h3 { margin: 0 0 14px; color: #23384a; font: 400 26px/1.22 var(--proscribe-font-serif); }
.ps2-journey-grid p { margin: 0; max-width: 340px; color: #4a5d6c; font-size: 16px; line-height: 1.72; }
@media (max-width: 1024px) {
	.ps2-journey-grid { grid-template-columns: 1fr; gap: 44px; }
	.ps2-journey-grid::before { display: none; }
	.ps2-journey-ico { background: none; padding-right: 0; }
	.ps2-journey-grid p { max-width: 560px; }
	.ps2-journey-grid article + article { padding-top: 28px; border-top: 1px solid rgba(56, 59, 69, 0.16); }
}
@media (max-width: 768px) {
	.ps2-journey-head h2 { font-size: 36px; line-height: 1.1; }
	.ps2-journey-head { text-align: left; margin-left: 0; margin-right: 0; }
	.ps2-journey-head p { margin-left: 0; margin-right: 0; }
}

/* Use Cases: editorial 2-up slider (2 tall boxes per view) + architectural nav below */
.ps2-usecases { background: #ffffff; }
.ps2-uc-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; margin-bottom: 44px; }
.ps2-uc-head h2 { flex: 0 1 56%; margin: 0; text-align: left; color: #383b45; font: 400 50px/54px var(--proscribe-font-serif); }
.ps2-uc-head p { flex: 0 0 auto; width: 360px; max-width: 360px; margin: 0 0 6px; text-align: right; color: #405365; font-size: 16px; line-height: 1.7; }
.ps2-uc-grid { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.ps2-uc-grid::-webkit-scrollbar { display: none; }
.ps2-uc-card { flex: 0 0 calc((100% - 20px) / 2); scroll-snap-align: start; display: flex; flex-direction: column; background: #546776; border-radius: 12px; border-top: 2px solid transparent; padding: 54px 46px; min-height: 360px; cursor: pointer; transition: background 0.4s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.4s, transform 0.4s, box-shadow 0.4s; }
.ps2-uc-num { color: #c9b898; font: 400 14px/1 var(--proscribe-font-sans); letter-spacing: 1.5px; margin-bottom: auto; }
.ps2-uc-ico { color: #c9b898; margin-bottom: auto; line-height: 0; }
.ps2-uc-ico svg { width: 34px; height: 34px; }
.ps2-uc-card.is-active .ps2-uc-ico { color: #e2c79b; }
.ps2-uc-card h3 { margin: 26px 0 14px; color: #eef2f5; font: 400 28px/1.2 var(--proscribe-font-serif); }
.ps2-uc-card p { margin: 0; color: #ccd7dd; font-size: 15px; line-height: 1.68; }
.ps2-uc-card.is-active { background: #47596a; border-top-color: #b68f6e; transform: translateY(-4px); box-shadow: 0 18px 38px rgba(22, 33, 48, 0.16); }
.ps2-uc-card.is-active h3 { color: #ffffff; }
.ps2-uc-card.is-active .ps2-uc-num { color: #e2c79b; }
.ps2-uc-nav { display: flex; align-items: center; gap: 28px; margin-top: 40px; }
.ps2-uc-progress { flex: 0 0 auto; color: #8794a0; font: 400 15px/1 var(--proscribe-font-sans); letter-spacing: 1.5px; }
.ps2-uc-progress .ps2-uc-cur { color: #b68f6e; font-weight: 600; }
.ps2-uc-track { position: relative; flex: 1 1 auto; height: 1px; background: rgba(56, 59, 69, 0.16); }
.ps2-uc-track-fill { position: absolute; left: 0; top: 0; height: 1px; width: 25%; background: #b68f6e; transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.ps2-uc-arrows { flex: 0 0 auto; display: flex; gap: 10px; }
.ps2-usecases .ps2-uc-arrow { -webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 40px; padding: 0; border: 1px solid rgba(56, 59, 69, 0.22); background: transparent !important; background-image: none !important; box-shadow: none; color: #3a4a58; cursor: pointer; border-radius: 8px; transition: border-color 0.3s, color 0.3s; }
.ps2-usecases .ps2-uc-arrow:hover,
.ps2-usecases .ps2-uc-arrow:focus,
.ps2-usecases .ps2-uc-arrow:focus-visible,
.ps2-usecases .ps2-uc-arrow:active { border-color: #b68f6e; color: #b68f6e; background: transparent !important; outline: none; }
.ps2-uc-arrow svg { width: 30px; height: 12px; overflow: visible; }
.ps2-uc-shaft { transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1); transform-box: fill-box; }
.ps2-uc-next:hover .ps2-uc-shaft { transform-origin: right center; transform: scaleX(1.24); }
.ps2-uc-prev:hover .ps2-uc-shaft { transform-origin: left center; transform: scaleX(1.24); }
@media (max-width: 900px) {
	.ps2-uc-head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.ps2-uc-head h2 { flex: none; font-size: 38px; line-height: 1.1; }
	.ps2-uc-head p { width: auto; max-width: 480px; text-align: left; margin: 0; }
	.ps2-uc-card { flex: 0 0 86%; min-height: 300px; padding: 40px 32px; }
}
@media (max-width: 768px) {
	.ps2-uc-head h2 { font-size: 34px; }
	.ps2-uc-card { flex: 0 0 100%; }
}

.ps2-trial-board { background: var(--proscribe-ink); }
.ps2-board { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.ps2-trial-timeline { background: var(--proscribe-powder-light); }
.ps2-timeline { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; counter-reset: step; }
.ps2-timeline article { background: #fff; padding: 34px; min-height: 260px; border-left: 5px solid #546776; }
.ps2-timeline span { color: #b68f6e; font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.ps2-timeline h3 { color: #263747; font-size: 24px; margin: 30px 0 14px; }
.ps2-timeline p { color: #536778; line-height: 1.7; margin: 0; }
.ps2-form-card { background: #fff; padding: 44px; border-radius: 14px; }
.ps2-form-success {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
  margin-bottom: 24px;
  padding: 16px 18px;
  background: #eaf6ee;
  border: 1px solid #bfe3c9;
  border-radius: 10px;
  color: #1f6d3a;
  font: 600 14px/1.4 var(--proscribe-font-sans);
}
.ps2-form-success-icon { flex: 0 0 auto; width: 22px; height: 22px; color: #2f9e57; }
.ps2-form-success-icon svg { width: 100%; height: 100%; }
.ps2-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px 24px; margin-top: 30px; }
.ps2-form label { color: #405365; font-size: 14.5px; font-weight: 500; }
.ps2-form input, .ps2-form select, .ps2-form textarea { box-sizing: border-box; width: 100%; margin-top: 8px; border: 1px solid #c3d0d8; border-radius: 8px; background: #f6f9fa; height: 48px; padding: 10px 12px; color: #263747; font-family: var(--proscribe-font-sans); font-size: 15px; line-height: 1.2; -webkit-appearance: none; appearance: none; }
.ps2-form select {
  padding-right: 40px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23405365' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
.ps2-form textarea { height: auto; min-height: 160px; resize: vertical; }
.ps2-form input:focus, .ps2-form select:focus, .ps2-form textarea:focus { outline: none; border-color: #b68f6e; box-shadow: 0 0 0 3px rgba(182, 143, 110, 0.18); }
.ps2-form input:invalid:focus, .ps2-form select:invalid:focus, .ps2-form textarea:invalid:focus { border-color: #c0604a; box-shadow: 0 0 0 3px rgba(192, 96, 74, 0.16); }
.ps2-form .wide, .ps2-form button { grid-column: 1 / -1; }
.ps2-form-tags-label { display: block; color: #405365; font-size: 14.5px; font-weight: 500; }
.ps2-tag-group { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.ps2-tag {
  border: 1px solid #c3d0d8;
  border-radius: 999px;
  background: #f6f9fa;
  color: #405365;
  font: 600 13.5px/1 var(--proscribe-font-sans);
  padding: 11px 18px;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.ps2-tag:hover { border-color: #b68f6e; }
.ps2-tag.is-active { border-color: #b68f6e; background: #b68f6e; color: #fff; }
.ps2-form button.proscribe-btn { justify-self: start; background: linear-gradient(135deg, #b68f6e 0%, #ba997d 100%); border: 1px solid transparent; color: #fff; border-radius: 5px; padding: 15px 26px; font: 700 13px/1 var(--proscribe-font-sans); box-shadow: none; }
.ps2-form button.proscribe-btn:hover { background: linear-gradient(135deg, #e5a167 0%, #ba997d 100%); border-color: transparent; }

/* Hardened, final field styling — !important so nothing later in this
   3800+ line stylesheet can silently re-override it again. */
.ps2-form input,
.ps2-form select,
.ps2-form textarea {
  box-sizing: border-box !important;
  height: 48px !important;
  border: 1px solid #c3d0d8 !important;
  border-radius: 8px !important;
  background-color: #f6f9fa !important;
  outline: none !important;
  color: #263747 !important;
}
.ps2-form select:invalid { color: #263747 !important; }
.ps2-form select option { color: #263747; }
.ps2-form select {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23405365' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  padding-right: 40px !important;
}
.ps2-form textarea { height: auto !important; min-height: 160px !important; }
.ps2-form input:focus,
.ps2-form select:focus,
.ps2-form textarea:focus {
  border-color: #b68f6e !important;
  box-shadow: 0 0 0 3px rgba(182, 143, 110, 0.18) !important;
}
.ps2-form input:invalid:focus,
.ps2-form select:invalid:focus,
.ps2-form textarea:invalid:focus {
  border-color: #c0604a !important;
  box-shadow: 0 0 0 3px rgba(192, 96, 74, 0.16) !important;
}

/* Custom dropdown (built by proscribe-frontend.js) that replaces the native
   <select> popup, which cannot be restyled with CSS. The real <select> stays
   in the DOM (visually hidden) so the form still submits its value. */
.ps2-select { position: relative; margin-top: 8px; }
.ps2-select-native { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; pointer-events: none; }
.ps2-select-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 48px;
  box-sizing: border-box;
  padding: 10px 14px;
  border: 1px solid #c3d0d8;
  border-radius: 8px;
  background: #f6f9fa;
  color: #263747;
  font: 15px/1.2 var(--proscribe-font-sans);
  text-align: left;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ps2-select.is-open .ps2-select-trigger { border-color: #b68f6e; box-shadow: 0 0 0 3px rgba(182, 143, 110, 0.18); }
.ps2-select-arrow {
  flex: 0 0 auto;
  width: 12px;
  height: 8px;
  margin-left: 12px;
  background: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23405365' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
  transition: transform .2s ease;
}
.ps2-select.is-open .ps2-select-arrow { transform: rotate(180deg); }
.ps2-select-list {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 30;
  margin: 0;
  padding: 6px;
  list-style: none;
  background: #fff;
  border: 1px solid #e1e8ec;
  border-radius: 10px;
  box-shadow: 0 16px 36px rgba(20, 30, 40, 0.16);
  max-height: 220px;
  overflow-y: auto;
}
.ps2-select.is-open .ps2-select-list { display: block; }
.ps2-select-option {
  padding: 10px 12px;
  border-radius: 6px;
  font: 14px/1.4 var(--proscribe-font-sans);
  color: #263747;
  cursor: pointer;
}
.ps2-select-option:hover { background: #f4ede2; }
.ps2-select-option.is-selected { background: #ede0cf; color: #23384a; font-weight: 600; }

.ps2-intake-sidebar { background: #546776; color: #e1ebed; padding: 38px; border-radius: 14px; position: sticky; top: 24px; }
.ps2-intake-sidebar h3 { color: #f5ebe0; margin: 0 0 24px; font-size: 26px; }
.ps2-intake-sidebar ul { margin: 0; padding-left: 20px; line-height: 1.9; }
.ps2-intake-sidebar div { margin-top: 32px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.18); }
.ps2-intake-sidebar strong { color: #f5ebe0; display: block; margin-bottom: 8px; }
.ps2-intake-sidebar p { margin: 0; line-height: 1.7; }

/* ---------- Schedule page: focused request form ---------- */
.ps2-schedule-intake .ps2-intake-layout { grid-template-columns: minmax(0, 1.55fr) .85fr; gap: 32px; align-items: start; }
.ps2-sform-head { margin-bottom: 30px; }
.ps2-sform-head h2 {
  margin: 0;
  color: rgb(56, 59, 69);
  font: 400 clamp(36px, 3.6vw, 50px)/1.06 var(--proscribe-font-serif);
}
.ps2-sform-head p {
  margin: 18px 0 0;
  max-width: 620px;
  color: #40536a;
  font-family: var(--proscribe-font-sans);
  font-size: 17px;
  line-height: 1.65;
}
.ps2-sform-section {
  margin: 0;
  padding: 34px 0 6px;
  border: 0;
  border-top: 1px solid rgba(82, 104, 120, 0.16);
}
.ps2-sform-section:first-of-type { border-top: 0; }
.ps2-sform-legend {
  padding: 0;
  margin-bottom: 22px;
  color: #b68f6e;
  font: 700 12px/1 var(--proscribe-font-sans);
  letter-spacing: 1.8px;
  text-transform: uppercase;
}
.ps2-sform-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 28px; }
.ps2-sform label {
  display: block;
  color: #405365;
  font-family: var(--proscribe-font-sans);
  font-size: 13px;
  font-weight: 500;
}
.ps2-sform label.wide { grid-column: 1 / -1; }
.ps2-req { color: #b68f6e; margin-left: 3px; }
.ps2-sform input,
.ps2-sform select,
.ps2-sform textarea {
  box-sizing: border-box;
  width: 100%;
  margin-top: 8px;
  height: 48px;
  padding: 10px 12px;
  border: 1px solid #c3d0d8;
  border-radius: 8px;
  background: #f6f9fa;
  color: #263747;
  font-family: var(--proscribe-font-sans);
  font-size: 15px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ps2-sform input:focus, .ps2-sform select:focus, .ps2-sform textarea:focus {
  border-color: #b68f6e;
  box-shadow: 0 0 0 3px rgba(182, 143, 110, 0.18);
}
.ps2-sform textarea { height: auto; min-height: 150px; resize: vertical; }
.ps2-sform input[type="file"] { height: auto; padding: 12px; background: #fff; cursor: pointer; }

/* "Proceeding outside the U.S." — kept as a plain checkbox (not a tag),
   it's a single yes/no toggle, not a set of mutually distinct choices. */
.ps2-sform-check--single {
  display: flex;
  align-items: center;
  gap: 11px;
  font-weight: 500;
  color: #34506a;
  font-size: 15px;
  cursor: pointer;
  margin: 4px 0 22px;
}
.ps2-sform-check--single input {
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 0;
  padding: 0;
  accent-color: #b68f6e;
  flex: 0 0 auto;
}
.ps2-sform-note { margin: 0 0 18px; color: #52606f; font-size: 14px; line-height: 1.65; }
.ps2-sform-cond { margin-top: 0; }
.ps2-sform-cond[hidden] { display: none; }

/* Simplified schedule form — single centered column with even vertical rhythm. */
.ps2-schedule-intake .ps2-intake-single { max-width: 760px; margin: 0 auto; }
.ps2-sform { display: flex; flex-direction: column; gap: 26px; }
.ps2-sform-field { margin: 0; }
.ps2-sform-label {
  display: block;
  margin-bottom: 12px;
  color: #34506a;
  font-family: var(--proscribe-font-sans);
  font-size: 15px;
  font-weight: 600;
}
.ps2-sform-field .ps2-sform-note { margin: -4px 0 14px; }

/* Request-type + Additional Services — pill/tag buttons instead of native
   radios/checkboxes. The actual <input> stays in the DOM (visually hidden)
   so existing show/hide + select-all JS logic keeps working unchanged; only
   the visual treatment changes, via :has(). */
.ps2-sform-choices { display: flex; flex-wrap: wrap; gap: 10px; }
.ps2-sform-services { display: flex; flex-wrap: wrap; gap: 10px; }
.ps2-sform-choice,
.ps2-sform-check:not(.ps2-sform-check--single) {
  display: inline-flex;
  align-items: center;
  border: 1px solid #c3d0d8;
  border-radius: 999px;
  background: #f6f9fa;
  color: #405365;
  font: 600 13.5px/1 var(--proscribe-font-sans);
  padding: 12px 20px;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.ps2-sform-choice input,
.ps2-sform-check:not(.ps2-sform-check--single) input {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.ps2-sform-choice:hover, .ps2-sform-check:not(.ps2-sform-check--single):hover { border-color: #b68f6e; }
.ps2-sform-choice:has(input:checked), .ps2-sform-check:not(.ps2-sform-check--single):has(input:checked) {
  border-color: #b68f6e;
  background: #b68f6e;
  color: #fff;
}
.ps2-sform .ps2-sform-submit { margin-top: 4px; }

/* Submit */
.ps2-sform-submit { margin-top: 36px; padding-top: 30px; border-top: 1px solid rgba(82, 104, 120, 0.16); }
.ps2-sform-submit .proscribe-btn {
  background: linear-gradient(135deg, #b68f6e 0%, #ba997d 100%);
  border: 1px solid transparent;
  color: #fff;
  border-radius: 5px;
  padding: 15px 28px;
  font: 700 13px/1 var(--proscribe-font-sans);
  box-shadow: none;
}
.ps2-sform-submit .proscribe-btn:hover {
  background: linear-gradient(135deg, #e5a167 0%, #ba997d 100%);
  border-color: transparent;
}
.ps2-sform-reassure { margin: 16px 0 0; color: #6d8090; font-size: 13px; line-height: 1.6; }

@media (max-width: 768px) {
  .ps2-form-card--wide { padding: 30px 22px; }
  .ps2-sform-grid, .ps2-sform-services, .ps2-sform-choices { grid-template-columns: 1fr; }
  .ps2-sform label.wide { grid-column: auto; }
}

/* ---------- Schedule page: technical requirements cards ---------- */
.ps2-techreq { background: var(--proscribe-powder-light); }
.ps2-techreq-head { max-width: 760px; margin-bottom: 48px; }
.ps2-techreq-head h2 {
  margin: 0;
  color: rgb(56, 59, 69);
  font: 400 clamp(32px, 3.2vw, 50px)/1.08 var(--proscribe-font-serif);
}
.ps2-techreq-head p {
  margin: 18px 0 0;
  max-width: 640px;
  color: #40536a;
  font-family: var(--proscribe-font-sans);
  font-size: 17px;
  line-height: 1.65;
}
.ps2-techreq-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ps2-techreq-card {
  display: flex;
  flex-direction: column;
  padding: 40px 36px;
  background: #546776;
  border-radius: 14px;
}
.ps2-techreq-icon { display: inline-flex; margin-bottom: 22px; color: #d4b18c; }
.ps2-techreq-icon svg { width: 32px; height: 32px; }
.ps2-techreq-card h3 {
  margin: 0 0 12px;
  color: #f5ebe0;
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.2;
}
.ps2-techreq-card p {
  margin: 0;
  color: #dbe6ea;
  font-family: var(--proscribe-font-sans);
  font-size: 15px;
  line-height: 1.7;
}
@media (max-width: 980px) {
  .ps2-techreq-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .ps2-techreq-grid { grid-template-columns: 1fr; }
}

.ps2-process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ps2-resource-feature { background: #eef3f7; }
.ps2-featured-article { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: center; background: transparent; padding: 0; }
.ps2-featured-article img { display: block; width: 100%; height: 390px; object-fit: cover; }
.ps2-featured-article h2 { margin: 16px 0 18px; color: #383b45; font: 400 clamp(38px, 3.6vw, 58px)/1.04 var(--proscribe-font-serif); }
.ps2-featured-article p { color: #536778; font-size: 16px; line-height: 1.75; margin: 0 0 24px; }
.ps2-article-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ps2-resource-faq { background: var(--proscribe-ink); }
.ps2-faq-layout { grid-template-columns: .85fr 1.15fr; }
.ps2-faq-layout details { border-bottom: 1px solid rgba(255,255,255,.14); padding: 25px 0; }
.ps2-faq-layout summary { cursor: pointer; color: #f5ebe0; font-size: 22px; font-weight: 700; }
.ps2-faq-layout p { color: #d8e2e6; line-height: 1.7; margin: 14px 0 0; }
.ps2-contact-layout { grid-template-columns: .85fr 1.15fr; }
.ps2-route-stack { display: grid; gap: 14px; }
.ps2-route-stack article { min-height: 0; }
.ps2-contact-strip { background: var(--proscribe-powder); padding: 46px 0; }
.ps2-contact-strip .proscribe-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ps2-contact-strip div { border-right: 1px solid #b7c7d0; padding-right: 24px; }
.ps2-contact-strip div:last-child { border: 0; }
.ps2-contact-strip strong { display: block; margin-top: 8px; color: #263747; font-size: 18px; line-height: 1.35; }

/* Contact page — image + form side by side */
.ps2-contact-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.ps2-contact-form-media { margin: 0; border-radius: 14px; overflow: hidden; background: #546776; }
.ps2-contact-form-media img { display: block; width: 100%; height: 100%; min-height: 540px; object-fit: cover; }

/* Contact page — three muted-slate info boxes */
.ps2-contact-routing { padding-bottom: 40px; }
.ps2-contact-info { background: var(--proscribe-powder-light); padding-top: 0; }
.ps2-contact-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  padding-top: 40px;
  border-top: 1px solid rgba(82, 104, 120, 0.28);
}
.ps2-contact-box {
  display: flex;
  flex-direction: column;
  min-height: 208px;
  padding: 40px 36px;
  background: #546776;
  border-radius: 14px;
}
.ps2-contact-box-icon {
  display: inline-flex;
  margin-bottom: 22px;
  color: #d4b18c;
}
.ps2-contact-box-icon svg { width: 30px; height: 30px; }
.ps2-contact-box-label {
  color: #d4b18c;
  font: 700 12px/1 var(--proscribe-font-sans);
  letter-spacing: 1.8px;
  text-transform: uppercase;
}
.ps2-contact-box-main {
  margin: 20px 0 0;
  color: #f5ebe0;
  font-family: var(--proscribe-font-serif);
  font-size: 23px;
  line-height: 1.35;
  text-decoration: none;
  overflow-wrap: anywhere;
}
a.ps2-contact-box-main { transition: color 0.25s ease; }
a.ps2-contact-box-main:hover, a.ps2-contact-box-main:visited { color: #d8c6ac; }
.ps2-contact-box-link {
  margin-top: auto;
  padding-top: 20px;
  color: #e8d0a3;
  font: 600 14px/1 var(--proscribe-font-sans);
  text-decoration: none;
  transition: color 0.25s ease;
}
.ps2-contact-box-link:hover, .ps2-contact-box-link:visited { color: #c9a875; }
.ps2-contact-box-link span { display: inline-block; transition: transform 0.25s ease; }
.ps2-contact-box-link:hover span { transform: translateX(4px); }

/* Contact page — office location map */
.ps2-contact-map {
  margin-top: 20px;
  border-radius: 14px;
  overflow: hidden;
}
.ps2-contact-map iframe { display: block; width: 100%; height: 420px; border: 0; }
@media (max-width: 620px) {
  .ps2-contact-map iframe { height: 320px; }
}

@media (max-width: 1024px) {
  .ps2-contact-form-grid { grid-template-columns: 1fr; gap: 34px; }
  .ps2-contact-form-media img { min-height: 340px; }
  .ps2-contact-info-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .ps2-contact-info-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .ps2-contact-form-media { display: none; }
  .ps2-contact-routing { padding-bottom: 28px; }
  .ps2-contact-info { padding-top: 0; }
}
@media (max-width: 1024px) {
  .ps2-hero-inner, .ps2-split-media, .ps2-proof-layout, .ps2-board-layout, .ps2-intake-layout, .ps2-contact-layout, .ps2-faq-layout, .ps2-featured-article { grid-template-columns: 1fr; gap: 42px; }
  /* Service detail overview (the first side-by-side section): stack with
     the copy first and the photo below it on mobile/tablet. */
  .ps2-service-index:not(.ps2-deep-split) > .ps2-split-media figure { order: 2; }
  .ps2-service-index:not(.ps2-deep-split) > .ps2-split-media .ps2-split-body { order: 1; }
  .ps2-hero-panel { grid-template-columns: repeat(3, 1fr); }
  .ps2-number-grid, .ps2-process-grid, .ps2-article-grid, .ps2-icard-grid { grid-template-columns: repeat(2, 1fr); }
  .ps2-service-map { grid-template-columns: repeat(2, 1fr); }
  .ps2-intake-sidebar { position: static; }
}
@media (max-width: 768px) {
  .ps2-widget { padding: 34px 0; }
  .ps2-quote.ps2-widget { padding: 30px 0; }
  .ps2-section-heading { margin-bottom: 22px !important; }
  .ps2-intake-sidebar { display: none; }
  .ps2-hero { min-height: 580px; padding: 140px 0 68px; }
  .ps2-hero h1 { font-size: 48px; }
  .ps2-hero p { font-size: 16px; }
  .ps2-hero-panel, .ps2-number-grid, .ps2-service-map, .ps2-board, .ps2-timeline, .ps2-form, .ps2-process-grid, .ps2-article-grid, .ps2-icard-grid, .ps2-contact-strip .proscribe-container { grid-template-columns: 1fr; }
  .ps2-split-media img, .ps2-service-row img, .ps2-featured-article img { height: 280px; }
  /* Overview/deep-dive split-media on service detail pages: the desktop
     spacing (72px section padding + 42px stacked-grid gap) reads as a huge
     dead gap once the columns stack on mobile — tighten it up. */
  .ps2-split-media { gap: 22px; }
  .ps2-service-index > .ps2-split-media { padding-bottom: 40px; }
  .ps2-service-index:has(> .ps2-split-media) + .ps2-widget { padding-top: 36px; }
  .ps2-service-index:has(> .ps2-split-media) + .ps2-widget .ps2-section-heading h2 { margin-top: 6px; }
  .ps2-service-row, .ps2-service-row.reverse { grid-template-columns: 1fr; gap: 26px; }
  .ps2-service-row.reverse figure { order: 0; }
  .ps2-form-card, .ps2-intake-sidebar { padding: 26px; }
  .ps2-form .wide, .ps2-form button { grid-column: auto; }
  .ps2-contact-strip div { border-right: 0; border-bottom: 1px solid #b7c7d0; padding: 18px 0; }
  .ps2-contact-strip div:last-child { border: 0; }
}

/* ==========================================================================
   INNER PAGES v2.1 — extended section patterns (checklist, quote, helpers)
   ========================================================================== */

/* Clean hero: single left-aligned column, no side panels */
.ps2-hero-inner { display: block; max-width: 860px; }
.ps2-hero-panel { display: none !important; }
.ps2-hero-cta { margin-top: 34px; }

/* Reversible split media */
.ps2-split-media { align-items: center; }
.ps2-split-media.reverse figure { order: 2; }
.ps2-split-media figure { height: 100%; }
.ps2-split-media figure img { display: block; width: 100%; height: 520px; object-fit: cover; }

/* Checklist blocks — used for schedule/prep/deliverable lists */
.ps2-checklist { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.ps2-checklist.single { grid-template-columns: 1fr; }
.ps2-checklist li { display: grid; grid-template-columns: 24px 1fr; gap: 14px; align-items: start; background: #fff; border-left: 4px solid #b68f6e; padding: 20px 24px; color: #405365; font-size: 15px; line-height: 1.6; }
.ps2-checklist li strong { display: block; color: #263747; font-size: 16px; margin-bottom: 4px; }
.ps2-checklist li::before { content: "\2713"; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(182, 143, 110, .16); color: #9b7456; font-size: 13px; font-weight: 700; }
.ps2-dark .ps2-checklist li { background: #546776; color: #e1ebed; border-left-color: #d7b48d; }
.ps2-dark .ps2-checklist li strong { color: #f5ebe0; }
.ps2-dark .ps2-checklist li::before { background: rgba(215, 180, 141, .2); color: #f0d6b5; }

/* Split section that carries a heading + checklist beside an image */
.ps2-split-body { align-self: center; }
.ps2-split-body .ps2-section-heading { margin-bottom: 26px; }

/* Editorial credibility quote */
.ps2-quote { background: var(--proscribe-powder); }
.ps2-quote blockquote { max-width: 1000px; margin: 0 auto; text-align: center; }
.ps2-quote .ps2-quote-mark { display: block; color: #b68f6e; font: 400 72px/1 var(--proscribe-font-serif); margin-bottom: 8px; }
.ps2-quote p { margin: 0 0 30px; color: #2c3e4f; font: 400 clamp(26px, 3vw, 42px)/1.34 var(--proscribe-font-serif); text-wrap: balance; }
.ps2-quote cite { font-style: normal; color: #587a98; font: 700 16px/1.4 var(--proscribe-font-sans); letter-spacing: .4px; }
.ps2-quote cite span { display: block; margin-top: 6px; color: #5d7080; font-weight: 400; text-wrap: balance; }

/* Service detail: card link + benefit-card icon spacing on dark */
.ps2-service-map a.ps2-card-link { margin-top: auto; padding-top: 20px; color: #9b7456; font: 700 12px/1 var(--proscribe-font-sans); letter-spacing: 1px; text-transform: uppercase; text-decoration: none; }
.ps2-service-map a.ps2-card-link:hover { color: #b68f6e; }
.ps2-service-deep .ps2-service-map article { background: rgba(17,22,36,.5); border: 1px solid rgba(255,255,255,.1); border-top: 5px solid #b68f6e; }
.ps2-service-deep .ps2-service-map h3 { color: #f5ebe0; }
.ps2-service-deep .ps2-service-map p { color: #c7d5da; }
.ps2-service-deep .ps2-service-map span { color: #d7b48d; }
.ps2-service-deep .ps2-service-map a.ps2-card-link { color: #e6cfa8; }

/* Service directory — homepage card structure on the light services-page background */
.ps2-service-directory { background: var(--proscribe-powder-light); }
.ps2-service-directory .ps2-section-heading h2 { color: #383b45; font-size: 50px; line-height: 54px; }

/* Editorial 2-column heading row, matching the homepage services-header split */
.ps2-service-directory .ps2-section-heading--split {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 40px;
	max-width: none;
	margin-bottom: 52px;
}
.ps2-service-directory .ps2-section-heading--split h2 {
	flex: 0 1 auto;
	max-width: 560px;
	margin: 0;
}
.ps2-service-directory .ps2-section-heading--split p {
	flex: 0 0 auto;
	width: 100%;
	max-width: 360px;
	margin: 0;
	text-align: right;
}
@media (max-width: 768px) {
	.ps2-service-directory .ps2-section-heading--split { flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 42px; }
	.ps2-service-directory .ps2-section-heading--split p { max-width: none; text-align: left; }
}
.ps2-service-directory .ps2-service-map { gap: 12px; }
.ps2-service-directory .ps2-service-map article {
	background: #546776;
	border: 0;
	border-radius: 10px;
	padding: 40px 28px;
	min-height: 320px;
}
.ps2-service-directory .ps2-svc-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 10px;
	background: rgba(15, 22, 34, 0.55);
	margin-bottom: 30px;
}
.ps2-service-directory .ps2-svc-icon img { width: 26px; height: 26px; margin: 0; }
.ps2-service-directory .ps2-service-map h3 {
	color: #f5ebe0;
	font: 600 18px/1.3 var(--proscribe-font-sans);
	margin: 0 0 12px;
}
.ps2-service-directory .ps2-service-map p {
	color: #edf2f5;
	font-size: 17px;
	line-height: 1.65;
}
.ps2-service-directory .ps2-service-map a.ps2-card-link {
	margin-top: auto;
	padding-top: 24px;
	color: #f5ebe0;
	font: 600 11px/1 var(--proscribe-font-mono);
	letter-spacing: 1.5px;
	text-transform: uppercase;
}
.ps2-service-directory .ps2-service-map a.ps2-card-link:hover { color: #d8e2e6; }

/* Trial support lanes */
.ps2-lane-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.ps2-lane { background: #fff; border-left: 5px solid #546776; padding: 36px; min-height: 210px; }
.ps2-lane span { color: #b68f6e; font: 700 12px/1 var(--proscribe-font-sans); letter-spacing: 1.4px; text-transform: uppercase; }
.ps2-lane h3 { margin: 22px 0 12px; color: #263747; font-size: 24px; }
.ps2-lane p { margin: 0; color: #536778; font-size: 15px; line-height: 1.7; }
@media (max-width: 768px) { .ps2-lane-grid { grid-template-columns: 1fr; } }

/* Rush / urgent note band */
.ps2-rush { background: var(--proscribe-ink); }
.ps2-rush .proscribe-container { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; }
.ps2-rush span { color: #d7b48d; font: 700 12px/1 var(--proscribe-font-sans); letter-spacing: 1.8px; text-transform: uppercase; }
.ps2-rush h3 { margin: 14px 0 10px; color: var(--proscribe-cream); font: 400 clamp(28px, 3vw, 44px)/1.08 var(--proscribe-font-serif); }
.ps2-rush p { margin: 0; color: #d8e2e6; font-size: 16px; line-height: 1.7; max-width: 620px; }
.ps2-rush a.proscribe-btn { white-space: nowrap; }

/* Service-selection chips for schedule intake */
.ps2-service-select { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 34px; }
.ps2-service-select label { display: flex; align-items: center; gap: 12px; padding: 18px 20px; background: #fff; border: 1px solid #cdd9e0; cursor: pointer; color: #34506a; font-size: 15px; font-weight: 500; transition: var(--proscribe-transition); }
.ps2-service-select label:hover { border-color: #b68f6e; }
.ps2-service-select input { width: 18px; height: 18px; accent-color: #b68f6e; margin: 0; }

@media (max-width: 1024px) {
  .ps2-checklist { grid-template-columns: 1fr; }
  .ps2-service-select { grid-template-columns: repeat(2, 1fr); }
  .ps2-rush .proscribe-container { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 768px) {
  .ps2-service-select { grid-template-columns: 1fr; }
  .ps2-split-media figure img { min-height: 260px; height: 280px; }
}

/* Final header, typography, and hero alignment polish */
body,
.proscribe-inner-page,
.proscribe-page,
.ps2-page {
  font-family: var(--proscribe-font-sans);
}

.proscribe-header-wrapper,
.proscribe-inner-nav {
  padding: 18px 0;
}

.proscribe-header-container {
  width: var(--proscribe-content);
  height: 72px;
  padding: 0 22px;
  border-radius: 6px;
  background: #162130;
}

.proscribe-brand {
  min-width: 0;
}

.proscribe-logo-img {
  display: block;
  width: 196px;
  height: auto;
  max-height: 48px;
  object-fit: contain;
}

.proscribe-nav-links,
.proscribe-inner-nav nav {
  gap: 30px;
}

.proscribe-nav-dropdown {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 72px;
}

.proscribe-nav-dropdown > a::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-left: 8px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}

.proscribe-dropdown-menu {
  position: absolute;
  top: calc(100% - 6px);
  left: 50%;
  z-index: 250;
  min-width: 286px;
  padding: 14px 0;
  background: #f6f2ec;
  border: 1px solid rgba(22, 33, 48, .12);
  border-top: 4px solid #b68f6e;
  box-shadow: 0 22px 50px rgba(5, 12, 22, .28);
  transform: translateX(-50%) translateY(8px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.proscribe-dropdown-menu::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 12px;
}

.proscribe-dropdown-menu a {
  display: block;
  margin: 0 !important;
  padding: 14px 28px;
  color: #162130 !important;
  font-family: var(--proscribe-font-sans);
  font-size: 15px !important;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  border-bottom: 1px solid rgba(22, 33, 48, .18);
}

.proscribe-dropdown-menu a:last-child {
  border-bottom: 0;
}

.proscribe-dropdown-menu a:hover,
.proscribe-dropdown-menu a:focus {
  color: #9b7456 !important;
  background: rgba(182, 143, 110, .08);
}

.proscribe-nav-dropdown:hover .proscribe-dropdown-menu,
.proscribe-nav-dropdown:focus-within .proscribe-dropdown-menu,
.proscribe-nav-dropdown.is-open .proscribe-dropdown-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.proscribe-nav-links .nav-item,
.proscribe-inner-nav nav a {
  font-family: var(--proscribe-font-sans);
  font-size: 15px;
  font-weight: 500;
}

.ps2-hero {
  min-height: 680px;
  padding: 185px 0 92px;
  align-items: flex-end;
}

/* Remote Depositions hero: add extra darkening on the left/text side only
   for this page, without touching the shared overlay every other service
   page's hero relies on. */
.ps2-hero--svc-remote-depositions {
  position: relative;
}
.ps2-hero--svc-remote-depositions::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(8,17,29,.55) 0%, rgba(8,17,29,.3) 38%, rgba(8,17,29,0) 70%);
  pointer-events: none;
}
.ps2-hero--svc-remote-depositions .ps2-hero-inner {
  position: relative;
  z-index: 1;
}

.ps2-hero--minimal {
  min-height: 840px;
  align-items: center;
  padding: 195px 0 80px;
}
/* Contact + Schedule are form-led pages — short hero regardless of the
   .ps2-hero--minimal class also being applied (no eyebrow/CTA on these
   pages triggers --minimal, which otherwise wins by being later in the
   cascade at equal specificity). */
.ps2-hero--minimal.ps2-hero--contact,
.ps2-hero--minimal.ps2-hero--schedule {
  min-height: 380px;
  align-items: flex-end;
  padding-top: 132px;
  padding-bottom: 64px;
}

.ps2-hero--minimal h1 {
  margin-bottom: 26px;
}

.ps2-hero--services {
  min-height: 840px;
  align-items: center;
  padding: 195px 0 80px;
}

.ps2-hero--services h1 {
  margin-bottom: 26px;
  max-width: 960px;
  font-size: 54px;
  line-height: 60px;
}

.ps2-hero-inner {
  display: block !important;
  width: var(--proscribe-content);
  max-width: none;
  margin: 0 auto;
  padding: 0;
  text-align: left;
}

.ps2-hero span,
.ps2-section-heading span {
  font-family: var(--proscribe-font-sans);
}

.ps2-hero h1,
.proscribe-hero-title,
.proscribe-section-title,
.proscribe-trial-title,
.proscribe-case-standard-copy h2,
.ps2-section-heading h2,
.ps2-service-row h2,
.ps2-featured-article h2,
.proscribe-inner-cta h2 {
  font-family: var(--proscribe-font-serif) !important;
  font-weight: 400;
  letter-spacing: 0;
}

.ps2-hero h1 {
  max-width: 760px;
  color: rgb(255,244,224);
  font-family: "Season Serif TRIAL","The Seasons","Cormorant Garamond",Georgia,serif !important;
  font-weight: 400;
  font-size: 65px;
  line-height: 74px;
}

/* Services hero: keep the H1 to exactly two lines (break already forced after
   "Support") by widening the container and easing the font size slightly so the
   first line no longer wraps on standard desktop widths. */
@media (min-width: 1025px) {
  .ps2-hero--services h1 {
    max-width: 1080px;
    font-size: 65px;
    line-height: 74px;
  }
}

.ps2-hero p {
  max-width: 650px;
  font-family: var(--proscribe-font-sans);
  font-size: 18px;
  line-height: 1.68;
}

.ps2-widget {
  padding: 94px 0;
}

/* This later, broader .ps2-widget rule (94px 0) was silently overriding the
   .ps2-contact-routing padding-bottom fix above it in the file — same
   specificity, later source order wins. Re-assert it here so it actually
   sticks. .ps2-contact-info had the same problem (its own padding-top:0
   was being reset back to 94px), which is why the gap above the divider
   line stayed much bigger than the gap below it. */
.ps2-contact-routing {
  padding-bottom: 40px;
}
.ps2-contact-info {
  padding-top: 0 !important;
}

.ps2-service-index:first-of-type {
  padding-top: 74px;
}

.ps2-about-editorial:first-of-type {
  padding-top: 118px;
}

.ps2-split-media {
  gap: 78px;
  align-items: center;
}

.ps2-split-media figure img {
  height: 510px;
}

/* Service detail split images: fixed proportional box (no stretch) — the image
   fills a clean 3:2 frame via cover instead of a forced pixel height.
   height:auto + align-self:start override the generic .ps2-split-media figure
   { height:100% } rule above, which otherwise stretches the figure to match
   the taller text column's row height and squashes the aspect ratio. */
.ps2-service-index .ps2-split-media figure { position: relative; aspect-ratio: 3 / 2; height: auto; align-self: start; overflow: hidden; }
.ps2-service-index .ps2-split-media figure img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ps2-service-index .ps2-split-media figure::after { content: ""; position: absolute; inset: 0; background: rgba(8, 17, 29, 0.14); pointer-events: none; }

/* About editorial: balanced columns, copy stretches to fill — no dead gap */
.ps2-about-editorial {
  padding-top: 118px;
  padding-bottom: 118px;
}
@media (max-width: 768px) {
  .ps2-about-editorial { padding-top: 16px; }
}

.ps2-about-editorial .ps2-split-media {
  grid-template-columns: 1.12fr .88fr;
  gap: 64px;
}

.ps2-about-editorial figure {
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  height: auto;
  align-self: start;
}

.ps2-about-editorial figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 16px;
}

.ps2-about-editorial-copy {
  max-width: none;
}

.ps2-about-editorial-copy .ps2-section-heading {
  max-width: none;
  margin-bottom: 30px;
}

.ps2-about-editorial-copy .ps2-section-heading h2 {
  margin-top: 0;
  font-family: "Season Serif TRIAL", "The Seasons", "Cormorant Garamond", Georgia, serif !important;
  font-weight: 400;
  color: rgb(56, 59, 69);
  font-size: 50px;
  line-height: 54px;
}

/* Two-color H1: second line in the slate accent, matching the home headings.
   Reset the global eyebrow styling that targets .ps2-section-heading span. */
.ps2-about-editorial-copy .ps2-section-heading h2 span {
  display: inline;
  color: #5b7a92;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: 0;
  text-transform: none;
}

.ps2-about-editorial-copy .ps2-section-heading p {
  max-width: none;
  font-family: Archivo, "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 400;
  color: rgb(64, 83, 101);
  font-size: 19px;
  line-height: 32px;
}

.ps2-about-note {
  margin: 0;
  max-width: none;
  font-family: Archivo, "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 400;
  color: rgb(64, 83, 101);
  font-size: 19px;
  line-height: 32px;
}

@media (max-width: 1024px) {
  .proscribe-header-container {
    width: min(calc(100% - 64px), 960px);
  }
  .ps2-hero-inner {
    width: min(calc(100% - 64px), 960px);
  }
  .proscribe-logo-img {
    width: 178px;
    max-height: 42px;
  }
  .proscribe-nav-links,
  .proscribe-inner-nav nav {
    gap: 18px;
  }
  .proscribe-dropdown-menu {
    min-width: 252px;
  }
}

@media (max-width: 768px) {
  .proscribe-header-wrapper,
  .proscribe-inner-nav {
    padding: 12px 0;
  }
  .proscribe-header-container {
    width: calc(100% - 40px);
    height: 60px;
    padding: 0 14px;
  }
  .ps2-hero-inner {
    width: calc(100% - 40px);
  }
  .proscribe-logo-img {
    width: 150px;
    max-height: 34px;
  }
  .proscribe-nav-dropdown {
    min-height: 0;
  }
  .proscribe-dropdown-menu {
    display: none;
  }
  .ps2-hero {
    min-height: 610px;
    padding: 138px 0 64px;
    position: relative;
    overflow: hidden;
  }
  /* Feathered bottom fade: blends the hero photo into a solid navy panel
     behind the heading, instead of the diagonal desktop overlay (which
     reads as a hard, oddly-cropped split on a tall narrow mobile hero). */
  .ps2-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 62%;
    background: linear-gradient(to bottom,
      rgba(8, 17, 29, 0) 0%,
      rgba(8, 17, 29, .35) 30%,
      rgba(8, 17, 29, .78) 60%,
      rgba(8, 17, 29, .97) 85%,
      rgba(8, 17, 29, 1) 100%);
    pointer-events: none;
    z-index: 1;
  }
  .ps2-hero-inner {
    position: relative;
    z-index: 2;
  }
  .ps2-hero h1 {
    font-size: 38px;
    line-height: 1.1;
  }
  .ps2-widget {
    padding: 68px 0;
  }
  .ps2-widget.ps2-about-editorial {
    padding-top: 36px !important;
  }
}

/* Header emergency hardening: keep logo/nav/dropdown from breaking layout. */
.proscribe-header-container {
  overflow: visible !important;
}

/* Keep the Schedule button clear of the last nav item. */
.proscribe-header-container > .proscribe-btn,
.proscribe-inner-nav .proscribe-header-container > .proscribe-btn--outline-pill {
  flex: 0 0 auto !important;
  margin-left: 32px !important;
  white-space: nowrap !important;
}
.proscribe-header-container .proscribe-nav-links,
.proscribe-inner-nav .proscribe-header-container nav {
  margin-right: 8px !important;
}

.proscribe-header-container .proscribe-brand {
  flex: 0 0 auto !important;
  width: 258px !important;
  max-width: 258px !important;
  min-width: 258px !important;
}

.proscribe-header-container .proscribe-logo-img {
  display: block !important;
  width: 244px !important;
  max-width: 244px !important;
  height: auto !important;
  max-height: 62px !important;
  object-fit: contain !important;
}

.proscribe-header-container .proscribe-nav-links,
.proscribe-inner-nav .proscribe-header-container nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 44px !important;
  margin-left: auto !important;
  min-width: 0 !important;
  white-space: nowrap !important;
}

.proscribe-header-container .proscribe-nav-dropdown {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  min-height: 72px !important;
}

.proscribe-header-container .proscribe-dropdown-menu {
  display: block !important;
  position: absolute !important;
  top: calc(100% + 6px) !important;
  left: 50% !important;
  width: 304px !important;
  min-width: 304px !important;
  max-width: 304px !important;
  padding: 10px !important;
  background: rgba(15, 22, 34, .82) !important;
  border: 1px solid rgba(255, 255, 255, .1) !important;
  border-radius: 12px !important;
  backdrop-filter: blur(18px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(160%) !important;
  box-shadow: 0 24px 55px rgba(0, 0, 0, .45) !important;
  transform: translateX(-50%) translateY(8px) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity .22s cubic-bezier(0.22, 1, 0.36, 1), transform .22s cubic-bezier(0.22, 1, 0.36, 1), visibility .22s !important;
}

.proscribe-header-container .proscribe-nav-dropdown:hover .proscribe-dropdown-menu,
.proscribe-header-container .proscribe-nav-dropdown:focus-within .proscribe-dropdown-menu,
.proscribe-header-container .proscribe-nav-dropdown.is-open .proscribe-dropdown-menu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateX(-50%) translateY(0) !important;
}

.proscribe-header-container .proscribe-dropdown-menu a {
  display: block !important;
  padding: 13px 16px !important;
  margin: 0 !important;
  color: #e6ebf1 !important;
  font-family: var(--proscribe-font-sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
  white-space: normal !important;
  border-radius: 7px !important;
  border-bottom: 0 !important;
  transition: background .18s ease, color .18s ease !important;
}

.proscribe-header-container .proscribe-dropdown-menu a:last-child {
  border-bottom: 0 !important;
}

.proscribe-header-container .proscribe-dropdown-menu a:hover,
.proscribe-header-container .proscribe-dropdown-menu a:focus {
  background: rgba(198, 155, 98, .16) !important;
  color: #e8d0a3 !important;
}

@media (max-width: 1024px) {
  .proscribe-header-container .proscribe-brand {
    width: 184px !important;
    max-width: 184px !important;
    min-width: 184px !important;
  }
  .proscribe-header-container .proscribe-logo-img {
    width: 172px !important;
    max-width: 172px !important;
  }
  .proscribe-header-container .proscribe-nav-links,
  .proscribe-inner-nav .proscribe-header-container nav {
    gap: 16px !important;
  }
}

@media (max-width: 768px) {
  .proscribe-header-container .proscribe-brand {
    width: 156px !important;
    max-width: 156px !important;
    min-width: 156px !important;
  }
  .proscribe-header-container .proscribe-logo-img {
    width: 146px !important;
    max-width: 146px !important;
  }
  /* Dropdown visibility on mobile is handled by the hamburger-menu block
     below (scoped under .is-open with higher specificity) — nothing to
     force-hide here now that Services expands inline in the mobile menu. */
}

/* Homepage header: fullscreen mobile menu.
   The nav becomes an independent fixed panel pinned to the top of the
   viewport, NOT an inline row expanding inside the small header pill —
   removes the whole class of overlap bugs that came from fighting the
   desktop dropdown's position:absolute inside a cramped, auto-growing
   flex row. Every rule carries !important and is doubly scoped (selector
   AND body.proscribe-nav-open) so it cannot lose to the unscoped desktop
   "hardening" block above, regardless of source order or caching. */
@media (max-width: 900px) {
  .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-toggle {
    display: inline-flex !important;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    margin-left: 14px;
    padding: 10px !important;
    background: transparent !important;
    border: 1px solid rgba(211, 181, 140, .5) !important;
    border-radius: 7px;
    cursor: pointer;
    order: 3;
    flex: 0 0 auto !important;
    position: relative;
    z-index: 1001;
  }
  .proscribe-header-wrapper .proscribe-nav-toggle span { display: block; height: 2px; width: 100%; background: #e8d0a3; border-radius: 2px; transition: transform .28s ease, opacity .2s ease; }
  .proscribe-header-wrapper.is-open .proscribe-nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .proscribe-header-wrapper.is-open .proscribe-nav-toggle span:nth-child(2) { opacity: 0; }
  .proscribe-header-wrapper.is-open .proscribe-nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .proscribe-header-wrapper .proscribe-header-container { position: relative; z-index: 1001; }
  /* The Schedule button moves inside the hamburger menu on mobile — the
     top-bar copy is hidden so row 1 is just the logo and the toggle. */
  .proscribe-header-wrapper .proscribe-header-container > .proscribe-btn { display: none !important; }
  .proscribe-header-wrapper .proscribe-header-container .proscribe-header-cta { display: none !important; }

  body.proscribe-nav-open { overflow: hidden !important; }

  .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-links {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    margin: 0 !important;
    position: fixed !important;
    z-index: 999;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    height: 100vh !important;
    padding: 96px 0 56px !important;
    overflow-y: auto !important;
    background: linear-gradient(180deg, #222D40 0%, #15212F 100%) !important;
    border-radius: 0 !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .28s ease, visibility .28s ease;
  }
  .proscribe-header-wrapper.is-open .proscribe-header-container .proscribe-nav-links {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-links > .nav-item {
    display: block !important;
    padding: 16px 28px !important;
    width: 100%;
    border-bottom: 1px solid rgba(255,255,255,.07);
    white-space: normal !important;
    font-size: 17px !important;
    color: #FAE1C8 !important;
  }
  .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-home {
    font-weight: 600;
  }
  .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-cta-mobile {
    display: inline-block !important; margin: 28px 28px 12px !important; padding: 16px 30px !important;
    text-align: center; border: 0 !important; border-radius: 5px;
    background: linear-gradient(135deg, #b68f6e 0%, #ba997d 100%) !important; color: #fff !important; font-weight: 600 !important;
    font-size: 15px !important; width: auto !important;
  }
  body.proscribe-nav-open .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-dropdown {
    display: block !important;
    position: static !important;
    width: 100%;
    min-height: 0 !important;
  }
  body.proscribe-nav-open .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-dropdown > .nav-item {
    display: block !important;
    padding: 16px 28px !important;
    width: 100%;
    font-weight: 600;
    border-bottom: 0 !important;
  }
  body.proscribe-nav-open .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-dropdown > .nav-item::after {
    display: none !important;
  }
  body.proscribe-nav-open .proscribe-header-wrapper .proscribe-header-container .proscribe-dropdown-menu {
    display: block !important;
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    padding: 0 0 14px !important;
    border-bottom: 1px solid rgba(255,255,255,.07);
  }
  body.proscribe-nav-open .proscribe-header-wrapper .proscribe-header-container .proscribe-dropdown-menu a {
    display: block !important;
    padding: 8px 28px 8px 44px !important;
    font-size: 14px !important;
    color: #d9e6ec !important;
    border-bottom: 0 !important;
  }
}

/* Nav + buttons use DM Sans */
.proscribe-nav-links .nav-item,
.proscribe-inner-nav nav a,
.proscribe-btn,
.proscribe-header-container > .proscribe-btn,
.proscribe-header-container .proscribe-nav-links .nav-item {
  font-family: var(--proscribe-font-ui) !important;
}

/* ==========================================================================
   STICKY HEADER ON SCROLL — full-width bar, content stays in the wrapper.
   At the top of the page the header keeps its floating pill look; once the
   user scrolls, the bar spans edge to edge and pins to the very top while the
   logo / nav / CTA stay constrained to the content wrapper width.
   ========================================================================== */
.proscribe-header-wrapper.proscribe-header--scrolled {
  top: 0 !important;
  padding: 0 !important;
  background: rgba(15, 22, 34, 0.82);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  backdrop-filter: blur(16px) saturate(160%);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.32);
}

/* The inner bar loses its own pill styling so the wrapper reads full width,
   but keeps its constrained width so the content lines up with the page. */
.proscribe-header-wrapper.proscribe-header--scrolled .proscribe-header-container {
  height: 68px;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

@media (max-width: 768px) {
  .proscribe-header-wrapper.proscribe-header--scrolled .proscribe-header-container {
    height: 56px;
  }
}

/* ============================================================
   RESOURCES — library grid + reusable article template
   ============================================================ */

/* Library grid of resource cards */
.ps2-resource-library { background: #eef3f7; padding-top: 40px; padding-bottom: 104px; }
.ps2-res-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.ps2-res-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(82, 104, 120, 0.12);
}
.ps2-res-card-media { display: block; overflow: hidden; background: #546776; position: relative; }
.ps2-res-card-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(8, 17, 29, 0);
  transition: background-color .35s ease;
  pointer-events: none;
}
.ps2-res-card-media img { display: block; width: 100%; height: 250px; object-fit: cover; transition: transform .5s ease; }
.ps2-res-card:hover .ps2-res-card-media::after { background: rgba(8, 17, 29, .28); }
.ps2-res-card:hover .ps2-res-card-media img { transform: scale(1.04); }
.ps2-res-card-body { display: flex; flex-direction: column; flex: 1; padding: 28px 28px 30px; }
.ps2-res-cat {
  color: #b68f6e;
  font-family: var(--proscribe-font-sans);
  font-weight: 700;
  font-size: 11.5px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.ps2-res-card h3 {
  margin: 14px 0 0;
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 23px;
  line-height: 1.22;
  color: rgb(56, 59, 69);
}
.ps2-res-card h3 a { color: inherit; text-decoration: none; }
.ps2-res-card h3 a:hover { color: #5b7a92; }
.ps2-res-card-body p {
  margin: 13px 0 0;
  color: rgb(64, 83, 101);
  font-family: var(--proscribe-font-sans);
  font-size: 15px;
  line-height: 1.65;
}
.ps2-res-more {
  margin-top: auto;
  padding-top: 20px;
  color: #b68f6e;
  font-family: var(--proscribe-font-sans);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .3px;
  text-decoration: none;
}
.ps2-res-more:hover { color: #b68f6e; }
.ps2-res-card h3 a:hover { color: #5b7a92 !important; }

/* Make the featured card title and image links plain — only the CTA is a button.
   (The shared .ps2-featured-article a button style must not leak onto them.) */
.ps2-featured-article h2 a {
  color: inherit;
  text-decoration: none;
  background: none;
  padding: 0;
  border-radius: 0;
}
.ps2-featured-article figure a {
  display: block;
  background: none;
  padding: 0;
  border-radius: 0;
}

/* ---------- Article template ---------- */
/* Full-width editorial hero: featured image background, dark overlay, left copy */
.ps2-article-hero {
  display: flex;
  align-items: flex-end;
  min-height: 560px;
  padding: 190px 0 76px;
  background-color: var(--proscribe-ink);
  background-size: cover;
  background-position: center 32%;
}
.ps2-article-hero--plain {
  background-image: linear-gradient(115deg, #0c1421 0%, #16212f 55%, #1d2c3d 100%);
}
/* Match the body grid width (250 + 80 + 920) and centering so the hero copy
   aligns to the same left edge as the "On This Page" navigation below. */
.ps2-article-hero-inner { max-width: 1250px; margin: 0; }
.ps2-article-cat {
  color: #d4b18c;
  font-family: var(--proscribe-font-sans);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}
.ps2-article-hero h1 {
  max-width: 860px;
  margin: 18px 0 0;
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: clamp(42px, 4.6vw, 66px);
  line-height: 1.04;
  color: var(--proscribe-cream);
}
.ps2-article-intro {
  margin: 22px 0 0;
  max-width: 700px;
  color: #d8e2e6;
  font-family: var(--proscribe-font-sans);
  font-size: 19px;
  line-height: 1.62;
}
.ps2-article-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 28px 0 0;
  color: #aebeca;
  font-family: var(--proscribe-font-sans);
  font-size: 14px;
  letter-spacing: .2px;
}
.ps2-article-meta-dot { color: #d4b18c; }

.ps2-article-body { background: #fff; padding: 96px 0; }

/* Two-column reading layout: sticky section nav (left) + article content (right) */
.ps2-article-layout {
  display: grid;
  grid-template-columns: 250px minmax(0, 920px);
  justify-content: start;
  gap: 80px;
  align-items: start;
}
.ps2-article-main { min-width: 0; }
.ps2-article-summary,
.ps2-article-prose { width: 100%; }

/* Left "On This Page" navigation */
.ps2-article-toc {
  position: sticky;
  top: 112px;
  align-self: start;
}
.ps2-article-toc-label {
  display: block;
  margin-bottom: 14px;
  color: #8a97a3;
  font-family: var(--proscribe-font-sans);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.ps2-article-toc ol {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(82, 104, 120, 0.14);
}
.ps2-article-toc li { margin: 0; border-bottom: 1px solid rgba(82, 104, 120, 0.14); }
.ps2-article-toc a {
  position: relative;
  display: flex;
  gap: 11px;
  padding: 11px 0 11px 14px;
  color: #5a6b78;
  font-family: var(--proscribe-font-sans);
  font-size: 14px;
  line-height: 1.4;
  text-decoration: none;
  transition: color 0.25s ease;
}
.ps2-article-toc a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  bottom: 9px;
  width: 2px;
  background: #b68f6e;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.ps2-toc-num {
  flex: 0 0 auto;
  color: #b0bcc6;
  font-family: var(--proscribe-font-mono);
  font-size: 12px;
  font-weight: 600;
  padding-top: 1px;
  transition: color 0.25s ease;
}
.ps2-article-toc a:hover { color: #23384a; }
.ps2-article-toc a.is-active { color: #23384a; }
.ps2-article-toc a.is-active::before { opacity: 1; }
.ps2-article-toc a.is-active .ps2-toc-num { color: #b68f6e; }

/* Mobile "On This Page" dropdown (hidden on desktop) */
.ps2-article-toc-mobile { display: none; }

/* Anchor offset so headings clear the fixed top nav when jumped to */
.ps2-article-prose h2 { scroll-margin-top: 104px; }

.ps2-article-summary {
  margin-bottom: 52px;
  padding: 32px 36px;
  background: #eef4f8;
  border: 0;
  border-radius: 12px;
}
.ps2-article-summary-label {
  display: block;
  margin-bottom: 16px;
  color: rgb(56, 59, 69);
  font-family: var(--proscribe-font-serif);
  font-size: 22px;
}
.ps2-article-summary ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 11px; }
.ps2-article-summary li {
  position: relative;
  padding-left: 26px;
  color: rgb(64, 83, 101);
  font-family: var(--proscribe-font-sans);
  font-size: 16px;
  line-height: 1.55;
}
.ps2-article-summary li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 9px;
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: #b68f6e;
}

/* Prose */
.ps2-article-prose h2 {
  margin: 46px 0 16px;
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.14;
  color: rgb(56, 59, 69);
}
.ps2-article-prose h3 {
  margin: 34px 0 12px;
  font-family: var(--proscribe-font-sans);
  font-weight: 600;
  font-size: 20px;
  color: rgb(56, 59, 69);
}
.ps2-article-prose p {
  margin: 0 0 20px;
  color: rgb(64, 83, 101);
  font-family: var(--proscribe-font-sans);
  font-size: 18px;
  line-height: 1.75;
}
.ps2-article-prose ul,
.ps2-article-prose ol { margin: 0 0 22px; padding-left: 4px; }
.ps2-article-prose li {
  margin: 0 0 10px 22px;
  padding-left: 6px;
  color: rgb(64, 83, 101);
  font-family: var(--proscribe-font-sans);
  font-size: 18px;
  line-height: 1.7;
}
.ps2-article-prose ul li { list-style: none; position: relative; margin-left: 26px; }
.ps2-article-prose ul li::before {
  content: "";
  position: absolute;
  left: -20px;
  top: 12px;
  width: 6px;
  height: 6px;
  border-radius: 2px;
  background: #b68f6e;
}
.ps2-article-prose ol { counter-reset: step; padding-left: 0; }
.ps2-article-prose ol li { list-style: none; position: relative; margin-left: 44px; counter-increment: step; }
.ps2-article-prose ol li::before {
  content: counter(step, decimal-leading-zero);
  position: absolute;
  left: -44px;
  top: 1px;
  color: #b68f6e;
  font-family: var(--proscribe-font-mono);
  font-size: 14px;
  font-weight: 600;
}
.ps2-article-prose hr,
.ps2-article-rule {
  border: 0;
  border-top: 1px solid rgba(82, 104, 120, 0.2);
  margin: 40px 0;
}

/* Callout — ProScribe Tip */
.ps2-callout {
  margin: 34px 0;
  padding: 26px 30px;
  background: #fbf5ea;
  border: 0;
  border-radius: 12px;
}
.ps2-callout-label {
  display: block;
  margin-bottom: 8px;
  color: #a97f57;
  font-family: var(--proscribe-font-sans);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}
.ps2-callout p {
  margin: 0;
  color: rgb(64, 83, 101);
  font-family: var(--proscribe-font-sans);
  font-size: 17px;
  line-height: 1.7;
}

/* Compact inline CTA */
.ps2-inline-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin: 44px 0;
  padding: 30px 34px;
  background: #16212f;
  border-radius: 10px;
}
.ps2-inline-cta h3 {
  margin: 0 0 6px;
  color: #f3ead9;
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 24px;
}
.ps2-inline-cta p {
  margin: 0;
  max-width: 440px;
  color: #b9c7d2;
  font-family: var(--proscribe-font-sans);
  font-size: 15px;
  line-height: 1.6;
}
.ps2-inline-cta-link {
  flex-shrink: 0;
  color: #d7b48d;
  font-family: var(--proscribe-font-sans);
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  white-space: nowrap;
}
.ps2-inline-cta-link span { display: inline-block; transition: transform .25s ease; }
.ps2-inline-cta-link:hover span { transform: translateX(4px); }

.ps2-article-closing {
  color: rgb(64, 83, 101);
  font-family: var(--proscribe-font-sans);
  font-size: 18px;
  line-height: 1.75;
}
.ps2-article-end-cta {
  margin-top: 40px;
  padding-top: 30px;
  border-top: 1px solid rgba(82, 104, 120, 0.2);
}
.ps2-article-end-cta p {
  margin: 0 0 12px;
  color: rgb(56, 59, 69);
  font-family: var(--proscribe-font-serif);
  font-size: 22px;
  line-height: 1.4;
}

/* Related */
.ps2-related { background: #eef3f7; padding-top: 84px; padding-bottom: 96px; }
.ps2-related-head {
  margin: 0 0 34px;
  font-family: var(--proscribe-font-serif);
  font-weight: 400;
  font-size: 34px;
  color: rgb(56, 59, 69);
}

@media (max-width: 980px) {
  .ps2-res-grid { grid-template-columns: repeat(2, 1fr); }

  /* Collapse to a single column and swap the sticky sidebar for a dropdown */
  .ps2-article-layout {
    display: block;
    max-width: 920px;
    margin: 0 auto;
  }
  .ps2-article-toc { display: none; }
  .ps2-article-toc-mobile {
    display: block;
    margin-bottom: 34px;
    border: 1px solid rgba(82, 104, 120, 0.16);
    border-radius: 10px;
    background: #f6f9fb;
    overflow: hidden;
  }
  .ps2-article-toc-mobile summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    list-style: none;
    padding: 15px 20px;
    color: #5a6b78;
    font-family: var(--proscribe-font-sans);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
  }
  .ps2-article-toc-mobile summary::-webkit-details-marker { display: none; }
  .ps2-article-toc-mobile summary::after {
    content: "+";
    color: #b68f6e;
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
  }
  .ps2-article-toc-mobile[open] summary::after { content: "\2013"; }
  .ps2-article-toc-mobile ol {
    margin: 0;
    padding: 4px 20px 16px;
    list-style: none;
    border-top: 1px solid rgba(82, 104, 120, 0.14);
  }
  .ps2-article-toc-mobile a {
    display: flex;
    gap: 11px;
    padding: 9px 0;
    color: #5a6b78;
    font-family: var(--proscribe-font-sans);
    font-size: 14px;
    line-height: 1.4;
    text-decoration: none;
  }
}
@media (max-width: 860px) {
  .ps2-article-hero { min-height: 440px; padding: 150px 0 56px; }
  .ps2-article-body { padding: 64px 0 72px; }
  .ps2-inline-cta { flex-direction: column; align-items: flex-start; gap: 18px; }
}
@media (max-width: 620px) {
  .ps2-res-grid { grid-template-columns: 1fr; }
}

/* =====================================================================
   Service lower-page system: confidence band, testimonials, FAQ
   Shared across all individual service pages (+ trial support)
   ===================================================================== */

/* --- Full-width confidence band --- */
.ps2-confidence {
  position: relative;
  min-height: 660px;
  display: flex;
  align-items: center;
  padding: 80px 0;
  background-size: cover;
  background-position: right center;
}
/* Legal Videography confidence CTA: the left/text side of this particular
   photo reads lighter than the other service pages — add a touch more
   darkening there only, without changing the shared gradient every other
   service page's confidence section relies on. */
.ps2-page--legal-videography .ps2-confidence {
  background-position: center 20% !important;
}
.ps2-page--legal-videography .ps2-confidence::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(96deg, rgba(11,18,30,.28) 0%, rgba(11,18,30,.16) 42%, rgba(11,18,30,0) 74%);
  pointer-events: none;
}
.ps2-confidence-body { max-width: 46%; }
.ps2-confidence-body h2 {
  margin: 0 0 22px;
  color: rgb(255, 244, 224);
  font-family: "Season Serif TRIAL", "The Seasons", "Cormorant Garamond", Georgia, serif;
  font-weight: 400;
  font-size: 50px;
  line-height: 54px;
}
.ps2-confidence-body p {
  margin: 0 0 34px;
  max-width: 500px;
  color: #d8e2e6;
  font-family: var(--proscribe-font-sans);
  font-size: 18px;
  line-height: 1.65;
}
@media (max-width: 1024px) {
  .ps2-confidence-body { max-width: 62%; }
}
@media (max-width: 768px) {
  .ps2-confidence { min-height: 0; padding: 74px 0; background-position: 68% center; }
  .ps2-confidence-body { max-width: 100%; }
  .ps2-confidence-body h2 { font-size: 38px; line-height: 42px; }
}

/* --- Testimonials --- */
.ps2-svc-testimonials { background: var(--proscribe-powder-light); padding: 104px 0; }
.ps2-svc-testimonials-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 56px;
}
.ps2-svc-testimonials-head h2 {
  margin: 0;
  color: rgb(56, 59, 69);
  font: 400 50px/54px var(--proscribe-font-serif);
}
.ps2-svc-testimonials-head p {
  margin: 0;
  max-width: 420px;
  text-align: right;
  color: #4a5d6c;
  font-family: var(--proscribe-font-sans);
  font-size: 16px;
  line-height: 1.72;
}
.ps2-svc-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.ps2-svc-quote {
  position: relative;
  margin: 0;
  padding: 52px 40px 44px;
  background: #ffffff;
  border-radius: 16px;
  border: 1px solid rgba(56, 59, 69, 0.08);
  display: flex;
  flex-direction: column;
}
.ps2-svc-quote-mark {
  font-family: "Season Serif TRIAL", "The Seasons", "Cormorant Garamond", Georgia, serif;
  font-size: 74px;
  line-height: 0.6;
  color: #b68f6e;
  opacity: 0.5;
  margin-bottom: 14px;
}
.ps2-svc-quote blockquote {
  margin: 0 0 32px;
  color: #384049;
  font-family: var(--proscribe-font-sans);
  font-size: 17px;
  line-height: 1.68;
  flex: 1 1 auto;
}
.ps2-svc-quote figcaption {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 22px;
  border-top: 1px solid rgba(56, 59, 69, 0.14);
}
.ps2-svc-quote-name { color: #23384a; font: 400 20px/1.2 var(--proscribe-font-serif); }
.ps2-svc-quote-role { color: #6b7d8b; font-family: var(--proscribe-font-sans); font-size: 13px; letter-spacing: 0.4px; font-style: normal; }
@media (max-width: 980px) {
  .ps2-svc-testimonials-grid { grid-template-columns: 1fr; max-width: 620px; }
}
@media (max-width: 768px) {
  .ps2-svc-testimonials-head { flex-direction: column; align-items: flex-start; gap: 18px; }
  .ps2-svc-testimonials-head h2 { font-size: 36px; line-height: 1.1; }
  .ps2-svc-testimonials-head p { text-align: left; }
}

/* --- Service-specific FAQ accordion --- */
.ps2-svc-faq { background: #ffffff; padding: 104px 0; }
.ps2-svc-faq-layout { display: block; }
.ps2-svc-faq-head { margin-bottom: 40px; }
.ps2-svc-faq-head h2 {
  margin: 0;
  color: rgb(56, 59, 69);
  font: 400 50px/54px var(--proscribe-font-serif);
}
.ps2-svc-faq-list { border-top: 1px solid rgba(56, 59, 69, 0.16); }
.ps2-svc-faq-list details {
  border-bottom: 1px solid rgba(56, 59, 69, 0.16);
}
.ps2-svc-faq-list summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 28px 0;
  color: #23384a;
  font-family: var(--proscribe-font-sans);
  font-weight: 500;
  font-size: 19px;
  line-height: 1.4;
}
.ps2-svc-faq-list summary::-webkit-details-marker { display: none; }
.ps2-svc-faq-mark {
  position: relative;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
}
.ps2-svc-faq-mark::before,
.ps2-svc-faq-mark::after {
  content: "";
  position: absolute;
  background: #b68f6e;
  transition: transform 0.28s ease, opacity 0.28s ease;
}
.ps2-svc-faq-mark::before { top: 9px; left: 0; width: 20px; height: 2px; }
.ps2-svc-faq-mark::after { left: 9px; top: 0; width: 2px; height: 20px; }
.ps2-svc-faq-list details[open] .ps2-svc-faq-mark::after { transform: scaleY(0); opacity: 0; }
.ps2-svc-faq-list details > p {
  margin: 0;
  padding: 0 46px 30px 0;
  color: #4a5d6c;
  font-family: var(--proscribe-font-sans);
  font-size: 16px;
  line-height: 1.75;
}
@media (max-width: 980px) {
  .ps2-svc-faq-layout { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 768px) {
  .ps2-svc-faq { padding: 40px 0 74px; }
  .ps2-svc-testimonials { padding-bottom: 40px; }
  .ps2-svc-faq-head h2 { font-size: 36px; line-height: 1.1; }
  .ps2-svc-faq-list summary { font-size: 17px; }
}

/* =====================================================================
   Responsive polish pass — inner-page system (tablet + mobile)
   Consolidated safety net so long headings never overflow and every
   section keeps comfortable rhythm on small screens.
   ===================================================================== */
@media (max-width: 768px) {
  /* Generic serif section headings scale down (specific overrides still win) */
  .ps2-section-heading h2 { font-size: 34px; line-height: 1.16; }
  /* Long unbroken strings (emails, case numbers) never force a scrollbar */
  .ps2-article-prose, .ps2-form-card, .ps2-contact-box, .ps2-techreq-card { overflow-wrap: anywhere; }
  /* Editorial split media: image sits above copy at a sensible height */
  .ps2-split-media figure img, .ps2-deep-split .ps2-split-media figure img { height: 280px; }
  /* Confidence band + inline CTAs breathe */
  .ps2-confidence { background-position: 72% center; }
}
@media (max-width: 420px) {
  .ps2-hero h1 { font-size: 34px; line-height: 1.12; }
  .ps2-article-hero h1 { font-size: 36px; line-height: 1.08; }
  .ps2-confidence-body h2, .ps2-svc-testimonials-head h2, .ps2-svc-faq-head h2,
  .ps2-techreq-head h2, .ps2-sform-head h2 { font-size: 30px; line-height: 1.14; }
  .ps2-form-card { padding: 26px 18px; }
  .ps2-uc-card { padding: 34px 26px; }
  .ps2-contact-box, .ps2-techreq-card { padding: 32px 26px; }
}

/* =====================================================================
   Mobile H1 audit — final word on every hero heading across all page
   systems, appended last with !important so it cannot lose to any
   earlier unscoped desktop rule (e.g. the old unscoped .ps2-hero h1
   65px rule that was still winning over the in-place mobile override).
   ===================================================================== */
@media (max-width: 768px) {
  .proscribe-hero-title { font-size: 36px !important; line-height: 1.1 !important; }
  .ps2-hero h1 { font-size: 34px !important; line-height: 1.12 !important; margin: 14px 0 18px !important; }
  .ps-page-hero h1 { font-size: 34px !important; line-height: 1.12 !important; }
  .ps2-article-hero h1 { font-size: 32px !important; line-height: 1.1 !important; }
}
@media (max-width: 420px) {
  .proscribe-hero-title { font-size: 30px !important; }
  .ps2-hero h1 { font-size: 28px !important; line-height: 1.16 !important; }
  .ps-page-hero h1 { font-size: 28px !important; line-height: 1.16 !important; }
  .ps2-article-hero h1 { font-size: 27px !important; line-height: 1.14 !important; }
}

/* =====================================================================
   Mobile menu panel — final word: fully solid background (no alpha, so
   zero chance of the hero photo/heading bleeding through) and tighter
   spacing throughout. Appended last + !important so nothing can beat it.
   ===================================================================== */
@media (max-width: 900px) {
  .proscribe-inner-nav nav,
  .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-links {
    background: linear-gradient(180deg, #222D40 0%, #15212F 100%) !important;
    padding-top: 40px !important;
    padding-bottom: 24px !important;
  }
  .proscribe-inner-nav nav > a,
  .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-links > .nav-item {
    padding: 18px 24px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }
  body.proscribe-nav-open .proscribe-inner-nav .proscribe-nav-dropdown > a,
  .proscribe-inner-nav .proscribe-nav-dropdown > a,
  body.proscribe-nav-open .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-dropdown > .nav-item,
  .proscribe-header-wrapper .proscribe-header-container .proscribe-nav-dropdown > .nav-item {
    padding: 18px 24px !important;
  }
  body.proscribe-nav-open .proscribe-inner-nav .proscribe-dropdown-menu a,
  body.proscribe-nav-open .proscribe-header-wrapper .proscribe-header-container .proscribe-dropdown-menu a {
    padding: 13px 24px 13px 40px !important;
    font-size: 14px !important;
  }
  .proscribe-nav-cta-mobile {
    margin: 26px 24px 0 !important;
    padding: 16px !important;
  }
}

/* =====================================================================
   SITE-WIDE mobile + tablet heading audit — final, comprehensive pass.
   Covers every hero/section H1 and two-tone H2 heading system on the
   site, across THREE tiers (tablet / phone / small phone). Appended
   last + !important so it wins regardless of specificity or source
   order anywhere else in this file.
   ===================================================================== */
@media (max-width: 1024px) {
  .proscribe-hero-title { font-size: 40px !important; line-height: 1.1 !important; }
  .proscribe-trial-title { font-size: 38px !important; line-height: 1.15 !important; }
  .ps2-hero h1,
  .ps2-hero--minimal h1,
  .ps2-hero--services h1 { font-size: 40px !important; line-height: 1.12 !important; max-width: 100% !important; }
  .ps-page-hero h1 { font-size: 40px !important; line-height: 1.12 !important; }
  .ps2-article-hero h1 { font-size: 38px !important; line-height: 1.1 !important; }
  .proscribe-inner-hero h1 { font-size: 40px !important; line-height: 1.12 !important; }
  .ps2-section-heading h2,
  .proscribe-case-standard-copy h2,
  .ps2-about-editorial-copy .ps2-section-heading h2,
  .ps2-deep-split .ps2-section-heading h2,
  .ps2-service-directory .ps2-section-heading h2 { font-size: 34px !important; line-height: 1.16 !important; }
}
@media (max-width: 768px) {
  .proscribe-hero-title { font-size: 34px !important; line-height: 1.12 !important; }
  .proscribe-trial-title { font-size: 32px !important; line-height: 1.16 !important; }
  .ps2-hero h1,
  .ps2-hero--minimal h1,
  .ps2-hero--services h1 { font-size: 32px !important; line-height: 1.14 !important; margin: 14px 0 16px !important; }
  .ps-page-hero h1 { font-size: 32px !important; line-height: 1.14 !important; }
  .ps2-article-hero h1 { font-size: 30px !important; line-height: 1.12 !important; }
  .proscribe-inner-hero h1 { font-size: 32px !important; line-height: 1.14 !important; }
  .ps2-section-heading h2,
  .proscribe-case-standard-copy h2,
  .ps2-about-editorial-copy .ps2-section-heading h2,
  .ps2-deep-split .ps2-section-heading h2,
  .ps2-service-directory .ps2-section-heading h2 { font-size: 28px !important; line-height: 1.18 !important; }
}
@media (max-width: 420px) {
  .proscribe-hero-title { font-size: 28px !important; }
  .proscribe-trial-title { font-size: 27px !important; max-width: 265px !important; }
  .proscribe-trial-banner-content .proscribe-trial-title { max-width: 240px !important; }
  .ps2-hero h1,
  .ps2-hero--minimal h1,
  .ps2-hero--services h1 { font-size: 26px !important; line-height: 1.18 !important; }
  .ps-page-hero h1 { font-size: 26px !important; line-height: 1.18 !important; }
  .ps2-article-hero h1 { font-size: 25px !important; line-height: 1.16 !important; }
  .proscribe-inner-hero h1 { font-size: 26px !important; line-height: 1.18 !important; }
  .ps2-section-heading h2,
  .proscribe-case-standard-copy h2,
  .ps2-about-editorial-copy .ps2-section-heading h2,
  .ps2-deep-split .ps2-section-heading h2,
  .ps2-service-directory .ps2-section-heading h2 { font-size: 25px !important; line-height: 1.2 !important; }
}

/* Homepage "Every Step, Covered" process heading — kill the 65px top
   margin that was creating a large empty gap above it on mobile. */
@media (max-width: 768px) {
  .proscribe-process-heading { margin: 0 auto 28px !important; }
}

/* About two-tone H1: on mobile force the slate accent phrase onto its own
   line so it doesn't wrap mid-flow into an awkward orphan. */
@media (max-width: 768px) {
  .ps2-about-editorial-copy .ps2-section-heading h2 span { display: block !important; }
}

/* Leadership: on mobile move the portrait BELOW the bio copy. */
@media (max-width: 768px) {
  .ps2-leadership-grid { display: flex !important; flex-direction: column !important; }
  .ps2-leadership-photo { order: 2 !important; margin-top: 26px !important; }
  .ps2-leadership-copy { order: 1 !important; }
}

/* Footer: single-column stack on mobile instead of a 2x2 grid — the
   standard, more readable mobile footer pattern. */
@media (max-width: 768px) {
  .proscribe-footer-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
}

/* =====================================================================
   FINAL PASS — uniform H1 size across the entire site (one number per
   tier, every hero H1 selector), guaranteed hamburger visibility on
   every inner page, and the About-page split-media / case-standard
   heading fixes. Last in file + !important: wins every cascade fight.
   ===================================================================== */
@media (max-width: 1024px) {
  .proscribe-hero-title,
  .proscribe-trial-title,
  .ps2-hero h1,
  .ps2-hero--minimal h1,
  .ps2-hero--services h1,
  .ps-page-hero h1,
  .ps2-article-hero h1,
  .proscribe-inner-hero h1 { font-size: 38px !important; line-height: 1.12 !important; max-width: 100% !important; }
}
@media (max-width: 768px) {
  .proscribe-hero-title,
  .proscribe-trial-title,
  .ps2-hero h1,
  .ps2-hero--minimal h1,
  .ps2-hero--services h1,
  .ps-page-hero h1,
  .ps2-article-hero h1,
  .proscribe-inner-hero h1 { font-size: 30px !important; line-height: 1.15 !important; margin: 12px 0 16px !important; }
  .proscribe-case-standard-copy h2 { font-size: 30px !important; line-height: 1.18 !important; }
}
@media (max-width: 420px) {
  .proscribe-hero-title,
  .proscribe-trial-title,
  .ps2-hero h1,
  .ps2-hero--minimal h1,
  .ps2-hero--services h1,
  .ps-page-hero h1,
  .ps2-article-hero h1,
  .proscribe-inner-hero h1 { font-size: 26px !important; line-height: 1.18 !important; }
  .proscribe-case-standard-copy h2 { font-size: 27px !important; line-height: 1.2 !important; }
}

/* Hamburger must always show on inner pages ≤900px — guaranteed. */
@media (max-width: 900px) {
  .proscribe-inner-nav .proscribe-nav-toggle {
    display: inline-flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 5px !important;
    width: 44px !important;
    height: 44px !important;
    padding: 10px !important;
    background: transparent !important;
    border: 1px solid rgba(211, 181, 140, .5) !important;
    border-radius: 7px !important;
  }
  .proscribe-inner-nav .proscribe-nav-toggle span {
    display: block !important;
    height: 2px !important;
    width: 100% !important;
    background: #e8d0a3 !important;
    border-radius: 2px !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
}
@media (max-width: 768px) {
  .ps2-hero--about {
    background-image: url('../images/about-hero-mobile.png') !important;
    background-size: cover !important;
    background-position: center !important;
  }
}

/* About page: collapse the editorial split-media to one column on
   mobile — it had its own unconditional 2-column grid that never
   stacked, squeezing both the photo and the copy into narrow slivers. */
@media (max-width: 900px) {
  .ps2-about-editorial .ps2-split-media {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  /* Drop the forced 1:1 square on mobile — the landscape photo left a grey
     filler block below itself. Let the figure wrap the image tightly. */
  .ps2-about-editorial figure {
    aspect-ratio: auto !important;
    height: auto !important;
  }
  .ps2-about-editorial figure img {
    height: auto !important;
  }
}

/* "Your Case Deserves / Complete Accuracy." — correct class was
   .proscribe-section-title (not .proscribe-case-standard-copy h2,
   which does not apply to this widget). Fits 2 lines now. */
@media (max-width: 768px) {
  .proscribe-section-title { font-size: 26px !important; line-height: 1.22 !important; }
}
@media (max-width: 420px) {
  .proscribe-section-title { font-size: 23px !important; line-height: 1.24 !important; }
}

/* =====================================================================
   Final sizing/alignment pass — corrections after Codex's independent
   audit confirmed the H1 overrides are sound. These are additional,
   separate bugs Codex flagged or the user reported directly.
   ===================================================================== */
@media (max-width: 768px) {
  /* "Your Case Deserves / Complete Accuracy." was pushed too small */
  .proscribe-section-title { font-size: 30px !important; line-height: 1.2 !important; }

  /* "Every Step, Covered" homepage process heading had no mobile
     size override at all (still rendering at its 50px desktop size) */
  .proscribe-process-heading h2 { font-size: 32px !important; line-height: 1.15 !important; }

  /* Services intro block ("Professional Services for Every Proceeding")
     and its paragraph were centering on mobile — left-align to match
     the rest of the site's mobile heading treatment */
  .proscribe-services-header,
  .proscribe-services-header * { text-align: left !important; }

  /* Footer copyright line was centering on mobile */
  .copyright-text { text-align: left !important; }
}
@media (max-width: 420px) {
  .proscribe-section-title { font-size: 27px !important; }
  .proscribe-process-heading h2 { font-size: 28px !important; }
}

/* "Let's Get Your Deposition Scheduled" (homepage schedule-cta widget)
   — .proscribe-schedule-title had zero mobile override, still rendering
   at its 55px desktop size. */
@media (max-width: 768px) {
  .proscribe-schedule-title { font-size: 32px !important; line-height: 1.15 !important; }
}
@media (max-width: 420px) {
  .proscribe-schedule-title { font-size: 28px !important; }
}

/* =====================================================================
   TRUE FINAL WORD — universal mobile cap on every H1 and H2 site-wide,
   by HTML TAG rather than class name. Every hero/section heading across
   both page systems uses h1 or h2; every card/sub-item heading uses h3
   (verified against all widget + page templates) — so this is a safe,
   exhaustive catch-all that needs no per-class enumeration and cannot
   miss a future heading the way the class-by-class overrides above did.
   Absolutely last in the file + !important: nothing can beat this.
   ===================================================================== */
@media (max-width: 1024px) {
  .ps2-page h1, .proscribe-inner-page h1, body h1,
  .ps2-page h2, .proscribe-inner-page h2, .proscribe-header-wrapper ~ * h2,
  section h1, section h2, header h1, header h2 {
    font-size: 38px !important;
    line-height: 1.15 !important;
  }
}
@media (max-width: 768px) {
  .ps2-page h1, .proscribe-inner-page h1, body h1,
  .ps2-page h2, .proscribe-inner-page h2, .proscribe-header-wrapper ~ * h2,
  section h1, section h2, header h1, header h2 {
    font-size: 30px !important;
    line-height: 1.18 !important;
  }
}
@media (max-width: 420px) {
  .ps2-page h1, .proscribe-inner-page h1, body h1,
  .ps2-page h2, .proscribe-inner-page h2, .proscribe-header-wrapper ~ * h2,
  section h1, section h2, header h1, header h2 {
    font-size: 26px !important;
    line-height: 1.2 !important;
  }
}

/* Hero H1s vs. other H1s split — hero titles get slightly larger
   treatment than generic page H1s on mobile. Placed after the universal
   h1/h2 catch-all so it wins for hero-specific selectors. */
@media (max-width: 768px) {
  h1 { font-size: 30px !important; line-height: 1.18 !important; }
  .proscribe-hero-title,
  .ps2-hero h1,
  .ps2-hero--minimal h1,
  .ps2-hero--services h1 { font-size: 33px !important; line-height: 1.16 !important; }
}
@media (max-width: 420px) {
  h1 { font-size: 26px !important; line-height: 1.2 !important; }
  .proscribe-hero-title,
  .ps2-hero h1,
  .ps2-hero--minimal h1,
  .ps2-hero--services h1 { font-size: 29px !important; line-height: 1.18 !important; }
}

/* Final word: push hero text down for more breathing room, and
   guarantee the bottom fade is strong/visible (earlier attempt wasn't
   showing — hardened here with !important, last in cascade). */
@media (max-width: 768px) {
  .ps2-hero { position: relative !important; overflow: hidden !important; }
  .ps2-hero-inner {
    position: relative !important;
    z-index: 2 !important;
    margin-top: 48px !important;
  }
  .ps2-hero::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 40% !important;
    background: linear-gradient(to bottom,
      rgba(8, 17, 29, 0) 0%,
      rgba(8, 17, 29, .2) 40%,
      rgba(8, 17, 29, .5) 75%,
      rgba(8, 17, 29, .65) 100%) !important;
    pointer-events: none !important;
    z-index: 1 !important;
  }
}

/* "Trial Support That Keeps You Ready." homepage banner — mobile-only
   image swap. Scoped to max-width:768px so desktop keeps the original
   trial-support-poster.jpg untouched (inline background-image beaten
   here only via !important within this mobile media query). */
@media (max-width: 768px) {
  .proscribe-trial-banner-section {
    background-image: linear-gradient(to right, rgba(7,9,14,0.82) 0%, rgba(7,9,14,0.55) 32%, rgba(7,9,14,0.12) 62%, rgba(7,9,14,0) 80%), linear-gradient(to top, rgba(7,9,14,0.6) 0%, rgba(7,9,14,0.32) 48%, rgba(7,9,14,0.05) 100%), url('../images/trial-support-mobile.png') !important;
    background-size: cover !important;
    background-position: center !important;
  }
}

/* Court Reporting confidence CTA ("Ready for the Demands of Every Matter."):
   mobile-only portrait image swap so the crop suits a narrow viewport
   instead of the wide desktop photo being squeezed via background-position. */
@media (max-width: 768px) {
  .ps2-page--court-reporting .ps2-confidence {
    background-image: linear-gradient(96deg,rgba(11,18,30,.82) 0%,rgba(11,18,30,.62) 42%,rgba(11,18,30,.3) 74%,rgba(11,18,30,.1) 100%), url('../images/court-reporting-confidence-mobile.jpg') !important;
    background-size: cover !important;
    background-position: center !important;
  }
}

/* Trailing whitespace under the trial-banner card and above the footer was
   stacking up (card bottom padding + next section top padding) — tighten
   it across the whole tablet/mobile range, not just the narrowest phones. */
@media (max-width: 1024px) {
  .proscribe-trial-banner-section {
    padding-bottom: 40px !important;
  }
  .proscribe-testimonials-section {
    padding-top: 48px !important;
  }
  .proscribe-schedule-cta-section {
    min-height: 0 !important;
    padding: 56px 0 !important;
  }
  .proscribe-footer-section {
    padding-top: 40px !important;
  }
}

/* Rotating case-badge circle was touching the image's bottom edge on
   mobile — nudge it up. */
@media (max-width: 768px) {
  .proscribe-case-badge { bottom: 40px !important; right: 16px !important; }
}

/* Services section (dark cards, ends with "Results That Last") had too
   much empty space below the last card on mobile. */
@media (max-width: 768px) {
  .proscribe-services-section { padding: 44px 0 36px !important; }
  .proscribe-services-header {
    gap: 14px !important;
    margin-bottom: 34px !important;
  }
  .proscribe-services-header .proscribe-section-title {
    margin-bottom: 0 !important;
  }
  .proscribe-services-header .proscribe-header-subtext {
    margin-top: 0 !important;
  }
}

/* Sticky header content was inset further than the page content wrapper
   below it (extra internal padding stacked on top of the same
   --proscribe-content width), making logo/menu misaligned with the
   content edges. Match them by removing the extra internal padding. */
@media (max-width: 768px) {
  .proscribe-header-wrapper .proscribe-header-container,
  .proscribe-inner-nav .proscribe-header-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* =====================================================================
   Mobile header: full-width flush bar stuck to the top — no rounded
   "pill" card look (that's a desktop-only floating-header style).
   ===================================================================== */
@media (max-width: 768px) {
  .proscribe-header-wrapper { padding: 0 !important; top: 0 !important; }
  .proscribe-header-wrapper .proscribe-header-container,
  .proscribe-inner-nav .proscribe-header-container {
    width: 100% !important;
    border-radius: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .proscribe-inner-nav { padding: 0 !important; }
}

/* Hero text-lower fix, corrected: on an align-items:flex-end flex
   container, margin-top on the item cancels out (it shifts the box
   down but grows it by the same amount, net zero — confirmed via
   independent review). The only way to show more photo above the text
   is to make the hero section taller, which keeps the CTA anchored to
   the same bottom offset while giving the flex-end block more room to
   sit further from the top. */
@media (max-width: 768px) {
  .ps2-hero-inner { margin-top: 0 !important; }
  .ps2-hero { min-height: 720px !important; }
}

/* Homepage scroll-reveal — subtle fade + rise (desktop only; the .ps-reveal-on
   flag is added by JS solely when the viewport is desktop and the visitor has
   not requested reduced motion, so content is never hidden without JS). */
html.ps-reveal-on .ps-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
html.ps-reveal-on .ps-reveal.is-in {
  opacity: 1;
  transform: none;
}

/* Resources page imagery — generated assets are 16:9 hero and 4:3 cards.
   Keep the frames at those ratios so images crop naturally instead of
   feeling flattened by the old fixed-height card slots. */
.ps2-hero--resources {
  min-height: min(650px, 56.25vw) !important;
}
.ps2-resource-feature .ps2-featured-article figure,
.ps2-res-card-media {
  aspect-ratio: 4 / 3 !important;
}
.ps2-resource-feature .ps2-featured-article {
  background: #ffffff !important;
  border-radius: 10px !important;
  padding: 24px !important;
  box-shadow: 0 18px 50px rgba(7, 18, 31, 0.08) !important;
  gap: 42px !important;
  align-items: center !important;
}
.ps2-resource-feature .ps2-featured-article > div {
  max-width: 680px !important;
}
.ps2-resource-feature .ps2-featured-article figure {
  border-radius: 8px !important;
}
.ps2-resource-feature .ps2-featured-article h2 {
  margin: 14px 0 18px !important;
  font: 400 clamp(34px, 3vw, 50px)/1.08 var(--proscribe-font-serif) !important;
  color: #383b45 !important;
}
.ps2-resource-feature .ps2-featured-article h2 a {
  display: inline !important;
  color: inherit !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font: inherit !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
}
.ps2-resource-feature .ps2-featured-article h2 a:hover {
  color: #5b7a92 !important;
}
.ps2-resource-feature .ps2-featured-article img,
.ps2-res-card-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
@media (max-width: 768px) {
  .ps2-hero--resources {
    min-height: 560px !important;
  }
  .ps2-resource-feature .ps2-featured-article img,
  .ps2-res-card-media img {
    height: 100% !important;
  }
  .ps2-resource-feature .ps2-featured-article {
    padding: 20px !important;
    gap: 26px !important;
  }
}

/* Inner-page heroes (services, about, etc.): on mobile, anchor the copy to
   the bottom of the hero — matching the homepage hero — instead of leaving a
   large dead band of image below the text. Column flex + justify-content
   flex-end is unambiguous where the earlier align-items:flex-end did not
   bottom-anchor. Last in the cascade so it wins. */
@media (max-width: 768px) {
  .ps2-hero:not(.ps2-hero--contact):not(.ps2-hero--schedule) {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    min-height: 620px !important;
    padding-top: 120px !important;
    padding-bottom: 44px !important;
  }
  .ps2-hero-inner { margin-top: 0 !important; }
  /* Contact/Schedule use the short "minimal" hero — keep it short on mobile
     too instead of inheriting the 620px marketing-hero height above. */
  .ps2-hero--contact, .ps2-hero--schedule {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    min-height: 320px !important;
    padding-top: 96px !important;
    padding-bottom: 36px !important;
  }
}

/* Tablet (769–1024): the expect-long stenograph + rings are shoved too far
   left by the desktop -150px translate — nudge them back toward center. */
@media (min-width: 769px) and (max-width: 1024px) {
  .ps2-expect-long .ps2-expect-media img { transform: translateX(-50px) !important; }
  .ps2-expect-rings { transform: translateX(-50px) !important; }
}

/* Tablet (768–1024): brand full-width on top; Services + Resources as the
   two columns; Contact Us stacked full-width UNDERNEATH them, framed by two
   horizontal rules. */
@media (min-width: 768px) and (max-width: 1024px) {
  .proscribe-footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 0 !important;
    align-items: start !important;
  }
  .proscribe-footer-grid > .footer-col-brand {
    grid-column: 1 / -1 !important;
    order: 0 !important;
    padding-bottom: 28px !important;
  }
  .proscribe-footer-grid .footer-brand-text {
    max-width: 640px !important;
  }
  /* Services | Resources: even columns with a centered vertical divider */
  .proscribe-footer-grid > .footer-col:nth-child(3) { order: 1 !important; padding-right: 44px !important; } /* Services */
  .proscribe-footer-grid > .footer-col:nth-child(4) { /* Resources */
    order: 2 !important;
    padding-left: 68px !important;
    border-left: 1px solid rgba(216, 226, 230, 0.14) !important;
  }
  /* Contact Us: stacked full-width band below the two columns, between lines */
  .proscribe-footer-grid > .footer-col:nth-child(2) {
    order: 3 !important;
    grid-column: 1 / -1 !important;
    margin-top: 30px !important;
    padding: 30px 0 !important;
    border-top: 1px solid rgba(216, 226, 230, 0.14) !important;
  }
  /* Copyright rule sits immediately after the Contact band so the contact
     content reads as vertically centred between the two lines. */
  .proscribe-footer-bottom {
    margin-top: 0 !important;
    padding-top: 22px !important;
    border-top: 1px solid rgba(216, 226, 230, 0.14) !important;
  }
}

/* Footer column separators — desktop only */
@media (min-width: 1025px) {
  .proscribe-footer-grid {
    grid-template-columns: 1.7fr 1fr 1fr 1fr !important;
    gap: 0 !important;
  }
  .proscribe-footer-grid > .footer-col {
    position: relative;
    padding-left: 48px;
  }
  .proscribe-footer-grid > .footer-col:first-child {
    padding-left: 0;
    padding-right: 30px;
  }
  .proscribe-footer-grid .footer-brand-text {
    max-width: 390px !important;
  }
  .proscribe-footer-grid > .footer-col + .footer-col::before {
    content: "";
    position: absolute;
    top: 4px;
    bottom: 8px;
    left: 0;
    width: 1px;
    background: rgba(216, 226, 230, 0.08);
  }
}
@media (max-width: 768px) {
  .proscribe-footer-grid > .footer-col {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .proscribe-footer-grid > .footer-col::before {
    display: none !important;
  }
}

/* Schedule page: the sidebar is display:none on mobile, but its grid column
   track (.85fr) was still being reserved because the desktop 2-column rule
   for this specific layout has higher specificity than the generic 1-column
   mobile reset — leaving a dead empty strip on the right. */
@media (max-width: 1024px) {
  .ps2-schedule-intake .ps2-intake-layout {
    grid-template-columns: 1fr !important;
  }
}

/* Contact page: tighten the gap between the hero and the form/image row. */
@media (max-width: 768px) {
  .ps2-contact-routing { padding-top: 40px !important; }
}

/* =====================================================================
   CONSOLIDATED MOBILE GAP AUDIT (<=768px) — single override layer.
   Kills excess section padding, oversized heading margins, uncollapsed
   grids, card min-heights that force blank space, and cramped gutters
   across every inner-page template. Hero/banner heights and the closing
   CTA are intentionally left alone. Desktop is untouched.
   ===================================================================== */
@media (max-width: 768px) {
  /* --- Section padding / heading margins (empty bands) --- */
  .ps2-service-index:first-of-type { padding-top: 34px !important; }
  .ps2-service-directory .ps2-section-heading--split { margin-bottom: 26px !important; }
  .ps2-service-row { padding: 32px 0 !important; }
  .ps2-approach { padding: 34px 0 !important; }
  .ps2-process-glass { padding: 40px 0 !important; }
  .ps2-process-glass-head { margin-bottom: 26px !important; }
  .ps2-journey-head { margin: 0 0 26px !important; }
  .ps2-journey-ico svg { width: 32px !important; height: 32px !important; }
  /* Schedule/contact heroes carry more headline text — give the two lines
     breathing room and a slightly smaller size so they don't feel cramped. */
  .ps2-hero--schedule h1, .ps2-hero--contact h1 { font-size: 26px !important; line-height: 1.3 !important; }
  .ps2-expect { padding-top: 22px !important; }
  .ps2-expect-head { margin-bottom: 26px !important; }
  .ps2-cred-tags { padding-top: 26px !important; }
  .ps2-leadership { padding-top: 28px !important; padding-bottom: 40px !important; }
  .ps2-why { padding-top: 34px !important; padding-bottom: 40px !important; }
  .ps2-why-head { margin-bottom: 26px !important; }
  .ps2-values { padding-top: 34px !important; padding-bottom: 40px !important; }
  .ps2-svc-faq { padding: 40px 0 !important; }
  .ps2-svc-testimonials { padding: 40px 0 !important; }
  .ps2-svc-testimonials-head { margin-bottom: 26px !important; }
  .ps2-confidence { padding: 40px 0 !important; }
  .ps2-contact-strip { padding: 32px 0 !important; }
  .ps2-schedule-intake { padding-top: 22px !important; }
  .ps2-techreq-head { margin-bottom: 26px !important; }
  .ps2-resource-library { padding-bottom: 40px !important; }
  .ps2-article-body { padding: 40px 0 !important; }
  .ps2-article-prose h2 { margin: 32px 0 14px !important; }
  .ps2-related { padding: 40px 0 !important; }
  .proscribe-case-standard-section { padding-bottom: 40px !important; }
  .proscribe-standard-section { padding-top: 34px !important; padding-bottom: 40px !important; }
  .proscribe-inner-content { padding: 28px 0 40px !important; }
  .ps-about-story, .ps-principles-band, .ps-service-hub, .ps-service-detail-bands,
  .ps-trial-command, .ps-trial-lanes, .ps-schedule-layout, .ps-resource-library,
  .ps-faq-band, .ps-contact-layout { padding: 28px 0 40px !important; }
  .ps-proof-strip { padding: 32px 0 !important; }
  .ps-schedule-steps { padding: 40px 0 !important; }
  .ps-contact-strip { padding: 32px 0 !important; }

  /* --- Grids that must collapse to one column on phones --- */
  .ps2-contact-info-grid { grid-template-columns: 1fr !important; }
  .ps2-techreq-grid { grid-template-columns: 1fr !important; }
  .ps2-res-grid { grid-template-columns: 1fr !important; }

  /* --- Cards: drop min-heights (blank space) + tighten side gutters --- */
  .ps2-service-map article, .ps2-article-grid article { min-height: 0 !important; padding: 28px 24px !important; }
  .ps2-service-directory .ps2-service-map article { min-height: 0 !important; padding: 30px 22px !important; }
  .ps2-board div, .ps2-process-grid article { min-height: 0 !important; padding: 28px 24px !important; }
  .ps2-timeline article { min-height: 0 !important; padding: 28px 24px !important; }
  .ps2-icard { min-height: 0 !important; padding: 30px 24px !important; }
  .ps2-glass-card { padding: 30px 24px !important; }
  .ps2-svc-quote { padding: 32px 24px !important; }
  .ps2-svc-quote-mark { font-size: 46px !important; margin-bottom: 2px !important; }
  .ps2-quote .ps2-quote-mark { font-size: 44px !important; line-height: 0.7 !important; margin-bottom: 2px !important; }
  /* Expect-long "Responsive Through Final Delivery": pull the stenograph up
     to the copy and shrink the decorative rings behind it on mobile. */
  .ps2-expect-long-body { padding-bottom: 12px !important; }
  .ps2-expect-long figure, .ps2-expect-long .ps2-expect-media { min-height: 190px !important; }
  .ps2-expect-rings { top: 60% !important; right: 50% !important; transform: translateX(50%) !important; }
  .ps2-expect-rings .ps2-ring--1 { width: 96px !important; height: 96px !important; }
  .ps2-expect-rings .ps2-ring--2 { width: 150px !important; height: 150px !important; }
  .ps2-expect-rings .ps2-ring--3 { width: 206px !important; height: 206px !important; }
  .ps2-contact-box { min-height: 0 !important; padding: 30px 24px !important; }
  .ps2-techreq-card { padding: 30px 24px !important; }
  .ps2-article-summary { margin-bottom: 26px !important; padding: 28px 22px !important; }
  .ps2-inline-cta { margin: 32px 0 !important; padding: 28px 22px !important; }
  .proscribe-testimonial-card { min-height: 0 !important; padding: 32px 22px !important; }
  .ps-detail-card { min-height: 0 !important; padding: 28px 24px !important; }
  .ps-lane { min-height: 0 !important; padding: 28px 24px !important; }

  /* Service-detail split: tighten the copy→image stack gap and the 72px
     padding wrapped around the overview section on mobile. */
  .ps2-split-media { gap: 24px !important; }
  .ps2-service-index > .ps2-split-media { padding-bottom: 34px !important; }
  .ps2-service-index:has(> .ps2-split-media) + .ps2-widget { padding-top: 34px !important; }

  /* --- Service-detail split ordering: the overview stacks copy-first /
     image-below, but the deep-split below it stacked image-first, so on
     flipped services two images sat back-to-back at the boundary. Force
     the deep-split to copy-first too → clean copy/image/copy/image rhythm. */
  .ps2-deep-split > .ps2-split-media figure { order: 2 !important; }
  .ps2-deep-split > .ps2-split-media .ps2-split-body { order: 1 !important; }
}
