:root {
  --s2f-background:#F5F7FA; --s2f-card:#FFFFFF; --s2f-line:#F0F0F3;
  --s2f-text:#262626; --s2f-secondary:#737373; --s2f-menu-text:#666666;
  --s2f-accent:#29C5F6; --s2f-focus:#007FAF; --s2f-blue-surface:#E5F8FE;
}
html[data-s2f-theme="light"] { color-scheme:light; }
html[data-s2f-theme="dark"] {
  color-scheme:dark; --s2f-background:#1D1D1C; --s2f-card:#272726;
  --s2f-line:#3C3C3A; --s2f-text:#E8E8E6; --s2f-secondary:#9B9B98;
  --s2f-menu-text:#E8E8E6; --s2f-focus:#29C5F6; --s2f-blue-surface:#273F45;
}
.s2f-appearance { position:relative; display:flex; align-items:center; flex:0 0 auto; margin-left:12px; }
#page-container .s2f-appearance-button {
  display:flex; align-items:center; justify-content:center; width:44px; height:44px;
  min-width:44px; padding:0; border:1px solid var(--s2f-line); border-radius:50%;
  background:var(--s2f-card); color:var(--s2f-secondary); cursor:pointer; line-height:1;
}
#page-container .s2f-appearance-button:hover { background:var(--s2f-blue-surface); color:var(--s2f-text); }
.s2f-mode-icon { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.s2f-appearance-button .s2f-mode-icon { display:none; }
.s2f-appearance-button[data-mode="light"] .s2f-mode-icon--light,
.s2f-appearance-button[data-mode="dark"] .s2f-mode-icon--dark,
.s2f-appearance-button[data-mode="auto"] .s2f-mode-icon--auto { display:block; }
#page-container .s2f-appearance-options {
  position:absolute; top:calc(100% + 8px); right:0; z-index:10000;
  min-width:168px; margin:0; padding:6px; border:1px solid var(--s2f-line); border-radius:14px;
  color:var(--s2f-text); background:var(--s2f-card); box-shadow:0 8px 28px rgba(0,0,0,.12);
}
#page-container .s2f-appearance-options[hidden] { display:none; }
#page-container .s2f-appearance-choice {
  display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 10px;
  border-radius:9px; cursor:pointer; color:var(--s2f-text); font-size:16px; font-weight:500; line-height:1.3;
}
.s2f-appearance-radio { accent-color:var(--s2f-accent); width:16px; height:16px; margin:0; flex:none; }
#page-container .s2f-appearance-choice:hover,
#page-container .s2f-appearance-choice:has(input:checked) { background:var(--s2f-blue-surface); }
.s2f-appearance :focus-visible { outline:3px solid var(--s2f-focus); outline-offset:3px; }
.s2f-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }

/* Opaque submenus and readable neutral links in both appearances. */
html[data-s2f-theme] #page-container .et-l--header .et_pb_menu .nav li ul.sub-menu,
html[data-s2f-theme] #page-container .et-l--header .et_pb_menu .et_mobile_menu,
html[data-s2f-theme] #page-container .et-l--header .et_pb_menu .et_mobile_menu ul {
  background-color:var(--s2f-card)!important; border-color:var(--s2f-line)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.14); z-index:1000;
}
html[data-s2f-theme] #page-container .et-l--header .et_pb_menu ul.sub-menu li>a,
html[data-s2f-theme] #page-container .et-l--header .et_pb_menu .et_mobile_menu li>a {
  color:var(--s2f-menu-text)!important; line-height:1.4; padding:10px 12px;
}
html[data-s2f-theme] #page-container .et-l--header .et_pb_menu ul.sub-menu li>a:hover,
html[data-s2f-theme] #page-container .et-l--header .et_pb_menu ul.sub-menu li>a:focus-visible,
html[data-s2f-theme] #page-container .et-l--header .et_pb_menu .et_mobile_menu li>a:hover {
  color:var(--s2f-menu-text)!important; background:var(--s2f-blue-surface); opacity:1;
}
html[data-s2f-theme] #page-container .et-l--header .et_pb_menu .menu-item-has-children:focus-within>ul.sub-menu {
  visibility:visible; opacity:1;
}
html[data-s2f-theme] #page-container .et-l--header .et_pb_section_2_tb_header h4 {
  line-height:1.4!important;
}

/* Theme surfaces. Background images, layout, widths and semantic accents stay intact. */
html[data-s2f-theme="dark"] body,
html[data-s2f-theme="dark"] #page-container,
html[data-s2f-theme="dark"] #main-content,
html[data-s2f-theme="dark"] #page-container .et-l--body .et_pb_section {
  background-color:var(--s2f-background)!important; color:var(--s2f-text);
}
html[data-s2f-theme="dark"] #page-container .et-l--header .et_pb_section_0_tb_header,
html[data-s2f-theme="dark"] #page-container .et-l--header .et_pb_menu,
html[data-s2f-theme="dark"] #page-container .et_pb_row_0_tb_header:hover,
html[data-s2f-theme="dark"] #page-container .et-l--footer .et_pb_section,
html[data-s2f-theme="dark"] #page-container .et_pb_post,
html[data-s2f-theme="dark"] #page-container .wp-block-group.has-background,
html[data-s2f-theme="dark"] #page-container .wp-block-simpletoc-toc {
  background-color:var(--s2f-card)!important; border-color:var(--s2f-line)!important; box-shadow:none;
}
html[data-s2f-theme="dark"] #page-container .et-l--header :is(.et_pb_section_1_tb_header,.et_pb_section_2_tb_header),
html[data-s2f-theme="dark"] body.home #page-container .et-l--body .et_pb_section_1_tb_body {
  background-color:var(--s2f-blue-surface)!important;
}
html[data-s2f-theme="dark"] #page-container .et-l--header :is(.et_pb_text_1_tb_header,.et_pb_text_2_tb_header,.et_pb_text_3_tb_header,.et_pb_text_4_tb_header,.et_pb_text_5_tb_header,.et_pb_text_6_tb_header),
html[data-s2f-theme="dark"] body.home #page-container .et-l--header .et_pb_text_0_tb_header {
  background-color:var(--s2f-card)!important;
}
html[data-s2f-theme="dark"] #page-container :is(p,li,td,th,label,blockquote,.et_pb_text,.et_pb_post_content,.entry-content,.et_pb_comments) {
  color:var(--s2f-text)!important;
}
html[data-s2f-theme="dark"] #page-container :is(h1,h2,h3,h4,h5,h6) { color:var(--s2f-accent)!important; }
html[data-s2f-theme="dark"] #page-container a:not(.et_pb_button):not(.wp-block-button__link):not(.wp-element-button) { color:var(--s2f-accent); }
html[data-s2f-theme="dark"] #page-container .et_pb_menu__logo::after,
html[data-s2f-theme="dark"] #page-container .et-l--header .et-menu>li>a { color:var(--s2f-text)!important; }
html[data-s2f-theme] #page-container .et-l--header .et-menu>li.current-menu-item>a,
html[data-s2f-theme] #page-container .et-l--header .et-menu>li.current-menu-ancestor>a { color:var(--s2f-accent)!important; }
html[data-s2f-theme="dark"] #page-container :is(.post-meta,.post-meta span,.comment_date,.comment-meta,.lwp-breadcrumbs) { color:var(--s2f-secondary)!important; }
html[data-s2f-theme="dark"] #page-container [typeof="BreadcrumbList"] .current { color:var(--s2f-text)!important; }
html[data-s2f-theme="dark"] #page-container :is(input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),textarea,select) {
  background-color:var(--s2f-card)!important; color:var(--s2f-text)!important; border-color:var(--s2f-line)!important;
}
html[data-s2f-theme="dark"] #page-container :is(input,textarea)::placeholder { color:var(--s2f-secondary)!important; opacity:1; }
html[data-s2f-theme="dark"] #page-container :is(table,td,th,hr,.et_pb_menu) { border-color:var(--s2f-line)!important; }
html[data-s2f-theme="dark"] #page-container :is(table,thead,tbody,tr,th,td) { background-color:var(--s2f-card)!important; }
html[data-s2f-theme="dark"] #page-container :is(.simpletoc-collapsible,.simpletoc-content,.simpletoc .active) {
  background-color:var(--s2f-card)!important; color:var(--s2f-text)!important;
}
html[data-s2f-theme="dark"] #page-container .wp-block-simpletoc-toc a { color:var(--s2f-text)!important; }
@media (max-width:600px) {
  .s2f-appearance { margin-left:6px; }
  #page-container .s2f-appearance-options { max-width:calc(100vw - 32px); }
}
/* Keep native TOC destinations below the fixed site header and optional admin bar. */
#main-content .et_pb_post_content :is(h2,h3,h4,h5,h6)[id] {
  scroll-margin-top:calc(8rem + var(--wp-admin--admin-bar--height, 0px));
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
}
