/* Divi bridge for Explore SEQ (prototype structure, 13 Nov 2026; after Tree Problem No Problem and FSB Welding).
   The whole prototype stylesheet (site.css + pages/*.css) ships in this theme and convert.py keeps the prototype's structure
   (converter.theme_css = "prototype"). Divi wraps every module in extra boxes and gives sections, headings, lists and links
   its own defaults; this file, printed BEFORE site.css (and after Divi's inline CSS), makes Divi's boxes invisible or neutral
   so the prototype rules apply unchanged. Add a rule here only for a Divi default you can SEE leaking (tools/why.py).

   Conventions set by convert.py:
     .sk-t   transparent structure (the row and column Divi needs around every section's content)
     .sk-b   a Divi section/group that stands for a prototype element (kept as a real box, reset to a plain block)
     .sk-i   neutral wrapper around inline-start Text content (stops WordPress wpautop adding <p>)
     .sk-c   a loop Group that only repeats its content (the repeated cards sit straight in the grid)
   Selectors use :where(.sk) so they weigh the same as a one-element rule; site.css's own class rules win. */

/* ---------- 1. Divi's structure and module wrappers do not generate boxes ---------- */
.sk .sk-t,
.sk .sk-t > .et_pb_column,
.sk .et_pb_text,
.sk .et_pb_text_inner,
.sk .et_pb_code,
.sk .et_pb_code_inner,
.sk .sk-b .et_pb_image,
.sk .sk-b .et_pb_image_wrap,
.sk .sk-i,
.sk .sk-c { display: contents; }
/* the Theme Builder header/footer wrappers: the prototype's own header is fixed against the page, as in the draft */
.sk .et-l--header, .sk .et-l--header > .et_builder_inner_content,
.sk .et-l--footer, .sk .et-l--footer > .et_builder_inner_content,
.sk .et-l--body, .sk .et-l--body > .et_builder_inner_content,
.sk .et-l--post, .sk .et-l--post > .et_builder_inner_content { display: contents; }
.sk #page-container, .sk #et-boc, .sk #et-main-area { overflow: visible; }

/* ---------- 2. sections and groups that carry prototype classes: plain blocks ---------- */
:where(.sk) .sk-b {
  display: block; flex-direction: row; flex-wrap: nowrap; align-items: normal; justify-content: normal;
  column-gap: 0; row-gap: 0; --horizontal-gap: 0px; --vertical-gap: 0px;
  width: auto; max-width: none; min-height: 0; margin: 0; padding: 0; border: 0;
  background-color: transparent; text-align: inherit; position: static;
}
:where(.sk) .sk-b { margin-bottom: 0 !important; } /* Divi's module gap; the generated .m.css copies of the prototype margins load after this */
:where(.sk li).sk-b { display: list-item; list-style: none; }
:where(.sk) .et_pb_text, :where(.sk) .et_pb_code { line-height: inherit; font-size: inherit; font-weight: inherit; color: inherit; text-align: inherit; }
/* Divi prints each text module's own "text-align: start"; two classes win in either order of the cold/warm cache. */
.sk .et_pb_text, .sk .et_pb_code { text-align: inherit; }
/* new sections Ryan adds are transparent (the sand page shows through); a background set in the builder still wins */
:where(.sk) .et_pb_section { background-color: transparent; }

/* ---------- 3. Divi's global element defaults back to what the draft starts from ----------
   The draft resets headings, paragraphs and lists to no margin and no padding and inherits link colour (site.css does this with
   zero-weight rules, which Divi's element rules would beat); the same reset is repeated here at element weight. */
html, .sk #page-container, .sk #et-main-area, .sk #main-content { background: var(--alt, #f5f0e6); }
body.sk { font-family: var(--font-body); font-size: 17px; line-height: 1.6; color: var(--text); font-weight: 400; }
:where(.sk) h1, :where(.sk) h2, :where(.sk) h3, :where(.sk) h4, :where(.sk) h5, :where(.sk) h6 { margin: 0; padding: 0; color: inherit; font-weight: 700; line-height: inherit; }
:where(.sk) p { margin: 0; padding: 0; }
:where(.sk) a { color: inherit; text-decoration: none; }
:where(.sk) ul, :where(.sk) ol { margin: 0; padding: 0; list-style: none; }
:where(.sk) figure { margin: 0; }
:where(.sk) dl, :where(.sk) dd, :where(.sk) dt { margin: 0; padding: 0; }
:where(.sk) small { font-size: smaller; }
:where(.sk) blockquote { margin: 0; padding: 0; border: 0; font-style: normal; }
:where(.sk) img { max-width: 100%; height: auto; }
:where(.sk) button { font-family: inherit; }
:where(.sk) input, :where(.sk) textarea, :where(.sk) select { font-family: inherit; }
/* Divi: .entry-content ul { list-style-type: disc; padding: 0 0 23px 1em; line-height: 26px } outweighs one-class list rules;
   build_theme.py writes !important copies of the prototype's list padding/line-height/list-style. Same weight here as Divi's
   rule (loaded later, so it wins over Divi but loses to the prototype's equal-weight rules). */
:where(.sk) .entry-content ul, :where(.sk) .entry-content ol { padding: 0; line-height: inherit; list-style: none; }
:where(.sk) .entry-content ul li, :where(.sk) .entry-content ol li { list-style: inherit; }

/* ---------- 4. things Divi adds around the page ---------- */
.sk .et_builder_inner_content { z-index: auto; }
.sk.et_fixed_nav.et_show_nav #page-container { padding-top: 0 !important; }
.sk #main-content .container::before { display: none; }
.sk #main-content .container { width: 100%; max-width: var(--container); padding-top: 0; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 99999; background: var(--accent, #ffb341); color: var(--ink, #000); padding: 10px 16px; border-radius: 10px; }
.skip:focus { left: 8px; }
/* the draft pads <main> under the fixed header on every page but the home page; in WordPress the page body is #main-content */
body.sk:not(.page-home) #main-content { padding-top: 78px; }
@media (max-width: 640px) { body.sk:not(.page-home) #main-content { padding-top: 66px; } }

/* ---------- 5. post bodies (the post's own content inside the post template) ---------- */
/* WordPress adds classes to photos and embeds; keep them inside the reading column. */
.sk .es-prose img { width: 100%; height: auto; border-radius: var(--radius-md); }
.sk .es-prose figure { margin: 1.9em 0; }
.sk .es-prose figure.es-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-md); overflow: hidden; background: var(--ink); }
.sk .es-prose figure.es-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sk .es-prose > .et_pb_post_content, .sk .es-prose .et_pb_post_content { display: contents; }

/* ---------- 6. rules written with a child combinator (parent > *) meet Divi's module wrappers ---------- */
/* Wrapper boxes are display: contents, so a rule on "> *" would land on a wrapper: repeat it one level down here when you meet it. */
.sk .es-hero__copy .et_pb_text_inner > *, .sk .es-hero__copy > .et_pb_code .et_pb_code_inner > * { animation-fill-mode: both; }
.sk .es-toc--empty { display: none; }
