  :root {
    --linen: #F9F4EC; --bg: #FDF9F3; --bark: #5D5B48; --bark-dark: #4A4838;
    --sage: #A8B1A2; --blush: #EAD0CF; --sand: #D3B695; --line: #E8E2D4;
    --text-soft: rgba(93, 91, 72, .72); --text-faint: rgba(93, 91, 72, .55);
  }
  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; background: var(--bg); color: var(--bark); font-family: 'Frank Ruhl Libre', Georgia, serif; font-size: 18px; line-height: 1.6; overflow-x: hidden; }
  h1, h2, h3 { font-weight: 500; letter-spacing: -.02em; margin: 0; line-height: 1.15; }
  p { margin: 0; }
  img { max-width: 100%; display: block; }
  button { font-family: inherit; cursor: pointer; }
  .wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
  section { padding: 110px 0; position: relative; }
  .eyebrow { font-size: 14px; font-weight: 700; letter-spacing: .2em; color: var(--sand); }
  .h2 { font-size: clamp(2.1rem, 5vw, 3.6rem); margin-top: 14px; }
  .lead { margin-top: 18px; font-size: 19px; color: var(--text-soft); max-width: 680px; }
  .organic { border-radius: 50px 10px 50px 10px; overflow: hidden; }
  .card { background: var(--linen); border: 1px solid var(--line); border-radius: 40px; }
  .pill { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; border: 1px solid rgba(93,91,72,.25); background: rgba(93,91,72,.05); padding: 6px 16px; font-size: 14px; }
  .btn { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; padding: 14px 28px; font-size: 17px; font-weight: 700; border: 1px solid transparent; transition: .25s; text-decoration: none; }
  .btn-primary { background: var(--bark); color: var(--linen); box-shadow: 0 10px 25px rgba(93,91,72,.2); }
  .btn-primary:hover { background: var(--bark-dark); transform: translateY(-2px); }
  .btn-ghost { background: transparent; color: var(--bark); border-color: rgba(93,91,72,.2); }
  .btn-ghost:hover { background: rgba(93,91,72,.05); }
  .grid2 { display: grid; gap: 48px; align-items: center; }
  .grid3 { display: grid; gap: 24px; }
  @media (min-width: 860px) { .grid2 { grid-template-columns: 1fr 1fr; } .grid3 { grid-template-columns: repeat(3, 1fr); } }
  .rise { animation: rise .9s cubic-bezier(.22,1,.36,1) both; }
  @keyframes rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
  .pulse { animation: pulse 2.8s ease-in-out infinite; }
  @keyframes pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(76,100,80,.35); } 50% { box-shadow: 0 0 0 10px rgba(76,100,80,0); } }

  /* nav */
  .nav { position: fixed; top: 18px; inset-inline: 0; z-index: 50; display: flex; justify-content: center; padding: 0 16px; }
  .nav nav { display: flex; align-items: center; gap: 2px; background: rgba(249,244,236,.85); backdrop-filter: blur(10px); border: 1px solid var(--line); border-radius: 999px; padding: 6px 8px; box-shadow: 0 8px 30px rgba(93,91,72,.08); max-width: 100%; overflow-x: auto; }
  .nav img { height: 44px; width: auto; margin-inline-start: 6px; }
  .nav a { color: var(--text-soft); text-decoration: none; font-size: 15px; padding: 8px 14px; border-radius: 999px; white-space: nowrap; }
  .nav a:hover { color: var(--bark); background: rgba(93,91,72,.05); }
  @media (max-width: 700px) { .nav { top: auto; bottom: 16px; } .nav img { display: none; } .nav a { font-size: 13px; padding: 8px 10px; } }

  /* hero */
  .hero { min-height: 100vh; display: flex; align-items: center; padding-top: 120px; overflow: hidden; }
  .blob { position: absolute; border-radius: 50%; filter: blur(60px); z-index: -1; }
  .hero h1 { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(3rem, 8vw, 6rem); margin-top: 22px; line-height: 1; }
  .hero .sub { margin-top: 20px; font-size: clamp(1.25rem, 2.4vw, 1.6rem); color: rgba(93,91,72,.85); }
  .hero .actions { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 14px; }
  .hero-img { position: relative; max-width: 460px; margin: 0 auto; width: 100%; }
  .hero-img .organic { aspect-ratio: 4/5; box-shadow: 0 30px 60px rgba(93,91,72,.15); }
  .hero-img .organic img { width: 100%; height: 100%; object-fit: cover; }
  .float-card { position: absolute; bottom: -22px; right: -14px; width: 220px; background: rgba(249,244,236,.9); backdrop-filter: blur(8px); border: 1px solid var(--line); border-radius: 24px; padding: 18px; box-shadow: 0 15px 35px rgba(93,91,72,.12); }
  .float-tag { position: absolute; top: -18px; left: -10px; background: var(--blush); border-radius: 18px; padding: 12px 20px; font-size: 19px; box-shadow: 0 10px 20px rgba(93,91,72,.1); }

  /* stages */
  .stage { padding: 32px; transition: .4s; }
  .stage:hover { transform: translateY(-6px); box-shadow: 0 25px 50px rgba(93,91,72,.1); }
  .stage .n { font-size: 48px; color: var(--blush); }
  .stage ul { list-style: none; padding: 0; margin: 18px 0 0; }
  .stage li { display: flex; align-items: center; gap: 10px; font-size: 15px; color: rgba(93,91,72,.8); margin-top: 8px; }
  .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--sage); flex-shrink: 0; }
  .soft-box { margin-top: 44px; border-radius: 40px; border: 1px solid rgba(93,91,72,.2); background: rgba(93,91,72,.05); padding: 36px; }

  /* cohorts */
  .cohort { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 28px; border-radius: 32px; color: var(--bark); transition: .3s; }
  .cohort:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(93,91,72,.1); }
  .cohort .icon { margin-top: 18px; width: 64px; height: 64px; border-radius: 50%; background: var(--bark); color: var(--linen); display: flex; align-items: center; justify-content: center; font-size: 28px; }
  .cohort .date { margin-top: 14px; font-size: 26px; }
  .cohort small { color: var(--text-faint); margin-top: 6px; }
  .tag { display: inline-block; border-radius: 999px; background: rgba(93,91,72,.1); padding: 4px 12px; font-size: 13px; font-weight: 700; }

  /* about */
  .person img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
  .person { overflow: hidden; }
  .person .body { padding: 28px; color: rgba(93,91,72,.78); }
  .person h3 { font-size: 26px; color: var(--bark); }
  .person .role { color: var(--sand); font-weight: 700; font-size: 15px; }
  .dark-box { margin-top: 28px; border-radius: 40px; background: var(--bark); color: var(--linen); padding: 44px 32px; text-align: center; }
  .dark-box p { max-width: 680px; margin: 14px auto 0; color: rgba(249,244,236,.86); }

  /* faq */
  .faq { max-width: 780px; margin: 50px auto 0; border-top: 1px solid rgba(93,91,72,.15); }
  .faq details { border-bottom: 1px solid rgba(93,91,72,.15); padding: 6px 0; }
  .faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0; font-size: 21px; cursor: pointer; }
  .faq summary::-webkit-details-marker { display: none; }
  .faq summary::after { content: "+"; flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; background: rgba(93,91,72,.1); display: flex; align-items: center; justify-content: center; font-size: 20px; }
  .faq details[open] summary::after { content: "−"; background: var(--bark); color: var(--linen); }
  .faq details p { padding: 0 0 20px; color: rgba(93,91,72,.75); }

  /* form */
  .form-card { padding: 40px 32px; box-shadow: 0 20px 45px rgba(93,91,72,.08); }
  .field { margin-top: 18px; }
  .field label { display: block; font-size: 16px; margin-bottom: 6px; }
  .field input, .field select { width: 100%; font: inherit; font-size: 17px; color: var(--bark); background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; }
  .field input:focus, .field select:focus { outline: 2px solid rgba(93,91,72,.35); border-color: transparent; }
  .field input[aria-invalid="true"], .field select[aria-invalid="true"] { border-color: #B5644E; }
  .err { color: #9A4F3C; font-size: 14px; margin-top: 4px; min-height: 0; }
  .form-err { color: #9A4F3C; margin-top: 16px; }
  .submit { width: 100%; justify-content: center; margin-top: 26px; height: 52px; }
  .submit[disabled] { opacity: .6; cursor: wait; }
  .fine { text-align: center; font-size: 13px; color: var(--text-faint); margin-top: 12px; }
  .thanks { text-align: center; padding: 30px 10px; border-radius: 24px; border: 1px solid rgba(93,91,72,.3); background: rgba(93,91,72,.05); animation: breath 2.4s ease-in-out infinite; }
  @keyframes breath { 0%,100% { box-shadow: 0 0 0 0 rgba(76,100,80,.25); } 50% { box-shadow: 0 0 0 14px rgba(76,100,80,0); } }
  .thanks .check { width: 56px; height: 56px; border-radius: 50%; background: var(--bark); color: var(--linen); margin: 0 auto; display: flex; align-items: center; justify-content: center; font-size: 26px; }
  .skeleton div { height: 48px; border-radius: 14px; background: linear-gradient(90deg, #efe9de, #f7f2ea, #efe9de); background-size: 200% 100%; animation: sk 1.4s infinite; margin-top: 18px; }
  @keyframes sk { to { background-position: -200% 0; } }

  footer { border-top: 1px solid var(--line); background: var(--linen); padding: 56px 0 110px; font-size: 15px; color: var(--text-soft); }
  footer a { color: inherit; text-decoration: none; }
  footer a:hover { color: var(--bark); }
  @media (min-width: 700px) { footer { padding-bottom: 56px; } }
  dialog.card { width: min(440px, calc(100vw - 32px)); padding: 32px 28px; color: var(--bark); box-shadow: 0 30px 70px rgba(93,91,72,.25); }
  dialog::backdrop { background: rgba(60,58,44,.45); }
  /* mobile review */
  html { -webkit-text-size-adjust: 100%; }
  section[id] { scroll-margin-top: 90px; }
  a, button, summary { -webkit-tap-highlight-color: rgba(93,91,72,.12); }
  :focus-visible { outline: 2px solid var(--bark); outline-offset: 2px; }
  .nav a { min-height: 40px; display: inline-flex; align-items: center; }
  @media (max-width: 700px) {
    body { font-size: 17px; }
    section { padding: 64px 0; }
    section[id] { scroll-margin-top: 16px; }
    .wrap { padding: 0 18px; }
    .grid2 { gap: 32px; }
    .hero { min-height: 0; padding-top: 48px; padding-bottom: 72px; }
    .hero h1 { margin-top: 16px; }
    .hero .actions .btn { width: 100%; justify-content: center; }
    .hero-img { max-width: 360px; margin-top: 12px; }
    .float-card { right: 6px; bottom: -18px; width: 170px; padding: 12px 14px; }
    .float-card p:nth-child(2) { font-size: 17px !important; }
    .float-tag { left: 6px; top: -14px; font-size: 16px; padding: 8px 14px; }
    .lead { font-size: 17.5px; }
    .stage { padding: 24px; }
    .stage .n { font-size: 38px; }
    .cohort { padding: 22px 18px; }
    .soft-box { padding: 22px; border-radius: 28px; margin-top: 32px; }
    .dark-box { padding: 32px 20px; border-radius: 28px; }
    .person .body { padding: 22px; }
    .faq summary { font-size: 18px; padding: 14px 0; }
    .form-card { padding: 26px 18px; border-radius: 28px; }
    .btn { padding: 14px 22px; }
    .submit { height: 54px; }
    .pill { line-height: 1.4; font-size: 13px; }
    dialog.card { max-height: 88vh; max-height: 88dvh; overflow-y: auto; padding: 22px 18px; border-radius: 28px; margin: auto; }
    #book-close { min-width: 44px; min-height: 44px; margin: -10px -8px 0 0; }
    footer { padding: 40px 0 100px; }
  }
  @media (max-width: 380px) {
    .float-card { display: none; }
    .nav a { padding: 8px 8px; font-size: 12.5px; }
  }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  }

  /* polish v2: smooth mobile scrolling + cleaner phone layout */
  html, body { overflow-x: hidden; overflow-x: clip; max-width: 100%; }
  body { overscroll-behavior-x: none; }
  .eyebrow { letter-spacing: .02em; }
  #dates .wrap > img { display: none; }
  .cohort { position: relative; }
  .cohort::after { content: "להזמנת מקום ←"; margin-top: 16px; display: inline-block; border-radius: 999px; background: var(--bark); color: var(--linen); font-weight: 700; font-size: 15px; padding: 10px 20px; }
  @media (max-width: 700px) {
    .blob { display: none; }
    .hero { background: radial-gradient(120% 60% at 100% 0%, rgba(234,208,207,.45), transparent 60%), radial-gradient(90% 50% at 0% 100%, rgba(168,177,162,.25), transparent 60%); }
    .nav nav { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(249,244,236,.97); }
    .nav { bottom: calc(12px + env(safe-area-inset-bottom)); }
    .float-card { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--linen); }
    .pulse, .rise, .thanks { animation: none !important; }
    .stage, .cohort, .btn { transition: none; }
    .stage:hover, .cohort:hover { transform: none; box-shadow: none; }
    section { padding: 52px 0; }
    .h2 { font-size: 2rem; }
    .hero { padding-top: 36px; padding-bottom: 56px; }
    .hero h1 { font-size: 3.4rem; }
    .hero .actions + .lead { display: none; }
    .hero-img { max-width: none; }
    .hero-img .organic { aspect-ratio: 4/3; border-radius: 36px 8px 36px 8px; }
    .float-tag, .float-card { display: none; }
    #workshops .organic { aspect-ratio: 16/10 !important; }
    .grid3 { gap: 14px; }
    .stage { padding: 20px 22px; border-radius: 28px; }
    .stage .n { font-size: 30px; }
    .stage ul { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 12px; }
    .stage li { margin-top: 0; }
    .cohort { display: grid; grid-template-columns: 1fr auto; text-align: right; align-items: center; gap: 2px 12px; padding: 18px 20px; border-radius: 24px; }
    .cohort > * { grid-column: 1; margin-top: 0 !important; }
    .cohort .icon { display: none; }
    .cohort .tag { justify-self: start; margin-bottom: 4px; }
    .cohort .date { font-size: 22px; }
    .cohort::after { grid-column: 2; grid-row: 1 / span 6; margin-top: 0; font-size: 14px; padding: 10px 14px; content: "להזמנה ←"; }
    .person img { aspect-ratio: 3/2; }
    .soft-box, .dark-box { margin-top: 20px; }
    footer .grid3 > div:nth-child(2) { display: none; }
    footer { text-align: center; }
    footer p[style*="max-width"] { margin-inline: auto; }
  }
/* bigger text */
body { font-size: 20px; }
.btn { font-size: 18px; }
.eyebrow { font-size: 15px; }
.lead { font-size: 21px; }
.pill { font-size: 15.5px; }
.nav a { font-size: 16px; }
.stage li { font-size: 17px; }
.tag { font-size: 14px; }
.person .role { font-size: 16.5px; }
.faq summary { font-size: 22.5px; }
.field label { font-size: 17.5px; }
.field input, .field select { font-size: 18px; }
.err { font-size: 15px; }
.fine { font-size: 14px; }
footer { font-size: 16.5px; }
.cohort::after { font-size: 16px; }
[style*="font-size:13px"] { font-size: 14.5px !important; }
[style*="font-size:14px"] { font-size: 15.5px !important; }
[style*="font-size:15px"] { font-size: 16.5px !important; }
@media (max-width: 700px) {
  body { font-size: 18.5px; }
  .lead { font-size: 19px; }
  .faq summary { font-size: 19.5px; }
  .pill { font-size: 14.5px; }
  .nav a { font-size: 13.5px; padding: 8px 9px; }
  .stage li { font-size: 16.5px; }
  .cohort::after { font-size: 15px; }
}
@media (max-width: 380px) {
  .nav a { font-size: 12.5px; padding: 8px 7px; }
}
/* bigger cohort cards (buttons don't inherit page font size) */
.cohort { font-size: 21px; line-height: 1.5; }
.cohort .tag { font-size: 16px; padding: 5px 14px; }
.cohort .date { font-size: 30px; }
.cohort small { font-size: 18px; }
.cohort::after { font-size: 17px; }
@media (max-width: 700px) {
  .cohort { font-size: 19px; }
  .cohort .tag { font-size: 15px; }
  .cohort .date { font-size: 25px; }
  .cohort small { font-size: 16.5px; }
  .cohort::after { font-size: 15.5px; }
}
/* cohort cards, larger */
.cohort { font-size: 23px; line-height: 1.5; }
.cohort .tag { font-size: 18px; padding: 6px 16px; }
.cohort .date { font-size: 34px; }
.cohort small { font-size: 20px; }
.cohort::after { font-size: 19px; padding: 12px 22px; }
@media (max-width: 700px) {
  .cohort { font-size: 21px; }
  .cohort .tag { font-size: 16.5px; }
  .cohort .date { font-size: 28px; }
  .cohort small { font-size: 18.5px; }
  .cohort::after { font-size: 17px; padding: 10px 14px; }
}
