/* Shared layout corrections; scoped selectors also override legacy page styles. */
html { min-width: 0; }
*, *::before, *::after { box-sizing: border-box; }
body .row > [class*="col-"] { min-width: 0; }
body .classtime-table { width: 100%; max-width: 100%; overflow-x: auto; }
body .ptitle { font-size: clamp(16px, 1.7vw, 23px); line-height: 1.65; text-align: left; margin-inline: clamp(0px, 4vw, 60px); }
body .image1 { max-width: 100%; object-fit: cover; }
body .header .carrer-para { text-align: left; line-height: 1.7; margin-right: 0; }
body .col-md-2:has(> .card) { flex: 0 0 33.333333%; max-width: 33.333333%; }
body .menus { position: relative; z-index: 100; }
body .modal-dialog { max-width: calc(100% - 24px); margin-inline: auto; }
body .modal-body { overflow-wrap: anywhere; }
body .modal-body input, body .modal-body select, body .modal-body textarea { min-width: 0; font-size: 16px; }
body { background-color: #031b4e; overflow-wrap: break-word; }
body .header-section { padding: 12px clamp(12px, 3vw, 48px); }
.header-section > .container-fluid { align-items: center; padding: 0; gap: 16px; }
body .header-section .logo { width: clamp(180px, 25vw, 280px); height: auto; margin: 0; padding: 0; flex-shrink: 1; }
body .header-section .logo > a { display: block; }
body .header-section .logo img { display: block; width: 100% !important; height: auto !important; max-height: 112px; object-fit: contain; margin: 0; }
body .section.slider_img { height: auto !important; min-height: 420px; min-height: max(420px, 53svh); }
body .section.slider_img > .content { position: relative; height: auto; min-height: inherit; padding: 130px clamp(16px, 4vw, 64px) 90px; }
body .header-content { width: 100%; max-width: 1100px; margin: 0; padding: clamp(20px, 3vw, 40px); overflow-wrap: break-word; }
body .header-content .banner-content-1 { font-size: clamp(23px, 3vw, 36px) !important; line-height: 1.3; }
body .header-content .banner-content-2,
body .header-content .banner-content-3 { font-size: clamp(17px, 2.2vw, 27px) !important; line-height: 1.45; margin: 12px 0 0; }
body .paragraph { height: auto !important; padding: clamp(24px, 4vw, 60px) clamp(0px, 2vw, 30px); }
body .para-head { height: auto; }
body .para-head .pare_text { margin: 20px 0 0 !important; font-size: clamp(16px, 1.7vw, 23px) !important; line-height: 1.65; text-align: left; }
body .para-head-title { font-size: clamp(22px, 2.5vw, 30px) !important; }
body .menus { gap: 8px; padding: 12px; }
body .menus > .menu { padding: 0; margin: 0; }
body .menus > .menu > a { padding: 14px 20px; font-size: clamp(16px, 1.7vw, 23px); line-height: 1.4; }
body .schedule-call-btn { position: relative !important; display: block; width: fit-content !important; max-width: calc(100% - 32px); height: auto !important; min-height: 44px; inset: auto !important; margin: 16px auto !important; padding: 12px 20px !important; line-height: 1.4; }
body .schedule-call-btn { background: #ffad33; color: #031b4e; box-shadow: 0 4px 14px rgba(255, 173, 51, .3); }
body .schedule-call-btn:hover, body .schedule-call-btn:focus-visible { background: #ff941a; color: #031b4e; }
body .section.slider_img > .schedule-call-btn { position: absolute !important; top: auto !important; bottom: 16px !important; right: 20px !important; margin: 0 !important; z-index: 2; }
body .particle-network-animation { inset: 0; height: 100% !important; margin: 0 !important; overflow: hidden; pointer-events: none; }
body .copyright-text .ct-inside { padding: 12px 0; line-height: 1.6; overflow-wrap: anywhere; }
body img, body video, body iframe { max-width: 100%; }
body input, body textarea, body select { max-width: 100%; }
/* These full-width rows have no Bootstrap container to absorb negative gutters. */
body > .row, section > .row, .ear > .row,
.product-page > div > .row { margin-left: 0; margin-right: 0; }
body .contact-address li { overflow-wrap: anywhere; }
body #calendar { max-width: 100%; overflow-x: auto; }
body #calendar-table { table-layout: fixed; }
body #calendar .header { flex-wrap: wrap; gap: 8px; }
body #calendar .header h2 { font-size: clamp(18px, 3vw, 30px); }
body #mobile-nav { align-items: center; justify-content: center; flex: 0 0 44px; min-height: 44px; padding: 4px; border: 1px solid rgba(255,255,255,.5); border-radius: 6px; background: #031b4e; color: white; cursor: pointer; }
body a:focus-visible, body button:focus-visible, body #mobile-nav:focus-visible { outline: 3px solid #8dcaff; outline-offset: 3px; }
@media (min-width: 769px) {
  body #menus1 { display: flex !important; }
  body #mobile-nav { display: none; }
}
@media (max-width: 768px) {
  body #mobile-nav { display: flex; font-size: 26px; }
  body #menus1 { display: none !important; }
  body #menus1.is-open { display: flex !important; flex-direction: column; }
  body .menus > .menu + .menu { margin-top: 0; }
  body .menus > .menu > a { min-height: 48px; }
  body .section.slider_img { min-height: 410px; }
  body .section.slider_img > .content { padding-top: 110px; }
  body .header-content .line { border-width: 4px; }
  body .stats-section { padding: 24px 16px; }
  body .stat-column { margin: 0 0 20px; min-width: 0; }
  body #calendar-table th, body #calendar-table td { padding: 10px 2px; font-size: 12px; }
  body .contact-form input, body .contact-form textarea { font-size: 16px; }
}

/* Keep tablet columns readable before Bootstrap's desktop layout fits. */
@media (min-width: 769px) and (max-width: 991px) {
  body .pd-bgimg { margin-inline: 0 !important; }
  body .headertext, body .pd-para { margin-left: 0 !important; }
}
@media (max-width: 768px) {
  body .header-section { position: relative; background: #031b4e; }
  body .header-section .logo { width: clamp(150px, 48vw, 220px); }
  body .header-section .logo img { max-height: 76px; }
  body .section.slider_img > .content { padding: 32px 16px 92px; }
  body .section.slider_img { min-height: 330px; }
  body .header-content { padding: 16px 0; }
  body .header-content .line { position: static; display: block; width: 48px; height: 3px; border: 0; background: white; clip-path: none; margin: 0 auto 20px; animation: none; }
  body .header-content > br { display: none; }
  body #menus1 { width: 100%; background: #0c2455; }
  body .section.slider_img > .schedule-call-btn { right: 16px !important; bottom: 20px !important; }
  body .ptitle { margin: 24px 0 !important; padding: 0 4px !important; font-size: 16px !important; text-align: left; }
  body .image1 { display: block; float: none !important; width: 100%; height: auto !important; max-height: 320px; border-radius: 12px; margin: 16px auto; }
  body .header:has(.wwd-title) { float: none !important; margin: 16px 0 32px; height: auto !important; }
  body .wwd-para { line-height: 1.6; }
  body .pd-parent-title { padding: 0 16px; }
  body .stats-section { flex-wrap: wrap; gap: 20px; }
  body .stat-column { flex: 1 1 130px; }
  body #calendar { padding: 12px; margin-bottom: 24px; }
  body #calendar .header { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; }
  body #calendar .header h2 { text-align: center; font-size: 18px; }
  body #calendar .header button { min-height: 44px; }
  body .contact-form textarea { height: 160px; }
  body .contact-info li { overflow-wrap: anywhere; }
  body .col-md-2:has(> .card) { flex: 0 0 50%; max-width: 50%; }
  body .carrer-para { padding: 16px 0; }
  body .header:has(.carrer-para) { margin-top: 24px; }
}
/* Hover-only card backs must also be accessible on touch screens. */
@media (hover: none), (max-width: 768px) {
  body .card:has(.back) { height: auto; background: #031b4e; }
  body .card:has(.back) .content { position: relative; display: block; transform: none; }
  body .card .front, body .card .back { position: relative; height: auto; transform: none; padding: 20px 12px; }
  body .card .back p { margin-top: 12px !important; }
}
@media (max-width: 575px) {
  body .col-md-2:has(> .card) { flex: 0 0 100%; max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  body .animate__animated, body .text-animation, body .para-head { animation: none !important; opacity: 1; transform: none; }
  body .particle-network-animation { display: none; }
}

/* Decorative layers must never intercept navigation or call links. */
body .video-background, body .video-background::after { pointer-events: none; }
body .section.slider_img > .schedule-call-btn { z-index: 5; pointer-events: auto; }
body #mobile-nav { position: relative; z-index: 101; touch-action: manipulation; }
body #preloder { pointer-events: none; }
body #menus1 a { display: block; }

body #calendar-table td { padding: 2px; }
body #calendar-table button { width: 100%; min-height: 40px; border: 0; border-radius: 4px; background: transparent; color: inherit; cursor: pointer; }
body #calendar-table button[aria-pressed="true"] { background: #ffad33; color: #031b4e; }
body #calendar-table button:disabled { opacity: .35; cursor: default; }
body #call-request label { display: block; }

/* Who we are: keep the paragraph justified at every viewport size. */
body.who-we-are .para-head .pare_text { text-align: justify; text-justify: inter-word; hyphens: auto; }
