/*!
Theme Name: corekids
Theme URI: http://underscores.me/
Author: Dhali
Author URI: https://dhali.com/
Description: Theme by Dhali
Version: 1.2.1
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: corekids
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

corekids is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
## Layouts
# Components
	- Header / Menu
	- Featured Image
	- Footer
	- Blog Cards
	- Comments
	- Media
	- Captions
	- Galleries
	- Pagination
	- RYAN
# Blocks
	- Buttons
# Templates
	- Program Single
	- Notifications Archive
# plugins
	- Jetpack infinite scroll
	- Gravity Forms
		- form #1
# Utilities
	- Accessibility
	- Bootstrap Additions

--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
/* Header / Menu
--------------------------------------------- */
/* ===============================
   1. Layout & Container Styles
   =============================== */
header#masthead {
  box-shadow: 0px 2px 4px 0px rgb(0 0 0 / 4%);
}

div#pre-header {
  padding: 15px 40px;
  display: flex;
  align-items: center;
  min-height: 136px;
  position: relative;
}

.navbar-brand {
  position: absolute;
  left: calc(50% - 94px);
  top: 15px;
}

header#masthead > nav {
  padding: 20px 0;
}

header#masthead > nav .nav-link {
  color: #222222;
  font-family: var(--wp--preset--font-family--dhali-roboto-condensed);
  font-size: 18px;
}

a.nav-link.active {
  background-color: #1d3981;
  color: #fff !important;
  border-radius: 20px;
  padding: 0.5rem 12px;
}

/* ===============================
   2. Contact Menu Styles
   =============================== */
.contact-menu {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  align-items: center;
}

.contact-menu-item {
  margin-right: 20px;
}

.contact-menu-item:last-child {
  margin-right: 0;
}

.contact-menu-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: #222222;
}

.contact-icon {
  margin-right: 10px;
  display: flex;
  align-items: center;
}

.contact-icon i,
.contact-icon svg {
  display: block;
}

/* ===============================
   3. Social Menu Styles
   =============================== */
.social-menu {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  align-items: center;
}

.social-menu-item {
  margin-right: 10px;
}

.social-menu-item:last-child {
  margin-right: 0;
}

.social-menu-link {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: 1px solid #919191;
  color: #919191;
  transition: all 0.2s ease;
  border-radius: 8px;
}

/* Icon-only styling */
.social-menu-link.icon-only {
  width: 40px;
  height: 40px;
  background-color: transparent;
}

.social-menu-link.icon-only .social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Text-only styling */
.social-menu-link.text-only {
  height: 40px;
  padding-left: 12px;
  padding-right: 12px;
  background-color: transparent;
}

.social-menu-link.text-only .social-text {
  display: block;
  text-align: center;
}

/* Special button styling */
.social-menu-link.red-btn {
  background-color: #f80e0f;
  border-color: #c00909;
  color: white;
}

.social-menu-link.blue-btn {
  background-color: #1d3981;
  border-color: #0a2364;
  color: white;
}

.social-menu-link:hover,
.social-menu-link:focus {
  opacity: 0.9;
  transform: translateY(-2px);
}

.social-icon i,
.social-icon svg {
  display: block;
  font-size: 16px;
}

/* ===============================
   4. Media Queries - Large Devices
   =============================== */
@media (max-width: 1199.98px) {
  /* Contact menu - Tablet & smaller */
  div#pre-header {
    flex-wrap: wrap;
    flex-direction: column;
    justify-self: center;
    gap: 10px;
  }

  .contact-menu-container {
    width: 100%;
  }

  .contact-menu {
    justify-content: center;
  }

  .contact-menu-item {
    margin-right: 10px;
  }

  .contact-menu-link {
    padding: 10px;
    justify-content: center;
    background-color: rgba(0, 0, 0, 0.05);
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s;
  }

  .contact-icon {
    margin-right: 0;
    font-size: 1.2em;
  }

  .contact-text {
    display: none;
  }

  .contact-icon i,
  .contact-icon svg {
    min-width: 24px;
    min-height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .contact-menu-link:hover,
  .contact-menu-link:focus {
    background-color: rgba(0, 0, 0, 0.1);
  }

  .navbar-brand {
    position: unset;
    left: unset;
    top: unset;
  }
}

/* ===============================
   5. Media Queries - Medium Devices
   =============================== */
@media (max-width: 767px) {
  /* Social menu - Mobile */
  .social-menu {
    flex-wrap: wrap;
    justify-content: center;
  }

  .social-menu-item {
    margin: 5px;
  }
}

/* ===============================
   6. Media Queries - Small Devices
   =============================== */
@media (max-width: 500px) {
  /* Header & logo - Small screens */
  header#masthead > nav {
    padding: 8px 0;
  }

  img.custom-logo {
    max-width: 200px;
    height: auto;
  }

  #menu-bumper {
    padding-top: 76.63px;
  }
}

@media (max-width: 480px) {
  /* Contact menu - Extra small screens */
  .contact-menu-item {
    margin-right: 5px;
  }

  .contact-menu-link {
    width: 40px;
    height: 40px;
  }
}

/* Featured Image
--------------------------------------------- */
.featured-image-container {
  height: 330px;
}

.featured-image-container img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: center center;
  border-radius: 0 !important;
}

/* Footer
--------------------------------------------- */
#site-footer {
  padding: 30px 0;
  background-color: #fff;
}

.footer-widget h1,
.footer-widget h2,
.footer-widget h3,
.footer-widget h4,
.footer-widget h5,
.footer-widget h6 {
  position: relative;
}

.footer-widget a {
  color: var(--wp--preset--color--dhali-text);
  text-decoration: none;
}

.footer-widget a:hover {
  color: var(--wp--preset--color--dhali-header);
  text-decoration: underline;
}

/* Blog Cards
--------------------------------------------- */
.card-img-wrapper {
  height: 250px;
  height: clamp(200px, 30vw, 350px);
}

.card-img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.card-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Adjust card image height on very small screens */
@media (max-width: 350px) {
  .card-img-wrapper {
    height: 180px !important;
  }
}

/* Comments
--------------------------------------------- */
.comment-content a {
  word-wrap: break-word;
}

.bypostauthor {
  display: block;
}

/* Media
--------------------------------------------- */
/* Make sure logo link wraps around logo image. */
.custom-logo-link {
  display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

.wp-caption-text {
  text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
  margin-bottom: 1.5em;
  display: grid;
  grid-gap: 1.5em;
}

.gallery-item {
  display: inline-block;
  text-align: center;
  width: 100%;
}

.gallery-columns-2 {
  grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
  grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
  grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
  grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
  grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
  grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
  grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
  grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
  display: block;
}

/* Pagination
--------------------------------------------- */
/* Make WordPress pagination work with Bootstrap */
.pagination {
  display: flex;
  list-style: none;
  padding-left: 0;
  justify-content: center;
  margin-top: 2rem;
}

.pagination .page-link {
  position: relative;
  display: block;
  padding: 0.5rem 0.75rem;
  margin-left: -1px;
  line-height: 1.25;
  color: var(--wp--preset--color--dhali-header);
  background-color: #fff;
  border: 1px solid #dee2e6;
  text-decoration: none;
}

.pagination .page-link:hover {
  z-index: 2;
  color: #0056b3;
  text-decoration: none;
  background-color: #e9ecef;
  border-color: #dee2e6;
}

.pagination .page-link:focus {
  z-index: 3;
  outline: 0;
  box-shadow: 0 0 0 0.2rem var(--wp--preset--color--dhali-header);
}

.pagination .page-link.active,
.pagination .page-link[aria-active="page"] {
  z-index: 3;
  color: #fff;
  background-color: var(--wp--preset--color--dhali-header);
  border-color: var(--wp--preset--color--dhali-header);
}

.pagination .page-link.dots {
  color: #6c757d;
  pointer-events: none;
  background-color: #fff;
  border-color: #dee2e6;
}

.pagination .page-link:first-child {
  margin-left: 0;
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}

.pagination .page-link:last-child {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}

/* Make pagination more tap-friendly on mobile */
@media (max-width: 575.98px) {
  .pagination .page-link {
    padding: 0.5rem 0.6rem;
    min-width: 38px;
    text-align: center;
  }

  .pagination .dots {
    display: none;
  }
}

/* Adjust card image height on very small screens */
@media (max-width: 350px) {
  .card-img-wrapper {
    height: 180px !important;
  }
}

/*  RYAN  */

#menu-main-menu li > .dropdown-menu {
  max-height: 500px;
  overflow-y: auto;
}

/* END */

/*--------------------------------------------------------------
# Blocks
--------------------------------------------------------------*/

/* Button
--------------------------------------------- */
@media (max-width: 576px) {
  .wp-block-buttons
    > .wp-block-button.has-custom-font-size
    .wp-block-button__link {
    padding: 0.6rem 1.5rem !important;
    font-size: 0.95rem;
  }
}

/*--------------------------------------------------------------
# Templates
--------------------------------------------------------------*/

/* Program Single */
.program-single__img {
  position: relative;
}

.program-single__price {
  /* Remove display:none; to show the price on single program listing */
  display: none !important;
  position: absolute;
  top: 0;
  right: 24px;
  display: flex;
  background-color: #fff;
  font-weight: bold;
  border-radius: 0px 0px 8px 8px;
  box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.15);
}

span.inner {
  padding: 14px;
  background-color: #1d3981;
  margin-bottom: 6px;
  border-radius: 0px 0px 8px 8px;
  color: #fff;
  font-family: "Montserrat";
  font-size: 24px;
}

.program-single__img img {
  max-height: 550px;
  object-fit: cover;
  object-position: center center;
  width: 100%;
  border-radius: 8px;
}

.program-details .card {
  border-radius: 8px;
}

.program-details .card-body {
  border-radius: 0 0 8px 8px;
  background-color: #fff;
}

.info-box__icon {
  font-size: 1.5rem;
  width: 30px;
  display: flex;
  margin-top: 5px;
}

.info-box__title {
  color: #222;
}

.info-box__text p {
  margin-bottom: 0;
}

.card.bg-primary {
  background-color: #1d3981 !important;
}

.card.bg-danger {
  background-color: #f80e0f !important;
}

.card.bg-warning {
  background-color: #00acea !important;
}

.btn-danger {
  font-weight: 700;
  font-family: var(--wp--preset--font-family--dhali-header);
  background-color: #ff758e;
  border-color: #ff758e;
}

.btn-danger:hover {
  background-color: #ff5a78;
  border-color: #ff5a78;
}

/* Slider specific styles */
.programs-slider .slick-track {
  display: flex !important;
}

.programs-slider .slick-slide {
  height: inherit !important;
  display: flex !important;
  justify-content: center;
  margin: 0 10px;
}

.programs-slider .slider-item {
  height: 100%;
}

/* Make sure the cards are the same height */
.programs-slider .card {
  height: 100%;
  margin-bottom: 30px; /* Space for dots navigation */
}

/* Arrow navigation styles */
.programs-slider .slick-prev,
.programs-slider .slick-next {
  z-index: 10;
}

.programs-slider .slick-prev {
  left: -20px;
}

.programs-slider .slick-next {
  right: -20px;
}

.programs-slider .slick-prev:before,
.programs-slider .slick-next:before {
  font-size: 24px;
  opacity: 0.7;
  color: #2a6ebb;
}

/* Dots navigation styles */
.programs-slider .slick-dots {
  bottom: -25px;
}

.programs-slider .slick-dots li button:before {
  font-size: 12px;
}

/* Responsive fixes */
@media (max-width: 767px) {
  .programs-slider .slick-prev {
    left: 5px;
  }

  .programs-slider .slick-next {
    right: 5px;
  }
}

/* Notifications Archive */
/* Calendar View Styles */
.calendar-container {
  margin-bottom: 30px;
}

.calendar-grid {
  width: 100%;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  overflow: hidden;
}

.calendar-header {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background-color: #1d3981;
  color: white;
  font-weight: bold;
}

.calendar-cell {
  padding: 12px 8px;
  text-align: center;
}

.calendar-body {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

.day-cell {
  min-height: 100px;
  padding: 8px;
  border: 1px solid #dee2e6;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.day-cell.other-month {
  background-color: #f8f9fa;
  color: #adb5bd;
}

.day-cell.today {
  background-color: #e8f4ff;
}

.day-number {
  font-weight: bold;
}

.notification-badge {
  background-color: #1d3981;
  color: white;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 0.8rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.notification-badge:hover {
  background-color: #15296b;
}

/* Notification Popup Styles */
.notification-popup {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  justify-content: center;
  align-items: center;
}

.notification-popup-content {
  background-color: white;
  border-radius: 8px;
  width: 90%;
  max-width: 600px;
  max-height: 80vh;
  overflow-y: auto;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.notification-popup-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px;
  border-bottom: 1px solid #dee2e6;
}

.notification-popup-header h3 {
  margin: 0;
  color: #1d3981;
}

.notification-popup-body {
  padding: 16px;
}

.popup-notification-item {
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #eee;
}

.popup-notification-item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
  display: block;
}

/* Gravity Forms
--------------------------------------------- */

/* Form #1 */
#gform_1 .gform_fields {
  column-gap: 10px;
  row-gap: 20px;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

.icon-fix {
  line-height: 20px;
}

/* Bootstrap Additions
--------------------------------------------- */
.w-unset {
  width: unset !important;
}

@media (min-width: 576px) {
  .w-sm-unset {
    width: unset !important;
  }

  .w-sm-25 {
    width: 25% !important;
  }

  .w-sm-50 {
    width: 50% !important;
  }

  .w-sm-75 {
    width: 75% !important;
  }

  .w-sm-100 {
    width: 100% !important;
  }
}

@media (min-width: 768px) {
  .w-md-unset {
    width: unset !important;
  }

  .w-md-25 {
    width: 25% !important;
  }

  .w-md-50 {
    width: 50% !important;
  }

  .w-md-75 {
    width: 75% !important;
  }

  .w-md-100 {
    width: 100% !important;
  }
}

@media (min-width: 992px) {
  .w-lg-unset {
    width: unset !important;
  }

  .w-lg-25 {
    width: 25% !important;
  }

  .w-lg-50 {
    width: 50% !important;
  }

  .w-lg-75 {
    width: 75% !important;
  }

  .w-lg-100 {
    width: 100% !important;
  }
}

@media (min-width: 1200px) {
  .w-xl-unset {
    width: unset !important;
  }

  .w-xl-25 {
    width: 25% !important;
  }

  .w-xl-50 {
    width: 50% !important;
  }

  .w-xl-75 {
    width: 75% !important;
  }

  .w-xl-100 {
    width: 100% !important;
  }
}

@media (min-width: 1400px) {
  .w-xl-unset {
    width: unset !important;
  }

  .w-xl-25 {
    width: 25% !important;
  }

  .w-xl-50 {
    width: 50% !important;
  }

  .w-xl-75 {
    width: 75% !important;
  }

  .w-xl-100 {
    width: 100% !important;
  }
}
