/* =====================================================================
   W2 Design — page compositions: home sections, news listing, post.
   Loaded after w2-design.css. Uses the same tokens.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. Shared section shell
   --------------------------------------------------------------------- */
.w2-home { display: block; }
.w2-sec { position: relative; padding: 80px 0; }
.w2-sec + .w2-sec { border-top: 1px solid var(--w2-line); }
.w2-sec__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; }
.w2-sec__grid--rev { grid-template-columns: 7fr 5fr; }
.w2-sec__grid--rev .w2-sec__head { order: 2; }
.w2-sec__head { position: sticky; top: calc(var(--w2-header-h) + 32px); }
.w2-sec__head--wide { position: static; max-width: 760px; margin-bottom: 40px; }
.w2-sec__head--row { position: static; display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; margin-bottom: 40px; }
.w2-sec__head--row .w2-h2 { margin-bottom: 0; }
.w2-h2 { font-size: clamp(28px, 3.4vw, 44px); line-height: 1.08; letter-spacing: -0.025em; margin: 0 0 20px; }
.w2-h3 { font-size: clamp(21px, 2vw, 26px); margin: 0 0 12px; }
.w2-sec__body p { font-size: 18px; line-height: 1.6; color: var(--w2-text-2); max-width: 60ch; }
.w2-sec__body p:last-child { margin-bottom: 0; }
.w2-sec__link { margin-top: 24px; }
.w2-textlink {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: var(--w2-yellow);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--w2-fast) var(--w2-ease), gap var(--w2-fast) var(--w2-ease);
}
.w2-textlink::after { content: "\2192"; transition: transform var(--w2-fast) var(--w2-ease); }
.w2-textlink:hover { color: var(--w2-yellow); border-bottom-color: var(--w2-yellow); }
.w2-textlink:hover::after { transform: translateX(4px); }
.w2-pills { list-style: none; padding: 0; margin: 28px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.w2-pills li {
  margin: 0;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--w2-line-strong);
  font-size: 14px;
  font-weight: 600;
  color: var(--w2-text-2);
  background: rgba(255, 255, 255, 0.03);
}

/* ---------------------------------------------------------------------
   2. Who / Why — subtle graphic devices
   --------------------------------------------------------------------- */
.w2-sec--who::before {
  content: "";
  position: absolute;
  right: -120px;
  top: -60px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  border: 1px solid rgba(34, 149, 255, 0.22);
  pointer-events: none;
}
.w2-sec--why { background: linear-gradient(180deg, transparent, rgba(16, 37, 64, 0.55) 30%, rgba(16, 37, 64, 0.55) 70%, transparent); }
.w2-sec--why .w2-sec__body p:first-child { font-size: 20px; color: var(--w2-text); }

/* ---------------------------------------------------------------------
   3. Feature grid (what makes the training useful)
   --------------------------------------------------------------------- */
.w2-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--w2-line); border: 1px solid var(--w2-line); border-radius: var(--w2-r-card); overflow: hidden; }
.w2-feature { position: relative; padding: 36px 32px 32px; background: var(--w2-navy-1); transition: background var(--w2-mid) var(--w2-ease); }
.w2-feature:hover { background: var(--w2-navy-2); }
.w2-feature__num {
  display: block;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--w2-yellow);
  margin-bottom: 20px;
  font-variant-numeric: tabular-nums;
}
.w2-feature__num::after { content: ""; display: block; width: 32px; height: 2px; background: currentColor; margin-top: 10px; transition: width var(--w2-mid) var(--w2-ease); }
.w2-feature:hover .w2-feature__num::after { width: 56px; }
.w2-feature h3 { font-size: 22px; margin-bottom: 10px; }
.w2-feature p { color: var(--w2-text-3); margin: 0; font-size: 16px; line-height: 1.6; }

/* ---------------------------------------------------------------------
   4. Course areas
   --------------------------------------------------------------------- */
.w2-areas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.w2-area {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 190px;
  padding: 26px 26px 24px;
  border-radius: var(--w2-r-card);
  border: 1px solid var(--w2-line);
  background: var(--w2-navy-2);
  color: var(--w2-text);
  text-decoration: none;
  overflow: hidden;
  transition: transform var(--w2-mid) var(--w2-ease), border-color var(--w2-mid) var(--w2-ease), box-shadow var(--w2-mid) var(--w2-ease);
}
.w2-area::before {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -90px;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: transform var(--w2-slow) var(--w2-ease), border-color var(--w2-mid) var(--w2-ease);
}
.w2-area:hover { transform: translateY(-4px); border-color: var(--w2-line-strong); box-shadow: 0 24px 50px -30px rgba(0, 0, 0, 0.8); color: var(--w2-text); }
.w2-area:hover::before { transform: scale(1.12); border-color: rgba(245, 248, 88, 0.35); }
.w2-area__count { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--w2-text-4); }
.w2-area__name { font-size: 22px; font-weight: 800; letter-spacing: -0.015em; line-height: 1.2; }
.w2-area__desc { font-size: 15px; color: var(--w2-text-3); line-height: 1.5; }
.w2-area .w2-btn__arrow { margin-top: auto; align-self: flex-end; color: var(--w2-yellow); }
.w2-area--all { background: linear-gradient(135deg, var(--w2-navy-3), var(--w2-navy-2)); border-color: rgba(245, 248, 88, 0.35); }
/* One tile only (23 Sep 2026): a full-width row on desktop, the usual stacked card below 750px */
.w2-areas--single { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 751px) {
  .w2-areas--single .w2-area { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "count arrow" "name arrow" "desc arrow"; align-items: center; column-gap: 28px; row-gap: 6px; min-height: 0; padding: 30px 34px; }
  .w2-areas--single .w2-area__count { grid-area: count; }
  .w2-areas--single .w2-area__name { grid-area: name; font-size: 26px; }
  .w2-areas--single .w2-area__desc { grid-area: desc; max-width: 62ch; }
  .w2-areas--single .w2-area .w2-btn__arrow { grid-area: arrow; margin-top: 0; align-self: center; }
}

/* ---------------------------------------------------------------------
   5. How access works
   --------------------------------------------------------------------- */
.w2-sec--how { padding: 96px 0; }
.w2-how { display: grid; grid-template-columns: 5fr 7fr; gap: 64px; align-items: center; }
.w2-how__price { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; margin: 8px 0 28px; }
.w2-how__amount { font-size: 64px; font-weight: 800; letter-spacing: -0.04em; line-height: 1; color: var(--w2-yellow); font-variant-numeric: tabular-nums; }
.w2-how__note { font-size: 15px; color: var(--w2-text-3); max-width: 24ch; line-height: 1.45; }
.w2-how .w2-steps { grid-template-columns: 1fr; gap: 14px; }
.w2-how .w2-step { display: grid; grid-template-columns: 64px 1fr; column-gap: 16px; padding: 24px 24px 22px; align-items: start; }
.w2-how .w2-step::before { grid-row: 1 / span 2; font-size: 36px; margin: 0; padding-top: 2px; }
.w2-how .w2-step h3 { grid-column: 2; margin-bottom: 4px; font-size: 19px; }
.w2-how .w2-step p { grid-column: 2; }

/* ---------------------------------------------------------------------
   6. News (strip on home, listing page, single post)
   --------------------------------------------------------------------- */
.w2-news__strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.w2-news__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.w2-post { display: flex; flex-direction: column; gap: 18px; }
.w2-post--lead { grid-column: 1 / -1; display: grid; grid-template-columns: 7fr 5fr; gap: 40px; align-items: center; padding-bottom: 40px; border-bottom: 1px solid var(--w2-line); margin-bottom: 12px; }
.w2-post__media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  border-radius: var(--w2-r-card);
  overflow: hidden;
  background: var(--w2-navy-2);
  border: 1px solid var(--w2-line);
  transition: transform var(--w2-mid) var(--w2-ease), border-color var(--w2-mid) var(--w2-ease);
}
.w2-post--lead .w2-post__media { aspect-ratio: 4 / 3; }
/* Home page, one news box (25 Sep 2026): picture beside the words, the whole box links to the News page */
.w2-news__strip--single { grid-template-columns: 1fr; }
.w2-post--single { display: grid; grid-template-columns: 5fr 7fr; gap: 40px; align-items: center; padding: 28px; border: 1px solid var(--w2-line); border-radius: var(--w2-r-card); background: var(--w2-navy-2); }
.w2-post--single .w2-post__media { aspect-ratio: 16 / 10; }
.w2-post--single .w2-post__title { font-size: clamp(24px, 2.6vw, 32px); }
.w2-post--single .w2-post__excerpt { font-size: 17px; }
body.w2d .w2-post__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--w2-slow) var(--w2-ease); }
.w2-post:hover .w2-post__media { border-color: var(--w2-line-strong); }
.w2-post:hover .w2-post__media img { transform: scale(1.04); }
.w2-post__media::before {
  content: "";
  position: absolute;
  right: -30%;
  top: -40%;
  width: 90%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: transform var(--w2-slow) var(--w2-ease);
}
.w2-post:hover .w2-post__media::before { transform: scale(1.08) translate(-4%, 4%); }
.w2-post__media--blue { background: linear-gradient(135deg, #123a66, var(--w2-navy-2)); }
.w2-post__media--indigo { background: linear-gradient(135deg, #2b2f7a, var(--w2-navy-2)); }
.w2-post__media--yellow { background: linear-gradient(135deg, #3a3c1a, var(--w2-navy-2)); }
.w2-post__media--navy { background: linear-gradient(135deg, var(--w2-navy-4), var(--w2-navy-1)); }
.w2-post__mono {
  position: absolute;
  left: 24px;
  bottom: 20px;
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: 48px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--w2-text);
  font-variant-numeric: tabular-nums;
}
.w2-post__mono small { font-size: 14px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--w2-yellow); }
.w2-post__meta { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: var(--w2-text-4); margin: 0; text-transform: uppercase; }
.w2-post__cat { padding: 3px 10px; border-radius: 999px; background: rgba(34, 149, 255, 0.16); color: #7CC0FF; }
.w2-post__title { font-size: 22px; line-height: 1.25; margin: 0; }
.w2-post--lead .w2-post__title { font-size: clamp(26px, 3vw, 36px); }
.w2-post__title a { color: var(--w2-text); text-decoration: none; background-image: linear-gradient(var(--w2-yellow), var(--w2-yellow)); background-size: 0 2px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size var(--w2-mid) var(--w2-ease); }
.w2-post:hover .w2-post__title a { background-size: 100% 2px; }
.w2-post__excerpt { color: var(--w2-text-3); font-size: 16px; line-height: 1.6; margin: 0; }
.w2-post__body { display: flex; flex-direction: column; gap: 10px; }
.w2-post__body .w2-textlink { margin-top: 6px; align-self: flex-start; }
.w2-pager { margin-top: 48px; }
.w2-pager ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.w2-pager li { margin: 0; }
.w2-pager .page-numbers {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--w2-line-strong);
  color: var(--w2-text-2);
  font-weight: 700;
  text-decoration: none;
  transition: background var(--w2-fast) var(--w2-ease), color var(--w2-fast) var(--w2-ease), border-color var(--w2-fast) var(--w2-ease);
}
.w2-pager a.page-numbers:hover { border-color: var(--w2-yellow); color: var(--w2-yellow); }
.w2-pager .page-numbers.current { background: var(--w2-yellow); color: var(--w2-navy-0); border-color: var(--w2-yellow); }
.w2-pager .page-numbers.dots { border: 0; }

/* single post */
body.w2d.single-post .entry-content, body.w2d.single-post .w2-article { max-width: 760px; }
body.w2d.single-post .entry-content p { font-size: 18px; line-height: 1.7; color: var(--w2-text-2); }
body.w2d.single-post .entry-content h2 { font-size: 30px; margin-top: 1.6em; }
body.w2d.single-post .entry-content h3 { margin-top: 1.4em; }
body.w2d.single-post .entry-content a { color: var(--w2-yellow); }
body.w2d.single-post .entry-content img { border-radius: var(--w2-r-card); }
body.w2d.single-post .entry-content blockquote { border-left: 3px solid var(--w2-yellow); padding: 4px 0 4px 24px; margin: 32px 0; font-size: 20px; color: var(--w2-text); }
.w2-article__back { display: block; margin: 48px 0 0; padding-top: 32px; border-top: 1px solid var(--w2-line); }
body.w2d.single-post .post-navigation, body.w2d.single-post .nav-links { display: none; }

/* ---------------------------------------------------------------------
   7. Final CTA
   --------------------------------------------------------------------- */
.w2-sec--cta { padding-bottom: 40px; }
.w2-cta {
  position: relative;
  overflow: hidden;
  padding: 72px 64px;
  border-radius: 24px;
  background: linear-gradient(120deg, var(--w2-navy-3), var(--w2-navy-2) 60%);
  border: 1px solid var(--w2-line-strong);
}
.w2-cta__mark {
  position: absolute;
  right: -140px;
  top: -140px;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  background: conic-gradient(from 200deg, var(--w2-blue), var(--w2-indigo) 45%, var(--w2-yellow) 80%, var(--w2-blue));
  opacity: 0.32;
  filter: blur(2px);
  pointer-events: none;
}
.w2-cta__mark::after { content: ""; position: absolute; inset: 22%; border-radius: 50%; background: var(--w2-navy-2); }
html.w2-js .w2-cta__mark { animation: w2-cta-spin 40s linear infinite; }
@keyframes w2-cta-spin { to { transform: rotate(360deg); } }
.w2-cta__body { position: relative; max-width: 620px; }
.w2-cta__body p { font-size: 18px; color: var(--w2-text-2); max-width: 52ch; }
.w2-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }

/* ---------------------------------------------------------------------
   8. Reveal choreography (uses data-w2-reveal → .is-in from w2-design.js)
   --------------------------------------------------------------------- */
html.w2-js .w2-features > *, html.w2-js .w2-areas > *, html.w2-js .w2-news__strip > *, html.w2-js .w2-news__list > *, html.w2-js .w2-how .w2-step {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity var(--w2-slow) var(--w2-ease), transform var(--w2-slow) var(--w2-ease);
}
html.w2-js .is-in .w2-features > *, html.w2-js .is-in .w2-areas > *, html.w2-js .is-in .w2-news__strip > *, html.w2-js .is-in .w2-news__list > *, html.w2-js .is-in .w2-how .w2-step { opacity: 1; transform: none; }
html.w2-js .is-in > * > :nth-child(2), html.w2-js .is-in .w2-how .w2-step:nth-child(2) { transition-delay: 80ms; }
html.w2-js .is-in > * > :nth-child(3), html.w2-js .is-in .w2-how .w2-step:nth-child(3) { transition-delay: 160ms; }
html.w2-js .is-in > * > :nth-child(4) { transition-delay: 240ms; }
html.w2-js .is-in > * > :nth-child(5) { transition-delay: 320ms; }
html.w2-js .is-in > * > :nth-child(6) { transition-delay: 400ms; }

/* ---------------------------------------------------------------------
   9. Responsive
   --------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .w2-sec__grid, .w2-sec__grid--rev, .w2-how { gap: 40px; }
  .w2-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w2-areas--single { grid-template-columns: minmax(0, 1fr); }
  .w2-cta { padding: 56px 48px; }
}
@media (max-width: 900px) {
  .w2-sec { padding: 64px 0; }
  .w2-sec--how { padding: 72px 0; }
  .w2-sec__grid, .w2-sec__grid--rev, .w2-how { grid-template-columns: 1fr; gap: 28px; }
  .w2-sec__grid--rev .w2-sec__head { order: 0; }
  .w2-sec__head { position: static; }
  .w2-news__strip { grid-template-columns: 1fr 1fr; }
  .w2-news__strip > :nth-child(3) { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
  .w2-post--lead { grid-template-columns: 1fr; gap: 20px; }
  .w2-post--single { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
  .w2-how__amount { font-size: 56px; }
}
@media (max-width: 750px) {
  .w2-sec { padding: 48px 0; }
  .w2-sec--how { padding: 56px 0; }
  .w2-h2 { font-size: clamp(26px, 7vw, 32px); }
  .w2-features, .w2-areas, .w2-news__strip, .w2-news__list { grid-template-columns: 1fr; }
  .w2-news__strip > :nth-child(3) { grid-template-columns: 1fr; }
  .w2-feature { padding: 28px 22px 24px; }
  .w2-area { min-height: 0; }
  .w2-sec__body p { font-size: 17px; }
  .w2-sec__head--row { align-items: flex-start; flex-direction: column; gap: 16px; margin-bottom: 28px; }
  .w2-cta { padding: 40px 24px; border-radius: 20px; }
  .w2-cta__mark { width: 300px; height: 300px; right: -120px; top: -140px; }
  .w2-how .w2-step { grid-template-columns: 48px 1fr; padding: 20px; }
  .w2-how .w2-step::before { font-size: 28px; }
  .w2-post__mono { font-size: 40px; left: 18px; bottom: 16px; }
  .w2-sec--cta { padding-bottom: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  html.w2-js .w2-features > *, html.w2-js .w2-areas > *, html.w2-js .w2-news__strip > *, html.w2-js .w2-news__list > *, html.w2-js .w2-how .w2-step { opacity: 1; transform: none; transition: none; }
  html.w2-js .w2-cta__mark { animation: none; }
  .w2-area, .w2-post__media img, .w2-post__media::before, .w2-area::before { transition: none; }
}

/* --------------------------------------------------------------------------
   9. About pages: editorial body copy (beats widget-level Roboto typography)
   -------------------------------------------------------------------------- */
body.w2d-about .elementor-widget-text-editor,
body.w2d-about .elementor-widget-text-editor p,
body.w2d-about .elementor-widget-text-editor li { font-family: var(--w2-font); font-size: 18px; line-height: 1.7; font-weight: 400; color: var(--w2-text-2); }
body.w2d-about .elementor-widget-text-editor p { max-width: 62ch; margin: 0 0 1.25em; }
body.w2d-about .elementor-widget-text-editor > p:first-child,
body.w2d-about .elementor-widget-text-editor > .w2-h2:first-child + p,
body.w2d-about .elementor-widget-text-editor > .elementor-widget-container > p:first-child,
body.w2d-about .elementor-widget-text-editor > .elementor-widget-container > .w2-h2:first-child + p { font-size: 21px; line-height: 1.55; color: var(--w2-text); }
body.w2d-about .elementor-widget-text-editor ul { list-style: none; padding: 0; margin: 0 0 1.6em; max-width: 62ch; }
body.w2d-about .elementor-widget-text-editor ul > li { position: relative; padding-left: 28px; margin: 0 0 10px; }
body.w2d-about .elementor-widget-text-editor ul > li::before { content: ""; position: absolute; left: 0; top: .78em; width: 14px; height: 2px; background: var(--w2-yellow); }
body.w2d-about .elementor-widget-text-editor ol { padding-left: 1.3em; margin: 0 0 1.6em; max-width: 62ch; }
body.w2d-about .elementor-widget-text-editor ol > li { margin: 0 0 10px; padding-left: 6px; }
body.w2d-about .elementor-widget-text-editor ol > li::marker { color: var(--w2-yellow); font-weight: 800; }
body.w2d-about .elementor-widget-text-editor h2,
body.w2d-about .elementor-widget-text-editor .w2-h2 { font-family: var(--w2-font); font-size: 34px; font-weight: 800; letter-spacing: -0.025em; line-height: 1.1; color: var(--w2-text); margin: 1.6em 0 .55em; max-width: 20ch; }
body.w2d-about .elementor-widget-text-editor > h2:first-child,
body.w2d-about .elementor-widget-text-editor > .w2-h2:first-child,
body.w2d-about .elementor-widget-text-editor > .elementor-widget-container > h2:first-child,
body.w2d-about .elementor-widget-text-editor > .elementor-widget-container > .w2-h2:first-child { margin-top: 0; }
body.w2d-about .elementor-widget-text-editor .w2-h2::before { content: ""; display: block; width: 44px; height: 3px; margin: 0 0 18px; background: var(--w2-yellow); border-radius: 2px; }
body.w2d-about .elementor-widget-text-editor h3 { font-family: var(--w2-font); font-size: 24px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.2; color: var(--w2-text); margin: 1.5em 0 .5em; }
body.w2d-about .elementor-widget-text-editor strong,
body.w2d-about .elementor-widget-text-editor b { color: var(--w2-text); font-weight: 700; }
body.w2d-about .elementor-widget-text-editor a { color: var(--w2-yellow); text-decoration: none; border-bottom: 1px solid rgba(245,248,88,.4); transition: border-color var(--w2-fast) var(--w2-ease); }
body.w2d-about .elementor-widget-text-editor a:hover { border-color: var(--w2-yellow); }
/* Legacy section/column HTML pasted inside a text-editor widget (About Our Courses): unbox it */
body.w2d-about .elementor-widget-text-editor .elementor-section > .elementor-container { max-width: none; }
body.w2d-about .elementor-widget-text-editor .elementor-column > .elementor-widget-wrap { padding: 0; }
body.w2d-about .elementor-widget-text-editor .elementor-section { margin-top: .5em; }
/* Elementor's stretch-section JS sets inline left/width to the viewport: keep it inside the text column */
body.w2d-about .elementor-widget-text-editor .elementor-section-stretched { left: 0 !important; width: auto !important; }
/* two-column About layout: text left, image column sticks while the copy scrolls */
body.w2d-about .e-con.e-child:has(> .elementor-widget-image) { position: sticky; top: calc(var(--w2-header-h) + 32px); align-self: flex-start; }
body.w2d-about .e-con.e-child:has(> .elementor-widget-image) .elementor-widget-image { display: flex; justify-content: center; }
body.w2d-about .elementor-widget-image img { height: auto; border-radius: var(--w2-r-card); }
body.w2d-about .e-con.e-child:has(> .elementor-widget-text-editor) { padding-right: 48px; }
@media (max-width: 1100px) {
  body.w2d-about .e-con.e-child:has(> .elementor-widget-text-editor) { padding-right: 24px; }
}
@media (max-width: 900px) {
  body.w2d-about .elementor-widget-text-editor,
  body.w2d-about .elementor-widget-text-editor p,
  body.w2d-about .elementor-widget-text-editor li { font-size: 17px; }
  body.w2d-about .elementor-widget-text-editor > p:first-child,
  body.w2d-about .elementor-widget-text-editor > .elementor-widget-container > p:first-child { font-size: 19px; }
  body.w2d-about .elementor-widget-text-editor h2,
  body.w2d-about .elementor-widget-text-editor .w2-h2 { font-size: 28px; }
  body.w2d-about .e-con.e-child:has(> .elementor-widget-image) { position: static; }
  body.w2d-about .e-con.e-child:has(> .elementor-widget-text-editor) { padding-right: 0; }
  body.w2d-about .elementor-widget-image img { max-width: 320px; }
}

/* --------------------------------------------------------------------------
   10. Course page (visitor + member): description block from Lifter Elements
   -------------------------------------------------------------------------- */
body.w2d.single-course .elementor-widget-le-course-content { max-width: 800px; margin: 44px 0 0; }
body.w2d.single-course .elementor-widget-le-course-content .elementor-widget-container,
body.w2d.single-course .elementor-widget-le-course-content p,
body.w2d.single-course .elementor-widget-le-course-content li { font-family: var(--w2-font); font-size: 18px; line-height: 1.7; font-weight: 400; color: var(--w2-text-2); }
body.w2d.single-course .elementor-widget-le-course-content p { margin: 0 0 1.2em; max-width: 66ch; }
body.w2d.single-course .elementor-widget-le-course-content p:first-of-type { font-size: 20px; line-height: 1.6; color: var(--w2-text); }
body.w2d.single-course .elementor-widget-le-course-content h2, body.w2d.single-course .elementor-widget-le-course-content h3 { font-family: var(--w2-font); font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; color: var(--w2-text); margin: 1.5em 0 .5em; }
body.w2d.single-course .elementor-widget-le-course-content h2 { font-size: 30px; }
body.w2d.single-course .elementor-widget-le-course-content h3 { font-size: 22px; }
body.w2d.single-course .elementor-widget-le-course-content ul { list-style: none; padding: 0; margin: 0 0 1.6em; }
body.w2d.single-course .elementor-widget-le-course-content ul > li { position: relative; padding-left: 28px; margin: 0 0 8px; }
body.w2d.single-course .elementor-widget-le-course-content ul > li::before { content: ""; position: absolute; left: 0; top: .78em; width: 14px; height: 2px; background: var(--w2-yellow); }
body.w2d.single-course .elementor-widget-le-course-content strong { color: var(--w2-text); }
body.w2d.single-course .elementor-widget-le-course-content a { color: var(--w2-yellow); }
body.w2d.single-course .elementor-widget-le-course-content img, body.w2d.single-course .elementor-widget-le-course-content figure { display: block; max-width: 100%; height: auto; margin: 0 0 32px; border-radius: var(--w2-r-card); }
body.w2d.single-course .elementor-widget-le-course-content figure img { margin: 0; }
body.w2d.single-course .elementor-widget-image img, body.w2d.single-course .elementor-widget-theme-post-featured-image img { border-radius: var(--w2-r-card); }
@media (max-width: 900px) {
  body.w2d.single-course .elementor-widget-le-course-content { margin-top: 32px; }
  body.w2d.single-course .elementor-widget-le-course-content .elementor-widget-container,
  body.w2d.single-course .elementor-widget-le-course-content p,
  body.w2d.single-course .elementor-widget-le-course-content li { font-size: 17px; }
  body.w2d.single-course .elementor-widget-le-course-content p:first-of-type { font-size: 18px; }
}

/* ------------------------------------------------------------------
   11. News page: free download / resources block (Elementor page 164)
   ------------------------------------------------------------------ */
body.w2d-news .e-con.w2-nl { padding: 0 0 24px; }
body.w2d-news .e-con.w2-resources { margin: 40px auto 72px; padding: 36px 40px; border: 1px solid var(--w2-line); border-radius: var(--w2-r-card); background: linear-gradient(135deg, var(--w2-navy-2), var(--w2-navy-1) 70%); position: relative; overflow: hidden; align-items: center; --gap: 40px; }
body.w2d-news .e-con.w2-resources::before { content: ""; position: absolute; right: -120px; top: -160px; width: 360px; height: 360px; border-radius: 50%; border: 10px solid var(--w2-yellow); opacity: .12; pointer-events: none; }
body.w2d-news .w2-resources__text { --width: 58%; position: relative; z-index: 1; }
body.w2d-news .w2-resources__dl { --width: 42%; position: relative; z-index: 1; }
body.w2d-news .w2-resources__text p { font-family: var(--w2-font); font-size: 18px; line-height: 1.6; color: var(--w2-text-3); margin: 0 0 10px; }
body.w2d-news .w2-resources__text p:first-child { margin-bottom: 14px; }
body.w2d-news .w2-resources__text p:first-child strong { display: block; font-size: 28px; line-height: 1.15; letter-spacing: -.02em; color: var(--w2-text); font-weight: 800; }
body.w2d-news .w2-resources__text p:first-child strong::before { content: "Free download"; display: block; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--w2-yellow); margin-bottom: 14px; }
/* Simple Download Monitor item */
body.w2d-news .sdm_download_item { display: grid; grid-template-columns: 96px 1fr; gap: 18px 20px; align-items: center; padding: 18px; border: 1px solid var(--w2-line); border-radius: 16px; background: rgba(6,18,36,.55); }
body.w2d-news .sdm_download_item_top { display: contents; }
body.w2d-news .sdm_download_thumbnail { grid-row: 1 / span 3; margin: 0; }
body.w2d-news .sdm_download_thumbnail img { display: block; width: 96px; height: 96px; object-fit: cover; border-radius: 12px; border: 1px solid var(--w2-line); }
body.w2d-news .sdm_download_title { font-family: var(--w2-font); font-size: 19px; font-weight: 700; color: var(--w2-text); line-height: 1.25; }
body.w2d-news .sdm_download_item > div[style], body.w2d-news .sdm_download_description:empty, body.w2d-news .sdm_clear_float { display: none; }
body.w2d-news .sdm_download_version, body.w2d-news .sdm_download_date { font-size: 13px; color: var(--w2-text-4); }
body.w2d-news .sdm_download_version { grid-column: 2; }
body.w2d-news .sdm_download_date { grid-column: 2; margin-top: -12px; }
body.w2d-news .sdm_download_link { grid-column: 2; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
body.w2d-news .sdm_download_link a.sdm_download { display: inline-flex !important; align-items: center; min-height: 42px; padding: 0 20px !important; border-radius: 999px !important; background: var(--w2-yellow) !important; border: 1.5px solid var(--w2-yellow) !important; color: var(--w2-navy-0) !important; font-family: var(--w2-font) !important; font-size: 14px !important; font-weight: 700 !important; text-decoration: none !important; text-shadow: none !important; box-shadow: none !important; transition: transform var(--w2-fast) var(--w2-ease), background-color var(--w2-fast) var(--w2-ease); }
body.w2d-news .sdm_download_link a.sdm_download:hover { background: var(--w2-yellow-deep) !important; border-color: var(--w2-yellow-deep) !important; transform: translateY(-2px); }
body.w2d-news .sdm_download_item_count { font-size: 13px; color: var(--w2-text-4); }
@media (max-width: 900px) {
  body.w2d-news .e-con.w2-resources { flex-direction: column; padding: 28px 24px; --gap: 24px; }
  body.w2d-news .w2-resources__text, body.w2d-news .w2-resources__dl { --width: 100%; width: 100%; }
  body.w2d-news .w2-resources__text p:first-child strong { font-size: 24px; }
}
@media (max-width: 480px) {
  body.w2d-news .sdm_download_item { grid-template-columns: 1fr; }
  body.w2d-news .sdm_download_thumbnail { grid-row: auto; }
  body.w2d-news .sdm_download_version, body.w2d-news .sdm_download_date, body.w2d-news .sdm_download_link { grid-column: 1; }
}

/* =====================================================================
   LEGACY OLD-SITE RULES — ported verbatim from the Customizer
   "Additional CSS" (custom_css post 50, retired 17 Sep 2026, w61).
   Styles the orphan Elementor page 238 "Buy Training Courses"
   (/buy-training-courses/, not linked from any menu).
   Do not restyle here; delete this block once the markup it styles is gone.
   ===================================================================== */
/* ======================================================
   COURSE CATALOG PAGE (PAGE ID 238)
   Modern SaaS / Udemy-style cards (single source of truth)
   ====================================================== */

/* Page spacing - keep it consistent */
body.page-id-238 .entry-content,
body.page-id-238 .page-content,
body.page-id-238 .elementor,
body.page-id-238 .lifterlms-courses,
body.page-id-238 .llms-loop {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px;
}
/* Grid */
body.page-id-238 .llms-loop-list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: stretch;
}
@media (max-width: 1024px) {
  body.page-id-238 .llms-loop-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 640px) {
  body.page-id-238 .llms-loop-list {
    grid-template-columns: 1fr !important;
  }
}
/* Prevent skinny cards */
body.page-id-238 .llms-loop-item {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
/* Card shell */
body.page-id-238 .llms-loop-item > a,
body.page-id-238 .llms-loop-item .llms-loop-item-content,
body.page-id-238 .llms-loop-item .llms-loop-item-inner {
  display: flex !important;
  flex-direction: column;
  height: 100%;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  text-decoration: none !important;
  box-shadow: 0 12px 30px rgba(0,0,0,0.35) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
/* Hover */
body.page-id-238 .llms-loop-item:hover > a,
body.page-id-238 .llms-loop-item:hover .llms-loop-item-content,
body.page-id-238 .llms-loop-item:hover .llms-loop-item-inner {
  transform: translateY(-4px);
  box-shadow: 0 18px 50px rgba(0,0,0,0.45) !important;
  border-color: rgba(255,255,255,0.18) !important;
}
/* Image crop */
body.page-id-238 .llms-loop-item img {
  width: 100% !important;
  height: 180px !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 0 !important;
  transition: transform 0.25s ease;
}
body.page-id-238 .llms-loop-item:hover img {
  transform: scale(1.03);
}
/* Title */
body.page-id-238 .llms-loop-item .llms-loop-title,
body.page-id-238 .llms-loop-item .llms-title,
body.page-id-238 .llms-loop-item h2,
body.page-id-238 .llms-loop-item h3 {
  margin: 14px 16px 6px !important;
  color: #E2EFFF !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
/* Meta text - avoid grabbing every p inside the card */
body.page-id-238 .llms-loop-item .llms-meta,
body.page-id-238 .llms-loop-item .llms-loop-item-meta,
body.page-id-238 .llms-loop-item .llms-loop-meta,
body.page-id-238 .llms-loop-item .llms-meta li,
body.page-id-238 .llms-loop-item .llms-loop-meta li {
  margin: 0 16px 14px !important;
  color: rgba(226,239,255,0.75) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}
/* Remove instructor/avatar rows inside cards */
body.page-id-238 .llms-loop-item .llms-author,
body.page-id-238 .llms-loop-item .llms-meta-author,
body.page-id-238 .llms-loop-item .avatar,
body.page-id-238 .llms-loop-item .llms-instructor-info {
  display: none !important;
}
/* Links in cards */
body.page-id-238 .llms-loop-item a {
  text-decoration: none !important;
}
/* Optional filter bar styling (if present) */
body.page-id-238 .llms-course-filters,
body.page-id-238 .llms-loop-filters,
body.page-id-238 .llms-filter {
  margin: 0 0 18px 0 !important;
  padding: 12px 14px !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
}
