/* Inner pages — DESIGN-BRIEF-v2 §6. Hero archetypes: B /solutions · C /platform · D /about · E /contact · legal = «έγγραφο» (no hero).
   Section padding by role (site.css): xl 160 · l 120 · m 96 · s 80 @≥1024. */

/* ---------- shared inner hero ---------- */
.phero { position: relative; padding-top: calc(var(--header-h) + var(--pad-m)); padding-bottom: var(--pad-s); }
.phero__lead { margin-top: var(--s-6); max-width: 52ch; }

/* B · /solutions — left-aligned title, no graphic, 45svh */
.phero--b { min-height: 45svh; display: flex; flex-direction: column; justify-content: flex-end; border-bottom: 1px solid var(--line); }
.phero--b .phero__title { max-width: none; }

/* C · /platform — title left, A-02 right (58vw, bleeds right & below) */
.phero--c { min-height: 45svh; display: flex; flex-direction: column; justify-content: flex-start; padding-bottom: 0; }
.phero--c__text { position: relative; z-index: 1; }
.phero--c .phero__title { max-width: 12ch; }
.iso { margin: var(--s-12) 0 0 var(--side); width: calc(100% - var(--side)); pointer-events: none; }
.iso__svg { width: 100%; height: auto; }
.iso__grid { opacity: 0.6; }
.iso-top { fill: var(--surface-1); stroke: var(--line); stroke-width: 2; transition: stroke var(--d-ui) ease; }
.iso-side--l { fill: var(--surface-2); stroke: var(--line); stroke-width: 2; }
.iso-side--r { fill: var(--bg); stroke: var(--line); stroke-width: 2; }
.iso-inner { fill: none; stroke: var(--line); stroke-width: 1.5; }
.iso-gate { fill: var(--bg); stroke: var(--text-3); stroke-width: 2; }
.iso-conn path, .iso-lead { stroke: var(--text-3); stroke-width: 1.5; fill: none; }
.iso-label { fill: var(--text-2); font: 500 40px var(--font); }
.iso-plate.is-active .iso-top { stroke: var(--forge); stroke-width: 4; }
.iso-plate.is-active .iso-gate { fill: var(--forge); stroke: var(--forge); }
.iso-plate.is-active .iso-label { fill: var(--text); }
@media (max-width: 767px) { .iso-label, .iso-lead { display: none; } }
@media (min-width: 1024px) {
  .phero--c { padding-top: calc(var(--header-h) + var(--pad-l)); }
  .phero--c__text { max-width: 480px; }
  .iso { position: absolute; z-index: 0; top: calc(var(--header-h) + var(--s-6)); right: 0; width: 58vw; max-width: 1100px; margin: 0; }
}

/* D · /about — statement left + facts ledger right, no image, 45svh */
.phero--d { min-height: 45svh; display: flex; flex-direction: column; justify-content: flex-end; }
.phero--d .grid-12 { row-gap: var(--s-12); align-items: end; }
@media (min-width: 1024px) {
  .phero--d { padding-top: calc(var(--header-h) + var(--pad-s)); }
  .phero--d__text { grid-column: 1 / span 6; }
  .phero--d__facts { grid-column: 8 / span 5; }
  .phero--d__facts > div { grid-template-columns: 104px 1fr; gap: var(--s-4); align-items: baseline; }
}

/* facts ledger (about hero, contact) */
.facts { margin: 0; display: grid; border-top: 1px solid var(--line); }
.facts > div { display: grid; gap: 2px; padding: var(--s-2) 0; border-bottom: 1px solid var(--line); }
.facts dt { font-size: var(--fs-small); color: var(--text-3); }
.facts dd { margin: 0; color: var(--text); line-height: 1.5; }
.contact__brand { font-weight: 600; }
.contact__owner { font-size: var(--fs-small); color: var(--text-3); }
.about__brand { font-weight: 600; }
.facts a { text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; margin-block: -10px; }
@media (hover: hover) and (pointer: fine) { .facts a:hover { text-decoration: underline; text-underline-offset: 4px; } }

/* E · /contact — form as hero */
.phero--e { padding-bottom: var(--pad-m); }
.phero--e .grid-12 { row-gap: var(--s-12); }
.contact__alt { margin-top: var(--s-12); max-width: 44ch; }
@media (min-width: 1024px) {
  .phero--e { padding-top: calc(var(--header-h) + var(--pad-s)); }
  .phero--e__text { grid-column: 1 / span 5; position: sticky; top: calc(var(--header-h) + var(--s-12)); align-self: start; }
  .phero--e__form { grid-column: 7 / span 6; }
}

/* ---------- form ---------- */
.form-card { background: var(--surface-1); border: 1px solid var(--line); border-radius: var(--r-card); padding: var(--s-6); }
@media (min-width: 768px) { .form-card { padding: var(--s-8); } }
.lead-form { display: grid; gap: var(--s-6); }
.field { display: grid; gap: var(--s-2); }
.field label, .check label { color: var(--text); font-weight: 500; font-size: 1rem; line-height: 1.4; }
.field__opt { color: var(--text-3); font-weight: 400; }
.field__help { font-size: var(--fs-small); color: var(--text-3); line-height: 1.5; }
.field input, .field select, .field textarea {
  width: 100%; min-height: 48px; padding: 12px 14px; border-radius: var(--r-ctl);
  background: var(--bg); color: var(--text); border: 1px solid var(--line);
  font: 400 1rem/1.5 var(--font); transition: border-color var(--d-ui) ease;
}
.field textarea { resize: vertical; min-height: 128px; }
.field ::placeholder { color: var(--text-3); opacity: 1; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline: 2px solid var(--text); outline-offset: 1px; border-color: var(--text-3); }
@media (hover: hover) and (pointer: fine) { .field input:hover, .field select:hover, .field textarea:hover { border-color: var(--text-3); } }
.select { position: relative; }
.select select { appearance: none; -webkit-appearance: none; padding-right: 44px; cursor: pointer; }
.select::after { content: ""; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; border-right: 1.5px solid var(--text-2); border-bottom: 1.5px solid var(--text-2); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
/* invalid: no 9th colour — white 2px edge + «!» marker */
.is-invalid input, .is-invalid select, .is-invalid textarea { border: 2px solid var(--text); padding: 11px 13px; }
.field__err { display: flex; gap: var(--s-2); align-items: baseline; color: var(--text); font-size: var(--fs-small); font-weight: 500; line-height: 1.5; }
.field__err::before { content: "!"; flex: none; display: inline-grid; place-items: center; width: 18px; height: 18px; border: 1.5px solid currentColor; border-radius: 50%; font-size: 11px; font-weight: 700; translate: 0 3px; }
.field__err[hidden] { display: none; }

.check { display: grid; grid-template-columns: 24px 1fr; column-gap: var(--s-3); row-gap: var(--s-1); align-items: start; }
.check input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--forge); cursor: pointer; }
.check label { font-weight: 400; color: var(--text-2); font-size: var(--fs-small); line-height: 1.6; cursor: pointer; }
.check--updates label { color: var(--text); font-size: 1rem; font-weight: 400; } /* r3 B4: same weight as consent */
.check .field__help, .check .field__err { grid-column: 2; }
.check.is-disabled label { color: var(--text-3); cursor: not-allowed; }
.check input:disabled { cursor: not-allowed; opacity: 0.5; }
.check a { color: var(--text); text-underline-offset: 3px; }
.check--consent { padding-top: var(--s-6); border-top: 1px solid var(--line); }
.turnstile-slot { min-height: 65px; display: grid; gap: var(--s-2); }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-status { font-size: var(--fs-small); color: var(--text); }
.form-status.is-error { color: var(--text); border-left: 2px solid var(--forge); padding-left: var(--s-3); }
.form-status.is-success { color: var(--text); border-left: 2px solid var(--text-3); padding-left: var(--s-3); }

/* ---------- /solutions ---------- */
.sol { padding-top: var(--pad-m); padding-bottom: var(--pad-l); }
.sol__list { display: grid; gap: var(--gutter); }
.sol-card { display: grid; row-gap: var(--s-8); background: var(--surface-1); border: 1px solid var(--line); border-radius: var(--r-card); padding: var(--s-6); }
.sol-card__head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-4); }
.sol-card__cta { margin-top: var(--s-2); white-space: normal; text-align: left; }
.sol-card__body { display: grid; gap: var(--s-8); }
.sol-card__text { color: var(--text); font-size: clamp(1.0625rem, 1.02rem + 0.2vw, 1.1875rem); max-width: 60ch; }
.sol-card__block { display: grid; gap: var(--s-4); padding-top: var(--s-6); border-top: 1px solid var(--line); }
.sol-card__sub { font-size: var(--fs-small); color: var(--text-3); font-weight: 500; }
.sol-card__wf { display: grid; gap: var(--s-8); }
.ticks { display: grid; gap: var(--s-3); }
.ticks li { display: grid; grid-template-columns: 20px 1fr; gap: var(--s-3); color: var(--text); }
.ticks .gate { margin-top: 9px; color: var(--text-3); }
.proof { margin: 0; display: grid; gap: var(--s-4); }
.proof dt { color: var(--text); font-weight: 600; }
.proof dd { margin: 2px 0 0; max-width: 60ch; }
.numbered { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-3); }
.numbered li { display: grid; grid-template-columns: 32px 1fr; gap: var(--s-3); align-items: baseline; color: var(--text); }
@media (min-width: 1024px) {
  .sol-card { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); padding: var(--s-12); }
  .sol-card__head { grid-column: 1 / span 4; position: sticky; top: calc(var(--header-h) + var(--s-8)); align-self: start; }
  .sol-card__body { grid-column: 6 / span 7; }
}

/* ---------- /platform ---------- */
.pf-phil { padding-top: var(--pad-xl); padding-bottom: var(--pad-m); }
.pf-phil__text { display: grid; gap: var(--s-4); max-width: 60ch; margin-top: var(--s-6); }
.pf-phil__text p + p { color: var(--text); }
@media (min-width: 1024px) {
  .pf-phil { padding-top: var(--pad-l); }
  .pf-phil__title { grid-column: 1 / span 5; }
  .pf-phil__text { grid-column: 1 / span 5; max-width: 480px; }
}
.arch__intro .tag { display: inline-block; margin-right: var(--s-2); }

.pf-flow { padding-block: var(--pad-l); }
.pf-flow__mark { display: flex; gap: var(--s-3); align-items: baseline; margin-top: var(--s-6); max-width: 44ch; color: var(--text); font-size: var(--fs-small); border: 1px solid var(--line); border-radius: var(--r-chip); padding: var(--s-3) var(--s-4); }
.pf-flow__mark .gate { width: 7px; height: 7px; color: var(--text-3); }
.rail { list-style: none; margin: var(--s-12) 0 0; padding: 0; position: relative; }
.rail::before { content: ""; position: absolute; left: 4px; top: 12px; bottom: 12px; width: 1px; background: var(--line); }
.rail li { position: relative; display: grid; grid-template-columns: 40px 1fr; gap: var(--s-3); align-items: baseline; padding: var(--s-3) 0 var(--s-3) var(--s-8); color: var(--text); }
.rail li::before { content: ""; position: absolute; left: 0; top: calc(var(--s-3) + 8px); width: 9px; height: 9px; background: var(--bg); border: 1.5px solid var(--text-3); transform: rotate(45deg); transition: background-color var(--d-ui) ease, border-color var(--d-ui) ease; }
.rail li + li { border-top: 1px solid var(--surface-2); }
@media (hover: hover) and (pointer: fine) { .rail li:hover::before { background: var(--forge); border-color: var(--forge); } }
@media (min-width: 1024px) {
  .pf-flow__side { grid-column: 1 / span 5; position: sticky; top: calc(var(--header-h) + var(--s-12)); align-self: start; }
  .rail { grid-column: 7 / span 6; margin-top: 0; }
  .rail li { padding-block: var(--s-4); }
  .rail li::before { top: calc(var(--s-4) + 8px); }
}

.pf-int { padding-top: var(--pad-l); padding-bottom: var(--pad-m); }
.pf-int__text { display: grid; gap: var(--s-4); justify-items: start; max-width: 60ch; margin-top: var(--s-4); }
.hub { margin: var(--s-12) 0 0; display: grid; gap: var(--s-4); justify-items: start; }
.hub__frame { width: 100%; border: 1px solid var(--line); }
.hub__svg { width: 100%; height: auto; }
.hub__svg--h { display: none; }
.hub-trunk path, .hub-branch { stroke: var(--text-3); stroke-width: 1; fill: none; transition: stroke var(--d-ui) ease; }
.hub-box, .hub-center rect { fill: var(--surface-1); stroke: var(--line); stroke-width: 1; transition: stroke var(--d-ui) ease; }
.hub-center rect { fill: var(--surface-2); stroke: var(--text-3); }
.hub-gate { fill: var(--bg); stroke: var(--text-2); stroke-width: 1.5; }
.hub-text { fill: var(--text); font: 500 22px var(--font); text-anchor: middle; }
.hub-text--s { font-size: 14px; }
.hub-text--c { font-weight: 600; }
@media (hover: hover) and (pointer: fine) {
  .hub-spoke:hover .hub-branch { stroke: var(--forge); stroke-width: 2; }
  .hub-spoke:hover .hub-box { stroke: var(--forge); }
}
@media (min-width: 768px) { .hub__svg--h { display: block; } .hub__svg--v { display: none; } }
@media (min-width: 1024px) {
  .pf-int__title { grid-column: 1 / span 5; }
  .pf-int__text { grid-column: 7 / span 6; margin-top: 0; }
}

.pf-human { padding-block: var(--pad-xl); }
.pf-human__text { margin-top: var(--s-6); color: var(--text); max-width: 46ch; }
@media (min-width: 1024px) {
  .pf-human__title { grid-column: 1 / span 5; }
  .pf-human__text { grid-column: 7 / span 6; margin-top: 0; }
}

.pf-hb { padding-block: var(--pad-m); }
.pf-hb__head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-4); }
.pf-hb__text { display: grid; gap: var(--s-6); justify-items: start; margin-top: var(--s-6); max-width: 56ch; }
.pf-hb__text .btn { white-space: normal; text-align: left; }
@media (min-width: 1024px) {
  .pf-hb__head { grid-column: 1 / span 5; }
  .pf-hb__text { grid-column: 7 / span 6; margin-top: 0; }
}

.final__text { margin-top: var(--s-4); max-width: 56ch; }
.final__inner--end .final__rail { bottom: 24px; }

/* ---------- /about ---------- */
.about-id { padding-top: var(--pad-xl); padding-bottom: var(--pad-l); border-top: 1px solid var(--line); }
.about-id__label { margin-bottom: var(--s-3); }
.about-id__text { display: grid; gap: var(--s-4); justify-items: start; max-width: 60ch; margin-top: var(--s-6); }
.about-id__text .lead { color: var(--text); }
.about-id__photo { margin: 0 0 var(--s-8); max-width: 400px; }
.about-id__photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-card); border: 1px solid var(--line); }
@media (min-width: 1024px) {
  .about-id__side { grid-column: 1 / span 5; }
  .about-id__text { grid-column: 6 / span 7; margin-top: 0; }
  .about-id--text-only .about-id__text { grid-column: 7 / span 6; align-self: end; }
}

/* ---------- legal «έγγραφο» ---------- */
.doc { padding-top: calc(var(--header-h) + var(--pad-s)); padding-bottom: var(--pad-l); }
.doc__grid { display: grid; gap: var(--s-12); }
.doc__grid > * { min-width: 0; } /* grid items default to min-width:auto → wide table pushed the track to 402px @390 (QA 16/10) */
.doc__toc ol { list-style: none; margin: var(--s-3) 0 0; padding: 0; counter-reset: toc; border-top: 1px solid var(--line); }
.doc__toc li { counter-increment: toc; border-bottom: 1px solid var(--line); }
.doc__toc a { display: flex; gap: var(--s-3); align-items: center; min-height: 44px; text-decoration: none; color: var(--text-2); font-size: var(--fs-small); }
.doc__toc a::before { content: counter(toc, decimal-leading-zero); color: var(--text-3); font-size: var(--fs-label); min-width: 2ch; }
@media (hover: hover) and (pointer: fine) { .doc__toc a:hover { color: var(--text); } }
.doc__body { max-width: 68ch; }
.doc__title { margin-bottom: var(--s-8); }
.doc__meta { margin: calc(var(--s-3) - var(--s-8)) 0 var(--s-8); color: var(--text-3); font-size: var(--fs-small); }
.doc__sec { padding: var(--s-6) 0; border-top: 1px solid var(--line); }
.doc__sec h2 { margin-bottom: var(--s-4); }
.doc__sec p, .doc__sec ul { color: var(--text-2); line-height: 1.7; }
.doc__sec p + p, .doc__sec ul + p, .doc__sec p + ul, .doc__sec .doc__table + p, .doc__sec p + .doc__table { margin-top: var(--s-4); }
.doc__sec ul { padding-left: 1.25em; }
.doc__sec li + li { margin-top: var(--s-2); }
.doc__sec strong { color: var(--text); font-weight: 600; }
.doc__sec a { color: var(--text); text-decoration: underline; text-decoration-color: var(--text-3); text-underline-offset: 4px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
@media (hover: hover) and (pointer: fine) { .doc__sec a:hover { text-decoration-color: var(--text); } }
.doc__sec .doc__sub { margin-top: var(--s-8); }
.doc__table { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-card); }
.doc__table:focus-visible { outline: 2px solid var(--text); outline-offset: 2px; }
.doc__table table { width: 100%; border-collapse: collapse; font-size: var(--fs-small); line-height: 1.6; }
.doc__table th { text-align: left; font-weight: 600; color: var(--text); background: var(--surface-1); }
.doc__table th, .doc__table td { padding: var(--s-3) var(--s-4); vertical-align: top; border-bottom: 1px solid var(--line); color: var(--text-2); }
.doc__table tr:last-child td { border-bottom: 0; }
.doc__table td:first-child { color: var(--text); min-width: 14ch; }
.doc__grid--solo .doc__body { margin-inline: auto; }
@media (min-width: 1024px) {
  .doc__grid { grid-template-columns: 3fr 1fr 8fr; gap: 0; }
  .doc__toc { grid-column: 1; position: sticky; top: calc(var(--header-h) + var(--s-8)); align-self: start; }
  .doc__body { grid-column: 3; }
  .doc__grid--solo { grid-template-columns: 1fr; }
  .doc__grid--solo .doc__body { grid-column: 1; }
}

/* ---------- /platform agents table + founder gate (Run 2b) ---------- */
.pf-agents { padding-block: var(--pad-l); }
.pf-agents__body { display: grid; gap: var(--s-8); margin-top: var(--s-8); }
.pf-agents__scroll { overflow-x: auto; }
.agents { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
.agents th, .agents td { text-align: left; vertical-align: top; padding: var(--s-3) var(--s-4) var(--s-3) 0; border-top: 1px solid var(--line); }
.agents thead th { color: var(--text-3); font-weight: 500; border-top: 0; }
.agents tbody th { color: var(--text); font-weight: 600; }
.agents td { color: var(--text-2); }
.pf-gate { align-self: start; padding: var(--s-6); background: var(--surface-1); border: 1px solid var(--forge); border-radius: var(--r-card); }
.pf-gate h3 { display: flex; align-items: center; gap: var(--s-3); }
.pf-gate ul { margin: var(--s-4) 0 0; padding: 0; list-style: none; }
.pf-gate li { padding: var(--s-2) 0; border-top: 1px solid var(--line); color: var(--text); }
@media (max-width: 767px) {
  .agents thead { display: none; }
  .agents tr { display: grid; grid-template-columns: auto 1fr; gap: var(--s-1) var(--s-3); padding: var(--s-4) 0; border-top: 1px solid var(--line); }
  .agents th, .agents td { border: 0; padding: 0; }
  .agents td:nth-child(3), .agents td:nth-child(4) { grid-column: 1 / -1; }
}
@media (min-width: 1024px) { .pf-agents__body { grid-template-columns: 8fr 4fr; } }
/* 404 */
.nf { min-height: 70vh; min-height: 70svh; display: flex; align-items: center; }
.nf .label { color: var(--text-3); margin-bottom: var(--s-4); }
