/* Universal Design Switcher 0.2.1: scoped component adapter. */
html[data-uds-design] {
 --uds-bg:#f3f0e8; --uds-surface:#fbfcfa; --uds-primary:#3f503b;
 --uds-text:#1f2c24; --uds-border:#c8d7cc; --uds-radius:12px;
 --uds-soft:var(--uds-surface);
 --uds-primary-dark:var(--uds-primary);
 --uds-on-primary:#fff;
}
@supports (color:color-mix(in srgb, white, black)) {
 html[data-uds-design] {
  --uds-soft:color-mix(in srgb,var(--uds-primary) 7%,var(--uds-surface));
  --uds-primary-dark:color-mix(in srgb,var(--uds-primary) 82%,#000);
 }
}
html[data-uds-design] body {background-color:var(--uds-bg)!important;color:var(--uds-text);}
html[data-uds-design] :is(#page,.site,.site-content,.wp-site-blocks,.site-main,.content-area) {
 background-color:var(--uds-bg)!important;
}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) {color:var(--uds-text);}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) :is(h1,h2,h3,h4,h5,h6),
html[data-uds-design] .entry-title {color:var(--uds-primary-dark)!important;}
/* Only explicit content components, never every section or generic .box. */
html[data-uds-design] :is(.entry-content,.page-content,.post-content) :is(
 .infobox,.info-box,.faq-box,.wp-block-quote,.wp-block-details,
 .wp-block-group.has-background,section[style*="background"]),
html[data-uds-design] [data-uds-box] {
 background-color:var(--uds-soft)!important;
 color:var(--uds-text)!important;
 border-color:var(--uds-border)!important;
 border-radius:var(--uds-radius)!important;
}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) :is(.infobox,.info-box,.faq-box,section[style*="background"]) :is(p,li,strong) {
 color:var(--uds-text)!important;
}
/* Link rule excludes button links, so white button labels remain white. */
html[data-uds-design] :is(.entry-content,.page-content,.post-content) a:not(:is(.button,.btn,.wp-block-button__link,[role="button"],[data-uds-button])) {
 color:var(--uds-primary-dark)!important;
 text-decoration:underline;text-underline-offset:.18em;
}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) :is(.button,.btn,.wp-block-button__link,[role="button"],button[type="submit"],input[type="submit"]),
html[data-uds-design] [data-uds-button] {
 background:var(--uds-primary)!important;color:var(--uds-on-primary)!important;
 border-color:var(--uds-primary-dark)!important;border-radius:var(--uds-radius)!important;
 text-decoration:none;
}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) :is(.button,.btn,.wp-block-button__link,[role="button"]) :is(span,strong) {
 color:inherit!important;
}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) :is(.button,.btn,.wp-block-button__link,[role="button"]):hover {
 background:var(--uds-primary-dark)!important;
}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) :is(table,th,td) {border-color:var(--uds-border)!important;}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) tbody :is(th,td) {background:var(--uds-surface)!important;color:var(--uds-text)!important;}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) tbody tr:nth-child(even) :is(th,td) {background:var(--uds-soft)!important;}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) thead :is(th,td),
html[data-uds-design] :is(.entry-content,.page-content,.post-content) thead :is(th,td) :is(a,span,strong) {background:var(--uds-primary)!important;color:var(--uds-on-primary)!important;}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),textarea,select) {
 background:var(--uds-surface)!important;color:var(--uds-text)!important;border-color:var(--uds-border)!important;
}
/* Header and footer are structural selectors, not viewport guesses. */
html[data-uds-design] :is(header.site-header,#masthead,.wp-site-blocks>header,[data-uds-header]) {
 background:var(--uds-primary)!important;color:var(--uds-on-primary)!important;
}
html[data-uds-design] :is(footer.site-footer,#colophon,.wp-site-blocks>footer,[data-uds-footer]) {
 background:var(--uds-primary-dark)!important;color:var(--uds-on-primary)!important;
}
html[data-uds-design] :is(header.site-header,#masthead,.wp-site-blocks>header,[data-uds-header],footer.site-footer,#colophon,.wp-site-blocks>footer,[data-uds-footer]) :is(a,.site-title,.site-description,.wp-block-site-title,.wp-block-site-tagline) {
 color:var(--uds-on-primary)!important;
}
html[data-uds-design] :is(header.site-header,#masthead,.wp-site-blocks>header,[data-uds-header]) :is(.sub-menu,.wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open) {
 background:var(--uds-primary-dark)!important;color:var(--uds-on-primary)!important;
}
html[data-uds-design] :is(header.site-header,#masthead,[data-uds-header]) :is(.menu-toggle,.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close) {
 color:var(--uds-on-primary)!important;background:transparent!important;
}
html[data-uds-design] :is(.entry-content,.page-content,.post-content) :is(a,button,input,select,textarea):focus-visible {
 outline:3px solid var(--uds-primary-dark);outline-offset:3px;
}
/* Switcher */
.uds-switcher {
    position: fixed;
    z-index: 99998;
    font-family: Arial, Helvetica, sans-serif;
    color: #1f2933;
}

.uds-bottom-right { right: 18px; bottom: 18px; }
.uds-bottom-left  { left: 18px; bottom: 18px; }
.uds-top-right    { right: 18px; top: 18px; }
.uds-top-left     { left: 18px; top: 18px; }

.admin-bar .uds-top-right,
.admin-bar .uds-top-left {
    top: 50px;
}

.uds-toggle {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid rgba(0,0,0,.14);
    border-radius: 999px;
    background: #ffffff !important;
    color: #24312c !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.14);
    font: 600 14px/1.2 Arial, Helvetica, sans-serif;
    cursor: pointer;
}

.uds-toggle:hover,
.uds-toggle:focus-visible {
    box-shadow: 0 5px 24px rgba(0,0,0,.18);
}

.uds-toggle:focus-visible,
.uds-option:focus-visible,
.uds-close:focus-visible,
.uds-reset:focus-visible {
    outline: 3px solid #3f503b;
    outline-offset: 2px;
}

.uds-panel {
    position: absolute;
    width: min(360px, calc(100vw - 32px));
    padding: 16px;
    border: 1px solid #d9dfdc;
    border-radius: 14px;
    background: #ffffff !important;
    box-shadow: 0 14px 38px rgba(0,0,0,.18);
}

.uds-bottom-right .uds-panel,
.uds-bottom-left .uds-panel {
    bottom: calc(100% + 10px);
}

.uds-top-right .uds-panel,
.uds-top-left .uds-panel {
    top: calc(100% + 10px);
}

.uds-bottom-right .uds-panel,
.uds-top-right .uds-panel {
    right: 0;
}

.uds-bottom-left .uds-panel,
.uds-top-left .uds-panel {
    left: 0;
}

.uds-panel-head {
    display: flex;
    gap: 12px;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}

.uds-panel h2 {
    margin: 0;
    font: 700 18px/1.25 Arial, Helvetica, sans-serif;
    color: #202824 !important;
}

.uds-close {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border: 0;
    border-radius: 50%;
    background: #f1f4f2 !important;
    color: #25302a !important;
    font: 400 24px/1 Arial, Helvetica, sans-serif;
    cursor: pointer;
}

.uds-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 9px;
}

.uds-option {
    display: block;
    min-width: 0;
    padding: 8px;
    border: 2px solid transparent;
    border-radius: 10px;
    background: #f7f8f8 !important;
    color: #242c28 !important;
    cursor: pointer;
    text-align: left;
}

.uds-option[aria-pressed="true"] {
    border-color: #3f503b !important;
    background: #edf4ef !important;
}

.uds-preview {
    display: block;
    height: 74px;
    padding: 7px;
    overflow: hidden;
    border: 1px solid var(--sample-border);
    border-radius: var(--sample-radius);
    background: var(--sample-bg);
}

.uds-preview-head {
    display: block;
    height: 9px;
    margin-bottom: 7px;
    border-radius: 999px;
    background: var(--sample-primary);
}

.uds-preview-card {
    display: block;
    height: 23px;
    margin-bottom: 7px;
    border: 1px solid var(--sample-border);
    border-radius: calc(var(--sample-radius) * .55);
    background: var(--sample-surface);
}

.uds-preview-line {
    display: block;
    width: 75%;
    height: 5px;
    margin-bottom: 6px;
    border-radius: 999px;
    background: var(--sample-text);
    opacity: .5;
}

.uds-preview-button {
    display: block;
    width: 45%;
    height: 8px;
    border-radius: var(--sample-radius);
    background: var(--sample-primary);
}

.uds-option-name {
    display: block;
    margin-top: 6px;
    font: 600 13px/1.2 Arial, Helvetica, sans-serif;
    text-align: center;
    color: #242c28 !important;
}

.uds-reset {
    width: 100%;
    min-height: 40px;
    margin-top: 12px;
    border: 1px solid #cfd8d3 !important;
    border-radius: 8px;
    background: #ffffff !important;
    color: #2c3832 !important;
    font: 600 13px/1.2 Arial, Helvetica, sans-serif;
    cursor: pointer;
}

.uds-note {
    margin: 10px 0 0;
    color: #66706b !important;
    font: 400 12px/1.45 Arial, Helvetica, sans-serif;
}

@media (max-width: 520px) {
    .uds-switcher {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px;
    }

    .uds-top-left,
    .uds-top-right {
        top: 12px;
        bottom: auto;
    }

    .admin-bar .uds-top-left,
    .admin-bar .uds-top-right {
        top: 58px;
    }

    .uds-panel {
        left: 0 !important;
        right: 0 !important;
        width: auto;
    }

    .uds-toggle {
        max-width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    html[data-uds-design] body,
    html[data-uds-design] #page,
    html[data-uds-design] .site,
    html[data-uds-design] .site-content,
    html[data-uds-design] .wp-site-blocks,
    html[data-uds-design] main {
        transition: none;
    }
}



.uds-switcher,.uds-switcher * {box-sizing:border-box;}
.uds-panel[hidden] {display:none!important;}
.uds-panel {max-height:calc(100dvh - 110px);overflow:auto;}
.uds-preview-head {border-radius:2px;}
.uds-option[aria-pressed="true"] {outline:1px solid #3f503b;}

/* Shared branding in every view. */
html[data-uds-design] .uds-option[aria-pressed="true"] {
 border-color:var(--uds-primary)!important;outline-color:var(--uds-primary);
 background:var(--uds-soft)!important;
}
html[data-uds-design] .uds-switcher :is(button):focus-visible {
 outline-color:var(--uds-primary-dark);
}
