/*
Theme Name: Entreaty
Author: Your Name
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: block-theme, full-site-editing, performance, minimal, portfolio
Text Domain: entreaty
*/

/* 1 — 28 design-role variables (no-palette defaults; overridden by the active palette) */
:root {
    --entreaty-body-text:          #1a1a1a;
    --entreaty-heading-display:    #111111;
    --entreaty-heading-body:       #1a1a1a;
    --entreaty-link:               #2563eb;
    --entreaty-link-hover:         #1d4ed8;
    --entreaty-muted-text:         #6b7280;
    --entreaty-btn-primary-bg:     #2563eb;
    --entreaty-btn-primary-text:   #ffffff;
    --entreaty-btn-outline-bg:     transparent;
    --entreaty-btn-outline-border: #2563eb;
    --entreaty-btn-outline-text:   #2563eb;
    --entreaty-page-bg:            #ffffff;
    --entreaty-header-bg:          #ffffff;
    --entreaty-header-text:        #1a1a1a;
    --entreaty-footer-bg:          #111111;
    --entreaty-footer-text:        #f3f4f6;
    --entreaty-card-bg:            #ffffff;
    --entreaty-card-border:        #e5e7eb;
    --entreaty-input-border:       #d1d5db;
    --entreaty-input-border-focus: #2563eb;
    --entreaty-separator:          #e5e7eb;
    --entreaty-blockquote-border:  #2563eb;
    --entreaty-table-border:       #e5e7eb;
    --entreaty-image-border:       #e5e7eb;
    --entreaty-tag-label:          #2563eb;
    --entreaty-nav-active:         #2563eb;
    --entreaty-selection:          #bfdbfe;
    --entreaty-accent-custom:      #2563eb;
}

/* 2 — element-to-role wiring (written once; never edited by the user) */
/* Typography */
body                 { color: var(--entreaty-body-text); background-color: var(--entreaty-page-bg); }
h1, h2               { color: var(--entreaty-heading-display); }
h3, h4, h5, h6       { color: var(--entreaty-heading-body); }
a                    { color: var(--entreaty-link); }
a:hover              { color: var(--entreaty-link-hover); }
.wp-block-post-date,
.wp-block-post-author,
.wp-block-post-terms { color: var(--entreaty-muted-text); }

/* Buttons */
.wp-block-button__link { background-color: var(--entreaty-btn-primary-bg); color: var(--entreaty-btn-primary-text); }
.wp-block-button.is-style-outline .wp-block-button__link {
    background-color: var(--entreaty-btn-outline-bg);
    border-color: var(--entreaty-btn-outline-border);
    color: var(--entreaty-btn-outline-text);
}

/* Structure */
.site-header { background-color: var(--entreaty-header-bg); color: var(--entreaty-header-text); }
.site-footer { background-color: var(--entreaty-footer-bg); color: var(--entreaty-footer-text); }

/* Components */
.wp-block-group.is-style-card { background-color: var(--entreaty-card-bg); border-color: var(--entreaty-card-border); border-style: solid; border-width: 1px; }
input, textarea, select       { border-color: var(--entreaty-input-border); }
input:focus, textarea:focus   { border-color: var(--entreaty-input-border-focus); outline-color: var(--entreaty-input-border-focus); }
.wp-block-separator           { border-color: var(--entreaty-separator); }
.wp-block-quote               { border-inline-start-color: var(--entreaty-blockquote-border); }
.wp-block-table td,
.wp-block-table th            { border-color: var(--entreaty-table-border); }
img.is-style-framed           { border-color: var(--entreaty-image-border); border-style: solid; border-width: 1px; }

/* Accent */
.wp-block-post-terms a { color: var(--entreaty-tag-label); }
.current-menu-item > a { color: var(--entreaty-nav-active); }
::selection            { background-color: var(--entreaty-selection); }

/* 3 — accessibility helpers */
.screen-reader-text {
    clip: rect(1px,1px,1px,1px);
    clip-path: inset(50%);
    height: 1px; width: 1px;
    margin: -1px; overflow: hidden; padding: 0;
    position: absolute; word-wrap: normal !important;
}
.skip-link:focus {
    clip: auto !important; clip-path: none;
    display: block; height: auto; width: auto;
    left: 1rem; top: 1rem; z-index: 100000;
    font-size: 1rem; padding: 0.75rem 1.5rem; text-decoration: none;
    background: var(--entreaty-btn-primary-bg); color: var(--entreaty-btn-primary-text);
}
:focus-visible { outline: 2px solid var(--entreaty-link); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}
