/* ==========================================================================
   CYSEC Academy theme layer
   Loaded after every InfixLMS stylesheet (see resources/views-cysec/cysec/head.blade.php).
   Rules are scoped to body.cysec so nothing leaks into the admin panel.
   ========================================================================== */

/* 1. Design tokens ------------------------------------------------------ */
:root {
  --cy-green-900: #0F1A14;
  --cy-green-800: #14201A;
  --cy-green-700: #0F4A1F;
  --cy-green-600: #16672B;   /* primary: 6.6:1 on white */
  --cy-green-500: #2E9E47;
  --cy-lime-300:  #A6E36B;
  --cy-mint-100:  #EAF4E8;
  --cy-mint-50:   #F2F7F1;
  --cy-ink:       #14201A;
  --cy-ink-2:     #2B3731;
  --cy-muted:     #45524B;   /* 7.9:1 on white */
  --cy-line:      #DCE3DD;
  --cy-line-2:    #C9D6CB;
  --cy-white:     #FFFFFF;
  --cy-radius:    12px;
  --cy-radius-lg: 20px;
  --cy-font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --cy-font-head: "Space Grotesk", "Inter", system-ui, sans-serif;
  --cy-focus:     0 0 0 3px rgba(166, 227, 107, 0.9);

  /* Re-theme InfixLMS through its own variables (overrides the admin colour
     settings on the public site; keep the admin colours the same values). */
  --system_primery_gredient1: #16672B;
  --system_primery_gredient2: #16672B;
  --system_primary_gredient1: #16672B;
  --system_primary_gredient2: #16672B;
  --system_primery_color: #16672B;
  --system_primary_color: #16672B;
  --system_secendory_color: #0F4A1F;
  --footer_background_color: #0F1A14;
  --footer_headline_color: #FFFFFF;
  --footer_text_color: #C7D3CB;
  --footer_text_hover_color: #A6E36B;
  --menu_text: #2B3731;
  --menu_hover_text: #16672B;
  --menu_title_text: #14201A;
  --font_family1: "Space Grotesk", "Inter", sans-serif;
  --font_family2: "Inter", sans-serif;
}

/* 2. Base ---------------------------------------------------------------- */
body.cysec { font-family: var(--cy-font-body); color: var(--cy-ink); }
body.cysec h1, body.cysec h2, body.cysec h3, body.cysec h4 { font-family: var(--cy-font-head); letter-spacing: -0.01em; }
body.cysec a:focus-visible,
body.cysec button:focus-visible,
body.cysec input:focus-visible,
body.cysec select:focus-visible { outline: none; box-shadow: var(--cy-focus); border-radius: 8px; }

/* 3. Buttons ------------------------------------------------------------- */
body.cysec .cysec-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 10px 18px; border-radius: 10px;
  font: 600 15px/1.2 var(--cy-font-body); text-decoration: none; white-space: nowrap;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
body.cysec .cysec-btn--primary { background: var(--cy-green-600); color: #fff !important; border: 1px solid var(--cy-green-600); }
body.cysec .cysec-btn--primary:hover { background: var(--cy-green-700); border-color: var(--cy-green-700); }
body.cysec .cysec-btn--outline { background: #fff; color: var(--cy-ink) !important; border: 1px solid var(--cy-line-2); }
body.cysec .cysec-btn--outline:hover { border-color: var(--cy-green-600); color: var(--cy-green-600) !important; }

body.cysec .theme_btn {
  background: var(--cy-green-600) !important; border-radius: 10px !important;
  font-family: var(--cy-font-body); font-weight: 600;
}
body.cysec .theme_btn:hover { background: var(--cy-green-700) !important; }

/* 4. Header -------------------------------------------------------------- */
body.cysec .header_area { background: #fff; border-bottom: 1px solid #E4EAE5; box-shadow: none; }
body.cysec .header_area .cysec-logo { height: 44px; width: auto; padding: 0 !important; object-fit: contain; }
body.cysec .header_area .theme_search_field {
  border: 1px solid var(--cy-line-2); border-radius: 999px; background: #F7F9F7; overflow: hidden;
}
body.cysec .header_area .theme_search_field input { background: transparent; font-size: 15px; }
body.cysec .header_area .main_menu ul li a { font-weight: 500; }

/* 5. Sign in / sign up pages -------------------------------------------- */
body.cysec-auth { background: #fff; }
body.cysec-auth .login_wrapper { min-height: 100vh; }
body.cysec-auth .login_wrapper_left { padding: 40px 48px; }
body.cysec-auth .login_wrapper_left .logo { margin-bottom: 28px; }
body.cysec-auth .cysec-auth-logo { height: 48px; width: auto; max-width: 220px; object-fit: contain; }
body.cysec-auth .cysec-auth-title { font: 700 32px/1.15 var(--cy-font-head); color: var(--cy-ink); margin: 0 0 6px; }
body.cysec-auth .cysec-auth-sub { font-size: 15px; line-height: 1.5; color: var(--cy-muted); margin: 0 0 24px; }

/* social button: neutral, full width */
body.cysec-auth .socail_links { grid-template-columns: 1fr; margin-bottom: 4px; }
body.cysec-auth .socail_links a,
body.cysec-auth .socail_links .googleLoginBtn,
body.cysec-auth .socail_links .facebookLoginBtn {
  background: #fff !important; color: var(--cy-ink) !important; border: 1px solid var(--cy-line-2) !important;
  border-radius: 10px !important; min-height: 48px; display: flex; align-items: center; justify-content: center;
  font-weight: 600; font-size: 15px;
}
body.cysec-auth .socail_links a:hover { border-color: var(--cy-green-600) !important; background: var(--cy-mint-50) !important; }
body.cysec-auth .login_text { display: flex; align-items: center; gap: 12px; color: var(--cy-muted); font-size: 13px; margin: 16px 0 8px; }
body.cysec-auth .login_text::before,
body.cysec-auth .login_text::after { content: ""; flex: 1; height: 1px; background: #E4EAE5; }

/* fields: boxed inputs instead of underlines */
body.cysec-auth .custom_group_field {
  border: 1px solid var(--cy-line-2); border-radius: 10px; padding: 0 12px; min-height: 50px; background: #fff;
}
body.cysec-auth .custom_group_field:focus-within { border-color: var(--cy-green-600); box-shadow: var(--cy-focus); }
body.cysec-auth .custom_group_field span { padding: 0; }
body.cysec-auth .custom_group_field input,
body.cysec-auth .custom_group_field select { padding: 12px 8px; font-size: 16px; font-weight: 400; color: var(--cy-ink); }
body.cysec-auth .custom_group_field input::placeholder { color: #6B776F; }
body.cysec-auth .text-danger { display: block; font-size: 13px; margin-top: 6px; }

body.cysec-auth .theme_btn { min-height: 52px; font-size: 16px; font-weight: 700; }
body.cysec-auth .theme_btn.disable_btn { opacity: .55; }
body.cysec-auth .forgot_pass,
body.cysec-auth .shitch_text a,
body.cysec-auth .remember_forgot_passs a { color: var(--cy-green-600) !important; font-weight: 600; }
body.cysec-auth .shitch_text { margin-top: 20px; color: var(--cy-ink-2); }

/* right-hand panel */
body.cysec-auth .cysec-auth-aside { background: var(--cy-green-800) !important; color: #fff; padding: 48px; }
body.cysec-auth .cysec-auth-aside .login_main_info { max-width: 520px; text-align: left; }
body.cysec-auth .cysec-auth-aside__title { font: 700 36px/1.15 var(--cy-font-head); color: #fff; margin: 0 0 24px; }
body.cysec-auth .cysec-auth-aside .thumb img { width: 100%; max-height: 360px; object-fit: cover; border-radius: var(--cy-radius-lg); }
body.cysec-auth .cysec-auth-aside__points { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 12px; }
body.cysec-auth .cysec-auth-aside__points li { position: relative; padding-left: 30px; color: #DCE6DF; font-size: 16px; line-height: 1.5; }
body.cysec-auth .cysec-auth-aside__points li::before {
  content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; border-radius: 50%;
  background: var(--cy-lime-300) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314201A' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat;
}

@media (max-width: 991px) {
  body.cysec-auth .login_wrapper_left { padding: 28px 20px; }
  body.cysec-auth .cysec-auth-aside { display: none !important; }
}

/* 6. Footer (resources/views-cysec/.../partials/footer/2.blade.php) ------ */
.cy-footer { background: var(--cy-green-900); color: #C7D3CB; font-family: var(--cy-font-body); margin-top: 0; }
.cy-footer__wrap { max-width: 1240px; margin: 0 auto; padding: 64px 24px 28px; }
.cy-footer a { color: #C7D3CB; text-decoration: none; }
.cy-footer a:hover { color: var(--cy-lime-300); }
.cy-footer__top { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 40px; }
.cy-footer__logo img { height: 36px; width: auto; }
.cy-footer__about { margin: 18px 0 20px; max-width: 380px; font-size: 14px; line-height: 1.7; color: #A9B8AF; }
.cy-footer__social { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.cy-footer__social a { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center;
  background: #1A2820; color: #fff; font-size: 16px; }
.cy-footer__social a:hover { background: var(--cy-lime-300); color: var(--cy-green-900); }
.cy-footer__heading { margin: 0 0 16px; font: 700 15px/1.3 var(--cy-font-body) !important; letter-spacing: .02em; color: #fff; }
.cy-footer__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.cy-footer__col a { font-size: 14px; line-height: 1.5; }
.cy-footer__middle { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px;
  margin-top: 48px; padding: 28px 0; border-top: 1px solid #24342B; border-bottom: 1px solid #24342B; }
.cy-footer__contact { flex: 1 1 360px; max-width: 720px; display: flex; flex-wrap: wrap; gap: 12px 28px; font-size: 14px; }
.cy-footer__contact a, .cy-footer__contact span { display: inline-flex; align-items: center; gap: 8px; }
.cy-footer__contact svg { color: var(--cy-lime-300); flex: 0 0 auto; }
.cy-footer__newsletter { flex: 0 1 420px; min-width: 260px; }
.cy-footer__newsletter label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; color: #fff; }
.cy-footer__newsletter-row { display: flex; gap: 8px; }
.cy-footer__newsletter input { flex: 1 1 auto; min-width: 0; height: 46px; padding: 0 14px; border-radius: 10px; border: 1px solid #2E4237;
  background: #1A2820; color: #fff; font: 400 15px var(--cy-font-body); }
.cy-footer__newsletter input::placeholder { color: #8FA096; }
.cy-footer__newsletter input:focus { outline: none; box-shadow: var(--cy-focus); border-color: var(--cy-lime-300); }
.cy-footer__newsletter button { height: 46px; padding: 0 18px; border: 0; border-radius: 10px; background: var(--cy-lime-300);
  color: var(--cy-green-900); font: 700 15px var(--cy-font-body); cursor: pointer; }
.cy-footer__error { display: block; margin-top: 6px; color: #FFB4A8; font-size: 13px; }
.cy-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding-top: 22px; }
.cy-footer__copy { margin: 0; font-size: 13px; color: #8FA096; }
.cy-footer__copy a { color: #C7D3CB; }
.cy-footer__pay { display: flex; flex-wrap: wrap; gap: 8px; }
.cy-footer__pay-logo { height: 32px; padding: 4px 10px; border-radius: 6px; background: #fff; display: inline-flex; align-items: center; }
.cy-footer__pay-logo img { height: 20px; width: auto; }
@media (max-width: 991px) { .cy-footer__top { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cy-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 575px) {
  .cy-footer__wrap { padding: 48px 16px 24px; }
  .cy-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
  .cy-footer__newsletter { flex-basis: 100%; }
}

/* 7. Home page (resources/views-cysec/cysec/home.blade.php) ------------- */
.cy-home { font-family: var(--cy-font-body); color: var(--cy-ink); }
.cy-home *, .cy-home *::before, .cy-home *::after { box-sizing: border-box; }
.cy-home img { max-width: 100%; display: block; }
.cy-home a { text-decoration: none; }
.cy-wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.cy-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.cy-eyebrow { margin: 0 0 12px; font: 700 14px/1.3 var(--cy-font-body); letter-spacing: .06em; text-transform: uppercase; color: var(--cy-green-600); }
.cy-eyebrow--lime { color: var(--cy-lime-300); }
.cy-h2 { margin: 0; font: 700 clamp(28px, 3.2vw, 40px)/1.12 var(--cy-font-head); letter-spacing: -.02em; color: var(--cy-ink); }
.cy-h2--light { color: #fff; }
.cy-h3 { margin: 0 0 10px; font: 700 26px/1.2 var(--cy-font-head); color: var(--cy-ink); }
.cy-section { padding: 88px 0; }
.cy-section--tight { padding-top: 24px; }
.cy-section__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 28px; }
.cy-section__lead { margin: 10px 0 0; font-size: 17px; line-height: 1.6; color: var(--cy-muted); }
.cy-section__lead--light { color: #C7D3CB; }
.cy-link { font-weight: 700; font-size: 15px; color: var(--cy-green-600) !important; }
.cy-link:hover { color: var(--cy-green-700) !important; text-decoration: underline; }

/* buttons */
.cy-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px; border-radius: 12px; border: 1px solid transparent; font: 700 16px/1.2 var(--cy-font-body); cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.cy-btn--lg { min-height: 56px; padding: 16px 26px; }
.cy-btn--primary { background: var(--cy-green-600); color: #fff !important; }
.cy-btn--primary:hover { background: var(--cy-green-700); }
.cy-btn--ghost { background: #fff; color: var(--cy-ink) !important; border-color: var(--cy-line-2); }
.cy-btn--ghost:hover { border-color: var(--cy-green-600); color: var(--cy-green-600) !important; }
.cy-btn--lime { background: var(--cy-lime-300); color: var(--cy-green-900) !important; }
.cy-btn--lime:hover { background: #BDF08A; }
.cy-btn--white { background: #fff; color: var(--cy-ink) !important; }
.cy-btn--outline-light { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.5); }
.cy-btn--outline-light:hover { border-color: #fff; }

/* hero */
.cy-hero { background: var(--cy-mint-50); overflow: hidden; }
.cy-hero__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 56px; padding-top: 64px; padding-bottom: 72px; }
.cy-hero__copy { flex: 1 1 500px; min-width: 0; }
.cy-hero__title { margin: 0 0 20px; font: 700 clamp(36px, 4.6vw, 60px)/1.04 var(--cy-font-head); letter-spacing: -.025em; color: var(--cy-ink); }
.cy-hero__lead { margin: 0 0 24px; font-size: 19px; line-height: 1.6; color: #3B4842; max-width: 560px; }
.cy-hero__search { display: flex; gap: 8px; max-width: 560px; margin-bottom: 20px; padding: 6px; background: #fff; border: 1px solid var(--cy-line-2); border-radius: 14px; }
.cy-hero__search input { flex: 1 1 auto; min-width: 0; border: 0; outline: 0; padding: 0 12px; font: 400 16px var(--cy-font-body); color: var(--cy-ink); background: transparent; }
.cy-hero__search:focus-within { border-color: var(--cy-green-600); box-shadow: var(--cy-focus); }
.cy-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.cy-hero__proof { display: flex; align-items: center; gap: 14px; margin-top: 24px; font-size: 15px; color: #3B4842; }
.cy-hero__proof strong { color: var(--cy-ink); }
.cy-faces { display: flex; }
.cy-faces img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 3px solid var(--cy-mint-50); margin-left: -12px; }
.cy-faces img:first-child { margin-left: 0; }
.cy-hero__media { flex: 1 1 460px; min-width: 0; position: relative; padding: 20px 0 32px; }
.cy-hero__photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 28px; box-shadow: 0 24px 60px rgba(20,32,26,.18); }
.cy-float { position: absolute; display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-radius: 16px; font-size: 14px; box-shadow: 0 12px 32px rgba(20,32,26,.18); }
.cy-float--cert { left: -14px; bottom: 6px; background: #fff; color: var(--cy-ink); }
.cy-float--cert small { display: block; color: var(--cy-muted); font-size: 13px; }
.cy-float__icon { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--cy-mint-100); color: var(--cy-green-600); }
.cy-float--live { right: -6px; top: 0; background: var(--cy-green-800); color: #fff; font-weight: 600; }
.cy-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--cy-lime-300); }

/* stats */
.cy-stats { background: var(--cy-green-800); color: #fff; }
.cy-stats__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px; padding-top: 26px; padding-bottom: 26px; }
.cy-stat { display: flex; align-items: baseline; gap: 10px; }
.cy-stat__value { font: 700 30px/1 var(--cy-font-head); color: var(--cy-lime-300); }
.cy-stat__label { font-size: 15px; color: #C7D3CB; }

/* category tiles */
.cy-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 991px) { .cy-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .cy-tiles { grid-template-columns: 1fr; } }
.cy-tile { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 20px; overflow: hidden; background: var(--cy-green-800); }
.cy-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.cy-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,18,13,0) 40%, rgba(10,18,13,.86) 100%); }
.cy-tile:hover img { transform: scale(1.04); }
.cy-tile__label { position: absolute; z-index: 1; left: 20px; right: 20px; bottom: 18px; font: 700 21px/1.2 var(--cy-font-head); color: #fff; }
.cy-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.cy-chip { padding: 10px 16px; border: 1px solid var(--cy-line-2); border-radius: 999px; background: #fff; font-size: 14px; font-weight: 500; color: var(--cy-ink) !important; }
.cy-chip:hover { border-color: var(--cy-green-600); color: var(--cy-green-600) !important; }

/* course tabs + cards */
.cy-tabs { display: flex; flex-wrap: wrap; gap: 4px 24px; border-bottom: 1px solid #E4EAE5; margin-bottom: 24px; }
.cy-tab { border: 0; background: none; padding: 12px 2px; border-bottom: 3px solid transparent; font: 500 15px var(--cy-font-body); color: var(--cy-muted); cursor: pointer; }
.cy-tab[aria-selected="true"] { color: var(--cy-ink); font-weight: 700; border-bottom-color: var(--cy-green-600); }
.cy-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.cy-card { display: flex; flex-direction: column; border: 1px solid var(--cy-line); border-radius: 18px; overflow: hidden; background: #fff; transition: box-shadow .2s, transform .2s; }
.cy-card:hover { box-shadow: 0 14px 36px rgba(20,32,26,.10); transform: translateY(-2px); }
.cy-card__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.cy-card__body { display: flex; flex-direction: column; gap: 10px; padding: 18px; flex: 1 1 auto; }
.cy-badge { align-self: flex-start; padding: 4px 10px; border-radius: 999px; background: var(--cy-mint-100); color: var(--cy-green-600); font-size: 12px; font-weight: 700; }
.cy-card__title { margin: 0; font: 700 17px/1.35 var(--cy-font-body); letter-spacing: 0; }
.cy-card__title a { color: var(--cy-ink) !important; }
.cy-card__title a:hover { color: var(--cy-green-600) !important; }
.cy-card__meta { margin: 0; font-size: 14px; color: #5B6860; }
.cy-card__foot { margin-top: auto; padding-top: 12px; border-top: 1px solid #EEF2EF; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.cy-card__foot .price, .cy-card__foot .prise_tag .current { font: 700 18px var(--cy-font-body); color: var(--cy-ink); }
.cy-card__foot del { margin-left: 6px; font-size: 14px; color: #5B6860; }

/* dark split (Hack365) */
.cy-dark { background: var(--cy-green-900); color: #fff; padding: 88px 0; }
.cy-split { display: flex; flex-wrap: wrap; align-items: center; gap: 56px; }
.cy-split__media, .cy-split__copy { flex: 1 1 460px; min-width: 0; }
.cy-split__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 24px; }
.cy-ticks { list-style: none; padding: 0; margin: 20px 0 28px; display: grid; gap: 12px; }
.cy-ticks li { position: relative; padding-left: 32px; font-size: 16px; color: #EEF3EF; }
.cy-ticks li::before { content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--cy-lime-300) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314201A' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat; }

/* goals */
.cy-goals { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin-top: 28px; }
.cy-goal { display: flex; flex-direction: column; border: 1px solid var(--cy-line); border-radius: 20px; overflow: hidden; background: #fff; color: var(--cy-ink) !important; }
.cy-goal img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.cy-goal__body { display: flex; flex-direction: column; gap: 8px; padding: 22px; font-size: 15px; line-height: 1.6; color: var(--cy-muted); }
.cy-goal__body strong { font: 700 22px/1.2 var(--cy-font-head); color: var(--cy-ink); }
.cy-goal__body em { font-style: normal; font-weight: 700; color: var(--cy-green-600); }
.cy-goal:hover { box-shadow: 0 14px 36px rgba(20,32,26,.10); }

/* organisations */
.cy-mint { background: var(--cy-mint-50); padding: 88px 0; }
.cy-orgs { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 24px; }
.cy-org { background: #fff; border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; }
.cy-org img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.cy-org__body { padding: 28px; }
.cy-org__body p { margin: 0 0 18px; font-size: 16px; line-height: 1.6; color: var(--cy-muted); }
.cy-org__body .cy-eyebrow { margin-bottom: 8px; }

/* final CTA */
.cy-cta { display: flex; flex-wrap: wrap; border-radius: 28px; overflow: hidden; background: var(--cy-green-600); color: #fff; }
.cy-cta__copy { flex: 1 1 520px; min-width: 0; padding: 56px 48px; }
.cy-cta__copy p { margin: 16px 0 24px; font-size: 17px; line-height: 1.6; color: #DDEFD9; }
.cy-cta__img { flex: 1 1 360px; min-width: 0; min-height: 300px; object-fit: cover; }

@media (max-width: 767px) {
  .cy-section, .cy-dark, .cy-mint { padding: 56px 0; }
  .cy-wrap { padding: 0 16px; }
  .cy-hero__inner { padding-top: 36px; padding-bottom: 40px; gap: 32px; }
  .cy-float--cert { left: 8px; }
  .cy-float--live { right: 8px; }
  .cy-cta__copy { padding: 36px 24px; }
}

/* 8. Header on small screens: keep clear of the menu button ------------- */
@media (max-width: 991px) {
  body.cysec .header_area .contact_btn { margin-right: 44px; }
  body.cysec .header_area .contact_btn .cysec-btn { min-height: 38px; padding: 8px 12px; font-size: 14px; }
}
@media (max-width: 575px) {
  body.cysec .header_area .contact_btn .cysec-btn--outline { display: none; }
}

/* 9. Cookie notice: compact bar in brand colours ------------------------- */
body.cysec .theme_cookies {
  left: 16px; right: 16px; bottom: 16px; width: auto; max-width: 980px; margin: 0 auto;
  padding: 14px 18px; border-radius: 16px; gap: 12px;
  background: #fff !important; border: 1px solid var(--cy-line);
  box-shadow: 0 12px 40px rgba(20,32,26,.18);
}
body.cysec .theme_cookies_info { gap: 16px; flex-wrap: wrap; }
body.cysec .theme_cookies_info .icon { display: none; }
body.cysec .theme_cookies_info p { flex: 1 1 380px; max-width: none; font: 400 14px/1.5 var(--cy-font-body); color: var(--cy-ink-2); }
body.cysec .theme_cookies_info p a { color: var(--cy-green-600); font-weight: 600; }
body.cysec .theme_cookies .cookie_btn {
  background: var(--cy-green-600) !important; color: #fff !important; border-radius: 10px;
  padding: 11px 18px; font: 600 14px var(--cy-font-body);
}
body.cysec .theme_cookies .cookie_btn.cookeSettingModalBtn { background: #fff !important; color: var(--cy-ink) !important; border: 1px solid var(--cy-line-2); }
@media (max-width: 767px) {
  body.cysec .theme_cookies { left: 8px; right: 8px; bottom: 8px; padding: 12px 14px; }
  body.cysec .theme_cookies_info { flex-direction: row; gap: 10px; }
  body.cysec .theme_cookies_info p { flex: 1 1 100%; font-size: 13px; }
  body.cysec .theme_cookies .cookie_btn { flex: 1 1 auto; padding: 10px 12px; }
}

/* 10. Floating cart button: out of the content on phones ---------------- */
body.cysec .float.cart_icon { box-shadow: 0 8px 20px rgba(20,32,26,.25); }
@media (max-width: 767px) {
  body.cysec .float.cart_icon { top: auto; bottom: 156px; right: 22px; }
}

/* 11. Testimonials on the home page ("What learners say") ------------- */
.cy-voices { background: linear-gradient(180deg, var(--cy-mint-50) 0%, #fff 100%); }
.cy-voices__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 32px; }
.cy-voices__head .cy-h2 { margin-bottom: 0; }
.cy-voices__score { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.cy-voices__score p { margin: 0; font-size: 14px; color: var(--cy-muted); }
.cy-voices__score strong { color: var(--cy-ink); font-size: 16px; }
.cy-stars { display: inline-flex; gap: 2px; }
.cy-stars svg { fill: #F5B301; }
.cy-stars svg.off { fill: #D7DED9; }
.cy-voice { margin: 0; position: relative; display: flex; flex-direction: column; gap: 16px; padding: 26px;
  background: #fff; border: 1px solid var(--cy-line); border-radius: var(--cy-radius-lg);
  box-shadow: 0 1px 2px rgba(20,32,26,.04), 0 12px 32px -18px rgba(20,32,26,.18); transition: transform .2s ease, box-shadow .2s ease; }
.cy-voice:hover { transform: translateY(-3px); box-shadow: 0 1px 2px rgba(20,32,26,.04), 0 18px 40px -18px rgba(20,32,26,.28); }
.cy-voice blockquote { margin: 0; font-size: 15.5px; line-height: 1.7; color: var(--cy-ink-2);
  display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.cy-voice__top { display: flex; align-items: center; justify-content: space-between; }
.cy-voice__mark { fill: var(--cy-green-600); opacity: .18; flex: 0 0 auto; }
.cy-voice figcaption { margin-top: auto; display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid var(--cy-line); }
.cy-voice__avatar { position: relative; flex: 0 0 auto; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center;
  background: var(--cy-mint-100); color: var(--cy-green-700); font: 700 18px var(--cy-font-head); box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--cy-lime-300); }
.cy-voice__avatar img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.cy-voice figcaption strong { display: block; font-size: 15px; color: var(--cy-ink); }
.cy-voice figcaption small { display: block; font-size: 13px; color: var(--cy-muted); }
.cy-voice--featured { flex-direction: row; align-items: stretch; gap: 0; padding: 0; overflow: hidden; margin-bottom: 20px;
  background: var(--cy-green-700); border-color: var(--cy-green-700); color: #fff; }
.cy-voice--featured:hover { transform: none; }
.cy-voice__photo { width: 34%; max-width: 360px; min-height: 280px; object-fit: cover; flex: 0 0 auto; }
.cy-voice__main { flex: 1 1 auto; display: flex; flex-direction: column; gap: 18px; padding: 40px 44px;
  background: radial-gradient(120% 140% at 100% 0%, rgba(166,227,107,.16) 0%, rgba(166,227,107,0) 55%); }
.cy-voice--featured .cy-voice__mark { fill: var(--cy-lime-300); opacity: 1; }
.cy-voice--featured blockquote { font: 500 21px/1.55 var(--cy-font-head); color: #fff; -webkit-line-clamp: 8; letter-spacing: -.005em; }
.cy-voice--featured figcaption { border-top-color: rgba(255,255,255,.18); flex-wrap: wrap; column-gap: 14px; row-gap: 6px; }
.cy-voice--featured figcaption .cy-stars { flex-basis: 100%; }
.cy-voice--featured figcaption strong { color: #fff; font-size: 17px; }
.cy-voice--featured figcaption small { color: #C7D3CB; font-size: 14px; }
.cy-voice--featured figcaption small::before { content: "·"; margin-right: 10px; color: var(--cy-lime-300); }
.cy-voices__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 991px) {
  .cy-voices__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cy-voice__main { padding: 32px; }
  .cy-voice--featured blockquote { font-size: 19px; }
}
@media (max-width: 767px) {
  .cy-voices__score { align-items: flex-start; }
  .cy-voice--featured { flex-direction: column; }
  .cy-voice__photo { width: 100%; max-width: none; min-height: 0; height: 240px; object-position: center 25%; }
  .cy-voice__main { padding: 26px 22px; }
  .cy-voice--featured blockquote { font-size: 17.5px; }
  .cy-voices__grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 86%; overflow-x: auto;
    scroll-snap-type: x mandatory; margin: 0 -16px; padding: 4px 16px 18px; scroll-padding: 0 16px; }
  .cy-voices__grid .cy-voice { scroll-snap-align: start; }
  .cy-voice:hover { transform: none; }
}

/* 12. Inner pages — shared ------------------------------------------------ */
:root {
  --system_primery_color_05: rgba(22,103,43,.05); --system_primery_color_07: rgba(22,103,43,.07);
  --system_primery_color_10: rgba(22,103,43,.10); --system_primery_color_20: rgba(22,103,43,.20);
  --system_primery_color_30: rgba(22,103,43,.30); --system_primery_color_50: rgba(22,103,43,.50);
  --system_primery_color_60: #16672B; --system_primery_color_70: rgba(22,103,43,.70);
  --system_secendory_color_10: rgba(15,74,31,.10); --system_paragraph_color: #45524B;
}
/* the vendor icons use purple gradients — make every gradient CYSEC green */
body.cysec linearGradient stop { stop-color: #16672B !important; }

/* page header */
.cy-phead { position: relative; overflow: hidden; background: var(--cy-mint-50); border-bottom: 1px solid var(--cy-line); }
.cy-phead::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(circle, rgba(22,103,43,.13) 1.2px, transparent 1.4px) right top / 22px 22px;
  -webkit-mask-image: linear-gradient(90deg, transparent 45%, #000 85%); mask-image: linear-gradient(90deg, transparent 45%, #000 85%); }
.cy-phead::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(600px 280px at 92% -10%, rgba(166,227,107,.35), rgba(166,227,107,0) 70%); }
.cy-phead__inner { position: relative; z-index: 1; padding-top: 40px; padding-bottom: 48px; }
.cy-phead__title { margin: 0; max-width: 860px; font: 700 clamp(32px, 4vw, 48px)/1.08 var(--cy-font-head) !important; letter-spacing: -.025em; color: var(--cy-ink); }
.cy-phead__lead { margin: 14px 0 0; max-width: 720px; font-size: 18px; line-height: 1.6; color: #3B4842; }
.cy-phead .cy-eyebrow { margin-bottom: 10px; }
.cy-crumbs ol { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: 14px; color: var(--cy-muted); }
.cy-crumbs li + li::before { content: "/"; margin-right: 6px; color: #9AA59F; }
.cy-crumbs a { color: var(--cy-green-600) !important; font-weight: 600; }
.cy-crumbs a:hover { text-decoration: underline; }
.cy-crumbs [aria-current] { color: var(--cy-ink); font-weight: 500; }
@media (max-width: 767px) {
  .cy-phead__inner { padding-top: 24px; padding-bottom: 32px; }
  .cy-phead__lead { font-size: 16px; }
  .cy-crumbs ol { margin-bottom: 14px; }
}

/* page-builder pages under the CYSEC header: their own banners are replaced */
.cy-pb .breadcrumb_area, .cy-pb .__banner, .cy-pb--legal .cta_part { display: none !important; }
body.cysec .cy-pb { font-family: var(--cy-font-body); }

/* vendor banners still used elsewhere (fallback when custom_pages is off, or pages we don't wrap) */
body.cysec .breadcrumb_area { height: auto; min-height: 200px; background-image: none !important; background-color: var(--cy-green-800) !important;
  background: radial-gradient(520px 260px at 90% 0%, rgba(166,227,107,.22), rgba(166,227,107,0) 70%), var(--cy-green-800) !important; }
body.cysec .breadcrumb_area::before, body.cysec .breadcrumb_area::after { display: none !important; }
body.cysec .breadcrumb_area .breadcam_wrap h3 { font-family: var(--cy-font-head); font-size: clamp(28px, 3.6vw, 44px); line-height: 1.15; }
body.cysec .breadcrumb_area .breadcam_wrap span, body.cysec .breadcrumb_area .breadcam_wrap p { color: var(--cy-lime-300) !important; font-size: 15px; font-weight: 600; }

/* common controls */
body.cysec .theme_line_btn { border: 1px solid var(--cy-green-600) !important; color: var(--cy-green-600) !important; background: #fff !important;
  border-radius: 10px !important; font-weight: 600; }
body.cysec .theme_line_btn:hover { background: var(--cy-mint-50) !important; }
body.cysec .theme_btn.height_50, body.cysec .theme_line_btn.height_50 { display: flex !important; align-items: center; justify-content: center; }
body.cysec .nice-select, body.cysec .small_select { border: 1px solid var(--cy-line-2) !important; border-radius: 10px !important; height: 42px; line-height: 40px; font-size: 14px; }
body.cysec .nice-select:focus, body.cysec .nice-select.open { border-color: var(--cy-green-600) !important; box-shadow: var(--cy-focus); }
body.cysec .nice-select .list { border-radius: 10px; box-shadow: 0 12px 32px rgba(20,32,26,.14); }
body.cysec .nice-select .option.selected, body.cysec .nice-select .option:hover { background: var(--cy-mint-50) !important; color: var(--cy-green-700) !important; }
body.cysec .primary_input, body.cysec .primary_textarea, body.cysec input.form-control, body.cysec textarea.form-control {
  border: 1px solid var(--cy-line-2) !important; border-radius: 10px !important; }
body.cysec .primary_input:focus, body.cysec .primary_textarea:focus, body.cysec .form-control:focus { border-color: var(--cy-green-600) !important; box-shadow: var(--cy-focus) !important; outline: 0; }

/* pagination */
body.cysec .pagination { gap: 6px; flex-wrap: wrap; }
body.cysec .pagination .page-link, body.cysec .pagination a, body.cysec .pagination span.page-link {
  min-width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px !important;
  border: 1px solid var(--cy-line-2) !important; background: #fff !important; color: var(--cy-ink) !important; font-weight: 600; }
body.cysec .pagination .active .page-link, body.cysec .pagination .active a, body.cysec .pagination .page-item.active span {
  background: var(--cy-green-600) !important; border-color: var(--cy-green-600) !important; color: #fff !important; }
body.cysec .pagination a:hover { border-color: var(--cy-green-600) !important; color: var(--cy-green-600) !important; }

/* 13. Course lists (courses, free courses, category, search, classes, quizzes) */
body.cysec .courses_area { padding-top: 40px !important; padding-bottom: 80px; background: #fff; }
body.cysec .box_header { margin-bottom: 4px; padding-bottom: 14px; border-bottom: 1px solid var(--cy-line); }
body.cysec .box_header h5 { font: 400 15px var(--cy-font-body) !important; color: var(--cy-muted); }
body.cysec .box_header h5 strong { font-weight: 700; color: var(--cy-ink); }
@media (min-width: 992px) {
  body.cysec .course_category_chose .single_course_categry { border: 1px solid var(--cy-line); border-radius: 16px; padding: 22px 22px 6px; background: #fff; }
  body.cysec .course_category_chose .single_course_categry:not(:last-child) { margin-bottom: 16px; }
}
body.cysec .course_category_chose .single_course_categry h4 { font: 700 15px var(--cy-font-body) !important; color: var(--cy-ink); text-transform: none; margin-bottom: 14px; }
body.cysec .course_category_chose .primary_checkbox { margin-bottom: 12px; }
body.cysec .course_category_chose .primary_checkbox .label_name { color: var(--cy-ink-2) !important; font-size: 14px; }
body.cysec .course_category_chose .primary_checkbox:hover .label_name,
body.cysec .course_category_chose .primary_checkbox input[checked] + .checkmark + .label_name { color: var(--cy-green-600) !important; background: none !important; -webkit-text-fill-color: currentColor; }
body.cysec .primary_checkbox .checkmark:after, body.cysec .primary_checkbox2 .checkmark:after { border-radius: 5px !important; border: 1.5px solid #9AA59F !important; background: #fff !important; }
body.cysec .primary_checkbox input:checked ~ .checkmark:after, body.cysec .primary_checkbox2 input:checked ~ .checkmark:after {
  background: var(--cy-green-600) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat !important;
  border-color: var(--cy-green-600) !important; }
body.cysec .Check_sidebar { max-height: 260px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--cy-line-2) transparent; }

/* course card (vendor .course-item) — matches the home page cards */
body.cysec .course-item { border: 1px solid var(--cy-line) !important; border-radius: 18px; overflow: hidden; background: #fff; transition: box-shadow .2s ease, transform .2s ease; }
body.cysec .course-item:hover { box-shadow: 0 14px 36px rgba(20,32,26,.10); transform: translateY(-2px); }
body.cysec .course-item-img { height: auto !important; aspect-ratio: 16 / 9; border-bottom: 1px solid var(--cy-line) !important; background: var(--cy-mint-50); }
body.cysec .course-item-img img { object-position: center !important; }
body.cysec .course-item:hover img { transform: scale(1.03) !important; }
body.cysec .course-item-img .course-tag { top: 12px; left: 12px; right: auto; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.95) !important; box-shadow: 0 2px 8px rgba(20,32,26,.15); }
body.cysec .course-item-img .course-tag span { color: var(--cy-green-700) !important; font-size: 12px; font-weight: 700; }
body.cysec .course-item-info { padding: 18px; gap: 4px; }
body.cysec .course-item-info .title { font: 700 16.5px/1.4 var(--cy-font-body) !important; color: var(--cy-ink) !important; margin-bottom: 8px; }
body.cysec .course-item-info .title:hover { color: var(--cy-green-600) !important; }
body.cysec .course-item-info .meta { font-size: 13px; color: #5B6860; margin-bottom: 8px; }
body.cysec .course-item-info .meta a, body.cysec .course-item-info .meta span { color: #5B6860 !important; font-size: 13px; }
body.cysec .course-item-info-description { font-size: 14px; line-height: 1.55; color: var(--cy-muted); }
body.cysec .course-item-footer { margin-top: auto; padding-top: 14px; border-top: 1px solid #EEF2EF; align-items: center; }
body.cysec .course-item-footer .prise_tag, body.cysec .course-item-footer .price { font: 700 18px var(--cy-font-body); color: var(--cy-ink) !important; }
body.cysec .course-item-footer .cart_store { width: 40px; height: 40px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--cy-mint-50); }
body.cysec .course-item-footer .cart_store:hover { background: var(--cy-mint-100); }
body.cysec .Nocouse_wizged { border: 1px dashed var(--cy-line-2); border-radius: 18px; padding: 48px 24px; gap: 14px; }
body.cysec .Nocouse_wizged h1 { font: 600 18px var(--cy-font-body) !important; color: var(--cy-muted); margin: 0; }

/* 14. Course details ------------------------------------------------------ */
body.cysec .course__details_head { position: relative; padding: 56px 0 64px; background-image: none !important;
  background: radial-gradient(640px 320px at 85% -20%, rgba(166,227,107,.20), rgba(166,227,107,0) 70%), var(--cy-green-900) !important; }
body.cysec .course__details_head .location, body.cysec .course__details_head .location span { font-size: 14px; color: #A9B8AF !important; }
body.cysec .course__details_head .title { font: 700 clamp(30px, 3.6vw, 44px)/1.15 var(--cy-font-head) !important; letter-spacing: -.02em; margin: 10px 0 18px; }
body.cysec .course__details_head .category { margin-bottom: 22px; }
body.cysec .course__details_head .category_item a { text-decoration: none !important; padding: 5px 12px; border-radius: 999px; background: rgba(166,227,107,.14); color: var(--cy-lime-300) !important; font-size: 13px; font-weight: 600; }
body.cysec .course__details_head .meta_item { border-radius: 999px; padding: 8px 14px; background: rgba(255,255,255,.08); color: #E3EBE5; font-size: 14px; }
body.cysec .course__details_head .meta_item * { color: #E3EBE5 !important; }
body.cysec .course__details_head .meta_item.highlight { background: var(--cy-lime-300) !important; color: var(--cy-green-900) !important; padding: 5px 16px 5px 5px; }
body.cysec .course__details_head .meta_item.highlight * { color: var(--cy-green-900) !important; font-weight: 600; }
body.cysec .course__details { background: var(--cy-mint-50) !important; }
body.cysec .details_shadow { border: 1px solid var(--cy-line); border-radius: 20px; box-shadow: none !important; overflow: hidden; }
body.cysec .lms_tabmenu { width: 100% !important; padding: 0 8px !important; gap: 4px; border-radius: 0 !important; border-bottom: 1px solid var(--cy-line); background: #fff !important; }
body.cysec .lms_tabmenu.gradient_border::before, body.cysec .lms_tabmenu.gradient_border::after { display: none !important; }
body.cysec .lms_tabmenu li a { border-radius: 0 !important; padding: 16px 14px !important; font: 600 15px var(--cy-font-body) !important; color: var(--cy-muted) !important;
  -webkit-text-fill-color: currentColor; background: none !important; border-bottom: 3px solid transparent !important; }
body.cysec .lms_tabmenu li a.active, body.cysec .lms_tabmenu li a:hover { color: var(--cy-ink) !important; border-bottom-color: var(--cy-green-600) !important; }
body.cysec .course__details .tab-content h3, body.cysec .course__details .tab-content h4.font_32,
body.cysec .course__details .tab-content .font_32, body.cysec .course__details .tab-content .font_40 { font: 700 24px/1.25 var(--cy-font-head) !important; color: var(--cy-ink); }
body.cysec .course__details .tab-content p, body.cysec .course__details .tab-content li { font-size: 15.5px; line-height: 1.7; color: var(--cy-ink-2); }
body.cysec .course_sidebar { border-radius: 20px; overflow: hidden; box-shadow: 0 18px 50px -12px rgba(20,32,26,.22) !important; border: 1px solid var(--cy-line); }
body.cysec .course_sidebar .video_screen { aspect-ratio: 16 / 9; height: auto !important; background-size: cover !important; background-position: center !important; }
body.cysec .sidebar__widget { border: 0 !important; box-shadow: none !important; padding: 24px 26px 28px !important; }
body.cysec .sidebar__widget .sidebar__title h3 { font: 700 32px var(--cy-font-head) !important; color: var(--cy-ink) !important; }
body.cysec .sidebar__widget .course_includes li p { color: var(--cy-ink-2); font-size: 14.5px; }
body.cysec .sidebar__widget .course_includes li:not(:last-child) { margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid #EEF2EF; }
body.cysec .apply_coupon_section label, body.cysec .social_share_options_label { font-size: 14px; font-weight: 600; color: var(--cy-ink); }
body.cysec .apply_coupon_section input { border: 1px solid var(--cy-line-2) !important; border-radius: 10px !important; height: 46px; }
body.cysec .apply_coupon_section .applyCoupon { border-radius: 8px !important; background: var(--cy-green-600) !important; color: #fff !important; }
body.cysec .course_share_social_links .share_item { width: 38px; height: 38px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--cy-mint-50); color: var(--cy-green-700) !important; }
body.cysec .theme_according .card { border: 1px solid var(--cy-line) !important; border-radius: 12px !important; overflow: hidden; margin-bottom: 10px; }
body.cysec .theme_according .card-header { background: #F7FAF7 !important; }
body.cysec .more_course_section { background: #fff !important; padding: 56px 0 !important; }

/* 15. Legal pages (privacy, terms) --------------------------------------- */
.cy-legal { display: grid; grid-template-columns: 240px minmax(0, 760px); justify-content: center; gap: 56px; padding-top: 48px; padding-bottom: 88px; }
.cy-legal__toc[hidden] { display: none; }
.cy-legal__toc { position: sticky; top: 110px; align-self: start; font-size: 14px; }
.cy-legal__toc p { margin: 0 0 10px; font-weight: 700; color: var(--cy-ink); text-transform: uppercase; letter-spacing: .06em; font-size: 12px; }
.cy-legal__toc ol { list-style: none; margin: 0; padding: 0 0 0 12px; border-left: 2px solid var(--cy-line); display: grid; gap: 8px; max-height: calc(100vh - 160px); overflow: auto; }
.cy-legal__toc a { color: var(--cy-muted) !important; line-height: 1.4; display: block; }
.cy-legal__toc a:hover { color: var(--cy-green-600) !important; }
.cy-legal__body, .cy-legal__body p, .cy-legal__body li, .cy-legal__body span { font-family: var(--cy-font-body) !important; font-size: 16px !important; line-height: 1.75 !important; color: var(--cy-ink-2) !important; }
.cy-legal__body b, .cy-legal__body strong { font-weight: inherit !important; }
.cy-legal__body h2 { margin: 40px 0 12px; scroll-margin-top: 110px; font: 700 22px/1.3 var(--cy-font-head) !important; color: var(--cy-ink) !important; }
.cy-legal__body h2:first-child { margin-top: 0; }
.cy-legal__body p { margin: 0 0 14px; }
.cy-legal__body ul, .cy-legal__body ol { margin: 0 0 16px; padding-left: 22px; }
.cy-legal__body li p { margin: 0 0 6px; }
.cy-legal__body a { color: var(--cy-green-600) !important; text-decoration: underline; }
.cy-legal__body .container, .cy-legal__body .row, .cy-legal__body [class*="col-"] { max-width: none !important; width: auto !important; flex: none !important; margin: 0 !important; padding: 0 !important; display: block; }
.cy-legal__body .affiliate_bradcam_area { padding: 0 !important; background: none !important; }
@media (max-width: 991px) {
  .cy-legal { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 28px; }
  .cy-legal__toc { position: static; padding: 16px 18px; border: 1px solid var(--cy-line); border-radius: 14px; background: var(--cy-mint-50); }
  .cy-legal__toc ol { max-height: none; }
}

/* 16. About page ------------------------------------------------------------ */
.cy-prose p { margin: 16px 0 0; font-size: 17px; line-height: 1.7; color: var(--cy-muted); }
.cy-about__intro .cy-hero__actions { margin-top: 28px; }
.cy-collage { position: relative; padding: 0 0 48px 0; }
.cy-collage__main { width: 88% !important; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 24px; }
.cy-collage__inset { position: absolute; right: 0; bottom: 0; width: 46% !important; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 20px; border: 6px solid #fff; box-shadow: 0 18px 40px rgba(20,32,26,.18); }
.cy-section--tight-b { padding-bottom: 0; }
.cy-mv { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; }
.cy-mv__card { padding: 36px; border-radius: 24px; background: var(--cy-mint-50); border: 1px solid var(--cy-line); }
.cy-mv__card--dark { background: var(--cy-green-700); border-color: var(--cy-green-700); }
.cy-mv__text { margin: 0; font: 600 22px/1.45 var(--cy-font-head); color: var(--cy-ink); letter-spacing: -.01em; }
.cy-mv__card--dark .cy-mv__text { color: #fff; }
.cy-values { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.cy-value { padding: 28px; border: 1px solid var(--cy-line); border-radius: 20px; background: #fff; }
.cy-value__icon { width: 52px; height: 52px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: var(--cy-mint-100); color: var(--cy-green-600); margin-bottom: 18px; }
.cy-value__title { margin: 0 0 8px; font: 700 20px/1.3 var(--cy-font-head) !important; color: var(--cy-ink); }
.cy-value p { margin: 0; font-size: 15.5px; line-height: 1.65; color: var(--cy-muted); }
@media (max-width: 767px) {
  .cy-mv__card { padding: 26px; }
  .cy-mv__text { font-size: 19px; }
  .cy-collage { padding-bottom: 36px; }
}

/* 17. Contact page ---------------------------------------------------------- */
.cy-section--page { padding: 56px 0 88px; }
.cy-contact__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px; align-items: start; }
.cy-contact__info { display: grid; gap: 14px; }
.cy-infocard { display: flex; gap: 16px; padding: 22px; border: 1px solid var(--cy-line); border-radius: 18px; background: #fff; }
.cy-infocard__icon { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--cy-mint-100); color: var(--cy-green-600); }
.cy-infocard__title { margin: 0 0 6px; font: 700 16px var(--cy-font-body) !important; color: var(--cy-ink); }
.cy-infocard a, .cy-infocard p { display: block; margin: 0 0 4px; font-size: 15.5px; line-height: 1.55; color: var(--cy-ink-2) !important; overflow-wrap: anywhere; }
.cy-infocard a:not(.cy-link):hover { color: var(--cy-green-600) !important; }
.cy-infocard .cy-link { margin-top: 6px; font-size: 14px; }
.cy-quickhelp { padding: 22px; border-radius: 18px; background: var(--cy-mint-50); }
.cy-quickhelp ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.cy-quickhelp a { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; font-size: 15px; font-weight: 600; color: var(--cy-green-700) !important; border-bottom: 1px solid var(--cy-line); }
.cy-quickhelp li:last-child a { border-bottom: 0; }
.cy-quickhelp a::after { content: "→"; color: var(--cy-green-600); }
.cy-formcard { padding: 36px; border: 1px solid var(--cy-line); border-radius: 24px; background: #fff; box-shadow: 0 18px 50px -24px rgba(20,32,26,.25); }
.cy-formcard .cy-h3 { margin-bottom: 4px; }
.cy-formcard__help { margin: 0 0 22px; font-size: 14px; color: var(--cy-muted); }
.cy-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cy-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.cy-field label { font-size: 14px; font-weight: 600; color: var(--cy-ink); margin: 0; }
.cy-field input, .cy-field textarea, .cy-field select { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--cy-line-2); border-radius: 12px; background: #fff;
  font: 400 16px/1.4 var(--cy-font-body); color: var(--cy-ink); appearance: none; -webkit-appearance: none; }
.cy-field textarea { min-height: 150px; resize: vertical; }
.cy-field select { padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314201A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") right 14px center / 18px no-repeat; }
.cy-field input:focus, .cy-field textarea:focus, .cy-field select:focus { outline: none; border-color: var(--cy-green-600); box-shadow: var(--cy-focus); }
.cy-field [aria-invalid="true"] { border-color: #C0392B; }
.cy-field__error { font-size: 13.5px; color: #B42318; }
.cy-btn--block { width: 100%; }
@media (max-width: 991px) { .cy-contact__grid { grid-template-columns: 1fr; } .cy-contact__info { order: 2; } }
@media (max-width: 575px) { .cy-form__row { grid-template-columns: 1fr; gap: 0; } .cy-formcard { padding: 24px 18px; } .cy-section--page { padding: 32px 0 56px; } }

/* 18. Certificate verification --------------------------------------------- */
.cy-verify { padding: 56px 0 88px; }
.cy-verify__card { max-width: 620px; margin: 0 auto; padding: 40px; text-align: center; border: 1px solid var(--cy-line); border-radius: 24px; background: #fff; box-shadow: 0 18px 50px -24px rgba(20,32,26,.25); }
.cy-verify__icon { width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 18px; display: flex; align-items: center; justify-content: center; background: var(--cy-mint-100); color: var(--cy-green-600); }
.cy-verify__help { margin: 0 0 24px; font-size: 15px; color: var(--cy-muted); }
.cy-verify__form { display: flex; gap: 8px; padding: 6px; border: 1px solid var(--cy-line-2); border-radius: 14px; background: #fff; }
.cy-verify__form:focus-within { border-color: var(--cy-green-600); box-shadow: var(--cy-focus); }
.cy-verify__form input { flex: 1 1 auto; min-width: 0; border: 0 !important; outline: 0; padding: 0 12px; font: 400 16px var(--cy-font-body); color: var(--cy-ink); background: transparent; }
.cy-verify__result { max-width: 900px; margin: 28px auto 0; }
.cy-verify__result #certificateImg:not(.d-none) { border-radius: 12px; border: 1px solid var(--cy-line); }
.cy-verify__result #certificateMsg { font: 600 17px var(--cy-font-body) !important; }
@media (max-width: 575px) { .cy-verify__card { padding: 28px 18px; } }

/* 19. Page hero with photo (tutor finder, affiliate) ----------------------- */
.cy-phero { position: relative; overflow: hidden; background: var(--cy-mint-50); border-bottom: 1px solid var(--cy-line); }
.cy-phero::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(640px 320px at 100% 0%, rgba(166,227,107,.35), rgba(166,227,107,0) 70%); }
.cy-phero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; align-items: center; padding-top: 40px; padding-bottom: 56px; }
.cy-phero__copy .cy-hero__actions { margin-top: 28px; }
.cy-phero__media { position: relative; padding: 12px 0 24px; }
.cy-phero__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 28px; box-shadow: 0 24px 60px rgba(20,32,26,.18); }
.cy-phero__media .cy-float { left: -18px; bottom: 0; }
.cy-phero__media .cy-float strong { display: block; }
@media (max-width: 991px) {
  .cy-phero__inner { grid-template-columns: 1fr; gap: 28px; padding-top: 24px; padding-bottom: 40px; }
  .cy-phero__media .cy-float { left: 10px; }
}

/* 20. Affiliate page (page-builder sections, restyled; texts stay editable in the builder) */
.cy-pb--affiliate [data-aoraeditor-title="Affiliate Title"] { display: none !important; }
.cy-pb--affiliate .lms_section { padding-top: 72px !important; padding-bottom: 0; background: none !important; }
.cy-pb--affiliate .lms_section::before, .cy-pb--affiliate .lms_section::after,
.cy-pb--affiliate .commision_box > div:first-child:not(.commision_left) { display: none !important; }
.cy-pb--affiliate .commision_box { border: 1px solid var(--cy-line) !important; border-radius: 24px; overflow: hidden; box-shadow: 0 18px 50px -24px rgba(20,32,26,.25); background: #fff; }
.cy-pb--affiliate .commision_left { background: var(--cy-green-700) !important; color: #fff; }
.cy-pb--affiliate .commision_left h4, .cy-pb--affiliate .commision_left .rate_text, .cy-pb--affiliate .commision_left .Sale_text,
.cy-pb--affiliate .commision_left .discription_text, .cy-pb--affiliate .commision_left .discription_text * { color: #DDEFD9 !important; }
.cy-pb--affiliate .commision_left h3 { color: var(--cy-lime-300) !important; font: 700 54px/1.05 var(--cy-font-head) !important; }
.cy-pb--affiliate .commision_left .theme_btn { background: var(--cy-lime-300) !important; color: var(--cy-green-900) !important; }
.cy-pb--affiliate .commision_payment_list h4, .cy-pb--affiliate .comission_payment_text h4 { font: 700 18px var(--cy-font-head) !important; color: var(--cy-ink) !important; }
.cy-pb--affiliate .comission_payment_text p { color: var(--cy-muted) !important; }
.cy-pb--affiliate .subheading_text { display: inline-block; font: 700 13px/1.3 var(--cy-font-body) !important; letter-spacing: .06em; text-transform: uppercase; color: var(--cy-green-600) !important; margin-bottom: 10px; }
.cy-pb--affiliate .section__title4 h3 { font: 700 clamp(26px, 3vw, 38px)/1.15 var(--cy-font-head) !important; letter-spacing: -.02em; color: var(--cy-ink) !important; }
/* How it works: heading + text on the left, photo on the right */
.cy-pb--affiliate .work_title_area { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 48px; row-gap: 12px; align-items: start; margin-bottom: 40px; }
.cy-pb--affiliate .work_title_area .section__title4 { grid-column: 1; grid-row: 1; margin: 0 !important; max-width: none !important; }
.cy-pb--affiliate .work_title_area .work_title_desc { grid-column: 1; grid-row: 2; max-width: none !important; margin: 0 !important; }
.cy-pb--affiliate .work_title_area .work_title_desc p, .cy-pb--affiliate .work_title_area .work_title_desc span { font-size: 17px !important; line-height: 1.7 !important; color: var(--cy-muted) !important; }
.cy-pb--affiliate .work_title_area::after { content: ""; grid-column: 2; grid-row: 1 / span 2; align-self: stretch; min-height: 300px; border-radius: 24px; background: var(--cy-photo-2) center / cover no-repeat; box-shadow: 0 18px 44px rgba(20,32,26,.16); }
.cy-pb--affiliate .process_widget_box { height: calc(100% - 24px); padding: 30px 24px !important; border: 1px solid var(--cy-line) !important; border-radius: 20px !important; background: #fff !important; box-shadow: none !important; text-align: left !important; }
.cy-pb--affiliate .process_widget_box .icon { width: 56px; height: 56px; margin: 0 0 16px !important; border-radius: 14px; background: var(--cy-mint-100) !important; display: flex; align-items: center; justify-content: center; }
.cy-pb--affiliate .process_widget_box .icon img { width: 26px; height: 26px; filter: hue-rotate(250deg) saturate(1.2); }
.cy-pb--affiliate .process_widget_box h4, .cy-pb--affiliate .process_widget_box h4 * { font: 700 19px var(--cy-font-head) !important; color: var(--cy-ink) !important; }
.cy-pb--affiliate .process_widget_box p, .cy-pb--affiliate .process_widget_box p * { font-size: 15px !important; line-height: 1.6 !important; color: var(--cy-muted) !important; }
/* Rules: mint band */
.cy-pb--affiliate [data-aoraeditor-title="Affiliate Rules & Requirement Section"] { margin-top: 72px; background: var(--cy-mint-50); }
.cy-pb--affiliate [data-aoraeditor-title="Affiliate Rules & Requirement Section"] .lms_section { padding-bottom: 72px; }
/* Why partner with us: photo band behind the heading */
.cy-pb--affiliate [data-aoraeditor-title="Affiliate Benefits Section"] .section__title4 { position: relative; z-index: 1; margin-bottom: 0 !important; padding: 72px 32px 120px; border-radius: 28px; overflow: hidden;
  background: linear-gradient(180deg, rgba(15,26,20,.55), rgba(15,26,20,.85)), var(--cy-photo-3) center / cover no-repeat; }
.cy-pb--affiliate [data-aoraeditor-title="Affiliate Benefits Section"] .section__title4 h3, .cy-pb--affiliate [data-aoraeditor-title="Affiliate Benefits Section"] .subheading_text { color: #fff !important; }
.cy-pb--affiliate [data-aoraeditor-title="Affiliate Benefits Section"] .subheading_text { color: var(--cy-lime-300) !important; }
.cy-pb--affiliate [data-aoraeditor-title="Affiliate Benefits Section"] .col-xl-6 { flex: 0 0 100%; max-width: 1060px; }
.cy-pb--affiliate .Affiliate_benefit_boxs { position: relative; z-index: 2; margin-top: -80px; }
.cy-pb--affiliate .Affiliate_benefit_boxs::before, .cy-pb--affiliate .Affiliate_benefit_boxs::after { display: none !important; }
.cy-pb--affiliate .Affiliate_benefit_box { height: calc(100% - 24px); padding: 26px !important; border: 1px solid var(--cy-line) !important; border-radius: 20px !important; background: #fff !important; box-shadow: 0 12px 32px -16px rgba(20,32,26,.25) !important; }
.cy-pb--affiliate .Affiliate_benefit_box img { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--cy-mint-100); margin-bottom: 14px; filter: hue-rotate(250deg) saturate(1.2); }
.cy-pb--affiliate .Affiliate_benefit_box h4 { font: 700 18px var(--cy-font-head) !important; color: var(--cy-ink) !important; }
.cy-pb--affiliate .Affiliate_benefit_box p, .cy-pb--affiliate .Affiliate_benefit_box p * { font-size: 15px !important; line-height: 1.6 !important; color: var(--cy-muted) !important; }
.cy-pb--affiliate [data-aoraeditor-title="Affiliate Frequently Asked Questions Section"] .lms_section { padding-bottom: 88px; }
.cy-pb--affiliate .accordion .card, .cy-pb--affiliate .theme_according .card { border: 1px solid var(--cy-line) !important; border-radius: 14px !important; margin-bottom: 10px; overflow: hidden; }
@media (max-width: 991px) {
  .cy-pb--affiliate .work_title_area { grid-template-columns: 1fr; }
  .cy-pb--affiliate .work_title_area::after { grid-column: 1; grid-row: 3; min-height: 220px; }
  .cy-pb--affiliate .lms_section { padding-top: 48px !important; }
  .cy-pb--affiliate [data-aoraeditor-title="Affiliate Benefits Section"] .section__title4 { padding: 48px 20px 100px; }
}

/* 21. Tutor finder list ------------------------------------------------------ */
body.cysec .tutor_listing { padding: 48px 0 88px !important; }
body.cysec .tutor_listing_title { justify-content: space-between; align-items: center; padding-bottom: 14px; margin-bottom: 20px; border-bottom: 1px solid var(--cy-line); }
body.cysec .tutor_listing_title p { margin: 0; font-size: 15px; color: var(--cy-muted); }
body.cysec .tutor_listing_item { display: flex; gap: 24px; padding: 24px !important; margin-bottom: 16px; border: 1px solid var(--cy-line) !important; border-radius: 20px; background: #fff; box-shadow: none !important; transition: box-shadow .2s; }
body.cysec .tutor_listing_item:hover { box-shadow: 0 14px 36px rgba(20,32,26,.10) !important; }
body.cysec .tutor_listing_item_profile_img, body.cysec .tutor_listing_item_profile_img img { width: 112px !important; height: 112px !important; border-radius: 50% !important; object-fit: cover; }
body.cysec .tutor_listing_item_profile_img { background: var(--cy-mint-100); box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--cy-lime-300); overflow: hidden; }
body.cysec .tutor_listing_item_right { flex: 1 1 auto; display: flex; gap: 24px; justify-content: space-between; flex-wrap: wrap; }
body.cysec .tutor_listing_item_info_profile h4, body.cysec .tutor_listing_item_info_profile h4 a { font: 700 20px var(--cy-font-head) !important; color: var(--cy-ink) !important; }
body.cysec .tutor_listing_item_info_profile ul { display: flex; gap: 14px; padding: 0; margin: 6px 0; list-style: none; font-size: 14px; color: var(--cy-muted); }
body.cysec .tutor_listing_item_info p { font-size: 15px; line-height: 1.6; color: var(--cy-muted); }
body.cysec .tutor_listing_item_info_price h3 { font: 700 24px var(--cy-font-head) !important; color: var(--cy-ink) !important; }
body.cysec .tutor_listing_item_info_price .theme_btn { display: block; margin: 8px 0 0 !important; text-align: center; }
body.cysec .tutor_listing_item_info_price .theme_btn.bg-transparent { background: #fff !important; color: var(--cy-green-600) !important; border: 1px solid var(--cy-green-600) !important; }
@media (max-width: 767px) {
  body.cysec .tutor_listing_item { flex-direction: column; align-items: flex-start; }
  body.cysec .tutor_listing_item_info_price { text-align: left !important; width: 100%; }
}
/* course details: the vendor makes the tab bar sticky, but on this theme the body is the scroll
   container, so it slid down over the text. Keep it in place. */
body.cysec .course_tabs { position: relative !important; top: auto !important; margin-bottom: 24px !important; }
/* affiliate: the commission box was pulled up over the (now replaced) title section */
.cy-pb--affiliate .commision_box { margin-top: 0 !important; }
/* affiliate: vendor demo icons (tiny pink/purple dots) → numbered steps and CYSEC tick icons */
.cy-pb--affiliate .process_widget_box .icon img, .cy-pb--affiliate .Affiliate_benefit_box > img { display: none !important; }
.cy-pb--affiliate [data-aoraeditor-title="Affiliate How Does Work Section"] .col-xl-10 > .row { counter-reset: cystep; }
.cy-pb--affiliate .process_widget_box { counter-increment: cystep; }
.cy-pb--affiliate .process_widget_box .icon { background: var(--cy-green-600) !important; }
.cy-pb--affiliate .process_widget_box .icon::before { content: counter(cystep); font: 700 22px/1 var(--cy-font-head); color: #fff; }
.cy-pb--affiliate .Affiliate_benefit_box::before { content: ""; display: block; width: 48px; height: 48px; margin-bottom: 16px; border-radius: 14px;
  background: var(--cy-mint-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316672B' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 22px no-repeat; }
/* tutor list: hide the flag when the tutor has no country set (broken image) */
body.cysec .tutor_listing_item_info_profile h4 img[src$="/.svg"] { display: none; }
/* certificate verification: the page builder stores its own copy of the form, so restyle that copy */
.cy-pb--certificate-verification .verify_certificate_image { display: none !important; }
.cy-pb--certificate-verification .verify_certificate_section { padding: 56px 0 88px !important; }
.cy-pb--certificate-verification .verify_certificate_section > .row > .col-md-6 { flex: 0 0 100%; max-width: 620px; padding: 40px; border: 1px solid var(--cy-line);
  border-radius: 24px; background: #fff; box-shadow: 0 18px 50px -24px rgba(20,32,26,.25); }
.cy-pb--certificate-verification .verify_certificate_section > .row > .col-md-6::before { content: ""; width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 18px;
  background: var(--cy-mint-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316672B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpolyline points='9 12 11 14 15 10'/%3E%3C/svg%3E") center / 28px no-repeat; }
.cy-pb--certificate-verification .verify_certificate_title { font: 700 26px/1.2 var(--cy-font-head) !important; color: var(--cy-ink) !important; margin: 0 0 20px !important; background: none !important; -webkit-text-fill-color: currentColor; }
.cy-pb--certificate-verification .verify_certificate_form { width: 100%; display: flex; gap: 8px; padding: 6px; border: 1px solid var(--cy-line-2); border-radius: 14px; background: #fff; }
.cy-pb--certificate-verification .verify_certificate_form:focus-within { border-color: var(--cy-green-600); box-shadow: var(--cy-focus); }
.cy-pb--certificate-verification .verify_certificate_input { flex: 1 1 auto; min-width: 0; height: 46px; border: 0 !important; outline: 0; padding: 0 12px; font: 400 16px var(--cy-font-body); background: transparent !important; box-shadow: none !important; }
.cy-pb--certificate-verification .verify_certificate_search { height: 46px; padding: 0 22px; border: 0; border-radius: 10px; background: var(--cy-green-600) !important; color: #fff !important; font: 700 15px var(--cy-font-body); }
.cy-pb--certificate-verification .verify_certificate_search:hover { background: var(--cy-green-700) !important; }

/* 22. Bundles list ----------------------------------------------------------- */
.cy-bundles { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; align-items: start; }
.cy-bundle { display: flex; flex-direction: column; border: 1px solid var(--cy-line); border-radius: 20px; overflow: hidden; background: #fff; transition: box-shadow .2s, transform .2s; }
.cy-bundle:hover { box-shadow: 0 14px 36px rgba(20,32,26,.10); transform: translateY(-2px); }
.cy-bundle__media { position: relative; display: block; aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--cy-green-700), var(--cy-green-900)); }
.cy-bundle__media img { width: 100%; height: 100%; object-fit: cover; }
.cy-bundle__count, .cy-bundle__save { position: absolute; top: 12px; padding: 5px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 700; }
.cy-bundle__count { left: 12px; background: rgba(255,255,255,.95); color: var(--cy-green-700); }
.cy-bundle__save { right: 12px; background: var(--cy-lime-300); color: var(--cy-green-900); }
.cy-bundle__body { display: flex; flex-direction: column; gap: 12px; padding: 20px; flex: 1 1 auto; }
.cy-bundle__title { margin: 0; font: 700 19px/1.3 var(--cy-font-head) !important; }
.cy-bundle__title a { color: var(--cy-ink) !important; }
.cy-bundle__title a:hover { color: var(--cy-green-600) !important; }
.cy-bundle__rating, .cy-bundle__empty { margin: 0; font-size: 14px; color: var(--cy-muted); }
.cy-bundle__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cy-bundle__list li { position: relative; padding-left: 26px; font-size: 14.5px; line-height: 1.45; color: var(--cy-ink-2); }
.cy-bundle__list li::before { content: ""; position: absolute; left: 0; top: 2px; width: 17px; height: 17px; border-radius: 50%;
  background: var(--cy-mint-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316672B' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 10px no-repeat; }
.cy-bundle__extra { display: none; }
.cy-bundle.is-open .cy-bundle__extra { display: block; }
.cy-bundle__more { align-self: flex-start; border: 0; background: none; padding: 0; font: 600 14px var(--cy-font-body); color: var(--cy-green-600); cursor: pointer; }
.cy-bundle__more:hover { text-decoration: underline; }
.cy-bundle__foot { margin-top: auto; padding-top: 16px; border-top: 1px solid #EEF2EF; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.cy-bundle__price { margin: 0; display: flex; align-items: baseline; gap: 8px; }
.cy-bundle__price strong { font: 700 24px var(--cy-font-head); color: var(--cy-ink); }
.cy-bundle__price del { font-size: 15px; color: #5B6860; }
.cy-bundles__cats { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--cy-line); }
.cy-chip span { color: var(--cy-muted); font-weight: 400; }
.cy-emptystate { max-width: 520px; margin: 0 auto; padding: 48px 24px; text-align: center; border: 1px dashed var(--cy-line-2); border-radius: 20px; }
.cy-emptystate p { margin: 0 0 20px; color: var(--cy-muted); }

/* 23. Sign in / sign up — new layout (auth/login, auth/register, login_wrapper_right) ------------ */
body.cysec-auth .login_wrapper { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; align-items: stretch; height: auto; min-height: 100vh; }
body.cysec-auth .login_wrapper .login_wrapper_left, body.cysec-auth .login_wrapper .login_wrapper_right { grid-column: auto !important; }
body.cysec-auth .login_wrapper_left { display: flex; flex-direction: column; padding: 28px 40px 40px; min-height: 100vh; }
body.cysec-auth .cy-auth__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; max-width: 480px; margin: 0 auto; }
body.cysec-auth .cy-auth__logo img { height: 34px; width: auto; display: block; }
body.cysec-auth .cy-auth__back { font-size: 14px; font-weight: 600; color: var(--cy-muted) !important; }
body.cysec-auth .cy-auth__back:hover { color: var(--cy-green-600) !important; }
body.cysec-auth .login_wrapper_content { width: 100%; max-width: 480px; margin: auto; padding: 40px 0 16px; }
body.cysec-auth .cysec-auth-title { font: 700 34px/1.12 var(--cy-font-head) !important; letter-spacing: -.02em; }
body.cysec-auth .cysec-auth-sub { font-size: 16px; margin-bottom: 26px; }
body.cysec-auth .cy-auth__social { display: grid; gap: 10px; }
body.cysec-auth .cy-auth__socialbtn { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; border: 1px solid var(--cy-line-2); border-radius: 12px;
  background: #fff; color: var(--cy-ink) !important; font: 600 15.5px var(--cy-font-body); transition: border-color .15s, background .15s; }
body.cysec-auth .cy-auth__socialbtn:hover { border-color: var(--cy-green-600); background: var(--cy-mint-50); }
body.cysec-auth .login_text { margin: 20px 0 18px; }
body.cysec-auth .cy-field label, body.cysec-auth .cy-seg legend { font-size: 14px; font-weight: 600; color: var(--cy-ink); margin: 0; float: none; width: auto; padding: 0; }
body.cysec-auth .cy-field__opt { font-weight: 400; color: var(--cy-muted); }
body.cysec-auth .cy-field__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
body.cysec-auth .cy-field__row .cy-link { font-size: 14px; }
body.cysec-auth .cy-field__hint { margin: -10px 0 18px; font-size: 13px; color: var(--cy-muted); }
body.cysec-auth .cy-pass { position: relative; }
body.cysec-auth .cy-pass input { padding-right: 48px; }
body.cysec-auth .cy-pass__toggle { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 42px; height: 42px; border: 0; border-radius: 10px; background: none; color: var(--cy-muted);
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
body.cysec-auth .cy-pass__toggle:hover, body.cysec-auth .cy-pass__toggle[aria-pressed="true"] { color: var(--cy-green-600); background: var(--cy-mint-50); }
body.cysec-auth .cy-form__row .cy-field { min-width: 0; }
body.cysec-auth .cy-checks { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0 0 22px; }
body.cysec-auth .cy-check { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--cy-ink-2); cursor: pointer; }
body.cysec-auth .cy-check input { flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--cy-green-600); }
body.cysec-auth .cy-check a { color: var(--cy-green-600) !important; font-weight: 600; text-decoration: underline; }
body.cysec-auth .cy-check--terms { margin: 4px 0 22px; }
body.cysec-auth .cy-seg { border: 0; padding: 0; min-width: 0; }
body.cysec-auth .cy-seg__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
body.cysec-auth .cy-seg__opt { margin: 0; cursor: pointer; }
body.cysec-auth .cy-seg__opt input { position: absolute; opacity: 0; pointer-events: none; }
body.cysec-auth .cy-seg__opt span { display: flex; align-items: center; justify-content: center; min-height: 48px; border: 1px solid var(--cy-line-2); border-radius: 12px; font-size: 15px; font-weight: 600; color: var(--cy-ink-2); }
body.cysec-auth .cy-seg__opt input:checked + span { border-color: var(--cy-green-600); background: var(--cy-mint-50); color: var(--cy-green-700); box-shadow: inset 0 0 0 1px var(--cy-green-600); }
body.cysec-auth .cy-seg__opt input:focus-visible + span { box-shadow: var(--cy-focus); }
body.cysec-auth .cy-btn[disabled] { opacity: .5; cursor: not-allowed; }
body.cysec-auth .cy-btn { text-decoration: none; }
body.cysec-auth .cy-auth__switch { margin: 22px 0 0; text-align: center; font-size: 15px; color: var(--cy-ink-2); }
body.cysec-auth .cy-auth__switch a { color: var(--cy-green-600) !important; font-weight: 700; }
body.cysec-auth .gj-datepicker { width: 100% !important; }
body.cysec-auth .gj-datepicker [role="right-icon"] { right: 12px; top: 13px; }

/* photo panel */
body.cysec-auth .cy-authside { position: sticky; top: 0; height: 100vh; min-height: 0 !important; padding: 0 !important; display: block !important; overflow: hidden;
  background-color: var(--cy-green-900) !important; background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important; }
body.cysec-auth .cy-authside::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,26,20,.55) 0%, rgba(15,26,20,.15) 35%, rgba(15,26,20,.92) 100%); }
body.cysec-auth .cy-authside__inner { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: 36px 48px 52px; }
body.cysec-auth .cy-authside__logo img { height: 34px; width: auto; }
body.cysec-auth .cy-authside__copy { max-width: 520px; }
body.cysec-auth .cy-authside__title { margin: 0 0 22px; font: 700 clamp(28px, 2.8vw, 40px)/1.12 var(--cy-font-head) !important; letter-spacing: -.02em; color: #fff !important; }
body.cysec-auth .cy-authside__points { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
body.cysec-auth .cy-authside__points li { position: relative; padding-left: 32px; font-size: 16.5px; line-height: 1.45; color: #EEF3EF; }
body.cysec-auth .cy-authside__points li::before { content: ""; position: absolute; left: 0; top: 1px; width: 21px; height: 21px; border-radius: 50%;
  background: var(--cy-lime-300) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314201A' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat; }
@media (max-width: 991px) {
  body.cysec-auth .login_wrapper { grid-template-columns: minmax(0, 1fr) !important; }
  body.cysec-auth .cy-authside { display: none !important; }
  body.cysec-auth .login_wrapper_left { padding: 20px 18px 32px; }
  body.cysec-auth .login_wrapper_content { margin: 0 auto; padding-top: 32px; }
  body.cysec-auth .cysec-auth-title { font-size: 28px !important; }
}
.cy-field input, .cy-field textarea, .cy-field select, .cy-seg__opt span { box-sizing: border-box; }
body.cysec-auth .cy-auth__back, body.cysec-auth .cy-auth__socialbtn, body.cysec-auth .cy-auth__switch a, body.cysec-auth .cy-link { text-decoration: none; }
body.cysec-auth .cy-auth__switch a:hover, body.cysec-auth .cy-link:hover { text-decoration: underline; }
