/* Loading screen */
.wf-loading body,
html:not(.wf-active) body {
    visibility: hidden;
}

/* Editor visibility override */
html:not(.wf-active) body.block-editor-page,
html:not(.wf-active) body.wp-admin,
body.block-editor-page,
body.wp-admin {
    visibility: visible !important;
}

/* Editor canvas visibility override */
.editor-styles-wrapper,
.block-editor-writing-flow,
.block-editor-block-list__layout,
.wp-block,
.block-editor-block-list__block {
    visibility: visible !important;
}

/* Root variables */
:root {
    --primary-color: #0370c2;
    --primary-color-text: #ffffff;
    --primary-color-rgb: 3,112,194;
    --hover-underline-color: rgba(var(--primary-color-rgb), 0.3);
}

/* Body */
body {
    color: #000;
}

/* Superscript */
sup {
    font-size: .9em;
}

/* Headings and nav links */
h1, h2, h3, h4, h5, h6,
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
div.navigation.section.no-padding.bg-dark a,
.main-navigation a {
    color: #fff;
    font-weight: 500;
    text-decoration: none;
    text-transform: none !important;
}

/* Navigation link colour override (white nav bar) */
div.navigation.section.no-padding.bg-dark a,
div.navigation.section.no-padding.bg-dark a:visited,
.navigation.section.no-padding.bg-dark .main-navigation a,
.navigation.section.no-padding.bg-dark .main-navigation a:visited {
    color: #000000 !important;
    -webkit-tap-highlight-color: transparent !important;
}

/* Content links */
.post-content a:not(.wp-block-button__link):not(.wp-element-button):not(.is-style-outline):not(.is-style-outline--1),
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not(.is-style-outline):not(.is-style-outline--1) {
    color: var(--primary-color);
    text-decoration: underline;
    text-decoration-color: var(--primary-color);
    transition: text-decoration-color .2s ease;
}

/* Content link hover */
.post-content a:not(.wp-block-button__link):not(.wp-element-button):not(.is-style-outline):not(.is-style-outline--1):hover,
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not(.is-style-outline):not(.is-style-outline--1):hover {
    text-decoration-color: var(--hover-underline-color);
}

/* General link hover */
.posts .format-link .link-header h2 a:hover,
.single .post-meta p a:hover,
.post-navigation .nav-previous a:hover,
.single .post-navigation .nav-next a:hover,
a.jp-relatedposts-post-a:hover,
a.author-link:hover,
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover {
    color: rgba(255,255,255,.6);
    text-decoration: underline !important;
}

/* Navigation link hover override (white nav bar) */
div.navigation.section.no-padding.bg-dark a:hover,
div.navigation.section.no-padding.bg-dark a:active,
div.navigation.section.no-padding.bg-dark a:focus,
.navigation.section.no-padding.bg-dark .main-navigation a:hover,
.navigation.section.no-padding.bg-dark .main-navigation a:active,
.navigation.section.no-padding.bg-dark .main-navigation a:focus {
    color: #000000 !important;
    background-color: #D8D3CC !important;
    text-decoration: none !important;
    outline: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

/* Apply background to the full li area so tapping whitespace also triggers */
.navigation.section.no-padding.bg-dark .main-navigation li:hover,
.navigation.section.no-padding.bg-dark .main-navigation li:active {
    background-color: #D8D3CC !important;
}

/* Make nav links fill their full li container */
.navigation.section.no-padding.bg-dark .main-navigation a {
    display: block !important;
}

/* Top-level nav item hover background */
.navigation.section.no-padding.bg-dark .main-navigation > ul > li:hover > a,
.navigation.section.no-padding.bg-dark .main-navigation > ul > li > a:active,
.navigation.section.no-padding.bg-dark .main-navigation > ul > li > a:focus {
    background-color: #D8D3CC !important;
}

/* Infinite scroll button */
/* Outer button */
#infinite-handle span {
    background-color: transparent !important;
    color: #000 !important;
    border: 2px solid #000 !important;
    outline: none !important;
    text-decoration: none !important;
    box-shadow: none !important;
    font-weight: normal !important;
    font-family: 'Lato', Arial, sans-serif !important;
    font-size: 16px !important;
    padding: 12px 24px !important;
    border-radius: 5px !important;
    display: inline-block;
    transition: all 0.2s ease;
    cursor: pointer;
}

/* Inner button */
#infinite-handle span button,
#infinite-handle button {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    color: inherit !important;
    font-weight: inherit !important;
    font-size: inherit !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Button hover */
#infinite-handle span:hover {
    background-color: #047edb !important;
    color: #ffffff !important;
    border-color: #047edb !important;
}

/* End infinite scroll */

/* Post meta */
.post-meta.clear,
.post-meta.clear * {
    font-weight: normal !important;
}

/* Buttons */
button,
input[type="button"],
input[type="submit"],
.wp-block-button__link,
.wp-element-button {
    background-color: transparent !important;
    color: #000 !important;
    border: 2px solid #000 !important;
    border-radius: 5px !important;
    box-shadow: none !important;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important;
}

/* Button hover */
button:hover,
input[type=button]:hover,
input[type=submit]:hover,
.wp-block-button__link:hover,
.wp-element-button:hover {
    background-color: var(--primary-color) !important;
    color: var(--primary-color-text) !important;
    border-color: var(--primary-color) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 10px rgba(4, 126, 219, 0.35) !important;
    outline: none;
}

/* CF7 submit button */
input.wpcf7-form-control.wpcf7-submit {
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important;
}
input.wpcf7-form-control.wpcf7-submit:hover {
    background-color: var(--primary-color) !important;
    color: #ffffff !important;
    border-color: var(--primary-color) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 10px rgba(4, 126, 219, 0.35) !important;
}

/* Vivid cyan blue block button */
.wp-block-button__link.has-vivid-cyan-blue-background-color {
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important;
}
.wp-block-button__link.has-vivid-cyan-blue-background-color:hover {
    background-color: #0369b8 !important;
    color: #ffffff !important;
    border-color: #0369b8 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 10px rgba(4, 126, 219, 0.35) !important;
}

/* Button focus / active — snap back */
button:focus, button:active,
input[type=button]:focus, input[type=button]:active,
input[type=submit]:focus, input[type=submit]:active,
.wp-element-button:focus, .wp-element-button:active {
    background-color: #047edb !important;
    color: var(--primary-color-text) !important;
    border-color: #047edb !important;
    transform: translateY(0) !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Button fonts */
.wp-block-button__link.wp-element-button {
    font-family: 'Lato', Arial, sans-serif !important;
}

/* Navigation container */
.navigation.section.no-padding.bg-dark {
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: none;
    background-color: #ffffff !important;
    border-top: none !important;
    border-bottom: 8px solid #047edb !important;
    -webkit-tap-highlight-color: transparent !important;
}

/* Navigation link size */
.navigation.section.no-padding.bg-dark a,
.main-navigation a {
    font-size: 20px;
    text-transform: none;
}

/* Navigation font */
.navigation.section.no-padding.bg-dark a,
.main-navigation a {
    font-weight: normal;
    font-family: "Geared Slab", "geared-slab", serif !important;
}

/* Sub-menu indicators */
.main-navigation a::after,
.main-navigation .menu-item-has-children > a::after,
.main-navigation .page_item_has_children > a::after,
.main-navigation li > a::after {
    color: #000000 !important;
    border-color: transparent !important;
    border-top-color: #000000 !important;
    opacity: 1 !important;
    background-color: transparent !important;
    border-right-color: transparent !important;
    border-bottom-color: transparent !important;
    border-left-color: transparent !important;
}

/* Sub-menu hover */
.main-navigation a:hover::after,
.main-navigation li:hover > a::after,
.main-navigation .menu-item-has-children:hover > a::after,
.main-navigation .page_item_has_children:hover > a::after {
    color: #047edb !important;
    border-color: transparent !important;
    border-top-color: #047edb !important;
    opacity: 1 !important;
}

/* Sub-menu panel */
.main-navigation ul ul,
.main-navigation .sub-menu,
.navigation-inner .main-navigation ul ul,
.navigation-inner .main-navigation .sub-menu {
    background-color: #ffffff !important;
    border: 1px solid #DDD7CF !important;
    border-radius: 5px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.10) !important;
}

/* Sub-menu individual items — override theme dark li backgrounds */
.main-navigation ul ul li,
.main-navigation .sub-menu li,
.navigation-inner .main-navigation ul ul li,
.navigation-inner .main-navigation .sub-menu li {
    background-color: #ffffff !important;
    border: none !important;
    transition: background-color 0.18s ease !important;
}

/* Sub-menu first/last item — match the panel's rounded corners so hover
   backgrounds don't show square edges inside a rounded panel */
.main-navigation ul ul li:first-child,
.main-navigation .sub-menu li:first-child,
.navigation-inner .main-navigation ul ul li:first-child,
.navigation-inner .main-navigation .sub-menu li:first-child {
    border-top-left-radius: 5px !important;
    border-top-right-radius: 5px !important;
}
.main-navigation ul ul li:last-child,
.main-navigation .sub-menu li:last-child,
.navigation-inner .main-navigation ul ul li:last-child,
.navigation-inner .main-navigation .sub-menu li:last-child {
    border-bottom-left-radius: 5px !important;
    border-bottom-right-radius: 5px !important;
}

/* Sub-menu link colour */
.main-navigation ul ul a,
.main-navigation .sub-menu a,
.main-navigation ul ul li a,
.main-navigation .sub-menu li a {
    color: #000000 !important;
    background-color: transparent !important;
}

/* Sub-menu item hover — subtle background shift, black text */
.main-navigation ul ul li:hover,
.main-navigation ul ul li:active,
.main-navigation .sub-menu li:hover,
.main-navigation .sub-menu li:active,
.navigation-inner .main-navigation ul ul li:hover,
.navigation-inner .main-navigation ul ul li:active,
.navigation-inner .main-navigation .sub-menu li:hover,
.navigation-inner .main-navigation .sub-menu li:active {
    background-color: #D8D3CC !important;
}

.main-navigation ul ul a:hover,
.main-navigation .sub-menu a:hover,
.main-navigation ul ul li a:hover,
.main-navigation .sub-menu li a:hover {
    color: #000000 !important;
    text-decoration: none !important;
    background-color: transparent !important;
}

/* Sub-menu caret */
.main-navigation ul ul::before,
.main-navigation .sub-menu::before {
    border-bottom-color: #DDD7CF !important;
}
.main-navigation ul ul::after,
.main-navigation .sub-menu::after {
    border-bottom-color: #ffffff !important;
}

/* Mobile menu toggle */
.nav-toggle,
button.nav-toggle.fleft {
    font-family: "Geared Slab", "geared-slab", serif !important;
    font-weight: normal;
    text-transform: none !important;
}

/* Search icon — black in all states, no animation */
.navigation .search-toggle.search-icon.fright,
.navigation .search-toggle.search-icon.fright::before {
    color: #000000 !important;
    opacity: 1 !important;
    transition: none !important;
    display: inline-block;
}

/* Search icon hover — no animation */
.navigation .search-toggle.search-icon.fright:hover,
.navigation .search-toggle.search-icon.fright:hover::before {
    color: #000000 !important;
    opacity: 1 !important;
    transform: none !important;
}

/* Search icon active/click — no animation */
.navigation .search-toggle.search-icon.fright:active,
.navigation .search-toggle.search-icon.fright:active::before {
    color: #000000 !important;
    transform: none !important;
    opacity: 1 !important;
}

/* Search icon toggled — black, no transform */
.navigation .search-toggle.search-icon.fright.toggled-on,
.navigation .search-toggle.search-icon.fright.active,
.navigation .search-toggle.search-icon.fright[aria-expanded=true],
.navigation .search-toggle.search-icon.fright.toggled-on::before,
.navigation .search-toggle.search-icon.fright.active::before,
.navigation .search-toggle.search-icon.fright[aria-expanded=true]::before {
    color: #000000 !important;
    opacity: 1 !important;
}

/* Search icon toggled + hover — no animation */
.navigation .search-toggle.search-icon.fright.toggled-on:hover,
.navigation .search-toggle.search-icon.fright.active:hover,
.navigation .search-toggle.search-icon.fright[aria-expanded=true]:hover,
.navigation .search-toggle.search-icon.fright.toggled-on:hover::before,
.navigation .search-toggle.search-icon.fright.active:hover::before,
.navigation .search-toggle.search-icon.fright[aria-expanded=true]:hover::before {
    color: #000000 !important;
    opacity: 1 !important;
    transform: none !important;
}

/* Search toggle — no animation, no background, all states */
.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright,
.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright:hover,
.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright:active,
.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright:focus,
.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright.active,
.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright.active:hover,
.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright.active:active,
.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright.active:focus,
div.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright,
div.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright:hover,
div.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright:active,
div.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright:focus,
div.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright.active,
div.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright.active:hover,
div.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright.active:active,
div.navigation.section.no-padding.bg-dark .search-toggle.search-icon.fright.active:focus {
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    box-shadow: none !important;
    transform: none !important;
    transition: none !important;
}

/* Header search form font */
.header-search-block .search-field,
.header-search-block .search-form input,
.header-search-block .search-submit,
input.search-field,
input[type="search"] {
    font-family: 'Lato', Arial, sans-serif !important;
}

/* Footer background */
#footer.footer.bg-graphite, footer.bg-graphite {
    background-color: #ffffff !important;
    border-top: 8px solid #047edb !important;
}

/* Footer text */
#footer.footer {
    color: #000;
}

/* Footer headings */
#footer.footer h1, #footer.footer h2, #footer.footer h3,
#footer.footer h4, #footer.footer h5, #footer.footer h6 {
    color: #000 !important;
}

/* Footer links */
#footer.footer a, a.jp-relatedposts-post-a {
    color: #000;
    text-decoration: none;
}

a.author-link {
    color: #fff;
    text-decoration: none;
}

/* Footer link hover */
#footer.footer a:hover {
    color: #047edb !important;
    text-decoration: none !important;
}

/* Footer widgets */
.footer .widget-content p {
    color: #000;
}

/* Footer buttons */
#footer.footer button,
#footer.footer input[type="button"],
#footer.footer input[type="submit"],
#footer.footer .wp-block-button__link,
#footer.footer .wp-element-button {
    color: #000 !important;
    border-color: #000 !important;
    border-radius: 5px !important;
}

/* Footer button hover */
#footer.footer button:hover,
#footer.footer input[type="button"]:hover,
#footer.footer input[type="submit"]:hover,
#footer.footer .wp-block-button__link:hover,
#footer.footer .wp-element-button:hover {
    color: #ffffff !important;
    border-color: var(--primary-color) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 10px rgba(4, 126, 219, 0.35) !important;
}

/* Widget titles */
h3.widget-title {
    font-weight: 400;
    font-size: 20px !important;
    text-transform: none !important;
}

/* Sharedaddy titles */
div.sharedaddy h3.sd-title {
    font-weight: 400;
    font-size: 22.5px;
    text-transform: none !important;
    color: var(--primary-color);
}

/* Related posts headline */
.single div#jp-relatedposts h3.jp-relatedposts-headline,
.single div#jp-relatedposts h3.jp-relatedposts-headline * {
    font-family: "Geared Slab", "geared-slab", serif !important;
    font-size: 22.5px;
    font-weight: normal !important;
    color: var(--primary-color) !important;
    text-transform: none !important;
    line-height: 1.2;
    margin: -35px 0 10px;
    display: inline-block;
}

/* Related posts image */
.jp-relatedposts-post-img {
    display: block;
    margin-bottom: 10px !important;
}

/* Related posts link */
.jp-relatedposts-post-a {
    font-size: 16px !important;
    margin-top: 20px;
}

/* Page titles */
body.category h1.page-title,
body.tag h1.page-title,
.page-title {
    font-weight: 400;
    font-size: 22.5px;
    text-transform: none !important;
    margin-bottom: 10px;
}

/* Tag archive meta */
.tag-archive-meta {
    color: #000;
}

/* Dark background */
.bg-dark {
    background-color: #012a40;
}

/* Credits section */
.credits.bg-dark.small-padding {
    display: none !important;
}

/* Gallery captions */
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption,
h2.jp-carousel-photo-caption {
    font-size: 22px !important;
    color: #fff !important;
}

/* Jetpack carousel caption — force Lato/white/normal size over Jetpack's
   high-specificity overlay defaults (small grey Arial) */
.jp-carousel-wrap .jp-carousel-photo-caption,
.jp-carousel-wrap h2.jp-carousel-photo-caption,
div.jp-carousel-info h2.jp-carousel-photo-caption,
.jp-carousel-photo-title-container .jp-carousel-photo-caption {
    font-family: 'Lato', Arial, sans-serif !important;
    font-size: 22px !important;
    color: #ffffff !important;
}

/* Post text */
.posts .post-content p {
    color: #000 !important;
}

/* Citations */
.wf-active .post-content cite,
blockquote cite,
.wp-block-quote cite {
    font-family: 'Lato', Arial, sans-serif !important;
    font-size: 17px;
    font-style: normal !important;
    text-transform: none;
}

/* Blockquote container */
.post-content blockquote,
blockquote,
.wp-block-quote {
    border: none !important;
    border-left: 4px solid #047edb !important;
    background-color: #f4f4f4;
    font-size: inherit !important;
    padding: 0 20px !important;
    margin-top: 30px !important;
    margin-right: 0 !important;
    margin-bottom: 30px !important;
    margin-left: 0 !important;
    border-radius: 16px;
    width: auto;
    box-shadow: none !important;
}

/* Blockquote text */
.post-content blockquote p,
blockquote p {
    font-size: inherit !important;
    font-weight: 400 !important;
    font-style: normal;
    color: #000 !important;
    margin: 0 !important;
    padding: 2px 0 !important;
    line-height: 1.4;
    text-align: center !important;
}

/* Blockquote bold */
blockquote b, blockquote strong {
    font-weight: 700 !important;
}

/* File block font */
.wp-block-file {
    font-size: 16px !important;
}

/* Accent bar to the left of H2 headings */
h2 {
    border-left: 7px solid #047edb !important;
    padding-left: 9px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}

/* Post title alignment */
body.single-post h1.post-title.entry-title,
body.page h1.post-title.entry-title {
    text-align: center !important;
    font-weight: 400;
}

/* 404 alignment */
body.error404 h1.post-title.entry-title,
body.error404 h1.page-title,
body.error404 .post-header h1,
body.error404 .page-header h1 {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Archive padding */
body.search .medium-padding,
body.category .medium-padding,
body.tag .medium-padding {
    padding: 40px 0 !important;
}

/* Page header margins */
.page-header {
    margin-bottom: 75px;
    text-align: center;
    word-wrap: break-word;
}

/* Archive header margins */
body.category .page-header,
body.tag .page-header,
body.search .page-header {
    margin-bottom: 30px;
    margin-top: -10px;
    text-align: center;
    word-wrap: break-word;
}

/* Archive section padding */
body.category .wrapper.section.medium-padding,
body.tag .wrapper.section.medium-padding,
body.search .wrapper.section.medium-padding {
    padding-left: 40px !important;
    padding-right: 40px !important;
}

/* Archive section width */
body.category .wrapper.section.medium-padding,
body.tag .wrapper.section.medium-padding,
body.search .wrapper.section.medium-padding {
    max-width: none !important;
    width: 100% !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    margin: 0 auto !important;
    box-sizing: border-box;
}

/* Archive inner width */
body.category .wrapper.section.medium-padding .section-inner,
body.tag .wrapper.section.medium-padding .section-inner,
body.search .wrapper.section.medium-padding .section-inner {
    max-width: none !important;
    width: 100% !important;
}

/* Section wrapper padding */
.wrapper.section {
    padding-top: 35px;
    padding-bottom: 35px;
}

/* Page/post content card — rounded outer bezel.
   Scoped to exclude comment bodies (which are also <article> elements)
   so the radius applies to the page card only.
   NOTE: deliberately no `overflow: hidden` here — it was clipping the
   Akismet privacy notice out of view at smaller breakpoints.
   border-radius alone still rounds the card's background and border. */
article.hentry:not(.comment-body),
article.post:not(.comment-body),
article.page:not(.comment-body) {
    border-radius: 16px !important;
}

/* Post header borders */
body.single .post-header,
body.page .post-header {
    border-bottom: 1px solid #eee;
    position: relative;
    padding-top: 45px;
    padding-bottom: 30px;
}

/* Category wrapper margin */
body.category .wrapper.section.medium-padding {
    margin-bottom: -130px !important;
    overflow: hidden;
    width: 100%;
}

/* Breadcrumb bar */
breadcrumb {
    display: block;
    box-sizing: border-box !important;
    width: fit-content;
    max-width: calc(100% - 40px);
    margin: 20px 0 0 30px !important;
    padding: 14px 26px !important;
    background-color: #ffffff;
    border: 1px solid #DDD7CF;
    border-radius: 999px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    font-family: 'Lato', Arial, sans-serif !important;
    font-size: inherit;
    line-height: 1.4;
    color: #767676;
    white-space: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Breadcrumb links */
breadcrumb a {
    color: #047edb;
    text-decoration: none;
    transition: color 0.18s ease;
}

/* Breadcrumb hover */
breadcrumb a:hover {
    color: #0369b8;
    text-decoration: underline;
}

/* Breadcrumb current page (final, non-linked crumb) */
breadcrumb span {
    color: #1c1c1c;
    font-weight: 600;
}

/* Home icon sizing inside the pill */
breadcrumb svg {
    width: 1.1em;
}

/* Petition form centering */
.dk-speakout-petition-wrap {
    display: block;
    margin: 0 auto;
    width: fit-content;
    text-align: center;
}

/* Petition submit button */
.dk-speakout-submit,
input.dk-speakout-submit,
button.dk-speakout-submit {
    color: #fff !important;
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
}

/* Petition submit hover */
.dk-speakout-submit:hover,
input.dk-speakout-submit:hover,
button.dk-speakout-submit:hover {
    color: #fff !important;
}

/* Contact form fonts */
.wpcf7-form,
.wpcf7-form * {
    font-family: 'Lato', Arial, sans-serif !important;
    font-weight: 700 !important;
}

/* Universal font family */
.wp-block-button__link,
.wp-element-button,
button,
input[type="submit"],
.subscribe-field-label,
label.subscribe-field-label,
#subscribe-field,
input#subscribe-field,
input.no-border-radius {
    font-family: 'Lato', Arial, sans-serif !important;
}

/* Dropdown filter font */
.filter-option-inner-inner,
.filter-option-inner-inner {
    font-family: 'Lato', Arial, sans-serif !important;
}

/* Editor visibility - body */
.editor-styles-wrapper,
.editor-styles-wrapper p,
.editor-styles-wrapper li {
    color: #000 !important;
    font-family: 'Lato', Arial, sans-serif !important;
}

/* Editor visibility - headings */
.editor-styles-wrapper h1,
.editor-styles-wrapper h2,
.editor-styles-wrapper h3,
.editor-styles-wrapper h4,
.editor-styles-wrapper h5,
.editor-styles-wrapper h6 {
    color: #000 !important;
    font-family: "Geared Slab", "geared-slab", serif !important;
}

/* Content images - borders & transitions */
.post-content img,
.post-content .wp-block-image img,
.post-content figure,
.entry-content img,
.post-content a img {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
    transition: transform 0.3s ease !important;
}

/* Content images - hover animation */
.post-content img:hover,
.post-content .wp-block-image img:hover,
.entry-content img:hover,
.post-content a img:hover {
    transform: scale(1.02) !important;
}

/* Search sort options */
.jetpack-instant-search__search-sort-option,
.jetpack-instant-search__search-sort-option.is-selected {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Selected sort option */
.jetpack-instant-search__search-sort-option.is-selected {
    color: var(--primary-color) !important;
    font-weight: 700 !important;
}

/* Overlay close (search button) - default state */
.jetpack-instant-search__search-results-controls .jetpack-instant-search__overlay-close,
button.jetpack-instant-search__overlay-close {
    transition: all 0.2s ease !important;
    background-color: transparent !important;
    border: 2px solid #000 !important;
    box-shadow: none !important;
    outline: none !important;
    opacity: 1 !important;
}

/* Overlay close - hover state */
.jetpack-instant-search__search-results-controls .jetpack-instant-search__overlay-close:hover,
button.jetpack-instant-search__overlay-close:hover {
    background-color: #047edb !important;
    border-color: #047edb !important;
    opacity: 1 !important;
}

/* Overlay close icon hover - turn white */
.jetpack-instant-search__overlay-close:hover svg,
.jetpack-instant-search__overlay-close:hover path,
button.jetpack-instant-search__overlay-close:hover svg,
button.jetpack-instant-search__overlay-close:hover path {
    fill: #ffffff !important;
    color: #ffffff !important;
}

/* Blog comment dates */
.comment-metadata a,
.comment-metadata time {
    color: #000 !important;
    opacity: 1 !important;
}

/* Blog comment date hover */
.comment-metadata a:hover,
.comment-metadata time:hover {
    color: #000 !important;
    text-decoration: none !important;
}

/* Comment list — browsers give <ol> a default left padding (~40px) to
   make room for numbering markers. The comment list shows no numbers,
   so that padding just pushes the whole comments block off to the
   right. Zeroed here; nested replies keep a deliberate indent below. */
.comments .comment-list,
ol.comment-list {
    list-style: none !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
}

/* Comment items — only the list-level indentation is reclaimed here.
   NOTE: deliberately no padding-left override on article.comment-body:
   the theme reserves that left gutter for the floated Gravatar, and
   removing it pushes the avatar out of the visible area. */
.comments .comment-list li.comment,
.comments .comment-list > li,
ol.comment-list > li {
    margin-left: 0 !important;
    padding-left: 0 !important;
    list-style: none !important;
}

/* Threaded replies — keep a clear but modest indent */
.comments .comment-list .children,
ol.comment-list .children {
    list-style: none !important;
    margin-left: 0 !important;
    padding-left: 25px !important;
}

/* Comment reply form — align with the list rather than sitting inset */
#respond.comment-respond {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Akismet privacy notice — force into normal, visible flow. It sits
   outside the comment card, so a floated/positioned or clipped state
   can make it vanish entirely at smaller breakpoints. */
p.akismet_comment_form_privacy_notice,
.akismet_comment_form_privacy_notice {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    float: none !important;
    clear: both !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    overflow: visible !important;
}

/* Comment author name font */
.comment-author .fn a,
.comment-author .fn {
    font-family: 'Lato', Arial, sans-serif !important;
}

/* Comment like link font */
a.comment-like-link,
.wpl-likebox a.comment-like-link {
    font-family: 'Lato', Arial, sans-serif !important;
}

/* Akismet privacy notice — give it breathing room inside the comment area */
.akismet_comment_form_privacy_notice {
    padding: 12px 20px 20px;
    margin-top: 10px;
    font-size: 0.85em;
    color: #6B6562;
}

/* Akismet notice link — match the site's content-link style */
.akismet_comment_form_privacy_notice a {
    color: var(--primary-color) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--primary-color) !important;
    transition: text-decoration-color .2s ease !important;
}
.akismet_comment_form_privacy_notice a:hover {
    text-decoration-color: var(--hover-underline-color) !important;
}

/* Mobile under 480px */
@media(max-width: 480px) {
    /* Adjusted body font size */
    body {
        font-size: 17px;
    }

    /* Mobile heading sizes (adjusted) */
    h1 { font-size: 24px !important; }
    h2 { font-size: 24px !important; }
    h3 { font-size: 22px !important; }
    h4 { font-size: 20px !important; }
    h5 { font-size: 18px !important; }
    h6 { font-size: 16px !important; }

    .page-header {
        margin-bottom: 20px;
        margin-top: 10px;
    }

    div#posts.posts {
        margin-top: -20px;
    }

    .wrapper.section {
        padding-bottom: 60px;
    }

    .page-header.section-inner {
        margin-bottom: -30px;
        margin-top: -10px;
    }

    body.category div#posts.posts,
    body.tag div#posts.posts {
        margin-top: -20px !important;
        margin-bottom: 25px !important;
    }

    body.single .wrapper.section {
        padding-top: 20px;
        padding-bottom: 20px;
    }

}

/* ── Mobile/tablet: comments area fixes ──
   The Akismet notice is the last child of <article>. Its own computed
   styles are correct (display/visibility/height/overflow all fine), so
   when it vanishes at these widths an ancestor is clipping it. Rather
   than depend on which wrapper the theme applies that to, clipping is
   cleared across the whole chain around the post content. */
@media(max-width: 1024px) {
    main,
    .content,
    #content,
    .section-inner,
    .wrapper.section,
    article.post,
    article.hentry,
    .comments,
    #respond.comment-respond {
        overflow: visible !important;
    }

    /* Comment avatars — the theme hides these below its own 500px
       breakpoint using a long, highly-specific selector, so these
       rules mirror the full element path to outrank it. */
    body .comments ol.comment-list li article.comment-body footer.comment-meta div.comment-author img.avatar,
    body .comments .comment-list .comment-author img.avatar,
    body .comments .comment-author .avatar,
    .comment-author .avatar,
    .comment-author img.avatar,
    img.avatar,
    .comments img.avatar {
        display: inline-block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 45px !important;
        height: 45px !important;
        max-width: 45px !important;
        min-width: 45px !important;
        float: left !important;
        margin: 0 12px 8px 0 !important;
        border-radius: 50% !important;
    }

    /* Give the avatar room to sit alongside the comment text */
    body .comments ol.comment-list li article.comment-body,
    .comments .comment-list article.comment-body,
    article.comment-body {
        overflow: visible !important;
    }
}

/* Mobile under 600px */
@media(max-width: 600px) {
    body.category .post-header,
    body.tag .post-header {
        padding-top: 20px;
        padding-bottom: 15px;
    }

    breadcrumb {
        margin: 15px 0 0 15px !important;
        padding: 16px 18px !important;
        white-space: normal;
        overflow-x: visible;
        text-align: left;
        border-radius: 16px !important;
    }

    body.blog .wrapper.section {
        padding-top: 15px !important;
    }
}

/* Tablet under 768px */
@media(max-width: 768px) {
    .post-content blockquote p,
    .post-content blockquote,
    blockquote,
    .wp-block-quote {
        font-size: inherit !important;
    }

    .post-content blockquote,
    blockquote,
    .wp-block-quote {
        margin-top: 30px !important;
        margin-bottom: 30px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .navigation.section.no-padding.bg-dark a,
    .main-navigation a {
        font-size: 20px !important;
    }

    button.nav-toggle.fleft {
        font-size: 20px !important;
    }

    .wf-active .post-content cite {
        font-size: 16px;
    }

    .wp-block-file__button.wp-element-button {
        font-size: 16px !important;
        padding: 8px 16px;
        width: auto;
    }

    body.single .post-header,
    body.page .post-header {
        padding-top: 20px;
        padding-bottom: 15px;
    }

    body.category .page-header,
    body.tag .page-header,
    body.search .page-header {
        margin-bottom: 25px;
    }

    body.category .credits.bg-dark.small-padding {
        display: none !important;
    }

    body.category #footer.footer.bg-graphite,
    body.category footer.bg-graphite,
    body.tag #footer.footer.bg-graphite,
    body.tag footer.bg-graphite {
        margin-top: 45px !important;
    }

    .alignfull, .alignwide {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* Medium screen padding */
@media(min-width: 601px) and (max-width: 1023px) {
    .wrapper.section {
        padding-top: clamp(25px,4vw,35px);
        padding-bottom: clamp(25px,4vw,35px);
    }

    .wrapper.section.medium-padding {
        padding-left: clamp(25px,4vw,40px);
        padding-right: clamp(25px,4vw,40px);
    }

    body.page:not(.home) .wrapper.section.medium-padding,
    body.single .wrapper.section.medium-padding {
        padding-top: clamp(25px,4vw,35px);
        padding-bottom: clamp(25px,4vw,35px);
    }
}

/* Portrait tablet spacing */
@media(min-width: 601px) and (max-width: 1023px) and (orientation: portrait) {
    body.category .page-header,
    body.tag .page-header,
    body.search .page-header {
        margin-bottom: 60px !important;
        margin-top: -10px;
    }

    breadcrumb {
        margin: 15px 0 0 15px !important;
    }

    button.nav-toggle.fleft {
        font-size: 20px !important;
    }

    .navigation.section.no-padding.bg-dark a,
    .main-navigation a {
        font-size: 20px !important;
    }

    .post-content blockquote,
    blockquote,
    .wp-block-quote {
        margin-top: 30px !important;
        margin-bottom: 30px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: auto !important;
    }

    /* Adjusted infinite handle positioning */
    #infinite-handle {
        bottom: -50px !important;
    }
}

/* ── Mobile/tablet menu: strip desktop-dropdown chrome from sub-menus ──
   The sub-menu rules earlier in this file style a floating desktop
   dropdown (card, shadow, caret). In the stacked menu those read as a
   card-inside-a-list with a caret pointing at nothing. Below the
   nav-toggle breakpoint they become an inline, tinted, centred list:
   nesting is signalled by the tint and lighter type rather than an
   accent bar or indent, both of which fight with centred text. */
@media(max-width: 1024px) {
    /* Flatten the sub-menu panel — no card, shadow, rounding or indent */
    .main-navigation ul ul,
    .main-navigation .sub-menu,
    .navigation-inner .main-navigation ul ul,
    .navigation-inner .main-navigation .sub-menu {
        background-color: #F7F5F2 !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }

    /* Short blue dash marking the start of a nested group.
       Reuses the ::before that formerly drew the desktop caret, fully
       reset (the caret was an absolutely-positioned border triangle). */
    .main-navigation ul ul::before,
    .main-navigation .sub-menu::before,
    .navigation-inner .main-navigation ul ul::before,
    .navigation-inner .main-navigation .sub-menu::before {
        content: "" !important;
        display: block !important;
        position: static !important;
        width: 150px !important;
        height: 5px !important;
        margin: 12px auto 8px !important;
        background-color: #047edb !important;
        border: none !important;
        border-radius: 2px !important;
        opacity: 1 !important;
    }

    /* Remove the dropdown caret's other half — points at nothing inline */
    .main-navigation ul ul::after,
    .main-navigation .sub-menu::after {
        display: none !important;
    }

    /* Sub-menu items: clean centred rows, no per-item accent bar */
    .main-navigation ul ul li,
    .main-navigation .sub-menu li,
    .navigation-inner .main-navigation ul ul li,
    .navigation-inner .main-navigation .sub-menu li {
        background-color: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        width: 100% !important;
        text-align: center !important;
    }

    /* Hairline between sub-items, but none above the first */
    .main-navigation ul ul li + li,
    .main-navigation .sub-menu li + li {
        border-top: 1px solid #EBE7E1 !important;
    }

    /* Neutralise the desktop first/last rounded corners */
    .main-navigation ul ul li:first-child,
    .main-navigation .sub-menu li:first-child,
    .main-navigation ul ul li:last-child,
    .main-navigation .sub-menu li:last-child {
        border-radius: 0 !important;
    }

    /* Touch-sized tap targets. Symmetric padding matters here: uneven
       left/right padding visually offsets centred text. */
    .main-navigation ul ul li a,
    .main-navigation .sub-menu li a {
        display: block !important;
        padding: 13px 20px !important;
        font-size: 17px !important;
        line-height: 1.3 !important;
        color: #3A3A3A !important;
        text-align: center !important;
    }

    /* Touch feedback instead of hover */
    .main-navigation ul ul li:active,
    .main-navigation .sub-menu li:active,
    .main-navigation ul ul li a:active,
    .main-navigation .sub-menu li a:active {
        background-color: #E8E4DE !important;
        color: #000000 !important;
    }

    /* Top-level items: full width, centred, clearly separated */
    .navigation.section.no-padding.bg-dark .main-navigation > ul > li {
        border-bottom: 1px solid #E6E1DA !important;
        width: 100% !important;
        text-align: center !important;
    }
    .navigation.section.no-padding.bg-dark .main-navigation > ul > li > a {
        padding: 15px 20px !important;
        text-align: center !important;
    }

    /* Centre the lists themselves — clears any theme left-alignment
       or default list indentation that would offset the centring */
    .navigation-inner .main-navigation ul,
    .navigation.section.no-padding.bg-dark .main-navigation > ul,
    .main-navigation .sub-menu {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        list-style: none !important;
        text-align: center !important;
    }

    /* Tablet centring fix: above 768px the theme makes .navigation-inner
       a flex row, so the menu sits as a sibling *beside* the hamburger
       toggle and gets pushed right by it. Allowing the row to wrap and
       giving the menu a full-width basis puts it on its own line, where
       centring actually applies. */
    .navigation-inner {
        flex-wrap: wrap !important;
    }
    .navigation-inner .main-navigation {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        text-align: center !important;
    }
}

/* Desktop nav toggle */
@media(max-width: 1024px) {
    button.nav-toggle.fleft {
        display: inline-block;
        margin-left: 10px;
        z-index: 999;
        width: max-content !important;
        text-align: left !important;
        padding-left: 2.1em !important;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='16'%3E%3Crect width='20' height='2.5' y='0' fill='%23000000'/%3E%3Crect width='20' height='2.5' y='6.75' fill='%23000000'/%3E%3Crect width='20' height='2.5' y='13.5' fill='%23000000'/%3E%3C/svg%3E") !important;
        background-repeat: no-repeat !important;
        background-position: 0.9em center !important;
        background-size: 1em auto !important;
    }

    .navigation.section.no-padding.bg-dark {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
    }

    .navigation-inner .main-navigation {
        width: 100%;
        text-align: center;
    }

    button.nav-toggle.fleft,
    button.nav-toggle.fleft:link,
    button.nav-toggle.fleft:visited,
    button.nav-toggle.fleft:focus,
    button.nav-toggle.fleft:focus-visible,
    button.nav-toggle.fleft[aria-expanded=true],
    button.nav-toggle.fleft.toggled-on {
        background-color: transparent !important;
        border: none !important;
        box-shadow: none !important;
        outline: none !important;
        color: #000000 !important;
        text-align: left !important;
        opacity: 1 !important;
        transition: none !important;
        -webkit-tap-highlight-color: transparent !important;
        -webkit-appearance: none !important;
    }

    button.nav-toggle.fleft:hover {
        color: #000000 !important;
        box-shadow: none !important;
        outline: none !important;
        background-color: transparent !important;
        transform: none !important;
        transition: none !important;
    }

    button.nav-toggle.fleft:active {
        color: #000000 !important;
        box-shadow: none !important;
        background-color: transparent !important;
        transform: none !important;
        transition: none !important;
    }
}

@media(min-width: 768px) {
    .navigation-inner {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .navigation-inner .main-navigation {
        text-align: center;
    }

    .nav-toggle {
        margin: 0 auto;
    }
}

/* Desktop styles */
@media(min-width: 1024px) {
    /* Desktop body font */
    body {
        font-size: 17.5px;
    }

    /* Contact form font size */
    .wpcf7-form input,
    .wpcf7-form select,
    .wpcf7-form textarea,
    .wpcf7-form label {
        font-size: inherit !important;
    }

    .post-content.clear {
        width: 100% !important;
        max-width: none !important;
        padding: 50px !important;
        margin: 0 auto !important;
    }

    /* Adjusted infinite handle positioning */
    #infinite-handle {
        bottom: -50px !important;
    }
}

/* Tablet landscape */
@media (min-width: 768px) and (max-width: 1199px) and (orientation: landscape) {
    body {
        font-size: 18px !important;
    }
}

/* Captcha badge hiding */
.grecaptcha-badge {
    display: none !important;
}

/* Notification bar font */
@media screen and (min-width: 768px) {
    .wpfront-notification-bar div.wpfront-div {
        font-size: 20px;
    }
}