/*==================================================
  LESSON PLANS
  Little Explorers Learning Hub
  lesson-plans.css
==================================================*/



/*==================================================
  RESET
==================================================*/

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

html{
    scroll-behavior:smooth;
}

body{
    min-height:100vh;
    overflow-x:hidden;
    font-family:"Inter",sans-serif;
    background:#f8faf8;
    color:#2b2b2b;
    line-height:1.7;
    text-rendering:optimizeLegibility;
}

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

a{
    text-decoration:none;
    color:inherit;
}

ul{
    list-style:none;
}

button,
input{
    font:inherit;
}

button{
    cursor:pointer;
    border:none;
}



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

:root{

    --primary:#2f6f57;
    --primary-dark:#255743;
    --primary-light:#eaf6ef;

    --secondary:#f3b84d;
    --secondary-dark:#d79c2c;

    --accent:#d97c54;

    --text:#2c2c2c;
    --text-light:#666;

    --white:#ffffff;

    --background:#f8faf8;
    --section:#ffffff;
    --section-alt:#f4f8f5;

    --border:#e5ece6;

    --shadow-sm:0 4px 12px rgba(0,0,0,.06);
    --shadow:0 12px 28px rgba(0,0,0,.08);
    --shadow-lg:0 18px 42px rgba(0,0,0,.12);

    --radius-sm:12px;
    --radius:20px;
    --radius-lg:28px;

    --transition:.35s ease;

    --container:1320px;

}



/*==================================================
  GLOBAL
==================================================*/

.container{
    width:min(92%,var(--container));
    margin-inline:auto;
}

section{
    padding:6rem 0;
}

.section-title{
    text-align:center;
    max-width:760px;
    margin:0 auto 4rem;
}

.section-tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--primary-light);
    color:var(--primary);
    font-size:.82rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
    padding:.55rem 1.2rem;
    border-radius:999px;
    margin-bottom:1.25rem;
}

.section-title h2{
    font-size:clamp(2rem,4vw,3rem);
    line-height:1.15;
    color:var(--primary-dark);
    margin-bottom:1rem;
    font-family:"Nunito",sans-serif;
}

.section-title p{
    color:var(--text-light);
    font-size:1.08rem;
}



/*==================================================
  BUTTONS
==================================================*/

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:1rem 2rem;
    border-radius:999px;
    font-weight:700;
    transition:var(--transition);
}

.btn-primary{
    background:var(--primary);
    color:var(--white);
    box-shadow:var(--shadow-sm);
}

.btn-primary:hover{
    background:var(--primary-dark);
    transform:translateY(-3px);
}

.btn-secondary{
    background:var(--white);
    color:var(--primary);
    border:2px solid var(--primary);
}

.btn-secondary:hover{
    background:var(--primary);
    color:#fff;
}



/*==================================================
  HEADER
==================================================*/

.site-header{
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(12px);
    border-bottom:1px solid var(--border);
    box-shadow:0 2px 12px rgba(0,0,0,.04);
}

.nav-container{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:90px;
    gap:2rem;
}

.logo{
    display:flex;
    align-items:center;
    gap:1rem;
    flex-shrink:0;
}

.logo img{
    width:64px;
    height:64px;
    object-fit:contain;
}

.logo-text{
    display:flex;
    flex-direction:column;
    line-height:1.1;
}

.logo-text h1{
    margin:0;
    font-size:1.5rem;
    color:var(--primary);
    font-family:"Nunito",sans-serif;
}

.logo-text span{
    font-size:.95rem;
    font-weight:700;
    color:var(--text-light);
}

/*==================================================
  NAVIGATION
==================================================*/

.main-nav{
    margin-left:auto;
}

.main-nav ul{
    display:flex;
    align-items:center;
    gap:1.75rem;
}

.main-nav a{
    position:relative;
    padding:.45rem 0;
    font-weight:600;
    color:var(--text);
    transition:var(--transition);
}

.main-nav a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-8px;
    width:0;
    height:3px;
    background:var(--primary);
    border-radius:999px;
    transition:var(--transition);
}

.main-nav a:hover,
.main-nav a.active{
    color:var(--primary);
}

.main-nav a:hover::after,
.main-nav a.active::after{
    width:100%;
}

/*==================================================
  HEADER ACTIONS
==================================================*/

.header-actions{
    display:flex;
    align-items:center;
    gap:1rem;
}

.search-toggle{
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:transparent;
    color:var(--primary);
    transition:var(--transition);
}

.search-toggle:hover{
    background:var(--primary);
    color:#fff;
    transform:translateY(-2px);
}

.search-toggle i{
    font-size:1rem;
    line-height:1;
}

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

.mobile-menu{
    display:none;
    width:52px;
    height:52px;
    border-radius:14px;
    background:var(--primary);
    color:#ffffff;
    border:none;
    cursor:pointer;
    font-size:1.4rem;
    align-items:center;
    justify-content:center;
    transition:var(--transition);
}

.mobile-menu:hover{
    background:var(--primary-dark);
}

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

.lesson-hero{
    background:linear-gradient(180deg,#f9fcfa 0%,#eef7f2 100%);
    padding:5rem 0 6rem;
}

.hero-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:4rem;
    align-items:center;
}

.hero-content h1{
    font-size:clamp(2.7rem,5vw,4.6rem);
    line-height:1.08;
    color:var(--primary-dark);
    margin:1rem 0 1.5rem;
    font-family:"Nunito",sans-serif;
}

.hero-content p{
    font-size:1.15rem;
    color:var(--text-light);
    max-width:650px;
}

.hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    margin:2.5rem 0;
}

.hero-search{
    display:flex;
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:var(--shadow);
    margin-bottom:2.5rem;
}

.hero-search input{
    flex:1;
    padding:1.2rem 1.4rem;
    border:none;
    outline:none;
}

.hero-search button{
    background:var(--secondary);
    color:#fff;
    font-weight:700;
    padding:0 2rem;
}

.hero-search button:hover{
    background:var(--secondary-dark);
}

.hero-highlights{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:1.25rem;
}

.highlight-card{
    background:#fff;
    padding:1.5rem;
    border-radius:18px;
    box-shadow:var(--shadow-sm);
    border:1px solid var(--border);
    transition:var(--transition);
}

.highlight-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow);
}

.highlight-card strong{
    display:block;
    color:var(--primary);
    font-size:2rem;
    font-family:"Nunito",sans-serif;
    margin-bottom:.35rem;
}

.highlight-card span{
    color:var(--text-light);
    font-size:.95rem;
}

.hero-image img{
    width:100%;
    border-radius:28px;
    box-shadow:var(--shadow-lg);
    object-fit:cover;
}

/*==================================================
  QUICK ACCESS
==================================================*/

.quick-access{
    background:var(--section);
}

.quick-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:2rem;
}

.quick-card{
    background:#fff;
    border:1px solid var(--border);
    border-radius:24px;
    padding:2.2rem;
    text-align:center;
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
}

.quick-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow);
    border-color:rgba(47,111,87,.25);
}

.quick-icon{
    width:78px;
    height:78px;
    margin:0 auto 1.4rem;
    border-radius:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--primary-light);
    font-size:2rem;
}

.quick-card h3{
    color:var(--primary-dark);
    font-family:"Nunito",sans-serif;
    font-size:1.35rem;
    margin-bottom:.9rem;
}

.quick-card p{
    color:var(--text-light);
    font-size:.97rem;
}



/*==================================================
  BROWSE BY AGE
==================================================*/

.age-section{
    background:var(--section-alt);
}

.age-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:2rem;
}

.age-card{
    background:#fff;
    border-radius:26px;
    padding:2.5rem 2rem;
    text-align:center;
    border:1px solid var(--border);
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
}

.age-card:hover{
    transform:translateY(-10px);
    box-shadow:var(--shadow);
}

.age-icon{
    width:90px;
    height:90px;
    margin:0 auto 1.5rem;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#eaf6ef,#ffffff);
    font-size:2.6rem;
}

.age-card h3{
    color:var(--primary-dark);
    font-size:1.5rem;
    margin-bottom:.6rem;
    font-family:"Nunito",sans-serif;
}

.age-card p{
    color:var(--text-light);
    margin-bottom:1.5rem;
}

.age-card span{
    color:var(--primary);
    font-weight:700;
    transition:var(--transition);
}

.age-card:hover span{
    letter-spacing:.04em;
}



/*==================================================
  FEATURED LESSON PLANS
==================================================*/

.featured-studies{
    background:#fff;
}

.study-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
    gap:2.5rem;
}

.study-card{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:#fff;
    border-radius:26px;
    border:1px solid var(--border);
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
}

.study-card:hover{
    transform:translateY(-10px);
    box-shadow:var(--shadow-lg);
}

.study-card img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}

.study-content{
    display:flex;
    flex-direction:column;
    flex:1;
    padding:2rem;
}

.study-content h3{
    margin:.9rem 0 .8rem;
    color:var(--primary-dark);
    font-size:1.6rem;
    font-family:"Nunito",sans-serif;
}

.study-content p{
    color:var(--text-light);
    margin-bottom:1.8rem;
    flex:1;
}



/*==================================================
  STUDY TAGS
==================================================*/

.study-tag{
    display:inline-flex;
    align-items:center;
    width:max-content;
    padding:.45rem .95rem;
    border-radius:999px;
    font-size:.75rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.study-tag.green{
    background:#e8f7ed;
    color:#2f7a4b;
}

.study-tag.aqua{
    background:#e8f8fb;
    color:#007a91;
}

.study-tag.orange{
    background:#fff2df;
    color:#b46a0a;
}

.study-tag.blue{
    background:#ebf3ff;
    color:#1d63c5;
}

.study-tag.coral{
    background:#fff0eb;
    color:#d06039;
}

.study-tag.purple{
    background:#f2ecff;
    color:#7251c6;
}



/*==================================================
  STUDY FOOTER
==================================================*/

.study-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    padding-top:1.4rem;
    border-top:1px solid var(--border);
}

.study-footer span{
    color:var(--text-light);
    font-size:.9rem;
}

.study-footer a{
    color:var(--primary);
    font-weight:700;
    transition:var(--transition);
}

.study-footer a:hover{
    color:var(--primary-dark);
    transform:translateX(4px);
}

/*==================================================
  EVERY LESSON INCLUDES
==================================================*/

.teacher-favorites{
    background:var(--section-alt);
}

.favorite-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:2rem;
}

.favorite-card{
    background:#fff;
    padding:2.25rem;
    border-radius:24px;
    border:1px solid var(--border);
    box-shadow:var(--shadow-sm);
    text-align:center;
    transition:var(--transition);
}

.favorite-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow);
}

.favorite-icon{
    width:82px;
    height:82px;
    margin:0 auto 1.5rem;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--primary-light);
    font-size:2.1rem;
}

.favorite-card h3{
    margin-bottom:1rem;
    color:var(--primary-dark);
    font-family:"Nunito",sans-serif;
    font-size:1.35rem;
}

.favorite-card p{
    color:var(--text-light);
    font-size:.96rem;
}



/*==================================================
  BROWSE BY THEME
==================================================*/

.interest-areas{
    background:#fff;
}

.interest-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:2rem;
}

.interest-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    background:#fff;
    border-radius:24px;
    padding:2.25rem;
    border:1px solid var(--border);
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
}

.interest-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow);
}

.interest-icon{
    width:82px;
    height:82px;
    border-radius:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:2rem;
    margin-bottom:1.5rem;
    transition:var(--transition);
}

.interest-card:hover .interest-icon{
    transform:scale(1.08);
}

.interest-card h3{
    color:var(--primary-dark);
    font-size:1.3rem;
    margin-bottom:.9rem;
    font-family:"Nunito",sans-serif;
}

.interest-card p{
    color:var(--text-light);
    font-size:.95rem;
}



/*==================================================
  THEME COLORS
==================================================*/

.interest-card.orange .interest-icon{
    background:#fff2df;
}

.interest-card.green .interest-icon{
    background:#eaf7ee;
}

.interest-card.blue .interest-icon{
    background:#ebf3ff;
}

.interest-card.purple .interest-icon{
    background:#f3edff;
}

.interest-card.coral .interest-icon{
    background:#fff0eb;
}

.interest-card.teal .interest-icon{
    background:#e6f8fa;
}

.interest-card.aqua .interest-icon{
    background:#edfaff;
}



/*==================================================
  CLASSROOM INTEREST AREAS
==================================================*/

#interest-areas{
    background:var(--section-alt);
}

#interest-areas .interest-card{
    min-height:285px;
    justify-content:flex-start;
}

#interest-areas .interest-icon{
    width:78px;
    height:78px;
    border-radius:20px;
    background:var(--primary-light);
}

#interest-areas .interest-card:hover .interest-icon{
    background:var(--primary);
    color:#fff;
}

#interest-areas .interest-card h3{
    margin-bottom:.85rem;
}

#interest-areas .interest-card p{
    flex:1;
}



/*==================================================
  CARD HOVER EFFECTS
==================================================*/

.quick-card,
.age-card,
.study-card,
.favorite-card,
.interest-card{
    position:relative;
    overflow:hidden;
}

.quick-card::before,
.age-card::before,
.study-card::before,
.favorite-card::before,
.interest-card::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:4px;
    background:linear-gradient(
        90deg,
        var(--primary),
        var(--secondary)
    );
    transform:scaleX(0);
    transform-origin:left;
    transition:.35s ease;
}

.quick-card:hover::before,
.age-card:hover::before,
.study-card:hover::before,
.favorite-card:hover::before,
.interest-card:hover::before{
    transform:scaleX(1);
}



/*==================================================
  SECTION SPACING
==================================================*/

.teacher-favorites,
.interest-areas{
    position:relative;
}

.teacher-favorites::after,
.interest-areas::after{
    content:"";
    display:block;
    width:90px;
    height:4px;
    margin:5rem auto 0;
    border-radius:999px;
    background:linear-gradient(
        90deg,
        var(--primary),
        var(--secondary)
    );
    opacity:.25;
}

/*==================================================
  TEACHER PLANNING TOOLS
==================================================*/

.planning-tools{
    background:var(--section);
}

.tools-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:2rem;
}

.tool-card{
    background:#fff;
    border:1px solid var(--border);
    border-radius:24px;
    padding:2.4rem;
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
    display:flex;
    flex-direction:column;
}

.tool-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow);
}

.tool-icon{
    width:80px;
    height:80px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--primary-light);
    border-radius:20px;
    font-size:2rem;
    margin-bottom:1.5rem;
}

.tool-card h3{
    color:var(--primary-dark);
    font-family:"Nunito",sans-serif;
    font-size:1.35rem;
    margin-bottom:1rem;
}

.tool-card p{
    color:var(--text-light);
    flex:1;
    margin-bottom:1.5rem;
}

.tool-card a{
    color:var(--primary);
    font-weight:700;
    transition:var(--transition);
}

.tool-card a:hover{
    color:var(--primary-dark);
    padding-left:.35rem;
}



/*==================================================
  NEWSLETTER
==================================================*/

.newsletter{
    background:linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );
    color:#fff;
}

.newsletter-content{
    max-width:760px;
    margin:auto;
    text-align:center;
}

.newsletter .section-tag{
    background:rgba(255,255,255,.15);
    color:#fff;
}

.newsletter h2{
    font-size:clamp(2.2rem,4vw,3.3rem);
    font-family:"Nunito",sans-serif;
    margin:1rem 0;
}

.newsletter p{
    opacity:.92;
    font-size:1.08rem;
    margin-bottom:2.5rem;
}

.newsletter-form{
    display:flex;
    max-width:650px;
    margin:auto;
    background:#fff;
    border-radius:999px;
    overflow:hidden;
    box-shadow:var(--shadow-lg);
}

.newsletter-form input{
    flex:1;
    border:none;
    outline:none;
    padding:1.2rem 1.5rem;
}

.newsletter-form button{
    background:var(--secondary);
    color:#fff;
    padding:0 2.25rem;
    font-weight:700;
    transition:var(--transition);
}

.newsletter-form button:hover{
    background:var(--secondary-dark);
}



/*==================================================
  FOOTER
==================================================*/

.site-footer{
    background:#18352b;
    color:#d9e4dd;
    padding:4rem 0 0;
}

.footer-grid{
    display:grid;
    grid-template-columns:1.8fr 1fr 1fr 1fr;
    gap:2.5rem;
    padding-bottom:2.5rem;
    align-items:start;
}

.footer-about h3{
    color:#fff;
    font-family:"Nunito",sans-serif;
    font-size:2rem;
    margin-bottom:1.25rem;
    line-height:1.2;
}

.footer-about p{
    max-width:460px;
    color:#c6d4cb;
    line-height:1.8;
}

.site-footer h4{
    color:#fff;
    font-family:"Nunito",sans-serif;
    font-size:1.1rem;
    margin-bottom:1.2rem;
}

.site-footer ul{
    display:grid;
    gap:.85rem;
}

.site-footer a{
    color:#c9d6d0;
    transition:color .3s ease,padding-left .3s ease;
}

.site-footer a:hover{
    color:#fff;
    padding-left:.35rem;
}

.footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:2rem;
    margin-top:1rem;
    padding:1.75rem 0;
    border-top:1px solid rgba(255,255,255,.12);
}

.footer-bottom p{
    color:#b6c5bd;
    font-size:.95rem;
}

.footer-links{
    display:flex;
    flex-wrap:wrap;
    gap:1.5rem;
}

.footer-links a{
    color:#b6c5bd;
}

.footer-links a:hover{
    color:#fff;
    padding-left:0;
}

/*==================================================
  RESPONSIVE FOOTER
==================================================*/

@media (max-width:1100px){

    .footer-grid{
        grid-template-columns:repeat(2,1fr);
    }

}

@media (max-width:768px){

    .footer-grid{
        grid-template-columns:1fr;
        text-align:center;
    }

    .footer-about{
        margin-bottom:1rem;
    }

    .footer-about p{
        margin:0 auto;
    }

    .footer-bottom{
        flex-direction:column;
        text-align:center;
    }

    .footer-links{
        justify-content:center;
    }

}



/*==================================================
  BACK TO TOP
==================================================*/

.back-to-top{
    position:fixed;
    right:2rem;
    bottom:2rem;
    width:56px;
    height:56px;
    border-radius:50%;
    background:var(--primary);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.3rem;
    box-shadow:var(--shadow);
    opacity:0;
    visibility:hidden;
    transform:translateY(20px);
    transition:var(--transition);
    z-index:1000;
}

.back-to-top.visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.back-to-top:hover{
    background:var(--primary-dark);
}



/*==================================================
  SIMPLE ANIMATIONS
==================================================*/

@keyframes fadeUp{

    from{
        opacity:0;
        transform:translateY(30px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

.lesson-hero,
.quick-access,
.age-section,
.featured-studies,
.teacher-favorites,
.interest-areas,
.planning-tools,
.newsletter{
    animation:fadeUp .7s ease both;
}



/*==================================================
  TABLET
==================================================*/

@media (max-width:1100px){

.hero-grid,
.footer-grid{
    grid-template-columns:1fr;
}

.quick-grid,
.age-grid,
.favorite-grid,
.tools-grid{
    grid-template-columns:repeat(2,1fr);
}

.study-grid{
    grid-template-columns:repeat(2,1fr);
}

.main-nav{
    display:none;
}

.mobile-menu{
    display:flex;
    align-items:center;
    justify-content:center;
}

.main-nav.show{
    display:block;
    position:absolute;
    left:0;
    top:84px;
    width:100%;
    background:#fff;
    padding:2rem;
    border-top:1px solid var(--border);
    box-shadow:var(--shadow);
}

.main-nav.show ul{
    flex-direction:column;
    gap:1.5rem;
    align-items:flex-start;
}

}



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

@media (max-width:768px){

section{
    padding:4.5rem 0;
}

.nav-container{
    gap:1rem;
}

.search-bar{
    display:none;
}

.hero-content{
    text-align:center;
}

.hero-actions{
    justify-content:center;
}

.hero-highlights{
    grid-template-columns:1fr;
}

.quick-grid,
.age-grid,
.favorite-grid,
.study-grid,
.interest-grid,
.tools-grid{
    grid-template-columns:1fr;
}

.study-footer{
    flex-direction:column;
    align-items:flex-start;
}

.newsletter-form{
    flex-direction:column;
    border-radius:20px;
}

.newsletter-form input{
    width:100%;
}

.newsletter-form button{
    width:100%;
    padding:1rem;
}

.footer-bottom{
    flex-direction:column;
    text-align:center;
}

.footer-links{
    flex-wrap:wrap;
    justify-content:center;
}

.back-to-top{
    right:1rem;
    bottom:1rem;
}

}



/*==================================================
  LARGE DESKTOPS
==================================================*/

@media (min-width:1500px){

.container{
    max-width:1400px;
}

.hero-content h1{
    max-width:820px;
}

.study-grid{
    grid-template-columns:repeat(3,1fr);
}

.interest-grid{
    grid-template-columns:repeat(4,1fr);
}

}

