/**
Theme Name: Astra
Theme URI: https://wpastra.com/
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Version: 4.12.3
Requires at least: 5.3
WC requires at least: 3.0
WC tested up to: 9.6
Tested up to: 6.9
Requires PHP: 5.3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra
Domain Path: /languages
Tags: custom-menu, custom-logo, entertainment, one-column, two-columns, left-sidebar, e-commerce, right-sidebar, custom-colors, editor-style, featured-images, full-width-template, microformats, post-formats, rtl-language-support, theme-options, threaded-comments, translation-ready, blog
AMP: true

Astra WordPress Theme, Copyright 2020 WPAstra.
Astra is distributed under the terms of the GNU GPL.

Astra is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of.
Nicolas Gallagher and Jonathan Neal https://necolas.github.com/normalize.css/

Astra icon font is based on IcoMoon-Free vector icon by Keyamoon.
IcoMoon-Free vector icon distributed under terms of CC BY 4.0 or GPL. (https://creativecommons.org/licenses/by/4.0/ or https://www.gnu.org/licenses/gpl.html)
Source: http://keyamoon.com/

Flexibility is a JavaScript polyfill for Flexbox By Jonathan Neal, 10up. (https://github.com/jonathantneal/flexibility)
Licensed under MIT ( https://github.com/jonathantneal/flexibility/blob/master/LICENSE.md )

Screenshot image is a collage of actual sites created using the Astra WordPress Theme.

Icons used in the Screenshot image are all licensed under Creative Commons ( CC BY 4.0 ) License ( https://fontawesome.com/license/free )
https://fontawesome.com/v5.15/icons/store?style=solid
https://fontawesome.com/v5.15/icons/shopping-cart?style=solid
https://fontawesome.com/v5.15/icons/pen-square?style=solid
https://fontawesome.com/v5.15/icons/user-tie?style=solid
https://fontawesome.com/v5.15/icons/user-tie?style=solid

Illustrations used in the Screenshot images are all licensed under Creative Commons ( CC0 ) License ( https://gumroad.com/l/humaaans )
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/standing-24.png
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/sitting-2.png

Hand-drawn illustrations used are created by Brainstorm Force and released under Creative Commons ( CC0 ) License.
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/girl-with-image-container.png
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/boy-with-code-container.png
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/web-browser.png

The same site as screenshot can be imported from here https://websitedemos.net/web-design-agency-08/.

For more information, refer to this document on how to create a page like in the screenshot - https://wpastra.com/docs/replicating-the-screenshot/.

Astra default breadcrumb is based on Breadcrumb Trail by Justin Tadlock. (https://github.com/justintadlock/breadcrumb-trail)
Breadcrumb Trail is distributed under the terms of the GNU GPL v2 or later.

Astra local fonts feature is based on Webfonts Loader by WordPress Themes Team (WPTT). (https://github.com/WPTT/webfont-loader)
Licensed under MIT ( https://github.com/WPTT/webfont-loader/blob/master/LICENSE )

/* Note: The CSS files are loaded from assets/css/ folder. */

/* ----------------------------------------------------------
   DESIGN TOKENS
   ---------------------------------------------------------- */
:root {
  --es-navy:    #0B1120;
  --es-navy2:   #111827;
  --es-card-bg: #151E2E;
  --es-teal:    #0ACDAA;
  --es-teal-dk: #08A88C;
  --es-amber:   #F5A623;
  --es-muted:   #6B7FA3;
  --es-border:  #1F2D45;
  --es-text:    #E2EAF4;
  --es-text-sm: #9BAECB;
  --es-white:   #FFFFFF;

  --es-ff-head: 'Syne', sans-serif;
  --es-ff-body: 'DM Sans', sans-serif;

  --es-r-sm: 8px;
  --es-r-md: 14px;
  --es-r-lg: 20px;

  --es-shadow-card: 0 4px 24px rgba(0,0,0,.35);
  --es-shadow-glow: 0 0 32px rgba(10,205,170,.18);

  --es-max-w:    1200px;
  --es-t:        0.22s cubic-bezier(.4,0,.2,1);
}

/* ----------------------------------------------------------
   FONT IMPORT  (skip if already loaded in theme)
   ---------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;1,9..40,400&display=swap');

/* ----------------------------------------------------------
   LAYOUT CONTAINER
   ---------------------------------------------------------- */
.es-container {
  width: min(var(--es-max-w), 100%);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}

.es-section {
  padding-block: clamp(3rem, 6vw, 5.5rem);
}

/* Section typography helpers */
.es-section-label {
  display: inline-block;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--es-teal);
  margin-bottom: .6rem;
}
.es-section-title {
  font-family: var(--es-ff-head);
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  font-weight: 700;
  color: var(--es-white);
  margin-bottom: .9rem;
}
.es-section-sub {
  color: var(--es-text-sm);
  max-width: 52ch;
  font-size: 1rem;
}

/* ----------------------------------------------------------
   SCROLL REVEAL UTILITY
   ---------------------------------------------------------- */
[data-es-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .55s ease, transform .55s ease;
}
[data-es-reveal].es-revealed {
  opacity: 1;
  transform: none;
}

/* ----------------------------------------------------------
   BUTTON SYSTEM
   ---------------------------------------------------------- */
.es-btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .55rem 1.2rem;
  border-radius: 9px;
  font-family: var(--es-ff-body);
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  border: none;
  text-decoration: none;
  transition: all var(--es-t);
}
.es-btn-primary {
  background: var(--es-teal);
  color: var(--es-navy);
}
.es-btn-primary:hover {
  background: var(--es-teal-dk);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(10,205,170,.35);
  color: var(--es-navy);
}
.es-btn-outline {
  background: transparent;
  color: var(--es-white);
  border: 1.5px solid var(--es-border);
}
.es-btn-outline:hover {
  border-color: var(--es-teal);
  color: var(--es-teal);
}
.es-btn-lg {
  padding: .78rem 1.8rem;
  font-size: 1rem;
  border-radius: 11px;
}

/* ----------------------------------------------------------
   HERO SECTION
   ---------------------------------------------------------- */
.es-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(4.5rem, 10vw, 8rem);
  text-align: center;
  background: var(--es-navy);
}

/* Atmospheric glow blobs */
.es-hero::before,
.es-hero::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  pointer-events: none;
}
.es-hero::before {
  width: 680px; height: 680px;
  background: rgba(10,205,170,.10);
  top: -220px; left: -140px;
}
.es-hero::after {
  width: 560px; height: 560px;
  background: rgba(245,166,35,.06);
  bottom: -180px; right: -100px;
}

/* Floating badge */
.es-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(10,205,170,.09);
  border: 1px solid rgba(10,205,170,.22);
  border-radius: 999px;
  padding: .35rem 1.1rem;
  font-size: .8rem;
  font-weight: 600;
  color: var(--es-teal);
  margin-bottom: 1.8rem;
  animation: es-fadeDown .5s ease both;
}
.es-hero-badge .es-dot {
  width: 7px; height: 7px;
  background: var(--es-teal);
  border-radius: 50%;
  animation: es-pulse 2s infinite;
}

@keyframes es-pulse {
  0%,100% { opacity:1; transform:scale(1); }
  50%      { opacity:.4; transform:scale(1.45); }
}

/* Hero title */
.es-hero-title {
  font-family: var(--es-ff-head);
  font-weight: 800;
  color: var(--es-white);
  line-height: 1.08;
  letter-spacing: -.02em;
  max-width: 18ch;
  margin-inline: auto;
  margin-bottom: 1.3rem;
  animation: es-fadeDown .55s .1s ease both;
}
.es-title-line { display: block; }
.es-title-line--1 {
  font-size: clamp(1.8rem, 3.8vw, 3rem);
  color: var(--es-text-sm);
  font-weight: 700;
  letter-spacing: -.01em;
}
.es-title-line--2 {
  font-size: clamp(3rem, 8vw, 6rem);
  line-height: 1;
  letter-spacing: -.04em;
}
.es-title-line--3 {
  font-size: clamp(3rem, 8vw, 6rem);
  line-height: 1;
  letter-spacing: -.04em;
}

/* Animated gradient text */
.es-accent-gradient {
  background: linear-gradient(120deg, #0ACDAA 0%, #38f9d7 30%, #F5A623 65%, #ff8c42 100%);
  background-size: 220% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: es-gradientShift 5s linear infinite;
  display: inline-block;
}
@keyframes es-gradientShift {
  0%   { background-position: 0% center; }
  100% { background-position: 220% center; }
}

/* Decorative underline */
.es-title-line--3::after {
  content: '';
  display: block;
  width: 90px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--es-teal), var(--es-amber));
  margin: 1rem auto 0;
  opacity: .65;
}

/* Hero sub-headline */
.es-hero-sub {
  font-size: clamp(1rem, 2vw, 1.18rem);
  color: var(--es-text-sm);
  max-width: 58ch;
  margin-inline: auto;
  margin-bottom: 2.6rem;
  line-height: 1.7;
  animation: es-fadeDown .55s .2s ease both;
}
.es-hero-sub strong {
  color: var(--es-teal);
  font-weight: 600;
}

/* CTA group */
.es-hero-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 3.5rem;
  animation: es-fadeDown .55s .3s ease both;
}

/* Stats strip */
.es-hero-stats {
  display: flex;
  justify-content: center;
  gap: clamp(1.5rem, 5vw, 4.5rem);
  flex-wrap: wrap;
  animation: es-fadeDown .55s .42s ease both;
}
.es-stat { text-align: center; }
.es-stat-num {
  font-family: var(--es-ff-head);
  font-size: 2rem;
  font-weight: 700;
  color: var(--es-white);
}
.es-stat-num span { color: var(--es-teal); }
.es-stat-label { font-size: .78rem; color: var(--es-muted); margin-top: .15rem; }

@keyframes es-fadeDown {
  from { opacity:0; transform: translateY(-20px); }
  to   { opacity:1; transform: translateY(0); }
}

/* ----------------------------------------------------------
   TRUST BADGES STRIP
   ---------------------------------------------------------- */
.es-trust-strip {
  border-block: 1px solid var(--es-border);
  background: var(--es-navy2);
  padding-block: 1.5rem;
}
.es-trust-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.2rem, 4vw, 3.5rem);
  flex-wrap: wrap;
}
.es-badge-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .85rem;
  font-weight: 500;
  color: var(--es-text-sm);
  font-family: var(--es-ff-body);
}
.es-badge-item svg { color: var(--es-teal); flex-shrink: 0; }

/* ----------------------------------------------------------
   CATEGORY FILTER PILLS
   ---------------------------------------------------------- */
.es-categories {
  padding-block: 2.2rem 0;
  background: var(--es-navy);
}
.es-cat-inner {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
}
.es-cat-label {
  font-size: .8rem;
  font-weight: 600;
  color: var(--es-muted);
  margin-right: .4rem;
  font-family: var(--es-ff-body);
}
.es-sort-label {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .8rem;
  font-weight: 600;
  color: var(--es-muted);
  margin-left: auto;
  font-family: var(--es-ff-body);
}
.es-cat-pill {
  display: inline-block;
  padding: .38rem .9rem;
  border-radius: 999px;
  border: 1px solid var(--es-border);
  font-size: .82rem;
  font-weight: 500;
  color: var(--es-text-sm);
  cursor: pointer;
  background: none;
  font-family: var(--es-ff-body);
  transition: all var(--es-t);
}
.es-cat-pill:hover,
.es-cat-pill.active {
  border-color: var(--es-teal);
  color: var(--es-teal);
  background: rgba(10,205,170,.07);
}

/* ----------------------------------------------------------
   COURSES SECTION
   ---------------------------------------------------------- */
.es-courses {
  background: var(--es-navy);
  padding-block: clamp(3rem, 6vw, 5.5rem);
}

/* Filter/sort row */
.es-courses-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}
.es-filter-group {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}
.es-filter-btn {
  padding: .38rem .9rem;
  border-radius: 8px;
  border: 1px solid var(--es-border);
  background: none;
  font-family: var(--es-ff-body);
  font-size: .82rem;
  font-weight: 500;
  color: var(--es-text-sm);
  cursor: pointer;
  transition: all var(--es-t);
}
.es-filter-btn:hover,
.es-filter-btn.active {
  border-color: var(--es-teal);
  color: var(--es-teal);
  background: rgba(10,205,170,.07);
}
.es-sort-select {
  padding: .38rem .9rem;
  border-radius: 8px;
  border: 1px solid var(--es-border);
  background: var(--es-card-bg);
  font-family: var(--es-ff-body);
  font-size: .82rem;
  color: var(--es-text-sm);
  cursor: pointer;
}
.es-sort-select:focus {
  border-color: var(--es-teal);
  outline: none;
}

/* Course grid — 3 cols default, 2 tablet, 1 mobile */
.es-courses-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}

/* Course Card */
.es-course-card {
  background: var(--es-card-bg);
  border: 1px solid var(--es-border);
  border-radius: var(--es-r-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform var(--es-t), box-shadow var(--es-t), border-color var(--es-t);
  position: relative;
}
.es-course-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--es-shadow-glow);
  border-color: rgba(10,205,170,.35);
}

/* Thumbnail */
.es-course-thumb {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--es-navy2);
}
.es-course-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
  display: block;
}
.es-course-card:hover .es-course-thumb img {
  transform: scale(1.06);
}
.es-course-free-tag {
  position: absolute;
  top: .7rem;
  right: .7rem;
  background: var(--es-teal);
  color: var(--es-navy);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: .22rem .6rem;
  border-radius: 6px;
  font-family: var(--es-ff-body);
}

/* Card body */
.es-course-body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.es-course-meta {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .65rem;
  flex-wrap: wrap;
}
.es-diff-tag {
  font-size: .7rem;
  font-weight: 600;
  padding: .18rem .55rem;
  border-radius: 5px;
  letter-spacing: .04em;
  font-family: var(--es-ff-body);
}
.es-diff-beginner     { background: rgba(10,205,170,.12); color: var(--es-teal); }
.es-diff-intermediate { background: rgba(245,166,35,.12);  color: var(--es-amber); }
.es-diff-advanced     { background: rgba(239,68,68,.12);   color: #ef4444; }

.es-course-cat-tag {
  font-size: .7rem;
  color: var(--es-muted);
  background: var(--es-border);
  padding: .18rem .55rem;
  border-radius: 5px;
  font-family: var(--es-ff-body);
}
.es-course-title {
  font-family: var(--es-ff-head);
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--es-white);
  margin-bottom: .5rem;
  line-height: 1.3;
}
.es-course-desc {
  font-size: .85rem;
  color: var(--es-text-sm);
  flex: 1;
  margin-bottom: 1.1rem;
  line-height: 1.6;
  font-family: var(--es-ff-body);
}
.es-course-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--es-border);
  padding-top: .9rem;
  gap: .5rem;
}
.es-course-lessons {
  font-size: .78rem;
  color: var(--es-muted);
  display: flex;
  align-items: center;
  gap: .3rem;
  font-family: var(--es-ff-body);
}
.es-course-cta {
  padding: .42rem .95rem;
  font-size: .82rem;
}

/* "View All" footer */
.es-courses-footer {
  text-align: center;
  margin-top: 2.8rem;
}

/* ----------------------------------------------------------
   WHY ESTUDY247 — FEATURES STRIP
   ---------------------------------------------------------- */
.es-features {
  background: var(--es-navy2);
  border-block: 1px solid var(--es-border);
  padding-block: clamp(3rem, 6vw, 5rem);
}
.es-features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 2rem;
}
.es-feat-item { text-align: center; }
.es-feat-icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(10,205,170,.09);
  border: 1px solid rgba(10,205,170,.2);
  display: grid;
  place-items: center;
  margin-inline: auto;
  margin-bottom: 1rem;
  font-size: 1.5rem;
  transition: all var(--es-t);
}
.es-feat-item:hover .es-feat-icon {
  background: rgba(10,205,170,.17);
  transform: translateY(-3px);
}
.es-feat-title {
  font-family: var(--es-ff-head);
  font-size: 1rem;
  font-weight: 700;
  color: var(--es-white);
  margin-bottom: .4rem;
}
.es-feat-desc {
  font-size: .85rem;
  color: var(--es-text-sm);
  font-family: var(--es-ff-body);
  line-height: 1.55;
}

/* ----------------------------------------------------------
   TESTIMONIALS
   ---------------------------------------------------------- */
.es-testimonials {
  background: var(--es-navy);
  padding-block: clamp(3rem, 6vw, 5.5rem);
}
.es-testi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.4rem;
}
.es-testi-card {
  background: var(--es-card-bg);
  border: 1px solid var(--es-border);
  border-radius: var(--es-r-md);
  padding: 1.6rem;
  transition: border-color var(--es-t), transform var(--es-t);
}
.es-testi-card:hover {
  border-color: rgba(10,205,170,.3);
  transform: translateY(-3px);
}
.es-testi-stars {
  color: var(--es-amber);
  font-size: .9rem;
  margin-bottom: .7rem;
  letter-spacing: .05em;
}
.es-testi-text {
  font-size: .88rem;
  color: var(--es-text-sm);
  line-height: 1.65;
  margin-bottom: 1rem;
  font-style: italic;
  font-family: var(--es-ff-body);
}
.es-testi-author {
  display: flex;
  align-items: center;
  gap: .7rem;
}
.es-testi-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--es-teal);
  display: grid;
  place-items: center;
  font-family: var(--es-ff-head);
  font-size: .85rem;
  font-weight: 700;
  color: var(--es-navy);
  flex-shrink: 0;
}
.es-testi-name { font-size: .85rem; font-weight: 600; color: var(--es-white); }
.es-testi-role { font-size: .75rem; color: var(--es-muted); }

/* ----------------------------------------------------------
   CTA BANNER
   ---------------------------------------------------------- */
.es-cta-banner {
  position: relative;
  overflow: hidden;
  text-align: center;
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background: var(--es-navy2);
  border-top: 1px solid var(--es-border);
}
.es-cta-banner::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 70% 60% at 50% 50%, rgba(10,205,170,.11), transparent);
  pointer-events: none;
}
/* Grid-dot texture overlay */
.es-cta-banner::after {
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(10,205,170,.07) 1px, transparent 1px);
  background-size: 30px 30px;
  pointer-events: none;
  opacity: .5;
}
.es-cta-inner {
  position: relative;
  z-index: 1;
}
.es-cta-title {
  font-family: var(--es-ff-head);
  font-size: clamp(1.9rem, 4.5vw, 3rem);
  font-weight: 800;
  color: var(--es-white);
  margin-bottom: .9rem;
  line-height: 1.15;
}
.es-cta-sub {
  color: var(--es-text-sm);
  max-width: 52ch;
  margin-inline: auto;
  margin-bottom: 2.2rem;
  font-size: 1rem;
  font-family: var(--es-ff-body);
}

/* ----------------------------------------------------------
   RESPONSIVE BREAKPOINTS
   ---------------------------------------------------------- */
@media (max-width: 1024px) {
  .es-courses-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 660px) {
  .es-courses-grid {
    grid-template-columns: 1fr;
  }
  .es-hero-cta {
    flex-direction: column;
    align-items: stretch;
  }
  .es-hero-cta .es-btn {
    justify-content: center;
    width: 100%;
    max-width: 320px;
    margin-inline: auto;
  }
  .es-testi-grid {
    grid-template-columns: 1fr;
  }
  .es-sort-label { margin-left: 0; width: 100%; }
}
