:root {
  --primary:#0b7fab;
  --primary-dark:#075d80;
  --secondary:#20c997;
  --accent:#ff8a65;
  --ink:#112a3b;
  --muted:#6b7d89;
  --light:#f4fbfd;
  --white:#fff;
  --shadow:0 18px 55px rgba(12,73,99,.13)
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  font-family:Manrope,sans-serif;
  color:var(--ink);
  background:#fff;
  overflow-x:hidden
}

h1,h2,h3,h4 {
  font-weight:800
}

a {
  text-decoration:none
}

.section-padding {
  padding:100px 0
}

.section-label {
  display:inline-block;
  color:var(--primary);
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.78rem;
  margin-bottom:14px
}

.section-label.light {
  color:#baf8e8
}

.section-title {
  font-size: 30px;
  line-height:1.15;
  margin-bottom:20px
}

.section-heading {
  max-width:740px;
  margin:auto
}

.section-heading p,.about-section p,.experience-section p {
  color:var(--muted);
  line-height:1.8
}

.page-loader {
  position:fixed;
  inset:0;
  background:#fff;
  z-index:9999;
  display:grid;
  place-items:center;
  transition:.5s
}

.page-loader.hide {
  opacity:0;
  visibility:hidden
}

.loader-heart {
  font-size:3rem;
  color:var(--primary);
  animation:pulse 1s infinite
}

@keyframes pulse {
  50% {
    transform:scale(1.25);
    color:var(--secondary)
  }
}

.navbar {
  padding:15px 0;
  transition:.35s
}

.navbar.scrolled {
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(15px);
  box-shadow:0 8px 30px rgba(18,52,67,.08);
  padding:10px 0
}

.navbar-brand {
  color:var(--ink)
}

.navbar-brand small {
  display:block;
  font-size:.62rem;
  letter-spacing:.16em;
  color:var(--muted)
}

.brand-icon {
  width:42px;
  height:42px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  display:grid;
  place-items:center;
  color:white
}

.nav-link {
  font-weight:700;
  color:var(--ink)!important;
  padding:.7rem 1rem!important
}

.nav-link.active {
  color:var(--primary)!important
}

.btn-primary {
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  border:none;
  box-shadow:0 10px 25px rgba(11,127,171,.25)
}

.btn-primary:hover {
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(11,127,171,.34)
}

.hero-section {
  position:relative;
  overflow:hidden;
  background:radial-gradient(circle at 85% 20%,rgba(32,201,151,.2),transparent 27%),linear-gradient(135deg,#f8fdff 0%,#e9f8fb 55%,#f4fffb 100%)
}

.hero-copy {
  padding-top:60px
}

.eyebrow {
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff;
  padding:9px 15px;
  border-radius:100px;
  font-size:12px;
  font-weight:800;
  color:var(--primary);
  box-shadow:0 10px 30px rgba(12,73,99,.1)
}

.hero-copy h1 {
  font-family:'Playfair Display',serif;
  font-size:55px;
  line-height:.98;
  margin:24px 0;
  color:var(--ink)
}

.hero-copy h1 span {
  color:var(--primary)
}

.hero-text {
  font-size:1.08rem;
  line-height:1.8;
  color:var(--muted);
  max-width:660px
}

.hero-orb {
  position:absolute;
  border-radius:50%;
  filter:blur(2px);
  opacity:.65
}

.orb-one {
  width:350px;
  height:350px;
  background:rgba(11,127,171,.12);
  left:-150px;
  top:10%
}

.orb-two {
  width:280px;
  height:280px;
  background:rgba(255,138,101,.13);
  right:-90px;
  bottom:5%
}

.stat-card {
  background:rgba(255,255,255,.75);
  border:1px solid rgba(255,255,255,.9);
  padding:16px;
  border-radius:18px;
  backdrop-filter:blur(12px);
  height:100%
}

.stat-card strong {
  display:block;
  color:var(--primary);
  font-size:1.8rem
}

.stat-card span {
  font-size:.73rem;
  color:var(--muted);
  font-weight:700
}

.doctor-visual {
  position:relative;
  min-height:520px;
  display:grid;
  place-items:center
}

.profile-glow {
  position:absolute;
  width:390px;
  height:390px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  filter:drop-shadow(0 35px 45px rgba(11,127,171,.23));
  animation:float 5s ease-in-out infinite
}

.doctor-card {
  position:relative;
  width:min(390px,90%);
  padding:42px 35px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(255,255,255,.95);
  border-radius:36px;
  box-shadow:var(--shadow);
  text-align:center;
  backdrop-filter:blur(16px)
}

.doctor-avatar {
  width:130px;
  height:130px;
  border-radius:50%;
  margin:0 auto 20px;
  background:linear-gradient(135deg,#dff6ff,#dffcf4);
  display:grid;
  place-items:center;
  font-size:5rem;
  color:var(--primary);
  border:8px solid #fff;
  box-shadow:0 15px 35px rgba(11,127,171,.18)
}

.availability {
  display:inline-flex;
  gap:7px;
  align-items:center;
  font-size:.75rem;
  font-weight:800;
  color:#23795e;
  background:#e9fff7;
  padding:7px 10px;
  border-radius:100px
}

.availability span {
  width:8px;
  height:8px;
  border-radius:50%;
  background:#24b47e;
  box-shadow:0 0 0 5px rgba(36,180,126,.15)
}

.doctor-card h2 {
  font-size:28px;
  margin:16px 0 4px
}

.doctor-card>p {
  color:var(--muted)
}

.speciality-tags {
  display:flex;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap
}

.speciality-tags span {
  font-size:.72rem;
  background:#eff8fb;
  color:var(--primary-dark);
  padding:7px 10px;
  border-radius:50px;
  font-weight:800
}

.card-contact {
  display:grid;
  gap:8px;
  margin-top:20px
}

.card-contact a {
  color:var(--ink);
  font-weight:700;
  font-size:.9rem
}

.card-contact i {
  color:var(--primary);
  margin-right:5px
}

.floating-badge {
  position:absolute;
  display:flex;
  align-items:center;
  gap:10px;
  background:#fff;
  border-radius:18px;
  padding:12px 15px;
  box-shadow:var(--shadow);
  font-size:.75rem;
  font-weight:800;
  animation:float 4s ease-in-out infinite
}

.floating-badge i {
  font-size:1.5rem;
  color:var(--primary)
}

.badge-1 {
  left:-10px;
  top:90px
}

.badge-2 {
  right:-15px;
  bottom:90px;
  animation-delay:1s
}

@keyframes float {
  50% {
    transform:translateY(-13px)
  }
}

.trust-strip {
  background:var(--ink);
  color:#fff
}

.trust-strip i {
  font-size:1.5rem;
  color:var(--secondary);
  margin-right:8px
}

.trust-strip span {
  font-weight:700;
  font-size:.9rem
}

.about-section {
  background:#fff
}

.about-visual {
  min-height:480px;
  border-radius:36px;
  background:linear-gradient(145deg,#e4f7fb,#dffbf3);
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden
}

.about-visual:before {
  content:"";
  position:absolute;
  width:250px;
  height:250px;
  border:55px solid rgba(11,127,171,.1);
  border-radius:50%
}

.about-icon {
  font-size:8rem;
  color:var(--primary);
  z-index:1;
  animation:pulse 2.5s infinite
}

.years-box {
  position:absolute;
  bottom:28px;
  right:28px;
  background:#fff;
  padding:20px;
  border-radius:20px;
  box-shadow:var(--shadow);
  max-width:180px
}

.years-box strong {
  font-size:2.4rem;
  color:var(--primary);
  display:block
}

.years-box span {
  font-size:.76rem;
  font-weight:800;
  color:var(--muted)
}

.info-pill {
  height:100%;
  padding:16px;
  border:1px solid #e7f0f3;
  border-radius:18px;
  display:flex;
  gap:12px;
  align-items:center
}

.info-pill i {
  font-size:1.5rem;
  color:var(--primary)
}

.info-pill small,.info-pill strong {
  display:block
}

.info-pill small {
  color:var(--muted);
  font-size:.72rem
}

.info-pill strong {
  font-size:.85rem
}

.services-section {
  background:var(--light)
}

.service-card {
  height:100%;
  background:#fff;
  border-radius:24px;
  padding:30px;
  border:1px solid transparent;
  box-shadow:0 10px 30px rgba(12,73,99,.06);
  transition:.35s
}

.service-card:hover {
  transform:translateY(-10px);
  border-color:rgba(11,127,171,.18);
  box-shadow:var(--shadow)
}

.service-icon {
  width:64px;
  height:64px;
  border-radius:20px;
  background:linear-gradient(135deg,#e4f8ff,#e4fff7);
  display:grid;
  place-items:center;
  font-size:1.9rem;
  color:var(--primary);
  margin-bottom:22px
}

.service-card h3 {
  font-size:1.25rem
}

.service-card p {
  color:var(--muted);
  line-height:1.7
}

.service-card a {
  color:var(--primary);
  font-weight:800;
  font-size:.9rem
}

.experience-section {
  background:#fff
}

.timeline {
  position:relative;
  padding-left:30px
}

.timeline:before {
  content:"";
  position:absolute;
  left:7px;
  top:12px;
  bottom:12px;
  width:2px;
  background:linear-gradient(var(--primary),var(--secondary))
}

.timeline-item {
  position:relative;
  display:grid;
  grid-template-columns:100px 1fr;
  gap:20px;
  margin-bottom:28px
}

.timeline-item:before {
  content:"";
  position:absolute;
  left:-29px;
  top:8px;
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--secondary);
  border:4px solid #fff;
  box-shadow:0 0 0 3px rgba(32,201,151,.22)
}

.timeline-item>span {
  font-size:.77rem;
  font-weight:800;
  color:var(--primary);
  background:#eaf8fb;
  height:max-content;
  padding:7px 9px;
  border-radius:50px;
  text-align:center
}

.timeline-item h4 {
  margin:0;
  font-size:1.1rem
}

.timeline-item p {
  margin:4px 0;
  color:var(--ink);
  font-weight:700
}

.timeline-item small {
  color:var(--muted);
  line-height:1.6;
  display:block
}

.appointment-section {
  background:linear-gradient(180deg,#f7fcfe,#fff)
}

.appointment-shell {
  border-radius:32px;
  overflow:hidden;
  box-shadow:var(--shadow);
  background:#fff
}

.appointment-info {
  background:linear-gradient(145deg,var(--primary-dark),var(--primary));
  color:#fff;
  padding:55px
}

.appointment-info h2 {
  font-size:2.4rem;
  line-height:1.2
}

.appointment-info>p {
  color:rgba(255,255,255,.78);
  line-height:1.7
}

.contact-line {
  display:flex;
  gap:15px;
  align-items:center;
  margin-top:24px
}

.contact-line i {
  width:45px;
  height:45px;
  border-radius:14px;
  background:rgba(255,255,255,.14);
  display:grid;
  place-items:center
}

.contact-line small,.contact-line strong {
  display:block
}

.contact-line small {
  color:rgba(255,255,255,.65);
  font-size:.72rem
}

.contact-line strong {
  font-size:.9rem;
  word-break:break-word
}

.appointment-form-wrap {
  padding:55px
}

.form-control,.form-select {
  border:1px solid #dde9ed;
  border-radius:14px;
  padding:13px 15px
}

.form-control:focus,.form-select:focus {
  border-color:var(--primary);
  box-shadow:0 0 0 .22rem rgba(11,127,171,.1)
}

.form-label {
  font-size:.8rem;
  font-weight:800;
  color:var(--ink)
}

.contact-card {
  text-align:center;
  padding:28px;
  border:1px solid #e8f0f3;
  border-radius:22px;
  height:100%;
  transition:.3s
}

.contact-card:hover {
  transform:translateY(-7px);
  box-shadow:var(--shadow)
}

.contact-card i {
  font-size:2rem;
  color:var(--primary)
}

.contact-card h4 {
  font-size:1.05rem;
  margin:12px 0
}

.contact-card p,.contact-card a {
  color:var(--muted);
  font-size:.85rem;
  word-break:break-word
}

footer {
  background:var(--ink);
  color:rgba(255,255,255,.7)
}

.footer-brand {
  font-weight:800;
  color:#fff
}

.footer-brand i {
  color:var(--secondary)
}

.socials {
  display:flex;
  gap:8px
}

.socials a {
  width:36px;
  height:36px;
  border-radius:10px;
  background:rgba(255,255,255,.08);
  display:grid;
  place-items:center;
  color:#fff
}

.socials a:hover {
  background:var(--primary)
}

#backToTop {
  position:fixed;
  right:25px;
  bottom:25px;
  width:44px;
  height:44px;
  border-radius:14px;
  border:0;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  box-shadow:0 10px 25px rgba(11,127,171,.25);
  opacity:0;
  visibility:hidden;
  transition:.3s;
  z-index:50
}

#backToTop.show {
  opacity:1;
  visibility:visible
}

.reveal-left,.reveal-right,.reveal-up {
  opacity:0;
  transition:opacity .8s ease,transform .8s ease
}

.reveal-left {
  transform:translateX(-45px)
}

.reveal-right {
  transform:translateX(45px)
}

.reveal-up {
  transform:translateY(45px)
}

.revealed {
  opacity:1;
  transform:none
}

@media(max-width:991.98px) {
  .navbar {
    background:rgba(255,255,255,.96);
    box-shadow:0 8px 25px rgba(12,73,99,.06)
  }
  .hero-copy {
    padding-top:130px
  }
  .doctor-visual {
    min-height:560px
  }
  .badge-1 {
    left:5%
  }
  .badge-2 {
    right:5%
  }
  .section-padding {
    padding:75px 0
  }
  .appointment-info,.appointment-form-wrap {
    padding:38px
  }
  .navbar-collapse {
    padding:15px 0
  }
  .nav-item.ms-lg-2 {
    margin-top:10px
  }
}

@media(max-width:575.98px) {
  .hero-copy h1 {
    font-size:3.15rem
  }
  .hero-stats .col-4 {
    width:100%
  }
  .doctor-visual {
    min-height:520px
  }
  .floating-badge {
    display:none
  }
  .doctor-card {
    padding:30px 20px
  }
  .about-visual {
    min-height:380px
  }
  .timeline-item {
    grid-template-columns:1fr;
    gap:8px
  }
  .appointment-info,.appointment-form-wrap {
    padding:30px 22px
  }
  .appointment-info h2 {
    font-size:2rem
  }
  .trust-strip span {
    display:block;
    margin-top:4px
  }
  .trust-strip i {
    margin:0
  }
  .section-title {
    font-size:18px;
  }
}

/* Added sections and doctor imagery */
.doctor-photo-wrap {
  width:190px;
  height:220px;
  margin:-72px auto 22px;
  border-radius:34px;
  overflow:hidden;
  border:7px solid rgba(255,255,255,.9);
  box-shadow:0 18px 45px rgba(9,45,68,.22);
  position:relative;
  z-index:2
}

.doctor-photo {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top
}

.about-doctor-image {
  width:100%;
  height:520px;
  object-fit:cover;
  border-radius:32px;
  display:block
}

.about-visual {
  overflow:hidden;
  padding:0!important;
  min-height:520px
}

.years-box {
  position:absolute;
  left:28px;
  bottom:28px;
  z-index:2
}

.why-us-section {
  background:linear-gradient(180deg,#f8fcff 0%,#fff 100%)
}

.why-image-card {
  position:relative;
  margin-top:28px;
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 25px 70px rgba(24,72,99,.16)
}

.why-image-card img {
  width:100%;
  height:360px;
  object-fit:cover;
  transition:.6s
}

.why-image-card:hover img {
  transform:scale(1.05)
}

.why-badge {
  position:absolute;
  left:24px;
  bottom:24px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  padding:14px 18px;
  border-radius:18px;
  display:flex;
  align-items:center;
  gap:12px;
  box-shadow:0 12px 30px rgba(8,48,71,.15)
}

.why-badge i {
  font-size:30px;
  color:var(--primary)
}

.why-badge span {
  display:flex;
  flex-direction:column;
  font-size:12px
}

.why-badge strong {
  font-size:16px;
  color:var(--dark)
}

.why-card {
  height:100%;
  padding:30px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(16,115,150,.1);
  box-shadow:0 15px 45px rgba(30,82,108,.08);
  position:relative;
  overflow:hidden;
  transition:.35s
}

.why-card:hover {
  transform:translateY(-8px);
  box-shadow:0 25px 55px rgba(30,82,108,.14)
}

.why-card>span {
  position:absolute;
  right:18px;
  top:10px;
  font-size:54px;
  font-weight:800;
  color:rgba(9,117,147,.06)
}

.why-card i {
  width:56px;
  height:56px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--primary),#38c7bb);
  color:#fff;
  font-size:25px;
  margin-bottom:20px
}

.why-card h3 {
  font-size:20px
}

.gallery-section {
  background:#eef8fb
}

.gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:230px;
  gap:18px
}

.gallery-item {
  position:relative;
  overflow:hidden;
  border-radius:24px;
  box-shadow:0 16px 40px rgba(24,72,99,.12)
}

.gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.55s
}

.gallery-item span {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:rgba(5,44,64,.2);
  opacity:0;
  transition:.35s
}

.gallery-item span i {
  width:54px;
  height:54px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#fff;
  color:var(--primary);
  font-size:22px
}

.gallery-item:hover img {
  transform:scale(1.08)
}

.gallery-item:hover span {
  opacity:1
}

.gallery-large {
  grid-row:span 2
}

.gallery-wide {
  grid-column:span 2
}

.faq-section {
  background:#fff
}

.faq-help {
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:30px;
  padding:18px 20px;
  border-radius:18px;
  background:#eef9fb
}

.faq-help i {
  font-size:30px;
  color:var(--primary)
}

.faq-help div {
  display:flex;
  flex-direction:column
}

.faq-help a {
  font-weight:800;
  color:var(--dark);
  text-decoration:none
}

.custom-accordion .accordion-item {
  border:0;
  border-radius:18px!important;
  margin-bottom:14px;
  overflow:hidden;
  background:#f5fafc
}

.custom-accordion .accordion-button {
  background:#f5fafc;
  font-weight:800;
  color:var(--dark);
  padding:22px 24px;
  box-shadow:none
}

.custom-accordion .accordion-button:not(.collapsed) {
  background:linear-gradient(135deg,var(--primary),#27b8a8);
  color:#fff
}

.custom-accordion .accordion-button:not(.collapsed)::after {
  filter:brightness(0) invert(1)
}

.custom-accordion .accordion-body {
  padding:22px 24px;
  line-height:1.8
}

.gallery-lightbox {
  position:fixed;
  inset:0;
  background:rgba(2,18,28,.92);
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:30px;
  opacity:0;
  visibility:hidden;
  transition:.3s
}

.gallery-lightbox.active {
  opacity:1;
  visibility:visible
}

.gallery-lightbox img {
  max-width:min(1100px,92vw);
  max-height:86vh;
  border-radius:20px;
  box-shadow:0 30px 90px rgba(0,0,0,.45)
}

.lightbox-close {
  position:absolute;
  top:24px;
  right:28px;
  width:50px;
  height:50px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#092d3d;
  font-size:22px
}

@media(max-width:991px) {
  .doctor-photo-wrap {
    margin:-40px auto 20px
  }
  .about-doctor-image {
    height:430px
  }
  .gallery-grid {
    grid-template-columns:repeat(2,1fr)
  }
  .gallery-large {
    grid-row:span 1
  }
  .gallery-wide {
    grid-column:span 1
  }
}

@media(max-width:575px) {
  .gallery-grid {
    grid-template-columns:1fr;
    grid-auto-rows:240px
  }
  .gallery-large,.gallery-wide {
    grid-row:auto;
    grid-column:auto
  }
  .about-doctor-image {
    height:380px
  }
  .doctor-photo-wrap {
    width:160px;
    height:190px
  }
}

/* Mobile responsive overflow fix */
html,body {
  width:100%;
  max-width:100%;
  overflow-x:clip
}

img,svg,video,iframe {
  max-width:100%;
  height:auto
}

.container,.container-fluid,.row,[class*="col-"] {
  min-width:0
}

.navbar-brand {
  min-width:0
}

.navbar-brand>span:last-child {
  min-width:0
}

.hero-copy,.doctor-visual,.appointment-info,.appointment-form-wrap,.timeline-item>div {
  min-width:0
}

.hero-copy h1,.section-title,.appointment-info h2 {
  overflow-wrap:anywhere
}

.eyebrow {
  max-width:100%;
  white-space:normal
}

.contact-line>div {
  min-width:0
}

.contact-line strong {
  overflow-wrap:anywhere
}

@media(max-width:767.98px) {
  .reveal-left,.reveal-right {
    transform:translateY(30px)
  }
  .section-padding {
    padding:64px 0
  }
  .hero-copy {
    padding-top:120px
  }
  .hero-copy h1 {
    font-size:clamp(2.55rem,13vw,3.35rem);
    line-height:1.02
  }
  .hero-text {
    font-size:1rem
  }
  .doctor-visual {
    min-height:500px;
    width:100%
  }
  .profile-glow {
    width:min(330px,86vw);
    height:min(330px,86vw)
  }
  .doctor-card {
    width:100%;
    max-width:390px
  }
  .about-visual,.about-doctor-image {
    width:100%
  }
  .appointment-shell {
    border-radius:24px
  }
  .timeline {
    padding-left:24px
  }
  .timeline-item:before {
    left:-23px
  }
  .gallery-lightbox {
    padding:16px
  }
}

@media(max-width:575.98px) {
  .navbar .container {
    padding-left:14px;
    padding-right:14px
  }
  .navbar-brand {
    gap:.45rem!important
  }
  .brand-icon {
    width:38px;
    height:38px;
    border-radius:12px;
    flex:0 0 38px
  }
  .navbar-brand strong {
    font-size:20px;
  font-weight: 800;
  }
  .navbar-brand small {
    font-size:8px;
    font-weight: 600;
    letter-spacing:.1em
  }
  .hero-copy {
    padding-top:50px
  }
  .hero-copy h1 {
    font-size:28px;
  }
  .hero-copy h1 br {
    display:none
  }
  .hero-copy .btn {
    width:100%;
    padding-left:1rem!important;
    padding-right:1rem!important
  }
  .doctor-card {
    max-width:calc(100vw - 30px);
    padding:28px 16px
  }
  .doctor-card h2 {
    font-size:1.7rem
  }
  .doctor-photo-wrap {
    max-width:70vw
  }
  .years-box {
    left:16px;
    right:16px;
    bottom:16px;
    max-width:none
  }
  .why-badge {
    left:14px;
    right:14px;
    bottom:14px;
    padding:12px
  }
  .appointment-info,.appointment-form-wrap {
    padding:28px 18px
  }
  .contact-line {
    align-items:flex-start;
    gap:12px
  }
  .contact-line i {
    flex:0 0 42px;
    width:42px;
    height:42px
  }
  .custom-accordion .accordion-button,.custom-accordion .accordion-body {
    padding:18px
  }
  #backToTop {
    right:15px;
    bottom:15px
  }
}

/* Dedicated About page */
.nav-link.active {
  color:var(--primary)!important
}

.about-page-hero {
  position:relative;
  overflow:hidden;
  padding:80px 0 90px;
  background:linear-gradient(135deg,#f1fbfe 0%,#fff 58%,#effaf8 100%)
}

.about-page-hero h1 {
  font-family:'Playfair Display',serif;
  font-size:36px;
  line-height:1.02;
  letter-spacing:-.045em;
  margin:20px 0;
  color:var(--ink)
}

.about-page-hero h1 span {
  color:var(--primary)
}

.about-page-hero p {
  font-size:1.08rem;
  line-height:1.8;
  color:var(--muted);
  max-width:650px
}

.about-mini-stats {
  display:flex;
  gap:12px;
  flex-wrap:wrap
}

.about-mini-stats>div {
  min-width:135px;
  padding:17px 20px;
  border:1px solid rgba(11,127,171,.12);
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(10px);
  border-radius:18px;
  box-shadow:0 12px 35px rgba(24,72,99,.07)
}

.about-mini-stats strong {
  font-size:1.75rem;
  color:var(--primary);
  display:block
}

.about-mini-stats span {
  font-size:.72rem;
  font-weight:700;
  color:var(--muted)
}

.about-portrait-shell {
  position:relative;
  min-height:570px;
  display:flex;
  align-items:flex-end;
  justify-content:center
}

.about-portrait-bg {
  position:absolute;
  width:min(470px,90%);
  height:500px;
  border-radius:48% 48% 30px 30px;
  background:linear-gradient(145deg,var(--primary),#39c7b6);
  transform:rotate(3deg);
  box-shadow:0 35px 90px rgba(11,127,171,.24)
}

.about-portrait-shell>img {
  position:relative;
  width:min(430px,88%);
  height:520px;
  object-fit:cover;
  object-position:center top;
  border-radius:44% 44% 28px 28px;
  z-index:1
}

.portrait-detail,.portrait-quote {
  position:absolute;
  z-index:2;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(15px);
  box-shadow:0 18px 45px rgba(15,66,91,.14)
}

.portrait-detail {
  left:0;
  bottom:80px;
  padding:16px 18px;
  border-radius:18px;
  display:flex;
  align-items:center;
  gap:12px;
  max-width:300px
}

.portrait-detail i {
  font-size:28px;
  color:var(--primary)
}

.portrait-detail small,.portrait-detail strong {
  display:block
}

.portrait-detail small {
  font-size:.66rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--muted)
}

.portrait-detail strong {
  font-size:.82rem;
  color:var(--ink)
}

.portrait-quote {
  right:-10px;
  top:105px;
  padding:18px;
  border-radius:20px;
  max-width:210px
}

.portrait-quote i {
  font-size:26px;
  color:var(--secondary)
}

.portrait-quote p {
  font-size:.78rem;
  line-height:1.55;
  margin:2px 0 0;
  color:var(--ink);
  font-weight:700
}

.story-image-wrap {
  position:relative
}

.story-image-wrap img {
  width:100%;
  height:540px;
  object-fit:cover;
  border-radius:32px;
  box-shadow:var(--shadow)
}

.story-badge {
  position:absolute;
  right:-22px;
  bottom:30px;
  padding:19px 22px;
  background:linear-gradient(135deg,var(--primary),#31bbaa);
  color:#fff;
  border-radius:20px;
  box-shadow:0 18px 45px rgba(11,127,171,.25)
}

.story-badge strong,.story-badge span {
  display:block
}

.story-badge span {
  font-size:.75rem;
  opacity:.82
}

.lead-copy {
  font-size:1.12rem!important;
  color:var(--ink)!important;
  font-weight:600
}

.about-intro p {
  color:var(--muted);
  line-height:1.85
}

.signature-line {
  margin-top:28px;
  padding-left:18px;
  border-left:3px solid var(--secondary)
}

.signature-line span {
  display:block;
  font-family:'Playfair Display',serif;
  font-size:1.45rem;
  color:var(--ink)
}

.signature-line small {
  color:var(--muted)
}

.care-philosophy {
  background:#f4fafc
}

.philosophy-card {
  height:100%;
  background:#fff;
  border-radius:24px;
  padding:30px;
  border:1px solid rgba(11,127,171,.09);
  box-shadow:0 14px 45px rgba(20,72,100,.07);
  position:relative;
  overflow:hidden;
  transition:.35s
}

.philosophy-card:hover {
  transform:translateY(-8px);
  box-shadow:0 24px 55px rgba(20,72,100,.13)
}

.philosophy-card>span {
  position:absolute;
  right:18px;
  top:8px;
  font-size:54px;
  font-weight:800;
  color:rgba(11,127,171,.06)
}

.philosophy-card i {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(135deg,var(--primary),#30c0ac);
  color:#fff;
  font-size:25px;
  margin-bottom:20px
}

.philosophy-card h3 {
  font-size:1.1rem
}

.philosophy-card p {
  font-size:.86rem;
  line-height:1.7;
  color:var(--muted);
  margin:0
}

.expertise-panel {
  background:linear-gradient(135deg,var(--primary-dark),#086c91);
  color:#fff;
  position:relative;
  overflow:hidden
}

.expertise-panel h2 {
  font-size:25px;
  line-height:1.15
}

.expertise-panel p {
  color:rgba(255,255,255,.72);
  line-height:1.8
}

.expertise-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px
}

.expertise-grid>div {
  display:flex;
  align-items:center;
  gap:14px;
  padding:20px;
  border-radius:18px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.12);
  font-weight:700
}

.expertise-grid i {
  width:44px;
  height:44px;
  flex:0 0 44px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:#fff;
  color:var(--primary);
  font-size:20px
}

.profile-facts {
  display:grid;
  gap:14px;
  margin-top:30px
}

.profile-facts>div {
  display:flex;
  gap:15px;
  align-items:center;
  padding:17px;
  border-radius:18px;
  background:#f4fafc
}

.profile-facts i {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#fff;
  color:var(--primary);
  font-size:20px
}

.profile-facts small,.profile-facts strong {
  display:block
}

.profile-facts small {
  color:var(--muted);
  font-size:.7rem
}

.profile-facts strong {
  font-size:.86rem;
  color:var(--ink)
}

.journey-card {
  padding:38px;
  border-radius:28px;
  background:#fff;
  box-shadow:var(--shadow);
  border:1px solid #e8f1f4
}

.journey-card h3 {
  margin-bottom:25px
}

.journey-row {
  display:grid;
  grid-template-columns:78px 1fr;
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid #eaf1f3
}

.journey-row:last-child {
  border-bottom:0
}

.journey-row>span {
  font-weight:800;
  color:var(--primary);
  font-size:.78rem
}

.journey-row strong {
  color:var(--ink)
}

.journey-row p {
  margin:3px 0 0;
  color:var(--muted);
  font-size:.84rem
}

.about-cta-section {
  padding:25px 0 90px
}

.about-cta {
  padding:45px 48px;
  border-radius:30px;
  background:linear-gradient(135deg,var(--primary),#21ac9d);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  box-shadow:0 25px 65px rgba(11,127,171,.23)
}

.about-cta span {
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
  opacity:.78
}

.about-cta h2 {
  font-size:clamp(1.6rem,3vw,2.5rem);
  max-width:700px;
  margin:8px 0 0
}

@media(max-width:991.98px) {
  .about-page-hero {
    padding:145px 0 75px
  }
  .about-portrait-shell {
    min-height:530px
  }
  .portrait-detail {
    left:5%
  }
  .portrait-quote {
    right:2%
  }
  .story-badge {
    right:18px
  }
  .about-cta {
    align-items:flex-start;
    flex-direction:column
  }
  .expertise-grid {
    grid-template-columns:1fr 1fr
  }
}

@media(max-width:575.98px) {
  .about-page-hero {
    padding:120px 0 60px
  }
  .about-page-hero h1 {
    font-size:30px;
  }
  .about-page-hero .btn {
    width:100%
  }
  .about-mini-stats {
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .about-mini-stats>div {
    min-width:0
  }
  .about-mini-stats>div:last-child {
    grid-column:1/-1
  }
  .about-portrait-shell {
    min-height:470px;
    margin-top:5px
  }
  .about-portrait-bg {
    height:420px
  }
  .about-portrait-shell>img {
    height:440px
  }
  .portrait-detail {
    left:8px;
    right:8px;
    bottom:20px;
    max-width:none
  }
  .portrait-quote {
    display:none
  }
  .story-image-wrap img {
    height:400px
  }
  .story-badge {
    left:14px;
    right:14px;
    bottom:14px
  }
  .expertise-grid {
    grid-template-columns:1fr
  }
  .journey-card {
    padding:25px 20px
  }
  .journey-row {
    grid-template-columns:65px 1fr;
    gap:12px
  }
  .about-cta {
    padding:32px 22px
  }
  .about-cta .btn {
    width:100%
  }
}

/* Dedicated Treatments page */
.treatment-hero {
  position:relative;
  overflow:hidden;
  padding:170px 0 105px;
  background:linear-gradient(135deg,#f1fbfe 0%,#fff 56%,#effaf8 100%)
}

.treatment-hero h1 {
  font-family:'Playfair Display',serif;
  font-size:clamp(3rem,5vw,4.9rem);
  line-height:1.03;
  letter-spacing:-.045em;
  margin:20px 0;
  color:var(--ink)
}

.treatment-hero h1 span {
  color:var(--primary)
}

.treatment-hero p {
  font-size:1.07rem;
  line-height:1.8;
  color:var(--muted);
  max-width:720px
}

.treatment-trust {
  display:flex;
  gap:14px;
  flex-wrap:wrap
}

.treatment-trust>div {
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px 18px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(11,127,171,.11);
  border-radius:17px;
  box-shadow:0 12px 35px rgba(24,72,99,.07)
}

.treatment-trust i {
  font-size:24px;
  color:var(--primary)
}

.treatment-trust strong,.treatment-trust small {
  display:block
}

.treatment-trust strong {
  font-size:.83rem;
  color:var(--ink)
}

.treatment-trust small {
  font-size:.68rem;
  color:var(--muted)
}

.treatment-hero-card {
  position:relative;
  padding:18px 18px 55px;
  background:#fff;
  border-radius:32px;
  box-shadow:0 30px 80px rgba(15,66,91,.17);
  transform:rotate(2deg)
}

.treatment-hero-card>img {
  width:100%;
  height:510px;
  object-fit:cover;
  border-radius:23px
}

.treatment-floating-card {
  position:absolute;
  left:-35px;
  right:35px;
  bottom:18px;
  display:flex;
  align-items:center;
  gap:13px;
  padding:16px 18px;
  background:linear-gradient(135deg,var(--primary),#27b5a7);
  color:#fff;
  border-radius:18px;
  box-shadow:0 18px 45px rgba(11,127,171,.25);
  transform:rotate(-2deg)
}

.treatment-floating-card i {
  font-size:27px
}

.treatment-floating-card small,.treatment-floating-card strong {
  display:block
}

.treatment-floating-card small {
  font-size:.66rem;
  opacity:.78;
  text-transform:uppercase;
  letter-spacing:.1em
}

.treatment-floating-card strong {
  font-size:.83rem
}

.treatment-list {
  background:#f5fafc
}

.treatment-card {
  height:100%;
  position:relative;
  padding:30px;
  background:#fff;
  border:1px solid rgba(11,127,171,.09);
  border-radius:25px;
  box-shadow:0 14px 45px rgba(20,72,100,.07);
  overflow:hidden;
  transition:.35s
}

.treatment-card:hover {
  transform:translateY(-8px);
  box-shadow:0 25px 60px rgba(20,72,100,.14)
}

.treatment-card.featured {
  background:linear-gradient(145deg,var(--primary-dark),var(--primary));
  color:#fff
}

.treatment-icon {
  width:61px;
  height:61px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(135deg,var(--primary),#30c0ac);
  color:#fff;
  font-size:27px;
  margin-bottom:22px
}

.featured .treatment-icon {
  background:#fff;
  color:var(--primary)
}

.treatment-no {
  position:absolute;
  right:20px;
  top:9px;
  font-size:58px;
  font-weight:800;
  color:rgba(11,127,171,.06)
}

.featured .treatment-no {
  color:rgba(255,255,255,.08)
}

.treatment-card h3 {
  font-size:1.18rem;
  margin-bottom:12px
}

.treatment-card p {
  font-size:.84rem;
  line-height:1.7;
  color:var(--muted)
}

.featured p {
  color:rgba(255,255,255,.72)
}

.treatment-card ul {
  list-style:none;
  padding:0;
  margin:19px 0 23px;
  display:grid;
  gap:9px
}

.treatment-card li {
  font-size:.79rem;
  color:#426271;
  display:flex;
  gap:9px
}

.treatment-card li:before {
  content:'✓';
  color:var(--secondary);
  font-weight:800
}

.featured li {
  color:rgba(255,255,255,.82)
}

.treatment-card>a {
  font-weight:800;
  font-size:.79rem;
  color:var(--primary);
  text-decoration:none
}

.featured>a {
  color:#fff
}

.treatment-process {
  background:linear-gradient(135deg,var(--primary-dark),#086c91);
  color:#fff
}

.treatment-process h2 {
  font-size:clamp(2.25rem,4vw,3.55rem);
  line-height:1.14
}

.treatment-process>p,.treatment-process p {
  color:rgba(255,255,255,.72);
  line-height:1.75
}

.process-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:15px
}

.process-grid>div {
  position:relative;
  padding:24px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px
}

.process-grid>div>span {
  position:absolute;
  right:15px;
  top:8px;
  font-size:38px;
  font-weight:800;
  color:rgba(255,255,255,.07)
}

.process-grid i {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  background:#fff;
  color:var(--primary);
  border-radius:14px;
  font-size:21px;
  margin-bottom:16px
}

.process-grid h3 {
  font-size:1rem
}

.process-grid p {
  font-size:.78rem;
  margin:0
}

.symptom-image {
  position:relative
}

.symptom-image>img {
  width:100%;
  height:520px;
  object-fit:cover;
  border-radius:30px;
  box-shadow:var(--shadow)
}

.symptom-image>div {
  position:absolute;
  left:22px;
  right:22px;
  bottom:22px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
  padding:17px 19px;
  border-radius:17px;
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:12px
}

.symptom-image i {
  grid-row:1/3;
  font-size:28px;
  color:#e45b62
}

.symptom-image strong,.symptom-image span {
  display:block
}

.symptom-image span {
  font-size:.74rem;
  color:var(--muted)
}

.symptom-section p {
  color:var(--muted);
  line-height:1.8
}

.symptom-list {
  display:grid;
  gap:12px;
  margin-top:24px
}

.symptom-list>div {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  background:#f4fafc;
  border-radius:15px;
  font-weight:700;
  font-size:.84rem;
  color:var(--ink)
}

.symptom-list i {
  color:var(--secondary);
  font-size:19px
}

.treatment-cta-wrap {
  padding:25px 0 90px
}

.treatment-cta {
  padding:44px 48px;
  border-radius:30px;
  background:linear-gradient(135deg,var(--primary),#21ac9d);
  color:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:32px;
  box-shadow:0 25px 65px rgba(11,127,171,.23)
}

.treatment-cta span {
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
  opacity:.8
}

.treatment-cta h2 {
  font-size:clamp(1.7rem,3vw,2.5rem);
  margin:7px 0
}

.treatment-cta p {
  margin:0;
  color:rgba(255,255,255,.78)
}

@media(max-width:991.98px) {
  .treatment-hero {
    padding:145px 0 75px
  }
  .treatment-hero-card {
    max-width:600px;
    margin:auto
  }
  .treatment-floating-card {
    left:18px
  }
  .treatment-cta {
    flex-direction:column;
    align-items:flex-start
  }
  .process-grid {
    grid-template-columns:1fr 1fr
  }
}

@media(max-width:575.98px) {
  .treatment-hero {
    padding:120px 0 60px
  }
  .treatment-hero h1 {
    font-size:25px;
  }
  .treatment-hero .btn {
    width:100%
  }
  .treatment-trust {
    display:grid;
    grid-template-columns:1fr
  }
  .treatment-hero-card {
    padding:12px 12px 55px;
    transform:none
  }
  .treatment-hero-card>img {
    height:390px
  }
  .treatment-floating-card {
    left:12px;
    right:12px;
    bottom:12px;
    transform:none
  }
  .treatment-card {
    padding:25px 21px
  }
  .process-grid {
    grid-template-columns:1fr
  }
  .symptom-image>img {
    height:390px
  }
  .symptom-image>div {
    left:12px;
    right:12px;
    bottom:12px
  }
  .treatment-cta {
    padding:32px 22px
  }
  .treatment-cta .btn {
    width:100%
  }
}

/* Dedicated Gallery page */
.gallery-page-hero {
  position:relative;
  overflow:hidden;
  padding:165px 0 105px;
  background:linear-gradient(135deg,#f1fbfe 0%,#fff 55%,#effaf8 100%)
}

.gallery-page-hero h1 {
  font-family:'Playfair Display',serif;
  font-size:clamp(3rem,5vw,4.8rem);
  line-height:1.04;
  letter-spacing:-.045em;
  margin:20px 0;
  color:var(--ink)
}

.gallery-page-hero h1 span {
  color:var(--primary)
}

.gallery-page-hero p {
  font-size:1.06rem;
  line-height:1.8;
  color:var(--muted);
  max-width:720px
}

.gallery-hero-points {
  display:flex;
  gap:14px;
  flex-wrap:wrap
}

.gallery-hero-points>div {
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px 18px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(11,127,171,.11);
  border-radius:17px;
  box-shadow:0 12px 35px rgba(24,72,99,.07)
}

.gallery-hero-points i {
  font-size:24px;
  color:var(--primary)
}

.gallery-hero-points strong,.gallery-hero-points small {
  display:block
}

.gallery-hero-points strong {
  font-size:.82rem
}

.gallery-hero-points small {
  font-size:.68rem;
  color:var(--muted)
}

.gallery-hero-collage {
  position:relative;
  min-height:570px
}

.gallery-hero-collage img {
  object-fit:cover;
  display:block
}

.collage-main {
  position:absolute;
  right:0;
  top:20px;
  width:80%;
  height:500px;
  border-radius:34px;
  box-shadow:0 30px 80px rgba(15,66,91,.18)
}

.collage-small {
  position:absolute;
  width:45%;
  height:205px;
  border-radius:24px;
  border:9px solid #fff;
  box-shadow:0 20px 55px rgba(15,66,91,.18)
}

.collage-one {
  left:0;
  top:0
}

.collage-two {
  left:4%;
  bottom:0
}

.gallery-count {
  position:absolute;
  right:5%;
  bottom:10px;
  padding:17px 21px;
  border-radius:18px;
  background:linear-gradient(135deg,var(--primary),#27b5a7);
  color:#fff;
  box-shadow:0 18px 45px rgba(11,127,171,.25)
}

.gallery-count strong,.gallery-count span {
  display:block
}

.gallery-count strong {
  font-size:1.65rem;
  line-height:1
}

.gallery-count span {
  font-size:.7rem;
  opacity:.82;
  margin-top:5px
}

.gallery-page-section {
  background:#f6fafc
}

.gallery-filters {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:32px
}

.gallery-filter {
  border:1px solid rgba(11,127,171,.16);
  background:#fff;
  color:var(--ink);
  font-weight:700;
  font-size:.78rem;
  padding:10px 18px;
  border-radius:999px;
  transition:.25s
}

.gallery-filter:hover,.gallery-filter.active {
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
  box-shadow:0 10px 24px rgba(11,127,171,.18)
}

.gallery-masonry {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:240px;
  gap:17px
}

.gallery-page-item {
  position:relative;
  overflow:hidden;
  border-radius:23px;
  box-shadow:0 12px 35px rgba(20,72,100,.09);
  background:#dcecf1;
  transition:opacity .25s,transform .25s
}

.gallery-page-item.tall {
  grid-row:span 2
}

.gallery-page-item.wide {
  grid-column:span 2
}

.gallery-page-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s
}

.gallery-page-item>span {
  position:absolute;
  inset:auto 13px 13px 13px;
  padding:15px 16px;
  border-radius:16px;
  background:rgba(5,39,55,.78);
  backdrop-filter:blur(12px);
  color:#fff;
  opacity:0;
  transform:translateY(12px);
  transition:.35s
}

.gallery-page-item>span small,.gallery-page-item>span strong {
  display:block
}

.gallery-page-item>span small {
  font-size:.63rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#8fe1d6
}

.gallery-page-item>span strong {
  font-size:.82rem;
  margin-top:3px;
  padding-right:30px
}

.gallery-page-item>span i {
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  font-size:18px
}

.gallery-page-item:hover img {
  transform:scale(1.07)
}

.gallery-page-item:hover>span {
  opacity:1;
  transform:none
}

.gallery-page-item.is-hidden {
  display:none
}

.gallery-experience {
  background:#fff
}

.gallery-feature {
  height:100%;
  padding:30px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(11,127,171,.1);
  box-shadow:0 15px 45px rgba(20,72,100,.07);
  text-align:center
}

.gallery-feature i {
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  margin:0 auto 20px;
  border-radius:18px;
  background:linear-gradient(135deg,var(--primary),#30c0ac);
  color:#fff;
  font-size:27px
}

.gallery-feature h3 {
  font-size:1.08rem
}

.gallery-feature p {
  font-size:.82rem;
  line-height:1.7;
  color:var(--muted);
  margin:0
}

.gallery-cta-wrap {
  padding:20px 0 90px
}

.gallery-cta {
  padding:44px 48px;
  border-radius:30px;
  background:linear-gradient(135deg,var(--primary),#21ac9d);
  color:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:32px;
  box-shadow:0 25px 65px rgba(11,127,171,.23)
}

.gallery-cta span {
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
  opacity:.8
}

.gallery-cta h2 {
  font-size:clamp(1.7rem,3vw,2.5rem);
  margin:7px 0
}

.gallery-cta p {
  margin:0;
  color:rgba(255,255,255,.78)
}

@media(max-width:991.98px) {
  .gallery-page-hero {
    padding:145px 0 75px
  }
  .gallery-hero-collage {
    max-width:650px;
    margin:auto
  }
  .gallery-masonry {
    grid-template-columns:repeat(2,1fr)
  }
  .gallery-cta {
    flex-direction:column;
    align-items:flex-start
  }
}

@media(max-width:575.98px) {
  .gallery-page-hero {
    padding:120px 0 60px
  }
  .gallery-page-hero h1 {
    font-size:28px;
  }
  .gallery-page-hero .btn {
    width:100%
  }
  .gallery-hero-points {
    display:grid;
    grid-template-columns:1fr
  }
  .gallery-hero-collage {
    min-height:455px
  }
  .collage-main {
    width:88%;
    height:390px;
    border-radius:25px
  }
  .collage-small {
    width:48%;
    height:150px;
    border-width:6px;
    border-radius:18px
  }
  .collage-two {
    bottom:0
  }
  .gallery-count {
    right:2%;
    bottom:2px;
    padding:14px 16px
  }
  .gallery-filters {
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:6px
  }
  .gallery-filter {
    white-space:nowrap
  }
  .gallery-masonry {
    grid-template-columns:1fr;
    grid-auto-rows:265px
  }
  .gallery-page-item.tall {
    grid-row:span 1
  }
  .gallery-page-item.wide {
    grid-column:span 1
  }
  .gallery-page-item>span {
    opacity:1;
    transform:none
  }
  .gallery-cta {
    padding:32px 22px
  }
  .gallery-cta .btn {
    width:100%
  }
}

/* Dedicated Contact page */
.contact-page-hero {
  position:relative;
  overflow:hidden;
  padding:165px 0 105px;
  background:linear-gradient(135deg,#f1fbfe 0%,#fff 55%,#effaf8 100%)
}

.contact-page-hero h1 {
  font-family:'Playfair Display',serif;
  font-size:clamp(3rem,5vw,4.8rem);
  line-height:1.04;
  letter-spacing:-.045em;
  margin:20px 0;
  color:var(--ink)
}

.contact-page-hero h1 span {
  color:var(--primary)
}

.contact-page-hero p {
  font-size:1.06rem;
  line-height:1.8;
  color:var(--muted);
  max-width:720px
}

.contact-hero-points {
  display:flex;
  gap:14px;
  flex-wrap:wrap
}

.contact-hero-points>div {
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px 18px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(11,127,171,.11);
  border-radius:17px;
  box-shadow:0 12px 35px rgba(24,72,99,.07)
}

.contact-hero-points i {
  font-size:24px;
  color:var(--primary)
}

.contact-hero-points strong,.contact-hero-points small {
  display:block
}

.contact-hero-points strong {
  font-size:.82rem
}

.contact-hero-points small {
  font-size:.68rem;
  color:var(--muted)
}

.contact-hero-card {
  position:relative;
  padding:14px 14px 72px;
  background:#fff;
  border-radius:34px;
  box-shadow:0 30px 80px rgba(15,66,91,.16);
  transform:rotate(2deg)
}

.contact-hero-image {
  overflow:hidden;
  border-radius:25px
}

.contact-hero-image img {
  width:100%;
  height:465px;
  object-fit:cover;
  display:block
}

.availability-card {
  position:absolute;
  left:-35px;
  top:45px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:14px 17px;
  background:#fff;
  border-radius:16px;
  box-shadow:0 16px 42px rgba(15,66,91,.14);
  transform:rotate(-2deg)
}

.status-dot {
  width:11px;
  height:11px;
  background:#2dbb83;
  border-radius:50%;
  box-shadow:0 0 0 6px rgba(45,187,131,.13)
}

.availability-card small,.availability-card strong {
  display:block
}

.availability-card small {
  font-size:.62rem;
  color:var(--muted)
}

.availability-card strong {
  font-size:.79rem
}

.contact-hero-call {
  position:absolute;
  left:25px;
  right:25px;
  bottom:18px;
  display:flex;
  align-items:center;
  gap:13px
}

.contact-hero-call>i {
  width:47px;
  height:47px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(135deg,var(--primary),#26b4a4);
  color:#fff
}

.contact-hero-call small,.contact-hero-call a {
  display:block
}

.contact-hero-call small {
  font-size:.65rem;
  color:var(--muted)
}

.contact-hero-call a {
  font-weight:800;
  color:var(--ink);
  text-decoration:none
}

.contact-info-section {
  background:#f6fafc
}

.contact-info-card {
  height:100%;
  display:block;
  padding:28px 24px;
  background:#fff;
  border:1px solid rgba(11,127,171,.09);
  border-radius:23px;
  box-shadow:0 14px 42px rgba(20,72,100,.07);
  text-decoration:none;
  transition:.35s
}

.contact-info-card:hover {
  transform:translateY(-7px);
  box-shadow:0 24px 55px rgba(20,72,100,.13)
}

.contact-info-card>i {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:17px;
  background:linear-gradient(135deg,var(--primary),#2bb6a7);
  color:#fff;
  font-size:24px;
  margin-bottom:20px
}

.contact-info-card span,.contact-info-card strong,.contact-info-card small {
  display:block
}

.contact-info-card span {
  font-size:.67rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--primary);
  font-weight:800
}

.contact-info-card strong {
  font-size:.94rem;
  color:var(--ink);
  margin:7px 0;
  overflow-wrap:anywhere
}

.contact-info-card small {
  font-size:.73rem;
  line-height:1.6;
  color:var(--muted)
}

.contact-form-section {
  background:linear-gradient(135deg,var(--primary-dark),#086c91);
  color:#fff
}

.contact-form-copy h2 {
  font-size:clamp(2.3rem,4vw,3.65rem);
  line-height:1.12;
  margin:16px 0
}

.contact-form-copy>p {
  color:rgba(255,255,255,.72);
  line-height:1.8
}

.contact-support-list {
  display:grid;
  gap:17px;
  margin:30px 0
}

.contact-support-list>div {
  display:flex;
  gap:13px
}

.contact-support-list i {
  font-size:22px;
  color:#82e0d3
}

.contact-support-list strong,.contact-support-list small {
  display:block
}

.contact-support-list strong {
  font-size:.88rem
}

.contact-support-list small {
  font-size:.72rem;
  color:rgba(255,255,255,.65);
  margin-top:3px
}

.emergency-note {
  display:flex;
  gap:14px;
  padding:18px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px
}

.emergency-note>i {
  color:#ffd277;
  font-size:22px
}

.emergency-note strong {
  font-size:.85rem
}

.emergency-note p {
  font-size:.72rem;
  margin:4px 0 0;
  color:rgba(255,255,255,.65)
}

.contact-page-form {
  height:100%;
  padding:35px;
  background:#fff;
  border-radius:28px;
  color:var(--ink);
  box-shadow:0 25px 65px rgba(2,34,48,.2)
}

.contact-page-form label {
  font-size:.72rem;
  font-weight:800;
  margin-bottom:7px
}

.input-wrap {
  position:relative
}

.input-wrap>i {
  position:absolute;
  left:15px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  color:var(--primary)
}

.input-wrap .form-control,.input-wrap .form-select {
  min-height:50px;
  padding-left:43px;
  border-radius:14px;
  border-color:#dfecef;
  background:#f8fbfc;
  font-size:.8rem
}

.textarea-wrap>i {
  top:18px;
  transform:none
}

.textarea-wrap textarea.form-control {
  padding-top:14px;
  resize:vertical
}

.contact-page-form .form-control:focus,.contact-page-form .form-select:focus {
  border-color:var(--primary);
  box-shadow:0 0 0 .2rem rgba(11,127,171,.11);
  background:#fff
}

.contact-form-message {
  padding:13px 15px;
  border-radius:13px;
  background:#e7f8f2;
  color:#177052;
  font-weight:700;
  font-size:.78rem
}

.contact-form-message i {
  margin-right:7px
}

.map-section {
  background:#fff
}

.map-section p {
  color:var(--muted);
  line-height:1.8
}

.location-details {
  display:grid;
  gap:13px;
  margin-top:25px
}

.location-details>div {
  display:flex;
  align-items:center;
  gap:13px;
  padding:15px 17px;
  background:#f4fafc;
  border-radius:16px
}

.location-details i {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#fff;
  color:var(--primary);
  box-shadow:0 7px 20px rgba(20,72,100,.08)
}

.location-details small,.location-details strong {
  display:block
}

.location-details small {
  font-size:.65rem;
  color:var(--muted)
}

.location-details strong {
  font-size:.82rem
}

.map-placeholder {
  position:relative;
  min-height:450px;
  overflow:hidden;
  border-radius:30px;
  background:linear-gradient(135deg,#e9f5f7,#d6eaed);
  box-shadow:var(--shadow)
}

.map-grid {
  position:absolute;
  inset:0;
  background-image:linear-gradient(rgba(11,127,171,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(11,127,171,.08) 1px,transparent 1px);
  background-size:44px 44px;
  transform:rotate(-8deg) scale(1.3)
}

.map-placeholder:before,.map-placeholder:after {
  content:'';
  position:absolute;
  background:rgba(255,255,255,.78);
  border-radius:999px;
  transform:rotate(-20deg)
}

.map-placeholder:before {
  width:125%;
  height:34px;
  left:-10%;
  top:34%
}

.map-placeholder:after {
  width:105%;
  height:28px;
  left:2%;
  top:64%;
  transform:rotate(17deg)
}

.map-pin {
  position:absolute;
  left:50%;
  top:44%;
  transform:translate(-50%,-50%);
  width:74px;
  height:74px;
  display:grid;
  place-items:center;
  border-radius:50% 50% 50% 0;
  rotate:-45deg;
  background:linear-gradient(135deg,var(--primary),#27b7a8);
  box-shadow:0 18px 45px rgba(11,127,171,.3)
}

.map-pin i {
  rotate:45deg;
  color:#fff;
  font-size:31px
}

.map-label {
  position:absolute;
  left:50%;
  bottom:32px;
  transform:translateX(-50%);
  min-width:250px;
  text-align:center;
  padding:14px 20px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);
  border-radius:15px;
  box-shadow:0 14px 36px rgba(20,72,100,.12)
}

.map-label strong,.map-label span {
  display:block
}

.map-label strong {
  font-size:.86rem
}

.map-label span {
  font-size:.69rem;
  color:var(--muted);
  margin-top:3px
}

.contact-cta-wrap {
  padding:20px 0 90px
}

.contact-cta {
  padding:44px 48px;
  border-radius:30px;
  background:linear-gradient(135deg,var(--primary),#21ac9d);
  color:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:32px;
  box-shadow:0 25px 65px rgba(11,127,171,.23)
}

.contact-cta span {
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
  opacity:.8
}

.contact-cta h2 {
  font-size:clamp(1.7rem,3vw,2.5rem);
  margin:7px 0
}

.contact-cta p {
  margin:0;
  color:rgba(255,255,255,.78)
}

@media(max-width:991.98px) {
  .contact-page-hero {
    padding:145px 0 75px
  }
  .contact-hero-card {
    max-width:610px;
    margin:auto
  }
  .availability-card {
    left:15px
  }
  .contact-cta {
    flex-direction:column;
    align-items:flex-start
  }
}

@media(max-width:575.98px) {
  .contact-page-hero {
    padding:120px 0 60px
  }
  .contact-page-hero h1 {
    font-size:22px;
  }
  .contact-page-hero .btn {
    width:100%
  }
  .contact-hero-points {
    display:grid;
    grid-template-columns:1fr
  }
  .contact-hero-card {
    padding:11px 11px 72px;
    transform:none
  }
  .contact-hero-image img {
    height:390px
  }
  .availability-card {
    left:13px;
    right:13px;
    top:20px;
    transform:none
  }
  .contact-page-form {
    padding:25px 19px
  }
  .map-placeholder {
    min-height:370px
  }
  .map-label {
    min-width:220px;
    max-width:calc(100% - 30px)
  }
  .contact-cta {
    padding:32px 22px
  }
  .contact-cta .btn {
    width:100%
  }
}

/* Why Choose Us Page */
.why-page-hero {
  position:relative;
  overflow:hidden;
  padding:160px 0 100px;
  background:linear-gradient(135deg,#f2fbfa 0%,#fff 55%,#eef6ff 100%)
}

.why-page-hero h1 {
  font-family:"Playfair Display",serif;
  font-size:clamp(2.6rem,5vw,5rem);
  line-height:1.06;
  margin:18px 0 24px;
  color:#15333a
}

.why-page-hero h1 span {
  color:var(--primary,#0d9488)
}

.why-page-hero p {
  font-size:1.12rem;
  line-height:1.8;
  color:#60747a;
  max-width:650px
}

.why-hero-shape {
  position:absolute;
  border-radius:50%;
  filter:blur(2px)
}

.why-shape-one {
  width:330px;
  height:330px;
  background:rgba(13,148,136,.1);
  top:-100px;
  right:8%
}

.why-shape-two {
  width:220px;
  height:220px;
  background:rgba(59,130,246,.09);
  bottom:-90px;
  left:3%
}

.why-hero-visual {
  position:relative;
  max-width:560px;
  margin:auto
}

.why-hero-visual>img {
  width:100%;
  height:590px;
  object-fit:cover;
  border-radius:34px 90px 34px 34px;
  box-shadow:0 28px 70px rgba(19,59,66,.18)
}

.why-floating-card {
  position:absolute;
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  padding:16px 20px;
  border-radius:18px;
  box-shadow:0 18px 45px rgba(14,55,63,.18)
}

.why-floating-card i {
  font-size:1.6rem;
  color:#0d9488
}

.why-floating-card span {
  display:flex;
  flex-direction:column
}

.why-floating-card small {
  color:#71858a
}

.why-floating-card.card-a {
  left:-45px;
  bottom:55px
}

.why-floating-card.card-b {
  right:-35px;
  top:50px;
  display:block;
  text-align:center
}

.why-floating-card.card-b strong {
  display:block;
  font-size:2rem;
  color:#0d9488
}

.why-floating-card.card-b span {
  font-size:.82rem;
  max-width:120px
}

.why-trust-row {
  display:flex;
  flex-wrap:wrap;
  gap:28px
}

.why-trust-row>div {
  display:flex;
  align-items:center;
  gap:12px
}

.why-trust-row i {
  font-size:1.7rem;
  color:#0d9488
}

.why-trust-row span {
  display:flex;
  flex-direction:column
}

.why-trust-row small {
  color:#73878c
}

.why-reasons {
  background:#fff
}

.why-reason-card {
  height:100%;
  position:relative;
  padding:34px 30px;
  border:1px solid #e4efee;
  border-radius:24px;
  background:#fff;
  transition:.35s;
  overflow:hidden
}

.why-reason-card:hover {
  transform:translateY(-8px);
  box-shadow:0 20px 45px rgba(20,68,74,.1);
  border-color:transparent
}

.reason-no {
  position:absolute;
  right:22px;
  top:16px;
  font-weight:800;
  font-size:2.6rem;
  color:#edf5f4
}

.reason-icon {
  width:62px;
  height:62px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:#e9f8f6;
  color:#0d9488;
  font-size:1.65rem;
  margin-bottom:24px
}

.why-reason-card h3 {
  font-size:1.25rem;
  color:#19383e;
  margin-bottom:12px
}

.why-reason-card p {
  color:#6d8186;
  line-height:1.75;
  margin:0
}

.why-expertise-band {
  background:linear-gradient(135deg,#0b4f54,#0d7774);
  color:#fff
}

.why-expertise-band h2 {
  font-family:"Playfair Display",serif;
  font-size:clamp(2.2rem,4vw,3.7rem);
  margin:15px 0 20px
}

.why-expertise-band p {
  color:rgba(255,255,255,.78);
  line-height:1.8
}

.why-skill-list {
  display:grid;
  gap:16px
}

.why-skill-list>div {
  display:flex;
  gap:18px;
  align-items:center;
  padding:20px 22px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  border-radius:18px
}

.why-skill-list i {
  font-size:1.7rem;
  color:#a7f3d0
}

.why-skill-list span {
  display:flex;
  flex-direction:column
}

.why-skill-list small {
  color:rgba(255,255,255,.68);
  margin-top:3px
}

.why-process-image {
  position:relative
}

.why-process-image img {
  width:100%;
  height:570px;
  object-fit:cover;
  border-radius:28px;
  box-shadow:0 25px 60px rgba(21,61,67,.16)
}

.process-seal {
  position:absolute;
  right:-25px;
  bottom:35px;
  width:165px;
  height:165px;
  border-radius:50%;
  background:#0d9488;
  color:#fff;
  display:grid;
  place-items:center;
  text-align:center;
  border:10px solid #fff;
  box-shadow:0 15px 35px rgba(13,148,136,.28)
}

.process-seal i {
  display:block;
  font-size:2.2rem
}

.process-seal span {
  font-size:.85rem;
  font-weight:700;
  line-height:1.35
}

.why-steps {
  margin-top:30px;
  display:grid;
  gap:24px
}

.why-steps>div {
  display:flex;
  gap:18px
}

.why-steps>div>span {
  flex:0 0 46px;
  height:46px;
  border-radius:14px;
  background:#e8f8f5;
  color:#0d9488;
  font-weight:800;
  display:grid;
  place-items:center
}

.why-steps h3 {
  font-size:1.12rem;
  margin:0 0 6px;
  color:#19383e
}

.why-steps p {
  margin:0;
  color:#6d8186;
  line-height:1.65
}

.why-stats {
  padding:0 0 30px
}

.why-stats-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:#fff;
  border:1px solid #e4efee;
  box-shadow:0 20px 55px rgba(22,67,74,.09);
  border-radius:24px;
  overflow:hidden
}

.why-stats-grid>div {
  text-align:center;
  padding:34px 15px;
  border-right:1px solid #e4efee
}

.why-stats-grid>div:last-child {
  border-right:0
}

.why-stats-grid strong {
  display:block;
  font-size:2.3rem;
  color:#0d9488
}

.why-stats-grid span {
  color:#6a7e83;
  font-size:.9rem
}

.why-final-cta {
  background:linear-gradient(135deg,#093f45,#0d9488);
  color:#fff;
  border-radius:30px;
  padding:55px 60px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:35px;
  box-shadow:0 25px 60px rgba(12,100,98,.25)
}

.why-final-cta>div:first-child {
  max-width:650px
}

.why-final-cta span {
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.78rem;
  color:#a7f3d0
}

.why-final-cta h2 {
  font-family:"Playfair Display",serif;
  font-size:clamp(2rem,4vw,3.2rem);
  margin:10px 0
}

.why-final-cta p {
  margin:0;
  color:rgba(255,255,255,.75)
}

@media(max-width:991.98px) {
  .why-page-hero {
    padding:130px 0 75px
  }
  .why-hero-visual>img {
    height:500px
  }
  .why-floating-card.card-a {
    left:15px
  }
  .why-floating-card.card-b {
    right:15px
  }
  .why-stats-grid {
    grid-template-columns:repeat(2,1fr)
  }
  .why-stats-grid>div:nth-child(2) {
    border-right:0
  }
  .why-stats-grid>div:nth-child(-n+2) {
    border-bottom:1px solid #e4efee
  }
  .why-final-cta {
    padding:42px;
    flex-direction:column;
    align-items:flex-start
  }
  .process-seal {
    right:20px
  }
}

@media(max-width:575.98px) {
  .why-page-hero {
    padding:112px 0 60px
  }
  .why-page-hero h1 {
    font-size:2.45rem
  }
  .why-page-hero p {
    font-size:1rem
  }
  .why-hero-visual>img {
    height:410px;
    border-radius:26px 58px 26px 26px
  }
  .why-floating-card {
    padding:12px 14px
  }
  .why-floating-card.card-a {
    left:8px;
    bottom:18px
  }
  .why-floating-card.card-b {
    right:8px;
    top:18px
  }
  .why-floating-card.card-b strong {
    font-size:1.5rem
  }
  .why-trust-row {
    gap:16px
  }
  .why-reason-card {
    padding:28px 24px
  }
  .why-process-image img {
    height:410px
  }
  .process-seal {
    width:128px;
    height:128px;
    border-width:7px;
    right:10px;
    bottom:18px
  }
  .why-stats-grid {
    grid-template-columns:1fr 1fr
  }
  .why-stats-grid strong {
    font-size:1.85rem
  }
  .why-stats-grid>div {
    padding:25px 8px
  }
  .why-final-cta {
    padding:34px 24px;
    border-radius:24px
  }
  .why-final-cta .btn {
    width:100%
  }
}

/* footer css  */
/*==========================
      FOOTER DESIGN
==========================*/

.vm-footer-area{
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color:#fff;
    padding:80px 0 25px;
    position:relative;
    overflow:hidden;
}

.vm-footer-area::before{
    content:"";
    position:absolute;
    width:350px;
    height:350px;
    background:rgba(255,255,255,.04);
    border-radius:50%;
    top:-120px;
    right:-120px;
}

.vm-footer-widget h5{
    font-size:20px;
    font-weight:700;
    margin-bottom:25px;
    position:relative;
}

.vm-footer-widget h5::after{
    content:"";
    width:45px;
    height:3px;
    background:#fff
    position:absolute;
    left:0;
    bottom:-8px;
    border-radius:20px;
}

.vm-footer-logo{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
}

.vm-footer-logo i{
    font-size:38px;
    color:#fff
}

.vm-footer-logo h4{
    margin:0;
    font-weight:800;
}

.vm-footer-widget p{
    color:#d8e6ef;
    line-height:1.8;
}

.vm-footer-links{
    list-style:none;
    margin:0;
    padding:0;
}

.vm-footer-links li{
    margin-bottom:12px;
}

.vm-footer-links a{
    color:#dbe9f3;
    text-decoration:none;
    transition:.3s;
}

.vm-footer-links a:hover{
    color:#fff
    padding-left:8px;
}

.vm-contact-item{
    display:flex;
    gap:12px;
    align-items:flex-start;
    margin-bottom:18px;
}

.vm-contact-item i{
    color:#fff
    font-size:18px;
    margin-top:4px;
}

.vm-footer-social{
    display:flex;
    gap:12px;
    margin-top:25px;
}

.vm-footer-social a{
    width:42px;
    height:42px;
    background:rgba(255,255,255,.1);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    text-decoration:none;
    transition:.35s;
}

.vm-footer-social a:hover{
    background:#fff
    transform:translateY(-6px);
}

.vm-footer-line{
    border-color:rgba(255,255,255,.15);
    margin:45px 0 25px;
}

.vm-footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:15px;
    color:#d8e6ef;
    font-size:15px;
}

@media(max-width:768px){

    .vm-footer-area{
        text-align:center;
    }

    .vm-footer-logo{
        justify-content:center;
    }

    .vm-contact-item{
        justify-content:center;
    }

    .vm-footer-social{
        justify-content:center;
    }

    .vm-footer-bottom{
        flex-direction:column;
    }

}