/* =====================
					폰트
   ===================== */

/* 기본 폰트, 색상 */
body {
font-family: "Pretendard","Roboto",sans-serif !important;
}

/* 폰트 자간 */
.text-tight {
    letter-spacing: -0.03em;
}

/* 메뉴 폰트 */
.ptf-default-menu__navigation .sf-menu > li > a {
  font-size: 1.5rem;
  font-weight: 400;
}

/* 상담전화 폰트 */
.ptf-navbar-socials {
  font-size: 1.5rem;
  font-weight: 600;
}

/* 서브 설명 폰트 */
.sub_body_text {
  font-size: 1.25rem;
  font-weight: 300;
  color : #fff;
  text-align: justify;
  margin-bottom: 15px; /* P태그 여백 */
  }

@media (max-width: 575.98px) { /* 모바일 */
    .sub_body_text {
        font-size: 1.2rem;
		line-height: 1.4;
    }
}

/* Map 정보 타이틀 */
.map_info_title {
  font-size: 1.35rem;
  font-weight: 400;
  color : #01EEE3;
  }

/* Map 정보 서브 타이틀 */
.map_info_sub_title {
  font-size: 1.2rem;
  font-weight: 500;
  color : #fff;
  }

/* Map 정보 내용 */
.map_info_text {
  font-size: 1.2rem;
  font-weight: 200;
  color : #cfcfcf;
  margin-bottom: 30px; /* P태그 여백 */
  }

/* 오픈 메뉴 상단 폰트 */
.open_menu_prime {
  font-size: 1.37rem; /* 상호명 */
}
.open_menu_call {
  font-size: 1.4rem;
}

/* 오픈 메뉴 상단 padding */
.ptf-offcanvas-menu__header {
   padding-bottom: 80px;
}
@media (max-width: 768px) {
  .ptf-offcanvas-menu__header {
    padding-bottom: 50px;
  }
}

/* =====================
		메인 타이틀 폰트, h1 · h6
   ===================== */

/* 기본 h1 스타일 (기본 h1에만 적용) */
h1, .h1 {
    line-height: 1;
}

/* h1.highlight 스타일 */
.highlight {
    font-size: 6rem;
    font-weight: 700;
    line-height: 1.4;
}

/* h1.subheading 스타일 */
.subheading {
    font-size: 4.5rem;
    font-weight: 500;
    line-height: 1;
}

/* 화면 크기가 1199px 이하일 경우 (태블릿 화면 크기) */
@media (max-width: 1199px) {
	h1, .h1 {
    line-height: 0.5; 
	}
    .highlight {
        font-size: calc(4rem + 3vw); /* 화면 크기에 따라 동적 크기 조정 */
    }
    .subheading {
        font-size: 3rem;
    }
}

/* 화면 크기가 575.98px 이하일 경우 (모바일 화면 크기) */
@media (max-width: 575.98px) {
    .highlight {
        font-size: 3rem;
    }
    .subheading {
        font-size: 2rem;
    }
}

/* 기본 h6 스타일 (기본 h6에만 적용) */
h6, .h6 {
    font-size: 1.2rem;
}

/* =====================
					색상
   ===================== */

/* CSS 변수로 색상 정의 */
:root {
	--ptf-color-accent: #01EEE3; /* 폰트 색상 */
    --ptf-color-3: #0B1F22; /* 배경 색상 */
}

/* 문서, 바디 최상위 배경색 */
html, body{
  background-color: var(--ptf-color-3);
}

/* PT 섹션 배경 그라데이션 */
.ptf-section[data-anchor="PT"], .ptf-section[data-anchor="Map"] {
  background: linear-gradient(
     270deg,
    #194349 0%,
    #0b1f22 50%,
    #0b1f22 100%
  );
}

/* PC 상담전화, 모바일 상호명 */
.ptf-navbar-socials, .open_menu_prime {
  color: var(--ptf-color-accent);
}

/* 치료팀 소개 */
.pt-title {
  color: #fff;
  font-size : 1.2rem;
  font-weight: 500;
 }
.pt-strong {
  color: var(--ptf-color-accent);
  font-weight: 500;
}

/* =====================
					로고
   ===================== */

.ptf-navbar .ptf-navbar-logo img
 {
  max-height: 4rem; /* 로고 크기 */
}

@media (min-width: 1200px) {
    .ptf-navbar .ptf-navbar-inner {
        padding: 1.4rem 3.4375rem; /* 네비게이션 여백 */
    }
}

/* =====================
					배경
   ===================== */

/* HOME: 배경 비디오 삽입 */
.ptf-fullpage-slider .ptf-section[data-anchor="Home"] .ptf-section__ken-burn-background.ptf-home-video-bg{
  z-index: 0; /* 기본값은 -1이라(템플릿) 섹션 배경 뒤로 숨을 수 있어 HOME만 올림 */
}

.ptf-fullpage-slider .ptf-section[data-anchor="Home"] .ptf-section__content{
  z-index: 2; /* 텍스트/컨텐츠는 비디오 위 */
}

.ptf-fullpage-slider .ptf-section[data-anchor="Home"] .ptf-home-bg-video{
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* 배경 이미지에 어두운 오버레이 추가 */
.ptf-section__ken-burn-background {
    position: relative;
    height: 100%; /* 섹션 전체 영역을 채움 */
}

.ptf-section__ken-burn-background::before {
    content: ''; /* 오버레이 효과를 위한 빈 요소 */
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3); /* 30% 투명도의 어두운 검정색 오버레이 */
    z-index: 1; /* 오버레이가 내용 위에 오도록 설정 */
}

/* 모바일에서 배경 오버레이 더 어둡게 */
@media (max-width: 575.98px) {
  .ptf-section__ken-burn-background::before {
    background: rgba(0, 0, 0, 0.4);
  }
}

/* 특정 섹션 배경 오버레이 더 어둡게 */
/*.ptf-section[data-anchor="RRE"] .ptf-section__ken-burn-background::before,
.ptf-section[data-anchor="RT"] .ptf-section__ken-burn-background::before {
    background: rgba(0, 0, 0, 0.5);
} */


@media (max-width: 575.98px) {
  /* 모바일 : 배경을 단일 색상으로 */
  .ptf-section[data-anchor="PT"],
  .ptf-section[data-anchor="Map"] {
    background: #0b1f22;
  }

  /* 모바일 배경 이미지 애니메이션 끄기 */
  .ptf-fullpage-slider .ptf-section__ken-burn-background img {
    transition: none !important;
    transform: none !important;

    object-fit: cover;
    object-position: center top; /* 또는 center center */
  }
}

/* =========================
					RT 이미지
   ========================= */

/* 이미지 박스 그림자 */
.ptf-post-thumbnail {
  box-shadow: 1px 0px 15px rgba(0,0,0,0.2); 
}

/* 설명 텍스트 */
.ptf-post--masonry .ptf-post-thumbnail+.ptf-post-content {
padding-top : 20px; 
text-align: right;
}

/* =========================
			   RRE, ESWT 이미지
   ========================= */

#rre_eswt_Image.rre-eswt-image-grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 16px;
  height: 450px; /* 큰 이미지 높이 */
}

.ptf-section[data-anchor="RRE"] #rre_eswt_Image.rre-eswt-image-grid{
  grid-template-columns: 1fr 1.7fr; /* RRE : 큰이미지 작은이미지 위치 바꾸기 */
}

/* 오른쪽 작은 2장 세로 */
.rre-eswt-image-small-col {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 16px;
}

/* 라운드/오버플로우(확대 잘림) */
#rre_eswt_Image .ptf-post-thumbnail {
  height: 100%;
  overflow: hidden;
  border-radius: 18px;
}

/* 이미지 채우기 */
#rre_eswt_Image .ptf-post-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 큰이미지 정렬 */
.ptf-section[data-anchor="ESWT"] #rre_eswt_Image .rre-eswt-image-large img {
  object-position: left center;
}

/* 모바일에서 형태 유지 */
@media (max-width: 991.98px) {
.ptf-section[data-anchor="RRE"] #rre_eswt_Image.rre-eswt-image-grid,
#rre_eswt_Image.rre-eswt-image-grid {
    grid-template-columns: 1fr;
    height: auto;
  }
.rre-eswt-image-large {
    height: 280px;
  }
.rre-eswt-image-small-col {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }
.rre-eswt-image-small {
    height: 160px;
  }
}

/* =========================
             PT 슬라이드 프로필
   ========================= */

.ptf-section[data-anchor="PT"] .pt-profile-row {
  display: flex;
  align-items: flex-start;
  gap: 0;
}

.ptf-section[data-anchor="PT"] .pt-profile-media {
  flex: 0 0 47%;
  display: flex;
  align-self: center; /* 이미지 블록 중앙 정렬 */
}

/* PC: divider는 숨기고 (모바일 가로선 용도) */
.ptf-section[data-anchor="PT"] .pt-profile-divider {
  display: none;
}

/* 텍스트 블록 자체를 이미지 기준 세로 가운데로 */
.ptf-section[data-anchor="PT"] .pt-profile-body {
  flex: 1 1 auto;
  position: relative;
  align-self: center; /* 텍스트+선 블록이 이미지 기준 중앙 */
  padding-left: 70px; /* 텍스트쪽 여백만 */
}

/* 선 : 텍스트 높이만큼 */
.ptf-section[data-anchor="PT"] .pt-profile-body::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0; /* 텍스트 높이만큼 */
  left: 0; /* 중앙 */
  width: 1px;
  background: rgba(255,255,255,0.25);
}

.ptf-timeline-slider .ptf-swiper-pagination {
  margin-top: 2rem;   /* 네비게이션 포인터 상단 여백 */
}

.ptf-timeline-item__text {
  text-align: justify; /*  텍스트 양쪽 정렬 */
}

/* 모바일 해상도 */
@media (max-width: 991.98px) {
  /* 레이아웃 */
  .ptf-section[data-anchor="PT"] .pt-profile-row {
    flex-direction: column;
  }

  /* 텍스트 영역 */
  .ptf-section[data-anchor="PT"] .pt-profile-body {
    padding-left: 0;
  }

  .ptf-section[data-anchor="PT"] .pt-profile-body::before {
    content: none;
  }

  /* 가로 구분선 : 상하 여백 */
  .ptf-section[data-anchor="PT"] .pt-profile-divider {
    display: block;
    width: 100%;
    height: 1px;
    background: rgba(255,255,255,0.25);
    margin: 36px 0;   /* 16px → 36px */
  }

  /* 이미지 높이 */
  .ptf-section[data-anchor="PT"] .pt-profile-thumb img {
    height: 320px;
  }

  .ptf-timeline-slider .ptf-swiper-pagination {
    margin-top: 1rem;   /* 네비게이션 포인터 상단 여백 */
  }
}

/* =========================
				Map 지도 크기
   ========================= */

/* Kakao Map 최소 높이 보장 */
#kakaoMap {
  min-height: clamp(300px, 35vh, 600px);
}

#map {
  width: 100%;
  height: 100%;
  min-height: clamp(300px, 35vh, 600px);
}

/* =========================
		      footer 상단 패딩값
   ========================= */

/* 모바일에서는 지도 padding-bottom 값이 있어야 제대로 먹힘 */
.ptf-footer {
  padding: 20px 15px;
}
@media (min-width: 768px) {
  .ptf-footer {
    padding: 30px;
  }
}
@media (min-width: 1200px) {
  .ptf-footer {
    padding: 50px 55px;
  }
}

/* =========================
				footer 병원 정보
	========================= */

/* 기본: 숨김 */
.prime-info {
  display: none;
}

/* 1600px 이상에서는 항상 표시 */
@media (min-width: 1600px) {
  .prime-info {
    display: block;
  }
}

/* =====================
				footer 아이콘
   ===================== */

/* 아이콘 간격 */
.ptf-social-icon + .ptf-social-icon {
    margin-left: 0.8rem; /* 간격을 1rem으로 줄임 */
}

/* 모바일에서 간격을 더 줄이기 */
@media (max-width: 767px) { /* 767px 이하 화면 크기에서 */
    .ptf-social-icon + .ptf-social-icon {
        margin-left: 0.4rem; /* 간격을 0.5rem으로 줄임 */
    }
}

/* =====================
		footer 아이콘 말풍선
   ===================== */

.tooltip-wrap {
  position: relative;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.tooltip {
  position: absolute;
  bottom: 120%;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;

  background: #222;
  color: #fff;
  font-size: 18px;
  padding: 20px 30px;
  margin-bottom: 20px;
  border-radius: 6px;

  /* ▼ 말풍선 그림자 추가 */
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.28);

  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease;
  pointer-events: none;
  z-index: 10;
}

/* 꼬리 */
.tooltip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px;
  border-style: solid;
  border-color: #222 transparent transparent transparent;

  /* ▼ 꼬리 그림자 추가 */
  filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
}

/* 활성화 */
.tooltip-wrap.active .tooltip {
  opacity: 1;
  visibility: visible;
}

/* ==========================================
   모바일 오픈 메뉴 깜빡임 수정(닫힘 상태 유지)
   - 검은 배경(오버레이) 깜빡임 완화
   - 오픈 메뉴 상단(상호/전화) 텍스트 깜빡임 완화
   ※ 메뉴 패널(.ptf-offcanvas-menu)의 transform은 건드리지 않음
   ========================================== */

@media (max-width: 991.98px) {
  /* 1) 검은 배경 오버레이: opacity 변화 시 깜빡임 완화 */
  .ptf-site-overlay {
    will-change: opacity;
  }

  /* 2) 오픈 메뉴 상단 텍스트 영역만 합성 레이어 고정(글자 깜빡임 방지) */
  .ptf-offcanvas-menu__header .ptf-offcanvas-menu__locales,
  .ptf-offcanvas-menu__header .ptf-offcanvas-menu__locales * {
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  /* 3) span/a를 inline-block으로 고정해 페인트 튐 완화 */
  .ptf-offcanvas-menu__header .ptf-offcanvas-menu__locales .open_menu_prime,
  .ptf-offcanvas-menu__header .ptf-offcanvas-menu__locales .open_menu_call {
    display: inline-block;
  }

  /* 4) 메뉴 패널은 transform을 건드리지 않고 최적화 힌트만 제공 */
  .ptf-offcanvas-menu {
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }
}

/* =========================
		모바일 세션 상단 여백 줄이기
   ========================= */

@media (max-width: 575.98px) {
  .ptf-section__content {
    padding-top: 170px !important;
  }
}



/* =========================
			이미지 슬라이드 (적용x)
   ========================= */

/* 슬라이드 이미지 박스 */
.slide-box {
  box-shadow: 1px 0px 15px rgba(0,0,0,0.2); /* 이미지 박스 그림자 */
  border-radius: 18px;
}

/* 슬라이드 이미지 */
#rreImageSlider .ptf-image-slide {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 18px;
  display: block;
}

@media (max-width: 991.98px) {
  #rreImageSlider .ptf-image-slide{ height: 280px; }
}

/* 화살표 */
#rreImageSlider .ptf-swiper-button-prev,
#rreImageSlider .ptf-swiper-button-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  color: #fff;
  cursor: pointer;
  user-select: none;
}
#rreImageSlider .ptf-swiper-button-prev{ left: 18px; }
#rreImageSlider .ptf-swiper-button-next{ right: 18px; }

/* 페이지네이션 */
#rreImageSlider .ptf-swiper-pagination {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 14px;
  z-index: 10;
}

/* 캡션 */
#rreImageSlider .swiper-slide{ position: relative; }
#rreImageSlider .rre-slide-caption {
  position: absolute;
  top: 20px;
  right: 30px;
  z-index: 15;
  font-size: 1.1rem;
  letter-spacing: -0.03em;
  padding: 0;
  text-shadow: 1px 0px 5px rgba(0,0,0,0.3); /* 이미지 텍스트 그림자 */
  pointer-events: none;
}


/* =========================
   Map TOP 버튼 (지도 안 전용)
========================= */

#kakaoMap{
  position: relative;
  overflow: hidden;
}

.ptf-map-top{
  position: absolute;
  right: 10px;
  bottom: 12px;
  z-index: 50;

  display: inline-flex;
  align-items: center;
  gap: 6px;

  padding: 10px 15px;
  border-radius: 8px;

  background: rgba(0,0,0,.35);
  color: #fff;

  font-size: 12px;
  line-height: 1;
  text-decoration: none;

  /* ✅ 그림자: 덜 퍼지게(고정) */
  box-shadow: 0 2px 5px rgba(0,0,0,.30);

  transition: background .2s ease;
}

/* hover / focus
   - 배경만 진하게
   - 텍스트 색상 유지
   - ✅ 그림자 변경 없음 */
.ptf-map-top:hover,
.ptf-map-top:focus{
  background: rgba(0,0,0,.55);
  color: #fff;
  outline: none;
}

/* 기본: 전부 숨김 */
.map-only-gap {
  display: none;
}

/* =====================
   모바일 + Map에서만 활성화
   ===================== */

/* 모바일 */
@media (min-width: 374px) and (max-width: 575.98px) {
  .ptf-section[data-anchor="Map"] .map-only-gap {
    display: block;
    height: 50px;
  }
}

/* 태블릿 */
@media (min-width: 576px) and (max-width: 991.98px) {
  .ptf-section[data-anchor="Map"] .map-only-gap {
    display: block;
    height: 80px;
  }
}