/* =========================================================
   ai esek — design system
   Ported 1:1 from Claude Design project "Esek AI website build"
   (EsekAiDesignSystem_78c104 + WebsiteHome.dc.html).
   Zero-build static site: one stylesheet, every page.
   ========================================================= */

/* ---------- Self-hosted webfonts ----------
   Generated from the Google Fonts CSS2 responses for
     Newsreader:ital,wght@0,400;0,500;0,600;1,400
     Frank+Ruhl+Libre:wght@400;500;600  +  Heebo:wght@400;500;600
   Files live in /assets/fonts/. font-family / font-style / font-weight /
   unicode-range are copied verbatim from that response — the per-subset
   slicing is the point: @font-face is lazy, so an English page never
   fetches the `hebrew` faces and a Hebrew page never fetches `vietnamese`.
   Family names must keep matching --font-serif / --font-sans below.
   ------------------------------------------- */

/* Frank Ruhl Libre */
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/frank-ruhl-libre-400-hebrew.woff2") format("woff2");
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/frank-ruhl-libre-400-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/frank-ruhl-libre-400-latin.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: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/frank-ruhl-libre-500-hebrew.woff2") format("woff2");
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/frank-ruhl-libre-500-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/frank-ruhl-libre-500-latin.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: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/frank-ruhl-libre-600-hebrew.woff2") format("woff2");
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/frank-ruhl-libre-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/frank-ruhl-libre-600-latin.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;
}

/* Heebo */
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/heebo-400-hebrew.woff2") format("woff2");
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/heebo-400-math.woff2") format("woff2");
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/heebo-400-symbols.woff2") format("woff2");
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/heebo-400-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/heebo-400-latin.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: 'Heebo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/heebo-500-hebrew.woff2") format("woff2");
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/heebo-500-math.woff2") format("woff2");
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/heebo-500-symbols.woff2") format("woff2");
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/heebo-500-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/heebo-500-latin.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: 'Heebo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/heebo-600-hebrew.woff2") format("woff2");
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/heebo-600-math.woff2") format("woff2");
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/heebo-600-symbols.woff2") format("woff2");
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/heebo-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/heebo-600-latin.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;
}

/* Newsreader */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/newsreader-400-italic-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/newsreader-400-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/newsreader-400-italic-latin.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: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/newsreader-400-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/newsreader-400-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/newsreader-400-latin.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: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/newsreader-500-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/newsreader-500-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/newsreader-500-latin.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: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/newsreader-600-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/newsreader-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-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;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/newsreader-600-latin.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;
}

/* ---------- Tokens: colors ---------- */
:root {
  --white: oklch(99% 0.002 90);
  --paper: oklch(98% 0.006 85);
  --paper-2: oklch(95% 0.009 82);

  --ink: oklch(24% 0.05 158);
  --ink-deep: oklch(13% 0.035 162);

  --text: oklch(18% 0.015 150);
  --text-soft: oklch(45% 0.016 150);

  --accent: oklch(52% 0.11 155);
  --accent-deep: oklch(38% 0.09 158);

  --highlight: oklch(60% 0.11 290);

  --line: oklch(87% 0.01 80);
}

/* ---------- Tokens: typography ---------- */
:root {
  --font-sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-serif: "Newsreader", Georgia, "Times New Roman", serif;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;

  --text-hero: clamp(48px, 9vw, 108px);
  --text-h1: clamp(30px, 4.4vw, 48px);
  --text-h2: clamp(26px, 3.4vw, 36px);
  --text-h3: 16.5px;
  --text-lead: clamp(16px, 1.8vw, 18px);
  --text-base: 16px;
  --text-sm: 14.5px;
  --text-xs: 13.5px;
  --text-eyebrow: 12.5px;

  --track-hero: -0.02em;
  --track-tight: -0.01em;
  --track-eyebrow: 0.14em;
  --track-wordmark: 0.02em;

  --leading-hero: 0.98;
  --leading-heading: 1.3;
  --leading-body: 1.7;
}

/* ---------- Tokens: spacing ---------- */
:root {
  --content-max: 1180px;
  --reading-max: 820px;
  --hero-max: 900px;
  --gutter: 32px;

  --radius-pill: 999px;
  --radius-chip: 4px;
  --radius-card: 14px; /* roundedBoxes = true (owner decision) */
}

/* ---------- Tokens: effects ---------- */
:root {
  --shadow-card: 0 20px 40px -20px oklch(16% 0.035 165 / 0.2);
  --border-hair: 1px solid var(--line);
  --border-top-rule: 2px solid var(--text);
}

/* ---------- Base ---------- */
/* No box-sizing reset: the source design uses the default content-box, so
   max-width + padding on a section adds up. Changing this shifts every
   section width by 2x the gutter. */

body {
  margin: 0;
  font-family: var(--font-sans);
  background: var(--paper);
  color: var(--text);
  min-height: 100vh;
}

::selection {
  background: var(--highlight);
  color: var(--white);
}

a { color: var(--text); }
a:hover { opacity: 0.7; }

img { display: block; max-width: 100%; }

/* ---------- Eyebrow ---------- */
.eyebrow {
  text-transform: uppercase;
  letter-spacing: var(--track-eyebrow);
  font-size: var(--text-eyebrow);
  font-weight: 600;
  color: var(--accent);
  margin: 0;
  font-family: var(--font-sans);
}

.eyebrow-muted { color: var(--text-soft); }

/* ---------- Button ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-sans);
  font-weight: var(--fw-medium);
  font-size: 15px;
  padding: 14px 26px;
  border-radius: var(--radius-pill);
  text-decoration: none;
  border: none;
  cursor: pointer;
  white-space: nowrap;
}

.btn:hover { opacity: 0.7; }

/* dark = white pill, for use ON dark backgrounds */
.btn-dark { background: var(--white); color: var(--ink); }

/* light = ink pill, for use ON light backgrounds */
.btn-light { background: var(--ink); color: var(--white); }

/* the small dot that rides inside the home hero CTA */
.btn-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ink);
  display: inline-block;
}

/* ---------- Glyph ---------- */
.glyph {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
}

.glyph-target::before {
  content: '';
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
}

.glyph-target { position: relative; }

.glyph-target::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
}

.glyph-play::before {
  content: '';
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 9px solid var(--accent);
  margin-left: 3px;
}

.glyph-square::before {
  content: '';
  width: 15px;
  height: 15px;
  border-radius: var(--radius-chip);
  background: var(--accent);
}

/* ---------- ServiceCard ---------- */
.service-card {
  background: var(--paper);
  padding: 32px 28px;
  border: var(--border-hair);
  box-shadow: var(--shadow-card);
  border-radius: var(--radius-card);
  display: block;
  text-decoration: none;
}

.service-card .glyph-wrap { margin-bottom: 18px; }

.service-card h3 {
  font-size: var(--text-h3);
  font-weight: var(--fw-bold);
  margin: 0 0 8px;
  letter-spacing: var(--track-tight);
  font-family: var(--font-sans);
  color: var(--text);
}

.service-card p {
  margin: 0;
  font-size: var(--text-xs);
  line-height: 1.55;
  color: var(--text-soft);
  font-family: var(--font-sans);
}

/* ---------- CredentialRow ---------- */
.credential-row {
  display: flex;
  gap: 24px;
  padding: 16px 0;
  border-bottom: var(--border-hair);
}

.credential-row.is-last { border-bottom: none; }

.credential-row .index {
  font-weight: var(--fw-bold);
  color: var(--accent);
  font-size: 14px;
  min-width: 28px;
  font-family: var(--font-sans);
}

.credential-row p {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--text);
  font-family: var(--font-sans);
}

/* ---------- ProcessStep ---------- */
.process-step {
  border-top: var(--border-top-rule);
  padding-top: 18px;
}

.process-step .step-num {
  font-weight: var(--fw-bold);
  color: var(--accent);
  font-size: 14px;
}

.process-step h4 {
  font-weight: var(--fw-bold);
  font-size: 19px;
  margin: 10px 0 10px;
  font-family: var(--font-sans);
  color: var(--text);
}

.process-step p {
  font-size: var(--text-sm);
  line-height: 1.6;
  color: var(--text-soft);
  margin: 0;
  font-family: var(--font-sans);
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 32px;
}

/* ---------- Nav (on ink) ---------- */
.site-nav { background: var(--ink); }

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 26px var(--gutter);
  flex-wrap: wrap;
}

.nav-logo img { height: 72px; display: block; }

.nav-right {
  display: flex;
  align-items: center;
  gap: clamp(18px, 3.4vw, 36px);
  flex-wrap: wrap;
}

.nav-right a.nav-link {
  color: var(--white);
  opacity: 0.85;
  text-decoration: none;
  font-size: 14.5px;
}


/* ---------- Hero: dark + centered (home, about) ---------- */
.hero-dark {
  max-width: var(--hero-max);
  margin: 0 auto;
  padding: clamp(40px, 7vw, 76px) var(--gutter) clamp(76px, 10vw, 104px);
  text-align: center;
}

.hero-dark .eyebrow { margin: 0 0 24px; }

.hero-dark h1 {
  font-weight: var(--fw-bold);
  color: var(--white);
  font-size: var(--text-hero);
  line-height: var(--leading-hero);
  letter-spacing: var(--track-hero);
  margin: 0;
}

.hero-dark .lede {
  font-size: clamp(15.5px, 1.6vw, 17px);
  line-height: var(--leading-body);
  color: var(--white);
  opacity: 0.62;
  max-width: 52ch;
  margin: 30px auto 34px;
}

.hero-actions {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 44px;
}

.hero-actions .email-link {
  color: var(--white);
  opacity: 0.7;
  text-decoration: none;
  font-size: 14.5px;
}

/* inline credentials strip under the dark hero */
.cred-strip {
  list-style: none;
  display: flex;
  gap: clamp(16px, 3vw, 32px);
  justify-content: center;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  color: var(--white);
  opacity: 0.7;
  font-size: 13px;
}

/* about hero has no button row, so the lede carries the bottom gap */
.hero-dark.hero-about .lede { margin: 30px auto 36px; }

/* ---------- Hero: light (offering pages) ---------- */
.hero-light {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: clamp(52px, 8vw, 96px) var(--gutter) clamp(44px, 5vw, 64px);
}

.hero-light .hero-col { max-width: 860px; }

.hero-light .eyebrow { margin: 0 0 22px; }

.hero-light h1 {
  font-family: var(--font-serif);
  font-weight: var(--fw-medium);
  color: var(--text);
  font-size: clamp(40px, 6vw, 68px);
  line-height: 1.06;
  letter-spacing: var(--track-tight);
  margin: 0;
}

.hero-light .lede {
  font-size: clamp(16px, 1.7vw, 18.5px);
  line-height: 1.55;
  color: var(--text-soft);
  max-width: 52ch;
  margin: 32px 0 34px;
}

.hero-light .actions {
  display: flex;
  gap: 24px;
  align-items: center;
  flex-wrap: wrap;
}

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--text);
  text-decoration: none;
  font-size: 15px;
}

.link-arrow .chev {
  font-size: 18px;
  line-height: 1;
  opacity: 0.55;
}

/* ---------- Home: service cards overlapping the hero ---------- */
.cards-overlap {
  max-width: var(--content-max);
  margin: -40px auto 0;
  padding: 0 var(--gutter);
  position: relative;
  z-index: 1;
}

.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
}

/* ---------- Sections ---------- */
.section {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: clamp(72px, 10vw, 104px) var(--gutter);
}

.section-tight {
  padding: clamp(72px, 10vw, 104px) var(--gutter) clamp(48px, 6vw, 64px);
}

.band {
  background: var(--paper-2);
  padding: clamp(64px, 9vw, 96px) var(--gutter);
}

.band > .inner {
  max-width: var(--content-max);
  margin: 0 auto;
}

.band > .inner-reading {
  max-width: var(--reading-max);
  margin: 0 auto;
}

.band-reading {
  background: var(--paper-2);
  padding: clamp(56px, 9vw, 96px) var(--gutter);
}

.band-reading > .inner {
  max-width: var(--reading-max);
  margin: 0 auto;
}

.reading {
  max-width: var(--reading-max);
  margin: 0 auto;
  padding: clamp(72px, 10vw, 104px) var(--gutter) clamp(48px, 6vw, 64px);
}

/* one-line centered note band ("Delivered in Hebrew or English.") */
.note-band {
  background: var(--paper-2);
  padding: clamp(48px, 7vw, 72px) var(--gutter);
  text-align: center;
}

.note-band p {
  font-size: var(--text-base);
  color: var(--text-soft);
  margin: 0;
}

.note-band .wide {
  max-width: 60ch;
  margin-inline: auto;
}

.note-band strong {
  font-weight: var(--fw-bold);
  color: var(--text);
}

/* projects page: note sits directly under a paper-2 block, so no top pad */
.note-band.note-joined { padding-top: 0; }

/* ---------- Headings ---------- */
.h2-sans {
  font-weight: var(--fw-bold);
  font-size: var(--text-h2);
  line-height: var(--leading-heading);
  letter-spacing: var(--track-tight);
  margin: 0 0 22px;
}

.h2-serif {
  font-family: var(--font-serif);
  font-weight: var(--fw-medium);
  font-size: clamp(27px, 3.4vw, 38px);
  line-height: 1.12;
  letter-spacing: var(--track-tight);
  margin: 0 0 28px;
}

.body-text {
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--text-soft);
  margin: 0;
  max-width: 62ch;
}

/* ---------- Rule list (bordered rows) ---------- */
.rule-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rule-list li {
  border-top: 1px solid var(--line);
  padding: 18px 0;
  font-size: 16px;
  line-height: 1.55;
}

.rule-list li:first-child { border-top: var(--border-top-rule); }

.rule-list strong { font-weight: var(--fw-bold); }

.rule-list.tight li { padding: 16px 0; }

/* ---------- Testimonials (featured card + deck) ---------- */
.deck {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 2vw, 28px);
  /* the peek layers rise 24px above the card and are positioned, so they
     paint over anything static above them — keep headroom */
  margin-top: 24px;
}

/* the stage stacks every card in one grid cell, so its height is the
   tallest quote and nothing jumps when you page through */
.deck-stage {
  position: relative;
  display: grid;
  flex: 1;
  min-width: 0;
  max-width: 900px;
}

/* two layers peeking out behind the active card = "more quotes here" */
.deck-stage::before,
.deck-stage::after {
  content: '';
  position: absolute;
  left: 16px;
  right: 16px;
  top: -12px;
  height: 40px;
  background: var(--white);
  border: var(--border-hair);
  border-radius: var(--radius-card);
  z-index: 0;
}

.deck-stage::after {
  left: 34px;
  right: 34px;
  top: -24px;
  opacity: 0.55;
}

.quote-card {
  grid-area: 1 / 1;
  margin: 0; /* <figure> defaults to 1em 40px */
  position: relative;
  z-index: 1;
  background: var(--white);
  border: var(--border-hair);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  padding: clamp(28px, 4vw, 56px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.28s ease;
}

.quote-card.is-active {
  opacity: 1;
  visibility: visible;
}

.quote-card blockquote {
  margin: 0 0 clamp(28px, 4vw, 44px);
  font-family: var(--font-serif);
  font-weight: var(--fw-regular);
  font-size: clamp(19px, 2.4vw, 30px);
  line-height: 1.45;
  letter-spacing: var(--track-tight);
  color: var(--text);
}

.quote-card blockquote strong { font-weight: var(--fw-bold); }

.quote-card figcaption {
  display: flex;
  align-items: center;
  gap: 14px;
}

/* no client photos exist (first-name-only, nameless practice), so the
   avatar slot is an accent monogram in the CSS-glyph idiom */
.quote-card .monogram {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--paper-2);
  border: 1.5px solid var(--accent);
  color: var(--accent-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  font-weight: var(--fw-bold);
  flex: none;
}

.quote-card .who {
  font-size: 15.5px;
  font-weight: var(--fw-bold);
  color: var(--text);
  line-height: 1.35;
}

.quote-card .role {
  font-size: var(--text-xs);
  color: var(--text-soft);
  line-height: 1.35;
}

/* ---------- Deck controls ---------- */
.deck-nav {
  width: 44px;
  height: 44px;
  flex: none;
  border-radius: 50%;
  border: var(--border-hair);
  background: var(--white);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.deck-nav:hover { opacity: 0.7; }

.deck-nav .chevron {
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--text);
  border-bottom: 2px solid var(--text);
}

.deck-nav.prev .chevron { transform: rotate(135deg); margin-left: 3px; }
.deck-nav.next .chevron { transform: rotate(-45deg); margin-right: 3px; }

[dir="rtl"] .deck-nav.prev .chevron { transform: rotate(-45deg); margin: 0 0 0 3px; }
[dir="rtl"] .deck-nav.next .chevron { transform: rotate(135deg); margin: 0 3px 0 0; }

.deck-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 28px;
}

/* padding + content-box clip keeps the dot visually 7px but the tap target
   ~19px. box-sizing is set explicitly (scoped, NOT a global reset) because
   Chrome's UA stylesheet makes <button> border-box, which would collapse the
   7px content box to 0 under the padding and paint nothing. */
.deck-dot {
  box-sizing: content-box;
  width: 7px;
  height: 7px;
  padding: 6px;
  border: none;
  border-radius: 50%;
  background: var(--text-soft);
  background-clip: content-box;
  opacity: 0.35;
  cursor: pointer;
}

.deck-dot[aria-current="true"] {
  background: var(--accent);
  opacity: 1;
}

/* ---------- Home practice band ---------- */
.practice-link {
  color: var(--text);
  text-decoration: none;
  font-size: 15px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 2px;
}

/* ---------- Dark CTA ---------- */
.cta-dark {
  background: var(--ink);
  padding: clamp(72px, 10vw, 110px) var(--gutter);
  text-align: center;
}

.cta-dark h2 {
  font-weight: var(--fw-bold);
  color: var(--white);
  font-size: var(--text-h1);
  letter-spacing: var(--track-tight);
  margin: 0 0 20px;
}

.cta-dark p {
  font-size: var(--text-base);
  color: var(--white);
  opacity: 0.62;
  margin: 0 0 32px;
}

/* ---------- FAQ (home) ---------- */
/* Native <details> accordion — zero JS. The +/− marker is a CSS glyph in the
   accent-green idiom; rows reuse the bordered-list look (2px top rule on the
   first, hairline between). Works LTR and RTL unchanged (flex follows dir). */
.faq-list { max-width: var(--reading-max); }

.faq-item { border-top: 1px solid var(--line); }
.faq-item:first-child { border-top: var(--border-top-rule); }

.faq-item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 22px 0;
  font-size: 18px;
  font-weight: var(--fw-bold);
  letter-spacing: var(--track-tight);
  color: var(--text);
  line-height: 1.4;
}

.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover { color: var(--accent-deep); }
.faq-item summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

/* plus glyph that loses its vertical bar (→ minus) when the row is open */
.faq-icon { position: relative; width: 16px; height: 16px; flex: none; }
.faq-icon::before,
.faq-icon::after {
  content: '';
  position: absolute;
  background: var(--accent);
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.faq-icon::before { top: 50%; left: 0; right: 0; height: 2px; transform: translateY(-50%); }
.faq-icon::after { left: 50%; top: 0; bottom: 0; width: 2px; transform: translateX(-50%); }
.faq-item[open] .faq-icon::after { transform: translateX(-50%) scaleY(0); opacity: 0; }

.faq-a { padding: 2px 0 24px; max-width: 66ch; }
.faq-a p {
  margin: 0 0 14px;
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--text-soft);
}
.faq-a p:last-child { margin-bottom: 0; }
.faq-a strong { color: var(--text); font-weight: var(--fw-bold); }
.faq-a a { color: var(--text); border-bottom: 1px solid var(--line); text-decoration: none; }

@media (prefers-reduced-motion: reduce) {
  .faq-icon::before, .faq-icon::after { transition: none; }
  .service-card { transition: none; }
}

/* ---------- Legal pages ---------- */
.legal {
  max-width: var(--reading-max);
  margin: 0 auto;
  padding: clamp(56px, 8vw, 88px) var(--gutter) clamp(72px, 10vw, 104px);
}

.legal .eyebrow { margin: 0 0 16px; }

.legal h1 {
  font-weight: var(--fw-bold);
  font-size: var(--text-h1);
  line-height: var(--leading-heading);
  letter-spacing: var(--track-tight);
  margin: 0 0 8px;
}

.legal .updated {
  font-size: var(--text-sm);
  color: var(--text-soft);
  margin: 0 0 32px;
}

.legal .intro {
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--text);
  margin: 0 0 32px;
  max-width: 64ch;
}

.legal h2 {
  font-weight: var(--fw-bold);
  font-size: var(--text-h3);
  letter-spacing: var(--track-tight);
  margin: 0 0 12px;
}

.legal p {
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--text-soft);
  margin: 0 0 28px;
  max-width: 64ch;
}

.legal p:last-child { margin-bottom: 0; }

.legal a { border-bottom: 1px solid var(--line); text-decoration: none; }

/* ---------- 404 ---------- */
.notfound {
  max-width: var(--reading-max);
  margin: 0 auto;
  padding: clamp(72px, 12vw, 140px) var(--gutter);
  text-align: center;
}

.notfound .eyebrow { margin: 0 0 20px; }

.notfound h1 {
  font-weight: var(--fw-bold);
  font-size: var(--text-h1);
  line-height: var(--leading-heading);
  letter-spacing: var(--track-tight);
  margin: 0 0 20px;
}

.notfound p {
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--text-soft);
  margin: 0 auto 36px;
  max-width: 52ch;
}

.notfound .links-row {
  display: flex;
  gap: clamp(16px, 3vw, 28px);
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 32px;
}

.notfound .links-row a {
  color: var(--text-soft);
  text-decoration: none;
  font-size: 14.5px;
}

/* ---------- Footer ---------- */
.site-footer { border-top: 1px solid var(--line); }

.footer-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 48px var(--gutter) 20px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 32px;
}

.footer-logo img { height: 64px; display: block; }

.footer-brand p {
  color: var(--text-soft);
  font-size: 13.5px;
  line-height: 1.6;
  margin: 14px 0 0;
  max-width: 34ch;
}

.footer-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-col .col-head {
  text-transform: uppercase;
  letter-spacing: var(--track-eyebrow);
  font-size: 11px;
  color: var(--accent);
  font-weight: 600;
}

.footer-col a {
  color: var(--text-soft);
  text-decoration: none;
  font-size: 13.5px;
}

.footer-base {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 16px var(--gutter) 40px;
  border-top: 1px solid var(--line);
}

.footer-base p {
  color: var(--text-soft);
  font-size: 13px;
  margin: 16px 0 0;
}

/* ---------- Hover affordances ---------- */
/* Cards and nav links escape the global a:hover dim: interactive surfaces
   brighten/lift instead of fading. */
.service-card { transition: transform 0.18s ease, box-shadow 0.18s ease; }
.service-card:hover {
  opacity: 1;
  transform: translateY(-3px);
  box-shadow: 0 26px 48px -20px oklch(16% 0.035 165 / 0.3);
}
.nav-right a.nav-link:hover, .lang-switch:hover { opacity: 1; }

/* ---------- Minimal mobile fixes ---------- */
/* The source design has no media queries. These target only literal
   breakage (overflowing content) on narrow viewports — not redesign. */

@media (max-width: 600px) {
  .footer-inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .nav-logo img { height: 48px; }
  .footer-logo img { height: 44px; }

  /* side arrows would squeeze the card to ~150px of content; dots carry it */
  .deck-nav { display: none; }
  .deck-stage::after { display: none; }
}

/* ---------- RTL overrides (Hebrew pages) ---------- */
[dir="rtl"] {
  --font-serif: "Frank Ruhl Libre", "Newsreader", Georgia, serif;
  --font-sans: "Heebo", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

[dir="rtl"] .glyph-play::before {
  border-left: none;
  border-right: 9px solid var(--accent);
  margin-left: 0;
  margin-right: 3px;
}

[dir="rtl"] .link-arrow .chev {
  transform: scaleX(-1);
}

/* Language switcher link in nav */
.lang-switch {
  font-size: 14.5px;
  font-weight: var(--fw-medium);
  color: var(--white);
  opacity: 0.85;
  text-decoration: none;
}
