/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.6.1.1771913671
Updated: 2026-02-24 06:14:31

*/

/*
Theme Name: GeneratePress Child
Theme URI: 
Description: Custom child theme for GeneratePress — SPARK Fine Arts Preschool
Author: 
Author URI: 
Template: generatepress
Version: 1.0.0
*/

/* ==========================================================================
   CSS VARIABLES
   ========================================================================== */

:root {
    --primary: #A7D7C5;
    --primary-dark: #88BCA8;
    --secondary: #F6E8B1;
    --text: #2C3E50;
    --text-light: #586A7A;
    --background: #FBFBF2;
}

/* ==========================================================================
   BASE STYLES
   ========================================================================== */

body {
    background-color: var(--background);
    color: var(--text);
    -webkit-font-smoothing: antialiased;
}

/* Grain texture overlay — adds tactile quality to flat backgrounds */
body::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9999;
    opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 256px 256px;
}

/* ==========================================================================
   SCROLLBAR
   ========================================================================== */

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #FBFBF2; }
::-webkit-scrollbar-thumb { background: #A7D7C5; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #88BCA8; }

/* ==========================================================================
   SCROLL REVEAL ANIMATION — Safe Version
   Content visible by default; only hidden if JS is confirmed working.
   ========================================================================== */

.reveal-hidden {
    opacity: 1;
    transform: translateY(0);
    transition: all 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Only hide elements if JavaScript is confirmed working */
.js-enabled .reveal-hidden:not(.reveal-visible) {
    opacity: 0;
    transform: translateY(24px);
}

.js-enabled .reveal-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ==========================================================================
   FORM FOCUS STYLES
   ========================================================================== */

.form-input:focus {
    outline: none;
    border-color: #2C3E50;
    box-shadow: 0 0 0 3px rgba(44, 62, 80, 0.1);
}

/* ==========================================================================
   MOBILE MENU
   ========================================================================== */

#mobile-menu {
    transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
}
#mobile-menu.open {
    max-height: 600px;
    opacity: 1;
}

/* ==========================================================================
   HERO OVERLAY
   ========================================================================== */

.hero-overlay {
    background: linear-gradient(to right, rgba(251, 251, 242, 0.96) 0%, rgba(251, 251, 242, 0.88) 40%, rgba(251, 251, 242, 0.35) 100%);
}
@media (max-width: 1024px) {
    .hero-overlay {
        background: linear-gradient(to bottom, rgba(251, 251, 242, 0.96) 0%, rgba(251, 251, 242, 0.92) 60%, rgba(251, 251, 242, 0.5) 100%);
    }
}

/* ==========================================================================
   SCROLL OFFSET FOR FIXED HEADERS
   ========================================================================== */

section { scroll-margin-top: 120px; }

/* ==========================================================================
   HAND-DRAWN UNDERLINE SVG ANIMATION
   ========================================================================== */

.hand-underline path {
    stroke-dasharray: 300;
    stroke-dashoffset: 300;
}
.reveal-visible .hand-underline path {
    animation: draw-line 1s ease-out 0.3s forwards;
}
@keyframes draw-line {
    to { stroke-dashoffset: 0; }
}

/* ==========================================================================
   STAGGER CHILDREN — used on timeline, cards
   ========================================================================== */

.stagger-children > *:nth-child(1) { transition-delay: 0ms; }
.stagger-children > *:nth-child(2) { transition-delay: 80ms; }
.stagger-children > *:nth-child(3) { transition-delay: 160ms; }
.stagger-children > *:nth-child(4) { transition-delay: 240ms; }
.stagger-children > *:nth-child(5) { transition-delay: 320ms; }
.stagger-children > *:nth-child(6) { transition-delay: 400ms; }
.stagger-children > *:nth-child(7) { transition-delay: 480ms; }

/* ==========================================================================
   TIMELINE VERTICAL CONNECTOR LINE
   ========================================================================== */

.timeline-line {
    position: relative;
}
.timeline-line::before {
    content: '';
    position: absolute;
    left: 7.6rem;
    top: 1rem;
    bottom: 4rem;
    width: 2px;
    background: linear-gradient(to bottom, #A7D7C5 0%, #F6E8B1 100%);
    opacity: 0.4;
}
@media (max-width: 640px) {
    .timeline-line::before {
        left: 6rem;
    }
}

/* ==========================================================================
   PHOTO STRIP MARQUEE
   ========================================================================== */

@keyframes scroll-strip {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.marquee-track {
    animation: scroll-strip 30s linear infinite;
}
.marquee-track:hover {
    animation-play-state: paused;
}

/* ==========================================================================
   FEATURED TESTIMONIAL QUOTE MARK
   ========================================================================== */

.quote-mark {
    font-family: 'DM Serif Display', serif;
    font-size: 8rem;
    line-height: 1;
    position: absolute;
    top: -1.5rem;
    left: 1.5rem;
    opacity: 0.08;
    color: var(--text);
}

/* ==========================================================================
   DECORATIVE SECTION DIVIDER
   ========================================================================== */

.section-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 0.5rem 0;
}
.section-divider::before,
.section-divider::after {
    content: '';
    height: 1px;
    width: 60px;
    background: #A7D7C5;
    opacity: 0.5;
}

/* ==========================================================================
   NAVIGATION FONT SIZE OVERRIDE
   ========================================================================== */

#navbar a,
#navbar .menu-item a,
#mobile-menu a {
    font-size: 1rem; /* 16px */
}
