:root {
    --pt-acc: #7a4f7a;
    --pt-acc-text: #fff;
    --pt-header-bg: #2a1e2c;
    --pt-header-text: #fff;
    --pt-accent: #ffbf47;
    --pt-active: #7a4f7a;
    --pt-panel-bg: #fbf9fc;
    --pt-border: #d9d9dd;
    --pt-panel-width: 420px;
    --pt-trigger-size: 60px;
    --pt-radius: 14px;
    --pt-panel-bottom: 100px;
    --pt-ui-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    --pt-user-font-scale: 1;
    --pt-user-letter-spacing: normal;
    --pt-user-line-height: normal;
    --pt-user-text-align: initial;
    --pt-user-saturation: saturate(1);
    --pt-page-filter: none;
}

.pt-sr-only {
    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;
}

.pt-skip-link {
    position: fixed !important;
    top: -100px;
    left: 50%;
    transform: translateX(-50%);
    background: #171717 !important;
    color: #fff !important;
    padding: 12px 20px !important;
    z-index: 2147483647;
    text-decoration: none !important;
    border-radius: 0 0 8px 8px;
    font: 700 16px/1.3 Arial, sans-serif !important;
}

.pt-skip-link:focus { top: 0; }

#pt-trigger-wrap {
    position: fixed !important;
    bottom: 24px !important;
    z-index: 2147483600 !important;
    font-size: 16px !important;
}

#pt-access-trigger {
    appearance: none !important;
    width: var(--pt-trigger-size) !important;
    height: var(--pt-trigger-size) !important;
    min-width: var(--pt-trigger-size) !important;
    min-height: var(--pt-trigger-size) !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--pt-acc) !important;
    color: var(--pt-acc-text) !important;
    border: 3px solid var(--pt-acc-text) !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .34) !important;
    cursor: pointer !important;
    position: relative !important;
}

#pt-access-trigger.pt-trigger-shape-rounded { border-radius: 22% !important; }
#pt-access-trigger.pt-trigger-shape-square { border-radius: 4px !important; }
#pt-access-trigger.pt-trigger-shape-pill {
    width: calc(var(--pt-trigger-size) * 1.38) !important;
    border-radius: 999px !important;
}

#pt-trigger-wrap.pt-draggable #pt-access-trigger {
    cursor: grab !important;
    touch-action: none !important;
}

#pt-trigger-wrap.pt-draggable #pt-access-trigger:active,
#pt-trigger-wrap.pt-dragging #pt-access-trigger { cursor: grabbing !important; }

#pt-trigger-wrap.pt-dragging #pt-access-trigger {
    transform: scale(1.08) !important;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .35) !important;
}

#pt-trigger-wrap.pt-dragging { user-select: none !important; -webkit-user-select: none !important; }

.pt-drag-grip {
    position: absolute !important;
    top: -6px !important;
    right: -6px !important;
    width: 22px !important;
    height: 22px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: #fff !important;
    color: var(--pt-acc) !important;
    border: 2px solid var(--pt-acc) !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .3) !important;
    pointer-events: none !important;
}

.pt-drag-grip svg { display: block !important; width: 12px !important; height: 12px !important; }

#pt-access-trigger .pt-tool-icon {
    width: 34px !important;
    height: 34px !important;
    stroke: currentColor !important;
}

#pt-access-trigger::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: 72px;
    left: 50%;
    transform: translate(-50%, 6px);
    background: #222 !important;
    color: #fff !important;
    padding: 7px 11px !important;
    border-radius: 5px;
    white-space: nowrap;
    font: 600 14px/1.2 Arial, sans-serif !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s ease, transform .18s ease;
    pointer-events: none;
}

#pt-access-trigger:hover::after,
#pt-access-trigger:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

#pt-access-trigger:focus-visible,
#pt-panel button:focus-visible,
#pt-panel a:focus-visible {
    outline: 3px solid var(--pt-accent) !important;
    outline-offset: 3px !important;
}

#pt-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, .52) !important;
    z-index: 2147483601 !important;
    display: none;
}

#pt-overlay.active { display: block !important; }

#pt-panel {
    box-sizing: border-box !important;
    position: fixed !important;
    bottom: var(--pt-panel-bottom) !important;
    width: min(var(--pt-panel-width), calc(100vw - 32px)) !important;
    max-height: min(780px, calc(100vh - 116px)) !important;
    display: none;
    flex-direction: column !important;
    overflow: hidden !important;
    background: var(--pt-panel-bg) !important;
    color: #202124 !important;
    border: 1px solid #bfc1c5 !important;
    border-radius: var(--pt-radius) !important;
    box-shadow: 0 14px 50px rgba(0, 0, 0, .38) !important;
    z-index: 2147483602 !important;
    font: 400 16px/1.35 var(--pt-ui-font) !important;
    letter-spacing: normal !important;
    text-align: left !important;
    filter: none !important;
}

#pt-panel.active { display: flex !important; }
#pt-panel *, #pt-trigger-wrap * { box-sizing: border-box !important; }

.pt-header {
    min-height: 58px !important;
    padding: 12px 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    flex: 0 0 auto !important;
    background: var(--pt-header-bg) !important;
    color: var(--pt-header-text) !important;
}

.pt-header strong {
    color: var(--pt-header-text) !important;
    font: 700 17px/1.3 var(--pt-ui-font) !important;
}

.pt-close {
    appearance: none !important;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    margin: 0 !important;
    padding: 0 0 3px !important;
    border: 0 !important;
    border-radius: 5px !important;
    background: transparent !important;
    color: var(--pt-header-text) !important;
    font: 300 36px/1 Arial, sans-serif !important;
    cursor: pointer !important;
}

.pt-panel-body {
    padding: 14px 16px 18px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    background: var(--pt-panel-bg) !important;
    scrollbar-color: #999 transparent;
}

.pt-profiles-toggle {
    appearance: none !important;
    width: 100% !important;
    min-height: 60px !important;
    display: grid !important;
    grid-template-columns: 28px 1fr auto !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    margin: 0 0 12px !important;
    background: color-mix(in srgb, var(--pt-acc) 7%, #fff) !important;
    color: #202124 !important;
    border: 2px solid color-mix(in srgb, var(--pt-acc) 45%, #fff) !important;
    border-radius: 10px !important;
    font: 700 16px/1.25 var(--pt-ui-font) !important;
    text-align: left !important;
    cursor: pointer !important;
    transition: border-color .15s ease, background-color .15s ease;
}

.pt-profiles-toggle:hover,
.pt-profiles-toggle[aria-expanded="true"] {
    border-color: var(--pt-acc) !important;
    background: color-mix(in srgb, var(--pt-acc) 12%, #fff) !important;
}

.pt-profiles-title small {
    display: block !important;
    margin-top: 2px !important;
    color: #5b5d61 !important;
    font: 400 12px/1.3 var(--pt-ui-font) !important;
}

.pt-profiles-cue {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 6px 10px 6px 12px !important;
    border-radius: 999px !important;
    background: var(--pt-acc) !important;
    color: var(--pt-acc-text) !important;
    font: 700 13px/1 var(--pt-ui-font) !important;
    white-space: nowrap !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .18) !important;
}

.pt-chevron {
    display: block !important;
    width: 18px !important;
    height: 18px !important;
    transform: rotate(0deg);
    transition: transform .18s ease;
}

.pt-profiles-toggle[aria-expanded="true"] .pt-chevron { transform: rotate(180deg); }

.pt-profiles {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin: -3px 0 13px;
}

.pt-profiles[hidden] { display: none !important; }

.pt-profiles button {
    min-height: 54px !important;
    padding: 10px 12px !important;
    border: 1px solid #c7c7cc !important;
    border-radius: 7px !important;
    background: #fff !important;
    color: #222 !important;
    font: 600 14px/1.25 Arial, sans-serif !important;
    text-align: left !important;
    cursor: pointer !important;
}

.pt-profiles button strong,
.pt-profiles button span { display: block !important; }
.pt-profiles button strong { margin-bottom: 3px !important; color: inherit !important; }
.pt-profiles button span { color: #5b5d61 !important; font-size: 12px !important; font-weight: 400 !important; }
.pt-profiles button[aria-pressed="true"] {
    border-color: var(--pt-active) !important;
    background: color-mix(in srgb, var(--pt-active) 9%, #fff) !important;
    box-shadow: 0 0 0 1px var(--pt-active) inset !important;
}

.pt-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

.pt-tool {
    appearance: none !important;
    min-width: 0 !important;
    min-height: 112px !important;
    margin: 0 !important;
    padding: 13px 10px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    position: relative !important;
    overflow: hidden !important;
    border: 2px solid var(--pt-border) !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: #202124 !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .1) !important;
    font: 600 15px/1.25 Arial, Helvetica, sans-serif !important;
    text-align: center !important;
    cursor: pointer !important;
}

.pt-tool:hover { border-color: #999 !important; }
.pt-tool[aria-pressed="true"] {
    border-color: var(--pt-active) !important;
    background: color-mix(in srgb, var(--pt-active) 9%, #fff) !important;
    box-shadow: 0 0 0 1px var(--pt-active) inset !important;
}

.pt-tool-icon {
    width: 27px !important;
    height: 27px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    flex: 0 0 auto !important;
}

.pt-tool-icon circle:first-child,
.pt-tool-icon rect { fill: none !important; }

.pt-tool-label { color: inherit !important; }

.pt-stepper { cursor: default !important; }
.pt-stepper.active {
    border-color: var(--pt-active) !important;
    background: color-mix(in srgb, var(--pt-active) 7%, #fff) !important;
}
.pt-stepper-heading {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.pt-stepper-heading .pt-tool-icon { width: 24px !important; height: 24px !important; }
.pt-stepper-controls {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 38px minmax(52px, 1fr) 38px !important;
    align-items: center !important;
    gap: 5px !important;
}
.pt-stepper-controls button {
    appearance: none !important;
    width: 38px !important;
    height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #a8aaae !important;
    border-radius: 7px !important;
    background: #fff !important;
    color: #202124 !important;
    font: 700 24px/1 Arial, sans-serif !important;
    cursor: pointer !important;
}
.pt-stepper-controls button:hover:not(:disabled) { border-color: var(--pt-active) !important; color: var(--pt-active) !important; }
.pt-stepper-controls button:disabled { opacity: .38 !important; cursor: not-allowed !important; }
.pt-stepper-controls output {
    min-width: 0 !important;
    color: #34363a !important;
    font: 700 12px/1.2 Arial, sans-serif !important;
    overflow-wrap: anywhere !important;
}

.pt-level {
    position: absolute !important;
    left: 10px !important;
    right: 10px !important;
    bottom: 7px !important;
    display: flex !important;
    gap: 4px !important;
    height: 3px !important;
}

.pt-level span {
    display: block !important;
    flex: 1 !important;
    height: 3px !important;
    border-radius: 3px !important;
    background: #d4d4d7 !important;
}

.pt-level span.active { background: var(--pt-active) !important; }

.pt-reset {
    appearance: none !important;
    width: 100% !important;
    min-height: 46px !important;
    margin: 18px 0 0 !important;
    padding: 10px 16px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: var(--pt-header-bg) !important;
    color: #fff !important;
    font: 700 15px/1.3 Arial, sans-serif !important;
    cursor: pointer !important;
}

.pt-move {
    margin: 18px 0 0 !important;
    padding: 12px !important;
    border: 1px solid var(--pt-border) !important;
    border-radius: 8px !important;
    background: #fff !important;
}

.pt-move-title {
    display: block !important;
    margin: 0 0 8px !important;
    color: #1d2327 !important;
    font: 700 14px/1.3 Arial, sans-serif !important;
}

.pt-move-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
}

.pt-move-grid button {
    appearance: none !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border: 2px solid var(--pt-border) !important;
    border-radius: 8px !important;
    background: #f6f7f7 !important;
    color: #1d2327 !important;
    font: 700 14px/1.2 Arial, sans-serif !important;
    text-align: left !important;
    cursor: pointer !important;
}

.pt-move-grid button:hover { border-color: var(--pt-active) !important; }
.pt-move-grid button span { display: inline-block !important; min-width: 1.2em !important; font-size: 16px !important; }

.pt-footer {
    min-height: 46px !important;
    padding: 10px 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    flex: 0 0 auto !important;
    background: var(--pt-header-bg) !important;
    color: var(--pt-header-text) !important;
    font: 400 13px/1.25 Arial, sans-serif !important;
}

.pt-footer a,
.pt-footer span { color: var(--pt-header-text) !important; text-decoration: none !important; }
.pt-resource-links { display: flex !important; flex-wrap: wrap !important; gap: 6px 12px !important; }
.pt-resource-links a:not(:last-child)::after { content: "·"; margin-left: 12px; opacity: .7; }

#pt-panel.pt-layout-compact .pt-grid { grid-template-columns: 1fr !important; gap: 7px !important; }
#pt-panel.pt-layout-compact .pt-tool { min-height: 54px !important; padding: 9px 14px !important; flex-direction: row !important; justify-content: flex-start !important; text-align: left !important; }
#pt-panel.pt-layout-compact .pt-tool-icon { width: 23px !important; height: 23px !important; }
#pt-panel.pt-layout-compact .pt-level { left: auto !important; right: 12px !important; bottom: 9px !important; width: 80px !important; }
.pt-footer a:hover { text-decoration: underline !important; }

.pt-footer a.pt-attribution {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 5px !important;
    flex: 0 0 auto !important;
    text-align: center !important;
}

.pt-attribution-logo {
    display: block !important;
    padding: 5px 8px !important;
    background: #fff !important;
    border-radius: 6px !important;
    line-height: 0 !important;
}

.pt-attribution-logo img {
    display: block !important;
    width: 140px !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    border: 0 !important;
    filter: none !important;
}

body.pt-panel-open { overflow: hidden !important; }

body > *:not(#pt-panel):not(#pt-trigger-wrap):not(#pt-overlay):not(.pt-reading-mask):not(#pt-reading-guide):not(#pt-tooltip) {
    font-size: calc(1em * var(--pt-user-font-scale));
    letter-spacing: var(--pt-user-letter-spacing);
    line-height: var(--pt-user-line-height);
    text-align: var(--pt-user-text-align);
}

body.pt-line-height-active *:not(#pt-panel):not(#pt-panel *):not(#pt-trigger-wrap):not(#pt-trigger-wrap *):not(#wpadminbar):not(#wpadminbar *):not(.pt-reading-mask):not(#pt-reading-guide):not(#pt-tooltip) {
    line-height: var(--pt-user-line-height) !important;
}

body.pt-no-animations *:not(#pt-panel):not(#pt-panel *):not(#pt-trigger-wrap):not(#pt-trigger-wrap *) {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
}

body.pt-highlight-links a:not(#pt-panel a):not(#pt-trigger-wrap a) {
    color: #0047ff !important;
    background: #ffeb3b !important;
    text-decoration: underline !important;
    text-decoration-thickness: 3px !important;
    text-underline-offset: 3px !important;
    outline: 2px solid currentColor !important;
}

body.pt-readable-font *:not(#pt-panel):not(#pt-panel *):not(#pt-trigger-wrap):not(#pt-trigger-wrap *) {
    font-family: Arial, Verdana, Helvetica, sans-serif !important;
}

body.pt-hide-images img,
body.pt-hide-images picture,
body.pt-hide-images svg:not(#pt-panel svg):not(#pt-trigger-wrap svg),
body.pt-hide-images video {
    visibility: hidden !important;
}

body.pt-large-cursor,
body.pt-large-cursor *:not(#pt-panel):not(#pt-panel *) {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' stroke='%23fff' stroke-width='1.5' d='M4 2l15 12-7 1 4 7-3 1.5-4-7L4 21z'/%3E%3C/svg%3E") 4 2, auto !important;
}

body.pt-contrast-light *:not(#pt-panel):not(#pt-panel *):not(#pt-trigger-wrap):not(#pt-trigger-wrap *) {
    background-color: #fff !important;
    color: #000 !important;
    border-color: #000 !important;
}

body.pt-contrast-dark *:not(#pt-panel):not(#pt-panel *):not(#pt-trigger-wrap):not(#pt-trigger-wrap *) {
    background-color: #111 !important;
    color: #fff !important;
    border-color: #fff !important;
}

body.pt-contrast-yellow *:not(#pt-panel):not(#pt-panel *):not(#pt-trigger-wrap):not(#pt-trigger-wrap *) {
    background-color: #000 !important;
    color: #ffeb3b !important;
    border-color: #ffeb3b !important;
}

/*
 * Color filters (Invert colors, Saturation).
 * Applied only while a visitor has one switched on, and only to the root <html> element.
 * A filter on any other element turns it into the containing block for position: fixed
 * descendants, which breaks theme headers, drawers and slide-out menus and can widen the page.
 * The root element is exempt from that rule, so fixed elements keep working.
 */
html.pt-filter-active { filter: var(--pt-page-filter) !important; }

/* Keep the accessibility widget itself readable while Invert colors is on. */
html.pt-filter-active body.pt-invert-colors #pt-panel,
html.pt-filter-active body.pt-invert-colors #pt-trigger-wrap,
html.pt-filter-active body.pt-invert-colors #pt-overlay,
html.pt-filter-active body.pt-invert-colors #pt-tooltip,
html.pt-filter-active body.pt-invert-colors #pt-reading-guide,
html.pt-filter-active body.pt-invert-colors .pt-reading-mask {
    filter: invert(1) hue-rotate(180deg) !important;
}

.pt-reading-mask {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    display: none;
    background: rgba(0, 0, 0, .82) !important;
    pointer-events: none !important;
    z-index: 2147483500 !important;
}

.pt-reading-mask.active { display: block !important; }
#pt-mask-top { top: 0 !important; height: calc(50vh - 45px); }
#pt-mask-bottom { top: calc(50vh + 45px); bottom: 0 !important; }

#pt-reading-guide {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    top: 50vh;
    height: 4px !important;
    display: none;
    background: #ffbf00 !important;
    border-top: 1px solid #111 !important;
    border-bottom: 1px solid #111 !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .35) !important;
    pointer-events: none !important;
    z-index: 2147483501 !important;
}

#pt-reading-guide.active { display: block !important; }

#pt-tooltip {
    position: fixed !important;
    z-index: 2147483599 !important;
    display: none;
    max-width: 210px !important;
    padding: 8px 10px !important;
    border-radius: 5px !important;
    background: #111 !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(0, 0, 0, .3) !important;
    font: 600 14px/1.3 Arial, sans-serif !important;
    pointer-events: none !important;
}

#pt-tooltip.active { display: block !important; }

.pt-structure-item {
    position: relative !important;
    outline: 3px dashed #d80073 !important;
    outline-offset: 3px !important;
}

.pt-structure-item::before {
    content: attr(data-pt-structure-label) !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 2147483400 !important;
    padding: 3px 6px !important;
    background: #d80073 !important;
    color: #fff !important;
    font: 700 11px/1.2 Arial, sans-serif !important;
    letter-spacing: .04em !important;
}

@media (max-width: 520px) {
    #pt-trigger-wrap { bottom: 16px !important; }
    #pt-panel {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        width: auto !important;
        max-height: calc(100dvh - 24px) !important;
        border-radius: 12px !important;
    }
    #pt-panel.active { display: flex !important; }
    .pt-panel-body { padding: 12px !important; }
    .pt-grid { gap: 10px !important; }
    .pt-tool { min-height: 104px !important; font-size: 14px !important; }
    .pt-footer { font-size: 12px !important; padding: 8px 12px !important; }
    .pt-attribution-logo img { width: 120px !important; }
}

@media (prefers-reduced-motion: reduce) {
    #pt-access-trigger::after,
    .pt-chevron { transition: none !important; }
}
