/* ==========================================================================
   BASE — Reset, typography, and body defaults
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--cuc-font-body);
    font-size: var(--cuc-text-base);
    font-weight: var(--cuc-weight-regular);
    color: var(--cuc-text-primary);
    background-color: var(--cuc-surface);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--cuc-font-heading);
    font-weight: var(--cuc-weight-bold);
    line-height: 1.2;
    color: var(--cuc-green-dark);
    margin-bottom: var(--cuc-space-4);
}
h1 { font-size: var(--cuc-text-5xl); }
h2 { font-size: var(--cuc-text-4xl); }
h3 { font-size: var(--cuc-text-3xl); }
h4 { font-size: var(--cuc-text-2xl); }
h5 { font-size: var(--cuc-text-xl); }
h6 { font-size: var(--cuc-text-lg); }

p { margin-bottom: var(--cuc-space-4); color: var(--cuc-text-secondary); }

a { color: var(--cuc-green-primary); text-decoration: none; transition: color var(--cuc-transition-fast); }
a:hover { color: var(--cuc-green-dark); }
a:focus-visible { outline: 2px solid var(--cuc-green-primary); outline-offset: 3px; border-radius: 3px; }

img, svg { display: block; max-width: 100%; height: auto; }

ul, ol { padding-left: var(--cuc-space-6); margin-bottom: var(--cuc-space-4); }
li { margin-bottom: var(--cuc-space-1); }

strong { font-weight: var(--cuc-weight-bold); color: var(--cuc-text-primary); }
em { font-style: italic; }

hr { border: none; border-top: 1px solid var(--cuc-border); margin: var(--cuc-space-8) 0; }

/* Form base */
input, textarea, select {
    font-family: var(--cuc-font-body);
    font-size: var(--cuc-text-base);
    color: var(--cuc-text-primary);
}

/* Accessibility */
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Skip link */
.skip-link {
    position: absolute;
    top: -100%;
    left: var(--cuc-space-4);
    background: var(--cuc-green-dark);
    color: var(--cuc-text-light);
    padding: var(--cuc-space-2) var(--cuc-space-6);
    border-radius: 0 0 var(--cuc-radius-md) var(--cuc-radius-md);
    font-size: var(--cuc-text-sm);
    z-index: 9999;
    transition: top var(--cuc-transition-fast);
}
.skip-link:focus { top: 0; }

/* WP Alignments */
.alignleft  { float: left;  margin-right: var(--cuc-space-6); margin-bottom: var(--cuc-space-4); }
.alignright { float: right; margin-left: var(--cuc-space-6);  margin-bottom: var(--cuc-space-4); }
.aligncenter { display: block; margin-left: auto; margin-right: auto; margin-bottom: var(--cuc-space-4); }
.alignfull  { width: 100vw; margin-left: calc(50% - 50vw); }
.alignwide  { width: calc(100% + var(--cuc-space-16)); margin-left: calc(-1 * var(--cuc-space-8)); }
