/* ============================================================
   GPV SERVICES
   SERVICES LISTING + SERVICE DETAILS
============================================================ */

:root {
  --svc-navy: #0b253d;
  --svc-navy-2: #12354f;

  --svc-teal: #18b5ae;
  --svc-teal-dark: #0f8f8b;
  --svc-teal-soft: #e9f9f8;

  --svc-cyan: #2ebee6;

  --svc-text: #22384c;
  --svc-muted: #607584;

  --svc-bg: #f3f7f9;
  --svc-border: #dfe8ec;

  --svc-shadow:
    0 14px 35px
    rgba(11, 37, 61, 0.09);
}


/* ============================================================
   GENERAL
============================================================ */

* {
  box-sizing: border-box;
}


/* ============================================================
   HERO / BREADCRUMB
============================================================ */

.service-hero {
  padding:
    58px 0;

  color: #ffffff;

  text-align: center;

  background:
    linear-gradient(
      115deg,
      var(--svc-navy),
      #105666,
      var(--svc-teal-dark)
    );
}


.service-hero__inner {
  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;
}


.service-breadcrumb {
  display: flex;

  align-items: center;

  justify-content: center;

  flex-wrap: wrap;

  gap: 10px;

  margin-bottom: 16px;

  font-size: 15px;

  font-weight: 700;
}


.service-breadcrumb a {
  color:
    rgba(255, 255, 255, 0.84);

  transition:
    color 0.2s ease;
}


.service-breadcrumb a:hover {
  color:
    #ffffff;
}


.service-breadcrumb i {
  color:
    rgba(255, 255, 255, 0.52);

  font-size: 9px;
}


.service-breadcrumb span {
  color:
    #8ce8e3;
}


.service-hero h1 {
  margin:
    0 0 14px;

  color: #ffffff;

  font-size:
    clamp(
      42px,
      5vw,
      62px
    );

  line-height: 1.1;

  letter-spacing:
    -1px;

  font-weight: 800;
}


.service-hero p {
  width:
    min(
      760px,
      100%
    );

  margin:
    0 auto;

  color:
    rgba(255, 255, 255, 0.84);

  font-size: 17px;

  line-height: 1.8;

  font-weight: 500;
}


/* detail hero */

.service-hero--detail {
  padding:
    48px 0 50px;
}


.service-hero--detail h1 {
  font-size:
    clamp(
      40px,
      4.5vw,
      56px
    );
}


.service-hero--detail p {
  max-width: 780px;

  font-size: 16px;
}


/* ============================================================
   SERVICES LISTING
============================================================ */

.service-listing {
  padding:
    86px 0 95px;

  background:
    var(--svc-bg);
}


.section-intro {
  max-width: 780px;

  margin:
    0 auto 46px;

  text-align: center;
}


.section-intro > span,
.detail-title > span,
.faq-heading > span {
  display: block;

  margin-bottom: 9px;

  color:
    var(--svc-teal-dark);

  font-size: 13px;

  font-weight: 800;

  letter-spacing: 1.2px;
}


.section-intro h2 {
  margin:
    0 0 14px;

  color:
    var(--svc-navy);

  font-size:
    clamp(
      35px,
      4vw,
      48px
    );

  line-height: 1.2;

  font-weight: 800;
}


.section-intro h2 strong {
  color:
    var(--svc-teal);
}


.section-intro p {
  margin: 0;

  color:
    var(--svc-muted);

  font-size: 16px;

  line-height: 1.8;
}


/* ============================================================
   SERVICE CARDS
============================================================ */

.service-grid {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 26px;
}


.service-card {
  display: block;

  overflow: hidden;

  color: inherit;

  background: #ffffff;

  border:
    1px solid
    var(--svc-border);

  border-radius: 18px;

  box-shadow:
    var(--svc-shadow);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}


.service-card:hover {
  transform:
    translateY(-7px);

  border-color:
    rgba(24, 181, 174, 0.45);

  box-shadow:
    0 22px 45px
    rgba(11, 37, 61, 0.13);
}


.service-card__media {
  position: relative;

  height: 220px;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      var(--svc-navy-2),
      var(--svc-teal)
    );
}


.service-card__media img {
  position: relative;

  z-index: 2;

  width: 100%;

  height: 100%;

  object-fit: cover;

  transition:
    transform 0.35s ease;
}


.service-card:hover
.service-card__media img {
  transform:
    scale(1.045);
}


.service-card__fallback {
  position: absolute;

  inset: 0;

  display: grid;

  place-items: center;

  color:
    rgba(255, 255, 255, 0.8);

  font-size: 52px;
}


.service-card__body {
  position: relative;

  padding:
    25px 24px 27px;
}


.service-card__index {
  position: absolute;

  right: 22px;

  top: 19px;

  color:
    rgba(24, 181, 174, 0.14);

  font-size: 38px;

  font-weight: 800;
}


.service-card h3 {
  position: relative;

  z-index: 1;

  max-width: 82%;

  margin:
    0 0 12px;

  color:
    var(--svc-navy);

  font-size: 21px;

  line-height: 1.35;

  font-weight: 800;
}


.service-card p {
  margin:
    0 0 20px;

  color:
    var(--svc-muted);

  font-size: 14px;

  line-height: 1.75;
}


.service-card__read {
  display: inline-flex;

  align-items: center;

  gap: 8px;

  color:
    var(--svc-teal-dark);

  font-size: 14px;

  font-weight: 800;
}


.service-card__read i {
  transition:
    transform 0.2s ease;
}


.service-card:hover
.service-card__read i {
  transform:
    translateX(4px);
}


/* ============================================================
   DETAIL PAGE
============================================================ */

.detail-main {
  padding:
    80px 0 100px;

  background:
    #ffffff;
}


.service-detail-layout {
  display: grid;

  grid-template-columns:
    285px
    minmax(0, 1fr);

  gap: 42px;

  align-items: start;
}


/* ============================================================
   SIDEBAR
============================================================ */

.service-sidebar {
  position: sticky;

  top: 118px;
}


.service-sidebar__nav {
  padding: 18px;

  background:
    #edf3f6;

  border:
    1px solid
    #e2ebef;

  border-radius: 18px;

  box-shadow:
    0 10px 28px
    rgba(11, 37, 61, 0.05);
}


.service-sidebar__nav h3 {
  margin:
    3px 4px 15px;

  color:
    var(--svc-navy);

  font-size: 20px;

  font-weight: 800;
}


.service-sidebar__nav a {
  position: relative;

  display: block;

  margin-bottom: 10px;

  padding:
    14px 15px
    14px 18px;

  color:
    #354c60;

  background:
    #ffffff;

  border:
    1px solid
    transparent;

  border-left:
    4px solid
    transparent;

  border-radius: 9px;

  font-size: 14px;

  line-height: 1.4;

  font-weight: 600;

  transition:
    color 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}


.service-sidebar__nav
a:last-child {
  margin-bottom: 0;
}


/* HOVER */

.service-sidebar__nav a:hover {
  color:
    var(--svc-teal-dark);

  background:
    var(--svc-teal-soft);

  border-color:
    rgba(24, 181, 174, 0.28);

  border-left-color:
    var(--svc-teal);

  transform:
    translateX(4px);

  box-shadow:
    0 7px 18px
    rgba(11, 37, 61, 0.07);
}


/* ACTIVE = SAME FEEL AS HOVER */

.service-sidebar__nav a.active,
.service-sidebar__nav
a[aria-current="page"] {
  color:
    #ffffff;

  background:
    linear-gradient(
      100deg,
      var(--svc-teal-dark),
      var(--svc-teal)
    );

  border-color:
    var(--svc-teal-dark);

  border-left-color:
    var(--svc-navy);

  transform:
    translateX(4px);

  box-shadow:
    0 8px 20px
    rgba(24, 181, 174, 0.18);

  font-weight: 800;
}


.service-sidebar__nav
a.active:hover,
.service-sidebar__nav
a[aria-current="page"]:hover {
  color:
    #ffffff;

  background:
    linear-gradient(
      100deg,
      var(--svc-teal-dark),
      var(--svc-teal)
    );
}


/* ============================================================
   SIDEBAR CONTACT
============================================================ */

.service-sidebar__contact {
  position: relative;

  margin-top: 20px;

  padding:
    22px 18px 24px;

  overflow: hidden;

  color: #ffffff;

  text-align: center;

  background:
    linear-gradient(
      155deg,
      var(--svc-navy),
      var(--svc-teal)
    );

  border-radius: 18px;

  box-shadow:
    0 12px 28px
    rgba(11, 37, 61, 0.11);
}


.service-sidebar__doctor {
  height: 155px;

  margin:
    -22px -18px 0;

  display: grid;

  place-items: center;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      #183b58,
      #0e6d78
    );

  font-size: 64px;
}


.service-sidebar__phone-icon {
  position: relative;

  width: 52px;

  height: 52px;

  margin:
    -26px auto 11px;

  display: grid;

  place-items: center;

  color:
    var(--svc-teal-dark);

  background:
    #ffffff;

  border-radius: 50%;

  font-size: 19px;

  box-shadow:
    0 5px 15px
    rgba(0, 0, 0, 0.12);
}


.service-sidebar__contact small {
  display: block;

  margin-bottom: 7px;

  font-size: 11px;

  font-weight: 700;
}


.service-sidebar__contact a {
  display: block;

  color: #ffffff;

  font-size: 15px;

  line-height: 1.55;

  font-weight: 800;
}


.service-sidebar__quick {
  margin-top: 12px;

  padding:
    13px 15px;

  display: flex;

  align-items: center;

  gap: 12px;

  color:
    var(--svc-navy);

  background:
    #edf3f6;

  border-radius: 9px;

  font-size: 13px;

  font-weight: 700;

  transition:
    0.2s ease;
}


.service-sidebar__quick:hover {
  color:
    var(--svc-teal-dark);

  transform:
    translateX(3px);
}


.service-sidebar__quick i {
  width: 30px;

  height: 30px;

  display: grid;

  place-items: center;

  color: #ffffff;

  background:
    var(--svc-teal);

  border-radius: 7px;
}


/* ============================================================
   MOBILE/TABLET SERVICE PICKER
============================================================ */

.mobile-service-picker {
  display: none;
}


.mobile-service-picker label {
  color:
    var(--svc-navy);

  font-size: 14px;

  font-weight: 800;
}


.mobile-service-picker select {
  width: 100%;

  min-height: 54px;

  padding:
    0 16px;

  outline: none;

  border:
    1px solid
    #cddce4;

  border-radius: 11px;

  color:
    var(--svc-navy);

  background:
    #ffffff;

  font-family: inherit;

  font-size: 15px;

  font-weight: 600;

  cursor: pointer;
}


.mobile-service-picker
select:focus {
  border-color:
    var(--svc-teal);

  box-shadow:
    0 0 0 3px
    rgba(24, 181, 174, 0.1);
}


/* ============================================================
   DETAIL CONTENT
============================================================ */

.service-detail-content {
  min-width: 0;
}


.detail-banner {
  position: relative;

  height: 410px;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      var(--svc-navy-2),
      var(--svc-teal)
    );

  border-radius: 20px;

  box-shadow:
    0 12px 32px
    rgba(11, 37, 61, 0.1);
}


.detail-banner img {
  position: relative;

  z-index: 2;

  width: 100%;

  height: 100%;

  object-fit: cover;
}


.detail-banner__fallback {
  position: absolute;

  inset: 0;

  display: grid;

  place-items: center;

  color:
    rgba(255, 255, 255, 0.75);

  font-size: 84px;
}


/* ============================================================
   DETAIL TITLE
============================================================ */

.detail-title {
  margin:
    32px 0 22px;
}


.detail-title > span {
  font-size: 13px;
}


.detail-title h2 {
  margin: 0;

  color:
    var(--svc-navy);

  font-size:
    clamp(
      34px,
      3.5vw,
      44px
    );

  line-height: 1.22;

  font-weight: 800;
}


/* ============================================================
   DETAIL COPY
============================================================ */

.detail-copy__section {
  padding:
    0 0 28px;

  margin-bottom: 23px;

  border-bottom:
    1px solid
    #edf1f3;
}


.detail-copy__section:last-child {
  border-bottom: 0;
}


.detail-copy__section h3 {
  margin:
    0 0 13px;

  color:
    var(--svc-navy);

  font-size: 23px;

  line-height: 1.4;

  font-weight: 800;
}


.detail-copy__section p,
.detail-copy__section li {
  color:
    #556b7a;

  font-size: 16px;

  line-height: 1.9;
}


.detail-copy__section p {
  margin:
    0 0 14px;
}


.detail-copy__section ul,
.detail-copy__section ol {
  margin:
    10px 0 16px;

  padding-left: 25px;
}


.detail-copy__section li {
  margin-bottom: 7px;
}


.detail-copy__section strong {
  color:
    #30495d;

  font-weight: 800;
}


/* ============================================================
   QUALITY AREA
============================================================ */

.detail-quality {
  display: grid;

  grid-template-columns:
    1fr 1fr;

  gap: 20px;

  margin:
    30px 0 44px;
}


.detail-quality ul {
  list-style: none;

  margin: 0;

  padding: 26px;

  background:
    #edf3f6;

  border-radius: 18px;
}


.detail-quality li {
  display: flex;

  align-items: center;

  gap: 11px;

  margin-bottom: 15px;

  color:
    var(--svc-navy);

  font-size: 14px;

  font-weight: 700;
}


.detail-quality li:last-child {
  margin-bottom: 0;
}


.detail-quality li i {
  width: 31px;

  height: 31px;

  display: grid;

  place-items: center;

  flex: none;

  color:
    var(--svc-teal-dark);

  background:
    #ffffff;

  border-radius: 50%;
}


.detail-quality__visual {
  padding: 25px;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 18px;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      var(--svc-navy-2),
      var(--svc-teal-dark)
    );

  border-radius: 18px;
}


.detail-quality__visual > i {
  font-size: 54px;
}


.detail-quality__visual strong,
.detail-quality__visual span {
  display: block;
}


.detail-quality__visual strong {
  font-size: 17px;
}


.detail-quality__visual span {
  margin-top: 5px;

  color:
    rgba(255, 255, 255, 0.77);

  font-size: 13px;

  line-height: 1.55;
}


/* ============================================================
   FAQ
============================================================ */

.faq-section {
  margin-top: 25px;
}


.faq-heading {
  margin-bottom: 22px;
}


.faq-heading > span {
  font-size: 13px;
}


.faq-heading h2 {
  margin: 0;

  color:
    var(--svc-navy);

  font-size:
    clamp(
      27px,
      3vw,
      34px
    );

  line-height: 1.3;

  font-weight: 800;
}


.faq-list {
  display: grid;

  gap: 13px;
}


.faq-item {
  overflow: hidden;

  border:
    1px solid
    #cbdce5;

  border-radius: 16px;

  background:
    #ffffff;

  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}


.faq-item:hover {
  border-color:
    rgba(24, 181, 174, 0.45);
}


.faq-item.is-open {
  border-color:
    var(--svc-teal);

  box-shadow:
    0 8px 24px
    rgba(11, 37, 61, 0.07);
}


.faq-question {
  width: 100%;

  min-height: 62px;

  padding:
    12px 18px;

  display: flex;

  align-items: center;

  gap: 14px;

  border: 0;

  background:
    #ffffff;

  color:
    var(--svc-navy);

  text-align: left;

  font-family: inherit;

  font-size: 14px;

  font-weight: 800;

  cursor: pointer;
}


.faq-icon {
  width: 35px;

  height: 35px;

  flex: none;

  display: grid;

  place-items: center;

  color: #ffffff;

  background:
    var(--svc-navy);

  border-radius: 50%;

  font-size: 13px;

  transition:
    background 0.2s ease,
    transform 0.2s ease;
}


.faq-item.is-open
.faq-icon {
   background:
    var(--svc-teal-dark);
}


.faq-answer {
  display: none;

  padding:
    0 22px
    20px 67px;

  color:
    #556b7a;

  font-size: 15px;

  line-height: 1.85;
}


.faq-answer p,
.faq-answer ul,
.faq-answer ol {
  margin-top: 0;
}


.faq-answer ul,
.faq-answer ol {
  padding-left: 20px;
}


.faq-item.is-open
.faq-answer {
  display: block;
}


.faq-empty {
  color:
    var(--svc-muted);
}


/* ============================================================
   LAPTOP
============================================================ */

@media (
  max-width: 1250px
) {

  .service-detail-layout {
    grid-template-columns:
      260px
      minmax(0, 1fr);

    gap: 32px;
  }


  .detail-banner {
    height: 370px;
  }


  .detail-copy__section h3 {
    font-size: 21px;
  }


  .detail-copy__section p,
  .detail-copy__section li {
    font-size: 15px;
  }

}


/* ============================================================
   TABLET
============================================================ */

@media (
  max-width: 1000px
) {

  .service-grid {
    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );
  }

}


@media (
  max-width: 900px
) {

  .service-hero--detail {
    padding:
      43px 0 45px;
  }


  .service-hero--detail h1 {
    font-size: 43px;
  }


  .service-hero--detail p {
    max-width: 680px;

    font-size: 15px;
  }


  .detail-main {
    padding:
      58px 0 75px;
  }


  .service-detail-layout {
    grid-template-columns:
      1fr;

    gap: 0;
  }


  /* desktop sidebar hide */

  .service-sidebar {
    display: none;
  }


  /* tablet/mobile picker */

  .mobile-service-picker {
    display: grid;

    gap: 9px;

    margin-bottom: 27px;
  }


  .mobile-service-picker label {
    font-size: 14px;
  }


  .mobile-service-picker select {
    min-height: 56px;

    font-size: 15px;
  }


  .detail-banner {
    height: 360px;

    border-radius: 17px;
  }


  .detail-title {
    margin:
      27px 0 18px;
  }


  .detail-title h2 {
    font-size: 35px;
  }


  .detail-copy__section h3 {
    font-size: 21px;
  }


  .detail-copy__section p,
  .detail-copy__section li {
    font-size: 15px;
  }


  .detail-quality {
    grid-template-columns:
      1fr 1fr;
  }


  .faq-question {
    font-size: 14px;
  }


  .faq-answer {
    font-size: 14px;
  }

}


/* ============================================================
   MOBILE
============================================================ */

@media (
  max-width: 620px
) {

  .service-hero {
    padding:
      42px 0;
  }


  .service-hero--detail {
    padding:
      38px 0 40px;
  }


  .service-breadcrumb {
    gap: 7px;

    margin-bottom: 13px;

    font-size: 12px;
  }


  .service-hero h1,
  .service-hero--detail h1 {
    font-size: 36px;

    line-height: 1.15;
  }


  .service-hero p,
  .service-hero--detail p {
    max-width: 95%;

    font-size: 14px;

    line-height: 1.7;
  }


  /* listing */

  .service-listing {
    padding:
      62px 0 70px;
  }


  .service-grid {
    grid-template-columns:
      1fr;
  }


  .service-card__media {
    height: 210px;
  }


  .service-card__body {
    padding:
      23px 20px 25px;
  }


  .service-card h3 {
    font-size: 20px;
  }


  .service-card p {
    font-size: 14px;
  }


  /* detail */

  .detail-main {
    padding:
      42px 0 65px;
  }


  .mobile-service-picker {
    margin-bottom: 24px;
  }


  .mobile-service-picker label {
    font-size: 13px;
  }


  .mobile-service-picker select {
    min-height: 54px;

    padding:
      0 14px;

    font-size: 14px;

    border-radius: 10px;
  }


  .detail-banner {
    height: 245px;

    border-radius: 14px;
  }


  .detail-title {
    margin:
      24px 0 17px;
  }


  .detail-title > span {
    font-size: 12px;
  }


  .detail-title h2 {
    font-size: 30px;

    line-height: 1.25;
  }


  .detail-copy__section {
    padding-bottom: 23px;

    margin-bottom: 19px;
  }


  .detail-copy__section h3 {
    font-size: 19px;

    line-height: 1.45;
  }


  .detail-copy__section p,
  .detail-copy__section li {
    font-size: 14px;

    line-height: 1.85;
  }


  .detail-copy__section ul,
  .detail-copy__section ol {
    padding-left: 21px;
  }


  /* quality */

  .detail-quality {
    grid-template-columns:
      1fr;

    gap: 14px;

    margin:
      25px 0 35px;
  }


  .detail-quality ul {
    padding: 21px;
  }


  .detail-quality li {
    font-size: 13px;
  }


  .detail-quality__visual {
    padding: 22px;
  }


  /* FAQ */

  .faq-heading h2 {
    font-size: 25px;
  }


  .faq-list {
    gap: 11px;
  }


  .faq-question {
    min-height: 58px;

    padding:
      11px 13px;

    gap: 11px;

    font-size: 12px;

    line-height: 1.45;
  }


  .faq-icon {
    width: 32px;

    height: 32px;

    font-size: 12px;
  }


  .faq-answer {
    padding:
      0 15px
      16px 15px;

    font-size: 13px;

    line-height: 1.8;
  }

}


/* ============================================================
   SMALL MOBILE
============================================================ */

@media (
  max-width: 390px
) {

  .service-hero h1,
  .service-hero--detail h1 {
    font-size: 32px;
  }


  .detail-banner {
    height: 220px;
  }


  .detail-title h2 {
    font-size: 27px;
  }


  .detail-copy__section h3 {
    font-size: 18px;
  }


  .faq-heading h2 {
    font-size: 23px;
  }

}