/* responsive.css */
/* This file contains all responsive styles for the TOC Combine website */

/* ==================== */
/* BASE RESPONSIVE SETTINGS */
/* ==================== */
html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
}

/* ==================== */
/* GLOBAL BREAKPOINTS */
/* ==================== */
/* Extra small devices (phones, 400px and down) */
@media (max-width: 400px) {
  .title {
    font-size: 1.8rem;
  }

  .slide-item {
    height: 120px;
  }

  .video-wrapper {
    height: 250px;
  }

  nav ul {
    flex-direction: column;
  }

  nav li {
    margin-bottom: 0.5rem;
  }

  .accessibility-text {
    padding-left: 10px;
    padding-right: 10px;
  }

  .carousel-container {
    padding: 0 15px;
  }
}

/* Small devices (576px and down) */
@media (max-width: 576px) {
  section {
    padding: 50px 15px 50px 15px;
  }

  header {
    width: 95%;
    padding: 1rem 0;
  }

  header .logo img {
    height: 60px;
  }

  nav {
    width: 85%;
    padding: 70px 20px 20px;
  }

  .container {
    max-width: 100%;
    /* padding: 20px 15px 40px 15px; */
  }

  .title {
    font-size: 26px;
  }

  .cards {
    grid-template-columns: 1fr;
  }

  .carousel-container {
    width: 100% !important;
  }

  .video-wrapper {
    height: 300px;
  }

  .poster-video {
    flex: 0;
  }

  .slide-item {
    height: 200px;
  }

  .gallery {
    grid-template-columns: 1fr;
  }

  .accessibility-text .logos,
  .partner-logos {
    flex-direction: row;
    gap: 20px !important;
  }

  .accessibility-text .logos img,
  .partner-logos img {
    height: 80px;
  }

  .partners {
    flex-direction: column;
    text-align: center;
  }

  .partners h3 {
    margin-bottom: 1rem;
  }

  .footer-container {
    flex-direction: column;
    width: 100%;
  }

  .footer-right {
    margin-top: 2rem;
    width: 100%;
  }

  .footer-right form .half-input {
    flex-direction: column;
  }

  .services-list {
    grid-template-columns: 1fr;
  }

  .rc-carousel-item {
    width: 4rem;
    height: 4rem;
  }

  .rc-carousel-item-image {
    max-height: 60px;
  }

  .ad-video {
    position: relative;
    width: 94%;
  }

  .lightbox-reels {
    height: 300px;
  }

  .bg-image {
    height: 300px;
  }

  .accessibility-text {
    padding-left: 15px;
    padding-right: 15px;
  }

  .carousel-container {
    padding: 0 20px;
  }

  .slick-dots li {
    width: 16px;
    height: 16px;
  }

  .slick-dots {
    bottom: -26px;
  }
}

/* Large devices (desktops, 992px and down) */
@media (max-width: 992px) {
  .hamburger {
    display: block !important;
  }

  nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 70%;
    max-width: 400px;
    height: 100vh;
    background: #fff;
    box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
    transition: var(--transition);
    padding: 80px 30px 30px;
    overflow-y: auto;
    /* Enable scrolling for the menu */
    z-index: 999;
  }

  nav ul {
    flex-direction: column;
    gap: 0.5rem;
    height: calc(100vh - 110px);
    /* Account for header height */
    overflow-y: auto;
    /* Enable scrolling for menu items */
  }

  /* Disable body scrolling when menu is open */
  body.menu-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
    height: 100%;
  }

  header .logo img {
    height: 80px;
  }

  .hero-section {
    height: 37vh;
  }

  .carousel-container {
    width: 660px;
  }

  .slide-item {
    height: 150px;
  }

  .slick-dotted.slick-slider {
    width: 660px;
  }

  .video-container {
    transform: none !important;
  }

  .video-container video {
    margin-top: 40px;
    height: 288px;
    margin-top: 30px;
  }

  .video-wrapper {
    height: 450px;
  }

  .cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .card {
    padding: 15px;
  }

  .card p {
    font-size: 14px;
    font-weight: 300;
  }

  .accessibility-content {
    flex-direction: column;
  }

  .accessibility-text .logos,
  .partner-logos {
    gap: 50px;
  }

  .description {
    font-size: 16px;
  }

  .lightbox-reels {
    height: 500px;
  }

  .bg-image {
    height: 500px;
  }

  .gallery {
    grid-template-columns: repeat(2, 1fr);
  }

  .rc-carousel-item {
    width: 6rem;
    height: 6rem;
  }

  .footer-right form input,
  .footer-right form textarea {
    width: 100%;
    padding: 10px;
    margin-bottom: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-family: var(--base-font);
    font-size: 16px;
  }
}

@media (min-width: 768px) {
  .hero h1 {
    font-size: 28px;
  }
}

@media (max-width: 768px) {
  #srControls {
    bottom: 200px !important;
  }
}

/* Large devices (large desktops, 1200px and up) */
/* @media (min-width: 1200px) {

} */

/* Medium devices (desktops, 992px and up) */
@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }

  section {
    padding: 50px 0 !important;
  }

  nav a {
    padding: 0.3rem;
    font-weight: 600;
    font-size: 14px;
  }

  .hero h1 {
    font-size: 32px;
  }

  .title {
    font-size: 38px;
  }

  p {
    font-size: 16px;
  }

  .description {
    margin-bottom: 40px;
    font-size: 20px;
  }

  .hero-section {
    height: 38vh;
  }

  .slide-item {
    height: 250px;
  }

  .slick-dotted.slick-slider {
    width: 820px;
  }

  .cards {
    grid-template-columns: repeat(4, 1fr);
  }

  .accessibility-text p {
    margin-bottom: 15px;
    font-size: 20px;
  }

  .partners h3 {
    text-align: left;
    font-size: 22px;
    width: 40%;
  }

  .card {
    padding: 15px;
  }

  .card p {
    font-size: 16px;
    font-weight: 300;
  }

  .carousel-container {
    width: 820px;
  }

  .video-wrapper {
    height: 420px;
  }

  .play-icon {
    width: 40px;
    height: 40px;
  }

  .play-icon::before {
    border-top: 8px solid transparent;
    border-left: 15px solid white;
    border-bottom: 8px solid transparent;
  }

  .video-info h3 {
    font-size: 18px;
  }

  .video-info p {
    font-size: 16px;
    font-weight: 300;
  }

  #screenReaderBtn {
    right: 40px !important;
    bottom: 140px !important;
  }

  .progress-wrap {
    right: 40px;
    bottom: 50px;
    height: 46px;
    width: 46px;
  }

  .item {
    width: 280px;
    height: 230px;
    padding: 12px 18px;
    margin-bottom: 0;
  }

  .lightbox-reels {
    height: 480px;
  }

  .item .icon {
    width: 92px;
    height: 92px;
  }

  .item img {
    width: 52px;
  }

  .item .icon {
    margin-bottom: 0;
  }

  .footer-right form .half-input {
    flex-direction: row;
  }
}

/* Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
  .hero h1 {
    font-size: 4rem;
  }

  .video-wrapper {
    height: 550px;
  }
}

@media (min-width: 1024px) {
  #srControls {
    bottom: 220px !important;
  }
}

/* Extra large devices (1400px and up) */
@media (min-width: 1400px) {
  .container {
    max-width: 1320px;
  }

  .slick-dotted.slick-slider {
    width: 1210px;
  }

  /* .hero h1 {
    font-size: 42px;
  } */

  .hero-section {
    height: 680px;
  }

  .cards {
    grid-template-columns: repeat(4, 1fr);
  }

  .carousel-container {
    width: 1210px;
  }

  .video-wrapper {
    height: 550px;
  }

  #screenReaderBtn {
    right: 40px !important;
    bottom: 180px !important;
  }

  #srControls {
    right: 30px;
    width: 196px;
    bottom: 265px !important;
  }

  .hero h1 {
    font-size: 42px;
  }

  .hero-section {
    height: 56vh;
  }

  .carousel-container {
    width: 1210px;
  }

  .video-wrapper {
    height: 500px;
  }

  #screenReaderBtn {
    right: 40px !important;
    bottom: 180px !important;
  }

  #srControls {
    right: 30px;
    bottom: 80px;
  }

  .progress-wrap {
    height: 46px;
    width: 46px;
    right: 40px;
  }
}

/* Super large devices (1600px and up) */
@media (min-width: 1600px) {
  .container {
    max-width: 1520px;
  }

  .slick-dotted.slick-slider {
    width: 1520px;
  }

  .hero h1 {
    font-size: 52px;
  }

  .carousel-container {
    width: 1520px;
  }

  #screenReaderBtn {
    right: 20px !important;
    bottom: 30px;
  }

  .progress-wrap {
    position: fixed;
    right: 15px;
    bottom: 50px;
  }
}

/* ==================== */
/* SPECIAL CASES */
/* ==================== */
/* Landscape orientation adjustments */
@media (orientation: landscape) and (max-height: 500px) {
  .hero-section {
    height: 100vh;
  }

  .video-container video {
    height: 100vh;
    object-fit: cover;
  }

  .scroll-indicator {
    bottom: 1rem;
  }
}

/* High DPI displays */
@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {

  .logo img,
  .card img,
  .gallery-image,
  .rc-carousel-item-image {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
  }
}

/* Print styles */
@media print {

  .cursor,
  .cursor2,
  .progress-wrap,
  .scroll-indicator,
  .lightbox-trigger {
    display: none !important;
  }

  body {
    background: white !important;
    color: black !important;
    font-size: 12pt;
  }

  a {
    text-decoration: underline !important;
  }

  .container {
    width: 100%;
    padding: 0;
  }

  header,
  footer,
  .scroll-indicator,
  .video-container {
    display: none !important;
  }

  .about-section,
  .awards-section,
  .services-section {
    padding: 0 !important;
    background: none !important;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    page-break-after: avoid;
  }

  p,
  li {
    page-break-inside: avoid;
  }
}

/* Mobile Devices (portrait and landscape) */
@media only screen and (max-width: 767px) {
  #screenReaderBtn {
    bottom: 120px !important;
    padding: 10px 16px !important;
    font-size: 14px !important;
    right: 15px !important;
  }

  #srControls {
    bottom: 130px;
    padding: 8px;
  }

  #srControls button {
    padding: 6px 10px !important;
    font-size: 12px;
  }

  .cards {
    grid-template-columns: repeat(1, 1fr);
  }
}