/*
 * Semantic HTML neutraliser.
 * Elements that were converted from div/span/b to real tags (h2, p, ul, dl, button, table...)
 * carry .ch-sem; these rules only remove browser defaults so the page looks exactly as before.
 * Element-qualified :where() keeps specificity at (0,0,1): above UA styles, below every theme/Elementor rule.
 */

/* skip link + screen-reader text */
.skip-link {
    position: absolute;
    top: -100px;
    right: 8px;
    z-index: 1000000;
    background: #fff;
    color: var(--base, #ef4826);
    padding: 10px 16px;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .15);
    font-size: 14px;
}

.skip-link:focus {
    top: 8px;
}

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

main.site-main {
    display: block;
}

/* headings / text blocks */
h1:where(.ch-sem), h2:where(.ch-sem), h3:where(.ch-sem), h4:where(.ch-sem), h5:where(.ch-sem), h6:where(.ch-sem),
p:where(.ch-sem), figure:where(.ch-sem), blockquote:where(.ch-sem), dl:where(.ch-sem), dd:where(.ch-sem), address:where(.ch-sem) {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
}

:where(.ch-sem-inline) {
    display: inline;
}

address:where(.ch-sem) {
    font-style: normal;
}

ul:where(.ch-sem), ol:where(.ch-sem) {
    list-style: none;
    margin: 0;
    padding: 0;
}

del:where(.ch-sem) {
    text-decoration: inherit;
}

strong:where(.ch-sem) {
    font-weight: bold;
}

/* div/span → button */
button:where(.ch-sem) {
    -webkit-appearance: none;
    appearance: none;
    background: none;
    border: 0;
    border-radius: 0;
    margin: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    text-align: inherit;
    text-transform: none;
}

/* footer contact block (span + b → dt + dd) */
.box-footer .box-contact dt,
.box-footer .box-contact dd {
    display: inline;
    margin: 0;
}

.box-footer .box-contact dd {
    font-weight: bold;
}

/* galley-slider-2: title was a plain div when the editor chose div/span */
.slider-wrap h2.ch-sem {
    color: inherit;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
}

/* kicker/tag were div/span: keep them out of the generic ".slider-wrap p" text style */
.slider-wrap p.kicker.ch-sem,
.slider-wrap p.tag.ch-sem {
    line-height: inherit;
}

.slider-wrap p.tag.ch-sem {
    margin-top: 0;
    margin-left: 0;
    margin-right: 0;
}

/* <b class="check">✓</b> → CSS tick */
.slider-wrap ul.checklist > li::before {
    content: "✓";
    content: "✓" / "";
    color: #49b96f;
    font-size: 22px;
    line-height: 1;
    font-weight: 900;
}

/* compare widget: real <table> laid out exactly like the old div grid */
table.ch-sem-table {
    display: block;
    border-collapse: separate;
    border-spacing: 0;
    text-indent: 0;
}

table.ch-sem-table > thead,
table.ch-sem-table > tbody,
table.ch-sem-table > tfoot {
    display: contents;
}

table.ch-sem-table th,
table.ch-sem-table td {
    text-align: inherit;
    vertical-align: inherit;
}

table.ch-sem-table th:where(.td) {
    font-weight: inherit;
}

/* wrappers that must not create a box (li / dt / dd added around existing styled children) */
:where(.ch-sem-contents) {
    display: contents;
}

/* hero stats: <dl> keeps value above label */
.hero-stats .ch-sem-stat {
    display: flex;
    flex-direction: column;
}

/* dd is display:contents, so the order goes on its child box */
.hero-stats .ch-sem-stat > dd > b {
    order: -1;
}
