/* ════════════════════════════════════════════════════════════════
   RESPONSIVE STYLES
   ════════════════════════════════════════════════════════════════ */
/* Large Desktop (1400px to 1920px) */
@media (max-width: 1400px) {
  .hero-title {
    font-size: 70px;
  }
}

/* Standard Laptop / Desktop (1200px - 1399px) */
@media (max-width: 1399px) {
  .hero-title {
    font-size: 58px;
  }

  .hero-img-layer {
    width: 52%;
  }

  main {
    padding: 75px 0 0;
  }


}

@media (max-width: 1099px) {
  .services-row-3 {
    max-width: 100%;
  }
}

/* Large devices (desktops/small laptops, less than 1200px) */
@media (max-width: 1199px) {
  .hero-title {
    font-size: 50px;
  }

  .hero-img-layer {
    width: 48%;
    opacity: 0.85;
  }

  .hero-badge-text br {
    display: block;
  }

  .hero-badge-text {
    font-size: 15px;
  }

  .section-heading {
    font-size: 36px;
  }

  .footer-cta-title {
    font-size: 36px;
  }
}

/* Medium devices (tablets, less than 992px) */
@media (max-width: 991px) {
  br {
    display: none;
  }

  p {
    font-size: 14px !important;
  }

  main {
    padding: 69px 0 0;
  }

  .hero-tagline {
    font-size: 14px;
    margin-bottom: 12px;
  }

  .hero-section {
    padding: 120px 0;
    min-height: auto;
    display: block;
  }

  .hero-img-layer {
    display: none;
  }

  .marquee-content {
    font-size: 30px;
    gap: 16px;
    padding-right: 16px;
  }

  /* Sections Padding */
  .about-section,
  .video-process-section,
  .services-section,
  .testimonials-section,
  .affiliations-section,
  .faq-section {
    padding: 35px 0;
  }

  /* Fix about section large bottom padding */
  .about-section {
    padding-bottom: 35px;
  }

  .process-tag {
    font-size: 14px;
  }

  .hero-foreground-img {
    max-height: 360px;
    object-position: center bottom;
  }

  .hero-content {
    max-width: 100%;
  }

  .hero-title {
    font-size: 30px;
    margin-bottom: 15px;
  }

  .hero-desc {
    font-size: 14px;
    margin-bottom: 15px;
  }

  .hero-actions a {
    padding: 10px 15px;
    font-size: 14px;

  }

  .hero-bottom-badge {
    bottom: -5px;
  }

  .section-heading {
    font-size: 28px;
  }

  .about-content {
    padding-left: 0;
    margin-top: 20px;
  }


  .video-card-wrapper {
    margin: 0 auto 40px;
  }

  .process-step-item .step-title {
    font-size: 20px;
  }

  .process-step-item .step-number {
    font-size: 22px;
  }

  .service-item {
    padding: 15px;
  }

  .service-item-main {
    gap: 10px;
  }

  .service-title {
    font-size: 18px;
  }

  .services-header-desc {
    max-width: 100%;
    margin-top: 10px;
  }

  .service-item.active .service-img-box {
    width: auto;
    height: 130px;
  }

  /* Prevent service image from overflowing */
  .service-img-box {
    max-width: 100%;
  }

  .commitment-quote {
    font-size: 16px;
  }

  .testimonial-card {
    padding: 15px;
  }

  .testimonials-carousel-wrapper .owl-nav button.owl-prev,
  .testimonials-carousel-wrapper .owl-nav button.owl-next {
    width: 40px;
    height: 40px;
  }

  .affiliation-box {
    flex-direction: column;
    padding: 20px;
  }

  .affiliation-icon {
    width: 80px;
    height: 80px;
  }

  .affiliation-icon svg {
    width: 40px;
    height: auto;
  }

  .footer-cta-wrapper {
    justify-content: flex-start;
    margin-top: 20px;
  }

  .footer-legal-links {
    justify-content: center;
    margin-top: 12px;
  }

  /* services  */
  .services-banner-title {
    font-size: 36px;
  }

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

  .services-row-3 {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
  }

  .detail-layout {
    grid-template-columns: 1fr;
  }

  .detail-info-bx {
    padding: 28px;
    margin: -10em 0 0;
    width: 95%;
  }

  .detail-info-card {
    padding: 28px;
  }

  /* Portfolio */
  .portfolio-meta-val {
    font-size: 20px;
  }

  .portfolio-grid-section {
    padding: 40px 0 60px;
  }

  .portfolio-detail-section {
    padding: 30px 0 60px;
  }

  .portfolio-detail-title {
    font-size: 30px;
  }

  .portfolio-detail-header-info {
    margin: 24px 0 35px;
  }

  .portfolio-detail-meta-box {
    justify-content: flex-start;
    gap: 40px;
  }

  /* Accessibility Statement */
  .accessibility-section {
    padding: 50px 0 70px;
  }

  .accessibility-intro-notice {
    margin-bottom: 40px;
  }

  .services-banner {
    padding: 40px 0;
  }
}

/* Small devices (landscape phones & portrait tablets, less than 768px) */
@media (max-width: 767px) {
  .hero-title {
    font-size: 38px;
  }

  .hero-tagline {
    font-size: 11px;
    letter-spacing: 1px;
    gap: 5px;
  }

  .hero-desc {
    font-size: 14.5px;
  }

  .hero-bottom-badge {
    position: unset;
  }

  .hero-bottom-badge br {
    display: none;
  }

  .section-heading {
    font-size: 30px;
  }

  .marquee-content {
    font-size: 32px;
    gap: 18px;
  }

  .video-process-section {
    padding: 50px 0 55px;
  }

  .video-card-wrapper {
    margin: 0 auto 30px;
  }

  .video-thumb {
    height: 240px;
  }

  .process-step-item {
    padding: 0;
    margin-bottom: 0px;
  }

  .video-play-btn {
    width: 58px;
    height: 58px;
  }

  .service-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 16px;
  }

  .service-item-main {
    padding-right: 0;
    width: 100%;
  }

  .service-item-media {
    width: 100%;
    justify-content: space-between;
  }

  .service-item.active .service-img-box {
    width: 100%;
    height: 180px;
  }

  .testimonials-carousel-wrapper {
    padding: 0;
  }

  .testimonials-carousel-wrapper .owl-nav button.owl-prev {
    left: -8px;
  }

  .testimonials-carousel-wrapper .owl-nav button.owl-next {
    right: -8px;
  }

  .process-steps-wrapper .col-md-4:nth-child(2) .process-step-item,
  .process-steps-wrapper .col-md-4:nth-child(3) .process-step-item {
    margin-top: 0px;
  }

  .play-icon-box svg {
    width: 50px;
    height: 50px;
  }

  /* Services */


  .services-banner-title {
    font-size: 28px;
  }

  .services-grid-section {
    padding: 30px 0 50px;
  }

  .services-row-4 {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }

  .services-row-3 {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
    gap: 14px;
  }

  .svc-card-img-wrap {
    aspect-ratio: 16 / 10;
  }

  .detail-page-wrap {
    padding: 30px 0;
  }

  .detail-topnav-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .detail-info-card {
    padding: 20px 18px 22px;
  }

  .detail-service-title,
  .detail-section-label {
    font-size: 20px;
  }

  .detail-section-text {
    margin-bottom: 15px;
  }

  /* Portfolio */
  .portfolio-detail-meta-box {
    gap: 30px;
  }

  .portfolio-meta-val {
    font-size: 20px;
  }

  .portfolio-detail-title {
    font-size: 26px;
  }

  .portfolio-detail-desc {
    max-width: 100%;
    margin-bottom: 10px;
  }

  /* Accessibility Statement */
  .accessibility-section {
    padding: 40px 0 60px;
  }

  .accessibility-intro-notice {
    margin-bottom: 35px;
  }

  .accessibility-block-title {
    font-size: 18px;
  }

  .testimonial-card {
    min-height: auto;
  }
}

/* Extra small devices (portrait phones, less than 576px) */
@media (max-width: 575px) {

  .hero-section {
    padding: 100px 0 95px;
    background-size: 100% 100%;
  }

  .hero-title {
    font-size: 30px;
  }

  .hero-content,
  .hero-badge-text {
    text-align: center;
  }

  .hero-btn-book,
  .btn-hero-outline {
    justify-content: center;
    width: 100%;
  }

  .commitment-quote {
    font-size: 16px;
  }

  .section-heading {
    font-size: 24px;
  }

  .footer-cta-wrapper {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  /* Marquee — smaller font so it doesn't blow out width */
  .marquee-content {
    font-size: 24px;
    gap: 12px;
    padding-right: 12px;
  }

  .ticker-dot {
    font-size: 18px;
  }



  /* Services image hidden on very small screens to prevent overflow */
  .services-breadcrumb .bc-sep svg {
    width: 6px;
  }


  .service-item.active .service-img-box {
    display: block;
    width: 100%;
    height: 160px;
  }

  .faq-section .row {
    flex-direction: column-reverse;
  }

  .marquee-ticker-section::before,
  .marquee-ticker-section::after {
    width: 100px;
    height: 100px;
  }

  .custom-faq-accordion .accordion-button {
    padding: 10px 15px;
  }

  .custom-faq-accordion .accordion-button h3 {
    font-size: 16px;
    line-height: normal;
  }

  .custom-faq-accordion .accordion-body {
    padding: 10px 15px;
  }

  /* Services */
  .detail-back-icon {
    width: 32px;
    height: 32px;
  }

  .services-breadcrumb {
    font-size: 13px;
    gap: 8px;
  }

  .services-row-4,
  .services-row-3 {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .svc-card-img-wrap {
    aspect-ratio: 16 / 10;
  }

  .svc-card-title {
    font-size: 13px;
  }

  .svc-card-btn {
    font-size: 12px;
    padding: 8px 10px;
  }

  .services-banner-title {
    font-size: 24px;
    letter-spacing: 0.02em;
  }

  .detail-meta-row {
    flex-direction: column;
    width: 100%;
  }

  .detail-meta-pill+.detail-meta-pill {
    border-left: none;
    border-top: 1px solid #e2e8f0;
  }

  .detail-info-bx {
    padding: 15px;
  }

  /* Portfolio */
  .portfolio-detail-title {
    font-size: 22px;
  }

  .portfolio-detail-desc {
    font-size: 14px;
  }

  .portfolio-meta-val {
    font-size: 18px;
  }

  .portfolio-detail-meta-box {
    gap: 20px;
  }

  /* Accessibility Statement */
  .accessibility-section {
    padding: 30px 0 50px;
  }

  .accessibility-intro-notice {
    margin-bottom: 28px;
    font-size: 13.5px;
  }

  .accessibility-block {
    margin-bottom: 24px;
  }

  .accessibility-block-title {
    font-size: 17px;
  }

  .accessibility-list {
    padding-left: 18px;
  }

  .services-banner {
    padding: 24px 0;
  }
}

@media (max-width: 475px) {

  .services-row-4,
  .services-row-3 {
    grid-template-columns: unset;
  }

  .svc-card-body {
    padding: 15px 15px 20px;
  }

  .detail-info-bx {
    margin: -5em 0 0;
  }
}