/* PoseLab shared foundation
 * Design tokens + base elements common to the marketing site (/) and the
 * customer portal (/portal). Loaded before each page's inline <style>, so any
 * rule here can be overridden per-page. Page-specific layout stays inline.
 */

@font-face {
    font-family: "D-DIN";
    src: url("fonts/D-DIN.otf") format("opentype");
    font-weight: normal;
    font-style: normal;
}

:root {
    --paper: #f4f1e9;
    --paper2: #ebe6da;
    --ink: #20211f;
    --muted: #777872;
    --line: #cbc5b7;
    --white: #fffdf8;
    --orange: #c4522e;
    --orange2: #9f3c1f;
    --green: #315d4a;
    --blue: #31566a;
    --red: #9f3529;
    --shadow: 0 18px 50px rgba(36, 31, 24, 0.1);
    --sans:
        "D-DIN", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI",
        sans-serif;
    --serif: Georgia, "Times New Roman", serif;
}

* {
    box-sizing: border-box;
    font-family: "D-DIN", sans-serif;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
}
button,
input {
    font: inherit;
}
button,
a {
    -webkit-tap-highlight-color: transparent;
}

/* Typography */
h1,
h2,
h3,
p {
    margin-top: 0;
}
h1,
h2 {
    margin: 0;
    font-family: var(--serif);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 1.03;
}
.eyebrow {
    margin: 0 0 14px;
    color: var(--orange2);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* Brand lockup */
.brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    font-weight: 800;
    text-decoration: none;
}
.brand-mark {
    width: 18px;
    height: 18px;
    border: 5px solid var(--orange);
    border-radius: 50%;
}

/* Buttons */
.button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 18px;
    border: 1px solid var(--ink);
    border-radius: 4px;
    color: var(--white);
    background: var(--ink);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease;
}
.button:hover {
    transform: translateY(-1px);
    background: #000;
}
.button.orange {
    border-color: var(--orange);
    background: var(--orange);
}
.button.orange:hover {
    border-color: var(--orange2);
    background: var(--orange2);
}
.button.alt,
.button.quiet {
    color: var(--ink);
    background: transparent;
}
.button.alt:hover,
.button.quiet:hover {
    background: var(--white);
}
.button.danger {
    border-color: #cbb0aa;
    color: var(--red);
    background: transparent;
}
.button.small {
    min-height: 34px;
    padding: 6px 10px;
    font-size: 12px;
}
.button:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
        animation: none !important;
        transition: none !important;
    }
}
