/* Ecology — design system and site shell (stage 1).
   Source of truth: design/approved/Ecology Homepage v5 (DS panel), Ecology Navigation, T1–T5 v2. Do not redesign. */

/* ---------- fonts (self-hosted, OFL) ---------- */
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%;
  src: url(/assets/fonts/archivo-latin-standard.woff2) format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
/* Estonian š / ž only (4 KB subset of latin-ext, D-211) — an Estonian page no longer downloads the 86 KB latin-ext file for 3 letters */
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%;
  src: url(/assets/fonts/archivo-et-sz-standard.woff2) format("woff2-variations"); unicode-range: U+0160-0161,U+017D-017E; }
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%;
  src: url(/assets/fonts/archivo-latin-ext-standard.woff2) format("woff2-variations");
  unicode-range: U+0100-015F,U+0162-017C,U+017F-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
/* Cyrillic: Archivo has none — Inter Tight draws Cyrillic inside the same family (D-100); Latin stays Archivo */
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%;
  src: url(/assets/fonts/intertight-cyrillic-wght.woff2) format("woff2-variations"); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%;
  src: url(/assets/fonts/intertight-cyrillic-ext-wght.woff2) format("woff2-variations"); unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 400; src: url(/assets/fonts/plexmono-latin-400.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 500; src: url(/assets/fonts/plexmono-latin-500.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 600; src: url(/assets/fonts/plexmono-latin-600.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 400; src: url(/assets/fonts/plexmono-latin-ext-400.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 500; src: url(/assets/fonts/plexmono-latin-ext-500.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 600; src: url(/assets/fonts/plexmono-latin-ext-600.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 400; src: url(/assets/fonts/plexmono-cyrillic-400.woff2) format("woff2"); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 500; src: url(/assets/fonts/plexmono-cyrillic-500.woff2) format("woff2"); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 600; src: url(/assets/fonts/plexmono-cyrillic-600.woff2) format("woff2"); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 400; src: url(/assets/fonts/plexmono-cyrillic-ext-400.woff2) format("woff2"); unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 500; src: url(/assets/fonts/plexmono-cyrillic-ext-500.woff2) format("woff2"); unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 600; src: url(/assets/fonts/plexmono-cyrillic-ext-600.woff2) format("woff2"); unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }

/* ---------- tokens (Homepage v5 · DS panel) ---------- */
:root {
  --deep: #151617; --graphite: #1c1d1f; --coal: #2a2b2d; --concrete: #8c8780;
  --warm: #d9d4cb; --stone: #e8e4dd; --offwhite: #f3f1ec; --signal: #ee5a24;
  --muted: #a8a39b; --iron: #45464a;
  --line-dark: rgba(243, 241, 236, .2); --line-dark-soft: rgba(243, 241, 236, .08);
  --sans: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
  --pad: 64px; --hdr-h: 80px;
}
@media (max-width: 1199px) { :root { --pad: 32px; --hdr-h: 64px; } }
@media (max-width: 599px) { :root { --pad: 16px; --hdr-h: 60px; } }

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--offwhite); color: var(--graphite); font-family: var(--sans); font-size: 17px; line-height: 1.6;
  -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--signal-text); }
button { font: inherit; cursor: pointer; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.signal { color: var(--signal-text); }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--signal); color: var(--graphite); padding: 10px 14px; font-weight: 600; }
.skip:focus { left: 8px; }
body.is-locked { overflow: hidden; }

/* photo treatment (DS): grayscale 100 %, contrast 115 %, brightness 90 %, warm soft-light */
.photo { filter: grayscale(1) contrast(1.15) brightness(.9); }
.ph { position: relative; display: block; overflow: hidden; background: repeating-linear-gradient(135deg, var(--coal) 0 12px, #303133 12px 24px); }
.ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph::after { content: ""; position: absolute; inset: 0; background: #7a5f45; mix-blend-mode: soft-light; opacity: .5; pointer-events: none; }

.btn { display: inline-flex; align-items: center; gap: 10px; padding: 13px 20px; font-weight: 600; font-size: 15px; border-radius: 2px; white-space: nowrap; }
.btn--signal { background: var(--signal); color: var(--graphite); }
.btn--signal:hover { background: var(--offwhite); color: var(--graphite); }

/* ---------- logo ---------- */
.logo { display: flex; align-items: center; gap: 10px; color: var(--offwhite); }
.logo:hover { color: var(--offwhite); }
.logo__sq { width: 13px; height: 13px; background: var(--signal); display: block; }
.logo__word { font-family: "Archivo", var(--sans); font-weight: 800; font-stretch: 125%; font-size: 20px; letter-spacing: .05em; line-height: 1; }

/* ---------- header (Navigation N1–N3; T1–T5 v2) ---------- */
.hdr { position: sticky; top: 0; z-index: 40; background: var(--graphite); color: var(--offwhite); }
.hdr__bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--hdr-h); padding: 0 var(--pad); border-bottom: 1px solid var(--coal); position: relative; z-index: 3; background: var(--graphite); }
.hdr--overlay { position: absolute; left: 0; right: 0; background: transparent; }
.hdr--overlay .hdr__bar { background: transparent; border-bottom-color: transparent; }
.hdr__nav { display: flex; gap: 6px; height: 100%; }
.nav-i { display: flex; align-items: center; height: 100%; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.nav-i.is-active, .nav-i.is-open { border-bottom-color: var(--signal); }
.nav-i__link { font-size: 15px; font-weight: 500; color: var(--offwhite); padding: 8px 4px 8px 12px; }
.nav-i.is-open .nav-i__link { color: var(--signal-text); }
.nav-i__arrow { width: 26px; height: 32px; border: 0; background: transparent; color: var(--concrete); display: flex; align-items: center; justify-content: center; padding: 0; }
.nav-i__arrow span { display: block; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .25s; }
.nav-i.is-open .nav-i__arrow { color: var(--signal-text); }
.nav-i.is-open .nav-i__arrow span { transform: translateY(2px) rotate(-135deg); }
.hdr__tools { display: flex; align-items: center; gap: 20px; }
.hdr__phone { font-size: 15px; font-weight: 500; color: var(--offwhite); white-space: nowrap; }
.langs { display: flex; border: 1px solid rgba(243, 241, 236, .3); border-radius: 999px; padding: 3px; }
.langs__i { border-radius: 999px; padding: 6px 11px; font: 500 12px var(--mono); letter-spacing: .06em; color: var(--offwhite); }
.langs__i.is-on { background: var(--offwhite); color: var(--graphite); }
.hdr__burger { display: none; }

/* mega-menu panel */
.mega { position: absolute; left: 0; right: 0; top: var(--hdr-h); z-index: 2; background: var(--graphite); color: var(--offwhite); border-bottom: 1px solid var(--coal); }
.mega__body { padding: 36px var(--pad) 0; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; }
.mega__body--nocard { grid-template-columns: minmax(0, 1fr); }
.mega__groups { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 32px; align-content: start; }
.mega__col { display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.mega__group { display: flex; flex-direction: column; }
.mega__glabel { font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--signal-text); padding-bottom: 12px; border-bottom: 1px solid var(--line-dark); }
.mega__link { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--line-dark-soft); font-size: 16px; line-height: 1.3; color: var(--offwhite); }
.mega__link[aria-current] { color: var(--signal-text); }
.mega__card { display: flex; flex-direction: column; gap: 14px; color: var(--offwhite); }
.mega__card:hover { color: var(--offwhite); }
.mega__photo { height: 190px; }
.mega__ctitle { font-size: 22px; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; }
.mega__ctext { font-size: 14px; line-height: 1.5; color: var(--muted); }
.mega__foot { margin-top: 28px; padding: 0 var(--pad); min-height: 64px; background: var(--deep); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.mega__all { display: flex; align-items: center; gap: 14px; font-size: 17px; font-weight: 600; color: var(--offwhite); }
.mega__url { font: 500 12px var(--mono); color: var(--concrete); }
.mega__note { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--concrete); text-align: right; }
.mega-backdrop { position: fixed; inset: 0; z-index: 1; background: rgba(21, 22, 23, .55); }

/* ---------- mobile header + menu (N4–N6) ---------- */
@media (max-width: 1199px) {
  .hdr__nav, .hdr__phone, .hdr__cta, .mega, .mega-backdrop { display: none !important; }
  .hdr__tools { margin-left: auto; gap: 8px; }
  .hdr .langs__i { height: 36px; min-width: 44px; display: flex; align-items: center; justify-content: center; font-size: 13px; padding: 0 10px; }
  .logo__sq { width: 11px; height: 11px; }
  .logo__word { font-size: 17px; }
  .hdr__burger { display: flex; align-items: center; gap: 10px; height: 44px; min-width: 44px; padding: 0 14px; border: 1px solid rgba(243, 241, 236, .35); border-radius: 999px; background: transparent; color: var(--offwhite); font-size: 15px; font-weight: 600; }
  .hdr__burger-lines { position: relative; width: 16px; height: 12px; display: flex; flex-direction: column; justify-content: center; gap: 5px; }
  .hdr__burger-lines span { display: block; width: 16px; height: 2px; background: var(--offwhite); transition: transform .3s; }
  .hdr__burger[aria-expanded="true"] .hdr__burger-lines span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .hdr__burger[aria-expanded="true"] .hdr__burger-lines span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .hdr--overlay .hdr__bar { background: rgba(28, 29, 31, .92); backdrop-filter: blur(12px); }
}
@media (max-width: 599px) { .hdr__burger-label { display: none; } .hdr__burger { padding: 0; width: 44px; justify-content: center; } }

.mnav { position: fixed; left: 0; right: 0; top: var(--hdr-h); bottom: 0; z-index: 39; background: var(--graphite); color: var(--offwhite); display: flex; flex-direction: column; }
.mnav[hidden] { display: none; }
.mnav__scroll { flex: 1; overflow-y: auto; overscroll-behavior: contain; }
.mnav__row { border-bottom: 1px solid var(--coal); transition: background .25s; }
.mnav__row.is-open { background: var(--deep); }
.mnav__head { width: 100%; min-height: 76px; border: 0; background: transparent; color: var(--offwhite); display: grid; grid-template-columns: minmax(0, 1fr) 40px; align-items: center; gap: 12px; padding: 12px 20px; text-align: left; }
.mnav__titles { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.mnav__title { font-size: 26px; font-weight: 600; letter-spacing: -.025em; line-height: 1.1; }
.mnav__row.is-open .mnav__title { color: var(--signal-text); }
.mnav__hint { font-size: 13px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mnav__circle { width: 40px; height: 40px; border-radius: 50%; background: var(--coal); display: flex; align-items: center; justify-content: center; transition: background .25s; }
.mnav__circle span { display: block; width: 9px; height: 9px; border-right: 2px solid var(--offwhite); border-bottom: 2px solid var(--offwhite); transform: translateY(-2px) rotate(45deg); transition: transform .3s; }
.mnav__row.is-open .mnav__circle { background: var(--signal); }
.mnav__row.is-open .mnav__circle span { border-color: var(--graphite); transform: translateY(2px) rotate(-135deg); }
.mnav__panel { padding: 0 20px 20px; display: flex; flex-direction: column; gap: 14px; }
.mnav__panel[hidden] { display: none; }
.mnav__all { min-height: 52px; background: var(--signal); color: var(--graphite); display: flex; align-items: center; justify-content: space-between; padding: 0 16px; font-size: 16px; font-weight: 600; }
.mnav__all:hover { color: var(--graphite); }
.mnav__group { display: flex; flex-direction: column; }
.mnav__glabel { font: 500 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--concrete); padding: 6px 0 4px; }
.mnav__link { min-height: 48px; display: flex; align-items: center; border-top: 1px solid rgba(243, 241, 236, .1); font-size: 17px; color: var(--offwhite); }
.mnav__bottom { background: var(--deep); padding: 14px 16px 24px; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--coal); }
.mnav__line { display: flex; justify-content: space-between; align-items: center; }
.mnav__phone { font-size: 22px; font-weight: 600; letter-spacing: -.02em; white-space: nowrap; }
.mnav .langs__i { height: 36px; min-width: 44px; display: flex; align-items: center; justify-content: center; font-size: 13px; }
.mnav__btns { display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; }
.mnav__btns > a:only-child { grid-column: 1 / -1; }
.mnav__call, .mnav__cta { height: 52px; display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 600; }
.mnav__call { background: var(--coal); color: var(--offwhite); }
.mnav__cta { background: var(--signal); color: var(--graphite); }
.mnav__cta:hover { color: var(--graphite); }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--signal); display: inline-block; }

/* mobile fixed bottom bar on pages (Homepage v5 mobile, T2b) */
.mbar { display: none; }
@media (max-width: 1199px) {
  .mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(21, 22, 23, .96); border-top: 1px solid var(--coal); }
  .mbar > a:only-child { grid-column: 1 / -1; }
  .mbar a { height: 52px; display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 600; }
  .mbar__call { background: var(--coal); color: var(--offwhite); }
  .mbar__cta { background: var(--signal); color: var(--graphite); }
  .mbar__cta:hover { color: var(--graphite); }
  body { padding-bottom: 84px; }
  body.is-locked .mbar { display: none; }
}

/* ---------- footer (T1–T5 v2) ---------- */
.ftr { background: var(--deep); color: var(--concrete); padding: 40px var(--pad); display: flex; justify-content: space-between; align-items: center; gap: 16px 32px; flex-wrap: wrap;
  font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.ftr__word { font: 800 18px "Archivo", var(--sans); font-stretch: 125%; letter-spacing: .05em; color: var(--iron); }
@media (max-width: 599px) { .ftr { flex-direction: column; align-items: flex-start; padding: 28px var(--pad); } }

/* ---------- footer (Homepage v5) ---------- */
.fhome { background: var(--deep); color: var(--muted); padding: 80px var(--pad) 36px; overflow: hidden; }
.fhome__seo { border-bottom: 1px solid var(--coal); padding-bottom: 40px; margin-bottom: 56px; display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline;
  font: 400 11px/1.6 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--concrete); }
.fhome__seo a:hover { color: var(--warm); }
.fhome__seo .sep { color: var(--iron); }
.fhome__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; font-size: 15px; }
.fhome__col { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.fhome__label { font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--concrete); }
.fhome__col--req .btn { margin-top: 6px; }
.fhome__word { margin: 72px 0 36px; text-align: center; white-space: nowrap; line-height: .8; }
.fhome__word span { display: inline-block; font-weight: 800; font-stretch: 125%; font-size: clamp(64px, 15.2vw, 200px); line-height: .8; letter-spacing: -.01em; color: var(--coal); }
.fhome__bottom { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--concrete); border-top: 1px solid var(--coal); padding-top: 22px; }
@media (max-width: 1199px) { .fhome__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .fhome { padding: 40px var(--pad) 28px; } .fhome__cols { grid-template-columns: 1fr; gap: 28px; } .fhome__word { margin: 40px 0 24px; } }

/* ---------- stage-1 page body (legacy content, until templates of stage 2) ---------- */
.tech-note { max-width: 1100px; margin: 24px auto 0; padding: 8px 12px; font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #b8441a; background: #fff5ef; }
.legacy { max-width: 1100px; margin: 0 auto; padding: 32px var(--pad) 80px; }
.legacy h1 { font-weight: 600; font-size: clamp(40px, 6vw, 72px); line-height: .95; letter-spacing: -.045em; margin: 16px 0 32px; text-wrap: balance; }
.legacy h2 { font-weight: 600; font-size: clamp(26px, 3vw, 36px); line-height: 1.1; letter-spacing: -.03em; margin: 48px 0 16px; }
.legacy h3 { font-weight: 600; font-size: 22px; line-height: 1.2; letter-spacing: -.02em; margin: 32px 0 12px; }
.legacy a { color: var(--signal-text); text-decoration: underline; text-underline-offset: 3px; }
.legacy img { filter: grayscale(1) contrast(1.15) brightness(.9); }
.legacy table { border-collapse: collapse; width: 100%; display: block; overflow-x: auto; }
.legacy td, .legacy th { border: 1px solid var(--warm); padding: 8px 12px; text-align: left; vertical-align: top; }
.legacy iframe { max-width: 100%; }

/* =====================================================================================================================
   Stage 2 · templates T2 (Service) and T3 (Waste type) — design/approved/Ecology T2 Service Page v2, T3 Waste Type v2
   ===================================================================================================================== */
.eyebrow { font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #5c5852; }
.dark .eyebrow { color: var(--muted); }
.eyebrow.signal, .signal.eyebrow { color: var(--signal-text); }
.num { font: 500 11px var(--mono); color: var(--concrete); }
.ref { font: 500 10px var(--mono); letter-spacing: .08em; color: var(--signal-text); }
.ref--muted { color: var(--concrete); }
.km { font: 500 .6em var(--mono); letter-spacing: .04em; color: var(--muted); }
.bignum { font-weight: 200; font-stretch: 62%; font-size: 72px; line-height: .8; }
.bignum--xl { font-size: 96px; }
.h2 { margin: 24px 0 0; font-size: clamp(30px, 3.2vw, 44px); font-weight: 600; letter-spacing: -.035em; line-height: 1.05; text-wrap: balance; }
.h2-lg { margin: 0; font-weight: 600; font-size: clamp(34px, 4vw, 56px); line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
.h2-xl { margin: 0; font-weight: 600; font-size: clamp(36px, 4.6vw, 64px); line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
.btn--lg { padding: 18px 26px; font-size: 16px; }
.btn--ghost { border: 1px solid rgba(243, 241, 236, .45); color: var(--offwhite); font-weight: 500; }
.btn--ghost:hover { border-color: var(--offwhite); color: var(--offwhite); }
.btn--outline { border: 1px solid var(--graphite); color: var(--graphite); height: 56px; padding: 0 22px; align-self: flex-start; }
.btn--dark { background: var(--graphite); color: var(--offwhite); height: 56px; padding: 0 22px; align-self: flex-start; }
.btn--dark:hover { color: var(--signal-text); }
.golink { margin: 6px 0 14px; }
.golink a { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 17px; color: var(--graphite); text-decoration: none; border-bottom: 1px solid var(--signal); padding-bottom: 2px; }
.golink a:hover { color: var(--signal-text); }
.dark .golink a, .prose--dark .golink a { color: var(--offwhite); }
.lead-in { margin: 18px 0 4px; color: #45464a; }
.blk { padding: 88px var(--pad); }
.blk-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; margin-bottom: 48px; }
.blk-head .eyebrow { grid-column: 1 / 4; padding-top: 12px; }
.blk-head h2 { grid-column: 4 / 12; }
.blk-note { margin: 28px 0 0; font-size: 15px; color: #5c5852; max-width: 70ch; }
.blk-note--dark { color: var(--muted); }
.dark { background: var(--graphite); color: var(--offwhite); }
.ph { background-color: var(--coal); }
.photo { filter: grayscale(1) contrast(1.15) brightness(.9); }

/* crumbs */
.crumbs { font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--warm); display: flex; flex-wrap: wrap; gap: 6px; }
.crumbs a { color: var(--warm); }
.crumbs a:hover { color: var(--signal-text); }
.crumbs__here { color: var(--signal-text); }
.crumbs__sep { opacity: .7; }

/* facts row */
.facts { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(243, 241, 236, .22); }
.facts__i { padding: 20px 24px 24px 0; display: flex; flex-direction: column; gap: 6px; }
.facts dt { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.facts dd { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.02em; }
.facts--sm .facts__i { padding: 18px 16px 0 0; gap: 4px; }
.facts--sm dt { font-size: 10px; }
.facts--sm dd { font-size: 19px; }

/* ---------- T2 hero ---------- */
.t2-hero { position: relative; min-height: 640px; background: var(--graphite); color: var(--offwhite); overflow: hidden; display: flex; align-items: flex-end; }
.t2-hero__media { position: absolute; inset: 0; }
.t2-hero__media img { filter: grayscale(1) contrast(1.15) brightness(.78); }
.t2-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(21, 22, 23, .55), rgba(21, 22, 23, .93)); pointer-events: none; }
.t2-hero__body { position: relative; z-index: 1; width: 100%; padding: 120px var(--pad) 0; display: flex; flex-direction: column; gap: 24px; }
.t2-hero__h1 { margin: 0; font-weight: 600; font-size: clamp(44px, 7.2vw, 104px); line-height: .92; letter-spacing: -.045em; max-width: 1100px; text-wrap: balance; }
.t2-hero__row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: end; margin-bottom: 8px; }
.t2-hero__lead { grid-column: 1 / 7; margin: 0; font-size: 19px; line-height: 1.5; color: var(--stone); text-wrap: pretty; }
.t2-hero__actions { grid-column: 8 / 13; display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }

/* ---------- T2 intro + article column ---------- */
.t2-intro { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.toc { grid-column: 1 / 4; align-self: start; position: sticky; top: calc(var(--hdr-h) + 24px); border-top: 1px solid var(--graphite); }
.toc__toggle { display: none; }
.toc__label { display: block; padding: 14px 0; }
.toc__list a { display: grid; grid-template-columns: 36px minmax(0, 1fr); padding: 10px 0; border-top: 1px solid rgba(28, 29, 31, .14); font-size: 15px; color: #45464a; }
.toc__list a .num { padding-top: 3px; }
.toc__list a.is-first { color: var(--graphite); }
.toc__list a.is-first .num { color: var(--signal-text); }
.t2-article { grid-column: 5 / 12; display: flex; flex-direction: column; gap: 22px; font-size: 19px; line-height: 1.65; color: var(--coal); text-wrap: pretty; min-width: 0; }
.t2-article p { margin: 0; }
.t2-article--offset { max-width: calc((100% - 11 * 24px) / 12 * 7 + 6 * 24px); margin-left: calc((100% - 11 * 24px) / 12 * 4 + 4 * 24px); }
.t2-lead { font-size: 24px !important; line-height: 1.5; color: var(--graphite); }
.numlist { background: var(--stone); padding: 28px 32px; display: flex; flex-direction: column; gap: 14px; }
.numlist .eyebrow { color: #45464a; }
.numlist__i { display: grid; grid-template-columns: 40px minmax(0, 1fr); border-top: 1px solid rgba(28, 29, 31, .15); padding-top: 12px; font-size: 17px; color: var(--graphite); }
.numlist__i .num { color: var(--signal-text); font-size: 12px; padding-top: 4px; }
.assess { display: flex; flex-direction: column; gap: 8px; }
ul.dash { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
ul.dash li { padding: 8px 0 8px 22px; border-top: 1px solid rgba(28, 29, 31, .12); position: relative; font-size: 17px; }
ul.dash li::before { content: "—"; position: absolute; left: 0; color: var(--signal-text); }
.dash--cols { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: 24px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { height: 36px; padding: 0 14px; border: 1px solid rgba(28, 29, 31, .25); border-radius: 999px; display: flex; align-items: center; font-size: 15px; color: var(--graphite); }
.chips--sm .chip { height: 32px; padding: 0 12px; font-size: 14px; }
.t2-materials { padding-top: 0; }
.prose-blk { padding-top: 24px; padding-bottom: 24px; }

/* prose (legacy text kept in place) */
.prose { font-size: 18px; line-height: 1.65; color: var(--coal); }
.prose > * { margin: 0 0 16px; }
.prose h2 { font-size: clamp(28px, 3vw, 40px); font-weight: 600; letter-spacing: -.035em; line-height: 1.05; color: var(--graphite); margin: 48px 0 18px; text-wrap: balance; }
.prose h3 { font-size: 22px; font-weight: 600; letter-spacing: -.015em; line-height: 1.25; color: var(--graphite); margin: 28px 0 10px; }
.prose h4 { font-size: 18px; font-weight: 600; margin: 20px 0 8px; }
.prose ul, .prose ol { padding: 0; list-style: none; }
.prose ul li, .prose ol li { padding: 7px 0 7px 22px; border-top: 1px solid rgba(28, 29, 31, .1); position: relative; }
.prose ul li::before { content: "—"; position: absolute; left: 0; color: var(--signal-text); }
.prose ol { counter-reset: n; }
.prose ol li { counter-increment: n; padding-left: 34px; }
.prose ol li::before { content: counter(n, decimal-leading-zero); position: absolute; left: 0; top: 10px; font: 500 11px var(--mono); color: var(--signal-text); }
.prose a { color: var(--graphite); text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 3px; }
.prose a:hover { color: var(--signal-text); }
.prose img { max-width: 100%; height: auto; filter: grayscale(1) contrast(1.15) brightness(.9); }
.prose p:has(> img) { display: flex; flex-wrap: wrap; gap: 12px; }
.prose table { border-collapse: collapse; width: 100%; display: block; overflow-x: auto; font-size: 16px; }
.prose td, .prose th { border-top: 1px solid var(--warm); padding: 10px 12px 10px 0; text-align: left; vertical-align: top; }
.prose--dark { color: var(--warm); }
.prose--dark h2, .prose--dark h3 { color: var(--offwhite); }
.prose--dark ul li, .prose--dark ol li { border-top-color: rgba(243, 241, 236, .14); }
.prose--dark a { color: var(--offwhite); }
details.more { border-top: 1px solid rgba(28, 29, 31, .15); }
details.more summary { cursor: pointer; padding: 12px 0; font: 500 12px var(--mono); letter-spacing: .08em; text-transform: uppercase; list-style: none; }
details.more summary::-webkit-details-marker { display: none; }
details.more summary::after { content: " +"; color: var(--signal-text); }
details.more[open] summary::after { content: " –"; }
details.more .prose { font-size: 16px; }
.more--dark { border-top-color: rgba(243, 241, 236, .2); }

/* ---------- T2 conditions ---------- */
.t2-cond { background: var(--stone); }
.cards2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.wcard { padding: 36px; display: flex; flex-direction: column; gap: 18px; }
.wcard--light { background: var(--offwhite); color: var(--graphite); }
.wcard--dark { background: var(--graphite); color: var(--offwhite); }
.wcard--dark .chip { border-color: rgba(243, 241, 236, .3); color: var(--offwhite); }
.wcard--dark .eyebrow, .wcard--dark .wcard__intro, .wcard--dark .wcard__text { color: var(--muted); }
.wcard__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.wcard__t { font-size: 32px; font-weight: 600; letter-spacing: -.03em; line-height: 1.1; }
.wcard__intro, .wcard__text { margin: 0; font-size: 16px; line-height: 1.55; color: #45464a; }
.quote { margin: 48px 0 24px; font-size: clamp(28px, 3vw, 40px); font-weight: 500; line-height: 1.1; letter-spacing: -.03em; color: var(--graphite); text-wrap: balance; max-width: 900px; }
.t2-cond__after { max-width: 760px; font-size: 17px; line-height: 1.6; }
.t2-cond__after p { margin: 0 0 12px; }

/* ---------- T2 methods ---------- */
.methods { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.methods__list { grid-column: 1 / 5; display: flex; flex-direction: column; border-top: 1px solid var(--graphite); align-self: start; }
.methods__btn { background: transparent; border: 0; border-bottom: 1px solid rgba(28, 29, 31, .2); text-align: left; padding: 24px 0; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; color: var(--concrete); transition: color .3s; }
.methods__btn .num { font-size: 12px; }
.methods__btn.is-on { color: var(--graphite); }
.methods__btn.is-on .num { color: var(--signal-text); }
.methods__name { font-size: 36px; font-weight: 500; letter-spacing: -.03em; }
.methods__price { font-size: 15px; font-weight: 600; color: var(--graphite); opacity: 0; transition: opacity .3s; }
.methods__btn.is-on .methods__price { opacity: 1; }
.methods__panels { grid-column: 6 / 13; }
.methods__panel { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.js .methods__panel:not(.is-on) { display: none; }
.methods__photo { height: 420px; }
.methods__text { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.methods__title { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.015em; line-height: 1.25; }
.methods__when { border-top: 1px solid rgba(28, 29, 31, .15); padding-top: 10px; font-size: 16px; line-height: 1.45; }
.no-js-sep { display: none; }

/* ---------- T2 price ---------- */
.t2-price__intro { margin: -24px 0 32px; color: var(--muted); font-size: 17px; }
.formula { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) 1.1fr; border-top: 1px solid rgba(243, 241, 236, .2); border-bottom: 1px solid rgba(243, 241, 236, .2); }
.formula__i { position: relative; padding: 28px 28px 32px 0; display: flex; flex-direction: column; gap: 10px; border-right: 1px solid rgba(243, 241, 236, .2); }
.formula__i + .formula__i, .formula__total { padding-left: 24px; }
.formula__t { font-size: 28px; font-weight: 600; letter-spacing: -.02em; }
.formula__d { font-size: 14px; line-height: 1.5; color: var(--muted); }
.formula__op { position: absolute; right: -13px; top: 28px; width: 26px; height: 26px; background: var(--graphite); color: var(--signal-text); display: flex; align-items: center; justify-content: center; font-size: 22px; }
.formula__total { padding: 28px 24px 32px 32px; display: flex; flex-direction: column; gap: 10px; background: var(--coal); }
.t2-price__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; margin-top: 48px; align-items: start; }
.headline { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 10px; }
.headline__v { font-weight: 300; font-stretch: 62%; font-size: clamp(80px, 10vw, 140px); line-height: .82; letter-spacing: -.03em; }
.headline__v small { font-size: 48px; font-stretch: 100%; font-weight: 500; letter-spacing: -.02em; }
.headline__text { margin-top: 18px; font-size: 16px; }
.freebox { grid-column: 7 / 13; border: 1px solid var(--signal); padding: 28px 32px; display: flex; flex-direction: column; gap: 10px; }
.freebox__t { font-size: 24px; font-weight: 600; letter-spacing: -.02em; }
.freebox .prose { font-size: 16px; }
.vat-note { margin: 32px 0 0; font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.vat-note--light { color: #5c5852; text-transform: none; font: 400 15px var(--sans); letter-spacing: 0; }

/* ---------- related, FAQ, CTA (T2 + T3) ---------- */
.related { padding-bottom: 40px; }
.related__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 24px; }
.related__grid { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); border-top: 1px solid var(--graphite); }
.related__i { padding: 24px 24px 28px 0; border-bottom: 1px solid rgba(28, 29, 31, .2); display: flex; flex-direction: column; gap: 14px; min-height: 170px; color: var(--graphite); }
.related__t { font-size: 26px; font-weight: 500; letter-spacing: -.025em; line-height: 1.1; flex: 1; }
.related__foot { display: flex; justify-content: space-between; font-size: 14px; color: #45464a; }
.related__foot [aria-hidden] { font-size: 20px; }
.faq { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; padding-top: 48px; }
.faq__head { grid-column: 1 / 5; display: flex; flex-direction: column; gap: 16px; }
.faq__list { grid-column: 6 / 13; border-top: 1px solid var(--graphite); }
.faq__i { border-bottom: 1px solid rgba(28, 29, 31, .25); }
.faq__i summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 0; font-size: 22px; font-weight: 500; letter-spacing: -.015em; color: var(--graphite); }
.faq__i summary::-webkit-details-marker { display: none; }
.faq__plus { flex: none; width: 36px; height: 36px; border: 1px solid var(--graphite); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 300; transition: transform .35s, background .35s; }
.faq__i[open] .faq__plus { transform: rotate(45deg); background: var(--signal); border-color: var(--signal); }
.faq__a { padding: 0 72px 24px 0; font-size: 17px; line-height: 1.6; color: #45464a; }
.faq__a a { text-decoration: underline; text-decoration-color: var(--signal); }
.cta { position: relative; overflow: hidden; }
.cta__bg { position: absolute; inset: 0; }
.cta__bg img { filter: grayscale(1) contrast(1.15) brightness(.5); }
.cta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(21, 22, 23, .95) 35%, rgba(21, 22, 23, .6)); }
.cta__in { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: end; }
.cta__text { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 18px; }
.cta__lead { margin: 0; font-size: 17px; line-height: 1.55; color: var(--warm); max-width: 560px; }
.cta__actions { grid-column: 8 / 13; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tile { height: 120px; display: flex; flex-direction: column; justify-content: space-between; padding: 18px; font-size: 18px; font-weight: 600; }
.tile--signal { background: var(--signal); color: var(--graphite); }
.tile--signal:hover { color: var(--graphite); background: var(--offwhite); }
.tile__icon { width: 28px; height: 20px; border: 2px solid var(--graphite); border-radius: 4px; }
.tile--dashed { border: 1px dashed rgba(243, 241, 236, .5); color: var(--offwhite); }
.tile__plus { font-size: 26px; line-height: 20px; font-weight: 300; }
.tile--row { grid-column: 1 / 3; height: 60px; flex-direction: row; align-items: center; border: 1px solid rgba(243, 241, 236, .35); padding: 0 20px; font-weight: 500; color: var(--offwhite); }

/* ---------- T3 ---------- */
.t3-hero { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); background: var(--graphite); color: var(--offwhite); min-height: 620px; }
.t3-hero__text { grid-column: 1 / 7; padding: 56px 48px 56px var(--pad); display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.t3-hero__main { display: flex; flex-direction: column; gap: 22px; }
.kicker { font: 500 12px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--warm); }
.t3-hero__h1 { margin: 0; font-weight: 600; font-size: clamp(40px, 5.6vw, 80px); line-height: .94; letter-spacing: -.045em; text-wrap: balance; }
.t3-hero__lead { margin: 0; font-size: 19px; line-height: 1.5; color: var(--warm); max-width: 560px; }
.t3-hero__lead strong { color: var(--offwhite); font-weight: 600; }
.t3-hero__media { grid-column: 7 / 13; position: relative; min-height: 420px; }
.t3-hero__media img { filter: grayscale(1) contrast(1.15) brightness(.85); }
.badge { position: absolute; left: 0; bottom: 0; z-index: 2; background: var(--signal); color: var(--graphite); padding: 24px 32px 22px; display: flex; flex-direction: column; gap: 6px; }
.badge__l { font: 600 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.badge__v { font-weight: 300; font-stretch: 62%; font-size: clamp(80px, 9vw, 132px); line-height: .8; letter-spacing: -.03em; }
.badge__ref { font: 500 10px var(--mono); letter-spacing: .08em; }
.photostrip { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; padding: 12px var(--pad) 0; }
.photostrip .ph { height: 200px; }
.kinds { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.kinds__i { border-top: 2px solid var(--graphite); padding-top: 18px; display: flex; flex-direction: column; gap: 14px; }
.kinds__t { font-size: 26px; font-weight: 600; letter-spacing: -.02em; }
.kinds__rows { display: flex; flex-direction: column; }
.kinds__rows span { border-top: 1px solid rgba(28, 29, 31, .15); padding: 9px 0; font-size: 15px; color: var(--coal); }
.t3-yn { background: var(--stone); display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.yn { padding: 40px; display: flex; flex-direction: column; gap: 12px; }
.yn--yes { background: var(--offwhite); }
.yn--yes .eyebrow { color: #45464a; }
.yn--no { background: var(--graphite); color: var(--offwhite); }
.yn__row { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; border-top: 1px solid rgba(28, 29, 31, .14); padding-top: 12px; font-size: 18px; }
.yn--no .yn__row { border-top-color: rgba(243, 241, 236, .16); }
.yn__mark { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; }
.yn--yes .yn__mark { background: var(--signal); color: var(--graphite); }
.yn--no .yn__mark { border: 1.5px solid var(--concrete); color: var(--muted); font-size: 12px; }
.yn__note { font-size: 14px; color: #5c5852; margin-top: 6px; }
.yn--no .yn__note { color: var(--muted); }
.t3-check { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.t3-check__head { grid-column: 1 / 5; display: flex; flex-direction: column; gap: 16px; }
.t3-check__head p { margin: 0; color: #45464a; }
.t3-check__list { grid-column: 6 / 13; border-top: 1px solid var(--graphite); }
.check { width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(28, 29, 31, .2); display: grid; grid-template-columns: 80px minmax(0, 1fr) 40px; align-items: center; padding: 20px 0; text-align: left; color: var(--graphite); transition: color .3s; }
.check .bignum { font-size: 56px; }
.check__t { font-size: 22px; font-weight: 500; letter-spacing: -.015em; line-height: 1.25; }
.check__box { width: 32px; height: 32px; border: 1.5px solid rgba(28, 29, 31, .35); display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; color: var(--graphite); }
.check[aria-pressed="true"] { color: var(--concrete); }
.check[aria-pressed="true"] .check__t { text-decoration: line-through; }
.check[aria-pressed="true"] .check__box { background: var(--signal); border-color: var(--signal); }
.check[aria-pressed="true"] .check__box::after { content: "✓"; }
.t3-process__lead { margin: -24px 0 32px; font-size: 22px; color: var(--warm); }
.steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(243, 241, 236, .2); }
.steps__i { padding: 24px 24px 0 0; display: flex; flex-direction: column; gap: 10px; border-right: 1px solid rgba(243, 241, 236, .12); }
.steps__i + .steps__i { padding-left: 24px; }
.steps__t { font-size: 26px; font-weight: 500; letter-spacing: -.02em; }
.pcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.pcard { padding: 32px; display: flex; flex-direction: column; gap: 12px; min-height: 280px; }
.pcard--signal { background: var(--signal); color: var(--graphite); }
.pcard--signal .eyebrow, .pcard--signal .ref { color: var(--graphite); }
.pcard--dark { background: var(--graphite); color: var(--offwhite); }
.pcard--dark .eyebrow, .pcard--dark .pcard__text { color: var(--muted); }
.pcard--stone { background: var(--stone); color: var(--graphite); }
.pcard--stone .ref { color: var(--concrete); }
.pcard__v { font-weight: 300; font-stretch: 62%; font-size: clamp(64px, 7vw, 96px); line-height: .82; letter-spacing: -.03em; }
.pcard__text { margin: 0; font-size: 15px; line-height: 1.5; }
.pcard .golink { margin: 0; }
.pcard .golink a { font-size: 15px; }
.pcard--dark .golink a { color: var(--offwhite); }
.t3-paths { padding: 0; display: grid; grid-template-columns: 1fr 1fr; }
.path { padding: 64px; display: flex; flex-direction: column; gap: 18px; }
.path p { margin: 0; font-size: 17px; line-height: 1.55; }
.path--a { background: var(--stone); }
.path--a p { color: #45464a; }
.path--b { background: var(--signal); color: var(--graphite); }
.path--b .eyebrow { color: var(--graphite); font-weight: 600; }
.path__t { margin: 0; font-size: clamp(32px, 3.4vw, 48px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }

/* ---------- responsive (T2b / T3b mobile) ---------- */
@media (max-width: 1199px) {
  .blk { padding: 64px var(--pad); }
  .blk-head { grid-template-columns: 1fr; gap: 12px; margin-bottom: 32px; }
  .blk-head .eyebrow, .blk-head h2 { grid-column: auto; padding: 0; }
  .t2-hero { min-height: 560px; }
  .t2-hero__row { grid-template-columns: 1fr; }
  .t2-hero__lead, .t2-hero__actions { grid-column: auto; }
  .t2-hero__actions { justify-content: flex-start; }
  .t2-intro { grid-template-columns: 1fr; }
  .toc { position: static; grid-column: auto; border-top: 0; background: var(--stone); }
  .toc__toggle { display: flex; width: 100%; justify-content: space-between; align-items: center; background: transparent; border: 0; padding: 16px; font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--graphite); }
  .toc__list { display: none; padding: 0 16px 12px; }
  .toc.is-open .toc__list { display: block; }
  .toc__label { display: none; }
  .t2-article, .t2-article--offset { grid-column: auto; max-width: none; margin-left: 0; font-size: 17px; }
  .t2-lead { font-size: 20px !important; }
  .dash--cols { grid-template-columns: 1fr; }
  .cards2, .t3-yn, .t3-paths { grid-template-columns: 1fr; }
  .methods { grid-template-columns: 1fr; }
  .methods__list { grid-column: auto; flex-direction: row; border-top: 0; gap: 6px; overflow-x: auto; }
  .methods__btn { border: 1px solid rgba(28, 29, 31, .25); border-radius: 999px; padding: 10px 16px; grid-template-columns: auto; }
  .methods__btn .num, .methods__btn .methods__price { display: none; }
  .methods__btn.is-on { background: var(--graphite); color: var(--offwhite); }
  .methods__name { font-size: 16px; font-weight: 600; letter-spacing: 0; }
  .methods__panels { grid-column: auto; }
  .methods__panel { grid-template-columns: 1fr; }
  .methods__photo { height: 240px; }
  .formula { grid-template-columns: 1fr; }
  .formula__i, .formula__i + .formula__i, .formula__total { padding: 16px 0 16px 0; border-right: 0; border-top: 1px solid rgba(243, 241, 236, .15); }
  .formula__total { padding: 16px; }
  .formula__op { display: none; }
  .formula__t { font-size: 22px; }
  .t2-price__grid, .headline, .freebox { grid-column: auto; grid-template-columns: 1fr; }
  .related__grid { grid-template-columns: 1fr 1fr; }
  .faq { grid-template-columns: 1fr; }
  .faq__head, .faq__list { grid-column: auto; }
  .faq__i summary { font-size: 18px; }
  .faq__a { padding-right: 0; }
  .cta__in { grid-template-columns: 1fr; }
  .cta__text, .cta__actions { grid-column: auto; }
  .t3-hero { grid-template-columns: 1fr; }
  .t3-hero__text { grid-column: auto; padding: 32px var(--pad); order: 2; }
  .t3-hero__media { grid-column: auto; min-height: 300px; order: 1; }
  .kinds { grid-template-columns: 1fr 1fr; }
  .t3-check { grid-template-columns: 1fr; }
  .t3-check__head, .t3-check__list { grid-column: auto; }
  .steps, .pcards { grid-template-columns: 1fr; }
  .steps__i, .steps__i + .steps__i { padding: 18px 0; border-right: 0; border-top: 1px solid rgba(243, 241, 236, .12); flex-direction: row; align-items: baseline; gap: 16px; }
  .path { padding: 40px var(--pad); }
}
@media (max-width: 599px) {
  .facts { grid-template-columns: 1fr; }
  .facts__i { padding: 12px 0; border-bottom: 1px solid rgba(243, 241, 236, .12); }
  .t2-hero { min-height: 0; }
  .t2-hero__body { padding-top: 160px; }
  .related__grid { grid-template-columns: 1fr; }
  .related__i { min-height: 0; }
  .kinds { grid-template-columns: 1fr; }
  .check { grid-template-columns: 56px minmax(0, 1fr) 36px; }
  .check .bignum { font-size: 40px; }
  .check__t { font-size: 17px; }
  .wcard { padding: 24px; }
  .wcard__t { font-size: 26px; }
  .numlist { padding: 20px; }
  .bignum--xl { font-size: 64px; }
}

/* ---------------------------------------------------------------- Navigation v3 proposal (D-105) ------------------------
   Two-row "index board": utility bar (logo · ET/RU · phone · Saada päring) scrolls away, the 13 directions stay sticky.
   A direction only opens its panel; the landing is the orange CTA inside it. Burger below 1280 px. */
.hdr3 { top: 0; }
/* v3 header: 60 px utility row scrolls away; the 2 rows of tiles (10 + 50 + 8 + 50 + 12 = 130 px) stay */
.hdr3__top { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 60px; padding: 0 var(--pad); border-bottom: 1px solid var(--coal); background: var(--graphite); position: relative; z-index: 3; }
.hdr3__nav { position: relative; z-index: 3; background: var(--graphite); border-bottom: 1px solid var(--coal); padding: 10px var(--pad) 12px; display: flex; flex-direction: column; gap: 8px; }
/* top-level directions = compact rounded tiles (D-107): two rows, air between, no numbers */
.hdr3__row { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.n3 { flex: 1 1 0; display: flex; min-width: 0; }
.n3__btn { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; gap: 13px; height: 60px; padding: 0 12px 0 10px;
  border: 1px solid rgba(243, 241, 236, .12); border-radius: 12px; background: rgba(243, 241, 236, .035);
  color: var(--offwhite); font: 500 13.5px/1.15 var(--sans); text-align: left; cursor: pointer;
  transition: border-color .45s ease, background-color .45s ease, box-shadow .6s ease, color .3s ease; }
.n3__icon { flex: none; width: 44px; height: 44px; display: block; transition: transform .6s cubic-bezier(.2, .7, .2, 1), filter .6s ease; }
.n3__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.n3__label { flex: 1; min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-wrap: balance; }
.n3__chev { flex: none; width: 6px; height: 6px; border-right: 1.5px solid var(--concrete); border-bottom: 1.5px solid var(--concrete); transform: translateY(-2px) rotate(45deg); transition: transform .3s, border-color .3s; }
.n3__btn:hover { border-color: rgba(238, 90, 36, .38); background: rgba(243, 241, 236, .055); box-shadow: 0 0 18px -6px rgba(238, 90, 36, .35); }
/* semi-3D icons are never recoloured: a slight lift and a touch of brightness on hover / open */
.n3__btn:hover .n3__icon, .n3__btn[aria-expanded="true"] .n3__icon { transform: translateY(-1px) scale(1.04); filter: brightness(1.08) contrast(1.04); }
.n3.is-active .n3__btn { border-color: rgba(243, 241, 236, .28); }
.n3__btn[aria-expanded="true"] { border-color: var(--signal); background: rgba(238, 90, 36, .08); box-shadow: 0 0 0 3px rgba(238, 90, 36, .10); }
.n3__btn[aria-expanded="true"] .n3__chev { border-color: var(--signal); transform: translateY(2px) rotate(-135deg); }
.n3__btn:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
/* tracing-line (D-108, refined D-116): a hairline #EE5A24 segment no thicker than the border, with a soft diffuse glow,
   slowly travelling part of the perimeter on hover / open. Tokens shared with the future homepage horizontal line. */
:root { --trace-color: #ee5a24; --trace-width: 1px; --trace-glow-width: 4px; --trace-glow-opacity: .38; --trace-duration: 12s; --trace-dash: 11 89; }
.n3__trace { position: absolute; inset: -1px; width: calc(100% + 2px); height: calc(100% + 2px); pointer-events: none; overflow: visible; opacity: 0; transition: opacity 1s ease; }
.n3__trace rect { width: calc(100% - 1px); height: calc(100% - 1px); fill: none; stroke: var(--trace-color); stroke-linecap: round;
  stroke-dasharray: var(--trace-dash); stroke-dashoffset: 0; animation: n3-trace var(--trace-duration) linear infinite; animation-play-state: paused; }
.n3__trace-line { stroke-width: var(--trace-width); }
.n3__trace-glow { stroke-width: var(--trace-glow-width); opacity: var(--trace-glow-opacity); }
/* D-119: every card — calm by default; on hover / keyboard focus one slow pass of the segment (restarts on each hover).
   A card with data-trace-always (CMS flag, owner request 2026-09-28) loops continuously, also while another card is open. */
.n3__btn:hover .n3__trace, .n3__btn:focus-visible .n3__trace { opacity: 1; }
.n3__btn:hover .n3__trace rect, .n3__btn:focus-visible .n3__trace rect { animation: n3-pass 5.5s cubic-bezier(.45, .05, .35, 1) 1 forwards; }
.n3__btn[data-trace-always] .n3__trace { opacity: 1; }
.n3__btn[data-trace-always] .n3__trace rect, .n3__btn[data-trace-always]:hover .n3__trace rect { animation: n3-trace var(--trace-duration) linear infinite; animation-play-state: running; }
@keyframes n3-pass { 0% { stroke-dashoffset: 0; opacity: 0; } 10% { opacity: 1; } 85% { opacity: 1; } 100% { stroke-dashoffset: -100; opacity: 0; } }
@keyframes n3-trace { to { stroke-dashoffset: -100; } }
@media (prefers-reduced-motion: reduce) { .n3__trace { display: none; } }

.p3 { position: absolute; left: 0; right: 0; top: 100%; z-index: 2; background: var(--deep); color: var(--offwhite); border-bottom: 1px solid var(--coal);
  max-height: calc(100vh - 130px); overflow-y: auto; overscroll-behavior: contain; }
.p3__in { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 56px; padding: 32px var(--pad) 40px; }
.p3__lead { display: flex; flex-direction: column; gap: 18px; }
.p3__kicker { margin: 0; font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--concrete); }
.p3__kicker span { color: var(--signal-text); margin-right: 6px; }
.p3__hint { margin: 0; color: var(--muted); font-size: 15px; }
.p3__glabel { display: block; font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--signal-text); padding-bottom: 10px; border-bottom: 1px solid var(--line-dark); }
.p3__links { display: grid; grid-template-columns: repeat(var(--cols, 1), minmax(0, 1fr)); gap: 12px 40px; align-content: start; }
.p3--columns .p3__links, .p3--list .p3__links { display: block; }
.p3--columns .p3__list { columns: var(--cols, 1); column-gap: 40px; }
.p3--list .p3__list { max-width: 520px; }
.p3__link { display: block; break-inside: avoid; padding: 11px 0; border-bottom: 1px solid var(--line-dark-soft); font-size: 16px; line-height: 1.3; color: var(--offwhite); transition: color .15s, padding .15s; }
.p3__link:hover { color: var(--signal-text); padding-left: 6px; }
.p3__link[aria-current] { color: var(--signal-text); }
.p3__related { display: flex; flex-direction: column; }
.p3__related a { padding: 9px 0; border-bottom: 1px solid var(--line-dark-soft); font-size: 15px; color: var(--offwhite); display: flex; justify-content: space-between; }
.p3__related a:hover { color: var(--signal-text); }
/* the groups layout reads as blocks: group label, then its list */
.p3--groups .p3__group { display: flex; flex-direction: column; }

/* orange landing CTA */
.c3 { display: flex; flex-direction: column; gap: 10px; padding: 18px 18px 16px; background: var(--signal); color: var(--graphite); min-height: 132px; justify-content: space-between; }
.c3:hover { color: var(--graphite); background: #f06a38; }
.c3__hint { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; opacity: .75; }
.c3__label { font-size: 22px; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; }
.c3__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.c3__path { font: 500 12px var(--mono); opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.c3__arrow { width: 36px; height: 36px; flex: none; border-radius: 50%; background: var(--graphite); color: var(--signal-text); display: flex; align-items: center; justify-content: center; font-size: 17px; transition: transform .2s; }
.c3:hover .c3__arrow { transform: translateX(3px); }
.c3--pending { background: transparent; color: var(--offwhite); border: 1.5px dashed var(--signal); }
.c3--pending:hover { background: transparent; color: var(--offwhite); }
.c3__badge { font: 500 10px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--graphite); background: var(--signal); padding: 5px 8px; white-space: nowrap; }
.mnav__panel .c3 { min-height: 0; padding: 14px 16px; }
.mnav__panel .c3__label { font-size: 18px; }

@media (max-width: 1279px) {
  .hdr3 { top: 0; }
  .hdr3__top { height: var(--hdr-h); }
  .hdr3__nav, .hdr3 .hdr__phone, .hdr3 .hdr__cta, .p3, .hdr3 [data-p3-backdrop] { display: none !important; }
  .hdr3 .hdr__tools { margin-left: auto; gap: 8px; }
  .hdr3 .hdr__burger { display: flex; align-items: center; gap: 10px; height: 44px; min-width: 44px; padding: 0 14px; border: 1px solid rgba(243, 241, 236, .35); border-radius: 999px; background: transparent; color: var(--offwhite); font-size: 15px; font-weight: 600; }
  .hdr3 .hdr__burger-lines { position: relative; width: 16px; height: 12px; display: flex; flex-direction: column; justify-content: center; gap: 5px; }
  .hdr3 .hdr__burger-lines span { display: block; width: 16px; height: 2px; background: var(--offwhite); transition: transform .3s; }
  .hdr3 .hdr__burger[aria-expanded="true"] .hdr__burger-lines span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .hdr3 .hdr__burger[aria-expanded="true"] .hdr__burger-lines span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
}
@media (min-width: 1280px) and (max-width: 1439px) {
  .n3__btn { font-size: 12.5px; padding: 0 9px 0 8px; gap: 12px; height: 56px; }
  .n3__icon { width: 40px; height: 40px; }
  .p3__in { grid-template-columns: 300px minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 599px) { .hdr3 .hdr__burger { padding: 0; width: 44px; justify-content: center; } }

/* ---------------------------------------------------------------- Editorial sections (D-106) --------------------------
   Replaces "white text sheets": each H2 is a composed section. Background rhythm paper → white → stone → dark. */
.ed-bg--paper { background: var(--offwhite); }
.ed-bg--white { background: #fff; }
.ed-bg--stone { background: var(--stone); }
.ed-bg--dark { background: var(--graphite); color: var(--offwhite); }
.ed { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 24px; }
.ed__head { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; margin-bottom: 44px; }
.ed__eyebrow { grid-column: 1 / 4; padding-top: 12px; }
.ed__title { grid-column: 4 / 12; margin: 0; font-size: clamp(30px, 3.4vw, 48px); font-weight: 600; letter-spacing: -.035em; line-height: 1.04; color: var(--graphite); text-wrap: balance; }
.ed-bg--dark .ed__title { color: var(--offwhite); }
.ed-bg--dark .eyebrow { color: var(--signal-text); }
.ed__grid { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: start; }
.ed__parts { grid-column: 4 / 12; display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.ed--media-right .ed__parts { grid-column: 1 / 7; }
.ed--media-right .ed__media { grid-column: 8 / 13; }
.ed--media-left .ed__parts { grid-column: 7 / 13; }
.ed--media-left .ed__media { grid-column: 1 / 6; grid-row: 1; }
.ed--cards .ed__parts, .ed--steps .ed__parts { grid-column: 1 / -1; }
.ed--steps.ed--media .ed__parts { grid-column: 1 / -1; }
.ed--steps.ed--media .ed__media { grid-column: 4 / 13; grid-row: 2; margin-top: 40px; }

.ed-text { font-size: 19px; line-height: 1.6; color: var(--coal); max-width: 64ch; }
.ed-text p { margin: 0 0 12px; } .ed-text p:last-child { margin: 0; }
.ed-bg--dark .ed-text, .ed-bg--dark .ed-list__label { color: var(--warm); }
.ed-list__label { margin: 0 0 14px; font-size: 17px; font-weight: 600; color: var(--graphite); max-width: 60ch; }
.ed-list ul { list-style: none; margin: 0; padding: 0; }
.ed-list--check li, .ed-list--cross li, .ed-list--cols li { position: relative; padding: 10px 0 10px 34px; border-top: 1px solid rgba(28, 29, 31, .12); font-size: 17px; line-height: 1.45; }
.ed-list--check li::before, .ed-list--cols li::before { content: ""; position: absolute; left: 2px; top: 14px; width: 16px; height: 16px; background: var(--signal);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8.5l3.5 3.5L14 3.5' fill='none' stroke='black' stroke-width='2.2'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8.5l3.5 3.5L14 3.5' fill='none' stroke='black' stroke-width='2.2'/%3E%3C/svg%3E") center / contain no-repeat; }
.ed-list--cross li::before { content: "×"; position: absolute; left: 0; top: 5px; width: 22px; height: 22px; font-size: 22px; line-height: 1; color: var(--signal-text); font-weight: 400; }
.ed-list--cols ul { columns: 2; column-gap: 40px; }
.ed-list--cols li { break-inside: avoid; }
.ed-bg--dark .ed-list li { border-top-color: rgba(243, 241, 236, .14); color: var(--offwhite); }
.ed-bg--dark .ed-list__label { color: var(--offwhite); }
.ed-bg--dark .chip { border-color: rgba(243, 241, 236, .3); color: var(--offwhite); }
.ed-list--cards ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ed-list--cards li { background: var(--offwhite); padding: 16px 16px 18px; display: flex; flex-direction: column; gap: 18px; font-size: 16px; line-height: 1.35; font-weight: 500; min-height: 104px; }
.ed-bg--paper .ed-list--cards li { background: #fff; }
.ed-list__n { font: 500 11px var(--mono); color: var(--signal-text); letter-spacing: .06em; }
.ed-callout { margin: 0; padding: 6px 0 6px 22px; border-left: 3px solid var(--signal); font-size: 21px; line-height: 1.45; font-weight: 500; letter-spacing: -.01em; color: var(--graphite); max-width: 56ch; }
.ed-bg--dark .ed-callout { color: var(--offwhite); }
.ed-quote { margin: 8px 0 0; padding-top: 26px; border-top: 1px solid currentColor; position: relative; }
.ed-quote::before { content: "“"; position: absolute; top: 12px; left: 0; font-size: 72px; line-height: 1; color: var(--signal-text); font-weight: 600; }
.ed-quote p { margin: 0; padding-left: 52px; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.3; font-weight: 500; letter-spacing: -.02em; max-width: 34ch; }
.ed-golink { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; background: var(--graphite); color: var(--offwhite); max-width: 520px; }
.ed-golink:hover { color: var(--offwhite); background: var(--coal); }
.ed-golink__lead { font-size: 14px; color: var(--muted); }
.ed-golink__label { font-size: 18px; font-weight: 600; color: var(--signal-text); }

/* two columns: lists side by side, text and callouts full width */
.ed--two_col .ed__parts { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 40px; grid-column: 4 / 13; }
.ed--two_col .ed__parts > :not(.ed-list) { grid-column: 1 / -1; }
.ed--dark .ed__parts { grid-column: 4 / 13; display: grid; grid-template-columns: 1fr 1fr; gap: 36px 48px; }
.ed--dark .ed__parts > .ed-list:first-child, .ed--dark .ed__parts > .ed-quote, .ed--dark .ed__parts > .ed-text { grid-column: 1 / -1; }

/* H3 sub-sections as cards / side-by-side comparison */
.ed-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ed-card { background: #fff; padding: 26px 24px 28px; display: flex; flex-direction: column; gap: 16px; min-width: 0; border-top: 3px solid var(--graphite); }
.ed-bg--white .ed-card { background: var(--offwhite); }
.ed-cards .ed-card:last-child { border-top-color: var(--signal); }
.ed-card__n { font: 500 11px var(--mono); letter-spacing: .08em; color: var(--signal-text); }
.ed-card__title { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.02em; line-height: 1.2; }
.ed-card .ed-text { font-size: 16px; }
.ed-card .ed-list li { font-size: 15.5px; }
.ed-card .ed-list__label { font-size: 15px; }
.ed-card .chip { height: 32px; font-size: 14px; padding: 0 12px; }
.ed-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ed-compare .ed-card__n { width: 34px; height: 34px; border-radius: 50%; background: var(--graphite); color: var(--offwhite); display: flex; align-items: center; justify-content: center; font-size: 13px; }
.ed-compare .ed-card:last-child .ed-card__n { background: var(--signal); color: var(--graphite); }

/* steps */
.ed-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 24px; counter-reset: none; }
.ed-step { border-top: 1px solid var(--graphite); padding: 18px 0 32px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.ed-step__n { font: 500 13px var(--mono); color: var(--signal-text); }
.ed-step__title { margin: 0; font-size: 21px; font-weight: 600; letter-spacing: -.02em; line-height: 1.2; }
.ed-step .ed-text { font-size: 16px; }
.ed-step .ed-list__label { font-size: 15px; font-weight: 500; color: #5c5852; margin-bottom: 10px; }
.ed-step .chip { height: 30px; font-size: 14px; padding: 0 11px; }
.ed-step .ed-list li { font-size: 15.5px; padding-top: 7px; padding-bottom: 7px; }

/* photo compositions: one large, a second offset smaller one; grayscale → colour on desktop hover */
.ed__media { position: relative; }
.ed-fig { margin: 0; overflow: hidden; background: var(--coal); }
.ed-fig img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ed__media--1 .ed-fig { aspect-ratio: 4 / 5; }
.ed__media--2 { padding-bottom: 22%; }
.ed__media--2 .ed-fig--0 { aspect-ratio: 4 / 5; width: 82%; }
.ed__media--2 .ed-fig--1 { position: absolute; right: 0; bottom: 0; width: 56%; aspect-ratio: 4 / 3; outline: 10px solid var(--ed-bg, #fff); }
.ed-bg--stone { --ed-bg: var(--stone); } .ed-bg--paper { --ed-bg: var(--offwhite); } .ed-bg--dark { --ed-bg: var(--graphite); }
.ed--steps .ed__media--1 .ed-fig { aspect-ratio: 21 / 8; }
@media (hover: hover) and (pointer: fine) and (min-width: 1200px) {
  .ed-fig img, .methods__photo img, .prose img { transition: filter .7s ease, transform 1.2s ease; }
  .ed-fig:hover img, .methods__photo:hover img, .prose img:hover { filter: grayscale(0) contrast(1) brightness(1); transform: scale(1.025); }
}

@media (max-width: 1199px) {
  .ed__eyebrow { grid-column: 1 / -1; padding: 0 0 12px; }
  .ed__title { grid-column: 1 / -1; }
  .ed__parts, .ed--media-right .ed__parts, .ed--media-left .ed__parts, .ed--two_col .ed__parts, .ed--dark .ed__parts { grid-column: 1 / -1; }
  .ed--media-right .ed__media, .ed--media-left .ed__media, .ed--steps.ed--media .ed__media { grid-column: 1 / -1; grid-row: auto; margin-top: 36px; }
  .ed-cards, .ed-steps { grid-template-columns: 1fr 1fr; }
  .ed-list--cards ul { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 719px) {
  .ed__head { margin-bottom: 28px; }
  .ed--two_col .ed__parts, .ed--dark .ed__parts, .ed-cards, .ed-compare, .ed-steps, .ed-list--cards ul { grid-template-columns: 1fr; }
  .ed-list--cols ul { columns: 1; }
  .ed-text { font-size: 17px; }
  .ed-callout { font-size: 18px; }
  .ed__media--1 .ed-fig { aspect-ratio: 4 / 3; }
  .ed--steps .ed__media--1 .ed-fig { aspect-ratio: 4 / 3; }
}
/* anchors land below the sticky header (v2: 80 px, v3: two rows 92 px) */
main [id] { scroll-margin-top: var(--anchor-offset, 150px); }
@media (max-width: 1279px) { main [id] { scroll-margin-top: calc(var(--hdr-h) + 16px); } }

/* ---------------------------------------------------------------- polish-pass 2026-09-27 ---------------------------- */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
:root { --anchor-offset: 88px; }  /* compact desktop header 60 px + air */
@media (max-width: 1279px) { :root { --anchor-offset: calc(var(--hdr-h) + 16px); } }

/* inline Sisukord: active section */
.toc__list a.is-first { color: #45464a; } .toc__list a.is-first .num { color: inherit; }
.toc__list a { transition: color .25s; }
.toc__list a.is-active { color: var(--graphite); }
.toc__list a.is-active .num { color: var(--signal-text); }

/* floating Sisukord (D-111) */
.toc-float { position: fixed; left: var(--pad); bottom: 24px; z-index: 25; width: min(340px, calc(100vw - 2 * var(--pad) - 64px)); display: flex; flex-direction: column; gap: 8px; }
.toc-float[hidden] { display: none; }
.toc-float__btn { display: flex; align-items: center; gap: 12px; height: 48px; padding: 0 16px; border: 1px solid rgba(243, 241, 236, .14); border-radius: 12px;
  background: rgba(28, 29, 31, .94); backdrop-filter: blur(10px); color: var(--offwhite); text-align: left; cursor: pointer; box-shadow: 0 10px 30px rgba(21, 22, 23, .18); }
.toc-float__k { font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--signal-text); flex: none; }
.toc-float__cur { flex: 1; min-width: 0; font-size: 14.5px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.toc-float__chev { flex: none; width: 7px; height: 7px; border-right: 1.5px solid var(--concrete); border-bottom: 1.5px solid var(--concrete); transform: translateY(2px) rotate(-135deg); transition: transform .25s; }
.toc-float.is-open .toc-float__chev { transform: translateY(-2px) rotate(45deg); }
.toc-float__list { max-height: min(60vh, 520px); overflow-y: auto; overscroll-behavior: contain; padding: 8px 16px; border-radius: 12px; background: rgba(28, 29, 31, .97); border: 1px solid rgba(243, 241, 236, .14); box-shadow: 0 16px 40px rgba(21, 22, 23, .3); }
.toc-float__list a { display: grid; grid-template-columns: 30px minmax(0, 1fr); padding: 9px 0; border-top: 1px solid rgba(243, 241, 236, .08); font-size: 14.5px; color: var(--muted); }
.toc-float__list a:first-child { border-top: 0; }
.toc-float__list .num { font: 500 11px var(--mono); padding-top: 3px; }
.toc-float__list a:hover, .toc-float__list a.is-active { color: var(--offwhite); }
.toc-float__list a.is-active .num { color: var(--signal-text); }

/* back to top (D-110) */
.totop { position: fixed; right: var(--pad); bottom: 24px; z-index: 25; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(243, 241, 236, .16);
  background: rgba(28, 29, 31, .92); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color .3s, transform .3s; box-shadow: 0 10px 30px rgba(21, 22, 23, .18); }
.totop[hidden] { display: none; }
.totop span { width: 10px; height: 10px; border-left: 2px solid var(--offwhite); border-top: 2px solid var(--offwhite); transform: translateY(3px) rotate(45deg); transition: border-color .3s; }
.totop:hover { border-color: var(--signal); }
.totop:hover span { border-color: var(--signal); }
@media (max-width: 1199px) {
  /* above the fixed «Helista / Saada päring» bar (72 px + safe area) */
  .totop { bottom: calc(84px + env(safe-area-inset-bottom)); width: 44px; height: 44px; }
  .toc-float { bottom: calc(84px + env(safe-area-inset-bottom)); }
  .toc-float__btn { height: 44px; }
  .toc-float__cur { display: none; }
  .toc-float { width: auto; right: auto; }
  .toc-float.is-open { width: calc(100vw - 2 * var(--pad)); }
  body.is-locked .totop, body.is-locked .toc-float { display: none; }
}
@media (max-width: 1199px) { .toc-float .toc-float__btn { width: auto; } }

/* section levels (D-112): feature keeps the full 88 px and the large H2; standard −18 %; compact −30 % and a calmer H2 */
.ed--standard { padding-top: 72px; padding-bottom: 72px; }
.ed--compact { padding-top: 60px; padding-bottom: 60px; }
.ed--standard .ed__head, .ed--compact .ed__head { margin-bottom: 32px; }
.ed--standard .ed__title, .ed--compact .ed__title { font-size: clamp(25px, 2.3vw, 34px); letter-spacing: -.028em; line-height: 1.1; }
.ed--compact .ed__parts { gap: 22px; }
@media (max-width: 1199px) { .ed--standard { padding-top: 60px; padding-bottom: 60px; } .ed--compact { padding-top: 48px; padding-bottom: 48px; } }
@media (max-width: 599px) { .ed--standard, .ed--compact { padding-top: 40px; padding-bottom: 40px; } }

/* long lists: 2–3 columns on desktop (not inside cards, steps or half-width columns); one column on mobile */
.ed-list--check ul, .ed-list--cross ul { columns: var(--lcols, 1); column-gap: 40px; }
.ed-list--check li, .ed-list--cross li { break-inside: avoid; }
.ed-list--cols ul { columns: max(2, var(--lcols, 2)); }
.ed-card .ed-list ul, .ed-step .ed-list ul, .ed--two_col .ed-list ul { columns: 1; }
.ed--dark .ed__parts > .ed-list:not(:first-child) ul { columns: 1; }
@media (max-width: 1199px) { .ed-list--check ul, .ed-list--cross ul, .ed-list--cols ul { columns: min(2, var(--lcols, 1)); } }
@media (max-width: 719px) { .ed-list--check ul, .ed-list--cross ul, .ed-list--cols ul { columns: 1; } }

/* readable line length for running text (~65–75 characters) */
.t2-article p, .t2-lead, .ed-text, .prose p, .blk-note { max-width: 68ch; }
.t2-lead { text-wrap: pretty; }

/* related: no decorative numbers — title, arrow, hover, dividers */
.related__i { min-height: 128px; transition: color .25s; }
.related__i:hover { color: var(--signal-text); }
.related__i .related__foot [aria-hidden] { transition: transform .25s; }
.related__i:hover .related__foot [aria-hidden] { transform: translateX(4px); }
.toc-float__list { position: relative; }


/* ---------------------------------------------------------------- v3 desktop compact header (D-115) ------------------
   At the top: full header + 13 cards. After scrolling the card grid folds away (height animation, no layout jump: the
   header is fixed and a spacer keeps its full height in the flow). Compact bar: logo · Menüü · ET/RU · phone · Saada päring. */
.hdr3__menu, .hdr3-spacer { display: none; }
@media (min-width: 1280px) {
  .hdr3 { position: fixed; left: 0; right: 0; top: 0; }
  .hdr3-spacer { display: block; height: var(--hdr3-full, 210px); }
  .hdr3 .logo { margin-right: 18px; }
  .hdr3__menu { display: flex; align-items: center; gap: 10px; height: 40px; padding: 0 16px 0 14px; margin-right: auto; border: 1px solid rgba(243, 241, 236, .3);
    border-radius: 999px; background: transparent; color: var(--offwhite); font: 600 14px var(--sans); cursor: pointer;
    opacity: 0; visibility: hidden; transform: translateX(-8px); transition: opacity .4s ease, transform .4s ease, visibility 0s .4s, border-color .3s; }
  .hdr3__menu .hdr__burger-lines { width: 16px; height: 12px; display: flex; flex-direction: column; justify-content: center; gap: 5px; }
  .hdr3__menu .hdr__burger-lines span { display: block; width: 16px; height: 2px; background: currentColor; transition: transform .3s; }
  .hdr3__menu:hover { border-color: var(--signal); }
  .hdr3.is-menu-open .hdr3__menu { border-color: var(--signal); }
  .hdr3.is-menu-open .hdr3__menu .hdr__burger-lines span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .hdr3.is-menu-open .hdr3__menu .hdr__burger-lines span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .hdr3.is-compact .hdr3__menu { opacity: 1; visibility: visible; transform: none; transition: opacity .4s ease .15s, transform .4s ease .15s, visibility 0s, border-color .3s; }
  .hdr3__fold { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .5s cubic-bezier(.3, .7, .2, 1); position: relative; z-index: 3; }
  .hdr3__fold-in { min-height: 0; overflow: hidden; }
  .hdr3.is-compact .hdr3__fold { grid-template-rows: 0fr; }
  .hdr3.is-compact.is-menu-open .hdr3__fold { grid-template-rows: 1fr; }
  .hdr3.is-compact:not(.is-menu-open) .hdr3__fold-in { visibility: hidden; transition: visibility 0s .5s; }
  .hdr3.is-compact .hdr3__top { box-shadow: 0 8px 24px -12px rgba(0, 0, 0, .5); }
  .hdr3 .p3 { max-height: calc(100vh - var(--hdr3-now, 210px)); }
}
@media (prefers-reduced-motion: reduce) { .hdr3__fold, .hdr3__menu { transition: none !important; } }
/* «Saada päring» pending page (D-117) */
.req-pending { max-width: 880px; display: flex; flex-direction: column; gap: 22px; }
.req-pending__h1 { margin: 0; font-size: clamp(40px, 5vw, 72px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.req-pending__note { margin: 0; font-size: 19px; max-width: 60ch; color: var(--coal); }
.req-pending__ways { display: flex; flex-wrap: wrap; gap: 12px; }
.req-pending__staging { margin: 12px 0 0; font: 500 11px var(--mono); letter-spacing: .1em; color: var(--concrete); }
.ftr a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(140, 135, 128, .5); }
.ftr a:hover { color: var(--signal-text); }

/* density pass 2 (D-112 rev. 2026-09-28): simple sections a further ~15 % tighter; feature / photo sections unchanged */
.ed--standard { padding-top: 62px; padding-bottom: 62px; }
.ed--compact { padding-top: 50px; padding-bottom: 52px; }
.ed--standard .ed__head, .ed--compact .ed__head { margin-bottom: 26px; }
.ed--standard .ed__parts, .ed--compact .ed__parts { gap: 20px; }
.ed--two_col.ed--compact .ed__parts, .ed--two_col.ed--standard .ed__parts { gap: 26px 40px; }
.ed-list__label { margin-bottom: 10px; }
.ed-callout { margin-top: 4px; }
@media (max-width: 1199px) { .ed--standard { padding-top: 52px; padding-bottom: 52px; } .ed--compact { padding-top: 42px; padding-bottom: 42px; } }
@media (max-width: 599px) { .ed--standard, .ed--compact { padding-top: 36px; padding-bottom: 36px; } }


/* ---------------------------------------------------------------- polish-pass 3 (2026-09-28) ------------------------ */
/* desktop card labels: a touch larger, 600, brighter off-white (no caps) — D-120 */
.n3__btn { font-size: 14.5px; font-weight: 600; color: #f7f5f0; letter-spacing: -.005em; }
@media (min-width: 1280px) and (max-width: 1439px) { .n3__btn { font-size: 13.5px; } }
.n3__btn:hover { border-color: rgba(238, 90, 36, .34); }

/* mobile accordion v3: icon + title + chevron; the landing CTA closes the opened list (D-109) */
.mnav--v3 .mnav__head { grid-template-columns: 40px minmax(0, 1fr) 36px; min-height: 68px; gap: 14px; padding: 10px 16px; }
.mnav__icon { width: 40px; height: 40px; display: block; }
.mnav__icon img { width: 100%; height: 100%; object-fit: contain; display: block; }
.mnav--v3 .mnav__title { font-size: 21px; letter-spacing: -.02em; }
.mnav--v3 .mnav__circle { width: 36px; height: 36px; }
.mnav--v3 .mnav__panel { padding: 0 16px 18px 70px; gap: 10px; }
.mnav--v3 .mnav__panel .c3 { margin-top: 6px; }
@media (max-width: 380px) { .mnav--v3 .mnav__panel { padding-left: 16px; } }

/* T2 hero divider: a thin #EE5A24 segment slowly runs from edge to edge along the line above the facts (D-121, owner
   request 2026-09-28; remove = delete the .facts--run class in templates/t2.blade.php). Shares the --trace-* tokens. */
.facts--run { position: relative; }
.facts--run::before, .facts--run::after { content: ""; position: absolute; top: -1px; left: 0; width: 18%; height: var(--trace-width); pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--trace-color) 45%, var(--trace-color) 55%, transparent); animation: facts-run 9s cubic-bezier(.45, .05, .35, 1) infinite; }
.facts--run::after { height: var(--trace-glow-width); top: -2.5px; filter: blur(3px); opacity: var(--trace-glow-opacity); }
@keyframes facts-run { 0% { transform: translateX(-100%); opacity: 0; } 8% { opacity: 1; } 70% { opacity: 1; } 78% { transform: translateX(560%); opacity: 0; } 100% { transform: translateX(560%); opacity: 0; } }
.facts--run { overflow: visible; }
.t2-hero { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .facts--run::before, .facts--run::after { display: none; } }

/* mobile (≤ 599 px) density, headings, related, floating UI — desktop unchanged (D-120) */
@media (max-width: 599px) {
  :root { --anchor-offset: calc(var(--hdr-h) + 20px); }
  .blk { padding-top: 48px; padding-bottom: 48px; }
  .ed--feature { padding-top: 52px; padding-bottom: 52px; }
  .ed--standard, .ed--compact { padding-top: 32px; padding-bottom: 34px; }
  .ed__head, .blk-head { margin-bottom: 20px; }
  .ed--standard .ed__head, .ed--compact .ed__head { margin-bottom: 16px; }
  .ed__parts { gap: 20px; }
  .ed--standard .ed__parts, .ed--compact .ed__parts, .ed--two_col .ed__parts, .ed--dark .ed__parts { gap: 18px; }
  .ed__media { margin-top: 24px !important; }
  .prose-blk { padding-top: 16px; padding-bottom: 16px; }
  /* H2: strong but not half a viewport */
  .h2-xl { font-size: 30px; line-height: 1.02; }
  .ed__title { font-size: 26px; line-height: 1.08; letter-spacing: -.03em; }
  .ed--standard .ed__title, .ed--compact .ed__title { font-size: 23px; }
  .t2-hero__h1 { font-size: 40px; }
  /* related: compact rows — title + arrow */
  .related__grid { grid-template-columns: 1fr; }
  .related__i { min-height: 0; padding: 16px 0; flex-direction: row; align-items: center; justify-content: space-between; gap: 16px; }
  .related__t { font-size: 19px; line-height: 1.2; flex: 1; }
  .related__foot { flex: none; gap: 14px; align-items: center; }
  .related { padding-bottom: 24px; }
  .related__head { margin-bottom: 12px; }
  /* floating UI: compact and aligned 12 px above the fixed CTA bar */
  .totop { width: 40px; height: 40px; bottom: calc(84px + env(safe-area-inset-bottom)); right: 12px; }
  .toc-float { left: 12px; bottom: calc(84px + env(safe-area-inset-bottom)); }
  .toc-float__btn { height: 40px; padding: 0 12px; border-radius: 999px; gap: 8px; }
  .toc-float.is-open .toc-float__btn { border-radius: 12px; }
  .toc-float.is-open { width: calc(100vw - 24px); }
  /* final CTA: phone never clipped */
  .tile--row { height: auto; min-height: 56px; flex-wrap: wrap; gap: 4px 12px; padding: 12px 16px; }
  .tile--row span { white-space: nowrap; }
  .tile { height: auto; min-height: 96px; }
}
body.toc-open .totop { opacity: 0; pointer-events: none; }
.totop { transition: opacity .25s, border-color .3s; }
.mbar { transition: transform .35s ease, opacity .35s ease; }
body.at-final-cta .mbar { transform: translateY(110%); opacity: 0; pointer-events: none; }
body.at-final-cta .totop, body.at-final-cta .toc-float { bottom: calc(16px + env(safe-area-inset-bottom)); }

/* mobile density pass 2 (2026-09-28, owner): section-to-section gap ~56–64 px instead of 84–128 px */
@media (max-width: 599px) {
  .blk { padding-top: 32px; padding-bottom: 32px; }
  .ed--feature { padding-top: 36px; padding-bottom: 36px; }
  .ed--standard, .ed--compact { padding-top: 28px; padding-bottom: 28px; }
  .prose-blk { padding-top: 8px; padding-bottom: 8px; }
  .ed__eyebrow { padding-bottom: 8px; }
  .ed__head, .blk-head { margin-bottom: 16px; }
  .blk-head { gap: 8px; }
  .ed-card { padding: 18px 16px 20px; gap: 12px; }
  .ed-cards, .ed-compare { gap: 10px; }
  .ed-step { padding: 14px 0 20px; }
  .related { padding-bottom: 16px; }
}

/* content photos on touch screens: tap → colour (smooth), tap again → back to grayscale. Hero stays grayscale. */
@media (hover: none), (pointer: coarse) {
  .ed-fig img, .methods__photo img, .prose img, .wcard img { transition: filter .6s ease; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .ed-fig.is-color img, .methods__photo.is-color img, .prose img.is-color, .wcard.is-color img { filter: grayscale(0) contrast(1) brightness(1); }
}

/* ---------------------------------------------------------------- global footer (D-123) --------------------------------- */
.fglobal { background: var(--deep); color: var(--muted); padding: 64px var(--pad) 32px; overflow: hidden; }
.fglobal__cols { display: grid; grid-template-columns: 1.2fr repeat(3, minmax(0, 1fr)); gap: 32px; font-size: 15px; }
.fglobal__col { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; min-width: 0; }
.fglobal__col a { color: var(--warm); }
.fglobal__col a:hover { color: var(--signal-text); }
.fglobal__label { font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--concrete); margin-bottom: 4px; }
.fglobal__phone { font-size: 24px; font-weight: 600; letter-spacing: -.02em; color: var(--offwhite) !important; white-space: nowrap; }
.fglobal__word { margin: 56px 0 28px; text-align: center; white-space: nowrap; line-height: .8; }
/* footer word as SVG outlines (D-215); .fword--trace: a thin orange line with a soft glow runs slowly round each letter in turn,
   E → Y, at the pace of the «Jäätmete tasuta vastuvõtt» menu card (owner 2026-10-08: thin, glow, slow — 12 s a letter).
   Switch off = remove the class fword--trace in partials/footer.blade.php. --px = viewBox units per screen pixel (site.js). */
.fword { --px: 6; display: inline-block; width: calc(clamp(56px, 13vw, 180px) * 6.455); max-width: 100%; height: auto; overflow: visible; vertical-align: top; }
.fword__fill { fill: var(--coal); }
.fword__run { display: none; }
.fword--trace .fword__run { display: inline; fill: none; stroke: var(--trace-color); stroke-linecap: round; stroke-dasharray: var(--trace-dash); stroke-dashoffset: 0;
  opacity: 0; animation: fword-run 84s linear infinite both; animation-delay: calc(var(--i) * 12s); }
.fword--trace .fword__line { stroke-width: calc(var(--px) * .8); --on: 1; }   /* one thin line, no glow (owner 2026-10-08) */
@keyframes fword-run {
  0% { stroke-dashoffset: 0; opacity: 0; } .8% { opacity: var(--on); } 13.5% { opacity: var(--on); } 14.2857% { stroke-dashoffset: -100; opacity: 0; } 100% { stroke-dashoffset: -100; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .fword--trace .fword__run { display: none; } }
.fglobal__bottom { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--concrete); border-top: 1px solid var(--coal); padding-top: 20px; }
.prefooter { background: var(--deep); color: var(--muted); padding: 64px var(--pad) 0; }
.prefooter .fhome__seo { margin-bottom: 40px; }
.prefooter__req { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding-bottom: 8px; font-size: 15px; }
@media (max-width: 1199px) { .fglobal__cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) {
  .fglobal { padding: 36px var(--pad) calc(96px + env(safe-area-inset-bottom)); }
  .fglobal__cols { grid-template-columns: 1fr; gap: 26px; }
  .fglobal__word { margin: 32px 0 20px; }
  .prefooter { padding-top: 36px; }
}

/* ---------------------------------------------------------------- final polish 2026-09-28 (D-124…D-126) -------------- */
/* desktop menu labels: 16 px / 620 / lighter off-white (Archivo for ET as approved; Inter Tight only draws Cyrillic) */
.n3__btn { font-size: 16px; font-weight: 620; color: #fbfaf6; letter-spacing: -.01em; }
@media (min-width: 1280px) and (max-width: 1439px) { .n3__btn { font-size: 14.5px; } }
/* no hover pass on other cards any more — glow + icon lift only */
.n3__btn:hover .n3__trace, .n3__btn:focus-visible .n3__trace { opacity: 1; }

/* desktop price formula: four components as cards, «+» as light connectors, «Lõpphind» as the explicit result */
@media (min-width: 1200px) {
  .formula { grid-template-columns: repeat(4, minmax(0, 1fr)) 1.15fr; gap: 28px; border: 0; }
  .formula__i, .formula__i + .formula__i { padding: 24px 22px 26px; border: 1px solid rgba(243, 241, 236, .14); border-right: 1px solid rgba(243, 241, 236, .14); border-radius: 14px; background: rgba(243, 241, 236, .035); }
  .formula__i .num { color: var(--concrete); }
  .formula__t { font-size: 24px; }
  .formula__op { right: -29px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; background: transparent; color: var(--concrete); font-size: 20px; font-weight: 300; }
  .formula__i:nth-last-child(2) .formula__op { color: var(--signal-text); font-weight: 500; }
  .formula__total { padding: 24px 24px 26px; border-radius: 14px; background: rgba(238, 90, 36, .09); border: 1px solid var(--signal); justify-content: center; }
  .formula__total .formula__t { font-size: 30px; }
}

/* related (desktop): every item — title top, same height, arrow bottom-right; no centring of short titles */
@media (min-width: 600px) {
  .related__i { justify-content: space-between; align-items: stretch; min-height: 150px; }
  .related__t { flex: 0 0 auto; align-self: flex-start; text-align: left; }
  .related__foot { margin-top: auto; }
}

/* mobile menu: the bar «ECOLOGY · ET/RU · ×» stays fixed while the menu is open (iOS ignores overflow:hidden on body) */
@media (max-width: 1279px) {
  body.is-locked .hdr { position: fixed; top: 0; left: 0; right: 0; z-index: 41; }
  .mnav__scroll { position: relative; }
}
/* mobile hero: breadcrumbs start ~20 px under the sticky header (was a 160 px empty field) */
@media (max-width: 599px) {
  .t2-hero__body { padding-top: 20px; gap: 18px; }
  .t2-hero { min-height: 0; }
}
/* very narrow phones (≤ 359 px): header fits — smaller wordmark, tighter language pill */
@media (max-width: 359px) {
  .logo__word { font-size: 16px; letter-spacing: .03em; }
  .hdr .hdr__tools { gap: 6px; }
  .hdr .langs__i { min-width: 36px; padding: 0 8px; }
  .hdr3__top, .hdr__bar { gap: 8px; }
}
/* back-to-top never covers the footer's last line */
.fglobal__bottom { padding-right: 64px; }
/* local mobile gaps (not a global rule): H2 of «Mis kuulub…» had an extra top margin; the last «Tingimused» link had a bottom margin */
@media (max-width: 599px) {
  .t2-materials h2:first-child, .t2-materials .t2-article > h2:first-of-type { margin-top: 0; }
  .t2-cond__after > :last-child { margin-bottom: 0; }
}

/* social links + Google feedback (D-130): monochrome, quiet; hidden when the CMS URL is empty */
.social { display: flex; align-items: center; gap: 4px; }
.social__i { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); border-radius: 999px; transition: color .25s, background-color .25s; }
.social__i svg { width: 18px; height: 18px; flex: none; }
.social__i:hover { color: var(--signal-text); }
.social__i.is-pending { outline: 1px dashed rgba(243, 241, 236, .35); outline-offset: -1px; opacity: .8; }
.social--header { margin-right: 6px; }
.social--header .social__i { width: 34px; height: 34px; justify-content: center; }
.social--header .social__i:hover { background: rgba(243, 241, 236, .06); }
.social--mnav { flex-wrap: wrap; gap: 6px 14px; padding-top: 8px; border-top: 1px solid var(--coal); margin-top: 4px; }
.social--mnav .social__i { min-height: 40px; min-width: 40px; justify-content: center; font-size: 14px; color: var(--warm); }
.social--mnav .social__google { padding: 0 8px; }
.social--footer { flex-wrap: nowrap; gap: 2px; margin: 10px 0 0 -7px; }   /* one tight row under the contacts, icons only (owner 2026-10-08) */
.social--footer .social__i { width: 32px; height: 32px; justify-content: center; }
.social--footer .social__i:hover { background: rgba(243, 241, 236, .06); }
@media (max-width: 1279px) { .hdr .social--header { display: none; } }
/* mobile menu helper text — alternative B (preview ?hint=alt): lighter, technical, lower contrast, less weight */
.mnav--hint-alt .mnav__hint { font: 400 11.5px/1.35 var(--mono); letter-spacing: .01em; color: #7d786f; margin-top: 1px; }
.mnav--hint-alt .mnav__titles { gap: 1px; }
/* long single words in menu cards (RU «микроавтобусом», ET compounds) hyphenate instead of being clipped */
.n3__label { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }
/* mobile menu bottom: social icons + Google feedback on one compact line */
.social--mnav { flex-wrap: nowrap; gap: 6px; border-top: 0; padding-top: 2px; margin-top: 0; }
.social--mnav .social__i { min-height: 36px; min-width: 36px; }
.social--mnav .social__google { min-width: 0; padding: 0 10px; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.social--mnav .social__google span { overflow: hidden; text-overflow: ellipsis; }

/* ---------------------------------------------------------------- generic T2 renderer (D-136) ------------------------ */
/* intro section of scaled pages: inline Sisukord on the left, text on the right — as on the representative page */
.ed--intro .ed__grid { align-items: start; }
.ed--intro .toc { grid-column: 1 / 4; }
.ed--intro .ed__parts { grid-column: 5 / 13; }
@media (max-width: 1199px) { .ed--intro .toc, .ed--intro .ed__parts { grid-column: 1 / -1; } .ed--intro .toc { margin-bottom: 20px; } }

/* typography inside the page's own text: one hierarchy (Archivo), legacy weights never leak */
.ed-text h3, .ed-text h4 { margin: 18px 0 8px; font-family: var(--sans); font-weight: 600; letter-spacing: -.015em; line-height: 1.25; color: var(--graphite); }
.ed-text h3 { font-size: 20px; } .ed-text h4 { font-size: 17px; }
.ed-bg--dark .ed-text h3, .ed-bg--dark .ed-text h4 { color: var(--offwhite); }
.ed-text strong, .ed-list strong, .ed-card strong { font-weight: 600; }
.ed-text em { font-style: italic; }
.ed-text a, .ed-list a { color: inherit; text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 3px; }
.ed-text a:hover, .ed-list a:hover { color: var(--signal-text); }
.ed-lead { margin: 0; font-size: 22px; line-height: 1.45; font-weight: 500; letter-spacing: -.012em; color: var(--graphite); max-width: 58ch; text-wrap: pretty; }
.ed-bg--dark .ed-lead { color: var(--offwhite); }
@media (min-width: 1200px) { .ed-text--cols { columns: 2; column-gap: 44px; max-width: none; } .ed-text--cols p { break-inside: avoid; } }
@media (max-width: 599px) { .ed-lead { font-size: 19px; } }

/* related-services rows inside the text (legacy «Seotud teenused» link lists) — same language as the related component */
.ed-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; border-top: 1px solid var(--graphite); }
.ed-links__i { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; padding: 16px 0 18px; border-bottom: 1px solid rgba(28, 29, 31, .18); color: var(--graphite); transition: color .2s; }
.ed-links__t { font-size: 19px; font-weight: 500; letter-spacing: -.015em; line-height: 1.2; }
.ed-links__d { grid-column: 1; font-size: 14.5px; line-height: 1.45; color: #5c5852; }
.ed-links__a { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 20px; transition: transform .2s; }
.ed-links__i:hover { color: var(--signal-text); }
.ed-links__i:hover .ed-links__a { transform: translateX(4px); }
@media (max-width: 719px) { .ed-links { grid-template-columns: 1fr; } }

/* pictures by type (D-135): captioned photos and 3D illustrations are never cropped */
.ed-fig--photo_text img, .ed-fig--illustration img { object-fit: contain; height: auto; }
.ed__media .ed-fig--photo_text, .ed__media .ed-fig--illustration { aspect-ratio: auto !important; background: transparent; }
.ed-fig--illustration { background: transparent !important; }
.ed-fig--illustration img { mix-blend-mode: multiply; max-width: 420px; margin-inline: auto; }
.ed-bg--dark .ed-fig--illustration img { mix-blend-mode: normal; border-radius: 16px; }
/* a section whose pictures are illustrations / captioned photos: calm stack, no overlapping composition */
.ed__media--objects { padding-bottom: 0 !important; display: flex; flex-direction: column; gap: 20px; align-items: center; }
.ed__media--objects .ed-fig { position: static !important; width: 100% !important; outline: 0 !important; }
/* gallery: > 3 pictures in one section (nothing hidden any more) */
.ed-gallery { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 40px; }
.ed-gallery--1 { grid-template-columns: minmax(0, 520px); } .ed-gallery--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ed-gallery--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ed-gallery .ed-fig { aspect-ratio: 4 / 3; }
.ed-gallery .ed-fig--photo img { width: 100%; height: 100%; object-fit: cover; }
.ed-gallery .ed-fig--photo_text, .ed-gallery .ed-fig--illustration { display: flex; align-items: center; justify-content: center; background: transparent; }
.ed-gallery .ed-fig--photo_text img, .ed-gallery .ed-fig--illustration img { width: 100%; height: 100%; }
@media (max-width: 1199px) { .ed-gallery, .ed-gallery--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .ed-gallery, .ed-gallery--2, .ed-gallery--4 { grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 24px; } .ed-gallery--1 { grid-template-columns: 1fr; } }

/* hero: on mobile the fixed «Helista / Saada päring» bar replaces the hero buttons; the running line stays without facts */
@media (max-width: 1199px) { .tpl-t2 .t2-hero__actions { display: none; } }
.facts--line { height: 0; border-top: 1px solid rgba(243, 241, 236, .22); margin-top: 8px; }
/* 3D illustrations: the square studio background fades into the section — the round badge stands on its own (D-136) */
.ed-fig--illustration img { -webkit-mask-image: radial-gradient(circle at 50% 48%, #000 58%, transparent 71%); mask-image: radial-gradient(circle at 50% 48%, #000 58%, transparent 71%); mix-blend-mode: normal; }
.ed-fig--illustration { aspect-ratio: auto; }
/* dark section with a picture: text column beside the picture, not under it */
.ed--dark.ed--media-left .ed__parts { grid-column: 7 / 13; grid-template-columns: 1fr; }
.ed--dark.ed--media-right .ed__parts { grid-column: 1 / 7; grid-template-columns: 1fr; }
.ed--dark.ed--media-left .ed__media { grid-column: 1 / 6; grid-row: 1; }
.ed--dark.ed--media-right .ed__media { grid-column: 8 / 13; grid-row: 1; }
@media (max-width: 1199px) { .ed--dark.ed--media-left .ed__parts, .ed--dark.ed--media-right .ed__parts, .ed--dark .ed__media { grid-column: 1 / -1 !important; grid-row: auto !important; } }

/* ---------------------------------------------------------------- T2 visual composition pass (D-137) ----------------- */
/* one type system in content: body bold = Archivo 600 (never a synthetic / heavy weight); legacy weights never leak */
main strong, main b, .faq strong, .faq b { font-weight: 600; font-family: inherit; }
.ed-text, .ed-list, .ed-card, .ed-step, .ed-callout, .ed-lead, .faq__a, .ed-terms { font-family: var(--sans); }
/* inline links to other services: orange underline, readable, not CTAs */
.ed a:not([class]), .faq__a a:not([class]), .ed-callout a, .ed-lead a { color: inherit; text-decoration: underline; text-decoration-color: var(--signal); text-decoration-thickness: 1.5px; text-underline-offset: 3px; transition: color .2s; }
.ed a:not([class]):hover, .faq__a a:not([class]):hover, .ed-callout a:hover, .ed-lead a:hover { color: var(--signal-text); }
.ed-bg--dark .ed a:not([class]), .ed-bg--dark a:not([class]) { text-decoration-color: var(--signal); }

/* term cards (table → cards) */
.ed-terms__grid { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ed-terms__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ed-terms__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ed-term { display: flex; flex-direction: column; gap: 10px; padding: 18px 18px 20px; background: #fff; border-top: 3px solid var(--signal); }
.ed-bg--white .ed-term { background: var(--offwhite); }
.ed-term__t { font-size: 24px; font-weight: 600; letter-spacing: -.02em; line-height: 1.1; color: var(--graphite); }
.ed-term__d { font-size: 15.5px; line-height: 1.45; color: var(--coal); }
@media (max-width: 719px) { .ed-terms__grid, .ed-terms__grid--4 { grid-template-columns: 1fr; } .ed-terms__grid--2 { grid-template-columns: 1fr 1fr; } }

/* pictures never make a section huge: photo column ≈ 40 %, landscape crop, capped height */
@media (min-width: 1200px) {
  .ed--media-right .ed__parts { grid-column: 1 / 8; } .ed--media-right .ed__media { grid-column: 8 / 13; }
  .ed--media-left .ed__parts { grid-column: 6 / 13; } .ed--media-left .ed__media { grid-column: 1 / 6; }
  .ed--media .ed__media { align-self: start; position: sticky; top: calc(var(--anchor-offset) + 8px); }
}
.ed__media--1 .ed-fig--photo { aspect-ratio: 4 / 3 !important; max-height: 420px; }
.ed__media--2 .ed-fig--0.ed-fig--photo { aspect-ratio: 4 / 3; width: 86%; max-height: 380px; }
.ed__media--2 .ed-fig--1.ed-fig--photo { width: 52%; aspect-ratio: 4 / 3; }
.ed--steps .ed__media--1 .ed-fig--photo { aspect-ratio: 21 / 8 !important; max-height: 360px; }
/* 3D illustration: its own component — contain, no crop / frame, 320–360 px, vertically centred beside the text */
.ed__media--objects { align-self: center !important; position: static !important; }
.ed-fig--illustration { width: min(340px, 100%) !important; margin-inline: auto; }
.ed-fig--illustration img { max-width: 340px; width: 100%; }
.ed-fig--photo_text { max-width: 420px; margin-inline: auto; }
@media (max-width: 1199px) { .ed-fig--illustration { width: min(240px, 70%) !important; } .ed-fig--photo_text { max-width: 340px; } .ed__media--1 .ed-fig--photo { max-height: 300px; } }

/* floating Sisukord: compact, never grows with a long heading */
.toc-float { width: 320px; max-width: calc(100vw - 2 * var(--pad) - 64px); }
.toc-float__btn { width: 100%; min-width: 0; }
.toc-float__cur { min-width: 0; }
.toc-float__list { max-width: 100%; }
@media (max-width: 1199px) { .toc-float { width: auto; max-width: calc(100vw - 88px); } .toc-float.is-open { width: min(340px, calc(100vw - 24px)); max-width: none; } }

/* ---------------------------------------------------------------- T2 component library additions (D-138) ------------- */
/* card grids that look designed: 3, 4, 3+2 (wider second row), 2+3; photo per card; photo tile as a grid cell */
.ed-cards--n4, .ed-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ed-cards--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ed-cards--3-2, .ed-cards--2-3 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.ed-cards--3-2 > :nth-child(-n+3) { grid-column: span 2; } .ed-cards--3-2 > :nth-child(n+4) { grid-column: span 3; }
.ed-cards--2-3 > :nth-child(-n+2) { grid-column: span 3; } .ed-cards--2-3 > :nth-child(n+3) { grid-column: span 2; }
.ed-card--photo { padding-top: 0; }
.ed-card__img { margin: 0 -24px 6px; aspect-ratio: 16 / 9; overflow: hidden; }
.ed-card__img img { width: 100%; height: 100%; object-fit: cover; }
.ed-card--tile { padding: 0; border-top: 0; background: var(--coal); overflow: hidden; min-height: 220px; }
.ed-card--tile img { width: 100%; height: 100%; object-fit: cover; }
.ed-card--tile.ed-fig--photo_text img, .ed-card--tile.ed-fig--illustration img { object-fit: contain; }
.ed-card .ed-golink { padding: 10px 12px; margin-top: 2px; }
.ed-card .ed-golink__lead { font-size: 13px; } .ed-card .ed-golink__label { font-size: 15.5px; }
@media (max-width: 1199px) {
  .ed-cards--n4, .ed-cards--4, .ed-cards--3-2, .ed-cards--2-3 { grid-template-columns: 1fr 1fr; }
  .ed-cards--3-2 > *, .ed-cards--2-3 > * { grid-column: auto !important; }
}
@media (max-width: 719px) {
  .ed-cards--n4, .ed-cards--4, .ed-cards--3-2, .ed-cards--2-3, .ed-cards--n2 { grid-template-columns: 1fr; }
  /* swipe (only where the page asks for it): the next card's edge stays visible, dots show the position */
  .ed-swipe { display: grid; grid-auto-flow: column; grid-auto-columns: 84%; grid-template-columns: none !important; overflow-x: auto; scroll-snap-type: x mandatory;
    gap: 10px; margin-inline: calc(-1 * var(--pad)); padding-inline: var(--pad); scrollbar-width: none; }
  .ed-swipe::-webkit-scrollbar { display: none; }
  .ed-swipe > * { scroll-snap-align: start; grid-column: auto !important; }
  .ed-swipe__dots { display: flex; justify-content: center; gap: 6px; margin-top: 12px; }
  .ed-swipe__dots span { width: 6px; height: 6px; border-radius: 50%; background: rgba(28, 29, 31, .25); transition: background .2s, width .2s; }
  .ed-swipe__dots span.is-on { background: var(--signal); width: 18px; border-radius: 3px; }
}
@media (min-width: 720px) { .ed-swipe__dots { display: none; } }
.ed-terms__grid--1 { grid-template-columns: minmax(0, 360px); }

/* long Sisukord: first 8 items, «Näita kõiki ↓», open list scrolls inside */
.toc--long .toc__more { display: none; }
.toc--long.is-all .toc__more { display: grid; }
.toc--long.is-all .toc__list { max-height: 460px; overflow-y: auto; overscroll-behavior: contain; }
.toc__all { margin-top: 6px; padding: 10px 0; border: 0; background: transparent; font: 500 12px var(--mono); letter-spacing: .06em; color: var(--signal-text); cursor: pointer; text-align: left; }
@media (max-width: 1199px) { .toc--long.is-all .toc__list { max-height: 360px; } }
/* transparent 3D derivative: no mask needed — the whole badge (tail included) is shown */
.ed-fig--illustration img.is-cutout { -webkit-mask-image: none; mask-image: none; }
.ed__media--large .ed-fig--illustration { width: min(420px, 100%) !important; } .ed__media--large .ed-fig--illustration img { max-width: 420px; }

/* ---------------------------------------------------------------- editorial pilots (D-139) ---------------------------- */
/* steps beside a picture run in two columns; a list may span both columns of a two-column section */
.ed-steps--c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ed__parts > .ed-wide { grid-column: 1 / -1; }
.ed--two_col .ed-wide ul, .ed--dark .ed-wide ul { columns: 2; column-gap: 40px; }
/* related-service rows inside a card: one column, smaller */
.ed-card .ed-links { grid-template-columns: 1fr; margin-top: 4px; }
.ed-card .ed-links__i { padding: 10px 0 11px; }
.ed-card .ed-links__t { font-size: 16px; }
.ed-card .ed-links__d { font-size: 13px; }
/* 4-in-a-row cards with photos: a shorter picture keeps the row compact */
.ed-cards--4 .ed-card__img { aspect-ratio: 3 / 2; }
@media (max-width: 719px) {
  .ed-steps--c2 { grid-template-columns: 1fr; }
  .ed--two_col .ed-wide ul, .ed--dark .ed-wide ul { columns: 1; }
}
/* «flow» card layout: cards of very different length stack in 3 columns without empty row gaps (no fixed rows) */
.ed-cards--flow { display: block; columns: 3; column-gap: 16px; }
.ed-cards--flow > * { break-inside: avoid; margin: 0 0 16px; width: 100%; }
.ed-cards--flow > .ed-card--tile { aspect-ratio: 4 / 3; min-height: 0; display: block; }
.ed-card__img { aspect-ratio: 2 / 1; max-height: 230px; }
@media (max-width: 1199px) { .ed-cards--flow { columns: 2; } }
@media (max-width: 719px) { .ed-cards--flow { columns: 1; } }
/* 3D objects beside long text: start at the top and stay in view (sticky) — no empty band above a centred badge */
@media (min-width: 1200px) { .ed--media .ed__media--objects { align-self: start !important; position: sticky !important; top: calc(var(--anchor-offset) + 24px); } }
/* a picture with lettering is never covered: if it comes first, the second picture goes below it instead of overlapping */
.ed__media--2:has(.ed-fig--0.ed-fig--photo_text) { padding-bottom: 0; display: flex; flex-direction: column; gap: 16px; }
.ed__media--2 .ed-fig--0.ed-fig--photo_text + .ed-fig--1 { position: static; width: 100%; outline: 0; }
@media (max-width: 719px) { .ed__media--large .ed-fig--illustration { width: min(280px, 82%) !important; } .ed__media--large .ed-fig--illustration img { max-width: 280px; } }
/* 3D badges with a transparent background get a soft cast shadow from the site (one rule for all badges; reversible —
   delete this block to go back to flat). On the figure, so the photo filter (grayscale / hover colour) on the img stays intact. */
.ed-fig--illustration:has(img.is-cutout) { filter: drop-shadow(0 22px 20px rgba(28, 29, 31, .20)) drop-shadow(0 6px 6px rgba(28, 29, 31, .14)); }
@media (max-width: 719px) { .ed-fig--illustration:has(img.is-cutout) { filter: drop-shadow(0 14px 14px rgba(28, 29, 31, .20)) drop-shadow(0 4px 4px rgba(28, 29, 31, .14)); } }

/* ---------------------------------------------------------------- mobile content cards (owner, 2026-09-29) ------------ */
/* no carousel on phones: cards stack in one calm column; inside a card — number / title → photo → text (clamped) */
.ed-card__body { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ed-card__more { display: none; }
@media (max-width: 719px) {
  .ed-swipe { display: grid; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: 1fr !important; overflow: visible; scroll-snap-type: none; margin-inline: 0; padding-inline: 0; gap: 12px; }
  .ed-swipe__dots { display: none !important; }
  .ed-card--photo { padding-top: 22px; }
  .ed-card__n { order: 0; } .ed-card__title { order: 1; }
  .ed-card__img { order: 2; margin: 2px -24px 4px; max-height: 210px; aspect-ratio: 16 / 9; }
  .ed-card__body { order: 3; }
  .ed-card__more { order: 4; }
  .ed-card__body.is-clamped { max-height: 300px; overflow: hidden; position: relative; }
  .ed-card__body.is-clamped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 72px; pointer-events: none;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--card-bg, #fff)); }
  .ed-card__more:not([hidden]) { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; margin-top: -4px; padding: 8px 0; border: 0; background: transparent;
    font: 500 12px var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--signal-text); cursor: pointer; }
  .ed-card__more::after { content: "↓"; } .ed-card__more[aria-expanded="true"]::after { content: "↑"; }
}
.ed-card { --card-bg: #fff; } .ed-bg--white .ed-card { --card-bg: var(--offwhite); }
@media (max-width: 719px) {
  .ed-card__img { margin-inline: -16px; }
  .ed-card__body { gap: 12px; }
  .ed-card__body.is-clamped::after { background: linear-gradient(to bottom, transparent, var(--card-bg)); }
}
/* short process steps (one sentence each) may run 5 in a row on wide screens (batch 1, D-138) */
@media (min-width: 1200px) { .ed-steps--c5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
/* a captioned picture / 3D object as a grid tile sits on a light ground (contain), not on the dark photo tile */
.ed-card--tile.ed-fig--photo_text, .ed-card--tile.ed-fig--illustration { background: #fff; display: flex; align-items: center; justify-content: center; }

/* ---------------------------------------------------------------- layout helpers (owner review 2026-09-29, D-142) ------- */
/* columns: lists with their lead sentence side by side; the conclusion (callout / quote) runs under all columns */
.ed-cols { display: grid; gap: 28px 48px; align-items: start; }
.ed-cols--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ed-cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ed-cols--r2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.ed-cols__c { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.ed-cols .ed-list ul { columns: 1 !important; }
.ed--cols-wide .ed__parts { grid-column: 1 / -1; }
@media (max-width: 1199px) { .ed-cols--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 719px) { .ed-cols--2, .ed-cols--3, .ed-cols--r2-1 { grid-template-columns: 1fr; gap: 22px; } }
/* key words of a label, underlined like in a summary (page's own words) */
main mark { background: none; color: inherit; box-shadow: inset 0 -3px 0 var(--signal); padding: 0 1px; }
/* route: one accented row with brand-colour arrows, the last stop highlighted */
.ed-route { list-style: none; margin: 4px 0 0; padding: 18px 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 0;
  background: var(--graphite); color: var(--offwhite); border-left: 4px solid var(--signal); }
.ed-route__i { display: flex; align-items: center; font-size: clamp(16px, 1.35vw, 19px); font-weight: 500; letter-spacing: -.01em; }
.ed-route__i:not(:last-child)::after { content: "→"; color: var(--signal-text); margin: 0 14px; font-weight: 600; }
.ed-route__i.is-end span { color: var(--signal-text); }
@media (max-width: 719px) {
  .ed-route { flex-direction: column; align-items: flex-start; gap: 0; padding: 14px 16px; }
  .ed-route__i:not(:last-child)::after { content: "↓"; display: block; margin: 2px 0 2px; }
  .ed-route__i { flex-direction: column; align-items: flex-start; }
}
/* brace: examples → orange curly brace → what differs */
.ed-brace { display: grid; grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr); gap: 0 18px; align-items: stretch; }
.ed-brace__mark svg { width: 100%; height: 100%; display: block; }
.ed-brace__mark path { fill: none; stroke: var(--signal); stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.ed-brace .ed-list ul { columns: 1 !important; }
@media (max-width: 719px) {
  .ed-brace { grid-template-columns: 1fr; gap: 6px; }
  .ed-brace__mark { height: 34px; }
  .ed-brace__mark svg { transform: rotate(90deg) scaleY(9); transform-origin: center; height: 34px; width: 34px; margin: 0 auto; }
}
/* inline picture inside a column (contain for captioned pictures) */
.ed-fig--inline { margin: 0; }
.ed-fig--inline img { width: 100%; height: auto; display: block; }
.ed-fig--inline.ed-fig--photo img { aspect-ratio: 4 / 3; object-fit: cover; }
/* a captioned picture / drawing as a grid tile looks like a card: same height, brand stripe on top, picture centred */
.ed-card--tile.ed-fig--photo_text, .ed-card--tile.ed-fig--illustration { border-top: 3px solid var(--graphite); padding: 24px; background: var(--card-bg, #fff); min-height: 0; }
.ed-card--tile.ed-fig--photo_text img, .ed-card--tile.ed-fig--illustration img { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 719px) {
  .ed-brace__mark svg { display: none; }
  .ed-brace__mark { height: auto; }
  .ed-brace__mark::before { content: ""; display: block; height: 14px; margin: 2px 8px 8px; border: 2.5px solid var(--signal); border-top: 0; border-radius: 0 0 16px 16px; }
}
/* captioned pictures / drawings on white: grayscale like the photos, but no darkening — white stays white (no grey box) */
.ed-fig--photo_text img.photo, .ed-fig--illustration img.photo { filter: grayscale(1) contrast(1.05); }
/* route on phones: a compact wrapped row instead of a tall column */
@media (max-width: 719px) {
  .ed-route { flex-direction: row; align-items: center; gap: 6px 0; padding: 14px 16px; }
  .ed-route__i { flex-direction: row; align-items: center; font-size: 15px; }
  .ed-route__i:not(:last-child)::after { content: "→"; display: inline; margin: 0 8px; }
}
.ed-card--tile.ed-fig--photo_text, .ed-card--tile.ed-fig--illustration { max-width: none !important; width: auto !important; }
.ed-card--tile.ed-fig--photo_text, .ed-card--tile.ed-fig--illustration { width: 100% !important; box-sizing: border-box; }
.ed-card--tile.ed-fig--photo_text img, .ed-card--tile.ed-fig--illustration img { width: 100%; max-width: 100%; }
@media (max-width: 1199px) { .ed-card--tile.ed-fig--photo_text, .ed-card--tile.ed-fig--illustration { aspect-ratio: 3 / 2; } }

/* ---------------------------------------------------------------- owner review 2026-09-29 #2 (D-143) ------------------ */
/* less air between editorial sections on desktop / tablet (the heading sits higher, the previous block ends closer); phones unchanged */
@media (min-width: 720px) {
  .ed.ed--feature { padding-top: 58px; padding-bottom: 58px; }
  .ed.ed--standard { padding-top: 48px; padding-bottom: 48px; }
  .ed.ed--compact { padding-top: 40px; padding-bottom: 40px; }
  .ed .ed__head { margin-bottom: 28px; }
  .ed.ed--standard .ed__head, .ed.ed--compact .ed__head { margin-bottom: 22px; }
}
/* key words: a thin brand-colour underline set below the letters (was a thick bar over the word) */
main mark { box-shadow: none; text-decoration: underline; text-decoration-color: var(--signal); text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
/* picture beside the brace: exactly as tall as the two lists (from the labels to the last line), no lower overhang */
@media (min-width: 720px) {
  .ed-cols--r2-1 { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); align-items: stretch; }
  .ed-cols--r2-1 > .ed-cols__c:last-child { position: relative; min-height: 220px; }
  .ed-cols--r2-1 > .ed-cols__c:last-child .ed-fig--inline { position: absolute; inset: 0; display: flex; justify-content: flex-start; align-items: flex-start; }
  .ed-cols--r2-1 > .ed-cols__c:last-child .ed-fig--inline img { width: auto; height: 100%; max-width: 100%; object-fit: contain; object-position: left top; }
}
.ed-fig--inline { background: transparent !important; }
@media (min-width: 720px) {
  .ed-cols--r2-1 > .ed-cols__c:last-child .ed-fig--inline { justify-content: flex-end; }
  .ed-cols--r2-1 > .ed-cols__c:last-child .ed-fig--inline img { object-position: right top; }
}
/* a conclusion (callout) inside a card is card-sized, not section-sized */
.ed-card .ed-callout { font-size: 15.5px; line-height: 1.5; padding-left: 14px; font-weight: 500; }
.ed-card .ed-quote p { font-size: 18px; padding-left: 36px; }
.ed-card .ed-quote::before { font-size: 48px; }
/* 3D badges and captioned pictures turn to colour on hover / tap like the photos (the no-darkening rule had blocked it) */
.ed-fig--photo_text:hover img.photo, .ed-fig--illustration:hover img.photo,
.ed-fig--photo_text.is-color img.photo, .ed-fig--illustration.is-color img.photo,
.ed-card--tile:hover img.photo, .ed-card--tile.is-color img.photo { filter: grayscale(0) contrast(1) brightness(1); }
/* quotes inside columns (e.g. a dark block with client quotes) are column-sized */
.ed-cols .ed-quote p { font-size: clamp(19px, 1.55vw, 24px); max-width: none; padding-left: 44px; }
.ed-cols .ed-quote::before { font-size: 58px; }
.ed-cols .ed-quote + .ed-quote { margin-top: 4px; }
/* column groups always use the full width of the section's text area (dark / two-column sections are grids themselves) */
.ed__parts > .ed-cols, .ed__parts > .ed-steps, .ed__parts > .ed-route, .ed__parts > .ed-brace { grid-column: 1 / -1; }
.ed-cards--flow > .ed-card--tile img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1200px) { .ed-steps--c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ed-steps--c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* beside a picture (half width) steps never leave a hole: 4 → 2×2, 3 / 5 → one column */
@media (min-width: 720px) {
  .ed--media:not(.ed--steps):not(.ed--cards) .ed-steps--c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ed--media:not(.ed--steps):not(.ed--cards) .ed-steps--c3, .ed--media:not(.ed--steps):not(.ed--cards) .ed-steps--c5 { grid-template-columns: 1fr; }   /* steps / cards sections keep their picture below, full width (2026-10-08) */
}
/* term cards: an odd last card fills the row; narrow phones one column (long words never push the page sideways) */
.ed-terms__grid--2 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (max-width: 479px) { .ed-terms__grid--2, .ed-terms__grid--3 { grid-template-columns: 1fr; } .ed-terms__grid--2 > :last-child { grid-column: auto; } }
.ed-term__t, .ed-term__d { overflow-wrap: anywhere; }
/* a list without a partner in a two-column section spans the row (polish lone_lists): 4+ items in two columns, fewer in one */
.ed--two_col .ed__parts > .ed-wide ul:not(:has(> li:nth-child(4))) { columns: 1; }
.ed--dark .ed__parts > .ed-wide:not(:first-child) ul:has(> li:nth-child(4)) { columns: 2; column-gap: 48px; }
@media (max-width: 719px) { .ed--two_col .ed__parts > .ed-wide ul, .ed--dark .ed__parts > .ed-wide:not(:first-child) ul { columns: 1; } }
@media (max-width: 719px) { .ed__parts > .ed-wide ul { columns: 1 !important; } }
/* related-link rows: an odd last row fills the width (no half-empty row) */
.ed-links > :last-child:nth-child(odd) { grid-column: 1 / -1; }
/* responsive images (D-149): <picture> is layout-neutral — the <img> inside keeps every existing rule */
picture.pic { display: contents; }
.prose p:has(> picture) { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------------------------------------------------------------- batch 2 owner review (D-151) ---------------------------- */
/* touch screens: a tap turns a 3D badge / captioned picture to colour and the next tap back — the «sticky» :hover of mobile
   browsers had kept it in colour */
@media (hover: none), (pointer: coarse) {
  .ed-fig--photo_text:not(.is-color):hover img.photo, .ed-fig--illustration:not(.is-color):hover img.photo { filter: grayscale(1) contrast(1.05); }
  .ed-card--tile.ed-fig--photo:not(.is-color):hover img.photo { filter: grayscale(1) contrast(1.15) brightness(.9); }
}
@media (min-width: 1200px) {
  /* first section with Sisukord AND a picture: Sisukord | text | picture — the text never runs under the Sisukord */
  .ed--intro.ed--media .toc { grid-column: 1 / 4; grid-row: 1; }
  .ed--intro.ed--media .ed__parts { grid-column: 4 / 9 !important; grid-row: 1; }
  .ed--intro.ed--media .ed__media { grid-column: 9 / 13 !important; grid-row: 1; }
  /* a section with a photo: its heading stands over its own text column, not over the photo */
  .ed--media-right:not(.ed--intro):not(.ed--steps):not(.ed--cards) .ed__title { grid-column: 1 / 8; }
  .ed--media-left:not(.ed--steps):not(.ed--cards) .ed__title { grid-column: 6 / 13; }
  .ed--media:not(.ed--steps):not(.ed--cards) .ed__eyebrow { grid-row: 1; padding: 0 0 12px; }
  .ed--media:not(.ed--steps):not(.ed--cards) .ed__eyebrow ~ .ed__title { grid-row: 2; }
  .ed--media-right:not(.ed--intro):not(.ed--steps):not(.ed--cards) .ed__eyebrow { grid-column: 1 / 8; }
  .ed--media-left:not(.ed--steps):not(.ed--cards) .ed__eyebrow { grid-column: 6 / 13; }
}
/* long words in the H1 («utiliseerimine», «утилизация») never run out of a phone screen */
.t2-hero__h1, .t3-hero__h1, .ed__title { overflow-wrap: break-word; hyphens: auto; }
@media (max-width: 480px) { .t2-hero__h1, .t3-hero__h1 { font-size: clamp(28px, 9.4vw, 40px); } }
/* dark panel beside a light column (e.g. «Kellele see lahendus ei sobi?» next to the text it qualifies) */
.ed-cols__c--dark { background: var(--graphite); color: var(--offwhite); padding: 32px 34px; }
.ed-cols__c--dark .ed-text p, .ed-cols__c--dark p { color: var(--warm); }
.ed-panel__t { margin: 0; font-size: clamp(20px, 1.7vw, 26px); font-weight: 600; letter-spacing: -.02em; line-height: 1.15; color: var(--offwhite); }
@media (max-width: 719px) { .ed-cols__c--dark { padding: 24px 20px; } }
/* machine-font label over a column («Tallinn», «Harjumaa», «Ooteaeg») */
.ed-mono-label { margin: 0 0 -8px; font: 500 12px/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--signal-text); }
/* section number (Sisukord numbering) where a section has no eyebrow — the machine font through the whole page */
.ed__num { color: var(--signal-text); letter-spacing: .12em; }
/* cards in a row: the link row sits at the bottom of every card, so the links line up across the row */
@media (min-width: 720px) {
  .ed-card__body { flex: 1 1 auto; }
  .ed-card__body > .ed-links:last-child, .ed-card__body > .ed-golink:last-child { margin-top: auto; }
}
/* a long H1 (> 50 characters, e.g. «Pakendijäätmete regulaarne vedu ladudele ja logistikakeskustele») steps down so it stays 2–3 lines */
.t2-hero__h1--long { font-size: clamp(38px, 5.2vw, 76px); }
@media (max-width: 480px) { .t2-hero__h1--long { font-size: clamp(26px, 8vw, 34px); } }
/* photo gallery of a section on a phone (2 per row): an odd last photo fills the row */
@media (max-width: 719px) { .ed-gallery > :last-child:nth-child(odd) { grid-column: 1 / -1; } }

/* ---------------------------------------------------------------- owner review of batch 3 (D-158) ------------- */
/* Sisukord band: pages whose first section has its own heading */
.toc-band { background: var(--paper); padding-top: 28px; padding-bottom: 8px; }
.toc-band .toc { position: static; grid-column: auto; }
@media (min-width: 1200px) {
  .toc-band .toc__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; }
  .toc-band .toc__label, .toc-band .toc__all { grid-column: 1 / -1; }
  .toc-band .toc__all { justify-self: start; }
}
/* 7 cards: 4 + 3 (wider second row) */
.ed-cards--4-3 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.ed-cards--4-3 > :nth-child(-n+4) { grid-column: span 3; } .ed-cards--4-3 > :nth-child(n+5) { grid-column: span 4; }
@media (max-width: 1199px) { .ed-cards--4-3 { grid-template-columns: 1fr 1fr; } .ed-cards--4-3 > * { grid-column: auto !important; } .ed-cards--4-3 > :last-child:nth-child(odd) { grid-column: 1 / -1 !important; } }
@media (max-width: 719px) { .ed-cards--4-3 { grid-template-columns: 1fr; } }
/* link button: as wide as its text, not a wide black bar */
.ed-golink { width: fit-content; max-width: min(100%, 520px); padding-right: 28px; }
/* link rows inside a step: one column, compact — the same look in every step */
.ed-step .ed-links { grid-template-columns: 1fr; margin-top: 4px; }
.ed-step .ed-links__i { padding: 10px 0 11px; } .ed-step .ed-links__t { font-size: 16px; } .ed-step .ed-links__d { font-size: 13px; }
.ed-links__i--self .ed-links__t::after { content: ""; }
.ed-links__i--self { color: var(--graphite); }
.ed-bg--dark .ed-links { border-top-color: rgba(243, 241, 236, .3); }
.ed-bg--dark .ed-links__i { color: var(--offwhite); border-bottom-color: rgba(243, 241, 236, .16); }
.ed-bg--dark .ed-links__d { color: var(--muted); }
.ed-bg--dark .ed-links__i:hover { color: var(--signal-text); }
/* video: preview + play button; 16:9 */
.ed-video { position: relative; aspect-ratio: 16 / 9; background: var(--coal); overflow: hidden; }
.ed-video__btn { position: absolute; inset: 0; display: block; }
.ed-video__btn img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); transition: filter .3s, transform .4s; }
.ed-video__btn:hover img { filter: none; transform: scale(1.02); }
.ed-video__play { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: var(--signal); box-shadow: 0 8px 24px rgba(21, 22, 23, .35); transition: transform .2s; }
.ed-video__play::after { content: ""; position: absolute; left: 26px; top: 20px; border: 12px solid transparent; border-left: 18px solid var(--graphite); border-right: 0; }
.ed-video__btn:hover .ed-video__play { transform: scale(1.08); }
.ed-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ed-card > .ed-video { margin: 0 -24px 6px; }
/* cards and link rows inside a dark section: full row, dark cards (D-158) */
.ed--dark .ed__parts > .ed-cards, .ed--dark .ed__parts > .ed-links, .ed--dark .ed__parts > .ed-terms { grid-column: 1 / -1; }
.ed-bg--dark .ed-card { --card-bg: rgba(243, 241, 236, .06); background: rgba(243, 241, 236, .06); border-top-color: var(--signal); color: var(--offwhite); }
.ed-bg--dark .ed-card .ed-text, .ed-bg--dark .ed-card .ed-text p, .ed-bg--dark .ed-card .ed-card__title, .ed-bg--dark .ed-card .ed-list__label { color: var(--offwhite); }
.ed-bg--dark .ed-card .ed-text p { color: #d6d2ca; }
@media (max-width: 719px) { .ed-card > .ed-video { margin-inline: -16px; } }
/* Sisukord band: no double gap before the first section; area cells beside a photo keep two columns (D-159) */
.toc-band + .blk { padding-top: 48px; }
.ed--media .ed-terms__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 719px) { .related__t { min-width: 0; overflow-wrap: anywhere; hyphens: auto; } }
.ed-cols__c > .ed-golink:last-child { margin-top: auto; }
/* pictures with a headline on them (D-163): shown whole, as large as the column allows, no zoom on hover (the zoom cut the words) */
.ed__media .ed-fig--photo_text { max-width: none; width: 100%; }
.ed-fig--photo_text img, .ed-fig--photo_text:hover img { transform: none !important; }
.ed-gallery .ed-fig--photo_text img { object-fit: contain; }
/* numbered list beside a photo: two columns */
.ed--media .ed-list--cards ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ed-card .ed-list--cards ul { grid-template-columns: 1fr; }
.ed--media .ed-list--cards li:last-child:nth-child(odd) { grid-column: 1 / -1; min-height: 0; }
/* steps whose count does not divide into rows (7, 11 …): the last row stretches, no holes (D-165) */
@media (min-width: 1200px) { .ed-steps--cfill { display: flex; flex-wrap: wrap; gap: 0 24px; } .ed-steps--cfill > li { flex: 1 1 calc(25% - 24px); min-width: 0; } }
@media (max-width: 479px) { .cta .h2-xl { overflow-wrap: anywhere; hyphens: auto; } .cta__text, .cta__actions { min-width: 0; } }
/* real tables and sample texts from the page (batch 7) */
.ed-table { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
.ed-table table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: 17px; line-height: 1.4; background: #fff; }
.ed-table th { text-align: left; font: 500 11px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--coal); padding: 14px 16px; border-bottom: 2px solid var(--signal); vertical-align: bottom; }
.ed-table td { padding: 14px 16px; border-bottom: 1px solid var(--warm); vertical-align: top; color: var(--graphite); }
.ed-table tr:last-child td { border-bottom: 0; }
.ed-table td:first-child { font-weight: 600; }
.ed-sample { background: #fff; border: 1px solid var(--warm); border-top: 3px solid var(--signal); padding: 28px 32px 30px; max-width: 760px; }
.ed-sample__t { margin: 0 0 16px; font-size: 26px; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; color: var(--graphite); }
.ed-sample__b { font-size: 17px; line-height: 1.55; color: var(--coal); }
.ed-sample__b p { margin: 0 0 10px; } .ed-sample__b p:last-child { margin: 0; }
@media (max-width: 479px) { .ed-sample { padding: 20px 18px 22px; } .ed-sample__t { font-size: 22px; } .ed-table table { font-size: 15.5px; } .ed-table th, .ed-table td { padding: 12px 12px; } }
.ed-sample__b ul { margin: 0 0 10px; padding-left: 20px; } .ed-sample__b li { margin: 0 0 4px; } .ed-sample__b li p { margin: 0; }
.ed--media .ed-sample { padding: 22px 22px 24px; }
.ed-terms__grid--4 > .ed-term:last-child:nth-child(4n+1), .ed-terms__grid:not([class*="--2"]):not([class*="--4"]) > .ed-term:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
@media (max-width: 479px) { .ed-list--cards ul { grid-template-columns: 1fr !important; } .ed-list--cards li { min-width: 0; overflow-wrap: anywhere; hyphens: auto; } }
/* T3 reception pages composed like T2 (D-172): hero buttons; on phones the fixed «Helista / Saada päring» bar is there instead */
.t3-hero__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
@media (max-width: 1199px) { .t3-hero__actions { display: none; } }
/* galleries whose count does not fill the rows (5, 6, 7 pictures): rows stretch, no empty cells (T3 pages, D-172) */
@media (min-width: 720px) {
  .ed-gallery--4 { display: flex; flex-wrap: wrap; }
  .ed-gallery--4 > .ed-fig { flex: 1 1 calc(25% - 14px); min-width: calc(25% - 14px); max-height: 320px; }
}
@media (min-width: 720px) {
  .ed-gallery--4 > :first-child:nth-last-child(5), .ed-gallery--4 > :first-child:nth-last-child(5) ~ *,
  .ed-gallery--4 > :first-child:nth-last-child(6), .ed-gallery--4 > :first-child:nth-last-child(6) ~ *,
  .ed-gallery--4 > :first-child:nth-last-child(9), .ed-gallery--4 > :first-child:nth-last-child(9) ~ * { flex-basis: calc(33.333% - 14px); min-width: calc(33.333% - 14px); }
}
/* numbered tiles: 4 or 8 items fill rows of 4 (no lone tile under a row of 3) */
@media (min-width: 1200px) { .ed:not(.ed--media) .ed-list--cards ul:has(> li:first-child:nth-last-child(4)), .ed:not(.ed--media) .ed-list--cards ul:has(> li:first-child:nth-last-child(8)) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 720px) and (max-width: 1199px) { .ed-list--cards ul:has(> li:first-child:nth-last-child(4)) { grid-template-columns: 1fr 1fr; } }
/* picture band (4+ pictures in a section): dark strip with orange edges, one line, scrolls by itself / swipes, loops (owner 2026-10-04) */
.ed-band { grid-column: 1 / -1; position: relative; margin-top: 40px; background: var(--deep); border-top: 3px solid var(--signal); border-bottom: 3px solid var(--signal); padding: 20px 0; }
.ed-band__track { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 0 20px; -webkit-overflow-scrolling: touch; }
.ed-band__track::-webkit-scrollbar { display: none; }
.ed-band__item { flex: 0 0 auto; height: 300px; margin: 0; scroll-snap-align: center; background: transparent; aspect-ratio: auto !important; }
.ed-band__item img { height: 100%; width: auto; max-width: none; object-fit: contain; display: block; }
.ed-band__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(21, 22, 23, .8); color: var(--offwhite); font-size: 26px; line-height: 1; cursor: pointer; }
.ed-band__nav:hover { background: var(--signal); color: var(--graphite); }
.ed-band__nav--prev { left: 10px; } .ed-band__nav--next { right: 10px; }
@media (max-width: 719px) { .ed-band { margin-top: 24px; padding: 14px 0; } .ed-band__item { height: 220px; } .ed-band__nav { display: none; } }
/* two pictures beside the text: a small collage also for pictures shown whole (posters, drawings) */
.ed__media--2 .ed-fig--0.ed-fig--photo_text { width: 78%; max-width: 380px; margin: 0; }
.ed__media--2 .ed-fig--1.ed-fig--photo_text { position: relative; width: 52%; max-width: 260px; margin: -22% 0 0 auto; outline: 10px solid var(--ed-bg, #fff); }
/* the bar at the bottom of the screen: the footer reserves its room — no light strip under the footer when the bar hides */
@media (max-width: 1199px) { body:has(> footer.fglobal) { padding-bottom: 0; } }
/* band = its own dark block (owner 2026-10-04): full width, orange edges, pictures centred when they fit */
.ed-bandblk { background: var(--deep); padding: 0; }
.ed-bandblk .ed-band { margin: 0; background: transparent; border: 0; border-top: 3px solid var(--signal); border-bottom: 3px solid var(--signal); padding: 36px 0; }
.ed-band__track { justify-content: safe center; padding: 0 var(--pad); }
@media (max-width: 719px) { .ed-bandblk .ed-band { padding: 20px 0; } }
/* pictures with a headline beside text: never huge */
.ed__media .ed-fig--photo_text { max-width: 380px; margin-inline: auto; }
.ed__media .ed-fig--photo_text img { width: auto; max-width: 100%; max-height: 320px; object-fit: contain; margin-inline: auto; display: block; }
.ed--steps .ed__media .ed-fig--photo_text img, .ed--cards .ed__media .ed-fig--photo_text img { max-height: 300px; }
.ed-band.is-static .ed-band__nav { display: none; }
.ed__media--3 .ed-fig--photo_text { position: static !important; transform: none !important; width: auto !important; margin: 0 auto 12px !important; outline: 0 !important; }
/* collage of two pictures with a headline: as large as a photo collage */
.ed__media--2 .ed-fig--photo_text { max-width: none !important; }
.ed__media--2 .ed-fig--0.ed-fig--photo_text { width: 80%; max-width: 460px !important; }
.ed__media--2 .ed-fig--1.ed-fig--photo_text { width: 58%; max-width: 340px !important; margin-top: -18% !important; }
.ed__media--2 .ed-fig--photo_text img { max-height: 420px; width: 100%; height: auto; }
/* phones: two pictures with a headline do not overlap — one under the other, each whole (owner 2026-10-05) */
@media (max-width: 719px) {
  .ed__media--2 .ed-fig.ed-fig--photo_text.ed-fig--photo_text { position: static !important; width: 100% !important; max-width: none !important; margin: 0 0 12px !important; outline: 0 !important; transform: none !important; }
  .ed__media--2:has(.ed-fig--photo_text) { display: block; height: auto !important; }
}
.ed-list li, .ed-card, .ed-term__d, .ed-text p { overflow-wrap: anywhere; }
/* the big footer word never widens the page on phones */
.fglobal__word { overflow: hidden; max-width: 100%; }
html, body { overflow-x: clip; }
@media (min-width: 1200px) { .ed-cards:has(> :first-child:nth-last-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (min-width: 1200px) { .ed-cards:has(> :first-child:nth-last-child(6)), .ed-cards:has(> :first-child:nth-last-child(9)) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
/* owner 2026-10-05: tiles readable — bigger text, less empty space */
.ed-list--cards li { font-size: 18px; line-height: 1.4; min-height: 0; padding: 18px 20px 20px; gap: 12px; }
@media (max-width: 599px) { .ed-list--cards li { font-size: 17px; } }
/* pictures with a headline never overlap (owner 2026-10-05): when two stay in one section they stand one under the other */
.ed__media--2 .ed-fig.ed-fig--photo_text.ed-fig--photo_text { position: static !important; width: 100% !important; max-width: 420px !important; margin: 0 auto 14px !important; outline: 0 !important; transform: none !important; }

/* card lists: one card size per row width — never a lone card stretched across the page, never a hole in the middle
   (owner 2026-10-05: «где-то огромные, где-то крохотульщики»). Cards keep their share of the row; a short last row sits left. */
.ed-list--cards ul { display: flex !important; flex-wrap: wrap; gap: 12px; }
.ed-list--cards li { flex: 0 0 calc((100% - 24px) / 3); max-width: calc((100% - 24px) / 3); grid-column: auto !important; }
@media (min-width: 1200px) {
  .ed:not(.ed--media) .ed-list--cards ul:has(> li:first-child:nth-last-child(4)) > li,
  .ed:not(.ed--media) .ed-list--cards ul:has(> li:first-child:nth-last-child(8)) > li { flex-basis: calc((100% - 36px) / 4); max-width: calc((100% - 36px) / 4); }
}
.ed--media .ed-list--cards li, .ed-list--cards ul:has(> li:first-child:nth-last-child(2)) > li { flex-basis: calc((100% - 12px) / 2); max-width: calc((100% - 12px) / 2); }
.ed-card .ed-list--cards li { flex-basis: 100%; max-width: 100%; }
@media (min-width: 720px) and (max-width: 1199px) { .ed-list--cards ul:has(> li:first-child:nth-last-child(4)) > li { flex-basis: calc((100% - 12px) / 2); max-width: calc((100% - 12px) / 2); } }
@media (max-width: 1023px) { .ed-list--cards li { flex-basis: calc((100% - 12px) / 2); max-width: calc((100% - 12px) / 2); } }
@media (max-width: 479px) { .ed-list--cards li, .ed--media .ed-list--cards li { flex-basis: 100%; max-width: 100%; } }
.ed-cols .ed-list--cards li { flex-basis: 100%; max-width: 100%; }
/* five cards: 3 + 2, the second row shares the full width (no hole) */
@media (min-width: 1024px) { .ed:not(.ed--media) .ed-list--cards ul:has(> li:first-child:nth-last-child(5)) > li:nth-child(n+4) { flex-basis: calc((100% - 12px) / 2); max-width: calc((100% - 12px) / 2); } }
.ed-cols .ed-list--cards ul > li { flex-basis: 100% !important; max-width: 100% !important; }
/* big headings: no word split on wide screens («Тал-линне», owner 2026-10-05); phones keep hyphenation so long words never overflow */
@media (min-width: 720px) { .t2-hero__h1, .t3-hero__h1, .ed__title, .h2-xl { hyphens: manual; -webkit-hyphens: manual; } }
.methods__lead { max-width: 62ch; margin-top: 16px; font-size: 18px; line-height: 1.5; color: var(--ink-2, inherit); }
.blk-head .methods__lead { grid-column: 4 / 12; margin-top: 0; }
@media (max-width: 719px) { .blk-head .methods__lead { grid-column: 1 / -1; } }
@media (min-width: 480px) { .ed-list--long.ed-list--cards ul > li, .ed:not(.ed--media) .ed-list--long.ed-list--cards ul > li { flex-basis: calc((100% - 12px) / 2) !important; max-width: calc((100% - 12px) / 2) !important; } }
.ed-cols .ed-list--long.ed-list--cards ul > li, .ed-card .ed-list--long.ed-list--cards ul > li { flex-basis: 100% !important; max-width: 100% !important; }

/* Owner 2026-10-06: no word breaks in the menu tiles («Арен-да», «Квартир-ным» were wrong). A label never hyphenates;
   a tile is at least as wide as its longest word (neighbours give way); the chevron sits in the corner instead of taking a column. */
.n3__label { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; word-break: normal; min-width: min-content; -webkit-line-clamp: 3; line-height: 1.1; }
.n3, .n3__btn { min-width: auto; }
.n3__btn { gap: 10px; padding: 0 24px 0 10px; }
.n3__chev { position: absolute; right: 10px; top: 50%; margin-top: -4px; }
@media (min-width: 1280px) and (max-width: 1439px) { .n3__btn { gap: 9px; padding: 0 21px 0 8px; } .n3__chev { right: 8px; } }
/* terms that are phrases, not values (owner 2026-10-06: «everything big and bold»): a heading size, not a figure size */
.ed-terms--long .ed-term__t { font-size: 18px; line-height: 1.25; letter-spacing: -.01em; }
.ed-terms--long .ed-term { gap: 8px; }
.t3-hero__h1--long { font-size: clamp(32px, 4.2vw, 60px); }
@media (max-width: 480px) { .t3-hero__h1--long { font-size: clamp(24px, 7.4vw, 32px); } }
/* short text beside one picture: a landscape picture, not a tall one (owner 2026-10-06) */
.ed--short .ed__media--1 .ed-fig { aspect-ratio: 16 / 10; }

/* ---------- T5 · Hinnakiri (design/approved/Ecology T5 Prices v2; T5a desktop, T5b mobile) ---------- */
.t5 .v { display: none; }
.t5[data-unit="01"][data-vat="n"] .v01n, .t5[data-unit="01"][data-vat="g"] .v01g,
.t5[data-unit="m3"][data-vat="n"] .vm3n, .t5[data-unit="m3"][data-vat="g"] .vm3g,
.t5[data-unit="nat"][data-vat="n"] .n-01 .v01n, .t5[data-unit="nat"][data-vat="g"] .n-01 .v01g,
.t5[data-unit="nat"][data-vat="n"] .n-m3 .vm3n, .t5[data-unit="nat"][data-vat="g"] .n-m3 .vm3g { display: inline; }
.t5[data-vat="g"] .km--n { visibility: hidden; }
.t5-amt { white-space: nowrap; }
.t5-amt small { font: 500 .55em var(--mono); letter-spacing: .02em; color: #5c5852; margin-left: 2px; }
.t5-label { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #5c5852; }
.t5-label--dark { color: var(--muted); }
.t5-hero { padding: 64px var(--pad) 40px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: end; }
.t5-hero .crumbs, .t5-hero .crumbs a { color: #5c5852; }
.t5-hero__main { grid-column: 1 / 8; display: flex; flex-direction: column; gap: 18px; }
.t5-hero__h1 { margin: 0; font-weight: 600; font-size: clamp(56px, 8.4vw, 132px); line-height: .88; letter-spacing: -.05em; text-wrap: balance; }
.t5-hero__h1--long { font-size: clamp(44px, 6vw, 96px); line-height: .92; }
.t5-hero__lead { margin: 0; font-size: 20px; line-height: 1.5; color: var(--iron); max-width: 620px; }
.t5-hero__side { grid-column: 9 / 13; display: flex; flex-direction: column; gap: 12px; }
.t5-seg { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--graphite); }
.t5-seg button { height: 52px; border: 0; background: transparent; color: var(--graphite); font-size: 15px; font-weight: 600; transition: background .2s; }
.t5-seg button.is-on { background: var(--graphite); color: var(--offwhite); }
.t5-km { margin: 0 var(--pad) 20px; border-top: 1px solid var(--graphite); border-bottom: 1px solid var(--graphite); padding: 14px 0;
  display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.t5-km__note { display: flex; align-items: center; gap: 12px; font-size: 16px; }
.t5-km__tag { font: 600 11px var(--mono); letter-spacing: .08em; background: var(--graphite); color: var(--offwhite); padding: 5px 8px; }
.t5-pills { display: flex; gap: 6px; }
.t5-pills button { height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(28, 29, 31, .3); background: transparent; color: var(--graphite); font-size: 14px; font-weight: 600; }
.t5-pills button.is-on { background: var(--graphite); border-color: var(--graphite); color: var(--offwhite); }
.t5-free { margin: 0 var(--pad); background: var(--signal); color: var(--graphite); padding: 28px 32px; display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: center; }
.t5-free__head { display: flex; flex-direction: column; gap: 4px; }
.t5-free__l { font: 600 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.t5-free__v { font-weight: 300; font-stretch: 62%; font-size: 84px; line-height: .85; }
.t5-free__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.t5-chip { min-height: 40px; padding: 8px 14px; border: 1px solid var(--graphite); border-radius: 999px; font-size: 15px; font-weight: 500; display: inline-flex; align-items: center; line-height: 1.25; }
.t5-chip:hover { background: var(--graphite); color: var(--offwhite); }
.t5-main { padding: 56px var(--pad) 88px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: start; }
.t5-groups { grid-column: 1 / 9; display: flex; flex-direction: column; gap: 40px; min-width: 0; }
.t5-groups__h { margin: 0; font-size: 40px; font-weight: 600; letter-spacing: -.03em; line-height: 1.05; }
.t5-g__head { list-style: none; display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 2px solid var(--graphite); padding-bottom: 12px; cursor: default; }
.t5-g__head::-webkit-details-marker { display: none; }
.t5-g__t { font-size: 30px; font-weight: 600; letter-spacing: -.025em; line-height: 1.1; }
.t5-g__n { margin-left: auto; font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #5c5852; white-space: nowrap; }
.t5-g__i { display: none; }
.t5-row { display: grid; grid-template-columns: 84px minmax(0, 1fr) 190px 170px; gap: 16px; align-items: center; padding: 18px 12px;
  border-bottom: 1px solid rgba(28, 29, 31, .18); transition: background .2s; cursor: pointer; scroll-margin-top: calc(var(--hdr-h) + 24px); }
.t5-row:hover { background: var(--stone); }
.t5-row.is-picked { background: #e3ded5; }
.t5-row:target { background: rgba(238, 90, 36, .12); }
.t5-row__id { font: 500 11px var(--mono); letter-spacing: .06em; color: var(--signal-text); }
.t5-row__name { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.t5-row__t { font-size: 19px; font-weight: 500; line-height: 1.3; }
.t5-row__t sup { color: var(--signal-text); font-size: .65em; margin-left: 2px; }
.t5-row__note { font-size: 14px; line-height: 1.45; color: #5c5852; }
.t5-row__p { text-align: right; font-size: 22px; font-weight: 600; letter-spacing: -.01em; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.t5-row__p .is-free, .t5-free-v { color: var(--signal-text); }
.t5-row__used { border: 0; background: none; padding: 0; text-align: right; font: 500 11px var(--mono); letter-spacing: .06em; text-transform: uppercase; color: #5c5852; }
.t5-row__used:hover { color: var(--signal-text); }
.t5-row__pages { grid-column: 2 / -1; margin: 0; padding: 12px 16px; list-style: none; background: var(--graphite); columns: 2; column-gap: 24px; }
.t5-row__pages li { padding: 5px 0; font-size: 14px; break-inside: avoid; }
.t5-row__pages a { color: var(--offwhite); }
.t5-row__pages a:hover { color: var(--signal-text); }
.t5-notes { display: flex; flex-direction: column; gap: 6px; font-size: 14px; line-height: 1.5; color: var(--iron); border-top: 1px solid rgba(28, 29, 31, .2); padding-top: 16px; }
.t5-notes p { margin: 0; }
.t5-aside { grid-column: 9 / 13; position: sticky; top: calc(var(--hdr-h) + 24px); background: var(--graphite); color: var(--offwhite); padding: 28px; display: flex; flex-direction: column; gap: 20px; }
.t5-aside__top { display: flex; justify-content: space-between; align-items: baseline; }
.t5-aside__id { font: 600 12px var(--mono); color: var(--signal-text); }
.t5-aside__name { font-size: 26px; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; }
.t5-amt--big { font-weight: 300; font-stretch: 62%; font-size: 72px; line-height: .9; color: var(--signal-text); }
.t5-amt--big small, .t5-amt--card small { color: var(--muted); font-size: 14px; }
.t5-aside__used { display: flex; flex-direction: column; gap: 10px; }
.t5-aside__used ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); }
.t5-aside__used li { border-bottom: 1px solid var(--line-dark); padding: 9px 0; font-size: 15px; line-height: 1.35; }
.t5-aside__used a:hover { color: var(--signal-text); }
.t5-aside__cta { justify-content: center; }
.t5-tr { background: var(--graphite); color: var(--offwhite); padding: 88px var(--pad); }
.t5-tr .eyebrow { color: var(--muted); }
.t5-tr h2 { margin: 0; font-weight: 600; font-size: clamp(36px, 4.4vw, 64px); line-height: .98; letter-spacing: -.04em; }
.t5-tr__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.t5-card { background: var(--coal); display: flex; flex-direction: column; }
.t5-card__ph { height: 220px; }
.t5-card__ph img { filter: grayscale(1) contrast(1.15) brightness(.85); }
.t5-card__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.t5-card__id { font: 500 11px var(--mono); letter-spacing: .08em; color: var(--signal-text); }
.t5-card__t { margin: 0; font-size: 26px; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; }
.t5-card__list { margin: 0; padding: 0 0 0 18px; color: var(--muted); font-size: 15px; line-height: 1.5; }
.t5-card__list li { margin: 2px 0; }
.t5-card__big { margin-top: auto; padding-top: 8px; }
.t5-amt--card { font-weight: 300; font-stretch: 62%; font-size: 60px; line-height: .9; }
.t5-card__more { font: 500 11px var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.t5-card__more:hover { color: var(--signal-text); }
.t5-ask { padding: 64px var(--pad); display: flex; justify-content: space-between; align-items: center; gap: 24px; border-bottom: 1px solid rgba(28, 29, 31, .2); }
.t5-ask__t { font-size: 36px; font-weight: 600; letter-spacing: -.03em; max-width: 760px; line-height: 1.1; }
@media (max-width: 1199px) {
  .t5-hero__main { grid-column: 1 / -1; } .t5-hero__side { grid-column: 1 / -1; max-width: 520px; }
  .t5-groups { grid-column: 1 / -1; } .t5-aside { display: none; }
  .t5-row { grid-template-columns: 70px minmax(0, 1fr) 170px; } .t5-row__used { grid-column: 2 / -1; text-align: left; }
  .t5-tr__cards { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 719px) {
  .t5-hero { padding: 28px var(--pad) 20px; } .t5-hero__lead { font-size: 16px; }
  .t5-seg button { height: 48px; font-size: 14px; }
  .t5-km { margin: 0 var(--pad) 16px; } .t5-km__note { font-size: 14px; } .t5-pills { width: 100%; } .t5-pills button { flex: 1; height: 44px; }
  .t5-free { margin: 0; grid-template-columns: 1fr; padding: 20px var(--pad); gap: 12px; }
  .t5-free__head { flex-direction: row; justify-content: space-between; align-items: flex-end; } .t5-free__v { font-size: 56px; }
  .t5-chip { font-size: 14px; min-height: 34px; padding: 6px 12px; }
  .t5-main { padding: 20px var(--pad) 48px; } .t5-groups { gap: 0; } .t5-groups__h { font-size: 28px; margin-bottom: 16px; }
  .t5-g { border-bottom: 1px solid var(--graphite); }
  .t5-g__head { border: 0; padding: 18px 0; align-items: center; cursor: pointer; min-height: 64px; }
  .t5-g__t { font-size: 21px; } .t5-g__n { font-size: 10px; }
  .t5-g__i { display: flex; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 50%; background: var(--stone); align-items: center; justify-content: center; font-size: 20px; font-weight: 300; transition: transform .35s, background .3s; }
  .t5-g[open] .t5-g__i { transform: rotate(45deg); background: var(--graphite); color: var(--offwhite); }
  .t5-row { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 14px 0; border-bottom: 0; border-top: 1px solid rgba(28, 29, 31, .14); }
  .t5-row__id { order: 3; grid-column: 1; font-size: 10px; color: #8c8780; }
  .t5-row__name { grid-column: 1; grid-row: 1; } .t5-row__t { font-size: 16px; } .t5-row__note { font-size: 13px; }
  .t5-row__p { grid-column: 2; grid-row: 1; font-size: 17px; }
  .t5-row__used { order: 4; grid-column: 2; font-size: 10px; text-align: right; }
  .t5-row__pages { grid-column: 1 / -1; order: 5; columns: 1; }
  .t5-notes { margin-top: 16px; font-size: 13px; }
  .t5-tr { padding: 40px var(--pad); } .t5-tr__cards { grid-template-columns: 1fr; gap: 16px; } .t5-card__ph { height: 180px; } .t5-amt--card { font-size: 48px; }
  .t5-ask { flex-direction: column; align-items: flex-start; padding: 40px var(--pad); } .t5-ask__t { font-size: 26px; }
}

/* ---------- T1 · Section landing (design/approved/Ecology T1 Section Landing v2; T1a desktop, T1b mobile) ---------- */
.t1-hero { position: relative; min-height: 540px; background: var(--graphite); color: var(--offwhite); overflow: hidden; display: flex; align-items: flex-end; }
.t1-hero__ph { position: absolute; inset: 0; }
.t1-hero__ph img { filter: grayscale(1) contrast(1.15) brightness(.78); }
.t1-hero__ph::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(21, 22, 23, .5), rgba(21, 22, 23, .92)); }
.t1-hero__in { position: relative; width: 100%; padding: 120px var(--pad) 56px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: end; }
.t1-hero__main { grid-column: 1 / 9; display: flex; flex-direction: column; gap: 22px; }
.t1-hero__h1 { margin: 0; font-weight: 600; font-size: clamp(40px, 8.6vw, 132px); line-height: .9; letter-spacing: -.045em; text-wrap: balance; }
.t1-hero__h1--long { font-size: clamp(32px, 6.4vw, 96px); line-height: .94; }
@media (max-width: 480px) { .t1-hero__h1--long { font-size: clamp(28px, 9vw, 44px); } }
.t1-hero__lead { margin: 0; font-size: 21px; line-height: 1.45; color: var(--stone); max-width: 640px; }
.t1-stats { grid-column: 10 / 13; margin: 0; border-top: 1px solid rgba(243, 241, 236, .25); }
.t1-stats div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 14px 0; border-bottom: 1px solid rgba(243, 241, 236, .25); }
.t1-stats dt { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--warm); }
.t1-stats dd { margin: 0; font-size: 20px; font-weight: 600; text-align: right; }
.t1-bar { margin: 72px var(--pad) 0; display: flex; justify-content: space-between; align-items: center; gap: 24px; border-bottom: 1px solid var(--graphite); padding-bottom: 20px; }
.t1-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.t1-chips button { height: 42px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(28, 29, 31, .3); background: transparent; color: var(--graphite); font-size: 15px; font-weight: 500; display: flex; gap: 8px; align-items: center; transition: background .2s; }
.t1-chips button span { font: 500 11px var(--mono); opacity: .6; }
.t1-chips button.is-on { background: var(--graphite); border-color: var(--graphite); color: var(--offwhite); }
.t1-count { font: 500 12px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #5c5852; white-space: nowrap; }
.t1-feat { padding: 48px var(--pad) 0; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px; }
.t1-fc { display: flex; flex-direction: column; gap: 18px; color: var(--graphite); }
.t1-fc:hover { color: var(--graphite); }
.t1-fc__ph { height: 420px; }
.t1-fc:nth-child(2) .t1-fc__ph { height: 340px; }
.t1-fc__ph img { filter: grayscale(1) contrast(1.15) brightness(.9); }
.t1-fc__price { position: absolute; left: 20px; top: 20px; font: 600 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; background: var(--offwhite); color: var(--graphite); padding: 6px 10px; }
.t1-fc__price.is-free { background: var(--signal); }
.t1-fc__row { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 16px; align-items: baseline; }
.t1-fc__n { font-weight: 200; font-stretch: 62%; font-size: 64px; line-height: .8; }
.t1-fc__txt { display: flex; flex-direction: column; gap: 6px; }
.t1-fc__t { font-size: 34px; font-weight: 600; letter-spacing: -.03em; line-height: 1.05; }
.t1-fc:hover .t1-fc__t { color: var(--signal-text); }
.t1-fc__d { font-size: 16px; line-height: 1.5; color: var(--iron); }
.t1-fc__arr { font-size: 24px; }
.t1-list { padding: 64px var(--pad) 88px; }
.t1-list:first-child, .t1-list { border-top: 0; }
.t1-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid rgba(28, 29, 31, .2);
  color: var(--graphite); transition: padding .3s cubic-bezier(.2, .7, .2, 1), color .2s; }
.t1-row:first-child { border-top: 1px solid var(--graphite); }
.t1-row:hover { padding-left: 18px; color: var(--signal-text); }
.t1-row__n { grid-column: 1 / 2; font: 500 12px var(--mono); letter-spacing: .08em; color: #5c5852; }
.t1-row__t { grid-column: 2 / 7; font-size: 30px; font-weight: 500; letter-spacing: -.025em; line-height: 1.15; }
.t1-row__d { grid-column: 7 / 10; font-size: 15px; line-height: 1.45; color: var(--iron); }
.t1-row__p { grid-column: 10 / 12; display: flex; flex-direction: column; gap: 2px; align-items: flex-start; font-size: 16px; font-weight: 600; color: var(--graphite); white-space: nowrap; }
.t1-row__p .is-free { color: var(--signal-text); }
.t1-row__p small { font: 500 10px var(--mono); letter-spacing: .08em; color: var(--concrete); }
.t1-row__arr { grid-column: 12 / 13; justify-self: end; font-size: 22px; }
.t1-cta { background: var(--graphite); color: var(--offwhite); padding: 72px var(--pad); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: end; }
.t1-cta__t { grid-column: 1 / 8; display: flex; flex-direction: column; gap: 16px; }
.t1-cta__k { font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--signal-text); }
.t1-cta h2 { margin: 0; font-weight: 600; font-size: clamp(34px, 4.4vw, 64px); line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
.t1-cta__a { grid-column: 9 / 13; display: flex; flex-direction: column; gap: 10px; }
.t1-cta__b { height: 60px; border: 1px solid rgba(243, 241, 236, .4); display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 24px; font-weight: 500; font-size: 17px; color: var(--offwhite); }
.t1-cta__b--signal { background: var(--signal); border-color: var(--signal); color: var(--graphite); font-weight: 600; }
.t1-cta__b--signal:hover { background: var(--offwhite); border-color: var(--offwhite); color: var(--graphite); }
@media (max-width: 1199px) {
  .t1-hero__main { grid-column: 1 / -1; } .t1-stats { grid-column: 1 / -1; max-width: 480px; }
  .t1-row__t { grid-column: 2 / 8; font-size: 24px; } .t1-row__d { grid-column: 2 / 10; grid-row: 2; } .t1-row__p { grid-column: 8 / 12; }
  .t1-cta__t, .t1-cta__a { grid-column: 1 / -1; }
}
@media (max-width: 719px) {
  .t1-hero { min-height: 0; } .t1-hero__in { padding: 160px var(--pad) 28px; gap: 20px; } .t1-hero__lead { font-size: 16px; }
  .t1-stats dd { font-size: 16px; }
  .t1-bar { margin: 28px var(--pad) 0; flex-direction: column; align-items: flex-start; gap: 12px; padding-bottom: 14px; }
  .t1-chips { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; padding-bottom: 4px; scrollbar-width: none; }
  .t1-chips button { height: 40px; padding: 0 14px; font-size: 14px; flex: 0 0 auto; }
  .t1-feat { padding: 24px var(--pad) 0; grid-template-columns: 1fr; gap: 28px; }
  .t1-fc__ph, .t1-fc:nth-child(2) .t1-fc__ph { height: 220px; } .t1-fc__row { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; }
  .t1-fc__n { font-size: 40px; } .t1-fc__t { font-size: 24px; } .t1-fc__d { font-size: 14px; }
  .t1-list { padding: 28px var(--pad) 48px; }
  .t1-row { grid-template-columns: 32px minmax(0, 1fr) auto; gap: 4px 10px; padding: 16px 0; }
  .t1-row:hover { padding-left: 0; }
  .t1-row__n { grid-column: 1; grid-row: 1; } .t1-row__t { grid-column: 2; grid-row: 1; font-size: 18px; }
  .t1-row__d { grid-column: 2 / 4; grid-row: 2; font-size: 13px; } .t1-row__p { grid-column: 2; grid-row: 3; flex-direction: row; gap: 8px; align-items: baseline; font-size: 14px; }
  .t1-row__arr { grid-column: 3; grid-row: 1; font-size: 18px; }
  .t1-cta { padding: 40px var(--pad); } .t1-cta__b { height: 56px; font-size: 16px; padding: 0 18px; }
}
/* no lone card (owner: no holes): three compare cards → three columns; an odd last step in two columns → full width (2026-10-07) */
.ed-compare:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ed-steps--c2 > .ed-step:last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (max-width: 899px) { .ed-compare:has(> :nth-child(3):last-child) { grid-template-columns: 1fr; } }
/* T1 featured cards and T5 transport cards: the same hover as content photos — grayscale → colour (owner 2026-10-07) */
@media (hover: hover) and (pointer: fine) {
  .t1-fc__ph img, .t5-card__ph img { transition: filter .7s ease, transform 1.2s ease; }
  .t1-fc:hover .t1-fc__ph img, .t5-card:hover .t5-card__ph img { filter: grayscale(0) contrast(1) brightness(1); transform: scale(1.025); }
}

/* ---------- T4 · Article (design/approved/Ecology T4 Article v2; T4a desktop, T4b mobile) ---------- */
.t4-progress { position: fixed; left: 0; right: 0; top: var(--hdr-h); height: 3px; background: transparent; z-index: 30; pointer-events: none; }
.t4-progress span { display: block; height: 3px; width: 0; background: var(--signal); }
@media (min-width: 1200px) { .t4-progress { display: none; } }
.t4-head { padding: 72px var(--pad) 48px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.t4-head .crumbs { grid-column: 1 / -1; color: #5c5852; } .t4-head .crumbs a { color: #5c5852; }
.t4-head__h1 { grid-column: 1 / 11; margin: 12px 0 0; font-weight: 600; font-size: clamp(40px, 6.6vw, 96px); line-height: .93; letter-spacing: -.045em; text-wrap: balance; }
.t4-head__dek { grid-column: 1 / 8; margin: 8px 0 0; font-size: 22px; line-height: 1.5; color: var(--iron); text-wrap: pretty; }
.t4-head__meta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 12px 40px; border-top: 1px solid var(--graphite); margin-top: 24px; padding-top: 16px;
  font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #5c5852; }
.t4-head__ref { margin-left: auto; color: var(--signal-text); }
.t4-cover { margin: 0 var(--pad); display: flex; flex-direction: column; gap: 10px; }
.t4-cover__ph { height: clamp(240px, 36vw, 520px); }
.t4-cover__ph img { filter: grayscale(1) contrast(1.15) brightness(.9); }
.t4-cover figcaption, .t4-fig figcaption { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #5c5852; }
.t4-body { padding: 72px var(--pad) 88px; display: grid; grid-template-columns: 260px minmax(0, 680px) minmax(0, 1fr); gap: 64px; }
.t4-toc { align-self: start; position: sticky; top: calc(var(--hdr-h) + 24px); border-top: 1px solid var(--graphite); display: flex; flex-direction: column; }
.t4-toc:empty { border: 0; }
.t4-toc__k { font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #5c5852; padding: 14px 0; }
.t4-toc a { display: grid; grid-template-columns: 32px minmax(0, 1fr); padding: 10px 0; border-top: 1px solid rgba(28, 29, 31, .14); font-size: 15px; line-height: 1.35; color: #5c5852; }
.t4-toc a span:first-child { font: 500 11px var(--mono); color: var(--concrete); padding-top: 2px; }
.t4-toc a.is-on, .t4-toc a:hover { color: var(--graphite); } .t4-toc a.is-on span:first-child { color: var(--signal-text); }
.t4-art { display: flex; flex-direction: column; gap: 56px; font-size: 19px; line-height: 1.65; color: var(--coal); text-wrap: pretty; min-width: 0; }
.t4-sec { display: flex; flex-direction: column; gap: 22px; scroll-margin-top: calc(var(--hdr-h) + 24px); }
.t4-h2 { margin: 0; font-size: 36px; font-weight: 600; letter-spacing: -.03em; line-height: 1.1; color: var(--graphite); text-wrap: balance; }
.t4-h2__n { display: block; margin-bottom: 10px; font: 500 13px var(--mono); letter-spacing: .08em; color: var(--signal-text); }
.t4-art p { margin: 0; } .t4-art .ed-lead { font-size: 22px; line-height: 1.5; color: var(--graphite); }
.t4-art a:not(.ed-golink) { color: var(--graphite); border-bottom: 2px solid var(--signal); } .t4-art a:not(.ed-golink):hover { color: var(--signal-text); }
.t4-art .ed-list, .t4-art ul { font-size: inherit; }
.t4-art .ed-callout { margin: 8px 0; background: var(--graphite); color: var(--offwhite); border: 0; padding: 28px 32px; font-size: 24px; font-weight: 500; line-height: 1.3; letter-spacing: -.02em; }
.t4-art .ed-callout a { color: var(--offwhite); }
.t4-art .ed-quote { margin: 16px 0 0; border: 0; padding: 0; } .t4-art .ed-quote p { font-size: 32px; font-weight: 500; line-height: 1.15; letter-spacing: -.025em; color: var(--graphite); }
.t4-art .ed-quote p::before { content: "“"; color: var(--signal-text); }
.t4-art .ed-table table { font-size: 16px; line-height: 1.45; }
.t4-art .ed-cards--n3, .t4-art .ed-cards--n4, .t4-art .ed-terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.t4-art .ed-steps { grid-template-columns: 1fr; }
.t4-art .ed-wide { margin-inline: 0; }
.t4-fig { margin: 0; display: flex; flex-direction: column; gap: 10px; }
/* article pictures are never cropped (owner 2026-10-07: «Kuhu viia madrats?» lost its title) — whole picture, natural proportions */
.t4-fig, .t4-fig.ed-fig--photo { aspect-ratio: auto !important; height: auto; }
.t4-fig img, .t4-fig picture { position: static !important; display: block; width: 100%; height: auto !important; max-height: none; object-fit: contain !important; }
.t4-fig.ed-fig--photo_text img, .t4-fig.ed-fig--illustration img { max-width: 420px; height: auto; }
.t4-side { align-self: start; position: sticky; top: calc(var(--hdr-h) + 24px); display: flex; flex-direction: column; gap: 16px; }
.t4-price { background: var(--signal); color: var(--graphite); padding: 24px; display: flex; flex-direction: column; gap: 6px; }
.t4-price__l { font: 600 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.t4-price__v { font-weight: 300; font-stretch: 62%; font-size: 72px; line-height: .9; }
.t4-price__ref { font: 500 10px var(--mono); letter-spacing: .08em; }
.t4-ask { border: 1px solid var(--graphite); padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.t4-ask > span { font-size: 19px; font-weight: 600; line-height: 1.2; }
.t4-ask a { height: 48px; background: var(--graphite); color: var(--offwhite); display: flex; align-items: center; justify-content: space-between; padding: 0 16px; font-weight: 600; font-size: 15px; }
.t4-ask a:hover { background: var(--signal); color: var(--graphite); }
.t4-more { background: var(--stone); padding: 72px var(--pad); }
.t4-more__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 24px; font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #5c5852; }
.t4-more__head a { color: var(--graphite); } .t4-more__head a:hover { color: var(--signal-text); }
.t4-more__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.t4-mc { display: flex; flex-direction: column; gap: 14px; color: var(--graphite); }
.t4-mc:hover { color: var(--signal-text); }
.t4-mc__ph { height: 220px; }
.t4-mc__ph img { filter: grayscale(1) contrast(1.15) brightness(.9); transition: filter .7s ease, transform 1.2s ease; }
@media (hover: hover) and (pointer: fine) { .t4-mc:hover .t4-mc__ph img { filter: grayscale(0) contrast(1) brightness(1); transform: scale(1.025); } }
.t4-mc__tag { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #5c5852; }
.t4-mc__t { font-size: 26px; font-weight: 500; letter-spacing: -.025em; line-height: 1.15; }
.tpl-t4 .toc-float { display: none; }
@media (max-width: 1199px) {
  .tpl-t4 .toc-float { display: block; }
  .t4-body { grid-template-columns: minmax(0, 1fr); gap: 40px; max-width: 760px; }
  .t4-toc { display: none; } .t4-side { position: static; flex-direction: row; flex-wrap: wrap; } .t4-price, .t4-ask { flex: 1 1 260px; }
  .t4-head__h1 { grid-column: 1 / -1; } .t4-head__dek { grid-column: 1 / -1; }
}
@media (max-width: 719px) {
  .t4-head { padding: 28px var(--pad) 20px; gap: 14px; } .t4-head__dek { font-size: 17px; }
  .t4-head__meta { gap: 8px 16px; margin-top: 8px; font-size: 10px; } .t4-head__ref { margin-left: 0; }
  .t4-cover { margin: 0; } .t4-cover figcaption { padding: 0 var(--pad); }
  .t4-body { padding: 32px var(--pad) 48px; } .t4-art { font-size: 17px; gap: 40px; } .t4-h2 { font-size: 27px; }
  .t4-art .ed-callout { font-size: 19px; padding: 20px; } .t4-art .ed-quote p { font-size: 24px; }
  .t4-art .ed-cards--n3, .t4-art .ed-cards--n4, .t4-art .ed-terms { grid-template-columns: 1fr; }
  .t4-price__v { font-size: 56px; }
  .t4-more { padding: 40px var(--pad); } .t4-more__grid { grid-template-columns: 1fr; } .t4-mc__ph { height: 180px; } .t4-mc__t { font-size: 21px; }
}
.t4-sec p + p { margin-top: 16px; }
.t4-sec .ed-step p + p { margin-top: 10px; }
@media (max-width: 480px) { .t4-head__h1--long { font-size: clamp(28px, 9vw, 40px); } }

/* ---------- Homepage (design/approved/Ecology Homepage v5; 5a desktop, 5b mobile) ---------- */
.hm-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; margin-bottom: 56px; }
.hm-head .eyebrow { grid-column: 1 / 4; padding-top: 14px; }
.hm-head h2 { grid-column: 4 / 12; margin: 0; font-weight: 600; font-size: clamp(36px, 4.6vw, 68px); line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
.hm-num { font-weight: 200; font-stretch: 62%; font-size: clamp(64px, 7vw, 104px); line-height: .8; }
.hm-tags { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #5c5852; }
.hm-link { align-self: flex-start; font-weight: 600; font-size: 15px; border-bottom: 2px solid var(--signal); padding-bottom: 2px; }
.hm-hero { position: relative; background: var(--graphite); color: var(--offwhite); overflow: hidden; min-height: min(860px, calc(100vh - var(--hdr-h))); display: flex; align-items: flex-end; }
.hm-hero__bg { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease; }
.hm-hero__bg.is-on { opacity: 1; }
.hm-hero__bg img, .hm-hero__bg picture { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.15) brightness(.72); }
.hm-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(21, 22, 23, .45) 0%, rgba(21, 22, 23, .55) 45%, rgba(21, 22, 23, .93) 100%); }
.hm-hero__in { position: relative; width: 100%; padding: 120px var(--pad) 0; display: flex; flex-direction: column; gap: 28px; }
.hm-hero__kick { display: flex; flex-wrap: wrap; gap: 8px 22px; font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--warm); }
.hm-hero__h1 { margin: 0; font-weight: 600; font-size: clamp(44px, 8.2vw, 132px); line-height: .9; letter-spacing: -.05em; }
.hm-hero__row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: end; }
.hm-hero__left { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 24px; }
.hm-hero__lead { margin: 0; font-size: 21px; line-height: 1.45; color: var(--stone); max-width: 560px; }
.hm-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.hm-hero__card { grid-column: 9 / 13; position: relative; min-height: 170px; }
.hm-cat { position: absolute; inset: auto 0 0 0; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--signal); padding-top: 14px; opacity: 0; transform: translateY(8px); transition: opacity .6s ease, transform .6s ease; pointer-events: none; }
.hm-cat.is-on { opacity: 1; transform: none; pointer-events: auto; position: relative; }
.hm-cat__k { font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--signal-text); }
.hm-cat p { margin: 0; font-size: 16px; line-height: 1.5; color: var(--stone); }
.hm-cat a { font-weight: 600; font-size: 15px; }
.hm-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(243, 241, 236, .2); margin-top: 8px; }
.hm-tab { position: relative; display: flex; align-items: baseline; gap: 14px; padding: 22px 0 26px; background: none; border: 0; color: rgba(243, 241, 236, .55); text-align: left; font-size: 22px; font-weight: 500; }
.hm-tab:hover, .hm-tab.is-on { color: var(--offwhite); }
.hm-tab__n { font: 500 12px var(--mono); color: var(--signal-text); }
.hm-tab__bar { position: absolute; left: 0; right: 24px; top: -1px; height: 2px; background: transparent; }
.hm-tab__bar span { display: block; height: 2px; width: 0; background: var(--signal); }
.hm-tab.is-on .hm-tab__bar span { width: 100%; }
.hm-tab.is-run .hm-tab__bar span { animation: hm-fill 6.5s linear; }
@keyframes hm-fill { from { width: 0; } to { width: 100%; } }
.hm-strip { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; padding: 18px var(--pad); background: var(--deep); color: var(--muted); font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.hm-srv { padding: 96px var(--pad) 88px; }
.hm-srv__row { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px; align-items: center; margin-bottom: 72px; }
.hm-srv__row--rev { grid-template-columns: minmax(0, .9fr) minmax(0, 1.5fr); margin-bottom: 0; }
.hm-srv__ph { height: 520px; }
.hm-srv__ph img { filter: grayscale(1) contrast(1.15) brightness(.9); transition: filter .7s ease, transform 1.2s ease; }
.hm-srv__txt { display: flex; flex-direction: column; gap: 14px; max-width: 420px; }
.hm-srv__txt h3 { margin: 0; font-size: 36px; font-weight: 600; letter-spacing: -.03em; line-height: 1.05; }
.hm-srv__txt p { margin: 0; font-size: 17px; line-height: 1.55; color: var(--iron); }
.hm-srv__duo { position: relative; padding: 0 0 100px 140px; }
.hm-srv__ph--a { height: 440px; } .hm-srv__ph--b { position: absolute; left: 0; bottom: 30px; width: 44%; height: 220px; outline: 10px solid var(--offwhite); }
.hm-srv__note { position: absolute; right: 0; bottom: 0; font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #5c5852; }
.hm-big { position: relative; min-height: 620px; background: var(--graphite); color: var(--offwhite); display: flex; align-items: flex-end; overflow: hidden; }
.hm-big__ph { position: absolute; inset: 0; } .hm-big__ph img { filter: grayscale(1) contrast(1.15) brightness(.7); }
.hm-big__ph::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(21, 22, 23, .92) 0%, rgba(21, 22, 23, .55) 50%, rgba(21, 22, 23, .15) 100%); }
.hm-big__in { position: relative; padding: 88px var(--pad); max-width: 720px; display: flex; flex-direction: column; gap: 18px; }
.hm-big__in h3 { margin: 0; font-size: clamp(36px, 4vw, 56px); font-weight: 600; line-height: 1; letter-spacing: -.035em; }
.hm-big__in p { margin: 0; font-size: 18px; line-height: 1.55; color: var(--stone); }
.hm-big__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.hm-big__tags { position: absolute; right: var(--pad); bottom: 32px; display: flex; gap: 20px; font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.hm-mats { padding: 96px var(--pad); background: var(--stone); }
.hm-mats__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; align-items: stretch; }
.hm-mats__ph { position: relative; min-height: 520px; }
.hm-mats__img { position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease; }
.hm-mats__img.is-on { opacity: 1; }
.hm-mats__img img { filter: grayscale(1) contrast(1.15) brightness(.82); }
.hm-mats__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px; display: flex; flex-direction: column; gap: 6px; color: var(--offwhite); background: linear-gradient(180deg, transparent, rgba(21, 22, 23, .8)); }
.hm-mats__spec { font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--signal-text); }
.hm-mats__k { font-size: clamp(48px, 6vw, 88px); font-weight: 600; letter-spacing: -.045em; line-height: .9; }
.hm-mats__list { display: flex; flex-direction: column; border-top: 1px solid var(--graphite); }
.hm-mat { display: flex; flex-direction: column; gap: 6px; padding: 18px 0; border-bottom: 1px solid rgba(28, 29, 31, .2); color: rgba(28, 29, 31, .5); transition: color .3s; }
.hm-mat.is-on, .hm-mat:hover { color: var(--graphite); }
.hm-mat__top { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: baseline; gap: 12px; font-size: 26px; font-weight: 600; letter-spacing: -.02em; }
.hm-mat__n { font: 500 11px var(--mono); color: var(--signal-text); }
.hm-mat__d { display: block; max-height: 0; overflow: hidden; padding-left: 56px; font-size: 15px; line-height: 1.5; color: var(--iron); transition: max-height .5s ease; }
.hm-mat.is-on .hm-mat__d { max-height: 120px; }
.hm-free { padding: 96px var(--pad); background: var(--graphite); color: var(--offwhite); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.hm-free__head { grid-column: 1 / 5; display: flex; flex-direction: column; gap: 16px; }
.hm-free__head h2 { margin: 0; font-weight: 600; font-size: clamp(34px, 3.6vw, 56px); line-height: 1; letter-spacing: -.04em; }
.hm-free__head p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.5; }
.hm-free__grid { grid-column: 6 / 13; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.hm-fr { display: flex; flex-direction: column; gap: 6px; padding: 20px 0; border-top: 1px solid var(--line-dark); color: var(--offwhite); }
.hm-fr:hover { color: var(--signal-text); }
.hm-fr__top { display: flex; justify-content: space-between; align-items: center; }
.hm-fr__n { font: 500 11px var(--mono); color: var(--muted); }
.hm-fr__tag { font: 600 10px var(--mono); letter-spacing: .08em; text-transform: uppercase; background: var(--signal); color: var(--graphite); padding: 3px 7px; }
.hm-fr__t { font-size: 18px; font-weight: 600; line-height: 1.25; }
.hm-fr__d { font-size: 14px; line-height: 1.5; color: var(--muted); }
.hm-more { padding: 88px var(--pad); }
.hm-more__head { display: flex; justify-content: space-between; padding-bottom: 16px; border-bottom: 1px solid var(--graphite); font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #5c5852; }
.hm-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid rgba(28, 29, 31, .2); transition: padding .3s cubic-bezier(.2, .7, .2, 1), color .2s; }
.hm-row:hover { padding-left: 24px; color: var(--signal-text); }
.hm-row__n { grid-column: 1 / 2; font: 500 12px var(--mono); color: #5c5852; }
.hm-row__t { grid-column: 2 / 8; font-size: 30px; font-weight: 500; letter-spacing: -.025em; }
.hm-row__d { grid-column: 8 / 12; font-size: 15px; color: var(--iron); }
.hm-row > span:last-child { grid-column: 12 / 13; justify-self: end; font-size: 22px; }
.hm-steps { padding: 96px var(--pad); background: var(--graphite); color: var(--offwhite); }
.hm-head--dark .eyebrow { color: var(--muted); }
.hm-steps__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.hm-step { display: flex; flex-direction: column; gap: 12px; border-top: 1px solid var(--signal); padding-top: 20px; }
.hm-step__n { font-weight: 200; font-stretch: 62%; font-size: 64px; line-height: .8; color: var(--signal-text); }
.hm-step__t { font-size: 22px; font-weight: 600; line-height: 1.2; }
.hm-step__d { font-size: 15px; line-height: 1.5; color: var(--muted); }
.hm-pros { padding: 96px var(--pad); }
.hm-pros__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.hm-pros__txt { display: flex; flex-direction: column; gap: 20px; }
.hm-pros__txt h2 { margin: 0; font-weight: 600; font-size: clamp(34px, 3.8vw, 56px); line-height: 1; letter-spacing: -.04em; }
.hm-pros__list { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; border-top: 1px solid var(--graphite); padding-top: 20px; }
.hm-pros__list div { display: flex; flex-direction: column; gap: 4px; }
.hm-pros__t { font-weight: 600; font-size: 18px; } .hm-pros__d { font-size: 15px; line-height: 1.5; color: var(--iron); }
.hm-pros__ph { height: 520px; } .hm-pros__ph img { filter: grayscale(1) contrast(1.15) brightness(.9); }
.hm-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 64px; border-top: 1px solid var(--graphite); }
.hm-nums div { display: flex; flex-direction: column; gap: 8px; padding-top: 20px; }
.hm-nums__v { font-weight: 300; font-stretch: 62%; font-size: clamp(56px, 6vw, 96px); line-height: .85; text-transform: none; }
.hm-nums__l { font-size: 15px; color: var(--iron); max-width: 260px; }
.hm-ask { background: var(--signal); color: var(--graphite); padding: 80px var(--pad); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: end; }
.hm-ask__txt { grid-column: 1 / 8; display: flex; flex-direction: column; gap: 14px; }
.hm-ask__txt .eyebrow.signal { color: var(--graphite); }
.hm-ask__txt h2 { margin: 0; font-weight: 600; font-size: clamp(48px, 6vw, 96px); line-height: .9; letter-spacing: -.05em; }
.hm-ask__txt h2 .signal { color: var(--offwhite); }
.hm-ask__txt p { margin: 0; font-size: 18px; line-height: 1.5; max-width: 560px; }
.hm-ask__act { grid-column: 9 / 13; display: flex; flex-direction: column; gap: 10px; }
.hm-ask .t1-cta__b { color: var(--graphite); border-color: rgba(28, 29, 31, .45); }
.hm-ask .t1-cta__b--signal { background: var(--graphite); border-color: var(--graphite); color: var(--offwhite); }
.hm-ask .t1-cta__b--signal:hover { background: var(--offwhite); color: var(--graphite); }
.hm-ask__h { font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.hm-faq { padding: 96px var(--pad); }
.hm-faq__list { border-top: 1px solid var(--graphite); max-width: 980px; margin-left: calc(25% + 6px); }
.hm-q { border-bottom: 1px solid rgba(28, 29, 31, .2); }
.hm-q summary { list-style: none; display: grid; grid-template-columns: 48px minmax(0, 1fr) 36px; gap: 12px; align-items: center; padding: 22px 0; cursor: pointer; font-size: 22px; font-weight: 600; letter-spacing: -.015em; }
.hm-q summary::-webkit-details-marker { display: none; }
.hm-q__n { font: 500 11px var(--mono); color: var(--signal-text); }
.hm-q__i { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(28, 29, 31, .3); display: flex; align-items: center; justify-content: center; font-weight: 300; transition: transform .3s; }
.hm-q[open] .hm-q__i { transform: rotate(45deg); background: var(--graphite); color: var(--offwhite); }
.hm-q p { margin: 0 0 22px 60px; font-size: 17px; line-height: 1.6; color: var(--iron); max-width: 720px; }
@media (hover: hover) and (pointer: fine) {
  .hm-srv__row:hover .hm-srv__ph img, .hm-srv__duo:hover .hm-srv__ph img { filter: grayscale(0) contrast(1) brightness(1); transform: scale(1.025); }
}
@media (max-width: 1199px) {
  .hm-head .eyebrow, .hm-head h2 { grid-column: 1 / -1; } .hm-head { margin-bottom: 32px; }
  .hm-hero__left, .hm-hero__card { grid-column: 1 / -1; } .hm-hero__card { min-height: 0; }
  .hm-srv__row, .hm-srv__row--rev { grid-template-columns: 1fr; gap: 28px; } .hm-srv__txt { max-width: none; }
  .hm-free__head, .hm-free__grid { grid-column: 1 / -1; }
  .hm-steps__grid { grid-template-columns: 1fr 1fr; } .hm-pros__grid { grid-template-columns: 1fr; }
  .hm-ask__txt, .hm-ask__act { grid-column: 1 / -1; } .hm-faq__list { margin-left: 0; }
  .hm-row__t { grid-column: 2 / 9; font-size: 24px; } .hm-row__d { grid-column: 2 / 12; grid-row: 2; }
}
@media (max-width: 719px) {
  .hm-hero { min-height: 0; } .hm-hero__in { padding: 36px var(--pad) 0; gap: 20px; }   /* text right under the header, no empty top (2026-10-08) */ .hm-hero__lead { font-size: 17px; }
  .hm-hero__btns .btn { flex: 1 1 100%; justify-content: center; }
  .hm-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hm-tab { flex-direction: column; gap: 4px; font-size: 15px; line-height: 1.25; padding: 14px 12px 16px 0; } .hm-tab__bar { right: 12px; }   /* 2 × 2: long RU words never stick together (2026-10-08) */
  .hm-strip { flex-direction: column; gap: 8px; }
  .hm-srv, .hm-mats, .hm-free, .hm-more, .hm-steps, .hm-pros, .hm-faq { padding-block: 40px; }   /* phones: no big gaps between sections (2026-10-08) */
  .hm-srv__ph { height: 280px; } .hm-srv__duo { padding: 0 0 80px 0; } .hm-srv__ph--a { height: 260px; } .hm-srv__ph--b { width: 60%; height: 150px; left: auto; right: 0; bottom: 24px; }
  .hm-srv__note { left: 0; right: auto; }
  .hm-big { min-height: 560px; } .hm-big__in { padding: 56px var(--pad) 96px; } .hm-big__tags { left: var(--pad); right: auto; flex-wrap: wrap; gap: 10px 16px; }
  .hm-mats__grid { grid-template-columns: 1fr; } .hm-mats__ph { min-height: 300px; } .hm-mat__top { font-size: 21px; } .hm-mat__d { padding-left: 56px; }
  .hm-free__grid { grid-template-columns: 1fr; }
  .hm-row { grid-template-columns: 32px minmax(0, 1fr) 24px; gap: 4px 12px; } .hm-row:hover { padding-left: 0; }
  .hm-row__n { grid-column: 1; } .hm-row__t { grid-column: 2; font-size: 20px; } .hm-row__d { grid-column: 2; grid-row: 2; font-size: 14px; } .hm-row > span:last-child { grid-column: 3; grid-row: 1; }
  .hm-steps__grid { grid-template-columns: 1fr; } .hm-pros__list { grid-template-columns: 1fr; } .hm-pros__ph { height: 280px; }
  .hm-nums { grid-template-columns: 1fr; gap: 0; } .hm-ask { padding: 56px var(--pad); }
  .hm-q summary { grid-template-columns: 32px minmax(0, 1fr) 32px; font-size: 18px; } .hm-q p { margin-left: 44px; font-size: 16px; }
}
.hm-free__grid > .hm-fr:last-child:nth-child(odd) { grid-column: 1 / -1; }
.hm-pros__grid > *, .hm-mats__grid > *, .hm-srv__row > * { min-width: 0; }
@media (max-width: 719px) { .hm-pros__txt .btn, .hm-big__btns .btn { white-space: normal; height: auto; min-height: 52px; padding-block: 12px; } }
/* article: a drawn picture with a title is shown whole — no round fade, a readable size (owner 2026-10-07) */
.t4-fig.ed-fig--illustration img, .t4-fig.ed-fig--photo_text img { -webkit-mask-image: none !important; mask-image: none !important; max-width: 560px !important; width: 100%; margin: 0; }
.t4-fig.ed-fig--illustration, .t4-fig.ed-fig--photo_text { width: 100% !important; max-width: 560px !important; background: transparent; }

/* ---------- Utility pages (D-196): gallery · contacts · «Meie heateod» — T4 head + cards, photo grid, lightbox ---------- */
.ut-head { padding-bottom: 40px; }
.ut-text { padding: 24px var(--pad) 72px; }
.ut-text .t4-art { max-width: 760px; }
.ut-text .t4-art p + p { margin-top: .9em; }
.ut-contact { padding: 0 var(--pad) 72px; display: grid; gap: 24px; }
.ut-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--warm); border: 1px solid var(--warm); }
.ut-card { display: flex; flex-direction: column; gap: 6px; padding: 28px 28px 26px; background: var(--offwhite); color: var(--graphite); min-width: 0; }
.ut-card--main { background: var(--graphite); color: var(--offwhite); }
.ut-card__k { font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--concrete); }
.ut-card--main .ut-card__k { color: var(--signal-text); }
.ut-card__v { font-size: 24px; font-weight: 600; line-height: 1.2; letter-spacing: -.02em; overflow-wrap: break-word; }
@media (max-width: 899px) { .ut-cards:not(.ut-cards--n3) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .ut-cards { grid-template-columns: 1fr; } }
.ut-card__s { font-size: 15px; line-height: 1.5; color: var(--iron); }
.ut-card--main .ut-card__s { color: var(--muted); }
.ut-card__a { margin-top: auto; padding-top: 14px; font-size: 15px; color: var(--signal-text); }
a.ut-card:hover { background: var(--stone); color: var(--graphite); }
.ut-card--link { flex-direction: row; align-items: center; justify-content: space-between; }
.ut-card--link .ut-card__v { font-size: 20px; }
.ut-card--link > span[aria-hidden] { color: var(--signal-text); font-size: 22px; }
.ut-map { position: relative; aspect-ratio: 21 / 8; max-width: 100%; background: repeating-linear-gradient(135deg, var(--stone) 0 12px, var(--offwhite) 12px 24px);
  border: 1px solid var(--warm); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.ut-map.is-on { background: var(--stone); }
.ut-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ut-map__btn { background: var(--graphite); color: var(--offwhite); border: 0; padding: 14px 22px; font-weight: 600; }
.ut-map__btn:hover { background: var(--signal); color: var(--graphite); }
.ut-map__note { font-family: var(--mono); font-size: 12px; color: var(--iron); }
.ut-photos { padding: 0 var(--pad) 88px; }
.ut-photos__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 24px; border-top: 1px solid var(--graphite); padding-top: 16px; margin-bottom: 24px; }
.ut-photos__head h2 { margin: 0; font-size: 28px; font-weight: 600; letter-spacing: -.02em; }
.ut-photos__n { font-family: var(--mono); font-size: 12px; color: var(--concrete); text-transform: uppercase; letter-spacing: .08em; }
.ut-photos__head a { margin-left: auto; color: var(--signal-text); }
.ut-photos { container-type: inline-size; }
.ut-grid { --c: 4; --g: 8px; display: grid; grid-template-columns: repeat(var(--c), minmax(0, 1fr)); grid-auto-flow: dense; gap: var(--g);
  grid-auto-rows: calc((100cqw - (var(--c) - 1) * var(--g)) / var(--c) * .75); }
.ut-grid--few { --c: 3; }
.ut-grid__item { border: 0; padding: 0; max-width: 100%; }
.ut-grid__item img { transition: filter .7s ease, transform 1.2s ease; }
@media (hover: hover) and (pointer: fine) { .ut-grid__item:hover img { filter: grayscale(0) contrast(1) brightness(1); transform: scale(1.025); } }
.ut-grid__item:focus-visible { outline-offset: -2px; }
@media (min-width: 1200px) { .ut-grid .ut-w4 { grid-column: span 2; } }
@media (min-width: 600px) and (max-width: 1199px) { .ut-grid { --c: 3; } .ut-grid .ut-w3 { grid-column: span 2; } .ut-map { aspect-ratio: 16 / 9; } }
@media (max-width: 599px) { .ut-grid { --c: 2; --g: 4px; } .ut-grid .ut-w2 { grid-column: span 2; } .ut-card { padding: 22px 20px; } .ut-card__v { font-size: 21px; }
  .ut-map { aspect-ratio: 4 / 5; } .ut-photos__head a { margin-left: 0; } }
.ut-lb { position: fixed; inset: 0; z-index: 200; background: rgba(21, 22, 23, .96); display: flex; align-items: center; justify-content: center; }
.ut-lb[hidden] { display: none; }
.ut-lb__fig { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 12px; max-width: calc(100vw - 160px); }
.ut-lb__fig img { max-width: 100%; max-height: calc(100vh - 120px); width: auto; height: auto; object-fit: contain; }
.ut-lb__fig figcaption { font-family: var(--mono); font-size: 12px; color: var(--muted); }
.ut-lb__x, .ut-lb__nav { position: absolute; background: none; border: 0; color: var(--offwhite); font-size: 44px; line-height: 1; padding: 12px 18px; }
.ut-lb__x:hover, .ut-lb__nav:hover { color: var(--signal-text); }
.ut-lb__x { top: 12px; right: 12px; }
.ut-lb__nav--prev { left: 8px; } .ut-lb__nav--next { right: 8px; }
@media (max-width: 599px) { .ut-lb__fig { max-width: 100vw; } .ut-lb__nav { top: auto; bottom: 16px; } }

/* ---------- Request form (Homepage v5 §8 «Saada päring», stage 7, D-197) ---------- */
.rq { padding: 84px var(--pad); background: var(--offwhite); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; scroll-margin-top: var(--hdr-h); }
.rq__side { grid-column: 1 / 5; container-type: inline-size; display: flex; flex-direction: column; gap: 28px; align-self: start; position: sticky; top: calc(var(--hdr-h) + 24px); }
.rq__h { margin: 0; font-weight: 600; font-size: clamp(32px, 16.5cqi, 80px); line-height: .92; letter-spacing: -.045em; white-space: nowrap; }   /* one line (owner 2026-10-08): sized to the column; «Saada päring.» ≈ 5.8 em wide */
.rq__lead { margin: 0; font-size: 18px; line-height: 1.55; color: var(--iron); max-width: 380px; }
.rq__call { border-top: 1px solid rgba(28, 29, 31, .2); padding-top: 22px; display: flex; flex-direction: column; gap: 6px; }
.rq__call a { font-size: 36px; font-weight: 600; letter-spacing: -.02em; }
.rq__call > span:not(.rq__k) { font-size: 15px; color: #5c5852; }
.rq__k--or { margin-top: 14px; }
.rq__call a.rq__mail { font-size: 20px; font-weight: 500; letter-spacing: 0; align-self: flex-start; border-bottom: 1px solid var(--signal); overflow-wrap: anywhere; }
.rq__k { font: 500 12px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: #5c5852; padding: 0; }
.rq__box { grid-column: 6 / 13; background: #fbfaf7; padding: 40px; border: 1px solid var(--stone); min-width: 0; }
.rq__form { display: flex; flex-direction: column; gap: 28px; }
.rq__f { display: flex; flex-direction: column; gap: 12px; border: 0; margin: 0; padding: 0; min-width: 0; }
.rq__hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.rq__seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--graphite); }
.rq__segi, .rq__chip { position: relative; cursor: pointer; }
.rq__segi input, .rq__chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rq__segi span { display: flex; align-items: center; justify-content: center; height: 52px; font-size: 16px; font-weight: 500; transition: background .2s; }
.rq__segi + .rq__segi span { border-left: 1px solid var(--graphite); }
.rq__segi input:checked + span { background: var(--graphite); color: var(--offwhite); }
.rq__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rq__chip span { display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(28, 29, 31, .3); background: #fff; font-size: 15px; transition: background .2s; }
.rq__chip input:checked + span { background: var(--graphite); color: var(--offwhite); border-color: var(--graphite); }
.rq__segi input:focus-visible + span, .rq__chip input:focus-visible + span { outline: 2px solid var(--signal); outline-offset: 2px; }
@media (hover: hover) { .rq__chip:hover span { border-color: var(--graphite); } }
.rq__in { height: 52px; width: 100%; border: 1px solid rgba(28, 29, 31, .3); background: #fff; padding: 0 16px; font: inherit; font-size: 16px; border-radius: 2px; color: var(--graphite); }
.rq__in:focus { outline: none; border-color: var(--graphite); }
.rq__ta { height: auto; padding: 14px 16px; resize: vertical; line-height: 1.5; }
.rq__date { max-width: 280px; }
.rq__vol { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.rq__unit { position: relative; } .rq__unit .rq__in { padding-right: 56px; }
.rq__unit span { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font: 500 13px var(--mono); color: #5c5852; }
.rq__hintb { height: 52px; padding: 0 18px; border: 1px solid rgba(28, 29, 31, .3); background: transparent; border-radius: 2px; font-size: 15px; font-weight: 500; display: flex; align-items: center; gap: 12px; color: var(--graphite); }
.rq__hintb span { font-size: 20px; font-weight: 300; transition: transform .3s; } .rq__hintb.is-on { background: var(--stone); } .rq__hintb.is-on span { transform: rotate(45deg); }
.rq__hint { padding: 18px 20px; background: var(--stone); display: flex; flex-direction: column; gap: 8px; font-size: 14px; line-height: 1.5; color: var(--iron); }
.rq__hint strong { font-size: 16px; color: var(--graphite); } .rq__mono { font: 500 13px var(--mono); }
.rq__ph { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rq__phb { position: relative; min-height: 104px; border: 1px dashed var(--graphite); display: flex; flex-direction: column; justify-content: space-between; gap: 12px; padding: 20px; cursor: pointer; }
.rq__phb input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rq__phb:focus-within { outline: 2px solid var(--signal); outline-offset: 2px; }
.rq__phb--cam { background: var(--graphite); color: var(--offwhite); border: 0; }
@media (hover: hover) { .rq__phb:hover { background: var(--stone); } .rq__phb--cam:hover { background: var(--coal); } }
.rq__phl { display: flex; flex-direction: column; gap: 2px; } .rq__phl strong { font-size: 19px; font-weight: 600; } .rq__phl small { font-size: 13px; color: #5c5852; }
.rq__phb--cam .rq__phl small { color: var(--muted); }
.rq__camico { width: 30px; height: 22px; border: 2px solid var(--signal); border-radius: 4px; display: flex; align-items: center; justify-content: center; }
.rq__camico span { width: 9px; height: 9px; border: 2px solid var(--signal); border-radius: 50%; }
.rq__plus { font-size: 28px; line-height: 22px; font-weight: 300; }
.rq__thumbs { display: flex; gap: 8px; flex-wrap: wrap; } .rq__thumbs:empty { display: none; }
.rq__thumb { position: relative; width: 84px; height: 84px; background: var(--stone); }
.rq__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rq__thumb button { position: absolute; top: 4px; right: 4px; width: 24px; height: 24px; border: 0; border-radius: 50%; background: var(--graphite); color: var(--offwhite); font-size: 13px; line-height: 1; }
.rq__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .rq__f--wide { grid-column: 1 / -1; }
.rq__note { grid-column: 1 / -1; margin-top: -6px; font-size: 13px; color: #5c5852; }
.rq__send { height: 60px; border: 0; background: var(--signal); color: var(--graphite); font-size: 18px; font-weight: 600; border-radius: 2px; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; }
.rq__send:hover { background: var(--graphite); color: var(--offwhite); } .rq__send:disabled { opacity: .6; cursor: progress; }
.rq__privacy { margin: -12px 0 0; font-size: 13px; color: #5c5852; }
.rq__err { background: #fff; border-left: 4px solid var(--signal); padding: 16px 20px; font-size: 15px; } .rq__err ul { margin: 6px 0 0; padding-left: 18px; }
.rq__sent { min-height: 480px; display: flex; flex-direction: column; justify-content: center; gap: 22px; }
.rq__sq { width: 56px; height: 56px; background: var(--signal); }
.rq__sent-h { font-size: 56px; font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.rq__sent p { margin: 0; font-size: 18px; color: var(--iron); line-height: 1.5; }
.rq__again { align-self: flex-start; border: 1px solid var(--graphite); padding: 16px 24px; font-weight: 600; border-radius: 2px; }
@media (max-width: 1199px) { .rq__side { grid-column: 1 / -1; position: static; } .rq__box { grid-column: 1 / -1; } }
@media (max-width: 599px) {
  .rq { padding-block: 56px; } .rq__box { padding: 24px 16px; margin-inline: calc(var(--pad) * -1); border-inline: 0; }
  .rq__ph, .rq__grid, .rq__vol { grid-template-columns: 1fr; } .rq__seg { grid-template-columns: 1fr; } .rq__segi + .rq__segi span { border-left: 0; border-top: 1px solid var(--graphite); }
  .rq__call a { font-size: 30px; } .rq__sent-h { font-size: 40px; }
}
.rq--stone { background: var(--stone); }   /* homepage: between two paper sections (no repeated backgrounds) */
.rq [hidden] { display: none !important; }
.rq__f > legend.rq__k { margin-bottom: 12px; }
.rq__h--long { font-size: clamp(28px, 12cqi, 64px); }   /* RU «Отправить заявку.» ≈ 7.9 em */
.rq__opt { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; line-height: 1.45; color: var(--iron); cursor: pointer; }
.rq__opt input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--graphite); }
.rq__privacy a { color: var(--graphite); border-bottom: 1px solid var(--signal); }
@media (min-width: 1200px) { .ut-cards--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 900px) and (max-width: 1199px) { .ut-cards--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Cookie consent (D-198) ---------- */
.fglobal__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; } .fglobal__legal a { color: var(--muted); } .fglobal__legal a:hover { color: var(--signal-text); }
.ck { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 150; display: flex; justify-content: center; pointer-events: none; }
.ck[hidden] { display: none; }
.ck__in { pointer-events: auto; max-width: 1040px; width: 100%; background: var(--graphite); color: var(--offwhite); padding: 24px 28px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 32px; align-items: end; box-shadow: 0 12px 40px rgba(0, 0, 0, .35); }
.ck__txt { display: flex; flex-direction: column; gap: 8px; font-size: 15px; line-height: 1.5; }
.ck__txt strong { font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--signal-text); }
.ck__txt p { margin: 0; color: var(--warm); } .ck__txt a { color: var(--offwhite); border-bottom: 1px solid var(--signal); }
.ck__set { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; } .ck__set[hidden] { display: none; }
.ck__row { display: flex; gap: 10px; align-items: center; font-size: 15px; } .ck__row input { width: 18px; height: 18px; accent-color: var(--signal); }
.ck__btns { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.ck__b { height: 46px; padding: 0 18px; border: 1px solid var(--line-dark); background: transparent; color: var(--offwhite); font-weight: 600; font-size: 15px; border-radius: 2px; }
.ck__b:hover { border-color: var(--offwhite); } .ck__b--main { background: var(--offwhite); color: var(--graphite); border-color: var(--offwhite); } .ck__b[hidden] { display: none; }
@media (max-width: 899px) { .ck__in { grid-template-columns: 1fr; } .ck__btns { justify-content: stretch; } .ck__b { flex: 1 1 auto; } }
@media (max-width: 1199px) { .ck { bottom: calc(76px + env(safe-area-inset-bottom)); } }   /* above the mobile bottom bar */
@media (max-width: 599px) { .ck { left: 8px; right: 8px; } .ck__in { padding: 20px 16px; } }
.draftbar { position: sticky; top: var(--hdr-h); z-index: 40; background: var(--signal); color: var(--graphite); font: 600 14px var(--sans); text-align: center; padding: 10px 16px; }

/* 404 (stage 9) */
.nf { padding: 72px var(--pad) 80px; display: grid; gap: 24px; max-width: 1200px; }
.nf__k { font-family: var(--mono); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--signal-text); }
.nf__h1 { margin: 0; font-weight: 600; font-size: clamp(44px, 7vw, 104px); line-height: .95; letter-spacing: -.045em; }
.nf__lead { margin: 0 0 16px; max-width: 62ch; font-size: 19px; line-height: 1.5; }
@media (max-width: 719px) { .nf { padding-top: 40px; } .nf__lead { font-size: 17px; } }

/* ---------- Gallery at the bottom of a page (D-216, owner's sample «B · Kontaktleht»): mono numbers, even row, no captions ---------- */
.gal { background: #fff; color: var(--graphite); }
.gal--paper { background: var(--offwhite); } .gal--stone { background: var(--stone); } .gal--dark { background: var(--graphite); color: var(--offwhite); }
.gal__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px 24px; flex-wrap: wrap; margin-bottom: 28px; }
.gal__k { font: 500 12px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: #5c5852; }
.gal--dark .gal__k { color: var(--muted); }
.gal__row { display: grid; grid-template-columns: repeat(var(--c, 5), minmax(0, 1fr)); gap: 18px; }
.gal__row--3 { --c: 3; } .gal__row--4 { --c: 4; } .gal__row--5 { --c: 5; }
.gal__item { display: flex; flex-direction: column; gap: 12px; padding: 14px 0 0; border: 0; border-top: 1px solid rgba(28, 29, 31, .25); background: none; color: inherit; text-align: left; cursor: zoom-in; }
.gal--dark .gal__item { border-top-color: rgba(243, 241, 236, .22); }
.gal__n { font: 500 12px var(--mono); letter-spacing: .08em; color: var(--signal-text); }
.gal__ph { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--stone); }
.gal--stone .gal__ph { background: var(--offwhite); } .gal--dark .gal__ph { background: var(--coal); }
.gal__ph img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1) contrast(1.15) brightness(.9); transition: transform .6s ease, filter .6s ease; }
.gal__item--photo_text .gal__ph img, .gal__item--illustration .gal__ph img { object-fit: contain; padding: 8%; }
.gal__item:hover .gal__ph img, .gal__item:focus-visible .gal__ph img { transform: scale(1.03); filter: grayscale(.2) contrast(1.05); }
.gal__row--3 .gal__ph { aspect-ratio: 4 / 3; }   /* three photos: wide tiles, not tall columns */
@media (max-width: 1199px) { .gal__row--4, .gal__row--5 { --c: 3; } }
@media (max-width: 719px) {   /* phones: a strip you swipe */
  .gal__row { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin-inline: calc(var(--pad) * -1); padding-inline: var(--pad); scroll-padding-inline: var(--pad); scrollbar-width: none; }
  .gal__row::-webkit-scrollbar { display: none; }
  .gal__item { flex: 0 0 72%; scroll-snap-align: start; }
  .gal__row--3 .gal__ph { aspect-ratio: 4 / 5; }
}
/* steps / cards sections: two or three pictures under the text stand in one row from the title line, not in a centred column (2026-10-08) */
@media (min-width: 720px) {
  .ed.ed--steps .ed__media.ed__media--2, .ed.ed--steps .ed__media.ed__media--3 { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; align-items: flex-start; gap: 24px; }
  .ed.ed--steps .ed__media--2 > .ed-fig, .ed.ed--steps .ed__media--3 > .ed-fig { margin: 0; }
}
/* home on phones: the request form is folded behind one button (owner 2026-10-08); opens by the button or a #paring / #fotod link */
.rq__open { display: none; }
@media (max-width: 719px) {
  .js .rq--fold:not(.is-open) .rq__box { display: none; }
  .js .rq--fold:not(.is-open) .rq__open { display: flex; justify-content: center; align-items: center; gap: 10px; height: 56px; border: 0; background: var(--signal); color: var(--graphite); font-weight: 600; font-size: 17px; }
}
/* phones / touch: no hover, so a photo comes to colour while it is in the middle of the screen (owner 2026-10-08) */

/* method switcher on tablets / phones (owner 2026-10-08: pills looked heavy, the scrollbar covered them, unclear that it scrolls):
   light tabs with an orange line under the chosen one, numbers kept, no scrollbar, a soft fade on the right edge */
@media (max-width: 1199px) {
  .methods__list { gap: 22px; padding: 0 28px 0 0; scrollbar-width: none; border-bottom: 1px solid rgba(28, 29, 31, .15); scroll-snap-type: x proximity;
    -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .methods__list::-webkit-scrollbar { display: none; }
  .methods__btn { flex: none; border: 0; border-radius: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: 10px 0 12px; display: flex; align-items: baseline; gap: 8px; color: var(--concrete); scroll-snap-align: start; }
  .methods__btn .num { display: inline; font: 500 11px var(--mono); color: inherit; }
  .methods__btn.is-on { background: none; color: var(--graphite); border-bottom-color: var(--signal); }
  .methods__btn.is-on .num { color: var(--signal-text); }
  .methods__name { font-size: 16px; font-weight: 600; white-space: nowrap; }
}

/* home «Что мы принимаем / Mida me vastu võtame»: desktop = list with hover; phones = tabs above, photo, text + «Подробнее» (owner 2026-10-08) */
.hm-mats__more { display: none; }
@media (max-width: 719px) {
  .hm-mats__grid { display: flex; flex-direction: column; gap: 0; }
  .hm-mats__list { order: 1; flex-direction: row; gap: 22px; overflow-x: auto; border-top: 0; border-bottom: 1px solid rgba(28, 29, 31, .15); margin-bottom: 18px; padding-right: 28px; scrollbar-width: none;
    -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .hm-mats__list::-webkit-scrollbar { display: none; }
  .hm-mat { flex: none; padding: 10px 0 12px; border-bottom: 2px solid transparent; margin-bottom: -1px; color: var(--concrete); }
  .hm-mat.is-on { color: var(--graphite); border-bottom-color: var(--signal); }
  .hm-mat__top { display: flex; align-items: baseline; gap: 8px; font-size: 16px; white-space: nowrap; letter-spacing: 0; }
  .hm-mat__n { color: inherit; } .hm-mat.is-on .hm-mat__n { color: var(--signal-text); }
  .hm-mat__d, .hm-mat__go { display: none; }
  .hm-mats__ph { order: 2; min-height: 260px; }
  .hm-mats__more { order: 3; display: block; padding-top: 18px; }
  .hm-mats__txt { display: none; flex-direction: column; gap: 14px; }
  .hm-mats__txt.is-on { display: flex; }
  .hm-mats__txt p { margin: 0; font-size: 16px; line-height: 1.55; color: var(--iron); }
}
/* reception price badge on the hero photo — phones: about half the size, so it no longer covers the photo (owner 2026-10-08) */
@media (max-width: 719px) {
  .badge { padding: 10px 14px 9px; gap: 3px; }
  .badge__l { font-size: 9px; letter-spacing: .08em; }
  .badge__v { font-size: 40px; line-height: .85; }
  .badge__ref { font-size: 9px; }
}

/* readability (owner 2026-10-08, WCAG AA): small orange text on light grounds is a darker shade of the same orange (#b3410f ≥ 4.5:1 on
   white / paper / stone); on dark grounds the brand orange stays (≈ 5:1). Buttons, lines and fills keep var(--signal). */
:root { --signal-text: var(--signal); }   /* owner 2026-10-10: the darker shade is rejected — one brand orange everywhere (D-226 undone) */
.hdr, .mega, .mnav, .fhome, .dark, .t1-hero, .t2-hero, .t3-hero, .ed-bg--dark, .ed-cols__c--dark, .fglobal, .prefooter, .t1-cta, .t5-aside, .hm-hero, .hm-strip, .hm-big, .hm-free, .hm-steps, .hm-mats__cap, .ut-card--main, .ck__in, .wcard--dark, .pcard--dark, .gal--dark, .ut-lb, .mbar, .ed-band, .ed-bandblk, .hdr3__top, .hdr3__nav, .yn--no, .t4-art .ed-callout, .ed-card--tile, .ed-video, .t5-card, .t5-tr { --signal-text: var(--signal); }
/* white text on black-and-white hero photos (owner 2026-10-08: on light photos it merged): darker top of the shade + a soft shadow */
.t1-hero h1, .t2-hero h1, .hm-hero__h1, .t1-hero p, .t2-hero p, .hm-hero__lead, .hm-hero__kick, .t2-hero .eyebrow { text-shadow: 0 1px 14px rgba(21, 22, 23, .45); }
/* tables on phones (stage 11, 2026-10-08): a two-column table always fits the screen (no hidden «TASUTA» on the right);
   a wider one keeps scrolling sideways and shows a fade on the right edge so it is clear there is more */
.ed-table table:not(:has(tr > :nth-child(3))) { min-width: 0; }
@media (max-width: 599px) {
  .ed-table:has(tr > :nth-child(3)) { -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .ed-table th { letter-spacing: .04em; }
}
/* touch targets on phones (stage 11): bigger tap area, same look — breadcrumbs, «Kasutusel N lehel» in the price list */
@media (max-width: 719px) {
  .crumbs a { display: inline-block; padding: 9px 0; margin: -9px 0; }
  .t5-row__used { font-size: 11px; padding: 10px 0; margin: -10px 0; }
}
/* home on phones (stage 11): label right above the heading, no extra air before each section */
@media (max-width: 719px) { .hm-head { gap: 10px; margin-bottom: 24px; } .hm-head .eyebrow { padding-top: 0; } }
