/* RR Academy final visual refinement layer.
   Loaded last so shared components remain consistent across every public page. */

:root {
  --rr-ink: #081225;
  --rr-navy: #102a56;
  --rr-blue: #1e40af;
  --rr-accent: #dcfd7d;
  --rr-paper: #f7f8f5;
  --rr-surface: #ffffff;
  --rr-text: #273449;
  --rr-muted: #667085;
  --rr-line: rgba(16, 42, 86, 0.12);
  --rr-line-dark: rgba(255, 255, 255, 0.13);
  --rr-shadow-sm: 0 8px 24px rgba(8, 18, 37, 0.07);
  --rr-shadow-md: 0 18px 50px rgba(8, 18, 37, 0.11);
  --rr-shadow-lg: 0 28px 70px rgba(8, 18, 37, 0.16);
  --rr-radius-sm: 6px;
  --rr-radius-md: 8px;
  --rr-radius-lg: 8px;
  --rr-transition: 180ms ease;
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--rr-text);
  background: var(--rr-paper);
  font-family: "Plus Jakarta Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--rr-ink);
  font-family: "Outfit", sans-serif;
  letter-spacing: 0;
  text-wrap: balance;
}

p,
li {
  letter-spacing: 0;
}

p {
  line-height: 1.72;
}

a,
button,
input,
select,
textarea {
  transition: color var(--rr-transition), background-color var(--rr-transition),
    border-color var(--rr-transition), box-shadow var(--rr-transition),
    transform var(--rr-transition);
}

img {
  image-rendering: auto;
}

.container {
  width: min(100% - 32px, 1280px);
  max-width: 1280px;
  padding-left: 0;
  padding-right: 0;
}

/* Header and navigation */
.header {
  border-bottom: 1px solid transparent;
}

.header.is-scrolled {
  background: rgba(8, 18, 37, 0.94);
  border-bottom-color: var(--rr-line-dark);
  box-shadow: 0 12px 36px rgba(8, 18, 37, 0.14);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.navbar-brand img {
  width: auto;
  max-height: 54px;
}

.navbar-nav .nav-item a {
  letter-spacing: 0;
  font-weight: 600;
}

.navbar-nav .nav-item a:focus-visible,
.navbar-toggler:focus-visible,
.primary_btn:focus-visible,
.secondary_btn:focus-visible,
.submit_now:focus-visible,
.back_home:focus-visible {
  outline: 3px solid rgba(220, 253, 125, 0.72);
  outline-offset: 3px;
}

/* Heroes */
.home_banner_outer,
.sub_banner {
  background-color: var(--rr-ink);
}

.banner2-con,
.sub_banner .sub_banner_con {
  isolation: isolate;
  overflow: hidden;
}

.sub_banner .sub_banner_con::before,
.banner2-con::before,
.sub_banner::before {
  background: linear-gradient(110deg, rgba(8, 18, 37, 0.93) 0%, rgba(16, 42, 86, 0.76) 58%, rgba(30, 64, 175, 0.36) 100%);
}

.sub_banner .faq_banner_con::before,
.sub_banner .team_banner_con::before,
.sub_banner .course_banner_con::before,
.sub_banner .about_banner_con::before {
  background: linear-gradient(110deg, rgba(8, 18, 37, 0.93) 0%, rgba(16, 42, 86, 0.76) 58%, rgba(30, 64, 175, 0.36) 100%);
}

.banner2-con .banner_content,
.sub_banner_content {
  position: relative;
  z-index: 2;
}

.banner-kicker,
.sub_banner_content h6 {
  color: var(--rr-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.hero-title,
.sub_banner_content h1 {
  color: #ffffff;
  letter-spacing: 0;
  text-shadow: 0 8px 28px rgba(0, 0, 0, 0.2);
}

.hero-subtitle,
.sub_banner_content > p {
  color: rgba(255, 255, 255, 0.84) !important;
  line-height: 1.7;
}

.sub_banner_content .box {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(8, 18, 37, 0.34);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.banner2-con .banner_wrapper img,
.sub_banner img {
  object-position: center;
}

/* Buttons */
.primary_btn,
.secondary_btn,
.submit_now,
.back_home,
.package-cta,
.why-btn {
  min-height: 48px;
  border-radius: var(--rr-radius-sm);
  font-weight: 700;
  letter-spacing: 0;
  box-shadow: none;
}

.primary_btn,
.submit_now {
  border: 1px solid var(--rr-accent);
  background: var(--rr-accent);
  color: var(--rr-ink);
}

.primary_btn:hover,
.submit_now:hover {
  border-color: #ffffff;
  background: #ffffff;
  color: var(--rr-ink);
  box-shadow: 0 12px 30px rgba(8, 18, 37, 0.18);
  transform: translateY(-2px);
}

.secondary_btn {
  border-color: rgba(255, 255, 255, 0.34);
}

/* Section rhythm and headings */
.categories_content,
.course_content,
.testimonial_content,
.article_content,
.choose_content,
.faq_content,
.contactinfo_content {
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
}

section h6 {
  margin-bottom: 12px;
  color: var(--rr-blue);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

section h2 {
  line-height: 1.12;
}

/* Existing cards and content surfaces */
.service-card,
.course-box,
.categories-box,
.why-card,
.trust-feature-card,
.package-card,
.pricing-card,
.detail-card,
.contact-card,
.contact-channel-note,
.faq-note-card,
.director-message-card,
.home-director-showcase,
.registration-card,
.pricing-story,
.blog-card,
.article-box,
.testimonial-box,
.choose-box {
  border-radius: var(--rr-radius-lg);
  border-color: var(--rr-line);
  box-shadow: var(--rr-shadow-sm);
}

.service-card:hover,
.course-box:hover,
.categories-box:hover,
.why-card:hover,
.trust-feature-card:hover,
.package-card:hover,
.contact-card:hover,
.blog-card:hover,
.article-box:hover {
  border-color: rgba(30, 64, 175, 0.24);
  box-shadow: var(--rr-shadow-md);
  transform: translateY(-4px);
}

.course-box figure,
.blog-card figure,
.article-box figure,
.contact-visual figure,
.about_wrapper figure {
  overflow: hidden;
  border-radius: var(--rr-radius-lg);
}

.course-box figure img,
.blog-card figure img,
.article-box figure img {
  width: 100%;
  object-fit: cover;
}

.course-box:hover figure img,
.blog-card:hover figure img,
.article-box:hover figure img {
  transform: scale(1.025);
}

/* Testimonial carousel spacing */
.testimonial2-con #home2carouselcontrols .carousel-inner {
  padding: 8px 18px 10px;
}

@media (max-width: 991.98px) {
  .testimonial2-con #home2carouselcontrols .carousel-inner {
    padding: 6px 14px 8px;
  }
}

@media (max-width: 575.98px) {
  .testimonial2-con #home2carouselcontrols .carousel-inner {
    padding: 4px 10px 6px;
  }
}

/* Forms */
.form-control,
.form_style,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="number"],
select,
textarea {
  min-height: 50px;
  border: 1px solid rgba(16, 42, 86, 0.18);
  border-radius: var(--rr-radius-sm);
  background: rgba(255, 255, 255, 0.98);
  color: var(--rr-ink);
  box-shadow: 0 1px 0 rgba(8, 18, 37, 0.02);
}

.form-control:focus,
.form_style:focus,
input:focus,
select:focus,
textarea:focus {
  border-color: var(--rr-blue);
  box-shadow: 0 0 0 4px rgba(30, 64, 175, 0.1);
  outline: none;
}

textarea.form-control,
textarea.form_style {
  min-height: 128px;
}

/* Tables, cart and checkout */
.table-responsive,
.shopping-cart,
.checkout-section .create-nft-box,
.login-card {
  border-radius: var(--rr-radius-lg);
  border: 1px solid var(--rr-line);
  box-shadow: var(--rr-shadow-sm);
}

table thead th,
.cart-section .column-labels {
  color: var(--rr-ink);
  font-weight: 700;
}

/* FAQ */
.faq-con .accordion-card,
.faq-con .card {
  border-color: var(--rr-line);
  border-radius: var(--rr-radius-md);
  box-shadow: 0 6px 18px rgba(8, 18, 37, 0.05);
  overflow: hidden;
}

.faq-con .btn-link {
  color: var(--rr-ink);
  font-weight: 700;
}

/* Footer */
.footer-con {
  background: #151515;
  color: #d7deea;
}

.footer-card {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.footer-title,
.footer-col h5 {
  color: #ffffff;
}

.footer-col ul li a,
.footer-bottom-links a,
.footer-company-reg,
.footer-admin-access {
  color: #cfd6e4;
}

.footer-col ul li a:hover,
.footer-bottom-links a:hover,
.footer-admin-access a {
  color: var(--rr-accent);
}

/* Responsive stability */
@media (max-width: 1199px) {
  .container {
    width: min(100% - 32px, 1100px);
  }
}

@media (max-width: 991px) {
  .header .navbar-toggler {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: var(--rr-radius-sm);
    background: rgba(8, 18, 37, 0.42) !important;
    box-shadow: 0 8px 20px rgba(8, 18, 37, 0.16);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .header .navbar-toggler:hover {
    background: rgba(8, 18, 37, 0.68) !important;
  }

  .header .navbar-toggler svg {
    display: block;
  }

  .header .navbar-toggler svg path {
    stroke: #ffffff;
  }

  .header .navbar-collapse {
    border: 1px solid var(--rr-line-dark);
    border-radius: var(--rr-radius-md);
    background: rgba(8, 18, 37, 0.98);
    box-shadow: var(--rr-shadow-lg);
  }

  .header .navbar-nav .nav-item a {
    color: #ffffff !important;
  }

  .header .navbar-nav .nav-item a:hover,
  .header .navbar-nav .active > a {
    color: var(--rr-accent) !important;
    background: rgba(255, 255, 255, 0.06);
  }

  .banner2-con .banner_wrapper {
    margin-left: auto;
    margin-right: auto;
  }

  .project_modal .modal-dialog {
    width: calc(100% - 32px);
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 767px) {
  .container {
    width: min(100% - 28px, 680px);
  }

  .banner2-con,
  .sub_banner .sub_banner_con {
    padding-top: 96px;
    padding-bottom: 64px;
  }

  .hero-title,
  .sub_banner_content h1 {
    font-size: clamp(32px, 9vw, 44px);
    line-height: 1.08;
  }

  .hero-subtitle,
  .sub_banner_content > p {
    font-size: 15px;
  }

  .primary_btn,
  .secondary_btn,
  .submit_now,
  .back_home {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }

  .service-card,
  .course-box .lower_content,
  .categories-box,
  .why-card,
  .trust-feature-card,
  .package-card,
  .pricing-card,
  .detail-card,
  .contact-card,
  .contact-channel-note,
  .faq-note-card,
  .director-message-card,
  .registration-card,
  .pricing-story {
    padding: 20px;
  }

  .contact-form-card {
    padding: 22px 18px;
  }

  .footer-con {
    padding-left: 0;
    padding-right: 0;
  }
}

@media (max-width: 380px) {
  .container {
    width: min(100% - 24px, 356px);
  }

  .hero-title,
  .sub_banner_content h1 {
    font-size: 30px;
  }

  .footer-contact-panel ul li a span,
  .footer-company-reg {
    overflow-wrap: anywhere;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Contact page polish */
.contact-page .contact-highlights {
  padding: 88px 0 72px;
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fc 100%);
}

.contact-page .contact-highlights h6 {
  margin-bottom: 10px;
}

.contact-page .contact-highlights h2 {
  margin-bottom: 12px;
}

.contact-page .contact-lead {
  max-width: 760px;
  margin-bottom: 28px;
  color: #506176;
}

.contact-page .contact-channel-note {
  position: relative;
  padding: 24px 24px 22px;
  border-radius: 16px;
  border: 1px solid rgba(30, 64, 175, 0.12);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
  box-shadow: 0 14px 35px rgba(8, 18, 37, 0.06);
}

.contact-page .contact-channel-note h3 {
  margin-bottom: 12px;
  color: #0f172a;
  font-size: 21px;
  line-height: 1.25;
}

.contact-page .contact-channel-note ul {
  margin: 0;
  padding-left: 18px;
}

.contact-page .contact-channel-note li {
  margin-bottom: 10px;
  color: #4b5a6b;
  line-height: 1.75;
}

.contact-page .contact-channel-note li strong {
  color: #0f172a;
}

.contact-page .contact-channel-note a {
  color: var(--rr-blue);
  font-weight: 600;
  text-decoration: none;
}

.contact-page .contact-channel-note a:hover {
  text-decoration: underline;
}

.contact-page .contact-details-wrap {
  background: linear-gradient(180deg, #f6f8fc 0%, #eef3f9 100%);
}

.contact-page .contact-form-wrap {
  padding: 80px 0;
  background: linear-gradient(180deg, #f8fbff 0%, #f3f7fb 100%);
}

.contact-page .contact-form-wrap::before {
  content: none;
}

.contact-page .contact-form-card {
  padding: 32px;
  background: #ffffff;
  border: 1px solid #d7e3f5;
  border-radius: 16px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.contact-page .contact-form-card h2 {
  font-size: 28px;
  margin-bottom: 12px;
  color: #0f172a;
}

.contact-page .contact-form-card p {
  color: #506176;
  line-height: 1.7;
}

.contact-page .contact-form-card .form-control,
.contact-page .contact-form-card .form_style {
  background: #f8fbff;
  border: 1px solid #d7e3f5;
  color: #0f172a;
  border-radius: 8px;
  font-size: 14px;
}

.contact-page .contact-form-card .form-control::placeholder,
.contact-page .contact-form-card .form_style::placeholder {
  color: #7c8aa0;
}

.contact-page .contact-form-card .form-control:focus,
.contact-page .contact-form-card .form_style:focus {
  background: #ffffff;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
  outline: none;
}

.contact-page .contact-visual figure {
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 60px rgba(8, 18, 37, 0.18);
  height: 600px !important;
  max-height: 600px !important;
}

.contact-page .contact-visual img {
  width: 100%;
  height: 600px !important;
  max-height: 600px !important;
  object-fit: cover;
}

.contact-page .form-feedback {
  margin-top: 8px;
  font-size: 14px;
}

.contact-page .form-feedback.error {
  color: #dc2626;
}

.contact-page .form-feedback.success {
  color: #16a34a;
}

@media (max-width: 767px) {
  .contact-page .contact-highlights,
  .contact-page .contact-details-wrap {
    padding-left: 0;
    padding-right: 0;
  }

  .contact-page .contact-channel-note {
    padding: 20px 18px 18px;
  }

  .contact-page .contact-channel-note h3 {
    font-size: 19px;
  }

  .contact-page .contact-channel-note ul {
    padding-left: 16px;
  }

  .contact-page .contact-form-card {
    padding: 24px 20px;
  }

  .contact-page .contact-visual figure {
    height: 420px !important;
    max-height: 420px !important;
  }

  .contact-page .contact-visual img {
    height: 420px !important;
    max-height: 420px !important;
  }
}