/* =============================================
   SpeakSphere — Divas Gupta Theme Match
   Colors: #2c3e50 (blue), #ff6b6b (green)
   Fonts: Bree Serif, Muli, Kaushan Script
   ============================================= */

.bree-serif { font-family: 'Poppins', sans-serif; }
.muli { font-family: 'Inter', sans-serif; }
.kaushan { font-family: 'Caveat', cursive; }

.green { color: #ff6b6b; }
.blue { color: #2c3e50; }
.white { color: #fff; }

body {
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  overflow-x: hidden;
  color: #333;
}

html, body { overflow-x: hidden; }

h1, h2, h3, h4, h5, h6 { font-family: 'Poppins', sans-serif; }

a { color: #2c3e50; }
a:focus, a:hover { text-decoration: none; color: #ff6b6b; transition: 0.3s ease; }

.content a, p a { color: #2c3e50; }
.content a:hover, p a:hover { color: #ff6b6b; }

/* Typography sizes */
.txt-20 { font-size: 20px; }
.txt-25 { font-size: 25px; }
.txt-30 { font-size: 30px; }
.txt-40 { font-size: 40px; }
.txt-50 { font-size: 50px; }

/* Spacing */
.ptb-100 { padding: 100px 0; }
.ptb-75 { padding: 75px 0; }
.ptb-50 { padding: 50px 0; }
.pt-30 { padding-top: 30px; }
.pt-50 { padding-top: 50px; }
.pt-100 { padding-top: 100px; }
.pl-20 { padding-left: 20px; }
.pl-30 { padding-left: 30px; }
.pl-50 { padding-left: 50px; }
.pr-30 { padding-right: 30px; }
.pr-50 { padding-right: 50px; }
.p-30 { padding: 30px; }
.p-50 { padding: 50px; }
.mt-20 { margin-top: 20px; }
.mt-30 { margin-top: 30px; }
.mt-50 { margin-top: 50px; }
.mb-30 { margin-bottom: 30px; }
.mb-50 { margin-bottom: 50px; }
.mb-75 { margin-bottom: 75px; }
.ml-2 { margin-left: 8px; }

.mobile-hide { display: block; }
.desktop-hide { display: none; }

img.full { width: 100%; height: auto; display: block; }
.img-fluid { max-width: 100%; height: auto; }

.img.overflow { overflow: hidden; border-radius: 10px; }
.img.overflow:hover img { transform: scale(1.1); transition: 0.3s ease-in-out; }

.text-shadow { text-shadow: 2px 2px 3px #000; }
.text-justify { text-align: justify; }
.text-uppercase { text-transform: uppercase; }
.word-break { word-break: break-word; }

.shadow { box-shadow: 0 10px 30px rgba(0,0,0,0.15); }
.rounded { border-radius: 8px; }

/* Buttons */
.dg-btn {
  display: inline-block;
  text-align: center;
  text-transform: uppercase;
  background: #ff6b6b;
  font-weight: 600;
  color: #000;
  border: none;
  padding: 12px 28px;
  border-radius: 3px;
  cursor: pointer;
}

.dg-btn:hover {
  background: #000;
  color: #fff;
  transition: 0.3s ease;
  transform: rotate(-3deg);
}

.dg-btn:focus { box-shadow: none; outline: none; }
.dg-btn.blue { background: #2c3e50; color: #fff; }
.dg-btn.green-blue { background: #ff6b6b; color: #000; }
.dg-btn.green-blue:hover { background: #ddd; color: #000; transform: rotate(-3deg); }

/* Blinking CTA */
.black-blinking { animation: blackBlinkingText 0.8s infinite; }
@keyframes blackBlinkingText {
  0%, 49% { color: #000; }
  60%, 99% { color: transparent; }
  100% { color: #000; }
}

/* Backgrounds */
.grey-bg { background: #eee; }
.blue-bg { background: #2c3e50; }
.green-bg { background: #ff6b6b; }
.white-bg { background: #fff; }

.green-box {
  background: rgba(26, 242, 199, 0.8);
  display: block;
  padding: 30px;
  border-radius: 5px;
  height: 100%;
}

/* Lists */
ul.no-dots { list-style-type: none; padding-left: 0; }
ul.no-dots li { padding: 8px 0; }
ul.no-dots i { color: #2c3e50; margin-right: 8px; }

.section-head { max-width: 600px; margin: auto; }

/* Table layout */
.table-div { display: table; width: 100%; }
.table-div.full { table-layout: fixed; }
.table-div > div { display: table-cell; vertical-align: middle; }
.table-div.top > div { vertical-align: top; }

/* Cards */
.card { background: #fff; border-radius: 5px; overflow: hidden; }
.card .img { overflow: hidden; }
.card:hover .img img { transform: scale(1.05); transition: 0.3s ease-in-out; }

.card.right { box-shadow: -25px 25px 0 0 #2c3e50 !important; }
.about-section .card:not(.right) { box-shadow: 25px 25px 0 0 #2c3e50 !important; }

/* ========== HEADER ========== */
header {
  position: absolute;
  top: 0;
  width: 100%;
  padding-top: 25px;
  z-index: 999;
  transition: 0.3s ease;
}

header .logo { padding-left: 100px; }
header .logo img { max-width: 100px; height: auto; }

.menu-icon { padding-right: 40px; }
.menu-icon a {
  display: inline-block;
  background: #2c3e50;
  padding: 0 12px;
  border-radius: 2px;
  font-size: 28px;
  line-height: 1.4;
}

.menu-icon a:hover { color: #fff; }

header.sticky {
  position: fixed;
  background: #fff;
  top: 0;
  box-shadow: 0 0 5px rgba(0,0,0,0.2);
  padding: 8px 0;
  z-index: 11111;
}

header.sticky .logo img { max-width: 80px; }
header.sticky .menu-icon a { background: transparent; color: #2c3e50; }

/* ========== SLIDE MENU ========== */
.menu-section {
  width: 500px;
  max-width: 100%;
  height: 100%;
  position: fixed;
  z-index: 999999;
  right: -500px;
  top: 0;
  background: rgba(34, 78, 154, 0.92);
  transition: 0.3s ease-in-out;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 100%);
  padding: 30px 40px 50px 50px;
  overflow-y: auto;
}

.menu-section.menu-open { right: 0; }

.menu-close a {
  display: inline-block;
  float: right;
  margin-bottom: 30px;
  background: #ff6b6b;
  width: 45px;
  height: 45px;
  text-align: center;
  border-radius: 100%;
  font-weight: 400;
  padding-top: 2px;
  font-size: 27px;
  color: #000;
  line-height: 45px;
}

.menu-close a:hover { background: #fff; transition: 0.3s ease; }

.header-menu { text-align: right; clear: both; }
.header-menu .text-white { border-bottom: 1px solid #fff; display: inline-block; }

.header-menu ul.menu {
  list-style: none;
  padding-left: 0;
  margin-top: 20px;
  margin-bottom: 0;
}

.header-menu ul.menu li {
  display: block;
  position: relative;
  padding: 8px 20px 8px 5px;
}

.header-menu ul.menu li a {
  color: #fff;
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 600;
  display: inline-block;
}

.header-menu ul.menu li a:hover { color: #ff6b6b; }

.header-menu ul.menu li a::after {
  content: "\f100";
  font-family: FontAwesome;
  color: #ff6b6b;
  font-size: 18px;
  position: absolute;
  top: 8px;
  right: 0;
}

.social-list a {
  display: inline-block;
  background: #ff6b6b;
  width: 40px;
  height: 40px;
  font-size: 20px;
  border-radius: 100%;
  text-align: center;
  padding-top: 5px;
  margin-left: 5px;
  color: #000;
}

.social-list a:hover { background: #fff; transition: 0.3s ease-in-out; }

/* ========== HERO BANNER ========== */
.home-banner {
  min-height: 700px;
  padding-top: 140px;
  padding-bottom: 80px;
  background: #2c3e50;
  position: relative;
}

.hero-photo-wrap {
  text-align: center;
  padding: 0 15px;
}

.hero-photo {
  display: inline-block;
  max-height: 520px;
  width: auto;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center top;
  border-radius: 12px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.25);
}

.tab-banner { display: none; }
.mobile-banner {
  display: none;
  min-height: auto;
  padding-top: 0;
  padding-bottom: 0;
  background: #2c3e50;
}

.hero-photo-mobile {
  max-height: 380px;
}

.home-banner .banner-txt { max-width: 600px; margin: auto; }

.home-banner .banner-txt h1 {
  font-size: 50px;
  font-weight: 400;
  line-height: 1.15;
}

.home-banner .banner-txt h3 { font-size: 20px; font-weight: 400; }

.cloud-before {
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 100%;
  line-height: 0;
}

.cloud-bottom {
  display: block;
  width: 100%;
  margin-bottom: -3px;
}

/* ========== STATISTICS ========== */
.statistics .sec {
  background: #2c3e50;
  color: #fff;
  width: 250px;
  height: 250px;
  max-width: 100%;
  padding-top: 70px;
  margin: 10px auto;
  font-size: 20px;
  border-radius: 100%;
}

.statistics .sec div,
.statistics .sec .txt-30 {
  font-size: 50px;
  font-family: 'Poppins', sans-serif;
  line-height: 1;
}

.statistics .sec small {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.3;
  padding: 0 10px;
}

/* ========== CLS / ABOUT SECTION ========== */
.cls-section {
  background-image: url('https://divasgupta.com/wp-content/themes/DivasGupta/img/cls-bg.png');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

/* ========== GALLERY ========== */
.gallery-section {
  padding: 75px 0;
  background: #fff;
  position: relative;
}

.gallery-photo-wrap {
  text-align: center;
}

.gallery-photo {
  display: inline-block;
  max-height: 520px;
  width: auto;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center top;
  border-radius: 12px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.25);
}

.gallery-section .txt { line-height: 1.3; }
.gallery-section .txt2 { display: none; }

.txt-35 { font-size: 35px; }

/* ========== ABOUT / PROGRAMS SECTION ========== */
.about-section {
  background-image: url('https://images.unsplash.com/photo-1524178232363-1fb2b075b655?ixlib=rb-4.0.3&auto=format&fit=crop&w=2000&q=80');
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
  position: relative;
}

.about-section .sec .text-div {
  background: rgba(255, 255, 255, 0.88);
  padding: 50px;
  border-radius: 5px;
  position: relative;
}

.about-section .sec:hover .text-div { opacity: 1; transition: 0.5s ease-in-out; }

.about-section .text-div .line {
  width: 75px;
  height: 2px;
  position: absolute;
  background: #fff;
  bottom: 30px;
}

.about-section .text-div.right .line { left: -75px; }
.about-section .text-div.left .line { right: -75px; }

/* ========== IKIGAI / JOURNEY ========== */
.ikigai-section .img { position: relative; display: inline-block; width: 100%; }
.ikigai-section .img img { width: 100%; height: auto; border-radius: 10px; }

.typed-text h3 {
  min-height: 40px;
  color: #ff6b6b;
  font-family: 'Poppins', sans-serif;
}

/* ========== TRAINER / RIDDHI ========== */
.trainer-section {
  background: #eee;
}

.trainer-section .img {
  text-align: center;
}

.trainer-section .img img {
  max-height: 520px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: center top;
  margin: 0 auto;
}

.trainer-section .text {
  background: rgba(255, 255, 255, 0.95);
  clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%);
}

/* ========== TESTIMONIALS ========== */
.testimonials {
  background-image: url('https://divasgupta.com/wp-content/themes/DivasGupta/img/grey-triangles-bg.png');
  background-position: center;
  background-attachment: fixed;
  background-size: cover;
}

.testimonials .sec {
  background: #fff;
  border-radius: 5px;
  transition: 0.3s ease-in-out;
  height: 100%;
}

.testimonials .sec:hover {
  background: #f4f4f4;
  margin-top: -5px;
  outline: 1px solid #ff6b6b;
}

.testimonials hr {
  width: 50px;
  border-top: 2px solid #ff6b6b;
  margin: 20px auto;
}

/* ========== EBOOK / ARTICLES ========== */
.ebook-section .img img { width: 100%; height: auto; }

/* ========== FAQ TABS ========== */
.faqs-section {
  background-image: url('https://divasgupta.com/wp-content/themes/DivasGupta/img/grey-triangles-bg.png');
  background-attachment: fixed;
  background-size: cover;
}

.tab-section {
  border: 1px solid #ccc;
  margin-bottom: 20px;
  transition: 0.3s ease-in-out;
  background: #fff;
}

.tab-section .tab-head a {
  display: block;
  cursor: pointer;
  font-family: 'Poppins', sans-serif;
  padding: 12px 15px;
  position: relative;
  font-size: 18px;
  color: #2c3e50;
}

.tab-section .tab-head a:hover { color: #ff6b6b; }

.tab-section .tab-head a::after {
  content: "\f067";
  font-family: FontAwesome;
  float: right;
  margin-top: 3px;
}

.tab-section .tab-content {
  padding: 5px 15px 15px;
  display: none;
  line-height: 1.7;
}

.tab-section.active .tab-head a {
  background: #2c3e50;
  color: #fff;
}

.tab-section.active .tab-head a::after { content: "\f068"; }
.tab-section.active .tab-content { display: block; }

/* ========== REGISTER BANNER CTA ========== */
.register-top-banner {
  height: auto;
  background-image: url('https://divasgupta.com/wp-content/themes/DivasGupta/img/texture-bg.jpg');
  background-size: cover;
  padding: 100px 0 120px;
}

.register-top-banner h1 span { color: #ff6b6b; }

/* ========== CONTACT ========== */
.quick-contact {
  padding: 50px;
  padding-top: 120px;
  min-height: 100%;
  background: #2c3e50;
  color: #fff;
}

.quick-contact .icon i {
  border: 2px solid #2c3e50;
  background: #fff;
  padding: 10px 0;
  text-align: center;
  border-radius: 3px;
  display: inline-block;
  width: 70px;
  height: 70px;
  font-size: 40px;
  color: #2c3e50;
}

.quick-contact .icon i.fa-phone { padding-top: 13px; }
.quick-contact small { text-transform: uppercase; color: rgba(255,255,255,0.8); display: block; }
.quick-contact .txt-30 { line-height: 1.2; }
.quick-contact a.white { color: #fff; }
.quick-contact a.white:hover { color: #ff6b6b; }

.register { min-height: 100%; display: flex; flex-direction: column; justify-content: center; }

/* ========== FOOTER ========== */
footer { padding: 50px 50px 0 !important; }

footer .blue-bg { border-top-right-radius: 15px; border-top-left-radius: 15px; background: #1a252f; padding: 60px 20px; box-shadow: 0 -10px 30px rgba(0,0,0,0.15); }

.footer-menu ul.menu {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.footer-menu ul.menu li {
  display: inline-block;
  text-transform: uppercase;
  margin: 0 15px;
}

.footer-menu ul.menu li a { color: #fff; }
.footer-menu ul.menu li a:hover { color: #ff6b6b; }

footer hr {
  border-top: 1px solid rgba(255,255,255,0.3);
  max-width: 400px;
  margin: 30px auto;
}

footer .copyright a { color: #fff; }
footer .copyright a:hover { color: #ff6b6b; }

.typewrite-footer { color: #2c3e50; }

/* Inner page banner */
.page-banner {
  height: auto;
  min-height: 220px;
  padding-top: 150px;
  padding-bottom: 60px;
  background: #2c3e50;
  position: relative;
}

.page-banner + section,
.page-banner ~ section:first-of-type {
  scroll-margin-top: 80px;
}

/* Riddhi photo styling */
.coach-photo {
  width: 100%;
  max-width: 420px;
  height: auto;
  border-radius: 15px;
  object-fit: contain;
  object-position: center top;
  margin: 0 auto;
  display: block;
}

.card .coach-photo {
  min-height: auto;
  max-height: 320px;
  width: 100%;
  object-fit: contain;
}

/* Active menu item */
.header-menu ul.menu li a.active {
  color: #ff6b6b;
}

/* ========== RESPONSIVE ========== */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .desktop-banner, .mobile-banner { display: none !important; }
  .tab-banner { display: block !important; background-attachment: scroll; }
  .about-section .sec .text-div { font-size: 14px; padding: 20px; opacity: 1; }
  .about-section .card { box-shadow: 15px 15px 0 0 #2c3e50 !important; }
  .about-section .card.right { box-shadow: -15px 15px 0 0 #2c3e50 !important; }
  .gallery-section { background-attachment: scroll; }
  .trainer-section .text { padding: 20px; padding-left: 60px; clip-path: none; }
  .statistics .sec { width: 220px; height: 220px; padding-top: 60px; }
  .statistics .sec .txt-30 { font-size: 40px; }
}

@media screen and (max-width: 767px) {
  .desktop-banner, .tab-banner { display: none !important; }
  .mobile-banner { display: block !important; background-attachment: scroll; }
  .mobile-hide { display: none !important; }
  .desktop-hide { display: block !important; }

  .txt-30 { font-size: 23px; }
  .txt-40 { font-size: 25px; }
  .txt-50 { font-size: 35px; }
  .btn.txt-30 { font-size: 20px; }

  .ptb-100, .ptb-75 { padding: 30px 0; }
  .ptb-50 { padding: 25px 0; }
  .p-50 { padding: 25px; }

  header .logo { padding-left: 15px; }
  header .logo img { max-width: 80px; }
  .menu-icon { padding-right: 15px; }
  .menu-section { padding: 30px 20px 50px 40px; width: 100%; right: -100%; }
  .menu-section.menu-open { right: 0; }

  .home-banner { min-height: auto; padding-top: 110px; padding-bottom: 40px; }
  .page-banner { min-height: 180px; padding-top: 120px; padding-bottom: 40px; }
  .hero-photo { max-height: 340px; }
  .hero-photo-mobile { max-height: 320px; }
  .home-banner .banner-txt h1 { font-size: 30px; }
  .home-banner .banner-txt h3 { font-size: 16px; }

  .statistics .sec {
    width: 158px;
    height: 158px;
    padding-top: 40px;
  }

  .statistics .sec .txt-30 { font-size: 32px; }
  .statistics .sec small { font-size: 12px; }

  .gallery-section .txt { padding-left: 0; padding-top: 10px; font-size: 20px; }
  .gallery-section .txt-35 { font-size: 18px; }
  .gallery-photo { max-height: 360px; }
  .gallery-section .txt1 { display: none; }
  .gallery-section .txt2 { display: block; }

  .about-section .card { margin-bottom: 20px; box-shadow: 8px 8px 0 0 #2c3e50 !important; }
  .about-section .sec .text-div { opacity: 1; padding: 20px; }
  .about-section .text-div .line { display: none; }

  .ikigai-section .txt { padding-left: 0 !important; }
  .trainer-section .text { padding: 20px 15px; clip-path: none; text-align: center; }
  .trainer-section .content { text-align: left; }

  .quick-contact { padding: 30px 20px; padding-top: 40px; }
  .register { padding: 30px 20px; }

  .ebook-section { text-align: center; }
  .ebook-section .txt { padding-top: 20px !important; padding-left: 15px !important; padding-right: 15px !important; }
  .ebook-section .content { text-align: left; }

  footer { padding: 30px 10px 0 !important; }
  footer .blue-bg { border-top-right-radius: 15px; border-top-left-radius: 15px; background: #1a252f; padding: 60px 20px; box-shadow: 0 -10px 30px rgba(0,0,0,0.15); }
  footer .txt-50, .typewrite-footer { font-size: 22px; }

  .testimonial-slide { display: none; }
  .testimonial-slide.active { display: block; }
}

@media screen and (min-width: 768px) {
  .testimonial-slide { display: block !important; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}







@media screen and (max-width: 767px) {
    section.tab-banner.desktop-hide { display: none !important; }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
    section.mobile-banner.desktop-hide, section.mobile-banner-txt.desktop-hide { display: none !important; }
    section.tab-banner.desktop-hide { display: block !important; }
}

