/* Theme-owned adjustments. Loaded after main.css.
   The design source rendered several call-to-action controls as <button> elements. This theme turns
   them into real <a> links so each destination has its own address, and a <button> shrinks to its
   content while a flex <a> would stretch. The compiled Tailwind bundle has no width:fit-content
   utility, so the one missing declaration is supplied here. */
.eohr-shrink-to-content{width:fit-content;}

/* Page-wide scroll lock while a modal is open. */
.eohr-scroll-locked{overflow:hidden;}

/* Form feedback colours. The design source has no validation or error states, so its compiled
   bundle carries no red/emerald text utilities to reuse. Both meet WCAG AA on white. */
.eohr-feedback--error{color:#b42318;}
.eohr-feedback--success{color:#067647;}

/* Visually hidden but exposed to assistive technology. The design source had no accessible labels
   on its search and icon-only controls, so the utility is absent from the compiled bundle. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}

/* ===========================================================================
   MATERIAL BODY - full block-editor coverage.

   Everything an editor can produce in Gutenberg is styled here, so a heading level, a bold run, a
   link, a list or a table always lands in the design's typography instead of the browser default.

   The same rules cover three roots, because the editor is only useful if it shows what will ship:
   the front-end article wrapper (.eohr-article-body), the plain-prose wrapper (.eohr-prose), and the
   editor canvas. The canvas lives in an IFRAME whose body carries neither admin_body_class nor any
   theme class - what it does carry is post-type-post / post-type-eohr_notice, which is what the
   selectors below hook into, and what keeps this typography off the editors of other post types.

   The theme deliberately drops WordPress's global-styles stylesheet (see eohr_remove_block_extras()
   in inc/gutenberg.php), which is where core would otherwise define --wp--preset--* variables and
   the .has-*-color helper classes. Both are therefore declared here, limited to this theme's own
   palette - which is also what keeps an editor from painting a box in a colour the design has no
   place for.
   =========================================================================== */
.eohr-article-body{display:flex;flex-direction:column;gap:1.5rem;}

/* The same prose, without the content-box chrome: used for a system message in the personal area and
   in the dashboard widget, where the text is the whole component and needs no box of its own. */
.eohr-prose{display:flex;flex-direction:column;gap:.75rem;}

/* --- The content box: every top-level block that holds prose --------------
   A box is normally a Group block, but an editor who types a paragraph straight into the root gets a
   box too: outside every box that text would render as loose, unstyled prose in the middle of the
   article. The list below is therefore "everything that is prose"; blocks that carry their own frame
   by design (the PDF file, an image, buttons, an embed, a separator) are deliberately absent and stay
   bare.

   Painted alternately - odd banana, even white - so the editor never picks a colour per box and the
   rhythm cannot drift when a box is inserted or removed in the middle. Colours reference the bundle's
   own custom properties rather than literals: --color-amber-50 IS #fffbeb, the same value the
   thank-you box uses through bg-amber-50/90.
   The counting selector is nth-child(... of <the same list>), NOT nth-of-type: every child here is a
   div or a p, so nth-of-type would count the un-boxed blocks too and flip the whole rhythm after them.
   --------------------------------------------------------------------------- */
:is(.eohr-article-body,.post-type-post .is-root-container)>:is(.wp-block-group,.wp-block-paragraph,.wp-block-heading,.wp-block-list,.wp-block-quote,.wp-block-pullquote,.wp-block-table,.wp-block-details){border:1px solid var(--color-stone-200);border-radius:var(--radius-3xl);padding:1.5rem;box-shadow:0 1px 2px #0000000d;}

:is(.eohr-article-body,.post-type-post .is-root-container)>:is(.wp-block-group,.wp-block-paragraph,.wp-block-heading,.wp-block-list,.wp-block-quote,.wp-block-pullquote,.wp-block-table,.wp-block-details):nth-child(odd of :is(.wp-block-group,.wp-block-paragraph,.wp-block-heading,.wp-block-list,.wp-block-quote,.wp-block-pullquote,.wp-block-table,.wp-block-details)){background-color:var(--color-amber-50);border-color:var(--color-amber-200);}

:is(.eohr-article-body,.post-type-post .is-root-container)>:is(.wp-block-group,.wp-block-paragraph,.wp-block-heading,.wp-block-list,.wp-block-quote,.wp-block-pullquote,.wp-block-table,.wp-block-details):nth-child(even of :is(.wp-block-group,.wp-block-paragraph,.wp-block-heading,.wp-block-list,.wp-block-quote,.wp-block-pullquote,.wp-block-table,.wp-block-details)){background-color:var(--color-white);border-color:var(--color-stone-200);}

/* The two block styles from register_block_style(), for the single box that must break the rhythm. */
:is(.eohr-article-body,.post-type-post .is-root-container)>.wp-block-group.is-style-eohr-box-white{background-color:var(--color-white);border-color:var(--color-stone-200);}

:is(.eohr-article-body,.post-type-post .is-root-container)>.wp-block-group.is-style-eohr-box-banana{background-color:var(--color-amber-50);border-color:var(--color-amber-200);}

/* A loose prose block is a box of exactly one element, so its own bottom margin would show as padding. */
:is(.eohr-article-body,.post-type-post .is-root-container)>:is(.wp-block-paragraph,.wp-block-heading,.wp-block-list,.wp-block-quote,.wp-block-pullquote,.wp-block-table,.wp-block-details){margin-block-end:0;}

@media (min-width:640px){
:is(.eohr-article-body,.post-type-post .is-root-container)>:is(.wp-block-group,.wp-block-paragraph,.wp-block-heading,.wp-block-list,.wp-block-quote,.wp-block-pullquote,.wp-block-table,.wp-block-details){padding:2rem;}
}

/* --- Base typography -------------------------------------------------------
   Selectors are DESCENDANT, not child: WordPress wraps a Group block's children in
   .wp-block-group__inner-container, so a `>` selector silently matches nothing. */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)){font-family:var(--font-serif);color:var(--color-stone-700);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h1,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h2,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h3{margin:0 0 .25rem;padding-bottom:.5rem;border-bottom:1px solid color-mix(in oklab,var(--color-amber-200) 60%,transparent);font-family:var(--font-serif);font-weight:700;line-height:1.4;color:var(--color-stone-900);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h4,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h5,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h6{margin:0 0 .25rem;font-family:var(--font-serif);font-weight:700;line-height:1.4;color:var(--color-stone-900);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h1{font-size:1.5rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h2{font-size:1.25rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h3{font-size:1.125rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h4{font-size:1rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h5,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h6{font-size:.9375rem;color:var(--color-stone-800);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) p{margin:0;font-family:var(--font-serif);font-size:.875rem;line-height:1.625;color:var(--color-stone-700);text-align:justify;text-indent:1rem;}

@media (min-width:640px){
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h1{font-size:1.875rem;}
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h2{font-size:1.5rem;}
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h3{font-size:1.25rem;}
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) h4{font-size:1.125rem;}
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) p{font-size:1rem;}
}

/* space-y-3 in the design: the gap sits between siblings, not around them. Both shapes of a Group
   block are covered - with and without the inner container wrapper.
   Only INSIDE a box: the spacing between the boxes themselves is the flex gap on the root, and a
   margin here as well would add to it. */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-group__inner-container>*+*,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-group>*+*{margin-top:.75rem;}

/* --- Inline formatting ----------------------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) strong,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) b{font-weight:800;color:var(--color-stone-900);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) em,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) i,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) cite{font-style:italic;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) s{text-decoration:line-through;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) u{text-decoration:underline;text-underline-offset:2px;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) mark,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-inline-color mark{background-color:var(--color-amber-100);color:var(--color-amber-950);padding:0 .15em;border-radius:.2em;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) sub,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) sup{font-size:.7em;line-height:0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) abbr[title]{text-decoration:underline dotted;cursor:help;}

/* Links: underlined on purpose. Colour alone is not an accessible link indicator, and the brown
   used here on white/banana clears WCAG AA for both text and non-text contrast. */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) a{color:#8a4b0f;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;font-weight:600;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) a:hover,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) a:focus-visible{color:#4a2c11;text-decoration-thickness:2px;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) a:focus-visible{outline:2px solid var(--color-amber-500);outline-offset:2px;border-radius:.15rem;}

/* --- Lists ---------------------------------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) ul,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) ol{margin:0;padding-inline-start:1.25rem;font-family:var(--font-serif);font-size:.875rem;line-height:1.625;color:var(--color-stone-700);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) ul{list-style:disc;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) ol{list-style:decimal;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) li+li{margin-top:.25rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) li>ul,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) li>ol{margin-top:.25rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) li>ul{list-style:circle;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) ul.is-style-checklist{list-style:none;padding-inline-start:0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) ul.is-style-checklist>li::before{content:"✔";color:var(--color-emerald-600);margin-inline-end:.5rem;}

@media (min-width:640px){
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) ul,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) ol{font-size:1rem;}
}

/* --- Quotes --------------------------------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) blockquote{margin:0;padding:.25rem 1rem;border-inline-start:4px solid var(--color-amber-400);background-color:color-mix(in oklab,var(--color-amber-50) 60%,transparent);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) blockquote p{font-style:italic;text-indent:0;color:var(--color-amber-900);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) blockquote cite,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-quote cite{display:block;margin-top:.5rem;font-size:.75rem;font-style:normal;font-weight:700;color:var(--color-stone-500);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-pullquote{margin:0;padding:1.25rem;border-block:2px solid var(--color-amber-300);text-align:center;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-pullquote p{font-size:1.125rem;font-style:italic;text-align:center;text-indent:0;color:var(--color-stone-900);}

/* --- Code ----------------------------------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) code,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) kbd,
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) samp{font-family:var(--font-mono);font-size:.8125em;background-color:var(--color-stone-100);border:1px solid var(--color-stone-200);border-radius:.35rem;padding:.1em .35em;direction:ltr;unicode-bidi:embed;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) pre{margin:0;padding:1rem;background-color:var(--color-stone-900);color:var(--color-stone-100);border-radius:var(--radius-xl);overflow-x:auto;direction:ltr;text-align:left;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) pre code{background:none;border:0;padding:0;color:inherit;font-size:.8125rem;line-height:1.6;}

/* --- Separator ------------------------------------------------------------ */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) hr{margin:0;border:0;height:1px;background-color:var(--color-stone-200);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) hr.is-style-dots{background:none;text-align:center;line-height:1;height:auto;color:var(--color-amber-500);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) hr.is-style-dots::before{content:"···";font-size:1.5rem;letter-spacing:.5em;}

/* --- Tables --------------------------------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-table{margin:0;overflow-x:auto;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) table{width:100%;border-collapse:collapse;font-size:.8125rem;text-align:right;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) th{background-color:var(--color-stone-100);border-bottom:1px solid var(--color-stone-200);padding:.5rem;font-weight:700;color:var(--color-stone-700);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) td{border-bottom:1px solid var(--color-stone-100);padding:.5rem;color:var(--color-stone-600);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:color-mix(in oklab,var(--color-stone-50) 70%,transparent);}

/* --- Images, figures and captions ----------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) figure{margin:0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) img{max-width:100%;height:auto;border-radius:var(--radius-xl);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) figcaption{margin-top:.5rem;font-size:.75rem;line-height:1.5;color:var(--color-stone-500);text-align:center;text-indent:0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-image.is-style-rounded img{border-radius:var(--radius-3xl);}

/* Alignment classes. Core would supply these through its global stylesheet; this theme prints its
   own so the removal of that stylesheet cannot leave a floated image unstyled. */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .aligncenter{margin-inline:auto;text-align:center;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .alignright{float:right;margin:0 0 1rem 1rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .alignleft{float:left;margin:0 1rem 1rem 0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-text-align-center{text-align:center;text-indent:0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-text-align-right{text-align:right;text-indent:0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-text-align-left{text-align:left;text-indent:0;}

/* --- Columns and layout blocks -------------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-columns{display:flex;flex-wrap:wrap;gap:1.5rem;margin:0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-column{flex:1 1 0;min-width:12rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap;}

/* --- Buttons -------------------------------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-buttons{display:flex;flex-wrap:wrap;gap:.75rem;margin:0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-button__link{display:inline-block;padding:.5rem 1.25rem;border-radius:.75rem;background-color:var(--color-amber-500);color:var(--color-stone-950);font-weight:800;font-size:.8125rem;text-decoration:none;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-button__link:hover{background-color:var(--color-amber-600);color:var(--color-stone-950);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-button.is-style-outline .wp-block-button__link{background:none;border:1px solid var(--color-amber-500);color:#4a2c11;}

/* --- Details / summary ---------------------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-details{border:1px solid var(--color-stone-200);border-radius:var(--radius-xl);padding:.75rem 1rem;background-color:var(--color-white);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-details summary{cursor:pointer;font-weight:700;font-family:var(--font-serif);color:var(--color-stone-900);}

/* --- Embeds --------------------------------------------------------------- */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-embed{margin:0;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-embed__wrapper{position:relative;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-embed iframe{max-width:100%;border-radius:var(--radius-xl);border:0;}

/* --- The theme's editor palette -------------------------------------------
   Declared here rather than inherited from core's global stylesheet, so only these four colours can
   ever reach a published page. Values match add_theme_support( 'editor-color-palette' ). */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)){--wp--preset--color--eohr-white:#ffffff;--wp--preset--color--eohr-banana:#fffbeb;--wp--preset--color--eohr-brown:#4a2c11;--wp--preset--color--eohr-amber:#fed72f;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-eohr-white-color{color:#ffffff;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-eohr-banana-color{color:#fffbeb;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-eohr-brown-color{color:#4a2c11;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-eohr-amber-color{color:#7a5a09;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-eohr-white-background-color{background-color:#ffffff;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-eohr-banana-background-color{background-color:#fffbeb;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-eohr-brown-background-color{background-color:#4a2c11;color:#fed72f;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-eohr-amber-background-color{background-color:#fed72f;color:#4a2c11;}

/* Font-size presets, matching add_theme_support( 'editor-font-sizes' ). */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-small-font-size{font-size:.8125rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-medium-font-size{font-size:1rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-large-font-size{font-size:1.25rem;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .has-x-large-font-size{font-size:1.5rem;}

/* --- Uploaded PDF: core's File block, framed like a document ---------------
   Editors add a "קובץ" block, upload the PDF and turn on the preview. Using core here rather than a
   custom block means the upload UI, the media library and the download link are all native. */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-file{margin:0;border:1px solid var(--color-stone-300);border-radius:var(--radius-3xl);overflow:hidden;background-color:var(--color-white);box-shadow:0 20px 25px -5px #0000001a;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-file__embed{display:block;width:100%;height:550px;border:0;background-color:var(--color-stone-600);}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-file>a:not(.wp-block-file__button){display:block;padding:.75rem 1rem;font-family:var(--font-serif);font-size:.875rem;font-weight:700;color:var(--color-stone-800);border-top:1px solid var(--color-stone-200);text-decoration:none;}

/* The download control is interface, not prose, so it keeps the page's sans font rather than
   inheriting the serif the surrounding article body sets. */
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-file__button{display:inline-block;margin:0 1rem 1rem;padding:.5rem 1.25rem;border-radius:.75rem;background-color:var(--color-amber-500);color:var(--color-stone-950);font-family:var(--font-sans);font-weight:800;font-size:.75rem;text-decoration:none;}

:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-file__button:hover{background-color:var(--color-amber-600);}

@media (min-width:640px){
:is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice)) .wp-block-file__embed{height:650px;}
}

/* Top-level blocks in the editor are centred by WordPress with auto inline margins. The rules above
   zero the margins of most blocks, because the front-end wrapper is a flex column that stretches them
   instead - and in the editor that same zero pushed a File, Table or Columns block out of the writing
   column, hard against one side. This gives the centring back, for the canvas only. It has to come
   last: it ties on specificity with the per-block rules it corrects. */
.editor-styles-wrapper.post-type-post .is-root-container>*,
.editor-styles-wrapper.post-type-eohr_notice .is-root-container>*{margin-inline:auto;}

/* The post title is an h1, and the heading rule above zeroes heading margins - which took the auto
   inline margins WordPress centres the title with, leaving it flush to one side while the content
   below it stayed centred. It lives outside .is-root-container, so it needs its own line. */
.editor-styles-wrapper h1.wp-block-post-title,
.editor-styles-wrapper h1.editor-post-title{margin-inline:auto;}

/* Editor canvas: same direction and box treatment as the front end, so what you edit is what ships. */
.editor-styles-wrapper:is(.post-type-post,.post-type-eohr_notice){direction:rtl;background-color:#f5f3ed;}

/* The editor's root container keeps its own block layout - forcing flex on it would fight the
   inserter and the drag handles - so the space between boxes is a margin there, not a gap. */
.post-type-post .is-root-container>.wp-block-group+.wp-block-group{margin-top:1.5rem;}

.eohr-viewer-placeholder{border:2px dashed var(--color-amber-300);border-radius:var(--radius-3xl);background-color:var(--color-amber-50);padding:1.5rem;text-align:center;color:#4a2c11;}

/* ===========================================================================
   FOOTER CONTACT FORM (Contact Form 7).

   CF7 is the engine - mail, validation, spam, submissions - and its markup arrives in its own default
   look, which is a light-background form dropped into a near-black footer. These rules are the whole of
   the theme's contribution: the same rounded fields, amber action and stone palette the rest of the site
   uses. Nothing here changes how the form behaves.
   =========================================================================== */
.eohr-footer-form .wpcf7{margin:0;}

.eohr-footer-form .wpcf7-form p{margin:0 0 .5rem;}

/* Name and email share one row: the footer column is short, and two half-width fields cost one row
   instead of two without making either of them hard to type into. The subject field was dropped in the
   same pass - see inc/contact-form.php for why the page's form keeps it and this one does not. */
.eohr-footer-form .eohr-contact__row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;}

.eohr-footer-form .wpcf7-form-control{width:100%;background-color:var(--color-stone-900);border:1px solid var(--color-stone-700);border-radius:var(--radius-xl);padding:.5rem .75rem;color:var(--color-stone-100);font-family:var(--font-sans);font-size:.8125rem;line-height:1.4;}

.eohr-footer-form .wpcf7-form-control::placeholder{color:var(--color-stone-500);}

.eohr-footer-form .wpcf7-form-control:focus{outline:none;border-color:var(--color-amber-500);box-shadow:0 0 0 2px color-mix(in oklab,var(--color-amber-500) 30%,transparent);}

.eohr-footer-form textarea.wpcf7-form-control{min-height:3.25rem;resize:vertical;}

/* Submit sits at the inline END of its row - the left in this RTL interface. text-align:end and not
   left, so the rule stays correct if the form is ever rendered LTR. The wrapper is CF7's own, written
   by eohr_contact_form_registry(). */
.eohr-footer-form .eohr-contact__submit{text-align:end;}

.eohr-footer-form .wpcf7-submit{width:auto;background-color:var(--color-amber-500);border:0;border-radius:var(--radius-xl);color:var(--color-stone-950);font-weight:800;padding:.5rem 1.5rem;font-size:.8125rem;cursor:pointer;transition:background-color .15s;}

.eohr-footer-form .wpcf7-submit:hover{background-color:var(--color-amber-400);}

.eohr-footer-form .wpcf7-spinner{margin-inline-start:.5rem;}

.eohr-footer-form .wpcf7-not-valid-tip{color:#ffb4a8;font-size:.75rem;margin-top:.25rem;}

.eohr-footer-form .wpcf7-form-control.wpcf7-not-valid{border-color:#ff8a75;}

.eohr-footer-form .wpcf7-response-output{margin:.75rem 0 0;padding:.625rem .875rem;border-radius:var(--radius-xl);border-width:1px;font-size:.8125rem;color:var(--color-stone-100);}

.eohr-footer-form .wpcf7-form.sent .wpcf7-response-output{border-color:var(--color-emerald-500);background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent);}

.eohr-footer-form .wpcf7-form.invalid .wpcf7-response-output,
.eohr-footer-form .wpcf7-form.failed .wpcf7-response-output{border-color:#ff8a75;background-color:#ff8a7526;}

/* ===========================================================================
   CONSENT STEP (step two of the sign-up modal).

   Written as the theme's own BEM rather than as Tailwind utilities: the compiled bundle in main.css
   only carries the utilities the original design happened to use, so a utility this panel needed and
   the design did not would silently do nothing. Everything here is scoped to .eohr-consent__*.

   The pad is a <canvas>. touch-action:none is what makes a finger draw on it instead of scrolling the
   popup, and it is CSS rather than a JS preventDefault on its own because the browser needs to know
   before the gesture starts.
   =========================================================================== */
.eohr-consent__document{border:1px solid var(--color-stone-200);border-radius:var(--radius-2xl);overflow:hidden;background-color:var(--color-stone-100);}

.eohr-consent__frame{display:block;width:100%;height:42vh;min-height:15rem;border:0;}

.eohr-consent__open{margin:.5rem 0 1rem;text-align:center;font-size:.8125rem;}

.eohr-consent__open a{color:#92400e;font-weight:700;text-decoration:underline;}

.eohr-consent__open a:hover{color:#4a2c11;}

.eohr-consent__hint{margin:0 0 .5rem;color:var(--color-stone-600);font-size:.8125rem;line-height:1.6;}

.eohr-consent__pad{border:2px dashed var(--color-amber-400);border-radius:var(--radius-2xl);background-color:#fff;padding:.25rem;}

.eohr-consent__canvas{display:block;width:100%;height:9rem;border-radius:var(--radius-xl);touch-action:none;cursor:crosshair;}

.eohr-consent__actions{display:flex;justify-content:flex-start;margin:.5rem 0 1rem;}

.eohr-consent__clear{background:none;border:0;padding:0;color:var(--color-stone-500);font-family:inherit;font-size:.8125rem;font-weight:600;text-decoration:underline;cursor:pointer;}

.eohr-consent__clear:hover{color:#b42318;}

.eohr-consent__agree{display:flex;align-items:flex-start;gap:.5rem;color:var(--color-stone-700);font-size:.8125rem;line-height:1.6;cursor:pointer;}

.eohr-consent__agree input{margin-top:.25rem;width:1rem;height:1rem;accent-color:#4a2c11;flex-shrink:0;cursor:pointer;}

.eohr-consent__thanks{color:var(--color-stone-600);font-size:.9375rem;line-height:1.8;white-space:pre-line;}

/* ===========================================================================
   CONTACT PAGE FORM (Contact Form 7, light surface).

   The same plugin markup as the footer form, on white instead of near-black. Only the palette and the
   field sizing differ - the footer's rules are scoped to .eohr-footer-form and these to .eohr-page-form,
   so neither surface can be restyled by accident from the other.
   =========================================================================== */
.eohr-page-form .wpcf7{margin:0;}

.eohr-page-form .wpcf7-form p{margin:0 0 .75rem;}

.eohr-page-form .eohr-contact__row{display:grid;grid-template-columns:1fr;gap:.75rem;}

@media (min-width:640px){
.eohr-page-form .eohr-contact__row{grid-template-columns:1fr 1fr;}
}

.eohr-page-form .wpcf7-form-control{width:100%;background-color:var(--color-stone-50);border:1px solid color-mix(in oklab,var(--color-amber-500) 30%,transparent);border-radius:var(--radius-xl);padding:.625rem .875rem;color:var(--color-stone-900);font-family:var(--font-sans);font-size:.9375rem;line-height:1.5;}

.eohr-page-form .wpcf7-form-control::placeholder{color:var(--color-stone-400);}

.eohr-page-form .wpcf7-form-control:focus{outline:none;border-color:var(--color-amber-500);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-amber-400) 35%,transparent);}

.eohr-page-form textarea.wpcf7-form-control{min-height:9rem;resize:vertical;}

.eohr-page-form .wpcf7-submit{width:auto;background-color:#4a2c11;border:0;border-radius:9999px;color:#fed72f;font-weight:900;padding:.625rem 1.75rem;cursor:pointer;transition:background-color .15s;}

.eohr-page-form .wpcf7-submit:hover{background-color:#341d0a;}

.eohr-page-form .wpcf7-spinner{margin-inline-start:.5rem;}

.eohr-page-form .wpcf7-not-valid-tip{color:#b42318;font-size:.8125rem;margin-top:.25rem;}

.eohr-page-form .wpcf7-form-control.wpcf7-not-valid{border-color:#b42318;}

.eohr-page-form .wpcf7-response-output{margin:.75rem 0 0;padding:.625rem .875rem;border-radius:var(--radius-xl);border-width:1px;font-size:.875rem;color:var(--color-stone-800);}

.eohr-page-form .wpcf7-form.sent .wpcf7-response-output{border-color:var(--color-emerald-500);background-color:color-mix(in oklab,var(--color-emerald-500) 12%,transparent);}

.eohr-page-form .wpcf7-form.invalid .wpcf7-response-output,
.eohr-page-form .wpcf7-form.failed .wpcf7-response-output{border-color:#b42318;background-color:#b423180f;}

/* ===========================================================================
   PAGE SHELL, REQUIRED FIELDS AND LTR FIELDS.

   The page shell is the one place the width of a standalone page template is decided - see
   eohr_page_shell_class() in inc/theme-setup.php for why it is a rule here and not a Tailwind utility.
   =========================================================================== */
.eohr-page-shell{width:100%;max-width:56rem;margin-inline:auto;}

.eohr-required{color:#b42318;margin-inline-start:.15rem;font-weight:800;}

.eohr-required-note{margin:0 0 .75rem;color:var(--color-stone-500);font-size:.75rem;}

/* A field the browser rejected. Same specificity as the utility that colours the border, and this
   sheet loads after the bundle, so it wins without !important - including while focused, which is why
   the focus state is spelled out rather than left to the utility's focus: variant. */
.eohr-field--invalid,
.eohr-field--invalid:focus{border-color:#b42318;box-shadow:0 0 0 3px #b4231826;}

/* Fields whose CONTENT is left-to-right (email, national id, phone) but whose PLACEHOLDER should sit
   where a Hebrew reader starts reading. :placeholder-shown is true only while the field is empty, so
   the flip happens exactly once - on the first keystroke - and typing stays left-to-right. */
.eohr-field--ltr:placeholder-shown{direction:rtl;text-align:right;}

/* The invitation to the external research questionnaire, at the foot of the thank-you step. */
.eohr-consent__invite{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--color-stone-200);text-align:center;}

.eohr-consent__invite-title{margin:0 0 .5rem;color:var(--color-stone-900);font-size:1rem;font-weight:800;}

.eohr-consent__invite-text{margin:0 0 1rem;color:var(--color-stone-600);font-size:.875rem;line-height:1.7;}

.eohr-consent__invite-link{display:inline-block;background-color:#4a2c11;border-radius:9999px;color:#fed72f;font-weight:900;padding:.625rem 1.5rem;font-size:.9375rem;text-decoration:none;transition:background-color .15s;}

.eohr-consent__invite-link:hover{background-color:#341d0a;}

/* ===========================================================================
   MEMBER PROFILE (the "my details" form in the personal area).
   =========================================================================== */
/* The form owns its own vertical rhythm instead of borrowing space-y-4: the gaps here are between
   groups of different kinds (a field, a read-only panel, a note, the button), and one utility applying
   the same 1rem to all of them is what made the block read as cramped. */
.eohr-profile__form{display:flex;flex-direction:column;gap:1.5rem;}

.eohr-profile__field{display:flex;flex-direction:column;gap:.375rem;}

.eohr-profile__hint{margin:0;color:var(--color-stone-500);font-size:.75rem;line-height:1.5;}

.eohr-profile__facts{margin:0;padding:1.125rem 1.25rem;background-color:var(--color-stone-50);border:1px solid var(--color-stone-200);border-radius:var(--radius-xl);}

/* Label on the reading edge, value on the far one - the two are different kinds of thing, and a small
   gap between them made them read as one run of text. */
.eohr-profile__fact{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;align-items:baseline;}

.eohr-profile__fact+.eohr-profile__fact{margin-top:.875rem;padding-top:.875rem;border-top:1px solid var(--color-stone-200);}

.eohr-profile__fact dt{color:var(--color-stone-700);font-size:.8125rem;font-weight:700;margin:0;}

.eohr-profile__fact dd{color:var(--color-stone-900);font-size:.875rem;margin:0;}

.eohr-profile__note{margin:-.75rem 0 0;color:var(--color-stone-500);font-size:.75rem;line-height:1.6;}

/* A contact-form field filled in from the member's own account: readable, clearly not editable. */
.eohr-page-form input[data-eohr-locked],
.eohr-footer-form input[data-eohr-locked]{cursor:not-allowed;opacity:.75;}

/* ===========================================================================
   RESEARCH DEMO PAGE (temporary scaffolding - see page-research-demo.php).
   Delete this section together with that template when the real questionnaire is wired up.
   =========================================================================== */
.eohr-demo__code{margin:0;padding:.75rem .875rem;background-color:var(--color-stone-900);border-radius:var(--radius-xl);color:var(--color-stone-100);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;line-height:1.6;word-break:break-all;text-align:left;}

.eohr-demo__list{margin:0;}

.eohr-demo__row{padding:.625rem 0;border-top:1px solid var(--color-stone-200);}

.eohr-demo__row:first-child{border-top:0;}

.eohr-demo__row dt{margin:0 0 .25rem;font-size:.8125rem;font-weight:700;color:var(--color-stone-900);}

.eohr-demo__row dd{margin:0;font-size:.8125rem;line-height:1.6;color:var(--color-stone-600);}

.eohr-demo__value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;text-align:left;}

/* ===========================================================================
   THE STICKY HEADER AND THE WORDPRESS ADMIN BAR.

   The header is sticky at top:0, and the admin bar is FIXED at top:0 - so for anyone who sees the admin
   bar (editors and administrators; it is hidden from members, see inc/gutenberg.php) the header scrolled
   up underneath it. WordPress's own html{margin-top} pushes the DOCUMENT down but says nothing about
   where a sticky element sticks.

   The three widths are WordPress's own behaviour, not a guess: the bar is 32px tall on desktop, 46px
   below 782px, and below 600px it stops being fixed and scrolls away with the page - so there the header
   goes back to top:0.
   =========================================================================== */
body.admin-bar header{top:32px;}

@media screen and (max-width:782px){
body.admin-bar header{top:46px;}
}

@media screen and (max-width:600px){
body.admin-bar header{top:0;}
}

/* A system notice or a page's own copy is NOT a printed document.

   The MATERIAL BODY block above gives prose a 1rem first-line indent and justified text, because the
   material view is meant to read like the document it stands for - and that is pixel-verified against the
   design. In the personal area and on a page, the same rule made a two-sentence announcement open with a
   stray gap that reads as a mistake rather than as typography. So .eohr-prose keeps the shared type scale
   and drops the two rules that only make sense in a long document.

   THE DOUBLED CLASS IS NOT A TYPO. The rule being overridden is written as
   :is(.eohr-article-body,.eohr-prose,.editor-styles-wrapper:is(...)) p - and :is() takes the specificity
   of its MOST specific argument, which here is a two-class selector, so that rule computes to (0,2,1).
   A plain .eohr-prose p is (0,1,1) and silently loses. Repeating the class matches (0,2,1) and, being
   later in the file, wins - without an !important that would then have to be fought later in turn. */
.eohr-prose.eohr-prose p{text-indent:0;text-align:right;}
