/* ==========================================================================
   DRILLPRO — BASE STYLES
   Reset + element defaults. Sits on top of tokens.css.
   ========================================================================== */

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

html, body {
    margin: 0;
    padding: 0;
    font-family: var(--dp-font-body);
    font-size: var(--dp-fs-base);
    font-weight: var(--dp-fw-regular);
    line-height: var(--dp-lh-base);
    color: var(--dp-text);
    background: var(--dp-ice);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Headings — Barlow Condensed for brand consistency with website */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--dp-font-heading);
    font-weight: var(--dp-fw-bold);
    line-height: var(--dp-lh-tight);
    color: var(--dp-text);
    margin: 0 0 var(--dp-s-3) 0;
    letter-spacing: -0.01em;
}

h1 { font-size: var(--dp-fs-3xl); }
h2 { font-size: var(--dp-fs-2xl); }
h3 { font-size: var(--dp-fs-xl); }
h4 { font-size: var(--dp-fs-lg); }
h5 { font-size: var(--dp-fs-md); font-weight: var(--dp-fw-semibold); }
h6 { font-size: var(--dp-fs-base); font-weight: var(--dp-fw-semibold); text-transform: uppercase; letter-spacing: 0.04em; }

p { margin: 0 0 var(--dp-s-3) 0; }
p:last-child { margin-bottom: 0; }

a {
    color: var(--dp-navy);
    text-decoration: none;
    transition: color var(--dp-trans-fast);
}
a:hover { color: var(--dp-navy-2); text-decoration: underline; }
a:focus-visible {
    outline: 2px solid var(--dp-navy);
    outline-offset: 2px;
    border-radius: var(--dp-radius-sm);
}

small { font-size: var(--dp-fs-sm); }
strong, b { font-weight: var(--dp-fw-semibold); }
em, i { font-style: italic; }
hr {
    border: none;
    border-top: 1px solid var(--dp-border);
    margin: var(--dp-s-5) 0;
}

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

button {
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
}

/* Selection */
::selection { background: var(--dp-navy); color: var(--dp-text-invert); }

/* Focus ring (default — components can override) */
:focus-visible {
    outline: 2px solid var(--dp-navy);
    outline-offset: 2px;
}

/* Scrollbar — subtle, brand-tinted */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: var(--dp-border-2);
    border-radius: var(--dp-radius-pill);
}
::-webkit-scrollbar-thumb:hover { background: var(--dp-border-dk); }

/* Utility classes used across the app */
.dp-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

.dp-no-scroll { overflow: hidden; }
.dp-text-center { text-align: center; }
.dp-text-right { text-align: right; }
.dp-mt-0 { margin-top: 0 !important; }
.dp-mb-0 { margin-bottom: 0 !important; }

/* Hide default WP admin bar on app pages (handled per-page in PHP, but safety) */
body.dp-app #wpadminbar { display: none !important; }
body.dp-app { margin-top: 0 !important; }
