/* =========================================================
   OBSERVATION FORMS
   Little Explorers Learning Hub
   Standalone stylesheet for observation-forms.html
   ========================================================= */

/* ---------- Design Tokens ---------- */

:root{
    --primary:#4f7cac;
    --primary-dark:#355f86;
    --primary-light:#eaf3fb;
    --secondary:#f3a65a;
    --secondary-dark:#d98635;
    --accent:#79bfa1;
    --accent-light:#edf8f3;
    --purple:#8b78b8;
    --purple-light:#f1eef9;

    --ink:#243447;
    --muted:#66758a;
    --soft:#8a98a8;

    --white:#ffffff;
    --cream:#fffaf3;
    --surface:#f7f9fc;
    --surface-alt:#eef4f8;
    --border:#dce5ed;

    --shadow-sm:0 4px 14px rgba(36,52,71,.08);
    --shadow-md:0 12px 30px rgba(36,52,71,.12);
    --shadow-lg:0 22px 55px rgba(36,52,71,.16);

    --radius-sm:10px;
    --radius-md:16px;
    --radius-lg:24px;
    --radius-xl:32px;

    --container:1200px;
    --header-height:82px;

    --font-heading:"Fredoka",sans-serif;
    --font-body:"Nunito",sans-serif;

    --transition:180ms ease;
}

/* ---------- Reset ---------- */

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

html{
    scroll-behavior:smooth;
    scroll-padding-top:100px;
}

body{
    margin:0;
    min-width:320px;
    background:var(--white);
    color:var(--ink);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.7;
    overflow-x:hidden;
}

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

button,
input{
    font:inherit;
}

button{
    cursor:pointer;
}

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

p,
h1,
h2,
h3,
ul{
    margin-top:0;
}

ul{
    padding-left:1.25rem;
}

::selection{
    background:var(--primary);
    color:var(--white);
}

/* ---------- Accessibility ---------- */

.skip-link{
    position:fixed;
    top:12px;
    left:12px;
    z-index:9999;
    padding:.7rem 1rem;
    border-radius:10px;
    background:var(--ink);
    color:var(--white);
    transform:translateY(-160%);
    transition:transform var(--transition);
}

.skip-link:focus{
    transform:translateY(0);
}

:focus-visible{
    outline:3px solid var(--secondary);
    outline-offset:3px;
}

/* ---------- Shared Layout ---------- */

.container{
    width:min(calc(100% - 40px),var(--container));
    margin-inline:auto;
}

section{
    position:relative;
}

.section-heading{
    max-width:780px;
    margin:0 auto 3.25rem;
    text-align:center;
}

.section-heading h2{
    margin:.65rem 0 1rem;
    color:var(--ink);
    font-family:var(--font-heading);
    font-size:clamp(2rem,4vw,3rem);
    line-height:1.15;
}

.section-heading p{
    margin:0;
    color:var(--muted);
    font-size:1.05rem;
}

.section-tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    padding:.45rem .85rem;
    border-radius:999px;
    background:var(--primary-light);
    color:var(--primary-dark);
    font-family:var(--font-heading);
    font-size:.85rem;
    font-weight:600;
    line-height:1.2;
}

.section-tag i{
    font-size:.85em;
}

/* ---------- Header ---------- */

.site-header{
    position:sticky;
    top:0;
    z-index:1000;
    min-height:var(--header-height);
    background:rgba(255,255,255,.97);
    border-bottom:1px solid var(--border);
    box-shadow:0 3px 18px rgba(36,52,71,.06);
    backdrop-filter:blur(12px);
}

.site-header .container{
    min-height:var(--header-height);
    display:flex;
    align-items:center;
    gap:2rem;
}

.logo{
    display:flex;
    align-items:center;
    gap:.8rem;
    flex:0 0 auto;
}

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

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

.logo-title{
    color:var(--ink);
    font-family:var(--font-heading);
    font-size:1.18rem;
    font-weight:600;
}

.logo-subtitle{
    margin-top:.2rem;
    color:var(--primary);
    font-size:.76rem;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
}

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

.main-nav ul{
    display:flex;
    align-items:center;
    gap:.35rem;
    margin:0;
    padding:0;
    list-style:none;
}

.main-nav a{
    display:block;
    padding:.65rem .8rem;
    border-radius:10px;
    color:var(--muted);
    font-size:.93rem;
    font-weight:700;
    transition:
        background var(--transition),
        color var(--transition),
        transform var(--transition);
}

.main-nav a:hover{
    background:var(--primary-light);
    color:var(--primary-dark);
}

.main-nav a.active{
    background:var(--primary);
    color:var(--white);
}

.mobile-menu{
    display:none;
    width:44px;
    height:44px;
    margin-left:auto;
    padding:0;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--white);
    color:var(--ink);
}

/* ---------- Breadcrumb ---------- */

.breadcrumb-section{
    padding:1rem 0;
    background:var(--surface);
    border-bottom:1px solid var(--border);
}

.breadcrumb ol{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.4rem .65rem;
    margin:0;
    padding:0;
    list-style:none;
    color:var(--muted);
    font-size:.88rem;
}

.breadcrumb li{
    display:flex;
    align-items:center;
    gap:.65rem;
}

.breadcrumb a{
    color:var(--primary-dark);
    font-weight:700;
}

.breadcrumb a:hover{
    text-decoration:underline;
}

.breadcrumb i{
    color:var(--soft);
    font-size:.72rem;
}

/* ---------- Hero ---------- */

.page-hero{
    padding:6rem 0 5.5rem;
    background:
        radial-gradient(circle at 90% 15%,rgba(121,191,161,.22),transparent 30%),
        radial-gradient(circle at 5% 90%,rgba(243,166,90,.18),transparent 32%),
        linear-gradient(135deg,#f8fbfe 0%,#ffffff 55%,#fffaf3 100%);
    overflow:hidden;
}

.page-hero::before,
.page-hero::after{
    content:"";
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}

.page-hero::before{
    width:260px;
    height:260px;
    right:-110px;
    top:100px;
    background:rgba(79,124,172,.08);
}

.page-hero::after{
    width:180px;
    height:180px;
    left:-80px;
    bottom:-70px;
    background:rgba(243,166,90,.09);
}

.hero-content{
    position:relative;
    z-index:1;
    max-width:930px;
    margin-inline:auto;
    text-align:center;
}

.hero-content h1{
    max-width:900px;
    margin:1.1rem auto 1.25rem;
    color:var(--ink);
    font-family:var(--font-heading);
    font-size:clamp(2.5rem,6vw,4.5rem);
    font-weight:600;
    line-height:1.05;
    letter-spacing:-.025em;
}

.hero-intro{
    max-width:800px;
    margin:0 auto;
    color:var(--muted);
    font-size:1.12rem;
    line-height:1.8;
}

.hero-features{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:.9rem;
    max-width:900px;
    margin:2.25rem auto;
}

.hero-feature{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.55rem;
    min-height:58px;
    padding:.75rem;
    border:1px solid var(--border);
    border-radius:14px;
    background:rgba(255,255,255,.82);
    box-shadow:var(--shadow-sm);
    color:var(--ink);
    font-size:.9rem;
    font-weight:800;
}

.hero-feature i{
    color:var(--primary);
}

.hero-buttons,
.final-cta-buttons{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:.85rem;
}

/* ---------- Buttons ---------- */

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.55rem;
    min-height:48px;
    padding:.75rem 1.2rem;
    border:2px solid transparent;
    border-radius:12px;
    font-weight:800;
    line-height:1.2;
    transition:
        transform var(--transition),
        box-shadow var(--transition),
        background var(--transition),
        color var(--transition),
        border-color var(--transition);
}

.btn:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-sm);
}

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

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

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

.btn-secondary:hover{
    border-color:var(--primary);
    background:var(--primary-light);
}

/* ---------- Statistics ---------- */

.stats-section{
    padding:2rem 0 4.5rem;
    background:var(--white);
}

.stats-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:1rem;
}

.stat-card{
    padding:1.75rem 1rem;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    background:var(--white);
    box-shadow:var(--shadow-sm);
    text-align:center;
}

.stat-card i{
    display:inline-grid;
    width:48px;
    height:48px;
    margin-bottom:.8rem;
    place-items:center;
    border-radius:50%;
    background:var(--primary-light);
    color:var(--primary);
}

.stat-card h2{
    margin:0;
    color:var(--ink);
    font-family:var(--font-heading);
    font-size:2rem;
    line-height:1.1;
}

.stat-card p{
    margin:.35rem 0 0;
    color:var(--muted);
    font-size:.9rem;
    font-weight:700;
}

/* ---------- Importance ---------- */

.importance-section{
    padding:6rem 0;
    background:var(--surface);
}

.steps-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:1.25rem;
}

.step-card{
    position:relative;
    min-width:0;
    padding:2rem 1.5rem 1.6rem;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    background:var(--white);
    box-shadow:var(--shadow-sm);
    text-align:center;
}

.step-number{
    position:absolute;
    top:1rem;
    right:1rem;
    display:grid;
    width:32px;
    height:32px;
    place-items:center;
    border-radius:50%;
    background:var(--primary-light);
    color:var(--primary-dark);
    font-family:var(--font-heading);
    font-weight:700;
}

.step-card > i{
    display:grid;
    width:58px;
    height:58px;
    margin:0 auto 1rem;
    place-items:center;
    border-radius:16px;
    background:var(--accent-light);
    color:#4d9677;
    font-size:1.35rem;
}

.step-card h3,
.category-card h3,
.theme-card h3,
.resource-card h3,
.tip-card h3{
    margin:0 0 .65rem;
    color:var(--ink);
    font-family:var(--font-heading);
    font-size:1.3rem;
    line-height:1.2;
}

.step-card p,
.category-card p,
.theme-card p,
.resource-card p,
.tip-card p{
    margin:0;
    color:var(--muted);
}

/* ---------- Resource Categories ---------- */

.label-categories{
    padding:6rem 0;
    background:var(--white);
}

.category-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:1.25rem;
}

.category-card{
    display:flex;
    min-width:0;
    flex-direction:column;
    padding:2rem 1.5rem 1.5rem;
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    background:var(--white);
    box-shadow:var(--shadow-sm);
    transition:
        transform var(--transition),
        box-shadow var(--transition);
}

.category-card:hover{
    transform:translateY(-5px);
    box-shadow:var(--shadow-md);
}

.category-icon,
.resource-icon{
    display:grid;
    width:58px;
    height:58px;
    margin-bottom:1.1rem;
    place-items:center;
    border-radius:16px;
    background:var(--primary-light);
    color:var(--primary);
    font-size:1.35rem;
}

.category-card:nth-child(2) .category-icon{
    background:#fff2e5;
    color:var(--secondary-dark);
}

.category-card:nth-child(3) .category-icon{
    background:var(--accent-light);
    color:#4d9677;
}

.category-card:nth-child(4) .category-icon{
    background:var(--purple-light);
    color:var(--purple);
}

.category-card ul{
    display:grid;
    gap:.45rem;
    margin:1.2rem 0 1.5rem;
    padding-left:1.1rem;
    color:var(--muted);
    font-size:.9rem;
}

.category-card li::marker{
    color:var(--primary);
}

.category-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    margin-top:auto;
    padding:.65rem 1rem;
    border-radius:10px;
    background:var(--primary-light);
    color:var(--primary-dark);
    font-size:.9rem;
    font-weight:800;
    transition:background var(--transition),color var(--transition);
}

.category-button:hover{
    background:var(--primary);
    color:var(--white);
}

/* ---------- Observation Methods ---------- */

.classroom-themes{
    padding:6rem 0;
    background:var(--surface);
}

.theme-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.25rem;
}

.theme-card{
    display:flex;
    min-width:0;
    flex-direction:column;
    padding:0 1.5rem 1.5rem;
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    background:var(--white);
    box-shadow:var(--shadow-sm);
}

.theme-card.featured-theme{
    border-color:rgba(79,124,172,.45);
    box-shadow:var(--shadow-md);
}

.theme-preview{
    display:grid;
    min-height:145px;
    margin:0 -1.5rem 1.35rem;
    place-items:center;
    color:var(--white);
    font-size:2.3rem;
}

.rainbow-theme{
    background:linear-gradient(135deg,#f7a7a7,#f3c66b,#7dc6aa,#8caee6);
}

.woodland-theme{
    background:linear-gradient(135deg,#547a5f,#8caa77);
}

.ocean-theme{
    background:linear-gradient(135deg,#4f93b7,#76c7d7);
}

.safari-theme{
    background:linear-gradient(135deg,#b78b50,#d4b477);
}

.boho-theme{
    background:linear-gradient(135deg,#9c7f68,#d1aa8e);
}

.custom-theme{
    background:linear-gradient(135deg,#6f78b6,#9d8fc6);
}

.theme-button{
    align-self:flex-start;
    margin-top:1.25rem;
    padding:.65rem .95rem;
    border:0;
    border-radius:10px;
    background:var(--primary-light);
    color:var(--primary-dark);
    font-weight:800;
}

.theme-button:hover{
    background:var(--primary);
    color:var(--white);
}

/* ---------- Featured Resources ---------- */

.related-resources{
    padding:6rem 0;
    background:var(--white);
}

.resources-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.25rem;
}

.resource-card{
    display:flex;
    min-width:0;
    flex-direction:column;
    padding:1.75rem;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    background:var(--white);
    box-shadow:var(--shadow-sm);
}

.resource-card .btn{
    align-self:flex-start;
    margin-top:1.4rem;
}

/* ---------- Teacher Tips ---------- */

.teacher-tips{
    padding:6rem 0;
    background:var(--surface);
}

.tips-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:1.15rem;
}

.tip-card{
    min-width:0;
    padding:1.5rem;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    background:var(--white);
    box-shadow:var(--shadow-sm);
}

.tip-card > i{
    display:grid;
    width:44px;
    height:44px;
    margin-bottom:1rem;
    place-items:center;
    border-radius:12px;
    background:var(--accent-light);
    color:#4d9677;
}

/* ---------- FAQ ---------- */

.faq-section{
    padding:6rem 0;
    background:var(--white);
}

.faq-grid{
    display:grid;
    max-width:900px;
    margin-inline:auto;
    gap:.9rem;
}

.faq-card{
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--white);
}

.faq-question{
    display:flex;
    width:100%;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:1.2rem 1.3rem;
    border:0;
    background:var(--white);
    color:var(--ink);
    text-align:left;
    font-family:var(--font-heading);
    font-size:1.05rem;
    font-weight:600;
}

.faq-question:hover{
    background:var(--surface);
}

.faq-question i{
    flex:0 0 auto;
    color:var(--primary);
    transition:transform var(--transition);
}

.faq-card.open .faq-question i{
    transform:rotate(180deg);
}

.faq-answer{
    display:none;
    padding:0 1.3rem 1.25rem;
}

.faq-card.open .faq-answer{
    display:block;
}

.faq-answer p{
    margin:0;
    color:var(--muted);
}

/* ---------- Final CTA ---------- */

.final-cta{
    padding:6rem 0;
    background:
        radial-gradient(circle at 15% 20%,rgba(121,191,161,.2),transparent 28%),
        linear-gradient(135deg,var(--primary-dark),var(--primary));
    color:var(--white);
    text-align:center;
}

.final-cta .container{
    max-width:900px;
}

.final-cta h2{
    margin:0 auto 1rem;
    color:var(--white);
    font-family:var(--font-heading);
    font-size:clamp(2rem,4vw,3rem);
    line-height:1.15;
}

.final-cta p{
    max-width:760px;
    margin:0 auto 1.8rem;
    color:rgba(255,255,255,.9);
    font-size:1.05rem;
}

.final-cta .btn-primary{
    background:var(--white);
    color:var(--primary-dark);
}

.final-cta .btn-primary:hover{
    background:#f2f7fb;
}

.final-cta .btn-secondary{
    border-color:rgba(255,255,255,.5);
    background:transparent;
    color:var(--white);
}

.final-cta .btn-secondary:hover{
    background:rgba(255,255,255,.12);
    border-color:var(--white);
}

/* ---------- Newsletter ---------- */

.newsletter{
    padding:4.5rem 0;
    background:var(--cream);
}

.newsletter-wrapper{
    max-width:800px;
    margin-inline:auto;
    padding:2.5rem;
    border:1px solid var(--border);
    border-radius:var(--radius-xl);
    background:var(--white);
    box-shadow:var(--shadow-md);
    text-align:center;
}

.newsletter-wrapper > i{
    display:grid;
    width:58px;
    height:58px;
    margin:0 auto 1rem;
    place-items:center;
    border-radius:50%;
    background:var(--primary-light);
    color:var(--primary);
    font-size:1.4rem;
}

.newsletter-wrapper h2{
    margin:0 0 .5rem;
    font-family:var(--font-heading);
    font-size:2rem;
}

.newsletter-wrapper p{
    max-width:650px;
    margin:0 auto 1.5rem;
    color:var(--muted);
}

.newsletter-form{
    display:flex;
    max-width:620px;
    margin-inline:auto;
    gap:.65rem;
}

.newsletter-form input{
    min-width:0;
    flex:1;
    min-height:48px;
    padding:.75rem 1rem;
    border:1px solid var(--border);
    border-radius:11px;
    background:var(--white);
    color:var(--ink);
}

.newsletter-form button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    min-height:48px;
    padding:.75rem 1.1rem;
    border:0;
    border-radius:11px;
    background:var(--primary);
    color:var(--white);
    font-weight:800;
}

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

/* ---------- Footer ---------- */

.site-footer{
    padding:4.5rem 0 1.5rem;
    background:#1f2d3d;
    color:rgba(255,255,255,.82);
}

.footer-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1fr;
    gap:2.5rem;
}

.footer-column{
    min-width:0;
}

.footer-title{
    margin:0;
    color:var(--white);
    font-family:var(--font-heading);
    font-size:1.55rem;
}

.footer-subtitle{
    display:block;
    margin-top:.2rem;
    color:#a8c9e3;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.footer-column p{
    color:rgba(255,255,255,.68);
}

.footer-brand p{
    max-width:400px;
    margin-top:1rem;
}

.footer-column h3{
    margin:0 0 1rem;
    color:var(--white);
    font-family:var(--font-heading);
    font-size:1.05rem;
}

.footer-column ul{
    display:grid;
    gap:.5rem;
    margin:0;
    padding:0;
    list-style:none;
}

.footer-column a{
    color:rgba(255,255,255,.7);
    transition:color var(--transition);
}

.footer-column a:hover{
    color:var(--white);
}

.footer-button{
    display:inline-flex;
    margin-top:.5rem;
    padding:.65rem .9rem;
    border:1px solid rgba(255,255,255,.22);
    border-radius:10px;
    color:var(--white) !important;
}

.footer-button:hover{
    background:rgba(255,255,255,.1);
}

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

.footer-bottom p{
    margin:0;
    color:rgba(255,255,255,.58);
    font-size:.85rem;
}

.footer-links{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    font-size:.85rem;
}

/* ---------- Back to Top ---------- */

.back-to-top{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:900;
    display:grid;
    width:48px;
    height:48px;
    place-items:center;
    border:0;
    border-radius:50%;
    background:var(--primary);
    color:var(--white);
    box-shadow:var(--shadow-md);
    opacity:0;
    visibility:hidden;
    transform:translateY(12px);
    transition:
        opacity var(--transition),
        visibility var(--transition),
        transform var(--transition),
        background var(--transition);
}

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

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

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

@media (max-width:1050px){

    .main-nav ul{
        gap:.15rem;
    }

    .main-nav a{
        padding:.55rem .6rem;
        font-size:.86rem;
    }

    .hero-features{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .stats-grid,
    .steps-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

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

    .theme-grid,
    .resources-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

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

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

    .footer-brand{
        grid-column:1 / -1;
    }
}

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

@media (max-width:760px){

    .container{
        width:min(calc(100% - 28px),var(--container));
    }

    :root{
        --header-height:72px;
    }

    .site-header .container{
        min-height:var(--header-height);
    }

    .logo img{
        width:46px;
        height:46px;
    }

    .logo-title{
        font-size:1.05rem;
    }

    .logo-subtitle{
        font-size:.68rem;
    }

    .mobile-menu{
        display:grid;
        place-items:center;
    }

    .main-nav{
        position:absolute;
        top:100%;
        left:0;
        width:100%;
        max-height:0;
        overflow:hidden;
        background:var(--white);
        border-bottom:1px solid transparent;
        box-shadow:none;
        transition:
            max-height 220ms ease,
            border-color 220ms ease,
            box-shadow 220ms ease;
    }

    .main-nav.open{
        max-height:420px;
        border-color:var(--border);
        box-shadow:var(--shadow-md);
    }

    .main-nav ul{
        display:grid;
        gap:.2rem;
        padding:1rem .85rem 1.2rem;
    }

    .main-nav a{
        padding:.8rem 1rem;
    }

    .breadcrumb{
        overflow:hidden;
    }

    .breadcrumb ol{
        flex-wrap:nowrap;
        overflow-x:auto;
        padding-bottom:.15rem;
        scrollbar-width:none;
    }

    .breadcrumb ol::-webkit-scrollbar{
        display:none;
    }

    .page-hero{
        padding:4.25rem 0 4rem;
    }

    .hero-content h1{
        font-size:clamp(2.2rem,10vw,3.3rem);
    }

    .hero-intro{
        font-size:1rem;
    }

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

    .hero-buttons,
    .final-cta-buttons{
        flex-direction:column;
    }

    .hero-buttons .btn,
    .final-cta-buttons .btn{
        width:100%;
    }

    .stats-grid,
    .steps-grid,
    .category-grid,
    .theme-grid,
    .resources-grid,
    .tips-grid{
        grid-template-columns:1fr;
    }

    .section-heading{
        margin-bottom:2.35rem;
    }

    .section-heading h2{
        font-size:2rem;
    }

    .importance-section,
    .label-categories,
    .classroom-themes,
    .related-resources,
    .teacher-tips,
    .faq-section,
    .final-cta{
        padding:4.5rem 0;
    }

    .newsletter{
        padding:3.5rem 0;
    }

    .newsletter-wrapper{
        padding:2rem 1.15rem;
        border-radius:22px;
    }

    .newsletter-form{
        flex-direction:column;
    }

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

    .footer-grid{
        grid-template-columns:1fr;
        gap:2rem;
    }

    .footer-brand{
        grid-column:auto;
    }

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

/* =========================================================
   SMALL PHONES
   ========================================================= */

@media (max-width:480px){

    .container{
        width:calc(100% - 22px);
    }

    .logo-text{
        display:none;
    }

    .hero-content h1{
        font-size:2.25rem;
    }

    .hero-feature{
        justify-content:flex-start;
        text-align:left;
    }

    .stat-card{
        padding:1.4rem .8rem;
    }

    .step-card,
    .category-card,
    .resource-card,
    .tip-card{
        padding:1.4rem;
    }

    .theme-card{
        padding:0 1.2rem 1.2rem;
    }

    .theme-preview{
        margin-left:-1.2rem;
        margin-right:-1.2rem;
    }

    .faq-question{
        padding:1rem;
        font-size:.96rem;
    }

    .faq-answer{
        padding:0 1rem 1rem;
    }

    .back-to-top{
        right:14px;
        bottom:14px;
    }
}

/* ---------- Reduced Motion ---------- */

@media (prefers-reduced-motion:reduce){

    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        transition:none !important;
        animation:none !important;
    }
}
