.authority-page main {
  padding-top: 42px;
}

.authority-hero {
  grid-template-columns: minmax(0, 1fr) minmax(320px, .78fr);
}

.authority-visual {
  min-height: 500px;
}

.authority-photo {
  position: absolute;
  inset: 24px;
  width: calc(100% - 48px);
  height: calc(100% - 48px);
  border: 1px solid rgba(196,236,242,.12);
  border-radius: 20px 20px 20px 8px;
  object-fit: cover;
  filter: saturate(.82) contrast(1.06);
  opacity: .42;
}

.authority-visual::after {
  content: "";
  position: absolute;
  inset: 68px;
  border: 1px solid rgba(110,203,213,.24);
  border-radius: 38px 38px 38px 8px;
  pointer-events: none;
}

.authority-band {
  width: 100%;
  max-width: none;
  padding-left: max(24px, calc((100vw - var(--max)) / 2));
  padding-right: max(24px, calc((100vw - var(--max)) / 2));
}

.authority-dark {
  background: var(--surface-engineering);
}

.authority-light {
  color: var(--ink-dark);
  background: var(--surface-editorial);
}

.authority-light h2,
.authority-light h3 {
  color: var(--ink-dark);
}

.authority-light p {
  color: var(--muted-dark);
}

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

.authority-grid.four {
  grid-template-columns: repeat(4, 1fr);
}

.authority-card,
.article-card,
.case-study-card,
.toc-card {
  position: relative;
  min-height: 250px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 20px 20px 20px 8px;
  background:
    radial-gradient(circle at 100% 0%, rgba(110,203,213,.08), transparent 32%),
    rgba(255,255,255,.045);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
  transition: transform .32s var(--ease), border-color .32s var(--ease), box-shadow .32s var(--ease);
}

.authority-light .authority-card {
  background: rgba(255,255,255,.82);
  border-color: var(--line-dark);
}

.authority-card:hover,
.article-card:hover,
.case-study-card:hover,
.toc-card:hover {
  transform: translateY(-8px);
  border-color: rgba(53,207,224,.34);
  box-shadow: var(--shadow);
}

.authority-card small,
.article-card small,
.case-study-card small,
.toc-card small {
  color: var(--cyan);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.authority-card span,
.article-card span,
.case-study-card span,
.toc-card span {
  width: max-content;
  color: var(--cyan);
  font-weight: 900;
  border-bottom: 1px solid currentColor;
}

.authority-card img,
.article-card img,
.case-study-card img {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: -8px 0 18px;
  border-radius: 16px 16px 16px 6px;
  object-fit: cover;
  filter: saturate(.82) contrast(1.06);
}

.authority-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line-dark);
  border-radius: 20px 20px 20px 8px;
  background: rgba(255,255,255,.82);
  box-shadow: var(--shadow-soft);
}

.authority-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

.authority-table th,
.authority-table td {
  padding: 18px;
  border-bottom: 1px solid var(--line-dark);
  text-align: left;
  vertical-align: top;
}

.authority-table th {
  color: var(--ink-dark);
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.authority-table td {
  color: var(--muted-dark);
}

.authority-table tr:last-child td {
  border-bottom: 0;
}

.toc-layout {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 32px;
  align-items: start;
}

.toc-card {
  position: sticky;
  top: 110px;
}

.toc-card a {
  display: block;
  margin: 10px 0;
  color: rgba(247,251,252,.72);
  font-weight: 800;
}

.toc-card a:hover {
  color: var(--cyan);
}

.article-body {
  display: grid;
  gap: 24px;
}

.article-body section {
  padding: 28px;
  border: 1px solid var(--line-dark);
  border-radius: 20px 20px 20px 8px;
  background: rgba(255,255,255,.82);
}

.article-body h2,
.article-body h3 {
  color: var(--ink-dark);
}

.article-body p,
.article-body li,
.article-body blockquote {
  color: #31464f;
}

.article-body a {
  color: #147987;
  font-weight: 900;
}

.article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 26px 0;
}

.article-meta span {
  padding: 9px 12px;
  border: 1px solid rgba(196,236,242,.16);
  border-radius: 14px;
  color: rgba(247,251,252,.84);
  background: rgba(255,255,255,.055);
  font-weight: 800;
}

.category-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 34px;
}

.category-strip a {
  padding: 10px 13px;
  border: 1px solid var(--line);
  border-radius: 14px;
  color: rgba(247,251,252,.84);
  background: rgba(255,255,255,.045);
  font-weight: 800;
}

.category-strip a:hover {
  color: var(--cyan);
  border-color: rgba(53,207,224,.32);
}

.directory-controls,
.filter-bar,
.pagination,
.template-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 34px;
}

.directory-controls input,
.directory-controls select,
.search-panel input,
.search-panel select {
  min-height: 48px;
  min-width: min(100%, 260px);
  border: 1px solid rgba(196,236,242,.16);
  border-radius: 16px;
  color: var(--ink);
  background: rgba(255,255,255,.06);
  padding: 0 14px;
}

.directory-controls select option,
.search-panel select option,
.form-card select option,
.lead-form select option {
  color: #091016;
  background: #f7fbfc;
}

.directory-controls select option:checked,
.search-panel select option:checked,
.form-card select option:checked,
.lead-form select option:checked {
  color: #091016;
  background: #a9cff2;
}

.filter-chip,
.pagination a,
.pagination span,
.tag-pill {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  padding: 0 13px;
  border: 1px solid rgba(196,236,242,.14);
  border-radius: 14px;
  color: rgba(247,251,252,.82);
  background: rgba(255,255,255,.05);
  font-weight: 900;
}

.filter-chip.is-active,
.pagination a[aria-current="page"],
.pagination span[aria-current="page"],
.tag-pill {
  color: var(--ink-dark);
  background: var(--cyan);
  border-color: transparent;
}

.pagination span[aria-disabled="true"] {
  opacity: .46;
  cursor: not-allowed;
}

.outline-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.outline-list li {
  padding: 14px 16px;
  border: 1px solid var(--line-dark);
  border-radius: 14px;
  color: #31464f;
  background: rgba(255,255,255,.62);
}

.form-directory {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.form-card {
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 20px 20px 20px 8px;
  background: rgba(255,255,255,.045);
}

.form-card form {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.form-card label {
  display: grid;
  gap: 8px;
  color: rgba(247,251,252,.84);
  font-weight: 800;
}

.form-card input,
.form-card select,
.form-card textarea {
  width: 100%;
  border: 1px solid rgba(196,236,242,.16);
  border-radius: 14px;
  color: var(--ink);
  background: rgba(255,255,255,.06);
  padding: 12px 13px;
}

.contact-workspace {
  display: grid;
  grid-template-columns: minmax(280px, .82fr) minmax(420px, 1.18fr);
  gap: clamp(30px, 6vw, 88px);
  align-items: start;
}

.contact-details h2,
.contact-form-panel h2 {
  margin: 0 0 20px;
  color: var(--ink);
  font-size: clamp(34px, 5vw, 64px);
  line-height: 1;
}

.contact-details > p:not(.eyebrow) {
  max-width: 590px;
  color: var(--muted);
  line-height: 1.7;
}

.contact-details address {
  display: grid;
  gap: 12px;
  margin-top: 34px;
  font-style: normal;
}

.contact-details address > a,
.contact-details address > p {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
}

.contact-details address span {
  color: var(--cyan);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.contact-details address strong {
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.5;
}

.contact-form-panel {
  padding: clamp(24px, 4vw, 44px);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255,255,255,.045);
  box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.08);
}

.contact-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.contact-form-panel .lead-form {
  display: grid;
  gap: 16px;
}

.contact-form-panel .button {
  width: max-content;
}

@media (max-width: 820px) {
  .contact-workspace,
  .contact-form-grid {
    grid-template-columns: 1fr;
  }
}

.placeholder-status {
  display: inline-flex;
  width: max-content;
  margin-bottom: 16px;
  padding: 8px 12px;
  border: 1px solid rgba(110,203,213,.34);
  border-radius: 999px;
  color: var(--cyan);
  background: rgba(110,203,213,.08);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.search-results {
  display: grid;
  gap: 14px;
  margin-top: 24px;
}

.search-result {
  display: block;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 20px 20px 20px 8px;
  background: rgba(255,255,255,.045);
}

.search-result small {
  color: var(--cyan);
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

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

.author-card {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 20px 20px 20px 8px;
  background: rgba(255,255,255,.045);
}

@media (max-width: 980px) {
  .authority-hero,
  .toc-layout {
    grid-template-columns: 1fr;
  }

  .authority-grid,
  .authority-grid.four,
  .form-directory,
  .author-grid {
    grid-template-columns: 1fr 1fr;
  }

  .toc-card {
    position: static;
  }
}

@media (max-width: 640px) {
  .authority-grid,
  .authority-grid.four,
  .form-directory,
  .author-grid {
    grid-template-columns: 1fr;
  }

  .authority-visual {
    min-height: 420px;
  }

  .article-meta span,
  .category-strip a {
    width: 100%;
  }
}

/* Consultation form: spacious discovery workspace rather than estimator grid. */
.form-directory {
  grid-template-columns: minmax(0, 1.85fr) minmax(280px, 1fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
}

.consultation-form-card {
  padding: clamp(34px, 5vw, 68px);
}

.consultation-form-card > p {
  max-width: 640px;
  margin-bottom: 34px;
}

.consultation-form-card .lead-form {
  gap: 34px;
}

.consultation-form-card .lead-form fieldset {
  gap: 22px;
  padding: clamp(24px, 3vw, 38px);
}

.consultation-form-card .booking-fieldset {
  grid-template-columns: 1fr;
}

.consultation-form-card .consultation-select-wrap select,
.consultation-form-card .calendar-picker input[data-calendar-value] {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

.consultation-form-card .choice-card input {
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  border: 0;
}

.consultation-form-card .upload-fieldset {
  padding-bottom: 34px;
}

.consultation-form-card .upload-dropzone {
  min-height: 190px;
  align-content: center;
  padding: 46px 24px;
}

.consultation-journey-card {
  max-width: 390px;
  padding: clamp(26px, 3vw, 38px);
}

.consultation-journey-card h2 {
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1;
}

.consultation-journey-card > p {
  font-size: 14px;
}

.consultation-journey {
  margin-top: 24px;
}

.consultation-journey li {
  padding-bottom: 20px;
  padding-left: 42px;
}

.consultation-journey strong {
  font-size: 14px;
}

.consultation-journey li span {
  font-size: 12px;
  line-height: 1.4;
}

@media (max-width: 1000px) {
  .form-directory {
    grid-template-columns: 1fr;
  }

  .consultation-journey-card {
    position: static;
    max-width: none;
  }
}

@media (max-width: 640px) {
  .consultation-form-card {
    padding: 24px 18px;
  }

  .consultation-form-card .lead-form {
    gap: 24px;
  }

  .consultation-form-card .lead-form fieldset {
    padding: 20px 16px;
  }

  .consultation-form-card .upload-dropzone {
    min-height: 160px;
    padding: 34px 16px;
  }
}

/* Art direction pass for authority and support pages. */
.authority-page main {
  padding-top: 34px;
}

.authority-hero {
  column-gap: clamp(46px, 7vw, 104px);
}

.authority-visual {
  min-height: 560px;
  border-radius: 34px 34px 34px 12px;
}

.authority-visual::after {
  inset: 54px;
  border-radius: 42px 42px 42px 14px;
  border-color: rgba(123,227,238,.2);
}

.authority-band {
  padding-top: clamp(104px, 10vw, 150px);
  padding-bottom: clamp(104px, 10vw, 150px);
}

.authority-dark {
  background:
    radial-gradient(circle at 86% 0%, rgba(123,227,238,.08), transparent 30%),
    linear-gradient(180deg, #0c1118, #05070b);
}

.authority-light {
  background:
    radial-gradient(circle at 14% 0%, rgba(123,227,238,.11), transparent 28%),
    linear-gradient(180deg, #eef4f6, #f8fafb 48%, #e7eef0);
}

.authority-grid {
  gap: 18px;
}

.authority-card,
.article-card,
.case-study-card,
.toc-card,
.form-card,
.author-card,
.search-result {
  border-radius: 28px 28px 28px 10px;
  box-shadow: 0 24px 80px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.04);
}

.authority-card,
.article-card,
.case-study-card,
.toc-card {
  padding: 30px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.03)),
    radial-gradient(circle at 100% 0%, rgba(123,227,238,.1), transparent 32%);
}

.authority-light .authority-card,
.article-body section,
.outline-list li {
  background:
    linear-gradient(145deg, rgba(255,255,255,.96), rgba(255,255,255,.78)),
    radial-gradient(circle at 100% 0%, rgba(123,227,238,.13), transparent 30%);
}

.authority-card h3,
.article-card h3,
.case-study-card h3 {
  letter-spacing: -.025em;
}

.toc-layout {
  gap: clamp(34px, 5vw, 70px);
}

.toc-card {
  top: 124px;
}

.toc-card a {
  padding: 9px 0;
  border-bottom: 1px solid rgba(196,236,242,.08);
}

.article-body {
  gap: 28px;
}

.article-body section {
  padding: clamp(30px, 4vw, 44px);
  border-radius: 30px 30px 30px 12px;
  box-shadow: 0 20px 70px rgba(0,0,0,.08);
}

.article-body h2 {
  letter-spacing: -.035em;
}

.authority-table-wrap {
  border-radius: 28px 28px 28px 10px;
}

.form-card {
  background:
    linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.035)),
    radial-gradient(circle at 100% 0%, rgba(123,227,238,.12), transparent 32%);
}

.form-card input,
.form-card select,
.form-card textarea {
  min-height: 52px;
  border-radius: 16px 16px 16px 6px;
}

@media (max-width: 640px) {
  .authority-band {
    padding-top: 88px;
    padding-bottom: 88px;
  }

  .authority-visual {
    min-height: 500px;
  }
}

/* Project discussion: visual discovery controls and focused consultation booking. */
.form-page .authority-band {
  width: min(100%, 1680px);
  max-width: none;
  margin-inline: auto;
  padding-inline: clamp(24px, 4vw, 72px);
}

/* The consultation page ends with the shared footer; do not let the long
   document-flow ornament continue underneath it as a second visual layer. */
.form-page .engineering-flow {
  display: none;
}

.consultation-form-card .field-help {
  margin-top: -3px;
  color: rgba(247, 251, 252, .46);
  font-size: 12px;
  line-height: 1.5;
}

/* Global discovery form additions */
.lead-form .form-honeypot { position:absolute; left:-10000px; width:1px; height:1px; opacity:0; pointer-events:none; }
.lead-form .form-required-note { margin:0 0 20px; color:rgba(247,251,252,.56); font-size:13px; }
.lead-form .form-required-note span { color:var(--cyan); }
.lead-form .field-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.lead-form .discovery-expectations { margin-top:10px; }
.lead-form .discovery-expectations .field-help { display:block; margin:6px 0 14px; color:rgba(247,251,252,.56); font-size:13px; line-height:1.5; }
.lead-form .discovery-expectations .choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.lead-form .discovery-expectations .choice-card { min-height:52px; }
.lead-form .checkbox-row { display:flex; align-items:flex-start; gap:12px; line-height:1.45; }
.lead-form .checkbox-row input { flex:0 0 auto; margin-top:3px; }
.lead-form [name="budget"] { display:none; }
.lead-form input[type="file"] { max-width:100%; }
.lead-form .supporting-documents-field small { display:block; margin:6px 0 10px; color:rgba(247,251,252,.56); font-size:13px; line-height:1.5; }
.lead-form .supporting-documents-field input[type="file"] { width:100%; padding:16px; border:1px dashed rgba(0,229,255,.38); border-radius:14px; background:rgba(0,229,255,.04); cursor:pointer; }
.consultation-form-card .form-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.consultation-form-card .form-required-note {
  margin: -4px 0 18px;
  color: rgba(247,251,252,.56);
  font-size: 13px;
}
.consultation-form-card .form-required-note span,
.consultation-form-card legend b,
.consultation-form-card label b { color: var(--cyan); }
.consultation-form-card .field-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
}
.consultation-form-card .discovery-expectations { margin-top: 10px; }
.consultation-form-card .discovery-expectations .choice-grid { margin-top: 14px; }
.consultation-form-card .discovery-expectations .choice-card span { min-height: 54px; }
@media (max-width: 640px) {
  .lead-form .field-row,
  .lead-form .discovery-expectations .choice-grid { grid-template-columns:1fr; }
  .consultation-form-card .field-row { grid-template-columns: 1fr; gap: 0; }
}

.consultation-form-card .product-choice-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.consultation-form-card .stage-choice-grid,
.consultation-form-card .timeline-choice-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.consultation-form-card .product-choice-grid,
.consultation-form-card .stage-choice-grid,
.consultation-form-card .investment-fieldset .field-block,
.consultation-form-card .booking-fieldset .field-block,
.consultation-form-card .upload-dropzone,
.consultation-form-card .consent-fieldset .checkbox-row {
  grid-column: 1 / -1;
}

.consultation-form-card .field-block:has(.product-choice-grid),
.consultation-form-card .field-block:has(.stage-choice-grid),
.consultation-form-card fieldset:has(.stage-choice-grid) > label {
  grid-column: 1 / -1;
}

.consultation-form-card .investment-fieldset,
.consultation-form-card .booking-fieldset,
.consultation-form-card .upload-fieldset,
.consultation-form-card .consent-fieldset {
  grid-template-columns: 1fr;
}

.consultation-form-card .stage-choice-grid + * {
  grid-column: 1 / -1;
}

.consultation-form-card .select-card {
  display: flex;
  min-height: 72px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 14px 14px 14px 5px;
  color: rgba(247, 251, 252, .7);
  background: linear-gradient(145deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
  transition: color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}

.consultation-form-card .select-card:hover,
.consultation-form-card .select-card:focus-visible,
.consultation-form-card .select-card.is-selected {
  color: var(--cyan);
  border-color: rgba(0, 229, 255, .7);
  background: rgba(0, 229, 255, .09);
  box-shadow: 0 0 0 3px rgba(0, 229, 255, .08), 0 12px 30px rgba(0, 0, 0, .14);
  outline: none;
}

.consultation-form-card .select-card:active {
  transform: translateY(1px);
}

.consultation-form-card .choice-card span {
  min-height: 66px;
  padding: 15px 17px;
  border-radius: 14px 14px 14px 5px;
}

.consultation-form-card .time-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.consultation-form-card .time-period {
  min-width: 0;
  gap: 10px;
  padding: 17px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 16px 16px 16px 6px;
  background: rgba(255,255,255,.02);
}

.consultation-form-card .time-period .choice-card span {
  min-height: 46px;
  padding: 10px 8px;
  justify-content: center;
  text-align: center;
}

.consultation-form-card .consultation-method-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.consultation-form-card .consultation-method-grid .choice-card span {
  min-height: 72px;
  align-items: center;
}

.consultation-form-card .consultation-select-button,
.consultation-form-card .date-trigger {
  min-height: 66px;
  padding-inline: 19px;
  font-size: 15px;
}

.consultation-form-card textarea[name="message"] {
  width: 100%;
  min-height: 250px;
  padding: 18px 19px;
  resize: vertical;
  font-size: 15px;
  line-height: 1.65;
}

.consultation-form-card .upload-dropzone {
  min-height: 240px;
  padding: 58px 28px;
}

.consultation-form-card .consent-fieldset {
  gap: 16px;
}

.consultation-form-card .checkbox-row {
  position: relative;
  min-height: 24px;
  align-items: center;
  padding: 2px 0;
}

.consultation-form-card .checkbox-row input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.consultation-form-card .checkbox-row span {
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(247,251,252,.68);
  font-size: 13px;
  font-weight: 600;
}

.consultation-form-card .checkbox-row span::before {
  display: grid;
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 5px;
  color: #041015;
  background: rgba(255,255,255,.04);
  content: "";
  font-size: 12px;
  font-weight: 900;
  transition: background .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}

.consultation-form-card .checkbox-row input:checked + span {
  color: rgba(247,251,252,.92);
}

.consultation-form-card .checkbox-row input:checked + span::before {
  border-color: var(--cyan);
  background: var(--cyan);
  box-shadow: 0 0 0 4px rgba(0,229,255,.08);
  content: "✓";
}

.consultation-form-card .checkbox-row input:focus-visible + span::before {
  border-color: var(--cyan);
  box-shadow: 0 0 0 4px rgba(0,229,255,.14);
}

.consultation-form-card > .lead-form > button[type="submit"] {
  min-height: 54px;
  padding: 14px 24px;
  box-shadow: 0 12px 30px rgba(0,229,255,.12);
  transition: transform .2s var(--ease), box-shadow .2s var(--ease), filter .2s var(--ease);
}

.consultation-form-card > .lead-form > button[type="submit"]:hover {
  box-shadow: 0 16px 38px rgba(0,229,255,.2);
  filter: brightness(1.06);
  transform: translateY(-2px);
}

.consultation-form-card > .lead-form > button[type="submit"]:active {
  transform: translateY(0);
}

.date-trigger {
  display: flex;
  width: 100%;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  padding: 0 17px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px 14px 14px 5px;
  color: rgba(247,251,252,.7);
  background: rgba(255,255,255,.05);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  transition: border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}

.date-trigger::after {
  color: var(--cyan);
  content: "↗";
  font-size: 18px;
}

.date-trigger:hover,
.date-trigger:focus-visible,
.date-trigger.has-value {
  border-color: rgba(0,229,255,.65);
  color: var(--cyan);
  background: rgba(0,229,255,.08);
  box-shadow: 0 0 0 3px rgba(0,229,255,.08);
  outline: none;
}

.calendar-modal {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(2, 6, 10, .72);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s var(--ease);
}

.calendar-modal.is-open {
  opacity: 1;
  pointer-events: auto;
}

.calendar-modal-panel {
  width: min(100%, 420px);
  padding: 26px;
  border: 1px solid rgba(0,229,255,.25);
  border-radius: 24px 24px 24px 8px;
  background: linear-gradient(145deg, rgba(18,30,38,.98), rgba(6,13,19,.98));
  box-shadow: 0 30px 90px rgba(0,0,0,.48), 0 0 40px rgba(0,229,255,.08);
  transform: translateY(10px) scale(.98);
  transition: transform .2s var(--ease);
}

.calendar-modal.is-open .calendar-modal-panel {
  transform: translateY(0) scale(1);
}

.calendar-modal-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.calendar-modal-heading > div {
  display: grid;
  gap: 7px;
}

.calendar-modal-heading strong {
  color: rgba(247,251,252,.94);
  font-size: 21px;
  letter-spacing: -.03em;
}

.calendar-modal-close {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  color: var(--cyan);
  background: rgba(255,255,255,.04);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.calendar-modal .calendar-picker {
  padding: 0;
  border: 0;
  background: transparent;
}

.calendar-modal .calendar-days button,
.calendar-modal .calendar-days > span {
  min-height: 40px;
}

.calendar-modal .calendar-days button {
  font-size: 13px;
}

@media (max-width: 1080px) {
  .consultation-form-card .product-choice-grid,
  .consultation-form-card .stage-choice-grid,
  .consultation-form-card .timeline-choice-grid,
  .consultation-form-card .consultation-method-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .form-page .authority-band {
    padding-inline: 16px;
  }

  .consultation-form-card .product-choice-grid,
  .consultation-form-card .stage-choice-grid,
  .consultation-form-card .timeline-choice-grid,
  .consultation-form-card .consultation-method-grid,
  .consultation-form-card .time-grid {
    grid-template-columns: 1fr;
  }

  .consultation-form-card .time-period {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .consultation-form-card .time-period-label {
    grid-column: 1 / -1;
  }

  .calendar-modal {
    padding: 14px;
  }

  .calendar-modal-panel {
    padding: 20px 16px;
  }
}

/* Project brief editor: give the most important field the room to think. */
.consultation-form-card .description-fieldset {
  grid-template-columns: 1fr;
  gap: 24px;
}

.consultation-form-card .description-intro,
.consultation-form-card .description-editor {
  grid-column: 1 / -1;
}

.consultation-form-card .description-intro {
  display: grid;
  gap: 8px;
}

.consultation-form-card .description-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 13px;
}

.consultation-form-card .description-suggestions button {
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid rgba(0,229,255,.2);
  border-radius: 999px;
  color: rgba(247,251,252,.66);
  background: rgba(0,229,255,.035);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);
}

.consultation-form-card .description-suggestions button:hover,
.consultation-form-card .description-suggestions button:focus-visible {
  border-color: rgba(0,229,255,.62);
  color: var(--cyan);
  background: rgba(0,229,255,.09);
  outline: none;
  transform: translateY(-1px);
}

.consultation-form-card .description-control {
  position: relative;
  display: block;
}

.consultation-form-card .description-control textarea {
  display: block;
  width: 100%;
  min-height: 320px;
  padding: 24px 23px 48px;
  border-radius: 18px 18px 18px 7px;
  color: rgba(247,251,252,.9);
  background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.025));
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}

.consultation-form-card .description-control textarea::placeholder {
  color: rgba(247,251,252,.42);
  line-height: 1.7;
}

.consultation-form-card .description-control textarea:focus {
  border-color: rgba(0,229,255,.78);
  background: linear-gradient(145deg, rgba(0,229,255,.07), rgba(255,255,255,.035));
  box-shadow: 0 0 0 4px rgba(0,229,255,.1), 0 20px 50px rgba(0,0,0,.18);
  outline: none;
}

.consultation-form-card .description-counter {
  position: absolute;
  right: 17px;
  bottom: 14px;
  color: rgba(247,251,252,.42);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  pointer-events: none;
}

@media (max-width: 680px) {
  .consultation-form-card .description-control textarea {
    min-height: 280px;
    padding: 20px 17px 46px;
  }

  .consultation-form-card .description-suggestions {
    gap: 7px;
  }
}

/* Site-wide authority refinement: readable editorial pages at every width. */
.authority-page {
  overflow-x: clip;
}

.authority-page main,
.authority-page section,
.authority-page article,
.authority-page aside {
  min-width: 0;
}

.authority-page img,
.authority-page svg,
.authority-page video {
  max-width: 100%;
}

/* Keep light chapters readable even when a generic dark component selector
   appears later in the shared stylesheet. */
.authority-page .authority-light,
.authority-page .service-light,
.authority-page .authority-light h1,
.authority-page .authority-light h2,
.authority-page .authority-light h3,
.authority-page .service-light h1,
.authority-page .service-light h2,
.authority-page .service-light h3 {
  color: var(--ink-dark);
}

.authority-page .authority-light p,
.authority-page .authority-light li,
.authority-page .service-light p,
.authority-page .service-light li,
.authority-page .article-body blockquote {
  color: var(--muted-dark);
}

.authority-page .authority-light h1,
.authority-page .authority-light h2,
.authority-page .service-light h1,
.authority-page .service-light h2 {
  text-wrap: balance;
}

/* FAQ pages and service FAQs need to read as a considered knowledge base,
   rather than a compressed list of browser details. */
.authority-page #faq .article-body,
.authority-page .faq-list {
  max-width: 1040px;
  gap: 18px;
}

.authority-page #faq .article-body > section,
.authority-page .faq-list .faq-item,
.authority-page details.faq-item {
  overflow: visible;
  border-radius: 18px 18px 18px 7px;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), transform .25s var(--ease);
}

.authority-page #faq .article-body > section {
  padding: clamp(24px, 3vw, 36px);
}

.authority-page #faq .article-body > section h2 {
  margin-bottom: 14px;
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.16;
}

.authority-page .faq-list .faq-item summary,
.authority-page details.faq-item summary {
  min-height: 76px;
  padding: 22px 26px;
  font-size: clamp(17px, 1.8vw, 22px);
  line-height: 1.35;
}

.authority-page .faq-list .faq-item p,
.authority-page details.faq-item p {
  max-width: 780px;
  padding: 0 26px 26px;
  font-size: 16px;
  line-height: 1.7;
}

.authority-page .faq-list .faq-item[open],
.authority-page details.faq-item[open] {
  border-color: rgba(20, 142, 157, .3);
  box-shadow: 0 18px 50px rgba(10, 55, 66, .14);
}

/* Related content is a destination directory, so each item needs enough
   surface area for its label, title and reason to continue. */
.authority-page .ecosystem-grid,
.authority-page .related-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.authority-page .ecosystem-card,
.authority-page .related-card {
  min-height: 230px;
  padding: clamp(24px, 3vw, 34px);
}

.authority-page .ecosystem-card h3,
.authority-page .related-card h3 {
  max-width: 25ch;
  font-size: clamp(20px, 2.1vw, 30px);
  line-height: 1.15;
  text-wrap: balance;
}

.authority-page .ecosystem-card p,
.authority-page .related-card p {
  max-width: 38ch;
  line-height: 1.6;
}

/* Final conversion sections share one calm composition across service pages.
   The detailed consultation page remains the canonical long form; service
   pages keep a focused first-step form and a clear path into it. */
.authority-page.service-page .cta {
  grid-template-columns: minmax(0, .86fr) minmax(360px, 1.14fr);
  gap: clamp(30px, 5vw, 76px);
  padding: clamp(34px, 5vw, 72px);
  border-radius: 30px 30px 30px 10px;
}

.authority-page.service-page .cta-copy {
  min-width: 0;
  align-self: center;
}

.authority-page.service-page .cta-copy h2 {
  max-width: 14ch;
  font-size: clamp(34px, 4.4vw, 66px);
  line-height: .98;
  text-wrap: balance;
}

.authority-page.service-page .cta-copy > p:not(.eyebrow) {
  max-width: 52ch;
  font-size: 17px;
  line-height: 1.7;
}

.authority-page.service-page .cta .lead-form {
  min-width: 0;
  padding: clamp(22px, 3vw, 38px);
  border: 1px solid rgba(196,236,242,.12);
  border-radius: 22px 22px 22px 8px;
}

.authority-page.service-page .cta .lead-form button[type="submit"] {
  min-height: 56px;
  white-space: normal;
}

.authority-page .case-detail {
  gap: clamp(28px, 5vw, 72px);
  padding: clamp(26px, 4vw, 52px);
}

.authority-page .case-detail h3,
.authority-page .case-detail h2 {
  text-wrap: balance;
}

.authority-page .case-detail dl {
  display: grid;
  gap: 0;
  margin: 0;
}

.authority-page .case-detail dl > div {
  padding: 20px 0;
  border-bottom: 1px solid rgba(196,236,242,.1);
}

.authority-page .case-detail dl > div:last-child {
  border-bottom: 0;
}

.authority-page .case-detail dt {
  margin-bottom: 7px;
  color: var(--cyan);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.authority-page .case-detail dd {
  margin: 0;
  color: rgba(247,251,252,.72);
  line-height: 1.65;
}

@media (max-width: 980px) {
  .authority-page .ecosystem-grid,
  .authority-page .related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .authority-page.service-page .cta {
    grid-template-columns: 1fr;
  }

  .authority-page.service-page .cta-copy h2 {
    max-width: 18ch;
  }
}

@media (max-width: 640px) {
  .authority-page .ecosystem-grid,
  .authority-page .related-grid {
    grid-template-columns: 1fr;
  }

  .authority-page .faq-list .faq-item summary,
  .authority-page details.faq-item summary {
    min-height: 68px;
    padding: 18px;
    font-size: 17px;
  }

  .authority-page .faq-list .faq-item p,
  .authority-page details.faq-item p {
    padding: 0 18px 20px;
    font-size: 15px;
  }

  .authority-page.service-page .cta {
    padding: 24px 18px;
  }

  .authority-page.service-page .cta-copy h2 {
    font-size: clamp(34px, 12vw, 50px);
  }
}

/* Final guide and FAQ safeguards: keep shared authority templates readable
   on light chapters and prevent oversized editorial type from clipping. */
.authority-page .authority-light .toc-card,
.authority-page .service-light .toc-card {
  color: var(--ink-dark);
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,255,255,.82)),
    radial-gradient(circle at 100% 0%, rgba(0,229,255,.13), transparent 32%);
  border-color: rgba(20, 79, 91, .16);
  min-height: 0;
  justify-content: flex-start;
  gap: 18px;
}

.authority-page .authority-light .toc-card h2,
.authority-page .service-light .toc-card h2 {
  max-width: 100%;
  color: var(--ink-dark);
  font-size: clamp(30px, 4vw, 58px);
  line-height: 1.02;
  letter-spacing: -.04em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.authority-page .authority-light .toc-card small,
.authority-page .service-light .toc-card small {
  color: #147987;
}

.authority-page .authority-light .toc-card a,
.authority-page .service-light .toc-card a {
  margin: 0;
  padding: 10px 0;
  color: #31464f;
  border-bottom-color: rgba(20, 79, 91, .12);
}

.authority-page .authority-light .toc-card a:hover,
.authority-page .service-light .toc-card a:hover {
  color: #147987;
}

.authority-page h1,
.authority-page h2,
.authority-page h3,
.authority-page p,
.authority-page li {
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

.authority-page #faq .article-body {
  gap: 14px;
}

.authority-page #faq .article-body > section {
  position: relative;
  padding: 0;
  overflow: hidden;
}

.authority-page #faq .article-body > section h2 {
  position: relative;
  margin: 0;
  padding: clamp(24px, 3vw, 34px) 72px clamp(24px, 3vw, 34px) clamp(24px, 3vw, 34px);
  cursor: pointer;
  font-size: clamp(20px, 2.1vw, 30px);
  line-height: 1.2;
}

.authority-page #faq .article-body > section h2::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: clamp(24px, 3vw, 34px);
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(20, 142, 157, .24);
  border-radius: 50%;
  color: #147987;
  font-size: 25px;
  font-weight: 500;
  transform: translateY(-50%);
  transition: transform .25s var(--ease), background .25s var(--ease);
}

.authority-page #faq .article-body > section p,
.authority-page #faq .article-body > section ul {
  max-height: 0;
  margin: 0;
  padding: 0 clamp(24px, 3vw, 34px);
  overflow: hidden;
  opacity: 0;
  transition: max-height .35s var(--ease), opacity .25s var(--ease), padding .35s var(--ease);
}

.authority-page #faq .article-body > section.is-open p,
.authority-page #faq .article-body > section.is-open ul {
  max-height: 420px;
  padding-bottom: clamp(24px, 3vw, 34px);
  opacity: 1;
}

.authority-page #faq .article-body > section.is-open h2::after {
  background: rgba(20, 142, 157, .1);
  transform: translateY(-50%) rotate(45deg);
}

@media (max-width: 760px) {
  .authority-page .toc-layout {
    grid-template-columns: 1fr;
  }

  .authority-page .toc-card {
    position: relative;
    top: auto;
  }
}

/* About page presentation: a company story with enough visual structure to
   feel complete without turning the page into a catalogue of claims. */
.about-page main {
  overflow: clip;
}

.about-page .about-hero {
  min-height: min(700px, 82vh);
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
  align-items: center;
  gap: clamp(44px, 8vw, 120px);
  padding-top: clamp(90px, 12vh, 150px);
  padding-bottom: clamp(80px, 12vh, 140px);
}

.about-page .about-hero-copy h1 {
  max-width: 16ch;
  margin: 18px 0 24px;
  font-size: clamp(44px, 5vw, 78px);
  line-height: .94;
  letter-spacing: -.045em;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: keep-all;
  hyphens: none;
}

.about-page .about-hero-copy .lead {
  max-width: 52ch;
  font-size: clamp(18px, 1.8vw, 23px);
  line-height: 1.55;
}

.about-signal-visual {
  position: relative;
  min-height: clamp(360px, 42vw, 570px);
  display: grid;
  place-items: center;
  isolation: isolate;
}

.about-signal-visual::before {
  content: "";
  position: absolute;
  inset: 8% 10%;
  z-index: -2;
  border: 1px solid rgba(0, 229, 255, .14);
  border-radius: 50%;
  box-shadow: 0 0 90px rgba(0, 229, 255, .08), inset 0 0 70px rgba(0, 229, 255, .04);
}

.about-signal-orbit { position: absolute; border: 1px solid rgba(126, 219, 228, .18); border-radius: 50%; transform: rotate(-18deg); }
.about-signal-orbit-one { width: 76%; height: 42%; }
.about-signal-orbit-two { width: 54%; height: 76%; transform: rotate(34deg); border-color: rgba(126, 219, 228, .11); }
.about-signal-core { width: clamp(170px, 19vw, 260px); aspect-ratio: 1; display: grid; place-content: center; gap: 8px; text-align: center; border: 1px solid rgba(126, 219, 228, .48); border-radius: 28px; background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(7, 27, 35, .74)); box-shadow: 0 24px 70px rgba(0, 0, 0, .35), 0 0 70px rgba(0, 229, 255, .13), inset 0 1px rgba(255,255,255,.2); }
.about-signal-core span { color: #8ce8f1; font-size: clamp(64px, 8vw, 108px); font-weight: 800; line-height: .8; letter-spacing: -.08em; }
.about-signal-core small, .about-signal-core b { color: rgba(220, 249, 251, .72); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
.about-signal-core b { color: #75e4ec; font-weight: 600; letter-spacing: .08em; }
.about-signal-node { position: absolute; padding: 10px 14px; border: 1px solid rgba(126, 219, 228, .25); border-radius: 999px; color: rgba(220, 249, 251, .82); background: rgba(8, 25, 32, .68); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 10px 25px rgba(0,0,0,.18); }
.about-signal-node::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: #00e5ff; box-shadow: 0 0 10px #00e5ff; }
.about-signal-node-one { top: 17%; left: 8%; }
.about-signal-node-two { top: 14%; right: 5%; }
.about-signal-node-three { bottom: 16%; right: 13%; }

.about-story { padding-top: clamp(100px, 14vw, 180px); padding-bottom: clamp(100px, 14vw, 180px); }
.about-page .section-heading { max-width: 900px; }
.about-page .section-heading h2 { max-width: 15ch; font-size: clamp(38px, 5.2vw, 78px); line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
.about-story-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(40px, 9vw, 140px); margin-top: clamp(50px, 8vw, 100px); }
.about-story-intro { max-width: 46ch; font-size: clamp(19px, 2vw, 27px); line-height: 1.45; }
.about-story-intro p + p { margin-top: 28px; color: var(--muted); }
.about-story-points { display: grid; gap: 0; border-top: 1px solid rgba(139, 221, 229, .2); }
.about-story-points article { display: grid; grid-template-columns: 46px 1fr; gap: 18px; padding: 24px 0; border-bottom: 1px solid rgba(139, 221, 229, .2); }
.about-story-points article > div { grid-column: 2; min-width: 0; }
.about-story-points article > span { grid-column: 1; grid-row: 1; }
.about-story-points span, .about-capability-grid span, .about-framework-list > li > span { color: #00d7eb; font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.about-story-points h3, .about-capability-grid h3, .about-framework-list h3, .about-principle-grid h3 { margin: 0 0 8px; font-size: clamp(20px, 2vw, 28px); }
.about-story-points p, .about-capability-grid p, .about-principle-grid p { max-width: 48ch; color: var(--muted); line-height: 1.65; }

.about-builds, .about-principles, .about-industries, .about-closing { width: min(100% - 48px, 1400px); padding-top: clamp(100px, 11vw, 150px); padding-bottom: clamp(100px, 11vw, 150px); }
.about-capability-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 60px; border: 1px solid rgba(22, 117, 131, .22); background: rgba(22, 117, 131, .22); }
.about-capability-grid article { min-height: 245px; padding: clamp(24px, 3vw, 38px); background: rgba(5, 16, 22, .82); }
.about-capability-grid h3 { margin-top: 56px; }
.about-builds .about-capability-grid h3 { color: #f4fbfc; }
.about-builds .about-capability-grid p { color: rgba(220, 242, 245, .7); }

.about-framework { padding-top: clamp(100px, 14vw, 180px); padding-bottom: clamp(100px, 14vw, 180px); }
.about-framework-list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; margin: 70px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(139, 221, 229, .25); }
.about-framework-list > li { position: relative; min-height: 230px; padding: 24px 18px 18px 0; border-right: 1px solid rgba(139, 221, 229, .2); }
.about-framework-list > li + li { padding-left: 18px; }
.about-framework-list > li:last-child { border-right: 0; }
.about-framework-list h3 { margin-top: 58px; }
.about-framework-list p { color: var(--muted); line-height: 1.5; font-size: 14px; }

.about-principle-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 60px; }
.about-principle-grid article { min-height: 210px; padding: 30px; border: 1px solid rgba(139, 221, 229, .18); border-radius: 18px 18px 18px 7px; background: radial-gradient(circle at 100% 0%, rgba(0,229,255,.08), transparent 36%), rgba(255,255,255,.045); transition: transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease); }
.about-principle-grid article:hover { transform: translateY(-6px); border-color: rgba(0,229,255,.4); box-shadow: 0 22px 60px rgba(0,0,0,.22); }
.about-principle-grid h3 { color: var(--ink); }
.about-principle-grid p { color: var(--muted); }
.about-tech-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 60px; }
.about-tech-grid div { padding: 26px 0; border-top: 1px solid rgba(139, 221, 229, .25); }
.about-tech-grid span { display: block; margin-bottom: 14px; color: #00d7eb; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.about-tech-grid strong { font-size: 18px; line-height: 1.5; }
.about-industry-list { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 60px; }
.about-industry-list span { padding: 14px 19px; border: 1px solid rgba(139, 221, 229, .2); border-radius: 999px; color: rgba(230,249,251,.86); background: rgba(255,255,255,.045); transition: transform .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), background .25s var(--ease); }
.about-industry-list span:hover { transform: translateY(-3px); color: #fff; border-color: rgba(0,229,255,.5); background: rgba(0,229,255,.08); }

.about-faq { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); align-items: start; gap: clamp(48px, 8vw, 132px); padding-top: clamp(110px, 14vw, 180px); padding-bottom: clamp(110px, 14vw, 180px); }
.about-faq-intro { position: sticky; top: 120px; }
.about-faq-intro h2 { max-width: 12ch; margin: 20px 0 24px; font-size: clamp(40px, 4.5vw, 70px); line-height: .98; letter-spacing: -.05em; text-wrap: balance; }
.about-faq-intro > p:not(.eyebrow) { max-width: 40ch; color: var(--muted); line-height: 1.65; }
.about-faq-trust { display: grid; gap: 12px; margin-top: 42px; }
.about-faq-trust span { width: fit-content; padding: 10px 14px; border: 1px solid rgba(139,221,229,.2); border-radius: 999px; color: rgba(220,249,251,.78); background: rgba(255,255,255,.04); font-size: 12px; letter-spacing: .05em; }
.about-faq .faq-list { width: 100%; margin-top: 0; gap: 14px; }
.about-faq .faq-item { overflow: hidden; border-radius: 20px 20px 20px 7px; }
.about-faq .faq-item summary { min-height: 88px; padding: 26px 72px 26px 28px; color: var(--ink); font-size: clamp(18px, 1.7vw, 24px); line-height: 1.3; }
.about-faq .faq-item p { max-width: 680px; padding: 0 72px 28px 28px; color: var(--muted); font-size: 16px; line-height: 1.7; }

/* About owns the dark site canvas. Keep it out of the light FAQ component
   used by the public FAQ page and authority content templates. */
.about-page .about-faq {
  width: min(100% - 48px, 1400px);
  max-width: 1400px;
  margin-inline: auto;
  color: var(--ink);
  background: transparent;
  padding-left: 0;
  padding-right: 0;
}
.about-page .about-faq-intro h2 {
  max-width: none;
  overflow-wrap: normal;
  word-break: normal;
  white-space: normal;
  font-size: clamp(36px, 4vw, 62px);
  letter-spacing: -.045em;
}
.about-page .about-faq .faq-item {
  border-color: rgba(139, 221, 229, .18);
  background: radial-gradient(circle at 100% 0%, rgba(0, 229, 255, .07), transparent 42%), rgba(255, 255, 255, .045);
  box-shadow: none;
}
.about-page .about-faq .faq-item:hover,
.about-page .about-faq .faq-item[open] {
  border-color: rgba(0, 229, 255, .4);
  background: radial-gradient(circle at 100% 0%, rgba(0, 229, 255, .1), transparent 42%), rgba(255, 255, 255, .07);
  box-shadow: 0 20px 60px rgba(0, 0, 0, .18), 0 0 0 3px rgba(0, 229, 255, .05);
}
.about-page .about-faq .faq-item summary::after { color: var(--cyan); border-color: rgba(139, 221, 229, .3); }
.about-closing-inner { max-width: 900px; }
.about-closing h2 { max-width: 12ch; margin: 20px 0; color: var(--ink); font-size: clamp(42px, 5vw, 76px); line-height: .96; letter-spacing: -.045em; }
.about-closing p:not(.eyebrow) { max-width: 52ch; color: var(--muted); font-size: 19px; line-height: 1.6; }

.pricing-grid, .pricing-factors { margin-top: 60px; }
.pricing-grid .authority-card, .pricing-factors .authority-card { min-height: 230px; }
.pricing-grid .authority-card h3 { margin-top: 54px; }
.pricing-factors { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pricing-paths { max-width: 1080px; margin-top: 60px; gap: 16px; }
.pricing-paths > section { padding: clamp(26px, 3vw, 38px); border: 1px solid rgba(19, 109, 122, .18); border-radius: 18px 18px 18px 6px; background: rgba(255,255,255,.55); }
.pricing-paths > section h2 { margin-bottom: 12px; color: var(--ink-dark); font-size: clamp(22px, 2.4vw, 32px); line-height: 1.1; }
.pricing-paths > section p { color: var(--muted-dark); line-height: 1.7; }
.pricing-sequence { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 60px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(139, 221, 229, .24); }
.pricing-sequence li { min-height: 220px; padding: 24px 22px 22px 0; border-right: 1px solid rgba(139, 221, 229, .2); }
.pricing-sequence li + li { padding-left: 22px; }
.pricing-sequence li:last-child { border-right: 0; }
.pricing-sequence span { color: #00d7eb; font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.pricing-sequence h3 { margin: 55px 0 10px; font-size: clamp(20px, 2vw, 28px); }
.pricing-sequence p { color: rgba(220,242,245,.7); line-height: 1.6; }
.pricing-faq { padding-top: clamp(100px, 14vw, 180px); padding-bottom: clamp(100px, 14vw, 180px); }
.pricing-faq .faq-list { width: min(100%, 1080px); margin-top: 60px; gap: 16px; }
.pricing-faq .faq-item { overflow: hidden; border-radius: 20px 20px 20px 7px; }
.pricing-faq .faq-item summary { min-height: 82px; padding: 25px 72px 25px 30px; font-size: clamp(18px, 2vw, 25px); line-height: 1.3; }
.pricing-faq .faq-item p { max-width: 760px; padding: 0 30px 30px; font-size: 16px; line-height: 1.75; }

/* Standalone FAQ page: spacious decision support, not an article dump. */
.faq-page { padding-bottom: 0; }
.faq-page-hero { min-height: 720px; align-items: center; }
.faq-page-hero-copy { max-width: 760px; }
.faq-page-hero-copy h1 { max-width: 10ch; font-size: clamp(58px, 8vw, 126px); line-height: .92; letter-spacing: -.055em; text-wrap: balance; }
.faq-page-hero-copy .lead { max-width: 600px; }
.faq-page-signal { min-height: 430px; display: flex; flex-direction: column; justify-content: center; gap: 19px; padding: 48px; border: 1px solid rgba(110,203,213,.24); border-radius: 34px 34px 34px 10px; background: radial-gradient(circle at 50% 42%, rgba(53,207,224,.18), transparent 45%), rgba(255,255,255,.035); box-shadow: 0 35px 110px rgba(0,0,0,.24); }
.faq-signal-kicker { color: var(--cyan); font-size: 12px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.faq-page-signal strong { color: var(--text); font-size: clamp(26px, 3vw, 42px); letter-spacing: -.04em; }
.faq-page-signal i { width: 1px; height: 32px; margin-left: 10px; background: linear-gradient(var(--cyan), transparent); }
.faq-page-section { padding-top: clamp(90px, 11vw, 170px); padding-bottom: clamp(90px, 11vw, 170px); }
.faq-page-intro { display: grid; grid-template-columns: .7fr 1fr .8fr; align-items: end; gap: 36px; margin-bottom: 72px; }
.faq-page-intro h2 { max-width: 13ch; margin: 0; font-size: clamp(44px, 6vw, 92px); line-height: .94; letter-spacing: -.055em; }
.faq-page-intro > p:last-child { max-width: 340px; margin: 0 0 5px; font-size: 18px; line-height: 1.6; }
.faq-page-list { max-width: 1040px; margin: 0 auto; }
.faq-page-list .faq-item { overflow: hidden; border-radius: 22px 22px 22px 8px; background: rgba(255,255,255,.8); border-color: rgba(9,22,28,.14); box-shadow: 0 18px 50px rgba(12,28,35,.08); }
.faq-page-list .faq-item + .faq-item { margin-top: 16px; }
.faq-page-list .faq-item summary { min-height: 100px; padding: 30px 84px 30px 34px; color: var(--ink-dark); font-size: clamp(20px, 2.2vw, 30px); line-height: 1.2; }
.faq-page-list .faq-item summary::after { right: 34px; color: var(--cyan-deep); font-size: 28px; }
.faq-page-list .faq-item p { max-width: 760px; margin: 0; padding: 0 84px 34px 34px; color: var(--muted-dark); font-size: 17px; line-height: 1.7; }
.faq-page-list .faq-item[open] { border-color: rgba(0,154,174,.45); box-shadow: 0 24px 70px rgba(12,28,35,.14), 0 0 0 4px rgba(0,188,207,.08); }
.faq-page-resources { padding-top: clamp(90px, 10vw, 150px); padding-bottom: clamp(90px, 10vw, 150px); }
.faq-page-resources .section-heading { margin-bottom: 48px; }
.faq-page-resources h2 { max-width: 13ch; margin: 0; font-size: clamp(42px, 5vw, 76px); line-height: .96; letter-spacing: -.05em; }
.faq-resource-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.faq-resource-grid a { min-height: 220px; display: flex; flex-direction: column; justify-content: space-between; padding: 28px; color: var(--text); border: 1px solid var(--line); border-radius: 22px 22px 22px 8px; background: radial-gradient(circle at 100% 0%, rgba(53,207,224,.1), transparent 38%), rgba(255,255,255,.045); transition: transform .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease); }
.faq-resource-grid a:hover { transform: translateY(-7px); border-color: rgba(53,207,224,.46); background-color: rgba(255,255,255,.07); }
.faq-resource-grid span { color: var(--cyan); font-weight: 900; letter-spacing: .12em; }
.faq-resource-grid strong { max-width: 15ch; font-size: 25px; line-height: 1.05; letter-spacing: -.035em; }
.faq-resource-grid small { max-width: 28ch; color: var(--muted); font-size: 14px; line-height: 1.5; }
.faq-page-closing { max-width: none; margin: 0; padding: clamp(110px, 14vw, 220px) max(24px, calc((100vw - var(--max)) / 2)); text-align: center; background: radial-gradient(circle at 50% 35%, rgba(53,207,224,.17), transparent 38%), var(--surface-engineering); }
.faq-page-closing h2 { margin: 0 auto 38px; font-size: clamp(48px, 7vw, 108px); line-height: .94; letter-spacing: -.06em; }

@media (max-width: 900px) {
  .faq-page-hero { min-height: auto; }
  .faq-page-intro { grid-template-columns: 1fr; gap: 20px; margin-bottom: 48px; }
  .faq-resource-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .faq-page-hero-copy h1 { max-width: 11ch; font-size: clamp(50px, 15vw, 78px); }
  .faq-page-signal { min-height: 310px; padding: 30px; }
  .faq-page-list .faq-item summary { min-height: 82px; padding: 24px 56px 24px 22px; font-size: 20px; }
  .faq-page-list .faq-item summary::after { right: 22px; }
  .faq-page-list .faq-item p { padding: 0 22px 25px; font-size: 16px; }
  .faq-resource-grid a { min-height: 180px; }
}

/* Standalone FAQ page final system: keep the page on the shared dark canvas,
   then give the question groups a clear editorial rhythm. */
body.faq-page,
body.faq-page.company-page {
  background:
    radial-gradient(circle at 82% 8%, rgba(0, 229, 255, .08), transparent 25%),
    linear-gradient(180deg, #05070b 0%, #0c1118 54%, #070b11 100%);
}

.faq-page {
  color: var(--ink);
}

.faq-page .faq-page-hero {
  width: min(100% - 48px, 1400px);
  min-height: min(760px, calc(100vh - 100px));
  margin-inline: auto;
  padding-block: clamp(90px, 10vw, 150px);
  grid-template-columns: minmax(0, 1.06fr) minmax(300px, .74fr);
  gap: clamp(48px, 9vw, 150px);
}

.faq-page .faq-page-hero-copy {
  max-width: 760px;
}

.faq-page .faq-page-hero-copy h1 {
  max-width: 11ch;
  margin-block: 22px 28px;
  color: var(--ink);
  font-size: clamp(54px, 7.4vw, 112px);
  line-height: .94;
  letter-spacing: -.06em;
  overflow-wrap: normal;
  word-break: normal;
}

.faq-page .faq-page-hero-copy .lead {
  max-width: 50ch;
  color: var(--muted);
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.55;
}

.faq-page .faq-page-signal {
  min-height: 380px;
  align-self: center;
  padding: clamp(30px, 4vw, 54px);
  border-radius: 30px 30px 30px 9px;
  background:
    radial-gradient(circle at 48% 40%, rgba(0, 229, 255, .17), transparent 42%),
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.018));
}

.faq-page .faq-page-signal strong {
  color: var(--ink);
}

.faq-page .faq-page-section,
.faq-page .faq-page-resources {
  width: min(100% - 48px, 1400px);
  margin-inline: auto;
  padding-block: clamp(110px, 12vw, 180px);
  color: var(--ink);
  background: transparent;
}

.faq-page .faq-page-intro {
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, .55fr);
  align-items: end;
  gap: clamp(40px, 8vw, 140px);
  margin-bottom: clamp(58px, 7vw, 96px);
}

.faq-page .faq-page-intro h2 {
  max-width: 14ch;
  color: var(--ink);
  font-size: clamp(44px, 5.7vw, 82px);
  line-height: .96;
  letter-spacing: -.055em;
}

.faq-page .faq-page-intro-copy,
.faq-page .faq-page-intro-note p {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.65;
}

.faq-page .faq-page-intro-copy {
  max-width: 42ch;
  margin-top: 24px;
}

.faq-page-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 30px;
}

.faq-page-trust span {
  padding: 9px 13px;
  border: 1px solid rgba(139, 221, 229, .2);
  border-radius: 999px;
  color: rgba(220, 249, 251, .78);
  background: rgba(255,255,255,.035);
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.faq-page-intro-note {
  padding: 24px 0 0 28px;
  border-left: 1px solid rgba(139, 221, 229, .25);
}

.faq-page-note-index,
.faq-category-heading > span {
  color: var(--cyan);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .16em;
}

.faq-page-intro-note p {
  max-width: 30ch;
  margin: 18px 0 0;
}

.faq-page .faq-page-list {
  display: grid;
  max-width: none;
  gap: clamp(60px, 8vw, 110px);
  margin: 0;
}

.faq-category {
  display: grid;
  grid-template-columns: minmax(180px, .38fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(30px, 6vw, 96px);
  min-width: 0;
  padding-top: 28px;
  border-top: 1px solid rgba(139, 221, 229, .2);
}

.faq-category-items {
  min-width: 0;
}

.faq-category-heading {
  position: sticky;
  top: 124px;
}

.faq-category-heading h3 {
  max-width: 12ch;
  margin: 14px 0 10px;
  color: var(--ink);
  font-size: clamp(24px, 2.2vw, 34px);
  line-height: 1.05;
  letter-spacing: -.04em;
}

.faq-category-heading p {
  max-width: 22ch;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.faq-category-items > .faq-item {
  min-width: 0;
  border-color: rgba(139, 221, 229, .16);
  border-radius: 18px 18px 18px 7px;
  background: linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.025));
  box-shadow: none;
}

.faq-category-items > .faq-item + .faq-item {
  margin-top: 14px;
}

.faq-category-items > .faq-item:hover,
.faq-category-items > .faq-item[open] {
  border-color: rgba(0, 229, 255, .4);
  background: linear-gradient(145deg, rgba(0,229,255,.1), rgba(255,255,255,.035));
  box-shadow: 0 20px 60px rgba(0,0,0,.2), 0 0 0 3px rgba(0,229,255,.045);
  transform: translateY(-2px);
}

.faq-category-items > .faq-item summary {
  min-height: 94px;
  padding: 28px 76px 28px 30px;
  color: var(--ink);
  font-size: clamp(18px, 1.65vw, 24px);
  line-height: 1.3;
}

.faq-category-items > .faq-item summary::after {
  right: 28px;
  color: var(--cyan);
  border-color: rgba(139, 221, 229, .25);
}

.faq-category-items > .faq-item[open] summary::after {
  content: "-";
  transform: none;
}

.faq-category-items > .faq-item p {
  max-width: 720px;
  padding: 0 76px 30px 30px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.7;
}

.faq-page .faq-page-resources {
  border-top: 1px solid rgba(139, 221, 229, .18);
}

.faq-page .faq-page-resources h2,
.faq-page .faq-page-closing h2 {
  color: var(--ink);
}

.faq-page .faq-resource-grid a {
  border-color: rgba(139, 221, 229, .16);
  background: linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.025));
}

.faq-page .faq-resource-grid small {
  color: var(--muted);
}

.faq-page .faq-page-closing {
  width: 100%;
  border-top: 1px solid rgba(139, 221, 229, .18);
  background: radial-gradient(circle at 50% 20%, rgba(0,229,255,.12), transparent 38%), #080d13;
}

@media (max-width: 900px) {
  .faq-page .faq-page-hero {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 54px;
  }
  .faq-page .faq-page-signal { max-width: 560px; min-height: 300px; }
  .faq-page .faq-page-intro { grid-template-columns: 1fr; gap: 28px; }
  .faq-page-intro-note { max-width: 520px; }
  .faq-category { grid-template-columns: 1fr; gap: 28px; }
  .faq-category-heading { position: static; }
  .faq-category-heading h3 { max-width: none; }
  .faq-category-heading p { max-width: 40ch; }
}

@media (max-width: 600px) {
  .faq-page .faq-page-hero,
  .faq-page .faq-page-section,
  .faq-page .faq-page-resources { width: min(100% - 32px, 1400px); }
  .faq-page .faq-page-hero-copy h1 { max-width: 12ch; font-size: clamp(48px, 14vw, 74px); }
  .faq-page .faq-page-intro h2 { max-width: 12ch; font-size: clamp(40px, 12vw, 62px); }
  .faq-page .faq-page-signal { min-height: 260px; padding: 28px; }
  .faq-category-items > .faq-item summary { min-height: 82px; padding: 23px 56px 23px 20px; font-size: 18px; }
  .faq-category-items > .faq-item summary::after { right: 20px; }
  .faq-category-items > .faq-item p { padding: 0 20px 24px; font-size: 15px; }
}

@media (max-width: 900px) {
  .pricing-factors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-sequence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-sequence li:nth-child(2) { border-right: 0; }
  .pricing-sequence li:nth-child(n+3) { border-top: 1px solid rgba(139, 221, 229, .2); }
}

@media (max-width: 600px) {
  .pricing-factors, .pricing-sequence { grid-template-columns: 1fr; }
  .pricing-sequence li, .pricing-sequence li + li { min-height: 0; padding: 24px 0; border-right: 0; border-bottom: 1px solid rgba(139, 221, 229, .2); }
  .pricing-sequence li:nth-child(n+3) { border-top: 0; }
  .pricing-sequence li:last-child { border-bottom: 0; }
  .pricing-faq .faq-item summary { padding: 21px 58px 21px 20px; font-size: 18px; }
  .pricing-faq .faq-item p { padding: 0 20px 24px; font-size: 15px; }
}

/* Final authority-template guardrails. Keep shared editorial chapters readable
   after page-specific styles have loaded. */
.authority-page,
.authority-page main,
.authority-page section,
.authority-page article,
.authority-page aside,
.authority-page form,
.authority-page .section,
.authority-page .section-heading,
.authority-page .article-body,
.authority-page .faq-page-list,
.authority-page .toc-layout {
  min-width: 0;
}

.authority-page {
  overflow-x: clip;
}

.authority-page img,
.authority-page svg,
.authority-page video,
.authority-page canvas,
.authority-page iframe {
  max-width: 100%;
}

.authority-page h1,
.authority-page h2,
.authority-page h3,
.authority-page h4,
.authority-page p,
.authority-page li,
.authority-page summary,
.authority-page a,
.authority-page button {
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

.authority-page .authority-light h1,
.authority-page .authority-light h2,
.authority-page .authority-light h3,
.authority-page .authority-light h4,
.authority-page .authority-light strong,
.authority-page .authority-light summary {
  color: var(--ink-dark);
}

.authority-page .authority-light p,
.authority-page .authority-light li,
.authority-page .authority-light small,
.authority-page .authority-light .lead,
.authority-page .authority-light .field-help {
  color: var(--muted-dark);
}

.authority-page .authority-light .button.secondary,
.authority-page .authority-light .button.ghost {
  color: var(--ink-dark);
  border-color: rgba(9, 16, 22, .24);
  background: rgba(9, 16, 22, .045);
}

.authority-page .authority-light .button.secondary:hover,
.authority-page .authority-light .button.secondary:focus-visible,
.authority-page .authority-light .button.ghost:hover,
.authority-page .authority-light .button.ghost:focus-visible {
  color: var(--ink-dark);
  border-color: rgba(0, 154, 174, .52);
  background: rgba(0, 229, 255, .1);
}

.authority-page .faq-page-list,
.authority-page #faq .article-body {
  width: min(100%, 1120px);
  max-width: none;
  margin-inline: auto;
}

.authority-page .faq-page-list details,
.authority-page #faq .article-body > section {
  min-width: 0;
  overflow: hidden;
}

.authority-page .faq-page-list details summary {
  min-height: 84px;
  padding: 26px clamp(22px, 3vw, 36px);
  line-height: 1.35;
}

.authority-page .faq-page-list details > p {
  max-width: 74ch;
  padding: 0 clamp(22px, 3vw, 36px) 30px;
  line-height: 1.7;
}

@media (max-width: 980px) {
  .authority-page .authority-light .toc-layout,
  .authority-page .authority-light .split,
  .authority-page .authority-light .authority-grid,
  .authority-page .authority-light .faq-layout,
  .authority-page .about-hero,
  .authority-page .about-story-grid,
  .authority-page .about-faq {
    grid-template-columns: 1fr;
  }

  .authority-page .authority-light .toc-card,
  .authority-page .about-faq-intro {
    position: static;
  }
}

@media (max-width: 640px) {
  .authority-page .faq-page-list details summary {
    min-height: 72px;
    padding: 20px 58px 20px 20px;
    font-size: 18px;
  }

  .authority-page .faq-page-list details > p {
    padding: 0 20px 24px;
    font-size: 15px;
  }
}

@media (max-width: 900px) {
  .about-page .about-hero { grid-template-columns: 1fr; min-height: auto; }
  .about-signal-visual { min-height: 420px; }
  .about-story-grid { grid-template-columns: 1fr; }
  .about-faq { grid-template-columns: 1fr; gap: 54px; }
  .about-faq-intro { position: static; }
  .about-capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-framework-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .about-framework-list > li:nth-child(3) { border-right: 0; }
  .about-framework-list > li:nth-child(n+4) { border-top: 1px solid rgba(139, 221, 229, .2); }
  .about-principle-grid, .about-tech-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .about-page .about-hero-copy h1 { max-width: 14ch; font-size: clamp(48px, 14vw, 72px); }
  .about-signal-visual { min-height: 330px; }
  .about-signal-node { font-size: 9px; padding: 8px 10px; }
  .about-signal-node-one { left: 0; }
  .about-signal-node-two { right: 0; }
  .about-capability-grid, .about-principle-grid, .about-tech-grid { grid-template-columns: 1fr; }
  .about-builds, .about-principles, .about-industries, .about-closing { width: min(100% - 32px, 1400px); }
  .about-framework-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-framework-list > li:nth-child(3) { border-right: 1px solid rgba(139, 221, 229, .2); }
  .about-framework-list > li:nth-child(even) { border-right: 0; padding-left: 18px; }
  .about-framework-list > li:nth-child(n+3) { border-top: 1px solid rgba(139, 221, 229, .2); }
  .about-faq .faq-item summary { padding: 21px 58px 21px 20px; font-size: 18px; }
  .about-faq .faq-item p { padding: 0 20px 24px; font-size: 15px; }
  .about-faq-trust { margin-top: 28px; }
}

/* Pricing page final pass: keep editorial headlines readable and light chapters actionable. */
.pricing-page .hero-copy,
.pricing-page .section-heading,
.pricing-page .pricing-paths,
.pricing-page .pricing-faq .section-heading {
  min-width: 0;
}

.pricing-page .hero-copy h1,
.pricing-page .section-heading h2,
.pricing-page .pricing-paths h2,
.pricing-page .pricing-faq h2 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  white-space: normal;
}

.pricing-page .hero-copy h1 {
  max-width: 14ch;
  font-size: clamp(50px, 5.2vw, 84px);
  line-height: .96;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.pricing-page .hero-copy .lead {
  max-width: 58ch;
}

.pricing-page .authority-band > .section-heading {
  max-width: 980px;
}

.pricing-page .authority-band > .section-heading h2 {
  max-width: 20ch;
  line-height: 1.02;
}

.pricing-page .pricing-paths {
  width: min(100%, 1180px);
  max-width: none;
  margin-inline: auto;
}

.pricing-page .authority-light .button.secondary {
  color: var(--ink-dark);
  border-color: rgba(9, 16, 22, .24);
  background: rgba(9, 16, 22, .045);
  box-shadow: 0 12px 30px rgba(9, 16, 22, .08);
}

.pricing-page .authority-light .button.secondary:hover,
.pricing-page .authority-light .button.secondary:focus-visible {
  color: var(--ink-dark);
  border-color: rgba(0, 154, 174, .52);
  background: rgba(0, 229, 255, .1);
}

.pricing-page .authority-light .button.primary {
  color: #041016;
  background: linear-gradient(135deg, #00e5ff, #88c9e8);
}

@media (max-width: 980px) {
  .pricing-page .hero-copy h1 { max-width: 16ch; }
}

@media (max-width: 640px) {
  .pricing-page .hero-copy h1 {
    max-width: 13ch;
    font-size: clamp(44px, 13vw, 66px);
  }
  .pricing-page .authority-band > .section-heading h2 { max-width: 16ch; }
  .pricing-page .hero-actions .button { width: auto; }
}

/* Pricing FAQ: use the light chapter as a full-width editorial split instead
   of a narrow stacked section. */
.pricing-page .pricing-faq {
  width: 100%;
  max-width: none;
  display: grid;
  grid-template-columns: minmax(420px, .9fr) minmax(0, 1.1fr);
  align-items: start;
  gap: clamp(40px, 5vw, 80px);
  padding-left: max(24px, calc((100vw - 1400px) / 2));
  padding-right: max(24px, calc((100vw - 1400px) / 2));
  box-sizing: border-box;
}

.pricing-page .pricing-faq .section-heading {
  margin: 0;
  max-width: 640px;
}

.pricing-page .pricing-faq .section-heading h2 {
  max-width: 16ch;
  font-size: clamp(44px, 4.6vw, 72px);
  line-height: .98;
  letter-spacing: -.045em;
}

.pricing-page .pricing-faq .section-heading > p:last-child {
  max-width: 38ch;
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.6;
}

.pricing-page .pricing-faq .faq-list {
  width: 100%;
  max-width: none;
  margin: 0;
  gap: 20px;
}

.pricing-page .pricing-faq .faq-item {
  border-radius: 24px 24px 24px 8px;
  box-shadow: 0 20px 60px rgba(12, 28, 35, .1);
}

.pricing-page .pricing-faq .faq-item summary {
  min-height: 112px;
  padding: 32px 84px 32px 34px;
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.24;
}

.pricing-page .pricing-faq .faq-item p {
  max-width: 74ch;
  padding: 0 84px 34px 34px;
  font-size: 17px;
  line-height: 1.72;
}

@media (max-width: 900px) {
  .pricing-page .pricing-faq {
    grid-template-columns: 1fr;
    gap: 46px;
  }
  .pricing-page .pricing-faq .section-heading h2 { max-width: 16ch; }
}

@media (max-width: 640px) {
  .pricing-page .pricing-faq {
    padding-left: 16px;
    padding-right: 16px;
    gap: 34px;
  }
  .pricing-page .pricing-faq .section-heading h2 {
    max-width: 13ch;
    font-size: clamp(42px, 12vw, 64px);
  }
  .pricing-page .pricing-faq .faq-list { gap: 14px; }
  .pricing-page .pricing-faq .faq-item summary {
    min-height: 92px;
    padding: 26px 58px 26px 22px;
    font-size: 19px;
  }
  .pricing-page .pricing-faq .faq-item p { padding: 0 22px 26px; font-size: 15px; }
}

/* Standalone FAQ dark-theme color guard.
   The shared authority-light guardrails above are correct for light editorial
   chapters, but faq.html intentionally keeps this section on the dark canvas.
   Keep this scoped to the FAQ page so service and pricing FAQ bands retain
   their light-theme ink colors. */
.faq-page .faq-page-section,
.faq-page .faq-page-section h2,
.faq-page .faq-page-section h3,
.faq-page .faq-page-section strong,
.faq-page .faq-page-section summary,
.faq-page .faq-page-section .faq-category-heading > span {
  color: var(--ink);
}

.faq-page .faq-page-section p,
.faq-page .faq-page-section li,
.faq-page .faq-page-section small,
.faq-page .faq-page-section .faq-page-intro-copy,
.faq-page .faq-page-section .faq-page-intro-note p,
.faq-page .faq-page-section .faq-category-heading p,
.faq-page .faq-page-section .faq-category-items > .faq-item p {
  color: var(--muted);
}

.faq-page .faq-page-section .faq-page-trust span {
  color: rgba(220, 249, 251, .84);
  border-color: rgba(139, 221, 229, .25);
  background: rgba(255, 255, 255, .04);
}

.faq-page .faq-page-section .faq-page-trust span:hover,
.faq-page .faq-page-section .faq-page-trust span:focus-visible {
  color: var(--ink);
  border-color: rgba(0, 229, 255, .5);
  background: rgba(0, 229, 255, .09);
}

.faq-page .faq-page-section .faq-category-items > .faq-item {
  color: var(--ink);
  border-color: rgba(139, 221, 229, .2);
  background: linear-gradient(145deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, .025));
}

.faq-page .faq-page-section .faq-category-items > .faq-item summary::after {
  color: var(--cyan);
  border-color: rgba(139, 221, 229, .3);
}

.faq-page .faq-page-section .faq-category-items > .faq-item:hover,
.faq-page .faq-page-section .faq-category-items > .faq-item[open] {
  border-color: rgba(0, 229, 255, .46);
  background: linear-gradient(145deg, rgba(0, 229, 255, .11), rgba(255, 255, 255, .035));
}

/* Global project discovery wizard */
.project-discovery-section {
  width: 100%;
  max-width: none;
  padding: 112px clamp(24px, 5vw, 88px) 140px;
  overflow: visible;
}

.project-discovery-intro {
  width: min(100%, 1500px);
  margin: 0 auto 58px;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, .65fr);
  gap: 28px 80px;
  align-items: end;
}

.project-discovery-intro .eyebrow {
  grid-column: 1 / -1;
  margin: 0;
}

.project-discovery-intro h2 {
  max-width: 720px;
  margin: 0;
  color: var(--ink);
  font-size: 54px;
  line-height: 1.04;
  letter-spacing: 0;
}

.project-discovery-intro > p:last-child {
  max-width: 580px;
  margin: 0;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.65;
}

.project-discovery-shell {
  width: min(100%, 1500px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 290px minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}

.discovery-progress-rail {
  position: sticky;
  top: 126px;
  min-width: 0;
  padding: 28px;
  border: 1px solid rgba(139, 221, 229, .18);
  border-radius: 8px;
  background: linear-gradient(155deg, rgba(16, 31, 39, .92), rgba(6, 12, 17, .96));
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28), inset 0 1px rgba(255, 255, 255, .04);
}

.discovery-progress-copy {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
}

.discovery-progress-copy strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}

.discovery-progress-track {
  height: 2px;
  margin: 18px 0 22px;
  overflow: hidden;
  background: rgba(139, 221, 229, .13);
}

.discovery-progress-track span {
  display: block;
  width: var(--progress, 0%);
  height: 100%;
  background: var(--cyan);
  box-shadow: 0 0 14px rgba(0, 229, 255, .45);
  transition: width 400ms cubic-bezier(.22, 1, .36, 1);
}

.discovery-step-list {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.discovery-step-list button {
  width: 100%;
  min-height: 66px;
  display: grid;
  grid-template-columns: 34px 1fr;
  grid-template-rows: auto auto;
  gap: 2px 12px;
  align-items: center;
  padding: 11px 10px;
  border: 0;
  border-left: 2px solid transparent;
  border-radius: 0;
  color: rgba(220, 233, 237, .62);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: color 200ms ease, border-color 200ms ease, background 200ms ease;
}

.discovery-step-list button:disabled { cursor: default; opacity: .52; }
.discovery-step-list button > span { grid-row: 1 / 3; color: var(--cyan); font-size: 12px; font-weight: 800; }
.discovery-step-list button strong { color: inherit; font-size: 14px; line-height: 1.2; }
.discovery-step-list button small { color: inherit; font-size: 11px; line-height: 1.35; }
.discovery-step-list .is-active button {
  color: var(--ink);
  border-left-color: var(--cyan);
  background: rgba(0, 229, 255, .07);
}
.discovery-step-list .is-complete button { color: rgba(220, 249, 251, .8); }
.discovery-step-list button:not(:disabled):hover { color: var(--ink); background: rgba(255, 255, 255, .035); }

.discovery-assurance {
  display: grid;
  gap: 8px;
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid rgba(139, 221, 229, .13);
}
.discovery-assurance strong { color: var(--ink); font-size: 13px; }
.discovery-assurance span { color: var(--muted); font-size: 12px; line-height: 1.55; }
.discovery-trust-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px 12px;
  margin: 18px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid rgba(139, 221, 229, .13);
  list-style: none;
}
.discovery-trust-list li { position: relative; padding-left: 14px; color: rgba(220, 239, 242, .72); font-size: 10px; line-height: 1.45; }
.discovery-trust-list li::before { content: ""; position: absolute; top: .5em; left: 0; width: 5px; height: 5px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 9px rgba(0, 229, 255, .45); }
.discovery-trust-list li:last-child { grid-column: 1 / -1; }

.project-discovery-card.consultation-form-card {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 1px solid rgba(139, 221, 229, .2);
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .07), rgba(7, 14, 19, .94) 38%);
  box-shadow: 0 32px 100px rgba(0, 0, 0, .34), inset 0 1px rgba(255, 255, 255, .05);
}

.project-discovery-wizard { width: 100%; min-width: 0; }
.project-discovery-wizard [hidden] { display: none !important; }
.project-discovery-wizard .form-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.project-discovery-wizard .sr-only,
.project-discovery-wizard .country-menu .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.discovery-step {
  min-height: 680px;
  padding: 54px 58px 46px;
  animation: discoveryStepIn 360ms cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes discoveryStepIn {
  from { opacity: 0; transform: translateX(16px); }
  to { opacity: 1; transform: translateX(0); }
}

.discovery-step-header {
  max-width: 760px;
  margin-bottom: 38px;
}
.discovery-step-header > span { color: var(--cyan); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.discovery-step-header h3 {
  margin: 10px 0 12px;
  color: var(--ink);
  font-size: 38px;
  line-height: 1.08;
  letter-spacing: 0;
  outline: none;
}
.discovery-step-header p { max-width: 650px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.6; }

.discovery-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.project-discovery-wizard .discovery-field {
  position: relative;
  min-width: 0;
  display: grid;
  gap: 9px;
  margin: 0;
  color: var(--ink);
}
.project-discovery-wizard .discovery-field > span:first-child {
  color: rgba(232, 246, 248, .88);
  font-size: 13px;
  font-weight: 700;
}
.project-discovery-wizard .discovery-field b { color: var(--cyan); font-weight: 700; }
.project-discovery-wizard .discovery-field small { color: var(--muted); font-size: 11px; font-weight: 500; line-height: 1.45; }
.project-discovery-wizard input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
.project-discovery-wizard select,
.project-discovery-wizard textarea,
.project-discovery-wizard .country-trigger,
.project-discovery-wizard .timezone-trigger {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(139, 221, 229, .2);
  border-radius: 6px;
  color: var(--ink);
  background: rgba(3, 9, 13, .76);
  box-shadow: inset 0 1px rgba(255, 255, 255, .025);
  font: inherit;
  outline: none;
  transition: border-color 200ms ease, box-shadow 200ms ease, background 200ms ease;
}
.project-discovery-wizard input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
.project-discovery-wizard select { height: 58px; padding: 0 17px; }
.project-discovery-wizard textarea { min-height: 132px; padding: 16px 18px; resize: vertical; line-height: 1.6; }
.project-discovery-wizard .discovery-textarea > textarea[name="message"] { min-height: 220px; max-height: 420px; overflow-y: hidden; padding: 20px 22px 42px; line-height: 1.7; }
.project-discovery-wizard input:focus,
.project-discovery-wizard select:focus,
.project-discovery-wizard textarea:focus,
.project-discovery-wizard .country-trigger:focus-visible,
.project-discovery-wizard .timezone-trigger:focus-visible {
  border-color: rgba(0, 229, 255, .72);
  background: rgba(4, 15, 20, .92);
  box-shadow: 0 0 0 3px rgba(0, 229, 255, .1), 0 12px 34px rgba(0, 0, 0, .2);
}
.project-discovery-wizard input::placeholder,
.project-discovery-wizard textarea::placeholder { color: rgba(178, 199, 204, .48); }

.discovery-country-field { z-index: 8; }
.project-discovery-wizard .country-trigger {
  height: 58px;
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 0 17px;
  text-align: left;
  cursor: pointer;
}
.country-trigger.has-error { border-color: #ff7d89; }
.country-trigger > span:first-child { font-size: 20px; }
.country-trigger > span:last-child { color: var(--cyan); }
.country-menu {
  position: absolute;
  top: calc(100% - 20px);
  left: 0;
  right: 0;
  z-index: 30;
  padding: 10px;
  border: 1px solid rgba(0, 229, 255, .34);
  border-radius: 8px;
  background: #071117;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .5);
}
.country-menu input[type="search"] { height: 46px !important; }
.country-options { max-height: 276px; margin-top: 8px; overflow-y: auto; overscroll-behavior: contain; }
.country-options button {
  width: 100%;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 11px;
  border: 0;
  border-radius: 4px;
  color: var(--ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.country-options button:hover,
.country-options button[aria-selected="true"] { background: rgba(0, 229, 255, .1); }
.country-options button small { color: var(--cyan); }

.discovery-timezone-field { z-index: 7; }
.project-discovery-wizard .timezone-trigger {
  min-height: 58px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 10px 17px;
  text-align: left;
  cursor: pointer;
}
.timezone-trigger > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.timezone-trigger > span:last-child { color: var(--cyan); }
.timezone-trigger.has-error { border-color: #ff7d89; }
.timezone-menu {
  position: absolute;
  top: calc(100% - 20px);
  left: 0;
  right: 0;
  z-index: 32;
  padding: 10px;
  border: 1px solid rgba(0, 229, 255, .34);
  border-radius: 8px;
  background: #071117;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .5);
}
.timezone-menu input[type="search"] { height: 46px !important; }
.timezone-options { max-height: 276px; margin-top: 8px; overflow-y: auto; overscroll-behavior: contain; }
.timezone-options button {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 10px 11px;
  border: 0;
  border-radius: 4px;
  color: var(--ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.timezone-options button:hover,
.timezone-options button[aria-selected="true"] { background: rgba(0, 229, 255, .1); }
.timezone-options button strong { overflow: hidden; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.timezone-options button small { color: var(--cyan); white-space: nowrap; }

.project-discovery-wizard .international-phone {
  height: 58px;
  display: flex;
  align-items: center;
  overflow: hidden;
  border: 1px solid rgba(139, 221, 229, .2);
  border-radius: 6px;
  background: rgba(3, 9, 13, .76);
}
.international-phone > .phone-prefix { flex: 0 0 auto; min-width: 104px; align-self: stretch; display: flex; gap: 9px; align-items: center; justify-content: center; padding: 0 14px; color: var(--cyan); border-right: 1px solid rgba(139, 221, 229, .16); }
.phone-prefix > span { min-width: 24px; font-size: 19px; line-height: 1; }
.phone-prefix > strong { font-size: 14px; font-weight: 750; white-space: nowrap; }
.project-discovery-wizard .international-phone input { flex: 1 1 auto; width: auto; height: 56px !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.international-phone:focus-within { border-color: rgba(0, 229, 255, .72); box-shadow: 0 0 0 3px rgba(0, 229, 255, .1); }

.project-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}
.project-type-grid label,
.meeting-methods label,
.time-periods label { position: relative; cursor: pointer; }
.project-type-grid input,
.meeting-methods input,
.time-periods input { position: absolute; opacity: 0; pointer-events: none; }
.project-type-grid label > span {
  min-height: 84px;
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 16px 18px;
  border: 1px solid rgba(139, 221, 229, .16);
  border-radius: 6px;
  background: rgba(255, 255, 255, .025);
  transition: border-color 200ms ease, background 200ms ease, transform 200ms ease;
}
.project-type-grid strong { color: var(--ink); font-size: 15px; }
.project-type-grid small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.project-type-grid label:hover > span { border-color: rgba(0, 229, 255, .44); background: rgba(0, 229, 255, .05); }
.project-type-grid input:checked + span { border-color: var(--cyan); background: rgba(0, 229, 255, .1); box-shadow: inset 3px 0 var(--cyan); }
.project-type-grid input:focus-visible + span { outline: 2px solid var(--cyan); outline-offset: 2px; }

.discovery-textarea { margin-bottom: 24px !important; }
.discovery-textarea > small:last-child { justify-self: end; margin-top: -34px; padding: 0 13px 12px; white-space: nowrap; pointer-events: none; }
.discovery-textarea > textarea { padding-bottom: 38px; }
.discovery-detail-grid { margin-top: 24px; }
.discovery-detail-grid .discovery-textarea > textarea { min-height: 150px; }

.discovery-upload {
  min-height: 190px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 7px;
  padding: 28px;
  border: 1px dashed rgba(0, 229, 255, .45);
  border-radius: 8px;
  color: var(--ink);
  background: rgba(0, 229, 255, .035);
  text-align: center;
  cursor: pointer;
  transition: border-color 200ms ease, background 200ms ease;
}
.discovery-upload:hover,
.discovery-upload.is-dragging { border-color: var(--cyan); background: rgba(0, 229, 255, .08); }
.discovery-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.discovery-upload .upload-symbol { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(0, 229, 255, .35); border-radius: 50%; color: var(--cyan); }
.discovery-upload > span:not(.upload-symbol) { color: var(--muted); font-size: 13px; }
.discovery-upload small { max-width: 540px; }
.discovery-upload em { color: var(--cyan); font-size: 12px; font-style: normal; font-weight: 700; }
.upload-file-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.upload-file-list > span { display: flex; gap: 9px; align-items: center; padding: 7px 10px; border: 1px solid rgba(139, 221, 229, .16); border-radius: 4px; background: rgba(255, 255, 255, .025); }
.upload-file-list strong { max-width: 220px; overflow: hidden; color: var(--ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.upload-file-list small { color: var(--muted); }

.consultation-booking-grid {
  display: grid;
  grid-template-columns: minmax(360px, .85fr) minmax(340px, 1.15fr);
  gap: 28px;
  align-items: start;
}
.consultation-options { display: grid; gap: 24px; }
.discovery-calendar { padding: 18px; border: 1px solid rgba(139, 221, 229, .18); border-radius: 8px; background: rgba(3, 9, 13, .58); }
.discovery-calendar.has-error { border-color: rgba(255, 112, 126, .82); box-shadow: 0 0 0 3px rgba(255, 112, 126, .1); }
.discovery-calendar-head { display: grid; grid-template-columns: 38px 1fr 38px; gap: 8px; align-items: center; margin-bottom: 16px; }
.discovery-calendar-head strong { color: var(--ink); text-align: center; font-size: 14px; }
.discovery-calendar-head button { width: 38px; height: 38px; border: 1px solid rgba(139, 221, 229, .16); border-radius: 4px; color: var(--cyan); background: rgba(255, 255, 255, .025); cursor: pointer; }
.discovery-calendar-head button:disabled { opacity: .28; cursor: default; }
.discovery-calendar-week,
.discovery-calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.discovery-calendar-week { margin-bottom: 7px; }
.discovery-calendar-week span { color: var(--muted); font-size: 10px; text-align: center; }
.discovery-calendar-days > span,
.discovery-calendar-days button { width: 100%; aspect-ratio: 1; min-width: 0; padding: 0; border: 0; border-radius: 4px; white-space: nowrap; font-size: 11px; line-height: 1; }
.discovery-calendar-days button { color: rgba(232, 246, 248, .86); background: rgba(255, 255, 255, .025); cursor: pointer; }
.discovery-calendar-days button:hover { color: var(--ink); background: rgba(0, 229, 255, .1); }
.discovery-calendar-days button.is-selected { color: #031015; background: var(--cyan); box-shadow: 0 0 18px rgba(0, 229, 255, .3); font-weight: 800; }
.discovery-calendar-days button:disabled { color: rgba(178, 199, 204, .22); background: transparent; cursor: default; }

.time-periods { display: grid; gap: 13px; }
.time-periods > div { display: grid; grid-template-columns: 78px repeat(3, minmax(58px, 1fr)); gap: 7px; align-items: center; }
.time-periods > div:last-child { grid-template-columns: 78px repeat(2, minmax(58px, 1fr)) 1fr; }
.time-periods > div > strong { color: var(--muted); font-size: 11px; }
.time-periods label > span,
.meeting-methods label > span { display: grid; place-items: center; min-height: 42px; padding: 8px; border: 1px solid rgba(139, 221, 229, .16); border-radius: 4px; color: rgba(232, 246, 248, .8); background: rgba(255, 255, 255, .025); font-size: 12px; font-weight: 700; transition: border-color 200ms ease, color 200ms ease, background 200ms ease; }
.time-periods input:checked + span,
.meeting-methods input:checked + span { border-color: var(--cyan); color: var(--ink); background: rgba(0, 229, 255, .1); }
.time-periods input:focus-visible + span,
.meeting-methods input:focus-visible + span { outline: 2px solid var(--cyan); outline-offset: 2px; }
.meeting-methods { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.meeting-methods label > span { min-height: 52px; text-align: center; }

.discovery-review { display: grid; gap: 0; border-top: 1px solid rgba(139, 221, 229, .16); }
.discovery-review > section { padding: 24px 0; border-bottom: 1px solid rgba(139, 221, 229, .13); }
.discovery-review header { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-bottom: 14px; }
.discovery-review header strong { color: var(--ink); font-size: 16px; }
.discovery-review header button { padding: 5px 0; border: 0; border-bottom: 1px solid rgba(0, 229, 255, .55); color: var(--cyan); background: transparent; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.discovery-review section > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 16px; padding: 5px 0; }
.discovery-review section > div span { color: var(--muted); font-size: 12px; }
.discovery-review section > div p { max-width: 760px; margin: 0; color: rgba(232, 246, 248, .88); font-size: 13px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.discovery-consent { display: grid; gap: 12px; margin-top: 26px; }
.discovery-consent label { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 11px; align-items: start; color: rgba(232, 246, 248, .82); font-size: 13px; line-height: 1.5; cursor: pointer; }
.discovery-consent input { width: 20px; height: 20px; margin: 0; accent-color: var(--cyan); }
.discovery-submit-note { display: flex; gap: 13px 26px; justify-content: space-between; margin-top: 28px; padding: 16px 0; border-top: 1px solid rgba(139, 221, 229, .13); border-bottom: 1px solid rgba(139, 221, 229, .13); }
.discovery-submit-note strong { color: var(--ink); font-size: 13px; }
.discovery-submit-note span { max-width: 600px; color: var(--muted); font-size: 12px; line-height: 1.5; }

.discovery-step-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  align-items: center;
  margin-top: 38px;
  padding-top: 24px;
  border-top: 1px solid rgba(139, 221, 229, .13);
}
.discovery-step-actions > span { margin-right: auto; color: var(--muted); font-size: 11px; }
.discovery-step-actions > span.is-saving { color: rgba(232, 246, 248, .7); }
.discovery-step-actions > span.is-saved { color: #8ee9cf; }
.discovery-step-actions > span.is-offline { color: #ffd59a; }
.project-discovery-wizard .discovery-step-actions .button { width: auto; min-width: 190px; min-height: 54px; margin: 0; padding: 13px 20px; border-radius: 6px; font-size: 13px; }
.project-discovery-wizard .discovery-step-actions .secondary { color: var(--ink); background: rgba(255, 255, 255, .035); }
.project-discovery-wizard .discovery-submit { min-width: 360px !important; }
.project-discovery-wizard .form-status { margin: 18px 0 0; color: #bff8ff; font-size: 14px; line-height: 1.55; }
.project-discovery-wizard.is-success .form-status { color: #8ee9cf; }
.project-discovery-wizard.is-error .form-status { color: #ffd1d7; }

.discovery-submission-result {
  min-height: 620px;
  padding: clamp(42px, 6vw, 86px) clamp(24px, 6vw, 92px);
  border: 1px solid rgba(139, 221, 229, .22);
  border-radius: 12px;
  background: radial-gradient(circle at 78% 12%, rgba(0, 229, 255, .13), transparent 32%), linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.025));
  box-shadow: 0 24px 80px rgba(0, 0, 0, .24), inset 0 1px 0 rgba(255,255,255,.08);
  animation: discovery-result-in 500ms ease both;
}
.discovery-result-state { max-width: 760px; }
.discovery-result-mark {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin-bottom: 30px;
  border: 1px solid rgba(142, 233, 207, .64);
  border-radius: 50%;
  color: #071519;
  background: #8ee9cf;
  box-shadow: 0 0 0 9px rgba(142, 233, 207, .08), 0 0 34px rgba(142, 233, 207, .24);
  font-size: 31px;
  font-weight: 800;
  animation: discovery-result-mark-in 600ms 120ms ease both;
}
.discovery-result-mark.is-error { color: #220d12; background: #ffd1d7; border-color: rgba(255, 209, 215, .65); box-shadow: 0 0 0 9px rgba(255, 209, 215, .07), 0 0 34px rgba(255, 209, 215, .16); }
.discovery-result-state .eyebrow { margin-bottom: 17px; }
.discovery-result-state h2 { max-width: 720px; margin: 0; color: var(--ink); font-size: clamp(32px, 4vw, 58px); line-height: 1.04; letter-spacing: -.02em; }
.discovery-result-lead { max-width: 660px; margin: 24px 0 0; color: var(--muted); font-size: clamp(16px, 1.35vw, 20px); line-height: 1.65; }
.discovery-reference { display: inline-flex; gap: 10px; margin: 26px 0 0; padding: 10px 13px; border: 1px solid rgba(0, 229, 255, .24); border-radius: 5px; color: var(--muted); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.discovery-reference strong { color: var(--cyan); font-weight: 800; }
.discovery-result-next { margin-top: 42px; padding-top: 25px; border-top: 1px solid rgba(139, 221, 229, .16); }
.discovery-result-next h3 { margin: 0 0 17px; color: var(--ink); font-size: 17px; }
.discovery-result-next ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.discovery-result-next li { position: relative; padding-left: 24px; color: rgba(232, 246, 248, .78); font-size: 14px; line-height: 1.5; }
.discovery-result-next li::before { content: '✓'; position: absolute; left: 0; color: #8ee9cf; font-weight: 800; }
.discovery-result-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 42px; }
.discovery-result-actions .button { min-height: 52px; }
.discovery-result-whatsapp,
.discovery-result-email { padding: 10px 0; border-bottom: 1px solid rgba(0, 229, 255, .45); color: var(--cyan); font-size: 13px; font-weight: 800; text-decoration: none; }
.discovery-result-whatsapp:hover,
.discovery-result-email:hover { color: var(--ink); border-color: var(--ink); }
@keyframes discovery-result-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes discovery-result-mark-in { from { opacity: 0; transform: scale(.72); } to { opacity: 1; transform: scale(1); } }

@media (max-width: 1120px) {
  .project-discovery-section { padding-left: 24px; padding-right: 24px; }
  .project-discovery-intro { grid-template-columns: 1fr; gap: 18px; }
  .project-discovery-intro .eyebrow { grid-column: auto; }
  .project-discovery-intro h2 { font-size: 48px; }
  .project-discovery-shell { grid-template-columns: 1fr; }
  .discovery-progress-rail { position: static; padding: 22px; }
  .discovery-step-list { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .discovery-step-list button { min-height: 72px; grid-template-columns: 1fr; grid-template-rows: auto auto; border-left: 0; border-bottom: 2px solid transparent; text-align: center; }
  .discovery-step-list button > span { grid-row: auto; }
  .discovery-step-list button small { display: none; }
  .discovery-step-list .is-active button { border-left-color: transparent; border-bottom-color: var(--cyan); }
  .discovery-assurance { display: none; }
  .discovery-trust-list { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 14px; padding: 14px 8px 0; }
  .discovery-trust-list li:last-child { grid-column: auto; }
}

@media (max-width: 780px) {
  .project-discovery-section { padding: 80px 16px 100px; }
  .project-discovery-intro { margin-bottom: 36px; }
  .project-discovery-intro h2 { font-size: 40px; }
  .project-discovery-intro > p:last-child { font-size: 16px; }
  .discovery-progress-rail { padding: 18px 14px; }
  .discovery-step-list button { min-height: 60px; padding: 8px 4px; }
  .discovery-step-list button strong { font-size: 10px; }
  .discovery-step { min-height: 0; padding: 36px 24px 28px; }
  .discovery-step-header { margin-bottom: 28px; }
  .discovery-step-header h3 { font-size: 32px; }
  .discovery-step-header p { font-size: 15px; }
  .discovery-field-grid,
  .project-type-grid,
  .consultation-booking-grid { grid-template-columns: 1fr; }
  .consultation-booking-grid { gap: 24px; }
  .meeting-methods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .discovery-step-actions { flex-wrap: wrap; }
  .discovery-step-actions > span { width: 100%; margin: 0; }
  .project-discovery-wizard .discovery-step-actions .button { min-width: 0; flex: 1 1 180px; }
  .project-discovery-wizard .discovery-submit { min-width: 0 !important; flex-basis: 100% !important; order: -1; }
  .discovery-submission-result { min-height: 0; padding: 40px 24px; }
  .discovery-result-state h2 { font-size: 34px; }
  .discovery-result-actions { align-items: stretch; flex-direction: column; }
  .discovery-result-actions .button,
  .discovery-result-whatsapp,
  .discovery-result-email { width: 100%; text-align: center; }
}

@media (max-width: 520px) {
  .project-discovery-section { padding-left: 10px; padding-right: 10px; }
  .project-discovery-intro { padding: 0 8px; }
  .project-discovery-intro h2 { font-size: 34px; }
  .discovery-progress-copy { padding: 0 4px; }
  .discovery-step-list button strong { display: none; }
  .discovery-step-list button { min-height: 44px; }
  .discovery-step { padding: 30px 18px 24px; }
  .discovery-step-header h3 { font-size: 28px; }
  .project-type-grid label > span { min-height: 76px; }
  .consultation-booking-grid { grid-template-columns: minmax(0, 1fr); }
  .discovery-calendar { padding: 12px; }
  .time-periods > div,
  .time-periods > div:last-child { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .time-periods > div > strong { grid-column: 1 / -1; }
  .meeting-methods { grid-template-columns: 1fr 1fr; }
  .discovery-review section > div { grid-template-columns: 1fr; gap: 2px; padding: 7px 0; }
  .discovery-submit-note { display: grid; }
  .country-menu,
  .timezone-menu { position: fixed; top: 16%; left: 12px; right: 12px; max-height: 70vh; }
  .country-options,
  .timezone-options { max-height: 52vh; }
  .discovery-trust-list { display: none; }
  .international-phone > .phone-prefix { min-width: 94px; padding: 0 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .discovery-step { animation: none; }
  .discovery-progress-track span { transition: none; }
  .discovery-submission-result,
  .discovery-result-mark { animation: none; }
}
