/* Coaching by May - "The Campaign" world (2026-10-18).
   One committed signature green, an ivory reading ground, near-black ink.
   Shared by every page that adopts the world; page layout lives in its own sheet. */

:root {
    --green: #0a6a49;
    --green-press: #075638;
    --green-ink: #e9f1ea;          /* secondary text on green, tinted from the field */
    --ivory: #f7f6ec;
    --ivory-2: #efeee2;
    --ink: #141414;
    --ink-2: #4f4d45;              /* secondary text on ivory */
    --rule-ivory: rgba(20, 20, 20, 0.16);
    --rule-green: rgba(247, 246, 236, 0.34);

    --font: 'Hanken Grotesk', 'Noto Sans Hebrew', system-ui, -apple-system, 'Segoe UI', sans-serif;

    --gutter: clamp(20px, 6vw, 64px);
    --measure: 68ch;
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    background: var(--ivory);
    color: var(--ink);
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin: 0; }
a { color: inherit; }

::selection { background: var(--green); color: var(--ivory); }
.on-green ::selection { background: var(--ivory); color: var(--green); }

:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Numbers and Latin names stay left-to-right inside Hebrew lines. */
.num { unicode-bidi: isolate; direction: ltr; font-variant-numeric: tabular-nums lining-nums; }

/* Small capitals: the world's label voice. Hebrew has no case, so its tracking is gentler. */
.caps {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    line-height: 1.4;
}
[dir="rtl"] .caps { letter-spacing: 0.06em; font-size: 12.5px; }

.on-green { background: var(--green); color: var(--ivory); }

.visually-hidden {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Buttons: square keys. Ivory on green, green on ivory. */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    padding: 0 24px;
    border: 1px solid transparent;
    border-radius: 0;
    font-family: var(--font);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 180ms var(--ease-out), color 180ms var(--ease-out), border-color 180ms var(--ease-out);
}
.btn-ivory { background: var(--ivory); color: var(--green); }
.btn-ivory:hover { background: transparent; color: var(--ivory); border-color: var(--ivory); }
.btn-green { background: var(--green); color: var(--ivory); }
.btn-green:hover { background: var(--green-press); }

.text-link {
    font-size: 15px;
    font-weight: 500;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    transition: text-decoration-color 180ms var(--ease-out);
}
.on-green .text-link { color: var(--ivory); text-decoration-color: var(--rule-green); }
.on-green .text-link:hover { text-decoration-color: var(--ivory); }
.text-link:hover { text-decoration-color: currentColor; }

/* Header: wordmark at the start, navigation and language at the end. */
.site-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px var(--gutter);
}
.wordmark { text-decoration: none; white-space: nowrap; font-weight: 400; letter-spacing: 0.42em; font-size: 11px; }
[dir="rtl"] .wordmark { letter-spacing: 0.42em; font-size: 11px; }
.site-nav .caps { font-weight: 400; letter-spacing: 0.36em; }
/* Hebrew has no capitals: nav words keep their natural spacing. */
[dir="rtl"] .site-nav .caps { letter-spacing: 0.02em; font-size: 13px; }
.site-nav { display: flex; align-items: center; gap: clamp(14px, 2.4vw, 30px); }
.site-nav a { text-decoration: none; padding: 12px 0; white-space: nowrap; }
.site-nav a:hover { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.site-nav .nav-wide { display: none; }

/* Language: the existing i18n toggle (#langDropdown / #langBtn / .lang-option) re-dressed. */
.lang-dropdown { position: relative; }
.lang-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px;
    margin-inline-end: -12px;
    background: none; border: 0; color: inherit; cursor: pointer;
    font-size: 15px;
}
.lang-menu {
    position: absolute; inset-inline-end: 0; top: calc(100% + 4px);
    min-width: 140px;
    background: var(--ivory); color: var(--ink);
    border: 1px solid var(--rule-ivory);
    display: none; z-index: 30;
}
.lang-dropdown.open .lang-menu { display: block; }
.lang-option {
    display: flex; align-items: center; gap: 10px; width: 100%;
    min-height: 44px; padding: 0 14px;
    background: none; border: 0; cursor: pointer;
    font: 500 14px/1 var(--font); color: inherit; text-align: start;
}
.lang-option:hover { background: var(--ivory-2); }
.lang-option i { visibility: hidden; color: var(--green); font-size: 11px; }
.lang-option.active i { visibility: visible; }

/* Floating actions: appear once the hero has scrolled away. */
.float-actions {
    position: fixed; inset-inline-start: 16px; bottom: 16px; z-index: 40;
    display: flex; gap: 8px;
    opacity: 0; transform: translateY(12px); pointer-events: none;
    transition: opacity 260ms var(--ease-out), transform 260ms var(--ease-out);
}
.float-actions.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.float-actions .btn { min-height: 48px; border-color: var(--ivory); }
.float-wa {
    display: inline-flex; align-items: center; justify-content: center;
    width: 48px; height: 48px;
    background: var(--ivory); color: var(--green);
    border: 1px solid var(--ink);
    font-size: 22px; text-decoration: none;
}

/* Footer: the site's full navigation, quiet, on ivory. */
.site-footer { border-top: 1px solid var(--rule-ivory); padding: 48px var(--gutter) 36px; color: var(--ink); }
.footer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; max-width: 1180px; margin: 0 auto; }
.footer-col { display: flex; flex-direction: column; gap: 2px; }
.footer-col .caps { color: var(--green); margin-bottom: 10px; }
.footer-col a { text-decoration: none; padding: 6px 0; font-size: 14.5px; color: var(--ink-2); }
.footer-col a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.footer-base {
    max-width: 1180px; margin: 36px auto 0; padding-top: 22px;
    border-top: 1px solid var(--rule-ivory);
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
    font-size: 13px; color: var(--ink-2);
}
.footer-social { display: flex; gap: 4px; }
.footer-social a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; color: var(--ink-2); text-decoration: none; font-size: 17px;
}
.footer-social a:hover { color: var(--green); }
.footer-base a { color: inherit; }

@media (max-width: 640px) {
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-col:last-child { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
    .site-nav .nav-wide { display: inline; }
}

/* ---------- Shared sections (homepage, poker page, more to come) ---------- */
/* ---------- Heard on: a quiet text row, names only ---------- */
.heard { padding: 0 var(--gutter) 56px; }
.heard-label { color: var(--ink-2); }
.heard-list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0 26px; }
.heard-list a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; font-size: 15px; font-weight: 500; color: var(--ink); }
.heard-list a:hover { color: var(--green); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }

/* Closing field: the last booking point, a full green band. */
.closing { padding: 60px var(--gutter) 64px; }
.closing-title { font-size: clamp(32px, 8vw, 64px); font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
[dir="rtl"] .closing-title { letter-spacing: -0.01em; }
.closing-sub { margin-top: 14px; color: var(--green-ink); font-size: 17px; }
.closing-actions { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }

@media (min-width: 1024px) {
    .heard { max-width: 1280px; margin-inline: auto; }
    .closing-inner { max-width: 1280px; margin-inline: auto; display: flex; align-items: end; justify-content: space-between; gap: 40px; }
    .closing-actions { margin-top: 0; }
}

/* Language-only blocks: Hebrew is the default, English shows once i18n sets body.lang-en. */
body:not(.lang-en) .content-en, body.lang-en .content-he { display: none; }

/* Direction-aware arrows: icons are drawn pointing left (forward in Hebrew); flip them in English. */
[dir="ltr"] .i-dir { transform: scaleX(-1); }

/* Section label: small capitals in the signature green above a section heading. */
.section-label { display: block; color: var(--green); margin-bottom: 12px; }

/* Cookie banner (cookie-consent.css) re-dressed for this world. Behaviour and layout are untouched:
   Reject and Accept stay side by side at the same size. */
#cbm-cc-banner { font-family: var(--font); }
.cbm-cc-box {
    background: var(--ivory);
    color: var(--ink);
    border: 1px solid var(--ink);
    border-radius: 0;
    box-shadow: none;
}
.cbm-cc-title { color: var(--ink); font-family: var(--font); }
.cbm-cc-desc { color: var(--ink-2); font-family: var(--font); }
.cbm-cc-link, .cbm-cc-pref-link { color: var(--green); }
.cbm-cc-link:hover, .cbm-cc-pref-link:hover { color: var(--green-press); }
.cbm-cc-btn { font-family: var(--font); border-radius: 0; font-weight: 600; }
.cbm-cc-btn-primary { background: var(--green); color: var(--ivory); border: 1px solid var(--green); }
.cbm-cc-btn-primary:hover { background: var(--green-press); }
.cbm-cc-btn-secondary { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.cbm-cc-btn-secondary:hover { background: var(--ivory-2); color: var(--ink); border-color: var(--ink); }
.cbm-cc-box:not(:has(.cbm-cc-prefs)) [data-cc-action="customize"] { color: var(--ink-2); }
.cbm-cc-box:not(:has(.cbm-cc-prefs)) [data-cc-action="customize"]:hover { color: var(--green); }
.cbm-cc-cat { border-color: var(--rule-ivory); }
.cbm-cc-cat-title { color: var(--ink); }
.cbm-cc-cat-desc { color: var(--ink-2); }
.cbm-cc-slider { background: var(--rule-ivory); }
.cbm-cc-switch input:checked + .cbm-cc-slider { background: var(--green); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
}
