/*
Theme Name:        1805 School Theme
Theme URI:         https://t.me/i1805loaded
Description:       Premium School WordPress theme by 1805loaded. Built for schools, academies, and educational institutions. Features modern design, educator profiles, class listings, events, and a professional UI.
Version:           1.0.0
Requires at least: 6.0
Tested up to:      6.5
Requires PHP:      7.4
Author:            1805loaded
Author URI:        https://t.me/i1805loaded
License:           GNU General Public License v2 or later
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       1805-school-theme
Tags:              school, education, academy, modern, responsive, custom-colors, custom-logo
*/

/* ==========================================================================
   DESIGN SYSTEM — 1805 SCHOOL THEME
   ========================================================================== */

:root {
  --sch-blue-dark:    #0B2E6E;
  --sch-blue:         #1448A8;
  --sch-blue-mid:     #1A5CC8;
  --sch-blue-light:   #3B82F6;
  --sch-sky:          #60A5FA;
  --sch-sky-pale:     #BFDBFE;
  --sch-sky-ultra:    #EFF6FF;
  --sch-accent:       #06B6D4;
  --sch-accent-light: #67E8F9;
  --sch-white:        #FFFFFF;
  --sch-off-white:    #F8FAFF;
  --sch-gray-100:     #F0F4FF;
  --sch-gray-200:     #DBEAFE;
  --sch-gray-400:     #93C5FD;
  --sch-gray-600:     #4B70B0;
  --sch-gray-800:     #1E3A5F;
  --sch-text:         #1E293B;
  --sch-text-light:   #4B6A8A;
  --font-display:     'Nunito', 'Segoe UI', Georgia, sans-serif;
  --font-body:        'Inter', system-ui, sans-serif;
  --font-mono:        'JetBrains Mono', monospace;
  --space-xs:  0.25rem; --space-sm:  0.5rem; --space-md:  1rem;
  --space-lg:  1.5rem;  --space-xl:  2rem;   --space-2xl: 3rem;
  --space-3xl: 4rem;    --space-4xl: 6rem;
  --radius-sm:   6px;  --radius-md:   12px; --radius-lg:   20px;
  --radius-xl:   32px; --radius-full: 9999px;
  --shadow-sm:   0 1px 3px rgba(20,72,168,0.08), 0 1px 2px rgba(20,72,168,0.06);
  --shadow-md:   0 4px 16px rgba(20,72,168,0.10), 0 2px 4px rgba(20,72,168,0.06);
  --shadow-lg:   0 10px 40px rgba(20,72,168,0.14), 0 4px 6px rgba(20,72,168,0.05);
  --shadow-xl:   0 25px 60px rgba(20,72,168,0.18);
  --shadow-blue: 0 4px 20px rgba(20,72,168,0.30);
  --transition-fast: 0.15s ease; --transition-base: 0.25s ease;
  --transition-slow: 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --container-max: 1280px; --container-md: 960px; --container-sm: 720px;
  --header-height: 72px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--sch-text);background:var(--sch-white);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,textarea,select{font-family:inherit}

h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--sch-blue-dark);line-height:1.2;font-weight:800}
.display-1{font-size:clamp(2.5rem,6vw,5rem);letter-spacing:-.02em}
.display-2{font-size:clamp(2rem,4.5vw,3.75rem);letter-spacing:-.02em}
h1{font-size:clamp(1.875rem,3.5vw,3rem)} h2{font-size:clamp(1.5rem,2.8vw,2.25rem)}
h3{font-size:clamp(1.25rem,2.2vw,1.75rem)} h4{font-size:1.25rem}
.lead{font-size:1.125rem;line-height:1.7;color:var(--sch-text-light)}
.body-sm{font-size:.875rem}
.overline{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sch-blue-light)}

.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-xl)}
.container--sm{max-width:var(--container-sm)} .container--md{max-width:var(--container-md)}
.section{padding-block:var(--space-4xl)} .section--sm{padding-block:var(--space-3xl)}
.section--lg{padding-block:calc(var(--space-4xl)*1.5)}
.grid{display:grid} .grid-2{grid-template-columns:repeat(2,1fr)} .grid-3{grid-template-columns:repeat(3,1fr)} .grid-4{grid-template-columns:repeat(4,1fr)}
.gap-md{gap:var(--space-md)} .gap-lg{gap:var(--space-lg)} .gap-xl{gap:var(--space-xl)}
.flex{display:flex} .flex-center{display:flex;align-items:center;justify-content:center}
.flex-between{display:flex;align-items:center;justify-content:space-between}
.flex-col{flex-direction:column} .flex-wrap{flex-wrap:wrap}
.text-center{text-align:center} .text-left{text-align:left} .text-right{text-align:right}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.875rem 2rem;font-size:.9375rem;font-weight:700;font-family:var(--font-body);border-radius:var(--radius-full);line-height:1;transition:all var(--transition-base);white-space:nowrap;cursor:pointer;position:relative;overflow:hidden}
.btn::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,.12);transform:translateX(-100%);transition:transform .3s ease}
.btn:hover::before{transform:translateX(0)}
.btn-primary{background:linear-gradient(135deg,var(--sch-blue),var(--sch-blue-mid));color:#fff;box-shadow:var(--shadow-blue)}
.btn-primary:hover{background:linear-gradient(135deg,var(--sch-blue-dark),var(--sch-blue));transform:translateY(-2px);box-shadow:0 8px 28px rgba(20,72,168,.45)}
.btn-primary:active{transform:translateY(0)}
.btn-secondary{background:var(--sch-accent);color:#fff;box-shadow:var(--shadow-md)}
.btn-secondary:hover{background:#0891b2;transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-outline{background:transparent;color:var(--sch-white);border:2px solid rgba(255,255,255,.6)}
.btn-outline:hover{background:rgba(255,255,255,.12);border-color:var(--sch-white)}
.btn-outline-blue{background:transparent;color:var(--sch-blue);border:2px solid var(--sch-blue)}
.btn-outline-blue:hover{background:var(--sch-blue);color:#fff}
.btn-ghost{background:transparent;color:var(--sch-blue);border:2px solid var(--sch-gray-200)}
.btn-ghost:hover{border-color:var(--sch-blue);background:var(--sch-gray-100)}
.btn-lg{padding:1.125rem 2.5rem;font-size:1.0625rem} .btn-sm{padding:.625rem 1.25rem;font-size:.8125rem}
.btn-icon{padding:.875rem;border-radius:var(--radius-full)}

.card{background:var(--sch-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;transition:transform var(--transition-slow),box-shadow var(--transition-slow)}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl)}
.card__body{padding:var(--space-xl)}
.card__image{width:100%;aspect-ratio:16/9;object-fit:cover}
.card__tag{display:inline-block;padding:.25rem .75rem;background:rgba(20,72,168,.10);color:var(--sch-blue);border-radius:var(--radius-full);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-md)}

.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--header-height);background:rgba(11,46,110,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.10);transition:all var(--transition-base)}
.site-header.scrolled{background:rgba(11,46,110,.99);box-shadow:0 4px 30px rgba(0,0,0,.25)}
.site-header .container{height:100%}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}
.site-logo{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-display);font-size:1.375rem;font-weight:800;color:var(--sch-white)}
.site-logo span{color:var(--sch-sky)} .site-logo img{height:40px;width:auto}
.main-nav{display:flex;align-items:center;gap:var(--space-xs)}
.main-nav a{padding:.5rem 1rem;color:rgba(255,255,255,.82);font-size:.9375rem;font-weight:600;border-radius:var(--radius-sm);transition:all var(--transition-fast)}
.main-nav a:hover,.main-nav a.active{color:var(--sch-white);background:rgba(255,255,255,.12)}
.header-cta{display:flex;align-items:center;gap:12px}
.header-enroll-btn{padding:.625rem 1.375rem;font-size:.875rem;line-height:1}
.hamburger{display:none;flex-direction:column;gap:5px;padding:8px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}
.hamburger:hover{background:rgba(255,255,255,.1)}
.hamburger span{display:block;width:22px;height:2px;background:var(--sch-white);border-radius:2px;transition:all var(--transition-base);transform-origin:center}
.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.active span:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mobile-nav{position:fixed;inset:0;z-index:999;background:var(--sch-blue-dark);padding:calc(var(--header-height) + 24px) var(--space-xl) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-sm);transform:translateX(100%);transition:transform var(--transition-slow)}
.mobile-nav.open{transform:translateX(0)}
.mobile-nav a{display:block;padding:1rem var(--space-md);color:rgba(255,255,255,.85);font-size:1.125rem;font-weight:600;border-radius:var(--radius-md);transition:all var(--transition-fast);border-bottom:1px solid rgba(255,255,255,.06)}
.mobile-nav a:hover{color:#fff;background:rgba(255,255,255,.08)}

.hero-inner-grid{display:grid;grid-template-columns:1fr 460px;gap:56px;align-items:center}
@media(max-width:1080px){.hero-inner-grid{grid-template-columns:1fr 380px;gap:32px}}
@media(max-width:900px){.hero-inner-grid{grid-template-columns:1fr}.hero-widget-col{max-width:520px;margin:0 auto;width:100%}}

.stats-bar{background:linear-gradient(135deg,var(--sch-blue-dark) 0%,var(--sch-blue) 100%);padding:var(--space-2xl) 0}
.stats-bar__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-xl);text-align:center}
.stats-bar__value{font-family:var(--font-display);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:800;color:var(--sch-white);line-height:1}
.stats-bar__label{font-size:.8125rem;font-weight:600;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.1em;margin-top:6px}
@media(max-width:768px){.stats-bar__grid{grid-template-columns:repeat(2,1fr)}}

.section-header{text-align:center;margin-bottom:var(--space-3xl)}
.section-header .overline{display:block;margin-bottom:var(--space-sm)}
.section-header h2{margin-bottom:var(--space-md)}
.section-header p{max-width:600px;margin:0 auto;color:var(--sch-text-light);font-size:1.0625rem;line-height:1.7}

.classes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.class-card{background:var(--sch-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;transition:transform var(--transition-slow),box-shadow var(--transition-slow);border:1px solid var(--sch-gray-200)}
.class-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);border-color:var(--sch-sky-pale)}
.class-card__top{padding:28px 24px 20px;background:linear-gradient(135deg,var(--sch-sky-ultra),var(--sch-white));border-bottom:1px solid var(--sch-gray-200)}
.class-card__icon{width:52px;height:52px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.625rem;margin-bottom:14px}
.class-card__body{padding:20px 24px 24px}
.class-card__meta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.class-card__badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:rgba(20,72,168,.08);color:var(--sch-blue)}
@media(max-width:900px){.classes-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.classes-grid{grid-template-columns:1fr}}

.educators-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.educator-card{background:var(--sch-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;transition:transform var(--transition-slow),box-shadow var(--transition-slow);border:1px solid var(--sch-gray-200);text-align:center}
.educator-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl)}
.educator-card__photo{width:100%;aspect-ratio:1/1;object-fit:cover}
.educator-card__avatar{width:100%;aspect-ratio:1/1;background:linear-gradient(135deg,var(--sch-blue),var(--sch-blue-light));display:flex;align-items:center;justify-content:center;font-size:3rem;color:#fff}
.educator-card__body{padding:20px 20px 24px}
.educator-card__name{font-family:var(--font-display);font-weight:800;font-size:1.125rem;color:var(--sch-blue-dark);margin-bottom:4px}
.educator-card__role{font-size:.8125rem;font-weight:600;color:var(--sch-blue-light);margin-bottom:10px}
.educator-card__subject{display:inline-block;padding:3px 12px;background:var(--sch-sky-ultra);border-radius:var(--radius-full);font-size:.75rem;font-weight:700;color:var(--sch-blue);border:1px solid var(--sch-sky-pale)}
@media(max-width:900px){.educators-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.educators-grid{grid-template-columns:1fr}}

.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.testimonial-card{background:var(--sch-white);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-md);border:1px solid var(--sch-gray-200);position:relative;transition:transform var(--transition-slow),box-shadow var(--transition-slow)}
.testimonial-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}
.testimonial-card__quote{font-size:3rem;line-height:1;color:var(--sch-sky-pale);font-family:Georgia,serif;position:absolute;top:16px;left:24px}
.testimonial-card__text{color:var(--sch-text-light);font-size:.9375rem;line-height:1.75;margin-top:28px;margin-bottom:20px}
.testimonial-card__author{display:flex;align-items:center;gap:12px}
.testimonial-card__avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--sch-blue-light),var(--sch-accent));display:flex;align-items:center;justify-content:center;font-size:1.125rem;color:#fff;font-weight:700;flex-shrink:0}
.testimonial-card__name{font-weight:700;font-size:.9375rem;color:var(--sch-blue-dark)}
.testimonial-card__meta{font-size:.75rem;color:var(--sch-text-light)}
@media(max-width:900px){.testimonials-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.testimonials-grid{grid-template-columns:1fr}}

.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:900px){.blog-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.blog-grid{grid-template-columns:1fr}}

.cta-section{background:linear-gradient(135deg,var(--sch-blue-dark) 0%,var(--sch-blue) 60%,var(--sch-blue-light) 100%);padding:var(--space-4xl) 0;text-align:center;position:relative;overflow:hidden}

.apply-widget{background:rgba(255,255,255,.07);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:30px 26px;box-shadow:0 24px 64px rgba(0,0,0,.25)}
.apply-widget input,.apply-widget select{width:100%;padding:12px 16px;border:1.5px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.08);color:#fff;font-size:.9375rem;margin-bottom:10px;outline:none;transition:border-color var(--transition-fast)}
.apply-widget input::placeholder{color:rgba(255,255,255,.45)}
.apply-widget select option{color:var(--sch-text);background:#fff}
.apply-widget input:focus,.apply-widget select:focus{border-color:var(--sch-sky);background:rgba(255,255,255,.12)}

.site-footer{background:var(--sch-blue-dark);color:rgba(255,255,255,.7)}
.footer-main{padding:var(--space-4xl) 0 var(--space-3xl)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-3xl)}
.footer-brand__logo{margin-bottom:var(--space-md)}
.footer-brand__tagline{font-family:var(--font-display);font-size:1rem;color:var(--sch-sky);font-weight:700;margin-bottom:var(--space-md)}
.footer-brand__social{display:flex;gap:var(--space-sm);flex-wrap:wrap}
.social-link{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);transition:all var(--transition-fast)}
.social-link:hover{background:var(--sch-blue-light);color:#fff;transform:translateY(-2px)}
.footer-col h4{color:var(--sch-white);font-size:1rem;font-weight:800;margin-bottom:var(--space-lg);font-family:var(--font-display)}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links a,.footer-links span{color:rgba(255,255,255,.6);font-size:.9rem;transition:color var(--transition-fast);line-height:1.4}
.footer-links a:hover{color:var(--sch-sky)}
.footer-divider{border:none;border-top:1px solid rgba(255,255,255,.08)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-block:var(--space-lg);flex-wrap:wrap;gap:var(--space-md)}
.footer-bottom__copy{font-size:.85rem;color:rgba(255,255,255,.45)}
.footer-bottom__credit a{color:var(--sch-sky);font-weight:600}
.footer-bottom__credit a:hover{color:var(--sch-sky-pale);text-decoration:underline}
@media(max-width:960px){.footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-xl)}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}}

.enrol-float{position:fixed;bottom:24px;right:24px;z-index:900;animation:float-in .6s 1s both}
@keyframes float-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.enrol-float__btn{display:flex;align-items:center;gap:8px;padding:14px 22px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--sch-blue),var(--sch-blue-mid));color:#fff;font-size:.9375rem;font-weight:700;box-shadow:0 8px 32px rgba(20,72,168,.45);transition:all var(--transition-base);cursor:pointer;border:none;font-family:var(--font-body)}
.enrol-float__btn:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(20,72,168,.55)}

.contact-form input,.contact-form textarea,.contact-form select{width:100%;padding:14px 18px;border:2px solid var(--sch-gray-200);border-radius:var(--radius-md);font-size:1rem;background:var(--sch-white);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none;margin-bottom:16px;color:var(--sch-text)}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--sch-blue-light);box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.contact-form textarea{min-height:140px;resize:vertical}

@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.25)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.animate-up{animation:fadeInUp .65s ease both}
.delay-1{animation-delay:.1s} .delay-2{animation-delay:.2s} .delay-3{animation-delay:.3s} .delay-4{animation-delay:.4s}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
*:focus-visible{outline:3px solid var(--sch-blue-light);outline-offset:3px;border-radius:var(--radius-sm)}

@media(max-width:900px){.main-nav{display:none}.hamburger{display:flex}.section{padding-block:var(--space-3xl)}.header-enroll-btn .btn-text-full{display:none}.header-enroll-btn .btn-text-short{display:inline}}
@media(max-width:600px){.container{padding-inline:var(--space-md)}.section{padding-block:var(--space-2xl)}.footer-bottom{flex-direction:column;text-align:center}}

.bg-blue-ultra{background:var(--sch-sky-ultra)} .bg-blue{background:var(--sch-blue)} .bg-blue-dark{background:var(--sch-blue-dark)}
.text-white{color:#fff} .text-blue{color:var(--sch-blue)} .text-sky{color:var(--sch-sky)}
.rounded-full{border-radius:var(--radius-full)} .w-full{width:100%} .mt-auto{margin-top:auto}

.page-hero{background:linear-gradient(135deg,var(--sch-blue-dark) 0%,var(--sch-blue) 100%);padding:calc(var(--header-height) + 60px) 0 80px;text-align:center;position:relative;overflow:hidden}
.page-hero::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:60px;background:var(--sch-white);clip-path:ellipse(60% 100% at 50% 100%)}
.page-hero h1{color:#fff;margin-bottom:12px}
.page-hero p{color:rgba(255,255,255,.75);max-width:560px;margin:0 auto;font-size:1.0625rem}
