/* B-DESIGN-R3 (founder 14.10: "monotonic, no contrast, no hierarchy"; B/259, manager/524): three scale levels, body in ink, secondary in ink-2 only, clay reserved for the live
   product and the actions, one dark ink band per page. Tokens only (the type.web block of Design/vitruvius-tokens.json -> tokens.css), no hex, no shadow, no gradient.
   Loaded after r2.css on every page; each rule says which level it sets. */

/* ── S2 · scale: L1 page title / hero, L2 section head, L3 sub-head and card title ── */
.hero h1, #hero h1 { font-size: clamp(var(--vit-web-display-sm), 4.6vw, var(--vit-web-display)); font-weight: var(--vit-web-display-weight); line-height: 1.04; }
main > section:not([data-zone="hero"]) > h1, main > h1 { font-size: calc(var(--vit-web-h1) * 1.4); }
.ss-title, main > [data-zone]:not(.hero) h2 { font-size: var(--vit-web-h1); font-weight: var(--vit-web-h1-weight); line-height: 1.15; letter-spacing: 0; }
:where(main) h3, :where(main) h4, .fg-link h4, .tool-card h3, .sr-tool { font-size: var(--vit-web-h2); font-weight: var(--vit-web-h2-weight); line-height: 1.25; }

/* ── S2 · body copy: ink, 18 px (17 on phones), 68ch, line-height 1.6; secondary: ink-2, 15 px (14) ── */
main :is(p, li, dd) { font-size: var(--vit-web-body); line-height: 1.6; color: var(--vit-ink); }
main :is(p, dd):not(.lead):not([class*="pc-price"]) { max-width: var(--vit-web-measure); }
main :is(.sr-text, .sr-problem, .fg-link p, .tool-card p, .ss-body p) { font-size: var(--vit-web-body); color: var(--vit-ink); }
main :is(figcaption, .cta-note, .layers-note, .more-products, .sub, .small, .meta, .note, small, .titleblock dd) { font-size: var(--vit-web-small); color: var(--vit-ink-2); line-height: 1.5; }
main :is(.hero, .hero-text, .hero-sheet, #hero) .lead:not([data-band="ink"] .lead) { font-size: calc(var(--vit-web-body) * 1.2); color: var(--vit-ink); max-width: var(--vit-web-measure); }
:where(main .hero, main .hero-text, main #hero) .lead { font-size: calc(var(--vit-web-body) * 1.2); color: var(--vit-ink); max-width: var(--vit-web-measure); }
@media (max-width: 760px) {
  .hero h1, #hero h1 { font-size: var(--vit-web-display-sm); }
  main > section:not([data-zone="hero"]) > h1, main > h1 { font-size: calc(var(--vit-web-h1-sm) * 1.3); }
  .ss-title, main > [data-zone]:not(.hero) h2 { font-size: var(--vit-web-h1-sm); }
  :where(main) h3, :where(main) h4, .fg-link h4, .tool-card h3, .sr-tool { font-size: var(--vit-web-h2-sm); }
  main :is(p, li, dd) { font-size: var(--vit-web-body-sm); }
  main :is(.sr-text, .sr-problem, .fg-link p, .tool-card p, .ss-body p) { font-size: var(--vit-web-body-sm); }
  main :is(figcaption, .cta-note, .layers-note, .more-products, .sub, .small, .meta, .note, small, .titleblock dd) { font-size: var(--vit-web-small-sm); }
  :where(main .hero, main .hero-text, main #hero) .lead { font-size: var(--vit-web-body-sm); }
}

/* ── S3 · tool hierarchy (B/259 §2): the live paid tool is ONE featured card (8 of 12 columns), every other tool a quiet row beside/under it (no box, no clay, divided by a faint line) ── */
.fg-group[data-group="plugin"] .fg-cards { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 var(--vit-space-6); align-items: stretch; }
.fg-group[data-group="plugin"] .fg-featured { grid-column: span 8; grid-row: 1 / span 4; }
.fg-group[data-group="plugin"] .fg-row { grid-column: span 4; }
.fg-group[data-group="standalone"] .fg-cards { grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 0 var(--vit-space-6); }
.fg-featured .fg-link { display: flex; flex-direction: column; align-items: flex-start; gap: var(--vit-space-3); padding: var(--vit-space-6); background: var(--vit-paper); border: 2px solid var(--vit-ink); border-inline-start: 8px solid var(--vit-clay); border-radius: 0; box-shadow: none; }
.fg-featured .ficon { width: 44px; height: 44px; }
.fg-featured .fg-status { justify-self: start; padding: 0 var(--vit-space-3); border: 1.5px solid var(--vit-ink); border-radius: var(--vit-r-pill); font-weight: 700; font-size: var(--vit-web-small); color: var(--vit-ink); }
.fg-featured h4 { font-size: calc(var(--vit-web-h2) * 1.4); margin: 0; }
.fg-featured h4 a { color: var(--vit-ink); text-decoration: none; }
.fg-featured h4 a:hover { text-decoration: underline; text-decoration-color: var(--vit-clay); text-decoration-thickness: 2px; }
.fg-featured p { margin: 0; }
.fg-featured .fg-price { margin-block-start: auto; font-size: calc(var(--vit-web-h1) * 1.1); font-weight: 700; line-height: 1.1; }
.fg-featured .fg-acts { display: flex; margin-block-start: auto; flex-wrap: wrap; gap: var(--vit-space-4); align-items: center; }
.fg-featured .fg-price + .fg-acts { margin-block-start: var(--vit-space-2); }
.fg-row .fg-link { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto auto; grid-template-rows: auto auto; column-gap: var(--vit-space-3); row-gap: 2px; align-items: center; height: auto; padding: var(--vit-space-3) 0; background: none; border: 0; border-block-end: 1px solid var(--vit-line-faint); border-radius: 0; box-shadow: none; }
a.fg-link:hover { box-shadow: none; }
.fg-row a.fg-link:hover { background: none; }
.fg-row a.fg-link:hover h4 { text-decoration: underline; text-decoration-color: var(--vit-clay); text-decoration-thickness: 2px; }
.fg-row .ficon { grid-row: 1 / span 2; width: 24px; height: 24px; align-self: start; margin-top: 2px; }
.fg-row h4 { grid-column: 2; margin: 0; }
.fg-row p { grid-column: 2; grid-row: 2; font-size: var(--vit-web-small); color: var(--vit-ink-2); line-height: 1.45; }
.fg-row .fg-badges { grid-column: 4; grid-row: 1; }
.fg-row .badge-plugin { display: none; }
.fg-row .badge, .fg-row .badge-soon { position: static; justify-self: end; padding: 0 var(--vit-space-2); background: none; color: var(--vit-ink-2); border: 1px solid var(--vit-line-default); font-size: var(--vit-web-small); font-weight: 500; }
.fg-row .badge-soon { grid-column: 3; grid-row: 1; }
.fg-card.is-soon .fg-link { background: none; }
@media (max-width: 1100px) {
  .fg-group[data-group="plugin"] .fg-cards { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
  .fg-group[data-group="plugin"] .fg-featured, .fg-group[data-group="plugin"] .fg-row { grid-column: 1 / -1; grid-row: auto; }
  .fg-featured .fg-link { padding: var(--vit-space-5); }
}

/* ── S4/S6 · the ONE ink band of a page (B/259 §5): ink ground, paper text (14.9:1), clay only on the primary action, rules in paper at the line opacity. Full bleed (the page wrapper clips the 100vw
   overshoot of a classic scrollbar), content on the page grid. Marked [data-band="ink"]; the sweep counts them. ── */
html:has([data-band="ink"]) { overflow-x: clip; }
[data-band="ink"] { position: relative; width: 100vw; margin-inline: calc(50% - 50vw); padding: var(--vit-space-7) max(clamp(16px, 4vw, 48px), calc(50vw - 592px)); background: var(--vit-ink); color: var(--vit-paper); border: 0; }
main > [data-band="ink"]:not(.hero):not(.band) { padding-block: var(--vit-space-7); border-top: 0; }
[data-band="ink"] :is(h1, h2, h3, h4, p, li, dd, strong, .lead) { color: var(--vit-paper); }
[data-band="ink"] :is(.cta-note, small, figcaption, .sub, .small) { color: var(--vit-paper-3); }
[data-band="ink"] a:not([data-cta]):not(.ghost) { color: var(--vit-paper); text-decoration-color: var(--vit-clay); }
[data-band="ink"] .code { color: var(--vit-paper-3); }
[data-band="ink"] [data-cta], [data-band="ink"] :is(.ghost, .btn) { color: var(--vit-paper); border-color: var(--vit-paper); }
[data-band="ink"] [data-cta] { background-color: var(--vit-clay); color: var(--vit-on-clay); border-color: var(--vit-clay); }
[data-band="ink"] [data-cta]::after { background: none; }
[data-band="ink"] [data-cta]::before, [data-band="ink"] :is(.ghost, .btn)::before {
  background:
    linear-gradient(var(--vit-paper), var(--vit-paper)) 0 6px / 11px 1px no-repeat,
    linear-gradient(var(--vit-paper), var(--vit-paper)) 6px 0 / 1px 11px no-repeat,
    linear-gradient(var(--vit-paper), var(--vit-paper)) 100% 6px / 11px 1px no-repeat,
    linear-gradient(var(--vit-paper), var(--vit-paper)) calc(100% - 6px) 0 / 1px 11px no-repeat,
    linear-gradient(var(--vit-paper), var(--vit-paper)) 0 calc(100% - 6px) / 11px 1px no-repeat,
    linear-gradient(var(--vit-paper), var(--vit-paper)) 6px 100% / 1px 11px no-repeat,
    linear-gradient(var(--vit-paper), var(--vit-paper)) 100% calc(100% - 6px) / 11px 1px no-repeat,
    linear-gradient(var(--vit-paper), var(--vit-paper)) calc(100% - 6px) 100% / 1px 11px no-repeat;
}
[data-band="ink"] .gplate { background: none; border: 1px solid var(--vit-line-strong); border-color: var(--vit-paper-3); }
[data-band="ink"] .gplate .gcount b { color: var(--vit-clay); }
[data-band="ink"] .gplate .eyebrow, [data-band="ink"] .gplate .gcount, [data-band="ink"] .gdim .gs { color: var(--vit-paper-3); }
[data-band="ink"] .gplate .gfinal { color: var(--vit-paper); }
[data-band="ink"] .gdim .g0, [data-band="ink"] .gdim .ga, [data-band="ink"] .gdim .gz { background: var(--vit-paper); }
[data-band="ink"] .gsvg .gl { stroke: var(--vit-paper); }
[data-band="ink"] .gsvg .gb { fill: var(--vit-paper-3); }
[data-band="ink"] .gsvg :is(.gc, .vt) { fill: var(--vit-paper); stroke: var(--vit-clay); }
[data-band="ink"] .gsvg .gnib .xl, [data-band="ink"] .gsvg .gnib .pb { stroke: var(--vit-paper); }
.hero-demo { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: var(--vit-space-6); align-items: center; }
.hero-demo-text h1 { margin: 0 0 var(--vit-space-4); }
.hero-demo-text .lead { max-width: 46ch; }
.hero-demo-text .zone-ctas { display: flex; flex-wrap: wrap; gap: var(--vit-space-4); margin-block: var(--vit-space-5) var(--vit-space-3); }
@media (max-width: 900px) { .hero-demo { grid-template-columns: 1fr; } }

/* ── S5 · /vitruvius: install / trial / download / requirements / licence in ONE title-block spec table (ruled cells, a mono Latin code beside each Hebrew row name) + one CTA row ── */
.spec { display: grid; margin: 0; border: 1px solid var(--vit-ink-4); }
.spec-row { display: grid; grid-template-columns: minmax(130px, 20%) minmax(0, 1fr); border-block-end: 1px solid var(--vit-ink-4); }
.spec-row:last-child { border-block-end: 0; }
.spec dt { display: flex; gap: var(--vit-space-3); align-items: baseline; padding: var(--vit-space-4); border-inline-end: 1px solid var(--vit-ink-4); font-weight: 700; font-size: var(--vit-web-h2); }
.spec dt .code { font-size: var(--vit-web-label); }
.spec dd { margin: 0; padding: var(--vit-space-4); max-width: none; font-size: var(--vit-web-body); line-height: 1.6; }
.spec-cta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--vit-space-4); margin-block-start: var(--vit-space-5); max-width: none; }
[data-band="ink"] .ss-title { color: var(--vit-paper); }
[data-band="ink"] .ss-strip { border-color: var(--vit-ink-4); }
[data-band="ink"] .ss-dim { opacity: .6; background:
  linear-gradient(var(--vit-paper), var(--vit-paper)) center / 100% 1px no-repeat, linear-gradient(var(--vit-paper), var(--vit-paper)) left center / 1px 100% no-repeat, linear-gradient(var(--vit-paper), var(--vit-paper)) right center / 1px 100% no-repeat; }
@media (max-width: 760px) {
  .spec-row { grid-template-columns: 1fr; }
  .spec dt { border-inline-end: 0; border-block-end: 1px solid var(--vit-ink-4); padding-block: var(--vit-space-3); }
  .spec dt, .spec dd { padding-inline: var(--vit-space-3); }
  .spec dt { font-size: var(--vit-web-h2-sm); }
  .spec dd { font-size: var(--vit-web-body-sm); }
}

/* ── S6 · the home trial strip, and the paper islands (plan cards) inside the /pricing band ── */
#trial-strip { text-align: start; }
#trial-strip p { margin-block: 0 var(--vit-space-3); }
#trial-strip .zone-ctas { margin-block-start: var(--vit-space-5); }
[data-band="ink"] :is(.plan-card, .plan-extra) { background: var(--vit-paper); color: var(--vit-ink); }
[data-band="ink"] :is(.plan-card, .plan-extra) :is(h1, h2, h3, h4, p, li, dd, strong, span, a:not([data-cta]), label, small) { color: var(--vit-ink); }
[data-band="ink"] :is(.plan-card, .plan-extra) [data-cta] { color: var(--vit-on-clay); }
[data-band="ink"] :is(.plan-card, .plan-extra) :is(.ghost, .btn, .addc) { color: var(--vit-ink); border-color: var(--vit-ink); }
[data-band="ink"] :is(.plan-card, .plan-extra) :is(.ghost, .btn, .addc)::before {
  background:
    linear-gradient(var(--vit-ink), var(--vit-ink)) 0 6px / 11px 1px no-repeat,
    linear-gradient(var(--vit-ink), var(--vit-ink)) 6px 0 / 1px 11px no-repeat,
    linear-gradient(var(--vit-ink), var(--vit-ink)) 100% 6px / 11px 1px no-repeat,
    linear-gradient(var(--vit-ink), var(--vit-ink)) calc(100% - 6px) 0 / 1px 11px no-repeat,
    linear-gradient(var(--vit-ink), var(--vit-ink)) 0 calc(100% - 6px) / 11px 1px no-repeat,
    linear-gradient(var(--vit-ink), var(--vit-ink)) 6px 100% / 1px 11px no-repeat,
    linear-gradient(var(--vit-ink), var(--vit-ink)) 100% calc(100% - 6px) / 11px 1px no-repeat,
    linear-gradient(var(--vit-ink), var(--vit-ink)) calc(100% - 6px) 100% / 1px 11px no-repeat;
}
.hero-demo-text h1 { text-wrap: balance; font-size: clamp(var(--vit-web-display-sm), 3.6vw, var(--vit-web-display)); }
.spec bdi[dir="ltr"] { white-space: normal; }   /* the long download line wraps at its spaces instead of widening the page */
@media (max-width: 640px) { .titleblock { grid-template-columns: minmax(0, 1fr); } }   /* r2's 1fr is minmax(auto,1fr): the cell's min-content widened the frame at 320 once body copy grew */
.sheetframe > * { min-width: 0; }
main h1, .hero-sheet h1 { text-wrap: balance; }
main :is(ul, ol):not([class]) { padding-inline-start: var(--vit-space-5); }   /* a list inside a narrow sheet: the e-mail link must fit at 320 */
@media (max-width: 360px) { main > section:not([data-zone="hero"]) > h1, main > h1 { font-size: var(--vit-web-h1-sm); } }   /* a heading with a no-break pair ("downloading Vitruvius") must fit a 320 screen */
@media (max-width: 360px) { main :is(ul, ol):not([class]) { padding-inline-start: 0; list-style-position: inside; } main li > a[href^="mailto:"] { font-size: var(--vit-web-small-sm); } }   /* the e-mail address must not break mid-word at 320 */

/* ── B/268 review fixes ── */
.cur { font-size: .8em; font-weight: 700; }   /* R3-9: the shekel sign next to a big price was too small at 60% */
[data-band="ink"] .code { color: var(--vit-paper-3); }   /* R3-7: sheet/row codes on ink are paper-3, not clay */
.solve-row .gplate { max-width: 440px; }   /* R3-5: the demo in the "what it solves" row is a small plate, not the hero's size */
/* R3-3: the two-layers diagram as the ink band (home variant): the base cells are paper boxes (ink text), the AI overlay stays tracing-paper dashed on ink */
[data-band="ink"] .ly-base { color: var(--vit-ink); }
[data-band="ink"] .ly-ai { background: transparent; color: var(--vit-paper); }
[data-band="ink"] .ly-head em { color: var(--vit-paper-3); }
@media (max-width: 760px) { .ly-head > span:empty { display: none; } }   /* R3-11: the empty spacer span took the first column, pushing "שכבת בסיס" off its cells */
/* header Tools menu (B/259): the live paid tool leads the list with an "available" mark and a heavier name; every other row stays plain (no clay, no box) */
.fgroup .avail { margin-inline-start: auto; font-style: normal; font-size: var(--vit-web-small-sm); font-weight: 700; color: var(--vit-ink); border: 1.5px solid var(--vit-ink); border-radius: var(--vit-r-pill); padding: 0 var(--vit-space-3); }
.fgroup a[data-feature="dwg-editor"] > span:not(.fi) { font-weight: 700; }

/* R4: the slogan breaks only after the dash, never inside "הזמן שלך ליצירה" */
#hero h1 .h1-tail { white-space: nowrap; }

/* R4: the footer tagline is the slogan, in ink, not metadata grey (B/276) */
.fbrand p.ftag { color: var(--vit-ink); font-weight: 500; }
