/*
Theme Name: VerseFlow Sanctuary
Description: Dedicated stylesheet for the Sanctuary design system (Hub & Guidance).
Version: 1.0.0
*/

:root {
    /* Sanctuary Tokens */
    --mercy-base: #F6EFE2;
    --grounded-text: #2A2A2A;
    --covenant-accent: #7A1E2C;

    /* Typography */
    --vf-font-serif: "Cormorant Garamond", "Georgia", serif;
    --vf-font-body: "Lora", "Georgia", serif;
    --vf-font-sans: "Helvetica Neue", Helvetica, Arial, sans-serif;

    /* Spacing */
    --spacing-xs: 0.5rem;
    --spacing-sm: 1rem;
    --spacing-md: 2rem;
    --spacing-lg: 4rem;
    --spacing-xl: 6rem;
}

/* Scoped Sanctuary Styling */
body.verseflow-sanctuary {
    background-color: transparent;
    color: var(--grounded-text);
    font-family: var(--vf-font-body);
    line-height: 1.8;
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0;
    transition: background-color 0.3s ease;
}

/* Golden Variant */
body.verseflow-sanctuary.vf-golden {
    background-color: transparent;
    --mercy-base: #FAF0F1;
    /* Override token if needed */
}

/* Container / Shell */
body.verseflow-sanctuary .vf-shell,
body.verseflow-sanctuary main.site-main {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--spacing-md) var(--spacing-sm);
}

/* Monastic Padding on Desktop */
@media (min-width: 768px) {

    body.verseflow-sanctuary .vf-shell,
    body.verseflow-sanctuary main.site-main {
        padding: var(--spacing-lg) var(--spacing-md);
    }
}

/* Typography Overrides */
body.verseflow-sanctuary h1,
body.verseflow-sanctuary h2,
body.verseflow-sanctuary h3,
body.verseflow-sanctuary h4,
body.verseflow-sanctuary h5,
body.verseflow-sanctuary h6 {
    font-family: var(--vf-font-serif);
    color: var(--grounded-text);
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
}

body.verseflow-sanctuary h1 {
    font-size: 2.5rem;
    color: var(--covenant-accent);
}

body.verseflow-sanctuary h2 {
    font-size: 1.8rem;
    border-bottom: 2px solid rgba(122, 30, 44, 0.1);
    /* Low opacity covenant */
    padding-bottom: var(--spacing-xs);
}

/* Links */
body.verseflow-sanctuary a,
body.verseflow-sanctuary a:visited {
    color: var(--covenant-accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: text-decoration-thickness 0.2s ease, text-underline-offset 0.2s ease;
}

body.verseflow-sanctuary a:hover,
body.verseflow-sanctuary a:active {
    color: var(--covenant-accent);
    /* Ensure consistent color */
    text-decoration-thickness: 2px;
    text-underline-offset: 2px;
}

/* Buttons: .vf-seek-button, .emotion-btn */
body.verseflow-sanctuary .vf-seek-button,
body.verseflow-sanctuary .emotion-btn,
body.verseflow-sanctuary button,
body.verseflow-sanctuary input[type="submit"] {
    font-family: var(--vf-font-body);
    background-color: var(--grounded-text);
    color: var(--mercy-base);
    border: 2px solid transparent;
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: 4px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
    text-decoration: none;
    display: inline-block;
}

body.verseflow-sanctuary .vf-seek-button:hover,
body.verseflow-sanctuary .vf-seek-button:active,
body.verseflow-sanctuary .emotion-btn:hover,
body.verseflow-sanctuary .emotion-btn:active,
body.verseflow-sanctuary button:hover,
body.verseflow-sanctuary button:active,
body.verseflow-sanctuary input[type="submit"]:hover,
body.verseflow-sanctuary input[type="submit"]:active {
    background-color: var(--mercy-base);
    color: var(--covenant-accent);
    border-color: var(--covenant-accent);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* Focus Visible */
body.verseflow-sanctuary :focus-visible {
    outline: 3px solid var(--covenant-accent);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(122, 30, 44, 0.2);
}

/* Component Overrides for Sanctuary */
body.verseflow-sanctuary .guidance-entry {
    background: transparent;
    box-shadow: none;
    border: none;
    padding: 0;
    /* Reset internal padding if any */
}

body.verseflow-sanctuary .guidance-section {
    background: transparent;
    padding: var(--spacing-md);
    border-radius: 8px;
    margin-bottom: var(--spacing-md);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* Factoids & specific overrides */
body.verseflow-sanctuary .guidance-factoid {
    background-color: transparent;
    border-left: 4px solid var(--covenant-accent);
}

body.verseflow-sanctuary .guidance-prayer {
    background-color: transparent;
    /* Slightly darker mercy */
    border-left: 4px solid var(--covenant-accent);
}

/* Verse Styling */
body.verseflow-sanctuary .guidance-verse {
    border-left-color: var(--covenant-accent);
    font-family: var(--vf-font-body);
}

body.verseflow-sanctuary .verse-text {
    font-style: italic;
}

/* Curator Signature (Sanctuary) */
body.verseflow-sanctuary .vf-curator-signature {
    margin-top: var(--spacing-xl);
    text-align: center;
    color: var(--covenant-accent);
    opacity: 0.85;
}

body.verseflow-sanctuary .curator-caption {
    font-family: var(--vf-font-serif);
    font-style: italic;
    font-size: 1.1rem;
    margin-bottom: var(--spacing-xs);
}

body.verseflow-sanctuary .curator-read-more {
    color: var(--covenant-accent);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    text-decoration: none;
    border-bottom: 1px solid rgba(122, 30, 44, 0.3);
    /* Low opacity covenant */
    padding-bottom: 2px;
}

body.verseflow-sanctuary .curator-read-more:hover {
    border-bottom-color: var(--covenant-accent);
    opacity: 1;
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {

    body.verseflow-sanctuary *,
    body.verseflow-sanctuary *::before,
    body.verseflow-sanctuary *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* -------------------------------------------------------------------------- */
/* Sacred Load Animation (Breath) */
/* -------------------------------------------------------------------------- */

body.verseflow-sanctuary .vf-pulse-loader {
    width: 60px;
    height: 60px;
    background-color: var(--covenant-accent);
    border-radius: 50%;
    margin: var(--spacing-md) auto;
    opacity: 0;
    pointer-events: none;
    /* Default hidden state logic managed by JS classes */
    display: none;
}

body.verseflow-sanctuary .vf-pulse-loader.animate {
    display: block;
    animation: sacredBreath 1.5s ease-in-out infinite;
}

@keyframes sacredBreath {
    0% {
        transform: scale(0.8);
        opacity: 0.5;
    }

    50% {
        transform: scale(1.1);
        opacity: 1;
    }

    100% {
        transform: scale(0.8);
        opacity: 0.5;
    }
}

/* Ensure content is hidden during reveal if JS handles it */
body.verseflow-sanctuary .guidance-content-wrapper.revealing {
    display: none;
    /* Or opacity: 0 for fade in */
    opacity: 0;
}

body.verseflow-sanctuary .guidance-content-wrapper {
    transition: opacity 0.5s ease-in;
    opacity: 1;
}
