@charset "utf-8";

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

:root{
  --ContentMaxWidth   : 900px;
  --ContentTextClr    : #37414d;
  --ContentMutedClr   : #6b7683;
  --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(--secondaryClr);
  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(--secondaryClr); font-weight:500;}

/* --------------------------------------------------------------------------
   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(--secondaryClr);
  font-weight:700;
  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(--secondaryClr); font-weight:600;}

.page-content em{color:inherit;}

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

.page-content a{
  color:var(--PrimaryClr);
  font-weight:500;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  word-break:break-word;
}
.page-content a: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(--secondaryClr); 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)
   ========================================================================== */
.dept-sidebar{
  background:var(--WhiteClr);
  border:1px solid var(--ContentBorderClr);
  border-radius:10px;
  overflow:hidden;
  position:sticky;
  top:100px;
}

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

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

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

.dept-sidebar-nav li a{
  display:block;
  padding:0.65rem 1.35rem;
  color:var(--ContentTextClr);
  font-size:0.9375rem;
  font-weight:500;
  text-decoration:none;
  border-left:3px solid transparent;
}

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

.dept-sidebar-nav li a.active{
  color:var(--PrimaryClr);
  background:var(--ContentSoftBg);
  border-left-color:var(--PrimaryClr);
  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.04em;
  color:var(--ContentMutedClr);
}

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

.dept-sidebar-toplink{
  font-weight:700;
  text-transform:uppercase;
  font-size:0.875rem;
  letter-spacing:0.03em;
}

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

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

/* ==========================================================================
   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;
  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);
}

.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;
}

.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;
}

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

.doctor-card-info{
  background:#fdeceb;
  padding:1.1rem 1.25rem;
  text-align: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:700;
  color:var(--PrimaryClr);
  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;
}

.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(--secondaryClr); color:var(--WhiteClr);}

.btn-book-appointment{background:var(--secondaryClr); 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);}

@media all and (max-width:575px){
  .doctor-filter-bar{justify-content:flex-start;}
  .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;}
}
