/* ============================================================
   LINGUA CARPATHIA — design constitution
   Concept: a typeset book of facing-page (parallel) translation.
   - Two colours: paper #efe7d6 + ink #17150f. One accent: vermilion
     #c0341d (the editor's red pencil), used on ONE thing at a time.
   - Type: Fraunces (display, italic accents) · Newsreader (text)
     · IBM Plex Mono (meta, folios, numerals). No Inter/Archivo.
   - Surfaces: 1px ink rules, paper grain, hard corners. No shadows.
   - Layout: visible grid, folios, section numbers, parallel-text
     device. Signature: red ■ + section number.
   ============================================================ */

:root {
  --paper:    #f4eedd;   /* brighter, cleaner paper */
  --paper-2:  #ece1c9;   /* alt band */
  --ink:      #141109;
  --ink-2:    #2a2417;
  --muted:    #5c543f;
  --red:      #d4361a;   /* vivid vermilion */
  --red-deep: #b32a12;
  --rule:     #cbbd9a;
  --rule-soft:#ddd0b3;

  --maxw: 1680px;
  --pad: clamp(1.2rem, 4vw, 4.5rem);

  --disp: 'Fraunces', Georgia, 'Times New Roman', serif;
  --text: 'Newsreader', Georgia, serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'Courier New', monospace;

  --h1: clamp(3.2rem, 9vw, 8rem);
  --h2: clamp(2.4rem, 5.5vw, 4.6rem);
  --ease: cubic-bezier(.2,.7,.3,1);
}

*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--text); font-size: 1.18rem; line-height: 1.55;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
  font-optical-sizing: auto;
}
.nav-lock { overflow: hidden; }

/* paper grain */
.grain { position: fixed; inset: 0; z-index: 1; pointer-events: none; opacity: .05; mix-blend-mode: multiply; }

h1,h2,h3,h4 { font-family: var(--disp); font-weight: 500; line-height: .98; letter-spacing: -.015em; margin: 0 0 .35em; color: var(--ink); }
h1 { font-size: var(--h1); font-weight: 600; }
h2 { font-size: var(--h2); }
h3 { font-size: 1.7rem; font-weight: 500; }
p { margin: 0 0 1rem; }
a { color: inherit; }
img { max-width: 100%; display: block; }
em { font-style: italic; }
strong { font-weight: 600; }
::selection { background: var(--red); color: var(--paper); }

.container { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); position: relative; z-index: 2; }
.container--narrow { max-width: 900px; }
.section { padding: clamp(3.5rem, 8vw, 7rem) 0; position: relative; }
.section--alt { background: var(--paper-2); }
.section--ink { background: var(--ink); color: var(--paper); }
.section--ink h1,.section--ink h2,.section--ink h3 { color: var(--paper); }
.section--red { background: var(--red); color: var(--paper); }
.section--red h1,.section--red h2,.section--red h3 { color: var(--paper); }
.rule-top { border-top: 1px solid var(--rule); }

/* ── Mono meta / eyebrow ── */
.kicker, .eyebrow {
  font-family: var(--mono); font-size: .74rem; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase; color: var(--muted);
  display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 1rem;
}
.kicker .sq, .eyebrow::before { content: ""; width: .62rem; height: .62rem; background: var(--red); display: inline-block; }
.eyebrow.center, .kicker.center { justify-content: center; }

.lead { font-size: 1.4rem; line-height: 1.45; color: var(--ink-2); max-width: 36ch; }
.lead--wide { max-width: 56ch; }
.center { text-align: center; }
.lead.center { margin-inline: auto; }

/* ── Folio section header (signature) ── */
.folio { display: grid; grid-template-columns: auto 1fr; gap: 1.4rem; align-items: end; margin-bottom: clamp(2rem,5vw,3.5rem); }
.folio__no { font-family: var(--mono); font-size: .8rem; letter-spacing: .12em; color: var(--red); padding-bottom: .5rem; white-space: nowrap; }
.folio__no .sq { display:inline-block; width:.6rem; height:.6rem; background: var(--red); margin-right:.5rem; vertical-align: middle; }
.folio__t { border-bottom: 1px solid var(--ink); padding-bottom: .9rem; }
.folio__t h2 { margin: 0; }
.folio__t .lead { margin: .9rem 0 0; }

/* ── Buttons (hard-edged, ink) ── */
.btn { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--mono); font-size: .82rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; padding: .95rem 1.7rem; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); cursor: pointer; transition: background .18s var(--ease), color .18s var(--ease); }
.btn:hover { background: transparent; color: var(--ink); }
.btn--red { background: var(--red); border-color: var(--red); }
.btn--red:hover { background: transparent; color: var(--red); }
.btn--ghost { background: transparent; color: var(--ink); }
.btn--ghost:hover { background: var(--ink); color: var(--paper); }
.section--ink .btn { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.section--ink .btn:hover { background: transparent; color: var(--paper); }
.section--ink .btn--red { background: var(--red); border-color: var(--red); color: var(--paper); }
/* editorial text link */
.tlink { font-family: var(--mono); font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; border-bottom: 1px dotted var(--ink); padding-bottom: 2px; transition: border-color .18s; }
.tlink:hover { border-bottom-style: solid; color: var(--red); border-color: var(--red); }

/* ── Topbar (folio strip) ── */
.topbar { border-bottom: 1px solid var(--rule); font-family: var(--mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.topbar__inner { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; flex-wrap: wrap; }
.topbar a { color: inherit; text-decoration: none; }
.topbar a:hover { color: var(--red); }
.topbar__left { display: flex; gap: 1.6rem; flex-wrap: wrap; }
.topbar__lang { color: var(--red); }

/* ── Header ── */
.site-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: blur(6px); border-bottom: 1px solid var(--ink); }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1rem 0; }
.brand { display: flex; align-items: baseline; gap: .6rem; text-decoration: none; color: var(--ink); flex-shrink: 0; }
.brand .mark { font-family: var(--disp); font-weight: 600; font-style: italic; font-size: 1.7rem; line-height: 1; color: var(--red); }
.brand__txt { font-family: var(--disp); font-weight: 600; font-size: 1.5rem; letter-spacing: -.01em; line-height: 1; }
.brand small { display:block; font-family: var(--mono); font-weight:400; font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-top:4px; }
.nav-menu { display: flex; align-items: center; gap: 1.7rem; list-style: none; margin: 0; padding: 0; }
.nav-menu a { font-family: var(--mono); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: var(--ink); position: relative; padding: .2rem 0; }
.nav-menu a:not(.btn)::after { content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px; background: var(--red); transition: right .25s var(--ease); }
.nav-menu a:not(.btn):hover::after { right:0; }
.nav-menu .btn { padding: .55rem 1.1rem; }
.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px; }
.nav-toggle span { width:26px; height:2px; background: var(--ink); transition:.25s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ============================================================
   HERO — all-type, bilingual parallel-text
   ============================================================ */
.hero { padding: clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,6rem); border-bottom: 1px solid var(--ink); }
.hero__meta { display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-family: var(--mono); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color: var(--muted); padding-bottom: clamp(2rem,5vw,3.5rem); border-bottom: 1px solid var(--rule); margin-bottom: clamp(2rem,5vw,3.5rem); }
.hero__meta .red { color: var(--red); }
/* parallel device */
.parallel { display:grid; grid-template-columns: 1fr; gap: .5rem; }
.parallel__src { font-family: var(--text); font-style: italic; font-size: clamp(1.2rem,2.4vw,1.7rem); color: var(--muted); display:flex; align-items:baseline; gap:.8rem; }
.parallel__src::before { content: ""; flex: 0 0 2.5rem; height: 1px; background: var(--red); transform: translateY(-.5rem); }
.hero h1 { font-size: var(--h1); margin: .2em 0 0; max-width: 16ch; }
.hero h1 em { color: var(--red); font-style: italic; }
.hero__foot { display:grid; grid-template-columns: 1.3fr 1fr; gap: clamp(1.5rem,4vw,3rem); align-items: end; margin-top: clamp(2rem,5vw,3.2rem); padding-top: 2rem; border-top: 1px solid var(--rule); }
.hero__foot .lead { margin:0; }
.hero__cta { display:flex; gap:1.4rem; flex-wrap:wrap; align-items:center; justify-content:flex-end; }
@media (max-width: 820px){ .hero__foot { grid-template-columns:1fr; } .hero__cta{ justify-content:flex-start; } }

/* ── Stats row (oldstyle numerals) ── */
.statbar { display:grid; grid-template-columns: repeat(4,1fr); border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.statbar > div { padding: 1.8rem 1.2rem; border-left:1px solid var(--rule); }
.statbar > div:first-child { border-left:0; }
.stat__v { font-family: var(--disp); font-weight:600; font-size: clamp(2.6rem,5vw,4rem); line-height:.9; letter-spacing:-.02em; font-variant-numeric: oldstyle-nums; }
.stat__v em { color: var(--red); font-style:normal; }
.stat__l { font-family: var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:.7rem; }
.section--ink .statbar { border-color: var(--paper); }
.section--ink .statbar > div { border-color: rgba(239,231,214,.25); }
.section--ink .stat__l { color: rgba(239,231,214,.7); }
@media (max-width:680px){ .statbar{ grid-template-columns:1fr 1fr; } .statbar>div:nth-child(3){border-left:0;} }

/* ── Services as an editorial index (numbered rows) ── */
.entries { border-top: 1px solid var(--ink); }
.entry { display:grid; grid-template-columns: 4rem minmax(12rem, 22rem) 1fr auto; gap: 1.5rem; align-items: baseline; padding: 1.8rem 0; border-bottom: 1px solid var(--rule); position:relative; transition: padding-left .25s var(--ease); }
.entry:hover { padding-left: 1.2rem; }
.entry::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background: var(--red); transform: scaleY(0); transform-origin:top; transition: transform .25s var(--ease); }
.entry:hover::before { transform: scaleY(1); }
.entry__no { font-family: var(--mono); font-size:.85rem; color: var(--red); letter-spacing:.06em; }
.entry__t { font-family: var(--disp); font-size: clamp(1.5rem,2.6vw,2.1rem); font-weight:500; line-height:1.05; }
.entry__d { color: var(--muted); font-size:1.05rem; line-height:1.5; }
.entry__x { font-family: var(--mono); font-size:1.3rem; color: var(--ink); }
@media (max-width: 880px){
  .entry { grid-template-columns: 3rem 1fr; gap:.4rem 1.2rem; }
  .entry__d { grid-column: 2; }
  .entry__x { display:none; }
}

/* ── Plate (full-bleed image anchor, like a book plate) ── */
.plate { position: relative; }
.plate img { width:100%; height: clamp(320px, 56vw, 620px); object-fit: cover; filter: sepia(.18) saturate(.92) contrast(1.02); border-block: 1px solid var(--ink); }
.plate__cap { position:absolute; left: var(--pad); bottom: 1.4rem; font-family: var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color: var(--paper); background: var(--ink); padding:.5rem .9rem; }
.plate__cap .red { color: #ff9a86; }

/* ── Languages index (justified run) ── */
.langrun { font-family: var(--disp); font-size: clamp(1.6rem, 3.2vw, 2.6rem); line-height: 1.5; font-weight:500; }
.langrun span { white-space: nowrap; }
.langrun span::after { content: " · "; color: var(--red); }
.langrun span:last-child::after { content: ""; }
.langrun .more { font-style: italic; color: var(--muted); }

/* ── Steps (numbered, editorial) ── */
.steps { display:grid; grid-template-columns: repeat(4,1fr); gap:0; border-top:1px solid var(--ink); }
.step { padding: 2rem 1.4rem 2rem 0; border-left:1px solid var(--rule); padding-left:1.4rem; }
.step:first-child { border-left:0; padding-left:0; }
.step__n { font-family: var(--mono); font-size:.85rem; color: var(--red); letter-spacing:.1em; }
.step h3 { font-size:1.5rem; margin:.6rem 0 .4rem; }
.step p { color: var(--muted); font-size:1.02rem; margin:0; }
@media (max-width:820px){ .steps{ grid-template-columns:1fr 1fr; } .step{ padding:1.6rem; border-top:1px solid var(--rule);} .step:nth-child(-n+2){border-top:0;} .step:nth-child(odd){border-left:0;padding-left:0;} }
@media (max-width:520px){ .steps{ grid-template-columns:1fr; } .step{ border-left:0; padding-left:0; border-top:1px solid var(--rule);} .step:first-child{border-top:0;} }

/* ── Reviews: pull-quotes (masonry-ish columns) ── */
.quotes { columns: 3; column-gap: clamp(1.5rem,3vw,2.8rem); }
@media (max-width:900px){ .quotes{ columns:2; } }
@media (max-width:580px){ .quotes{ columns:1; } }
.q { break-inside: avoid; padding: 1.6rem 0 1.8rem; border-top: 1px solid var(--rule); margin-bottom: 0; }
.q:first-child { border-top: 0; }
.q__stars { color: var(--red); letter-spacing:2px; font-size:.9rem; }
.q p { font-family: var(--disp); font-weight: 400; font-size: 1.25rem; line-height:1.4; margin: .7rem 0 1rem; }
.q--big p { font-size: 1.7rem; }
.q cite { font-family: var(--mono); font-style: normal; font-size: .76rem; letter-spacing:.04em; text-transform: uppercase; color: var(--muted); display:block; }
.q cite b { color: var(--ink); font-weight:600; }
.reviews-rating { font-family: var(--mono); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color: var(--muted); display:flex; align-items:center; gap:.8rem; }
.reviews-rating strong { font-family: var(--disp); font-size:2.4rem; color: var(--ink); font-weight:600; }
.reviews-rating .stars { color: var(--red); letter-spacing:2px; }

/* ── Tariff (pricing as a rate sheet) ── */
.tariff { display:grid; grid-template-columns: repeat(3,1fr); border:1px solid var(--ink); }
.plan { padding: 2.2rem 1.8rem; border-left:1px solid var(--rule); display:flex; flex-direction:column; }
.plan:first-child { border-left:0; }
.plan--top { background: var(--ink); color: var(--paper); }
.plan--top h3 { color: var(--paper); }
.plan--top .plan__feat li { color: rgba(239,231,214,.86); }
.plan--top .plan__feat li::before { color: #ff9a86; }
.plan__tag { font-family: var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color: var(--red); margin-bottom:.8rem; }
.plan--top .plan__tag { color: #ff9a86; }
.plan h3 { font-size:1.7rem; margin:0 0 .3rem; }
.plan__price { font-family: var(--disp); font-variant-numeric: oldstyle-nums; }
.plan__price strong { font-size:2.6rem; font-weight:600; }
.plan__price span { font-family: var(--mono); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color: var(--muted); }
.plan--top .plan__price span { color: rgba(239,231,214,.65); }
.plan__desc { color: var(--muted); font-size:1rem; line-height:1.5; padding: 1rem 0; border-bottom:1px solid var(--rule); margin-bottom: 1rem; }
.plan--top .plan__desc { color: rgba(239,231,214,.78); border-color: rgba(239,231,214,.25); }
.plan__feat { list-style:none; padding:0; margin:0 0 1.6rem; display:grid; gap:.55rem; flex:1; }
.plan__feat li { font-size:1rem; padding-left:1.5rem; position:relative; line-height:1.4; }
.plan__feat li::before { content:"—"; position:absolute; left:0; color: var(--red); }
.plan .btn { width:100%; justify-content:center; }
.pricing-note { font-family: var(--mono); font-size:.76rem; letter-spacing:.04em; color: var(--muted); text-align:center; margin-top:1.6rem; }
.pricing-note a { color: var(--red); }
@media (max-width:820px){ .tariff{ grid-template-columns:1fr; } .plan{ border-left:0; border-top:1px solid var(--rule);} .plan:first-child{border-top:0;} }

/* ── FAQ (typeset Q&A, two columns) ── */
.faq-wrap { display:grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem,5vw,4rem); align-items:start; }
@media (max-width:860px){ .faq-wrap{ grid-template-columns:1fr; } }
.faq-aside { position: sticky; top: 6rem; }
.faq-nudge { margin-top: 1.6rem; border:1px solid var(--ink); padding: 1.6rem; }
.faq-nudge h3 { font-size:1.4rem; margin-bottom:.4rem; }
.faq-nudge p { color:var(--muted); font-size:1rem; margin-bottom:1.1rem; }
.qa { border-top:1px solid var(--ink); }
.qa details { border-bottom:1px solid var(--rule); padding: 1.3rem 0; }
.qa summary { cursor:pointer; list-style:none; display:grid; grid-template-columns: 2.4rem 1fr auto; gap:1rem; align-items:baseline; font-family: var(--disp); font-size:1.4rem; font-weight:500; }
.qa summary::-webkit-details-marker{ display:none; }
.qa summary .qn { font-family: var(--mono); font-size:.85rem; color: var(--red); }
.qa summary::after { content:"+"; font-family: var(--mono); color: var(--red); font-size:1.3rem; }
.qa details[open] summary::after { content:"–"; }
.qa details p { color: var(--muted); font-size:1.05rem; line-height:1.55; margin: .9rem 0 0; padding-left:3.4rem; max-width: 60ch; }

/* ── CTA (ink invert) ── */
.cta { text-align:center; }
.cta .parallel__src { justify-content:center; }
.cta h2 { font-size: clamp(2.4rem,6vw,5rem); margin:.4rem 0 1.2rem; }
.cta h2 em { color: #ff9a86; font-style:italic; }
.cta p { color: rgba(239,231,214,.82); font-size:1.25rem; max-width:46ch; margin:0 auto 2rem; }
.cta__cta { display:flex; gap:1.4rem; justify-content:center; flex-wrap:wrap; align-items:center; }

/* ── Split (about/feature) ── */
.split { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,4rem); align-items:center; }
@media (max-width:820px){ .split{ grid-template-columns:1fr; } }
.split__media img { width:100%; aspect-ratio:4/5; object-fit:cover; border:1px solid var(--ink); filter: sepia(.16) contrast(1.02); }
.feat-list { list-style:none; padding:0; margin:1.4rem 0 1.8rem; }
.feat-list li { padding: .8rem 0 .8rem 2.2rem; border-top:1px solid var(--rule); position:relative; font-size:1.08rem; }
.feat-list li:first-child{ border-top:0; }
.feat-list li::before { content: counter(f,decimal-leading-zero); counter-increment:f; position:absolute; left:0; top:.85rem; font-family:var(--mono); font-size:.78rem; color: var(--red); }
.feat-list { counter-reset: f; }

/* ── Page hero (inner) ── */
.page-hero { border-bottom:1px solid var(--ink); padding: clamp(3rem,7vw,5.5rem) 0 clamp(2.4rem,5vw,3.5rem); }
.page-hero h1 { font-size: clamp(2.8rem,7vw,6rem); max-width: 16ch; margin-top:.2em; }
.page-hero h1 em { color: var(--red); }
.page-hero p { color: var(--ink-2); font-size:1.3rem; max-width:52ch; margin: 1.2rem 0 0; }

/* ── Timeline / team / values (about) ── */
.timeline { border-top:1px solid var(--ink); }
.timeline__item { display:grid; grid-template-columns: 7rem 1fr; gap:1.5rem; padding:1.8rem 0; border-bottom:1px solid var(--rule); }
.timeline__year { font-family:var(--disp); font-variant-numeric:oldstyle-nums; font-size:2rem; font-weight:600; color: var(--red); line-height:1; }
.timeline__content h3 { font-size:1.5rem; margin:0 0 .3rem; }
.timeline__content p { color:var(--muted); margin:0; font-size:1.05rem; }
@media (max-width:600px){ .timeline__item{ grid-template-columns:1fr; gap:.3rem; } }
.grid { display:grid; gap:0; }
.grid--3 { grid-template-columns: repeat(3,1fr); border-top:1px solid var(--ink); }
.grid--4 { grid-template-columns: repeat(4,1fr); border-top:1px solid var(--ink); }
@media (max-width:860px){ .grid--3,.grid--4{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .grid--3,.grid--4{ grid-template-columns:1fr; } }
.value-card { padding: 1.8rem; border-left:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.value-card h3 { font-size:1.5rem; }
.value-card h3::before { content:"■ "; color: var(--red); font-size:.8em; }
.value-card p { color:var(--muted); margin:0; font-size:1.02rem; }
.team-card { padding:1.8rem; border-left:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.team-card__avatar { font-family:var(--disp); font-weight:600; font-size:1.6rem; color: var(--red); }
.team-card__name { font-size:1.4rem; margin:.5rem 0 .1rem; }
.team-card__role { font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.team-card__bio { color:var(--muted); font-size:1rem; margin:.7rem 0 .6rem; }
.team-card__langs { font-family:var(--mono); font-size:.74rem; letter-spacing:.06em; color:var(--ink); }
.tag { font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; }

/* ── Contact ── */
.contact-grid { display:grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem,5vw,4rem); }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
.form-card { border:1px solid var(--ink); padding: clamp(1.6rem,4vw,2.6rem); }
.field { margin-bottom:1.2rem; }
.field label { font-family:var(--mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:.4rem; }
.field input,.field textarea,.field select { width:100%; padding:.85rem 1rem; border:1px solid var(--rule); background: var(--paper); color:var(--ink); font:inherit; font-size:1.05rem; border-radius:0; }
.field input:focus,.field textarea:focus,.field select:focus { outline:2px solid var(--red); outline-offset:-1px; border-color: var(--red); }
.check { display:flex; gap:.6rem; align-items:flex-start; }
.check input { margin-top:.3rem; width:18px; height:18px; flex:0 0 18px; accent-color: var(--red); }
.check label { font-family: var(--text); text-transform:none; letter-spacing:0; font-size:1rem; color:var(--muted); }
.form-note { margin-top:.7rem; font-size:1rem; min-height:1.3em; }
.form-note.error{ color: var(--red); } .form-note.ok{ color:#3a6b35; }
.info-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--ink); }
.info-list li { padding:1.1rem 0; border-bottom:1px solid var(--rule); }
.info-list strong { display:block; font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red); margin-bottom:.25rem; }
.info-list a { color:var(--ink); text-decoration:none; }
.info-list a:hover { color: var(--red); }
.map-box { margin-top:1.4rem; height:200px; border:1px solid var(--ink); display:grid; place-items:center; font-family:var(--mono); font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); background: repeating-linear-gradient(45deg, var(--paper-2) 0 14px, var(--paper) 14px 28px); }

/* ── Legal ── */
.legal { max-width:760px; margin:0 auto; }
.legal h2 { margin-top:2.4rem; font-size:1.9rem; }
.legal h3 { margin-top:1.6rem; font-size:1.4rem; }
.legal p, .legal li { color: var(--ink-2); }
.legal .updated { font-family:var(--mono); font-size:.78rem; letter-spacing:.06em; color:var(--muted); margin-bottom:2rem; }
.legal a { color: var(--red); }

/* ── Footer (colophon) ── */
.site-footer { border-top:1px solid var(--ink); background: var(--ink); color: var(--paper); padding: 3.5rem 0 1.6rem; }
.site-footer a { color: var(--paper); text-decoration:none; }
.site-footer a:hover { color:#ff9a86; }
.footer-grid { display:grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap:2.5rem; }
.site-footer .brand { color: var(--paper); margin-bottom:1rem; }
.site-footer .brand__txt { color: var(--paper); }
.site-footer .brand .mark { color:#ff9a86; }
.site-footer .brand small { color: rgba(239,231,214,.55); }
.footer-grid h4 { font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color: rgba(239,231,214,.6); margin:0 0 1rem; font-weight:500; }
.footer-grid ul { list-style:none; padding:0; margin:0; }
.footer-grid li { margin:.5rem 0; }
.footer-grid a { font-size:1.02rem; }
.footer-desc { color: rgba(239,231,214,.72); font-size:1rem; line-height:1.6; max-width:36ch; }
.footer-contact { font-family:var(--mono); font-size:.82rem; line-height:1.9; letter-spacing:.02em; color: rgba(239,231,214,.8); }
.footer-contact strong { color: var(--paper); display:block; font-weight:500; }
.footer-bottom { border-top:1px solid rgba(239,231,214,.2); margin-top:3rem; padding-top:1.4rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.8rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color: rgba(239,231,214,.55); }
.footer-bottom a { color: rgba(239,231,214,.55); }

/* ── Cookie ── */
.cookie { position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:80; background: var(--ink); color: var(--paper); border:1px solid var(--paper); padding:1.1rem 1.4rem; display:flex; gap:1rem; align-items:center; justify-content:space-between; flex-wrap:wrap; max-width:840px; margin:0 auto; }
.cookie p { margin:0; font-size:1rem; }
.cookie a { color:#ff9a86; }
.cookie__btns { display:flex; gap:.6rem; flex-shrink:0; }
.cookie .btn { padding:.5rem 1.1rem; }

/* ── Reveal ── */
.js [data-reveal]{ opacity:0; transform: translateY(16px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.js [data-reveal].is-in{ opacity:1; transform:none; }
:focus-visible { outline:2px solid var(--red); outline-offset:3px; }

/* ── Responsive nav ── */
@media (max-width: 900px) {
  .nav-toggle { display:flex; }
  .nav-menu { position:fixed; inset:0 0 auto 0; top:var(--nav-h,60px); flex-direction:column; align-items:flex-start; gap:0; background: var(--paper); border-bottom:1px solid var(--ink); padding:1rem var(--pad); transform:translateY(-130%); transition:transform .32s var(--ease); max-height:calc(100vh - 60px); overflow:auto; }
  .nav-menu.is-open { transform:translateY(0); }
  .nav-menu li { width:100%; }
  .nav-menu a:not(.btn){ display:block; padding:.7rem 0; border-bottom:1px solid var(--rule); }
  .nav-menu a:not(.btn)::after{ display:none; }
  .nav-menu .btn { width:100%; justify-content:center; margin-top:.7rem; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px){
  .hero__cta{ flex-direction:column; align-items:stretch; }
  .footer-grid{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; }
  .topbar__left{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ transition:none!important; animation:none!important; scroll-behavior:auto; }
  .js [data-reveal]{ opacity:1; transform:none; }
}
[hidden]{ display:none!important; }

/* ── Red section (vivid CTA band) ── */
.section--red .btn { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.section--red .btn:hover { background: transparent; color: var(--paper); }
.section--red .btn--ghost { background: transparent; color: var(--paper); border-color: var(--paper); }
.section--red .btn--ghost:hover { background: var(--paper); color: var(--red); }
.section--red .cta h2 em { color: var(--ink); font-style: italic; }
.section--red .cta p { color: rgba(255,247,237,.92); }
.section--red .tlink { color: var(--paper); border-color: rgba(255,247,237,.6); }
.section--red .tlink:hover { color: var(--paper); border-color: var(--paper); }
.section--red .parallel__src { color: rgba(255,247,237,.7); }
.section--red .parallel__src::before { background: var(--paper); }

/* ── Full-bleed helper ── */
.bleed { width: 100vw; margin-left: 50%; transform: translateX(-50%); }
