@charset "utf-8";

/* ==========================================================================
   Content / CMS pages (Privacy Policy, Terms, Disclaimer, etc.)
   ========================================================================== */

:root{
  --ContentMaxWidth   : 900px;
  --ContentTextClr    : #2b3446;
  --ContentMutedClr   : #5b6478;
  --ContentHeadingClr : #004c88;
  --ContentBorderClr  : #e4e8ed;
  --ContentSoftBg     : #f6f8fa;
}

/* --------------------------------------------------------------------------
   Page hero
   -------------------------------------------------------------------------- */
.page-hero{
  background:linear-gradient(180deg, var(--ContentSoftBg) 0%, var(--WhiteClr) 100%);
  border-bottom:1px solid var(--ContentBorderClr);
  padding:3.5rem 0 3rem;
}

.page-hero .page-hero-title{
  font-size:clamp(1.9rem, 4vw, 2.9rem);
  line-height:1.15;
  color:var(--ContentHeadingClr);
  margin-bottom:0;
  letter-spacing:-0.02em;
}

.page-hero .page-hero-title:after{
  content:"";
  display:block;
  width:64px;
  height:4px;
  border-radius:4px;
  background:var(--PrimaryClr);
  margin-top:1.15rem;
}

.page-hero .breadcrumb-nav{
  font-size:13px;
  color:var(--ContentMutedClr);
  margin-bottom:0.85rem;
}
.page-hero .breadcrumb-nav a{color:var(--ContentMutedClr);}
.page-hero .breadcrumb-nav a:hover{color:var(--PrimaryClr);}
.page-hero .breadcrumb-nav .sep{margin:0 0.45rem; opacity:0.55;}
.page-hero .breadcrumb-nav .current{color:var(--ContentHeadingClr); font-weight:600;}

/* --------------------------------------------------------------------------
   Content wrapper
   -------------------------------------------------------------------------- */
.page-section{padding:3.25rem 0 4.5rem;}

.page-content{
  max-width:var(--ContentMaxWidth);
  font-size:1rem;
  line-height:1.8;
  color:var(--ContentTextClr);
  text-wrap:pretty;
}

/* Headings ---------------------------------------------------------------- */
.page-content h1,
.page-content h2,
.page-content h3,
.page-content h4,
.page-content h5,
.page-content h6{
  color:var(--ContentHeadingClr);
  font-weight:600;
  line-height:1.3;
  letter-spacing:-0.01em;
  margin:2.25rem 0 0.85rem;
  scroll-margin-top:120px;
}

.page-content > :first-child{margin-top:0;}

.page-content h1{font-size:clamp(1.6rem, 3vw, 2rem);}
.page-content h2{
  font-size:clamp(1.3rem, 2.4vw, 1.6rem);
  padding-bottom:0.55rem;
  border-bottom:1px solid var(--ContentBorderClr);
  margin-top:2.75rem;
}
.page-content h3{font-size:clamp(1.1rem, 2vw, 1.3rem);}
.page-content h4{font-size:1.1rem;}
.page-content h5{font-size:1rem;}
.page-content h6{font-size:0.9375rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--ContentMutedClr);}

/* Text -------------------------------------------------------------------- */
.page-content p{margin:0 0 1.15rem;}
.page-content p:last-child{margin-bottom:0;}

.page-content strong,
.page-content b{color:var(--ContentHeadingClr); font-weight:600;}

.page-content em{color:inherit;}

.page-content small{font-size:0.875rem; color:var(--ContentMutedClr);}

/* :not(.btn) - prose-link styling must not override Bootstrap button colors
   (e.g. a "Back to Home" .btn-primary inside .page-content on Thank You
   pages), or button text renders in the link color instead of the button's
   own text color. */
.page-content a:not(.btn){
  color:var(--PrimaryClr);
  font-weight:500;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  word-break:break-word;
}
.page-content a:not(.btn):hover{color:var(--secondaryClr);}

/* Lists ------------------------------------------------------------------- */
.page-content ul,
.page-content ol{
  margin:0 0 1.35rem;
  padding-left:1.35rem;
}

.page-content li{margin-bottom:0.55rem; padding-left:0.25rem;}
.page-content li:last-child{margin-bottom:0;}

.page-content ul{list-style:none; padding-left:0;}
.page-content ul > li{position:relative; padding-left:1.6rem;}
.page-content ul > li:before{
  content:"";
  position:absolute;
  left:0.15rem;
  top:0.72em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--PrimaryClr);
}

.page-content ul ul,
.page-content ol ol,
.page-content ul ol,
.page-content ol ul{margin:0.6rem 0 0.35rem;}

.page-content ul ul > li:before{background:transparent; border:1.5px solid var(--PrimaryClr); width:6px; height:6px;}

.page-content ol{list-style:decimal;}
.page-content ol > li::marker{color:var(--PrimaryClr); font-weight:600;}

/* Blockquote & callouts ---------------------------------------------------- */
.page-content blockquote{
  margin:1.75rem 0;
  padding:1.15rem 1.35rem;
  background:var(--ContentSoftBg);
  border-left:4px solid var(--PrimaryClr);
  border-radius:0 8px 8px 0;
  color:var(--secondaryClr);
  font-size:1.02rem;
}
.page-content blockquote p:last-child{margin-bottom:0;}

/* Media ------------------------------------------------------------------- */
.page-content img{
  max-width:100%;
  height:auto;
  border-radius:10px;
  margin:1.5rem 0;
}

.page-content figure{margin:1.75rem 0;}
.page-content figcaption{
  font-size:0.875rem;
  color:var(--ContentMutedClr);
  margin-top:0.5rem;
  text-align:center;
}

.page-content iframe,
.page-content video{
  max-width:100%;
  border:0;
  border-radius:10px;
  margin:1.5rem 0;
  aspect-ratio:16 / 9;
  width:100%;
}

/* Tables ------------------------------------------------------------------ */
.page-content .table-responsive-wrap,
.page-content table{margin:1.75rem 0;}

.page-content table{
  width:100%;
  border-collapse:collapse;
  font-size:0.9375rem;
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  border-radius:10px;
  overflow:hidden;
}

.page-content table th,
.page-content table td{
  padding:0.8rem 1rem;
  border:1px solid var(--ContentBorderClr);
  vertical-align:top;
  text-align:left;
}

.page-content table th{
  background:var(--secondaryClr);
  color:var(--WhiteClr);
  font-weight:600;
  white-space:nowrap;
}

.page-content table tbody tr:nth-child(even){background:var(--ContentSoftBg);}

/* Misc -------------------------------------------------------------------- */
.page-content hr{
  border:0;
  height:1px;
  background:var(--ContentBorderClr);
  margin:2.5rem 0;
  opacity:1;
}

.page-content code{
  background:var(--ContentSoftBg);
  border:1px solid var(--ContentBorderClr);
  border-radius:4px;
  padding:0.1rem 0.4rem;
  font-size:0.875em;
  color:var(--PrimaryClr);
}

.page-content pre{
  background:var(--secondaryClr);
  color:var(--WhiteClr);
  padding:1.15rem 1.35rem;
  border-radius:10px;
  overflow-x:auto;
  margin:1.75rem 0;
}
.page-content pre code{background:none; border:0; color:inherit; padding:0;}

.page-content dl{margin:0 0 1.35rem;}
.page-content dt{font-weight:600; color:var(--ContentHeadingClr); margin-top:1rem;}
.page-content dd{margin:0.25rem 0 0 1.35rem;}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media all and (max-width:991px){
  .page-hero{padding:2.75rem 0 2.25rem;}
  .page-section{padding:2.5rem 0 3.25rem;}
}

@media all and (max-width:767px){
  .page-hero{padding:2.25rem 0 1.85rem;}
  .page-hero .page-hero-title:after{width:52px; height:3px; margin-top:0.9rem;}
  .page-section{padding:2rem 0 2.75rem;}

  .page-content{font-size:0.9375rem; line-height:1.75;}
  .page-content h2{margin-top:2.15rem;}
  .page-content table{display:block; overflow-x:auto; white-space:nowrap;}
}

/* ==========================================================================
   Department / Speciality pages (Overview + Our Services sidebar)
   ========================================================================== */
/* The sticky positioning lives on the WRAPPER (sidebar card + CTA button
   together), not on .dept-sidebar alone - otherwise the card sticks to the
   viewport on scroll while the CTA button (a plain sibling) keeps scrolling
   with the page, and the two end up overlapping. */
.dept-sidebar-wrap{
  position:sticky;
  top:100px;
}

.dept-sidebar{
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  border-radius:10px;
  overflow:hidden;
}

.dept-sidebar-head{
  background:var(--PrimaryClr);
  padding:1rem 1.35rem;
}

.dept-sidebar-head h3{
  color:var(--WhiteClr);
  font-size:0.875rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.04em;
  margin:0;
}

/* .dept-sidebar-nav{padding:0.5rem 0;} */

.dept-sidebar-nav li a{
  display:block;
  padding:0.65rem 1.35rem;
  color:#3a465e;
  font-size:0.875rem;
  font-weight:400;
  text-decoration:none;
  border-left:3px solid transparent;
}

.dept-sidebar-nav li a:hover{color:var(--PrimaryClr); background:#fafbfd;}

.dept-sidebar-nav li a.active{
  color:var(--BlueClr);
  background:var(--SectionBGClr);
  border-left-color:var(--BlueClr);
  font-weight:600;
}

.dept-sidebar-group-title{
  padding:0.85rem 1.35rem 0.35rem;
  font-size:0.8125rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.03em;
  color:var(--ContentHeadingClr);
}

.dept-sidebar-sublink{
  padding-left:1.85rem;
}

.dept-sidebar-nav li a.dept-sidebar-toplink{
  font-weight:700;
  text-transform:uppercase;
  font-size:0.8125rem;
  letter-spacing:0.03em;
}
.dept-sidebar-nav li a.dept-sidebar-toplink:not(.active):not(:hover){color:var(--ContentHeadingClr);}

.dept-sidebar-divider{
  /* margin-top:0.5rem;
  padding-top:0.5rem; */
  border-top:1px solid var(--ContentBorderClr);
}

.dept-sidebar-cta{
  display:block;
  margin-top:1.25rem;
  padding:0.9rem 1.35rem;
  background:var(--PrimaryClr);
  color:var(--WhiteClr);
  text-align:center;
  font-weight:600;
  text-transform:uppercase;
  font-size:0.9375rem;
  letter-spacing:0.03em;
  border-radius:10px;
  text-decoration:none;
  transition:background .2s ease;
}

.dept-sidebar-cta:hover{background:var(--secondaryClr); color:var(--WhiteClr);}

@media all and (max-width:991px){
  .dept-sidebar-wrap{position:static; margin-bottom:2rem;}
}

/* Department hero: text + CTAs on the left, banner image (or default) on the right */
.dept-hero{
  position:relative;
  background:linear-gradient(90deg, #eef3fa 0%, #f6f9fd 55%, var(--WhiteClr) 100%);
  padding:0;
  overflow:hidden;
}
.dept-hero .row{min-height:360px; align-items:center;}
.dept-hero-text{position:relative; z-index:2; padding-top:2.75rem; padding-bottom:2.75rem;}

.dept-hero-title{
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.15;
  font-weight:700;
  color:var(--ContentHeadingClr);
  letter-spacing:-0.02em;
  margin:0 0 1rem;
}

.dept-hero-desc{
  font-size:1rem;
  line-height:1.55;
  color:#33405a;
  max-width:520px;
  margin-bottom:1.75rem;
}
.dept-hero-desc p{margin:0 0 0.5rem;}
.dept-hero-desc > :last-child{margin-bottom:0;}

.dept-hero-actions{display:flex; flex-wrap:wrap; gap:0.85rem;}

.dept-hero-btn{
  display:inline-flex;
  align-items:center;
  gap:0.55rem;
  padding:0.75rem 1.35rem;
  border:1.5px solid var(--PrimaryClr);
  border-radius:4px;
  font-size:0.9375rem;
  font-weight:600;
  text-decoration:none;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.dept-hero-btn .svgi{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.dept-hero-btn--primary{background:var(--PrimaryClr); color:var(--WhiteClr);}
.dept-hero-btn--primary:hover{background:var(--secondaryClr); border-color:var(--secondaryClr); color:var(--WhiteClr);}
.dept-hero-btn--outline{background:var(--WhiteClr); color:var(--PrimaryClr);}
.dept-hero-btn--outline:hover{background:var(--PrimaryClr); color:var(--WhiteClr);}

/* Image clipped by a large curve, with a red + navy arc tracing the edge */
.dept-hero-media{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  width:47%;
}
.dept-hero-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50% 0 0 50% / 100% 0 0 100%;
}
.dept-hero-media:before,
.dept-hero-media:after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  border-radius:50% 0 0 50% / 100% 0 0 100%;
  border-left-style:solid;
  pointer-events:none;
}
.dept-hero-media:before{left:-22px; right:0; border-left-width:10px; border-left-color:var(--PrimaryClr); z-index:1;}
.dept-hero-media:after{left:-8px; right:0; border-left-width:4px; border-left-color:var(--secondaryClr); z-index:1;}

@media all and (max-width:991px){
  .dept-hero .row{min-height:0;}
  .dept-hero-text{padding-top:2.25rem; padding-bottom:2rem;}
  .dept-hero-media{position:relative; width:100%; height:280px;}
  .dept-hero-media img{border-radius:0;}
  .dept-hero-media:before,
  .dept-hero-media:after{display:none;}
}

@media all and (max-width:575px){
  .dept-hero-media{height:210px;}
  .dept-hero-btn{flex:1 1 100%; justify-content:center;}
}

/* Department content: every second item sits in a soft blue card */
.dept-content .dept-item + .dept-item{margin-top:2.5rem;}
.dept-content .dept-item h2{font-size:clamp(1.4rem, 2.6vw, 1.75rem); font-weight:600; line-height:1.2; border-bottom:0; padding-bottom:0; margin:0 0 1rem;}
.dept-content .dept-item:first-child h2{font-size:clamp(1.5rem, 3vw, 2rem); margin-bottom:0.65rem;}
.dept-content .dept-item strong,
.dept-content .dept-item b{color:var(--ContentHeadingClr); font-weight:600;}
/* Square blue bullets, as in the department design */
.dept-content .dept-item ul > li:before{top:0.62em; width:9px; height:9px; border-radius:2px; background:#2f6fc0;}
.dept-content .dept-item:nth-child(even){
  background:#f2f6fc;
  border-radius:10px;
  padding:1.75rem 2rem;
}
.dept-content .dept-item > :last-child{margin-bottom:0;}

@media all and (max-width:575px){
  .dept-content .dept-item:nth-child(even){padding:1.25rem;}
}

/* Page sidebar for a menu (single links + collapsible groups) */
.menu-sidebar-nav > li + li{border-top:1px solid var(--ContentBorderClr);}
.menu-sidebar-nav .menu-sidebar-link{padding:0.85rem 1.35rem;}

.menu-sidebar-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:0.85rem 1.35rem;
  background:transparent;
  border:0;
  border-left:3px solid transparent;
  color:var(--ContentTextClr);
  font-size:0.9375rem;
  font-weight:500;
  text-align:left;
  cursor:pointer;
}
.menu-sidebar-toggle:hover{color:var(--PrimaryClr); background:var(--ContentSoftBg);}
.menu-sidebar-toggle[aria-expanded="true"]{color:var(--PrimaryClr); font-weight:600;}

.menu-sidebar-icon{
  flex:0 0 auto;
  margin-left:0.75rem;
  font-size:1.25rem;
  line-height:1;
  font-weight:600;
}
.menu-sidebar-icon::before{content:"+";}
.menu-sidebar-toggle[aria-expanded="true"] .menu-sidebar-icon::before{content:"\2212";}

/* Group whose heading is also a page link: label navigates, +/- button toggles */
.menu-sidebar-head{display:flex; align-items:stretch; border-left:3px solid transparent;}
.menu-sidebar-nav li .menu-sidebar-head .menu-sidebar-head-link{flex:1 1 auto; padding:0.85rem 0 0.85rem 1.35rem; border-left:0;}
.menu-sidebar-nav li .menu-sidebar-head .menu-sidebar-head-link:hover{background:transparent;}
.menu-sidebar-head-btn{flex:0 0 auto; display:flex; align-items:center; padding:0 1.35rem 0 0.75rem; background:transparent; border:0; color:var(--ContentTextClr); cursor:pointer;}
.menu-sidebar-head-btn .menu-sidebar-icon{margin-left:0;}
.menu-sidebar-head:hover{background:var(--ContentSoftBg);}
.menu-sidebar-head:hover .menu-sidebar-head-link, .menu-sidebar-head:hover .menu-sidebar-head-btn{color:var(--PrimaryClr);}
.menu-sidebar-head:has(.menu-sidebar-head-btn[aria-expanded="true"]) .menu-sidebar-head-link,
.menu-sidebar-head-btn[aria-expanded="true"]{color:var(--PrimaryClr); font-weight:600;}
.menu-sidebar-head-btn[aria-expanded="true"] .menu-sidebar-icon::before{content:"\2212";}
.menu-sidebar-head.active{background:var(--ContentSoftBg); border-left-color:var(--PrimaryClr);}

.menu-sidebar-children{padding-bottom:0.5rem;}
.menu-sidebar-children li a{
  padding-top:0.5rem;
  padding-bottom:0.5rem;
  font-weight:400;
}

/* ==========================================================================
   Menu landing grid (About, Departments, ...)
   ========================================================================== */
.menu-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.75rem 1.5rem;
}

.menu-card{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(13,34,52,0.05);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.menu-card:hover{
  transform:translateY(-4px);
  border-color:var(--PrimaryClr);
  box-shadow:0 16px 32px rgba(13,34,52,0.12);
}

.menu-card-img{
  display:block;
  aspect-ratio:4 / 3.5;
  object-position: top;
  background:var(--ContentSoftBg);
  overflow:hidden;
}

.menu-card-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}

.menu-card:hover .menu-card-img img{transform:scale(1.05);}

.menu-card-img--placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
}

.menu-card-img--placeholder img{
  width:auto;
  height:auto;
  object-fit:contain;
  opacity:0.6;
}

.menu-card:hover .menu-card-img--placeholder img{transform:none;}

.menu-card-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.75rem;
  margin-top:auto;
  padding:1.1rem 1.25rem;
  font-size:0.9375rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.02em;
  color:var(--secondaryClr);
  border-top:1px solid var(--ContentBorderClr);
  min-height: 81px;
}

.menu-card-arrow{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--ContentSoftBg);
  color:var(--PrimaryClr);
  transition:background .25s ease, color .25s ease;
}

.menu-card:hover .menu-card-arrow{background:var(--PrimaryClr); color:var(--WhiteClr);}

@media all and (max-width:991px){
  .menu-grid{grid-template-columns:repeat(2, 1fr);}
}

@media all and (max-width:575px){
  .menu-grid{grid-template-columns:1fr; gap:1.5rem;}
}

/* ==========================================================================
   Doctor cards (Clinical Team grid)
   ========================================================================== */
.doctor-grid-title{
  font-size:clamp(1.25rem, 2.2vw, 1.5rem);
  font-weight:700;
  color:var(--secondaryClr);
  margin-bottom:1.75rem;
}

.doctor-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.75rem 1.5rem;
}

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

@media all and (max-width:1199px){
  .doctor-grid--wide{grid-template-columns:repeat(3, 1fr);}
}

.doctor-card{
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(13,34,52,0.05);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  display:flex;
  flex-direction:column;
  height:100%;
}

.doctor-card:hover{
  transform:translateY(-4px);
  border-color:var(--PrimaryClr);
  box-shadow:0 16px 32px rgba(13,34,52,0.12);
}

.doctor-card-photo{
  aspect-ratio:4 / 3.4;
  background:var(--ContentSoftBg);
  overflow:hidden;
  flex:none;
}

.doctor-card-photo img{width:100%; height:100%; object-fit:cover;}

.doctor-card-info{
  background:var(--SectionBGClr );
  padding:1.1rem 1.25rem;
  text-align:center;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.doctor-card-name{
  font-size:1.0625rem;
  font-weight:700;
  color:var(--PrimaryClr);
  margin:0 0 0.2rem;
}

.doctor-card-designation{
  font-size:0.9375rem;
  font-weight:500;
  margin:0 0 0.2rem;
}

.doctor-card-speciality{
  font-size:0.9375rem;
  color:var(--secondaryClr);
  margin:0;
}

.doctor-card-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  flex:none;
}

.doctor-card-actions a,
.btn-book-appointment{
  display:block;
  padding:0.7rem 0.4rem;
  font-size:0.875rem;
  font-weight:600;
  text-align:center;
  text-decoration:none;
  border:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.doctor-card-actions a{font-size:0.8125rem;}

@media all and (max-width:1200px) and (min-width:992px){
  .doctor-card-actions a{font-size:0.75rem; padding-left:0.25rem; padding-right:0.25rem;}
}

.btn-view-profile{background:var(--PrimaryClr); color:var(--WhiteClr);}
.btn-view-profile:hover{background:var(--BlueClr); color:var(--WhiteClr);}

.btn-book-appointment{background:var(--BlueClr); color:var(--WhiteClr); border-radius:6px;}
.btn-book-appointment:hover{background:var(--PrimaryClr); color:var(--WhiteClr);}

.doctor-card-actions .btn-book-appointment{border-radius:0;}

.btn-book-appointment--block{margin-top:1.25rem;}

@media all and (max-width:991px){
  .doctor-grid{grid-template-columns:repeat(2, 1fr);}
}

@media all and (max-width:575px){
  .doctor-grid{grid-template-columns:1fr;}
}

/* --------------------------------------------------------------------------
   Doctor profile page
   -------------------------------------------------------------------------- */
.doctor-profile-card{
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(13,34,52,0.05);
  position:sticky;
  top:100px;
}

.doctor-profile-photo{aspect-ratio:1 / 1; background:var(--ContentSoftBg); overflow:hidden;}
.doctor-profile-photo img{width:100%; height:100%; object-fit:cover;}

.doctor-profile-facts{padding:1.5rem;}

.doctor-profile-facts h3{
  font-size:1.15rem;
  font-weight:700;
  color:var(--secondaryClr);
  margin:0 0 0.25rem;
}

.doctor-profile-designation{
  font-size:0.9375rem;
  font-weight:600;
  color:var(--PrimaryClr);
  margin:0 0 1.1rem;
}

.doctor-profile-meta li{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:0.6rem 0;
  border-top:1px solid var(--ContentBorderClr);
  font-size:0.9rem;
}

.doctor-profile-meta li:first-child{border-top:0;}
.doctor-profile-meta li strong{color:var(--ContentMutedClr); font-weight:500;}
.doctor-profile-meta li span{color:var(--secondaryClr); font-weight:600; text-align:right;}

.doctor-speciality-badges{
  display:flex;
  flex-wrap:wrap;
  gap:0.6rem;
  margin-bottom:1.5rem;
}

.doctor-speciality-badge{
  display:inline-block;
  padding:0.4rem 0.9rem;
  border-radius:999px;
  background:var(--ContentSoftBg);
  color:var(--secondaryClr);
  font-size:0.8125rem;
  font-weight:600;
  text-decoration:none;
}

.doctor-speciality-badge:hover{background:var(--PrimaryClr); color:var(--WhiteClr);}

@media all and (max-width:991px){
  .doctor-profile-card{position:static; margin-bottom:2rem;}
}

/* --------------------------------------------------------------------------
   Doctor listing filter bar
   -------------------------------------------------------------------------- */
.doctor-filter-bar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:0.75rem;
  margin-bottom:2rem;
}

.doctor-filter-label{
  color:var(--PrimaryClr);
  font-weight:700;
  font-size:0.8125rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
  margin-right:0.25rem;
}

.doctor-filter-select{
  padding:0.55rem 2.1rem 0.55rem 1rem;
  border:1px solid var(--ContentBorderClr);
  border-radius:8px;
  background:var(--WhiteClr) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%230d2234' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") right 0.9rem center/10px 6px no-repeat;
  appearance:none;
  -webkit-appearance:none;
  font-size:0.875rem;
  color:var(--secondaryClr);
  cursor:pointer;
}

.doctor-filter-select:focus{outline:0; border-color:var(--PrimaryClr);}

.doctor-filter-search{
  position:relative;
  flex:0 1 320px;
}

.doctor-filter-reset{
  padding:0.55rem 1.1rem;
  border:1px solid var(--PrimaryClr);
  border-radius:8px;
  background:var(--WhiteClr);
  color:var(--PrimaryClr);
  font-size:0.875rem;
  font-weight:600;
  text-decoration:none;
  transition:background .2s, color .2s;
}

.doctor-filter-reset:hover{background:var(--PrimaryClr); color:var(--WhiteClr);}

.doctor-filter-label{margin-left:auto;}

.doctor-filter-input{
  width:100%;
  padding:0.55rem 2.6rem 0.55rem 1rem;
  border:1px solid var(--ContentBorderClr);
  border-radius:8px;
  background:var(--WhiteClr);
  font-size:0.875rem;
  color:var(--secondaryClr);
}

.doctor-filter-input:focus{outline:0; border-color:var(--PrimaryClr);}

.doctor-filter-search-btn{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  width:2.5rem;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:transparent;
  color:var(--PrimaryClr);
  cursor:pointer;
}

@media all and (max-width:575px){
  .doctor-filter-bar{justify-content:flex-start;}
  .doctor-filter-search{flex:1 1 auto;}
  .doctor-filter-label{margin-left:0; flex-basis:100%;}
  .doctor-filter-select{flex:1 1 auto;}
}

/* ==========================================================================
   Health checkup packages
   ========================================================================== */
.package-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.75rem 1.5rem;
}

.package-card{
  display:block;
  text-decoration:none;
  color:inherit;
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(13,34,52,0.05);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.package-card:hover{
  transform:translateY(-4px);
  border-color:var(--PrimaryClr);
  box-shadow:0 16px 32px rgba(13,34,52,0.12);
}

.package-card-img{
  display:block;
  aspect-ratio:4 / 3;
  background:var(--ContentSoftBg);
  overflow:hidden;
}

.package-card-img img{width:100%; height:100%; object-fit:cover; transition:transform .35s ease;}
.package-card:hover .package-card-img img{transform:scale(1.05);}

.package-card-body{display:block; padding:1.1rem 1.25rem;}

.package-card-name{
  display:block;
  font-size:0.9375rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.02em;
  color:var(--secondaryClr);
  margin-bottom:0.6rem;
}

.package-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.75rem;
}

.package-card-price{font-size:1.05rem; font-weight:700; color:var(--PrimaryClr);}

.package-card-arrow{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--ContentSoftBg);
  color:var(--PrimaryClr);
  transition:background .25s ease, color .25s ease;
}

.package-card:hover .package-card-arrow{background:var(--PrimaryClr); color:var(--WhiteClr);}

@media all and (max-width:991px){
  .package-grid{grid-template-columns:repeat(2, 1fr);}
}

@media all and (max-width:575px){
  .package-grid{grid-template-columns:1fr;}
}

/* --------------------------------------------------------------------------
   Health checkup package detail page
   -------------------------------------------------------------------------- */
.package-price-card{
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(13,34,52,0.05);
  position:sticky;
  top:100px;
}

.package-price-card-img{aspect-ratio:4 / 3; background:var(--ContentSoftBg); overflow:hidden;}
.package-price-card-img img{width:100%; height:100%; object-fit:cover;}

.package-price-card-body{padding:1.5rem; text-align:center;}

.package-price-card-label{
  display:block;
  font-size:0.8125rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--ContentMutedClr);
  margin-bottom:0.35rem;
}

.package-price-card-value{
  display:block;
  font-size:1.75rem;
  font-weight:700;
  color:var(--PrimaryClr);
  margin-bottom:1.25rem;
}

@media all and (max-width:991px){
  .package-price-card{position:static; margin-bottom:2rem;}
}

/* --------------------------------------------------------------------------
   Book an appointment page
   -------------------------------------------------------------------------- */
.bka-card{background:var(--WhiteClr); border:1px solid var(--ContentBorderClr); border-radius:12px; padding:2rem; max-width:900px; margin:0 auto;}
.bka-card h2{font-size:1rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--secondaryClr); font-weight:700; margin:0 0 1rem;}
.bka-section + .bka-section{margin-top:2rem; padding-top:2rem; border-top:1px solid var(--ContentBorderClr);}
.bka-card label{font-weight:600; font-size:0.875rem; color:var(--secondaryClr); margin-bottom:0.4rem; display:inline-block;}
.bka-card .form-control,
.bka-card .form-select{border-color:var(--ContentBorderClr); padding:0.6rem 0.85rem; font-size:0.95rem;}
.bka-card .form-control:focus,
.bka-card .form-select:focus{border-color:var(--PrimaryClr); box-shadow:0 0 0 0.15rem rgba(226,54,45,0.12);}
.bka-datetime-field{cursor:pointer; background:var(--WhiteClr);}
.bka-submit-btn{min-width:200px;}

/* Choices.js styling for the Speciality / Doctor / Country selects, matched
   to the theme's form-control look */
.bka-card .choices{margin-bottom:0;}
.bka-card .choices .choices__inner{background:var(--WhiteClr); border-color:var(--ContentBorderClr); padding:0.4rem 0.85rem; min-height:calc(1.5em + 1.2rem + 2px); font-size:0.95rem;}
.bka-card .choices.is-focused .choices__inner{border-color:var(--PrimaryClr); box-shadow:0 0 0 0.15rem rgba(226,54,45,0.12);}
.bka-card .choices__list--dropdown .choices__item--selectable.is-highlighted{background:var(--PrimaryClr); color:var(--WhiteClr);}

/* Mobile number: country-code select (Choices.js) and number input rendered
   as one combined field - single shared border, divider between the two.
   NOTE: deliberately no `overflow:hidden` on the group - Choices.js renders
   its dropdown panel as a descendant of this container, and clipping the
   container would clip the (open) dropdown too, making it invisible. The
   merged/rounded look is achieved per-child instead (like a Bootstrap
   input-group): left corners on the select, right corners on the input. */
.bka-mobile-group{display:flex; align-items:stretch; border:1px solid var(--ContentBorderClr); border-radius:0.375rem; background:var(--WhiteClr); transition:border-color .15s ease, box-shadow .15s ease;}
.bka-mobile-group:focus-within{border-color:var(--PrimaryClr); box-shadow:0 0 0 0.15rem rgba(226,54,45,0.12);}
.bka-mobile-group .choices{flex:0 0 150px; width:150px; margin-bottom:0;}
.bka-mobile-group .choices .choices__inner{border:0; border-right:1px solid var(--ContentBorderClr); border-radius:0.375rem 0 0 0.375rem; min-height:calc(1.5em + 1.2rem);}
.bka-mobile-group .choices.is-open .choices__inner{border-radius:0.375rem 0 0 0;}
.bka-mobile-group .choices.is-focused .choices__inner{border-color:var(--ContentBorderClr); box-shadow:none;}
/* Long country names (e.g. "United States Minor Outlying Islands") must not
   break the fixed-width box once selected - truncate instead. */
.bka-mobile-group .choices .choices__list--single .choices__item{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
/* The dropdown panel itself must NOT be limited to the closed box's 150px -
   country names need real room, or they wrap letter-by-letter. */
.bka-mobile-group .choices .choices__list--dropdown{width:280px;}
.bka-mobile-group .form-control{flex:1 1 auto; min-width:0; border:0; border-radius:0 0.375rem 0.375rem 0;}
.bka-mobile-group .form-control:focus{border:0; box-shadow:none;}
.bka-mobile-note{display:block; font-size:0.8125rem; color:var(--ContentMutedClr); margin-top:0.4rem;}

/* Date & time picker modal (custom calendar, no external datepicker library) */
#bkaDateTimeModal .modal-content{border:0; border-radius:10px; overflow:hidden;}
#bkaDateTimeModal .modal-header{background:var(--PrimaryClr); color:var(--WhiteClr); border:0; padding:0.9rem 1.25rem;}
#bkaDateTimeModal .modal-header .btn-close{filter:invert(1) grayscale(1) brightness(2);}
#bkaDateTimeModal .modal-body{padding:1.5rem;}

.bka-cal-nav{display:flex; align-items:center; justify-content:space-between; background:var(--PrimaryClr); color:var(--WhiteClr); border-radius:6px; padding:0.5rem 0.75rem; font-weight:700; text-transform:uppercase; font-size:0.85rem; margin-bottom:0.75rem;}
.bka-cal-nav button{background:transparent; border:0; color:var(--WhiteClr); font-size:1rem; line-height:1; padding:0.15rem 0.5rem;}
.bka-cal-nav button:disabled{opacity:0.35;}

.bka-cal-grid{display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; text-align:center;}
.bka-cal-grid .bka-cal-dow{font-weight:700; font-size:0.8rem; color:var(--PrimaryClr); padding:0.35rem 0;}
.bka-cal-grid button.bka-cal-day{border:0; background:transparent; padding:0.5rem 0; border-radius:4px; font-size:0.9rem; color:var(--secondaryClr);}
.bka-cal-grid button.bka-cal-day:hover:not(:disabled){background:var(--PrimaryClr); color:var(--WhiteClr);}
.bka-cal-grid button.bka-cal-day.is-selected{background:var(--PrimaryClr); color:var(--WhiteClr); font-weight:700;}
.bka-cal-grid button.bka-cal-day:disabled{color:var(--ContentBorderClr); cursor:not-allowed;}
.bka-cal-grid span.bka-cal-empty{padding:0.5rem 0;}

/* Preferred time (Morning / Afternoon / Evening / No Preference) button grid */
.bka-time-label{text-align:center; text-transform:uppercase; color:var(--PrimaryClr); font-weight:700; font-size:0.85rem; margin:1.25rem 0 0.6rem;}
.bka-time-grid{display:grid; grid-template-columns:1fr 1fr; gap:0.6rem;}
.bka-time-grid label{display:block; text-align:center; background:var(--secondaryClr); color:var(--WhiteClr); border-radius:4px; padding:0.55rem 0.5rem; font-size:0.85rem; font-weight:500; cursor:pointer; margin:0; transition:background 0.15s ease;}
.bka-time-grid input{position:absolute; opacity:0; pointer-events:none;}
.bka-time-grid input:checked + label{background:var(--PrimaryClr);}
.bka-time-grid label:hover{background:var(--PrimaryClr);}
#bka-date-time-error{display:none; text-align:center; color:#dc3545; font-size:0.85rem; margin-top:0.75rem;}
/* ==========================================================================
   Awards
   ========================================================================== */
.award-list{
  display:flex;
  flex-direction:column;
  gap:2rem;
}

.award-card{
  position:relative;
  background:var(--WhiteClr);
  border:1px solid var(--PrimaryClr);
  border-top-color:var(--secondaryClr);
  border-right-color:var(--secondaryClr);
  padding:1.5rem;
  grid-template-columns:40% 1fr;
}

.award-photo{
  width:100%;
  height:200px;
  padding:6px;
  border:1px solid var(--ContentBorderClr);
  background:var(--WhiteClr);
  overflow:hidden;
  cursor:zoom-in;
  transition:box-shadow .25s ease;
}

.award-photo:hover,
.award-photo:focus-visible{box-shadow:0 10px 24px rgba(13,34,52,0.22); outline:none;}

.award-photo img{width:100%; height:100%; object-fit:cover; display:block;}

.award-title{
  font-size: clamp(1rem, 1.1rem + 0.4vw, 1.2rem);
  line-height:1.3;
  font-weight:600;
  color:var(--PrimaryClr);
  margin-bottom:1rem;
}
.award-description > :last-child{margin-bottom:0;}

.award-modal{position:relative; background:var(--WhiteClr); border:0; border-radius:10px; padding:1rem; align-items:center;}
.award-modal-img{max-width:100%; max-height:calc(100vh - 10rem); object-fit:contain;}

/* The site header sits at z-index 9999, above Bootstrap's modal (1055) and backdrop (1050),
   which would cover the top of the image. Lift both above it while this modal is open. */
#awardImageModal{z-index:10001;}
body.award-modal-open .modal-backdrop{z-index:10000;}
.award-modal-title{margin:0.85rem 0 0.25rem; font-weight:600; text-align:center; color:var(--secondaryClr);}
.award-modal-close{position:absolute; top:0.6rem; right:0.6rem; z-index:2; background-color:var(--WhiteClr); border-radius:50%; padding:0.6rem; opacity:1; box-shadow:0 2px 8px rgba(0,0,0,0.25);}

@media all and (max-width:767px){
  .award-card{ grid-template-columns: 1fr;}
}

/* ==========================================================================
   Events
   ========================================================================== */
.event-previous-btn{
  display:inline-block;
  background:var(--PrimaryClr);
  color:var(--WhiteClr);
  font-weight:600;
  padding:0.6rem 1.35rem;
  border-radius:6px;
  white-space:nowrap;
}
.event-previous-btn:hover{background:var(--secondaryClr); color:var(--WhiteClr);}

.event-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.75rem 1.5rem;
}

.event-card{
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(13,34,52,0.05);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.event-card:hover{
  transform:translateY(-4px);
  border-color:var(--PrimaryClr);
  box-shadow:0 16px 32px rgba(13,34,52,0.12);
}

.event-card-img{display:block; aspect-ratio:4 / 3; background:var(--ContentSoftBg); overflow:hidden;}
.event-card-img img{width:100%; height:100%; object-fit:cover; transition:transform .35s ease;}
.event-card:hover .event-card-img img{transform:scale(1.05);}

.event-card-body{padding:1.1rem 1.25rem;}

.event-card-date{
  display:block;
  font-size:0.8125rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.03em;
  color:var(--PrimaryClr);
  margin-bottom:0.4rem;
}

.event-card-title{font-size:1.05rem; margin:0 0 0.75rem;}
.event-card-title a{color:var(--secondaryClr); text-decoration:none;}
.event-card-title a:hover{color:var(--PrimaryClr);}

.event-card-readmore{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  font-weight:600;
  font-size:0.875rem;
  color:var(--PrimaryClr);
  text-decoration:none;
}
.event-card-readmore:hover{color:var(--secondaryClr);}

.event-year-tabs{display:flex; flex-wrap:wrap; gap:0.6rem; margin-bottom:2rem;}
.event-year-tab{
  display:inline-block;
  background:var(--secondaryClr);
  color:var(--WhiteClr);
  font-weight:700;
  padding:0.6rem 1.1rem;
  border-radius:6px;
  text-decoration:none;
  transition:background .2s ease;
}
.event-year-tab:hover{background:var(--PrimaryClr); color:var(--WhiteClr);}
.event-year-tab.active{background:var(--PrimaryClr); color:var(--WhiteClr);}

.event-detail-card{background:var(--WhiteClr); border:1px solid var(--ContentBorderClr); border-radius:12px; padding:2rem; margin-bottom:2rem;}
.event-detail-img{border-radius:10px; overflow:hidden; margin-bottom:1.5rem;}
.event-detail-img img{width:100%; height:auto; display:block;}

.event-detail-meta{display:flex; flex-wrap:wrap; gap:1.5rem; margin-bottom:1.5rem; padding-bottom:1.5rem; border-bottom:1px solid var(--ContentBorderClr);}
.event-detail-meta div span{display:block; color:var(--ContentMutedClr); font-size:0.8125rem; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:0.2rem;}
.event-detail-meta div strong{color:var(--secondaryClr);}

.event-document-btn{
  display:inline-flex;
  align-items:center;
  gap:0.75rem;
  margin-top:1.25rem;
  background:var(--PrimaryClr);
  color:var(--WhiteClr);
  font-weight:700;
  padding:0.5rem 1.5rem 0.5rem 0.5rem;
  border-radius:10px;
  text-decoration:none;
  transition:background .2s ease;
}
.event-document-btn:hover{background:var(--secondaryClr); color:var(--WhiteClr);}

.event-document-icon{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:8px;
  background:rgba(255,255,255,0.2);
}

.event-register-card{background:var(--WhiteClr); border:1px solid var(--ContentBorderClr); border-radius:12px; padding:2rem;}
.event-register-title{font-weight:700; color:var(--secondaryClr); margin-bottom:0.5rem;}
.event-register-card label{font-weight:600; font-size:0.875rem; color:var(--secondaryClr); margin-bottom:0.4rem; display:inline-block;}
.event-register-submit{background:var(--PrimaryClr); color:var(--WhiteClr); border:0; padding:0.7rem 2rem; border-radius:6px; font-weight:600;}
.event-register-submit:hover{background:var(--secondaryClr); color:var(--WhiteClr);}

@media all and (max-width:991px){
  .event-grid{grid-template-columns:repeat(2, 1fr);}
}

@media all and (max-width:575px){
  .event-grid{grid-template-columns:1fr;}
}

.bmw-table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch; margin-bottom:2.5rem; border-radius:8px;}
.bmw-table{width:100%; min-width:900px; border-collapse:collapse; font-size:0.9375rem; text-align:center;}
.bmw-table thead th{background:var(--secondaryClr); color:var(--WhiteClr); font-weight:700; padding:0.6rem 0.5rem; border:1px solid rgba(255,255,255,0.35); vertical-align:middle; white-space:nowrap;}
.bmw-table thead th.bmw-red{background:#ff0000; color:var(--WhiteClr);}
.bmw-table thead th.bmw-yellow{background:#ffff00; color:var(--BlackClr);}
.bmw-table tbody td{padding:0.85rem 0.5rem; color:var(--secondaryClr); border-bottom:1px solid #eef2f7; white-space:nowrap;}
.bmw-table tbody tr:nth-child(even) td{background:#f5f9ff;}
.bmw-table .bmw-sr{width:70px;}
.bmw-table .bmw-date{min-width:90px;}

/* ==========================================================================
   Media
   ========================================================================== */
.media-year-tabs{display:grid; grid-template-columns:repeat(auto-fill, minmax(110px, 1fr)); gap:1rem; margin-bottom:2.5rem;}
.media-year-tab{
  position:relative;
  display:block;
  background:var(--secondaryClr);
  color:var(--WhiteClr);
  font-size:1.25rem;
  text-align:center;
  padding:0.85rem 0.5rem;
  text-decoration:none;
  transition:background .2s ease;
}
.media-year-tab:hover,
.media-year-tab.active{background:var(--PrimaryClr); color:var(--WhiteClr);}
.media-year-tab.active::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-10px;
  transform:translateX(-50%);
  border-left:12px solid transparent;
  border-right:12px solid transparent;
  border-top:10px solid var(--PrimaryClr);
}

.media-list{display:flex; flex-direction:column; gap:2rem;}

.media-card{
  background:var(--WhiteClr);
  border:1px solid var(--PrimaryClr);
  border-top-color:var(--secondaryClr);
  border-right-color:var(--secondaryClr);
  padding:1rem 0;
}

.media-card-date{
  display:inline-block;
  background:var(--PrimaryClr);
  color:var(--WhiteClr);
  font-size:1rem;
  font-weight:700;
  line-height:1;
  padding:0.7rem 1.5rem;
}

.media-card-body{padding:2rem 3.75rem 0;}

.media-card-title{font-size:18px; line-height:1.35; font-weight:600; margin:0 0 1rem;}
.media-card-title a{color:var(--PrimaryClr); text-decoration:none;}
.media-card-title a:hover{color:var(--secondaryClr);}

.media-card-excerpt{font-size:1.0625rem; line-height:1.85; color:var(--ContentTextClr); margin:0;}

.media-card-footer{display:flex; justify-content:flex-end; margin-top:1.25rem;}
.media-card-readmore{display:inline-flex; align-items:center; gap:0.6rem; font-size:1.125rem; color:var(--secondaryClr); text-decoration:none;}
.media-card-readmore:hover{color:var(--PrimaryClr);}

/* Image lightbox reuses the award modal styles; lift it above the fixed site header the same way. */
#mediaImageModal{z-index:10001;}
body.media-modal-open .modal-backdrop{z-index:10000;}


@media all and (max-width:767px){
  .media-year-tabs{grid-template-columns:repeat(auto-fill, minmax(80px, 1fr)); gap:0.6rem;}
  .media-year-tab{font-size:1rem; padding:0.6rem 0.25rem;}
  .media-card-date{font-size:1.2rem; padding:0.85rem 1.5rem;}
  .media-card-body{padding:1.5rem 1.25rem 0;}
}

/* --------------------------------------------------------------------------
   Department / Centre FAQs
   -------------------------------------------------------------------------- */
.dept-faqs{max-width:var(--ContentMaxWidth); margin-top:3rem;}
.dept-faqs-title{
  font-size:clamp(1.4rem, 2.6vw, 1.75rem);
  font-weight:600;
  color:var(--ContentHeadingClr);
  line-height:1.2;
  margin:0 0 1rem;
}

.dept-faqs .accordion{display:flex; flex-direction:column; gap:0.75rem; --bs-accordion-border-radius:8px; --bs-accordion-inner-border-radius:8px;}
.dept-faqs .accordion-item{margin:0; background:var(--WhiteClr); border:1px solid #e3e8f0; border-radius:8px; overflow:hidden;}
.dept-faqs .accordion-item:not(:first-of-type){border-top:1px solid #e3e8f0;}
.dept-faqs .accordion-item:has(.accordion-button:not(.collapsed)){border-color:#cfdcef;}
.dept-faqs .accordion-header{margin:0;}
.dept-faqs .accordion-button{
  gap:1rem;
  font-size:1rem;
  font-weight:500;
  line-height:1.5;
  color:var(--ContentHeadingClr);
  background:var(--WhiteClr);
  padding:0.875rem 1.25rem;
  box-shadow:none;
}
/* Thin chevron in place of Bootstrap's icon: down when closed, up when open */
.dept-faqs .accordion-button::after{
  width:9px;
  height:9px;
  margin-top:-4px;
  background:none;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
  transition:transform .2s ease;
}
.dept-faqs .accordion-button:not(.collapsed){color:var(--ContentHeadingClr); background:#f2f7fd; box-shadow:none;}
.dept-faqs .accordion-button:not(.collapsed)::after{background:none; transform:rotate(-135deg); margin-top:4px;}
.dept-faqs .accordion-button:focus{box-shadow:none; border-color:transparent;}
.dept-faqs .accordion-body{
  font-size:1rem;
  line-height:1.65;
  color:#4a556b;
  padding:0.75rem 1.25rem 1rem;
}
.dept-faqs .accordion-body > :last-child{margin-bottom:0;}
.dept-faqs .accordion-body p{margin:0 0 0.85rem;}
.dept-faqs .accordion-body a{
  color:var(--PrimaryClr);
  font-weight:500;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  word-break:break-word;
}
.dept-faqs .accordion-body a:hover{color:var(--secondaryClr);}

/* ==========================================================================
   Corporate Tieups
   ========================================================================== */
.tieup-intro{margin-bottom:2rem;}
.tieup-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.75rem;
}
.tieup-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1.25rem;
  min-height:240px;
  padding:1.75rem 1.25rem;
  text-align:center;
  text-decoration:none;
  color:var(--secondaryClr);
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  box-shadow:0 4px 16px rgba(13,34,52,0.08);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
a.tieup-card:hover{
  transform:translateY(-4px);
  border-color:var(--PrimaryClr);
  box-shadow:0 16px 32px rgba(13,34,52,0.12);
  color:var(--secondaryClr);
}
.tieup-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:110px;
}
.tieup-logo img{max-width:80%; max-height:100%; object-fit:contain;}
.tieup-name{font-weight:700; font-size:1.05rem; line-height:1.4;}
@media (max-width:991.98px){
  .tieup-grid{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width:575.98px){
  .tieup-grid{grid-template-columns:1fr; gap:1.25rem;}
  .tieup-card{min-height:200px;}
}

/* TPAs - category groups */
.tpa-group + .tpa-group{margin-top:3rem;}
.tpa-group-title{
  font-size:clamp(1.25rem, 2.2vw, 1.5rem);
  font-weight:700;
  color:var(--secondaryClr);
  margin-bottom:1.75rem;
}

/* Tie-up request form - facility checkboxes */
.tieup-facilities{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:.75rem 1.5rem; padding-top:.35rem;}
.tieup-facilities .form-check{display:flex; align-items:center; gap:.65rem; margin:0; padding-left:0;}
.tieup-facilities .form-check-input{float:none; width:1.35rem; height:1.35rem; margin:0; flex-shrink:0; border:2px solid var(--secondaryClr); border-radius:0; cursor:pointer;}
.tieup-facilities .form-check-input:checked{background-color:var(--secondaryClr); border-color:var(--secondaryClr);}
.tieup-facilities .form-check-input:focus{box-shadow:0 0 0 .2rem rgba(13,34,52,0.15);}
.bka-card .tieup-facilities .form-check-label{margin:0; font-weight:400; cursor:pointer;}
@media (max-width:575.98px){
  .tieup-facilities{grid-template-columns:1fr;}
}

/* Form declaration checkbox (Billing - Get in Touch) */
.form-consent{display:flex; align-items:flex-start; gap:.75rem; margin:0; padding-left:0;}
.form-consent .form-check-input{float:none; width:1.35rem; height:1.35rem; margin:.15rem 0 0; flex-shrink:0; border:2px solid var(--secondaryClr); border-radius:0; cursor:pointer;}
.form-consent .form-check-input:checked{background-color:var(--secondaryClr); border-color:var(--secondaryClr);}
.form-consent .form-check-input:focus{box-shadow:0 0 0 .2rem rgba(13,34,52,0.15);}
.bka-card .form-consent .form-check-label{margin:0; font-weight:400; line-height:1.6; cursor:pointer;}

/* Online Payment */
.online-payment-intro p{margin-bottom:.75rem;}
.online-payment-summary td{padding:.45rem 0; border-bottom:1px solid var(--ContentBorderClr);}
.online-payment-summary td:first-child{width:40%; color:var(--secondaryClr); font-weight:600;}

/* Health Checkup Booking */
.package-booking-name{font-size:1.15rem; font-weight:700; color:var(--secondaryClr); margin:.25rem 0 1rem;}
.package-booking-link{display:inline-block; margin-top:.75rem; font-weight:600; color:var(--PrimaryClr); text-decoration:underline;}
.booking-gender{display:flex; flex-wrap:wrap; gap:1.5rem; padding-top:.5rem;}
.booking-gender .form-check{margin:0; display:flex; align-items:center; gap:.5rem; padding-left:0;}
.booking-gender .form-check-input{float:none; width:1.35rem; height:1.35rem; margin:0; border:2px solid var(--secondaryClr); cursor:pointer;}
.booking-gender .form-check-input:checked{background-color:var(--secondaryClr); border-color:var(--secondaryClr);}
.bka-card .booking-gender .form-check-label{margin:0; font-weight:400; cursor:pointer;}
