/**
 * Little Moth & Moon Brand Foundation
 * Divi child theme design tokens and global defaults.
 */

:root {
    --lmm-deep-midnight: #0E1428;
    --lmm-panel-navy: #161E39;
    --lmm-lighter-panel: #1E2748;
    --lmm-warm-gold: #D4AF6A;
    --lmm-champagne: #E8C88A;
    --lmm-darker-gold: #B8924A;
    --lmm-cream: #F3ECD8;
    --lmm-off-white: #EEF1FA;
    --lmm-blue-grey: #93A0C4;
    --lmm-line: #2C355C;
    --lmm-rose: #C98B9B;

    --lmm-font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --lmm-font-ui: 'Inter', Arial, Helvetica, sans-serif;

    --lmm-radius: 12px;
    --lmm-section-space: clamp(4rem, 8vw, 8rem);
    --lmm-content-width: 1200px;
}

html {
    scroll-behavior: smooth;
}

body {
    background: var(--lmm-deep-midnight);
    color: var(--lmm-off-white);
    font-family: var(--lmm-font-ui);
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
.et_pb_module_header {
    color: var(--lmm-cream);
    font-family: var(--lmm-font-display);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.015em;
}

h1 { font-size: clamp(3rem, 7vw, 5.5rem); }
h2 { font-size: clamp(2.4rem, 5vw, 4rem); }
h3 { font-size: clamp(1.8rem, 3vw, 2.6rem); }

p,
li,
input,
textarea,
select,
button,
.et_pb_text_inner {
    font-family: var(--lmm-font-ui);
}

a {
    color: var(--lmm-champagne);
    text-decoration-color: rgba(232, 200, 138, 0.45);
    text-underline-offset: 0.18em;
    transition: color 180ms ease, text-decoration-color 180ms ease;
}

a:hover,
a:focus-visible {
    color: var(--lmm-cream);
    text-decoration-color: var(--lmm-cream);
}

::selection {
    background: var(--lmm-warm-gold);
    color: var(--lmm-deep-midnight);
}

/* Divi buttons and reusable brand buttons */
.et_pb_button,
.lmm-button,
button,
input[type='submit'] {
    background: var(--lmm-warm-gold);
    border: 1px solid var(--lmm-warm-gold);
    border-radius: 0;
    color: var(--lmm-deep-midnight) !important;
    font-family: var(--lmm-font-ui);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.2;
    padding: 0.95em 1.5em;
    text-transform: uppercase;
    transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
}

.et_pb_button:hover,
.lmm-button:hover,
button:hover,
input[type='submit']:hover {
    background: var(--lmm-champagne);
    border-color: var(--lmm-champagne);
    color: var(--lmm-deep-midnight) !important;
}

.et_pb_button:focus-visible,
.lmm-button:focus-visible,
button:focus-visible,
input[type='submit']:focus-visible,
a:focus-visible {
    outline: 2px solid var(--lmm-off-white);
    outline-offset: 4px;
}

/* Small editorial kicker used throughout the brand system */
.lmm-kicker {
    color: var(--lmm-warm-gold);
    font-family: var(--lmm-font-ui);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1.4;
    text-transform: uppercase;
}

.lmm-quiet-close {
    color: var(--lmm-blue-grey);
    font-family: var(--lmm-font-display);
    font-size: 1.15rem;
    font-style: italic;
}

/* Branded surfaces */
.lmm-midnight { background: var(--lmm-deep-midnight); }
.lmm-panel { background: var(--lmm-panel-navy); }
.lmm-panel-light { background: var(--lmm-lighter-panel); }

.lmm-card {
    background: var(--lmm-panel-navy);
    border: 1px solid var(--lmm-line);
    border-radius: var(--lmm-radius);
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.lmm-card--accent {
    border-color: var(--lmm-darker-gold);
}

.lmm-rule {
    border: 0;
    border-top: 1px solid var(--lmm-line);
    margin: 2rem 0;
}

.lmm-rule--gold {
    border-top-color: var(--lmm-darker-gold);
}

/* Composition helpers */
.lmm-section {
    padding-block: var(--lmm-section-space);
}

.lmm-wrap {
    margin-inline: auto;
    max-width: var(--lmm-content-width);
    padding-inline: clamp(1.25rem, 4vw, 3rem);
}

/* Forms */
input[type='text'],
input[type='email'],
input[type='tel'],
input[type='url'],
input[type='number'],
input[type='password'],
textarea,
select {
    background: var(--lmm-panel-navy);
    border: 1px solid var(--lmm-line);
    border-radius: 4px;
    color: var(--lmm-off-white);
    min-height: 48px;
    padding: 0.8rem 0.9rem;
}

input:focus,
textarea:focus,
select:focus {
    border-color: var(--lmm-warm-gold);
    box-shadow: 0 0 0 2px rgba(212, 175, 106, 0.18);
    outline: none;
}

::placeholder {
    color: var(--lmm-blue-grey);
    opacity: 1;
}

/* Keep body copy comfortable and restrained. */
.et_pb_text p,
.et_pb_text li {
    max-width: 72ch;
}

/* Accessibility: respect reduced motion. */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
