@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap");

:root {
  --e2-brand: #19c8a1;
  --e2-brand-dark: #0f9f84;
  --e2-navy: #0b1835;
  --e2-navy-soft: #17284d;
  --e2-ink: #17213b;
  --e2-muted: #667085;
  --e2-wash: #f4fbf9;
  --e2-line: #dce9e6;
  --e2-white: #fff;
  --e2-gold: #ffb547;
  --e2-shadow: 0 20px 55px rgba(11, 24, 53, .1);
}

html { scroll-behavior: smooth; }
body {
  color: var(--e2-ink);
  background: #fff;
  font-family: Inter, "Segoe UI", Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased;
}
body, p, li, input, textarea, button { font-family: Inter, "Segoe UI", Arial, sans-serif; }
a { transition: color .2s ease, background .2s ease, transform .2s ease; }
img { max-width: 100%; }

/* Header */
.site-header {
  z-index: 9998;
  width: 100%;
}
.top-header-bar {
  min-height: 42px;
  color: #c8d2e5;
  border-bottom: 1px solid rgba(255,255,255,.09);
  background: var(--e2-navy) !important;
}
.top-header-bar a { color: #d7dfed !important; }
.top-header-bar .fa { color: var(--e2-brand) !important; }
.header-bar-email, .header-bar-text { padding-top: 9px !important; padding-bottom: 9px !important; }
.header-bar-search input[type="search"] {
  height: 38px;
  color: var(--e2-ink);
  border-radius: 10px 0 0 10px;
  background: #f2f6f5;
}
.header-bar-search button[type="submit"] {
  width: 44px;
  height: 38px;
  border-radius: 0 10px 10px 0;
  background: var(--e2-brand-dark);
}
.nav-bar {
  min-height: 76px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(220,233,230,.85);
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 7px 25px rgba(11,24,53,.05);
  backdrop-filter: blur(18px);
}
.nav-bar .row { align-items: center; }
.site-title {
  margin: 0 !important;
  font-family: Inter, sans-serif !important;
  font-size: 1.45rem !important;
  font-weight: 900 !important;
  letter-spacing: -.05em;
}
.site-title a { display: inline-flex; align-items: center; color: var(--e2-navy) !important; }
.site-title a::before {
  content: "E2";
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  margin-right: 11px;
  color: #fff;
  border-radius: 13px;
  background: linear-gradient(135deg, var(--e2-brand), var(--e2-brand-dark));
  box-shadow: 0 9px 20px rgba(25,200,161,.25);
  font-size: .85rem;
  letter-spacing: 0;
}
.site-title a span { color: var(--e2-brand-dark) !important; }
.e2-tagline {
  display: block;
  margin: 2px 0 0 54px;
  color: var(--e2-brand-dark);
  font-size: .63rem;
  font-weight: 850;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.site-navigation ul li { margin: 0 1px !important; }
.site-navigation ul li a {
  padding: 10px 11px !important;
  color: #3f4a62 !important;
  border-radius: 9px;
  font-size: .86rem !important;
  font-weight: 700 !important;
}
.site-navigation ul li a:hover,
.site-navigation ul li.current-menu-item a {
  color: var(--e2-brand-dark) !important;
  background: var(--e2-wash);
}
.referral-nav-trigger {
  min-height: 40px;
  padding: 0 15px !important;
  border-radius: 11px !important;
}
.hamburger-menu { width: 44px !important; height: 44px !important; padding: 11px 9px; border-radius: 11px; background: var(--e2-wash); }
.hamburger-menu span { background: var(--e2-navy) !important; }

/* Homepage hero */
.hero-content {
  min-height: 790px !important;
  background:
    radial-gradient(circle at 84% 24%, rgba(25,200,161,.22), transparent 25%),
    linear-gradient(135deg, #07142f 0%, #10234a 100%) !important;
}
.hero-content::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .12;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px);
  background-size: 44px 44px;
}
.hero-content-overlay {
  position: relative;
  z-index: 1;
  min-height: 790px !important;
  padding: 158px 0 60px;
  background: transparent !important;
}
.hero-content-wrap {
  width: min(100%, 840px);
  min-height: 560px !important;
  padding: 45px 0 !important;
}
.hero-content-wrap .entry-header h4:first-child {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #8df0da !important;
  font-size: .78rem !important;
  font-weight: 850;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.hero-content-wrap .entry-header h4:first-child::before {
  content: "";
  width: 28px;
  height: 2px;
  background: var(--e2-brand);
}
.hero-content-wrap h1 {
  margin: 14px 0 16px !important;
  color: #fff !important;
  font-size: clamp(3.4rem, 8vw, 6.8rem) !important;
  line-height: .94 !important;
  letter-spacing: -.075em;
  text-shadow: none !important;
}
.hero-content-wrap h1::after {
  content: "Do Harder.";
  display: block;
  color: var(--e2-brand);
}
.hero-content-wrap .entry-header h4:last-child {
  max-width: 650px;
  color: #e1e7f1 !important;
  font-size: 1.05rem !important;
  line-height: 1.6;
}
.hero-content-wrap .entry-content { max-width: 680px; }
.hero-content-wrap .entry-content p {
  margin-bottom: 7px;
  color: #bfc9dc !important;
  font-size: .98rem !important;
  line-height: 1.7 !important;
}
.home-referral-spot {
  max-width: 680px;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.07) !important;
  backdrop-filter: blur(10px);
}
.paper-finder {
  width: min(100%, 760px);
  margin-top: 18px !important;
  padding: 20px !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.09) !important;
  box-shadow: 0 24px 65px rgba(0,0,0,.18);
  backdrop-filter: blur(14px);
}
.paper-finder__label { color: #fff !important; font-size: 1rem !important; }
.paper-finder__input-row { border-radius: 13px !important; }
.paper-finder input[type="search"] { min-height: 52px; font-size: .93rem !important; }
.paper-finder__input-row button[type="submit"] {
  min-height: 52px;
  padding-inline: 24px !important;
  background: var(--e2-brand) !important;
  color: var(--e2-navy) !important;
  font-weight: 850;
}
.paper-finder__hint { color: #bfc9dc !important; }
.paper-finder__chips button {
  color: #dfe6f3 !important;
  border-color: rgba(255,255,255,.18) !important;
  background: rgba(255,255,255,.07) !important;
}

/* Feature cards and home content */
.icon-boxes { position: relative; z-index: 2; margin-top: -34px !important; padding: 0 22px; }
.icon-boxes > .container-fluid { max-width: 1240px; }
.icon-boxes .flex.flex-wrap { gap: 18px; }
.icon-box {
  min-width: 0;
  flex: 1 1 250px !important;
  padding: 30px 26px !important;
  color: var(--e2-ink) !important;
  border: 1px solid var(--e2-line) !important;
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: var(--e2-shadow);
}
.icon-box:hover { transform: translateY(-6px); border-color: rgba(25,200,161,.65) !important; }
.icon-box .icon {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  margin: 0 0 28px !important;
  color: var(--e2-brand-dark) !important;
  border-radius: 15px;
  background: var(--e2-wash);
  font-size: 1.4rem !important;
}
.icon-box .entry-title { color: var(--e2-navy) !important; font-size: 1.17rem !important; line-height: 1.4; }
.icon-box p { color: var(--e2-muted) !important; font-size: .9rem !important; line-height: 1.65 !important; }
.icon-box .read-more a { color: var(--e2-brand-dark) !important; font-weight: 800; }
.marquee { margin-top: 70px; padding: 13px 0; background: var(--e2-navy) !important; }
.marquee span { font-size: .9rem !important; font-weight: 650; animation-duration: 32s !important; }
.about-section:empty, .about-section .ezuca-stats:empty { display: none; }
.rating-info {
  width: min(100% - 30px, 900px);
  margin: 54px auto !important;
  padding: 28px !important;
  border: 1px solid var(--e2-line) !important;
  border-radius: 18px !important;
  background: var(--e2-wash) !important;
}
.rating-info a { padding: 12px 20px !important; border-radius: 11px !important; background: var(--e2-navy) !important; }
.featured-courses.vertical-column { padding: 85px 0 !important; background: #fff; }
.featured-courses .heading { margin-bottom: 35px !important; }
.featured-courses .heading .entry-title {
  color: var(--e2-navy);
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 850;
  letter-spacing: -.05em;
}
.featured-courses .heading .entry-title::before {
  content: "Explore resources";
  display: block;
  margin-bottom: 8px;
  color: var(--e2-brand-dark);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.course-content {
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--e2-line) !important;
  border-radius: 20px !important;
  background: #fff;
  box-shadow: 0 9px 28px rgba(11,24,53,.07) !important;
  transition: transform .25s ease, box-shadow .25s ease;
}
.course-content:hover { transform: translateY(-6px); box-shadow: var(--e2-shadow) !important; }
.course-thumbnail { overflow: hidden; aspect-ratio: 16 / 9; }
.course-thumbnail img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.course-content:hover .course-thumbnail img { transform: scale(1.04); }
.course-content-wrap { padding: 24px !important; }
.course-content-wrap .entry-title a { color: var(--e2-navy) !important; font-size: 1.08rem; line-height: 1.45; }
.course-content-wrap .read-more a { color: var(--e2-brand-dark) !important; font-weight: 850; }

/* Inner pages */
.page-header {
  min-height: 390px !important;
  background:
    radial-gradient(circle at 78% 28%, rgba(25,200,161,.22), transparent 24%),
    linear-gradient(135deg, #07142f, #10234a) !important;
}
.page-header-overlay {
  min-height: 390px !important;
  padding-top: 145px;
  display: flex;
  align-items: center;
  background: transparent !important;
}
.page-header h1 {
  color: #fff !important;
  font-size: clamp(2.6rem, 7vw, 5rem) !important;
  font-weight: 900 !important;
  letter-spacing: -.06em;
}
.page-header h1::after {
  content: "Do Harder";
  display: block;
  margin-top: 14px;
  color: var(--e2-brand);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.breadcrumbs { padding: 24px 0 !important; }
.breadcrumbs a { color: var(--e2-brand-dark) !important; }
.about-heading { padding: 46px 0 24px !important; }
.about-heading h2, .about-section .heading h2 { color: var(--e2-navy) !important; font-weight: 850; letter-spacing: -.04em; }
.about-stories, .about-values, .about-section .heading,
.contact-form, .contact-info, .faq-section, .review-section, .feedback-form {
  padding: 30px !important;
  border: 1px solid var(--e2-line) !important;
  border-radius: 19px !important;
  background: #fff !important;
  box-shadow: 0 10px 32px rgba(11,24,53,.07) !important;
}
.about-stories h3, .about-values h3, .contact-form h3, .contact-info h3,
.faq-title, .review-section h3, .feedback-form h1 { color: var(--e2-navy) !important; font-weight: 850; }
.about-stories p, .about-values p, .about-section p, .contact-info p, .faq-answer { color: var(--e2-muted) !important; line-height: 1.75; }
.about-section { padding: 38px 0 !important; }
.about-section .col-lg-6 { max-width: 100%; flex: 0 0 100%; }
.green-ticked li::before { color: var(--e2-brand) !important; }
.contact-form input, .contact-form textarea,
.feedback-form input, .feedback-form textarea,
.review-container input, .review-container textarea {
  width: 100%;
  min-height: 48px;
  margin-bottom: 13px;
  padding: 12px 14px !important;
  color: var(--e2-ink);
  border: 1px solid var(--e2-line) !important;
  border-radius: 11px !important;
  background: #fbfdfc !important;
}
.contact-form textarea, .feedback-form textarea, .review-container textarea { min-height: 130px; }
.contact-form input:focus, .contact-form textarea:focus,
.feedback-form input:focus, .feedback-form textarea:focus,
.review-container input:focus, .review-container textarea:focus {
  outline: none;
  border-color: var(--e2-brand) !important;
  box-shadow: 0 0 0 4px rgba(25,200,161,.12);
}
.contact-form input[type="submit"], .feedback-form button[type="submit"], .submit-btn {
  min-height: 50px;
  color: var(--e2-navy) !important;
  border: 0 !important;
  border-radius: 11px !important;
  background: var(--e2-brand) !important;
  font-weight: 850 !important;
}
.contact-info ul { list-style: none; }
.contact-info li { margin-bottom: 12px; padding: 13px; border-radius: 10px; background: var(--e2-wash); }
.contact-info a { color: var(--e2-brand-dark); }
.container-fd { height: auto !important; min-height: 580px; padding: 40px 0 70px; }
.feedback-form { width: min(100%, 600px) !important; }
.faq-section { max-width: 950px !important; margin: 35px auto 70px !important; }
.faq-item { padding: 19px 0 !important; border-color: var(--e2-line) !important; }
.faq-question { color: var(--e2-navy) !important; font-size: 1rem !important; }
.faq-question::after { content: "+" !important; color: var(--e2-brand-dark); font-size: 1.35rem; }
.faq-question.active::after { transform: rotate(45deg) !important; }
.review-section { max-width: 850px; margin: 35px auto 70px; }
.review-container { padding: 25px; border-radius: 15px; background: var(--e2-wash); }
.rating-item { margin: 14px 0; padding: 18px; border: 1px solid var(--e2-line); border-radius: 13px; background: #fff; }

/* Footer */
.site-footer { margin-top: 70px; color: #aeb8cc; background: #07142f !important; }
.footer-widgets { padding: 65px 0 30px !important; }
.site-footer h2 { color: #fff !important; font-size: 1rem !important; font-weight: 800; }
.site-footer p, .site-footer li, .site-footer a { color: #aeb8cc !important; }
.site-footer a:hover { color: var(--e2-brand) !important; }
.site-footer .site-title a, .site-footer .site-title a span { color: #fff !important; }
.site-footer svg { display: none; }
.footer-bar { color: #aeb8cc; border-top: 1px solid rgba(255,255,255,.1); background: #07142f !important; }

@media (max-width: 991px) {
  .nav-bar { min-height: 68px; }
  .site-navigation > ul {
    top: 68px !important;
    right: 15px !important;
    width: min(330px, calc(100vw - 30px)) !important;
    padding: 14px !important;
    border: 1px solid var(--e2-line);
    border-radius: 15px;
    background: #fff !important;
    box-shadow: var(--e2-shadow);
  }
  .site-navigation ul li a { display: block; padding: 12px 14px !important; }
  .hero-content, .hero-content-overlay { min-height: 920px !important; }
  .hero-content-overlay { padding-top: 115px; }
  .hero-content-wrap { min-height: 780px !important; }
  .icon-boxes { margin-top: 0 !important; padding-top: 28px; }
}

@media (max-width: 767px) {
  .top-header-bar { display: none; }
  .site-title { font-size: 1.12rem !important; }
  .site-title a::before { width: 38px; height: 38px; }
  .e2-tagline { margin-left: 49px; }
  .hero-content, .hero-content-overlay { min-height: 940px !important; }
  .hero-content-overlay { padding-top: 78px; }
  .hero-content-wrap { padding: 40px 0 !important; }
  .hero-content-wrap h1 { font-size: clamp(3.1rem, 16vw, 4.8rem) !important; }
  .hero-content-wrap .entry-header h4:last-child { font-size: .92rem !important; }
  .paper-finder { padding: 15px !important; }
  .paper-finder__input-row { flex-wrap: wrap; overflow: visible !important; background: transparent !important; }
  .paper-finder__icon { display: none !important; }
  .paper-finder input[type="search"] { width: 100% !important; border-radius: 11px !important; }
  .paper-finder__input-row button[type="submit"] { width: 100% !important; margin-top: 8px; border-radius: 11px !important; }
  .home-referral-spot { align-items: flex-start !important; }
  .icon-boxes { padding-inline: 14px; }
  .icon-box { flex-basis: 100% !important; }
  .featured-courses.vertical-column { padding: 65px 0 !important; }
  .page-header, .page-header-overlay { min-height: 310px !important; }
  .page-header-overlay { padding-top: 72px; }
  .about-stories, .about-values, .about-section .heading,
  .contact-form, .contact-info, .faq-section, .review-section, .feedback-form { padding: 22px !important; }
  .contact-form, .contact-info { margin-bottom: 22px; }
  .footer-widgets { padding-top: 45px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
