/* Light public pages extend the shared design system. Functional widgets are scoped separately. */
body:not(.page-home) { background:var(--white); }
.inner-container { width: min(var(--container-content), calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.inner-container--wide { max-width: var(--container-content); width: calc(100% - 2 * var(--gutter)); }
.inner-container--reading { max-width: var(--container-reading); }
.inner-section { padding-block: clamp(3rem,6vw,5rem); }
.pagehero { background:linear-gradient(130deg,#fff 45%,#f0f5f5); color:var(--ink); padding-block:clamp(2.5rem,5vw,5rem); border-bottom:1px solid var(--line); }
.pagehero h1 { font-size: clamp(2.125rem, 1.6rem + 2vw, 4rem); line-height: 1.12; max-width: 24ch; margin-bottom: var(--space-m); overflow-wrap: anywhere; }
.pagehero .lead { color: #47555c; font-size: var(--type-lead); line-height: 1.6; max-width: 54ch; margin: 0; }
.eyebrow, .inner-label { font: 600 var(--type-eyebrow)/1.5 var(--font-mono); text-transform: uppercase; letter-spacing: .08em; margin: 0 0 var(--space-m); color: var(--accent-text); }
.pagehero .eyebrow { color: var(--accent-text); }
.inner-section h2, .inner-next h2 { font-size: var(--type-h2); line-height: 1.15; max-width: 24ch; margin-bottom: var(--space-m); }
.inner-section h3 { font-size: var(--type-h3); line-height: 1.25; }
.inner-section-head { max-width: var(--container-reading); margin-bottom: var(--space-xl); }
.inner-number { font: 500 var(--type-label)/1.5 var(--font-mono); color: var(--accent-text); }
.inner-intro { font-size: var(--type-lead); line-height: 1.6; margin-top: 0; }
.inner-link { display: inline-flex; align-items: center; gap: var(--space-s); min-height: 48px; font-size: var(--type-button); font-weight: 600; border-bottom: 1px solid currentColor; padding-block: var(--space-xs); }
.pagehero .inner-link { margin-top: var(--space-l); }
.pagehero .back { margin: 0 0 var(--space-l); }
main a:focus-visible, main summary:focus-visible, main button:focus-visible, main input:focus-visible, main textarea:focus-visible { outline: 2px solid var(--accent-text); outline-offset: 5px; }
.pagehero a:focus-visible { outline-color: var(--accent-text); }
.inner-link:hover, .reference-identity h2 a:hover { color: var(--accent-text); }
.pagehero .inner-link:hover { color: var(--accent-text); }
.inner-band { background: #f7f9f8; border-block: 1px solid var(--line); }
.service-areas > article { display: grid; gap: var(--space-m); padding-block: var(--space-l); border-top: 1px solid var(--line); }
.service-areas > article:last-child { border-bottom: 1px solid var(--line); }
.area-heading { display: flex; gap: var(--space-m); align-items: baseline; }
.area-heading h3 { margin: 0; overflow-wrap: anywhere; }
.service-areas article > div:last-child { max-width: 56ch; }
.service-areas .inner-label { margin-top: var(--space-m); margin-bottom: var(--space-xs); }
.area-outputs { list-style: none; margin: var(--space-m) 0 0; padding: 0; font-size: var(--type-small); color: var(--muted); }
.area-outputs li { padding-block: var(--space-xs); border-top: 1px solid var(--line); }
.working-layout, .technical-note { display: grid; gap: var(--space-l); }
.working-steps { list-style: none; padding: 0; margin: 0; counter-reset: work; }
.working-steps li { counter-increment: work; position: relative; padding: 0 0 var(--space-l) var(--space-l); border-left: 1px solid var(--line); }
.working-steps li::before { content: counter(work, decimal-leading-zero); position: absolute; left: -.6rem; top: 0; background: var(--white); color: var(--accent-text); font: 500 .75rem/1.6 var(--font-mono); }
.working-steps h3 { margin: 0 0 var(--space-xs); }
.working-steps p { margin: 0; max-width: 52ch; color: var(--muted); }
.technical-note { font-size: var(--type-small); }
.technical-note h2 { font-size: var(--type-h3); }
.technical-note h3 { font-size: var(--type-body); margin-top: 0; }
.technical-strip { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-m); padding: 0; list-style: none; font-family: var(--font-mono); color: var(--accent-text); }
summary { cursor: pointer; min-height: 48px; padding-block: var(--space-s); border-block: 1px solid var(--line); font-weight: 600; }
.technical-definitions { margin-top: var(--space-m); }
.technical-definitions > div { border-bottom: 1px solid var(--line); padding-block: var(--space-s); }
dt { font-weight: 600; } dd { margin: var(--space-xs) 0 var(--space-m); color: var(--muted); overflow-wrap: anywhere; }
.inner-next { background: #edf2e8; padding-block: var(--space-xl); }
.inner-next__layout { display: flex; flex-direction: column; gap: var(--space-m); align-items: start; }
.inner-next h2 { font-size: var(--type-h3); margin: 0; }
.inner-next .button { width: 100%; }
.reference-entry { border-top: 1px solid #a8b3a4; padding-block: var(--space-xl); display: grid; gap: var(--space-l); }
.reference-entry:last-child { border-bottom: 1px solid #a8b3a4; }
.reference-identity h2 { font-size: var(--type-h3); line-height: 1.25; margin: var(--space-s) 0; max-width: 30ch; overflow-wrap: anywhere; }
.reference-identity h2 a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.reference-environment { font-size: var(--type-small); color: var(--muted); max-width: 40ch; }
.reference-evidence { max-width: 64ch; }
.reference-evidence h3 { font-size: var(--type-label); margin: 0 0 var(--space-xs); color: var(--accent-text); }
.reference-evidence p { margin: 0 0 var(--space-m); }
.reference-evidence details { font-size: var(--type-small); margin-bottom: var(--space-m); }
.reference-evidence details p:first-of-type { margin-top: var(--space-m); }
.reference-result { border-left: 2px solid var(--accent-text); padding-left: var(--space-m); }
.reference-result p { margin-bottom: 0; }
.reference-entry--featured { background:#f2f6f3; padding-inline:var(--space-m); border-radius:10px; }
.reference-entry--featured h2 { font-size: var(--type-h2); }
.case-identity { color: #59666b; font: 500 var(--type-small)/1.6 var(--font-mono); margin-top: var(--space-l); }
.case-editorial { display: grid; gap: var(--space-xl); }
.case-contents { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-m); font-size: var(--type-small); align-self: start; }
.case-contents .inner-label { width: 100%; margin-bottom: 0; }
.case-contents a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: .25em; }
.story { min-width: 0; max-width: var(--container-reading); }
.story article { border-top: 1px solid var(--line); padding-block: var(--space-l); scroll-margin-top: calc(var(--nav-height) + var(--space-m)); }
.story article h2 { font-size: var(--type-h3); }
.story article p:not(.inner-label) { font-size: var(--type-lead); line-height: 1.75; max-width: 58ch; }
.story .case-result { border-top: 2px solid var(--accent-text); }
.case-result p:not(.inner-label) { color: var(--ink); }
.technical-context { margin-top: var(--space-l); padding-block: var(--space-m); border-top: 1px solid var(--line); font-size: var(--type-small); }
.technical-context h2 { font-size: var(--type-body); }
.about-intro { display: grid; gap: var(--space-l); align-items: center; }
.about-portrait { width: min(100%,18rem); }
.about-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 2/3; object-fit: cover; border-radius:10px; }
.prose p { font-size: var(--type-lead); line-height: 1.75; color: #4d575b; }
.prose h2 { margin-top: var(--space-xl); }
.prose h3 { margin-top: var(--space-l); }
.experience-line { border-left: 2px solid var(--accent-text); padding-left: var(--space-m); color: var(--ink); font-weight: 600; margin: 0 0 var(--space-xl); }
.contact-grid { display: grid; gap: var(--space-xl); align-items: start; }
.contact-grid > div { max-width: 44ch; }
.contact-grid h2 { font-size: var(--type-h3); }
.contact-grid form { min-width: 0; display: grid; gap: var(--space-m); }
.contact-grid input, .contact-grid textarea { display: block; width: 100%; padding: var(--space-s); font: inherit; border: 1px solid #a8b3a4; border-radius: var(--radius-control); background: var(--white); margin-top: var(--space-xs); }
.contact-grid textarea { resize: vertical; min-height: 10rem; }
.contact-grid label { font-weight: 600; }
.field-optional, .field-required { color: var(--muted); font-size: var(--type-small); font-weight: 400; }
.field-help { color: var(--muted); font-size: var(--type-small); margin: var(--space-xs) 0 0; }
.form-field--error input, .form-field--error textarea { border-color: #9b3024; }
.errorlist { padding: 0; list-style: none; margin: var(--space-xs) 0 0; color: #9b3024; font-size: var(--type-small); }
.contact-grid .button { justify-self: start; }
.cookie-policy h2 { font-size: var(--type-h3); }
.cookie-table-wrap { overflow-x: auto; }
.cookie-table { width: 100%; border-collapse: collapse; font-size: var(--type-small); text-align: left; }
.cookie-table th, .cookie-table td { padding: var(--space-s); border-bottom: 1px solid var(--line); vertical-align: top; }
.cookie-table th { background: #edf0eb; }
.cookie-table code { white-space: nowrap; }
@media (min-width: 40rem) {
  .service-areas > article { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--space-xl); padding-block: var(--space-xl); }
  .working-layout, .technical-note { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--space-xl); }
  .inner-next__layout { flex-direction: row; justify-content: space-between; align-items: center; }
  .inner-next .button { width: auto; flex-shrink: 0; }
  .reference-entry { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--space-xl); }
  .reference-entry--featured { padding: var(--space-xl); }
  .about-intro { grid-template-columns: minmax(0,1fr) minmax(0,.55fr); gap: var(--space-xl); }
  .about-portrait { justify-self: end; }
  .contact-grid { grid-template-columns: minmax(0,.7fr) minmax(0,1fr); }
}
@media (min-width: 70rem) {
  .pagehero { padding-block:clamp(3rem,5vw,5rem); }
  .service-areas > article, .working-layout, .technical-note, .reference-entry { gap: var(--space-2xl); }
  .reference-entry:not(.reference-entry--featured) { width: min(100%,var(--container-content)); margin-inline: auto; }
  .case-editorial { grid-template-columns: minmax(0,.4fr) minmax(0,1fr); gap: var(--space-2xl); }
  .case-contents { position: sticky; top: calc(var(--nav-height) + var(--space-l)); flex-direction: column; }
  .about-portrait { width: min(100%,22rem); }
}
.chat-launcher--obstructed { visibility: hidden; }
.guide-layout { display:grid; gap:var(--space-xl); }
.guide-progress { list-style:none; margin:var(--space-l) 0; padding:0; display:grid; gap:var(--space-s); }
.guide-progress [aria-current] { font-weight:700; color:var(--accent-text); }
.guide-panel { min-width:0; }
.guide-panel progress { width:100%; accent-color:var(--accent-text); margin-bottom:var(--space-l); }
.guide-field { margin-bottom:var(--space-l); }
.guide-field fieldset { border:0; padding:0; margin:0; min-width:0; }
.guide-field label, .guide-field legend { display:block; font-weight:600; margin-bottom:var(--space-s); }
.guide-field fieldset label { display:flex; align-items:baseline; gap:var(--space-s); padding:var(--space-s); border:1px solid var(--line); margin-top:var(--space-s); cursor:pointer; font-weight:400; }
.guide-field input[type=radio], .guide-field input[type=checkbox] { width:auto; flex-shrink:0; accent-color:var(--accent-text); }
.guide-field textarea, .guide-field input[type=text] { width:100%; box-sizing:border-box; padding:var(--space-s); border:1px solid var(--line); background:var(--white); color:var(--ink); font:inherit; }
.guide-actions { display:flex; flex-wrap:wrap; gap:var(--space-m); align-items:center; }
.guide-actions button, .guide-restart button, #guide-merge button { cursor:pointer; min-height:48px; font:inherit; }
.guide-restart { margin-top:var(--space-l); }
.guide-result { border-left:2px solid var(--accent-text); padding-left:var(--space-m); margin-bottom:var(--space-l); }
.guide-result h2 { font-size:var(--type-h3); }
@media(min-width: 55rem) { .guide-layout { grid-template-columns:minmax(0,1fr) minmax(0,2fr); } }
#guide-step { scroll-margin-top:calc(var(--nav-height) + var(--space-m)); }

@media(max-width:54.99rem) {
  .page-guide .pagehero { padding-block:var(--space-l); }
  .page-guide .pagehero h1 { font-size:clamp(1.75rem,5vw,2.5rem); }
  .page-guide .pagehero .lead { font-size:var(--type-body); }
  .guide-layout { padding-block:var(--space-l); gap:var(--space-l); }
  .guide-progress { display:flex; flex-wrap:wrap; gap:var(--space-xs) var(--space-s); font-size:var(--type-small); margin-block:var(--space-m); }
}

.contact-guide-entry { margin-top:var(--space-l); }

/* Clear service entry points; detailed technical evidence stays below. */
.service-overview { list-style:none; padding:0; margin:0; display:grid; gap:1rem; }
.service-overview a { display:flex; align-items:center; gap:1rem; min-height:64px; border:1px solid var(--line); border-radius:8px; padding:1rem 1.25rem; background:var(--white); font-weight:650; }
.service-overview a:hover { border-color:var(--accent-text); background:#f7f9f3; }
.service-overview svg { width:32px; height:32px; flex-shrink:0; stroke:var(--accent-text); fill:none; stroke-width:1.7; }
.service-overview a > span:last-child { margin-left:auto; }
.service-areas article { scroll-margin-top:calc(var(--nav-height) + 1.5rem); }
.contact-guide-entry .guide-callout { background:#f4f7ef; border:1px solid var(--line); border-radius:8px; padding:1.25rem; gap:.75rem; }
.contact-guide-entry .guide-callout__title { font-size:1.3rem; }
.contact-guide-entry .guide-callout__badge { font-size:.7rem; }
.contact-guide-entry .guide-callout__action { background:transparent; color:var(--ink); border-bottom:1px solid var(--accent-text); padding:.5rem 0; }
.contact-guide-entry .guide-callout__text,.contact-guide-entry .guide-callout__note { font-size:.875rem; }
@media(min-width:48rem) { .service-overview { grid-template-columns:repeat(3,minmax(0,1fr)); } }
