/* Engine additions to Raft's real stylesheets: what the original did with WordPress scripts or runtime, and accessibility. */
[hidden] { display: none !important; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal; }
.skip-link.screen-reader-text:focus { background: var(--wp--preset--color--raft-bg, #fff); color: var(--wp--preset--color--raft-fg, #000); clip: auto; clip-path: none; height: auto; width: auto; left: 8px; top: 8px; margin: 0; padding: 12px 20px; z-index: 100000; border-radius: 3px; text-decoration: none; box-shadow: 0 0 0 2px currentColor; }
:focus-visible { outline: 2px solid var(--wp--preset--color--raft-accent, currentColor); outline-offset: 2px; }
/* without JavaScript the overlay menu cannot open: show the links in the bar instead of hiding them */
html:not(.js) .wp-block-navigation__responsive-container-open, html:not(.js) .wp-block-navigation__responsive-container-close { display: none !important; }
html:not(.js) .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block !important; position: static; }
/* videos never overflow the viewport (live: a fixed 560px iframe made the mobile page scroll sideways) */
.entry-content iframe { max-width: 100%; }
@media (max-width: 599px) { .entry-content iframe[width][height] { height: auto; aspect-ratio: 16 / 9; } }
/* the query pagination block (no live page has more than one page of posts): same spacing as the rest of the theme */
.wp-block-query-pagination { justify-content: center; margin-top: 24px; }
.wp-block-query-pagination .page-numbers.current { font-weight: 600; text-decoration: underline; }
.wp-block-query-pagination a { text-decoration: none; }
/* Elementor accordion: the export keeps its items as <details class="wp-toggle"> (native, no script); dressed like Elementor's own accordion */
.elementor-accordion .wp-toggle { border: 1px solid #d5d8dc; }
.elementor-accordion .wp-toggle + .wp-toggle { border-block-start: none; }
.elementor-accordion .wp-toggle__title { display: block; list-style: none; cursor: pointer; font-family: var(--e-global-typography-primary-font-family, Roboto), sans-serif; font-weight: var(--e-global-typography-primary-font-weight, 600); line-height: 1; margin: 0; padding: 15px 20px; color: var(--e-global-color-primary, inherit); }
.elementor-accordion .wp-toggle__title::-webkit-details-marker { display: none; }
.elementor-accordion .wp-toggle__title::before { content: "\f067"; float: left; display: block; width: 1.5em; height: 19px; font-family: "Font Awesome 5 Free"; font-weight: 900; font-style: normal; }
.elementor-accordion .wp-toggle[open] > .wp-toggle__title::before { content: "\f068"; }
.elementor-accordion .wp-toggle__content { border-block-start: 1px solid #d5d8dc; padding: 15px 20px; }
@media (max-width: 767px) { .elementor-accordion .wp-toggle__title { padding: 12px 15px; line-height: 17px; } .elementor-accordion .wp-toggle__title::before { width: 1.2em; } .elementor-accordion .wp-toggle__content { padding: 7px 15px; } }
/* The exporter demotes the h1 that opens an API-published post to a markdown "##" (h2); live prints it as an h1 (56px, huge preset). Same look for the heading that opens the post body. */
.single-post .entry-content > h2:first-child { font-size: var(--wp--preset--font-size--huge); line-height: 1.25; }
/* The widgetkit sheet drops a 36px first letter on `.entry-content > p:first-of-type`. Live, a lone image sits in its own <p> (the first one, no letter); the export unwraps it, so the text paragraph would become the first-of-type: keep it plain as live does. */
.entry-content > img:first-child ~ p:first-of-type:first-letter { font-size: inherit !important; line-height: inherit; margin: 0; }
