/* ============================================================
   연세원치과 — style.css  |  White Marble & Forest Green
   ============================================================ */

/* ===== CSS VARIABLES ===== */
:root {
  --forest:       #1B3A2D;  /* 딥 포레스트 — 대기실 소파 색 */
  --green-dark:   #1A6535;  /* 로고 상단·포인트 */
  --green-main:   #3DAE50;  /* 로고 중간 — 버튼·링크 메인 */
  --green-lime:   #8DC63F;  /* 로고 하단·e — 밝은 강조 */
  --green-pale:   #EBF7DF;
  --green-xpale:  #F4FBF0;

  --warm-white:   #FAFAF7;
  --cream:        #F5F0E8;
  --beige:        #EDE8DC;

  --text:         #1C1C1C;
  --text-mid:     #525252;
  --text-light:   #888888;
  --white:        #FFFFFF;
  --dark:         #111111;

  --font-ko:  'Noto Sans KR', -apple-system, 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  --font-en:  'Cormorant Garamond', Georgia, serif;

  --max-w:    1200px;
  --pad:      0 2rem;
  --h-top:    40px;
  --h-head:   80px;
  --sec-pad:  100px 0;

  --ease:      0.3s ease;
  --ease-slow: 0.1s ease;
  --sh-sm:     0 2px 10px rgba(0,0,0,.07);
  --sh-md:     0 4px 24px rgba(0,0,0,.11);
  --sh-lg:     0 8px 40px rgba(0,0,0,.16);
  --sh-green:  0 4px 20px rgba(61,174,80,.25);

  --r-sm: 8px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 9999px;
}

/* ===== RESET ===== */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family: var(--font-ko);
  color: var(--text);
  background: var(--warm-white);
  line-height: 1.7;
  overflow-x: hidden;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
ul,ol { list-style:none; }

/* ===== LAYOUT ===== */
.container { max-width:var(--max-w); margin:0 auto; padding:var(--pad); }

.section-eyebrow {
  font-size:.8rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color: var(--green-main); margin-bottom:.75rem;
}
.section-title {
  font-size: clamp(1.6rem,3vw,2.4rem);
  font-weight:800; line-height:1.3;
  color:var(--text); margin-bottom:1.25rem;
  word-break:keep-all;
}
.section-header { text-align:center; margin-bottom:4rem; }

/* ===== BUTTONS ===== */
.btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding:.875rem 2rem; border-radius:var(--r-xl);
  font-family:var(--font-ko); font-size:.9rem; font-weight:700;
  cursor:pointer; transition:all var(--ease);
  border:2px solid transparent; white-space:nowrap;
}
.btn--primary {
  background:var(--green-main); color:var(--white);
  border-color:var(--green-main);
}
.btn--primary:hover {
  background:var(--green-dark); border-color:var(--green-dark);
  transform:translateY(-2px); box-shadow:var(--sh-green);
}
.btn--outline {
  background:transparent; color:var(--green-dark);
  border-color:var(--green-main);
}
.btn--outline:hover {
  background:var(--green-main); color:var(--white);
  transform:translateY(-2px); box-shadow:var(--sh-green);
}
.btn--outline-white {
  background:transparent; color:var(--white);
  border-color:rgba(255,255,255,.55);
}
.btn--outline-white:hover {
  background:rgba(255,255,255,.12); border-color:var(--white);
}
/* 히어로 버튼 */
.btn--white {
  background:var(--white); color:var(--green-dark);
  border-color:var(--white); font-weight:800;
}
.btn--white:hover {
  background:var(--green-lime); border-color:var(--green-lime);
  color:var(--white); transform:translateY(-2px); box-shadow:var(--sh-green);
}
.btn--ghost-white {
  background:transparent; color:var(--white);
  border-color:rgba(255,255,255,.5);
}
.btn--ghost-white:hover {
  background:rgba(255,255,255,.12); border-color:var(--white);
  transform:translateY(-2px);
}

/* ===== SCROLL REVEAL ===== */
.reveal {
  opacity:0; transform:translateY(28px);
  transition:opacity var(--ease-slow), transform var(--ease-slow);
}
.reveal--right { transform:translateX(36px); }
.reveal--left  { transform:translateX(-36px); }
.reveal.visible { opacity:1; transform:translate(0); }

/* ===== TOP BAR ===== */
.top-bar {
  background:var(--forest); color:rgba(255,255,255,.85);
  height:var(--h-top); font-size:.78rem;
}
.top-bar .container {
  display:flex; align-items:center;
  justify-content:space-between; height:100%;
}
.top-bar__contact { display:flex; align-items:center; gap:1.5rem; }
.top-bar__contact a { transition:color var(--ease); }
.top-bar__contact a:hover { color:var(--green-lime); }
.top-bar__social { display:flex; gap:1rem; }
.top-bar__social a { color:rgba(255,255,255,.6); transition:color var(--ease); }
.top-bar__social a:hover { color:var(--green-lime); }

/* ===== HEADER ===== */
.header {
  position:sticky; top:0; left:0; right:0; z-index:1000;
  height:var(--h-head); background:var(--white);
  box-shadow:var(--sh-sm); transition:box-shadow var(--ease);
}
.header.scrolled { box-shadow:0 2px 20px rgba(0,0,0,.13); }
.header .container {
  display:flex; align-items:center; gap:1.5rem; height:100%;
}

/* LOGO */
.logo { display:flex; align-items:center; flex-shrink:0; }
.logo__garosseo { height:52px; width:auto; object-fit:contain; }

/* NAV */
.nav { margin-left:auto; }
.nav__list { display:flex; align-items:center; gap:.15rem; }
.nav__link {
  padding:.5rem .85rem; font-size:.875rem; font-weight:500;
  color:var(--text-mid); border-radius:var(--r-sm);
  transition:all var(--ease); white-space:nowrap;
}
.nav__link:hover, .nav__link.active {
  color:var(--green-dark); background:var(--green-xpale);
}

.btn-reserve {
  background:var(--green-main); color:var(--white);
  padding:.6rem 1.2rem; border-radius:var(--r-xl);
  font-size:.85rem; font-weight:700;
  transition:all var(--ease); flex-shrink:0; white-space:nowrap;
}
.btn-reserve:hover {
  background:var(--green-dark);
  transform:translateY(-1px); box-shadow:var(--sh-sm);
}

/* MOBILE TOGGLE */
.nav-toggle {
  display:none; flex-direction:column; gap:5px;
  padding:.5rem; background:none; border:none;
  cursor:pointer; flex-shrink:0; margin-left:auto;
}
.nav-toggle span {
  display:block; width:24px; height:2px;
  background:var(--text); border-radius:2px; transition:all .3s ease;
}
.nav-toggle.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* MOBILE NAV */
.mobile-nav {
  display:none; position:fixed; z-index:999;
  top:calc(var(--h-top) + var(--h-head));
  left:0; right:0;
  background:var(--white); padding:1rem 2rem 2rem;
  box-shadow:var(--sh-lg);
  transform:translateY(-8px); opacity:0;
  pointer-events:none; transition:all .3s ease;
}
.mobile-nav.open {
  transform:translateY(0); opacity:1; pointer-events:auto;
}
.mobile-nav ul { display:flex; flex-direction:column; gap:.25rem; }
.mobile-nav a {
  display:block; padding:.875rem 1rem;
  font-size:.975rem; font-weight:500;
  color:var(--text-mid); border-radius:var(--r-sm);
  transition:all var(--ease);
}
.mobile-nav a:hover { color:var(--green-main); background:var(--cream); }
.mobile-nav__cta {
  background:var(--green-main) !important; color:var(--white) !important;
  text-align:center; margin-top:.5rem; border-radius:var(--r-xl) !important;
}

/* ================================================================
   HERO + 무한 캐러셀
   ================================================================ */
.hero {
  min-height: calc(100vh - var(--h-top) - var(--h-head));
  position: relative;
  overflow: hidden;
}

/* 캐러셀 래퍼 */
.carousel {
  width: 100%;
  height: 100%;
  min-height: calc(100vh - var(--h-top) - var(--h-head));
  position: relative;
}
.carousel__track {
  display: flex;
  height: 100%;
  min-height: calc(100vh - var(--h-top) - var(--h-head));
  transition: transform 0.65s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}
.carousel__slide {
  flex: 0 0 100%;
  width: 100%;
  position: relative;
  overflow: hidden;
}

/* 슬라이드 배경 이미지 */
.slide-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  background-repeat: no-repeat;
}

/* 기본 오버레이 — 전체는 흰 안개, 글씨 영역(왼쪽)만 어둡게
   ① 왼쪽 어두운 그라데이션(가독성)  ② 전체 흰 안개(뿌연 느낌) */
.slide-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(
      to right,
      rgba(20,30,25,0.42) 0%,
      rgba(20,30,25,0.28) 30%,
      rgba(20,30,25,0.08) 55%,
      rgba(20,30,25,0) 72%
    ),
    linear-gradient(
      160deg,
      rgba(255,255,255,0.30) 0%,
      rgba(255,255,255,0.20) 50%,
      rgba(255,255,255,0.34) 100%
    );
}
/* 밝은 이미지(msec10_bg.png)용 오버레이 — 흰 안개를 조금 더 옅게 */
.carousel__slide.slide--dark .slide-overlay {
  background:
    linear-gradient(
      to right,
      rgba(20,30,25,0.38) 0%,
      rgba(20,30,25,0.24) 30%,
      rgba(20,30,25,0.07) 55%,
      rgba(20,30,25,0) 72%
    ),
    linear-gradient(
      160deg,
      rgba(255,255,255,0.22) 0%,
      rgba(255,255,255,0.14) 50%,
      rgba(255,255,255,0.26) 100%
    );
}

/* 모바일 — 글씨 폭이 화면 전체라 왼쪽 그라데이션을 더 넓게 */
@media (max-width: 768px) {
  .slide-overlay,
  .carousel__slide.slide--dark .slide-overlay {
    background:
      linear-gradient(
        to bottom,
        rgba(20,30,25,0.22) 0%,
        rgba(20,30,25,0.36) 60%,
        rgba(20,30,25,0.45) 100%
      ),
      linear-gradient(
        160deg,
        rgba(255,255,255,0.22) 0%,
        rgba(255,255,255,0.14) 50%,
        rgba(255,255,255,0.26) 100%
      );
  }
}

/* 슬라이드 콘텐츠 레이어 */
.slide-content {
  position: absolute; inset: 0; z-index: 2;
  display: flex; align-items: center;
}

/* 히어로 내부 컨테이너 */
.hero__inner {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.hero__content { max-width: 660px; }

/* Hero 텍스트 */
.hero__eyebrow {
  font-size:.75rem; font-weight:700; letter-spacing:.22em;
  text-transform:uppercase; color:var(--green-lime);
  margin-bottom:1.5rem;
  display:inline-flex; align-items:center; gap:.5rem;
}
.hero__eyebrow::before {
  content:''; display:block; width:28px; height:2px;
  background:var(--green-lime); border-radius:2px;
}
.hero__title {
  font-size: clamp(2.2rem, 4vw, 3.8rem);
  font-weight:800; line-height:1.2;
  color:var(--white); margin-bottom:1.5rem; word-break:keep-all;
  text-shadow: 0 1px 2px rgba(0,0,0,.45), 0 4px 20px rgba(0,0,0,.3);
}
.hero__title em { display:block; font-style:normal; color:var(--green-lime); }
.hero__desc {
  font-size:1.05rem; line-height:2;
  color:rgba(255,255,255,.82); margin-bottom:2.5rem;
  text-shadow: 0 1px 2px rgba(0,0,0,.4), 0 3px 14px rgba(0,0,0,.25);
}
.hero__btns { display:flex; gap:1rem; flex-wrap:wrap; }

/* 글씨 그림자 — 얇은 이중 그림자 (윤곽 + 확산) */
.hero__eyebrow { text-shadow: 0 1px 2px rgba(0,0,0,.4); }

/* 좌우 화살표 */
.carousel__arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  z-index: 10;
  width: 52px; height: 52px; border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: 2px solid rgba(255,255,255,.3);
  color: var(--white); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all var(--ease);
  backdrop-filter: blur(4px);
}
.carousel__arrow:hover { background: rgba(255,255,255,.28); border-color: var(--white); }
.carousel__arrow--prev { left: 1.5rem; }
.carousel__arrow--next { right: 1.5rem; }
.carousel__arrow svg { width: 22px; height: 22px; }

/* 닷 네비게이션 */
.carousel__dots {
  position: absolute; bottom: 2.5rem; left: 50%;
  transform: translateX(-50%); z-index: 10;
  display: flex; gap: .6rem;
}
.cdot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,.35);
  cursor: pointer; transition: all .3s ease;
  border: none; padding: 0;
}
.cdot.active { background: var(--green-lime); transform: scale(1.35); }

/* 스크롤 큐 */
.hero__scroll {
  position: absolute; bottom: 2.25rem; left: 50%;
  transform: translateX(-50%); z-index: 10;
  display: flex; flex-direction: column; align-items: center; gap: .5rem;
  color: rgba(255,255,255,.45); font-size: .65rem;
  letter-spacing: .18em; text-transform: uppercase;
  transition: opacity .4s ease;
  pointer-events: none;
}
.hero__scroll-line {
  width: 1px; height: 36px;
  background: linear-gradient(to bottom, var(--green-lime), transparent);
  animation: scrollLine 2s ease infinite;
}
@keyframes scrollLine {
  0%   { transform:scaleY(0); transform-origin:top; }
  49%  { transform:scaleY(1); transform-origin:top; }
  50%  { transform:scaleY(1); transform-origin:bottom; }
  100% { transform:scaleY(0); transform-origin:bottom; }
}

/* ================================================================
   TRUST SECTION  —  철학 + 수치 + 사진 통합
   ================================================================ */
.trust-section {
  background: var(--green-xpale);
  overflow: hidden;
  border-top: 1px solid var(--green-pale);
  border-bottom: 1px solid var(--green-pale);
}
.trust-section__inner {
  display: grid;
  grid-template-columns: 1fr 600px;
  min-height: 520px;
}

/* 왼쪽: 텍스트 + 수치 */
.trust-content {
  padding: 5rem 4rem 5rem max(4rem, calc((100vw - var(--max-w)) / 2 + 2rem));
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.philosophy__main {
  font-family: var(--font-en);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 600;
  color: var(--green-dark);
  line-height: 1.4;
  margin-bottom: 1.25rem;
}
.philosophy__sub {
  font-size: 1rem;
  color: var(--text-mid);
  line-height: 2;
  margin-bottom: 2.5rem;
}
.trust-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.trust-stats--4 {
  grid-template-columns: repeat(4, 1fr);
}
.stat-item {
  background: var(--white);
  border-radius: var(--r-lg);
  padding: 1.5rem 1rem;
  text-align: center;
  box-shadow: var(--sh-sm);
  transition: transform var(--ease);
  border-top: 3px solid var(--green-lime);
}
.stat-item:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.stat-num {
  font-size: 2.4rem; font-weight: 900; color: var(--green-dark);
  line-height: 1; display: inline-block;
}
.stat-num--sm {
  font-size: 1.1rem; letter-spacing: -.02em;
}
.stat-unit { font-size: 1rem; font-weight: 700; color: var(--green-main); }
.stat-label { margin-top: .5rem; font-size: .8rem; color: var(--text-mid); font-weight: 500; }

/* 오른쪽: 사진 */
.trust-photo {
  position: relative;
  overflow: hidden;
}
.trust-photo img {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 75% top;
}
/* 양쪽 그라데이션 — 왼쪽: 배경색→투명, 오른쪽: 투명→배경색 */
.trust-photo__fade {
  position: absolute;
  left: -40%;
  right: 0;
  top: 0;
  bottom: 0;
  background: linear-gradient(
    to right,
    var(--green-xpale) 0%,
    var(--green-xpale) 28%,
    rgba(244,251,240,0) 42%,
    rgba(244,251,240,0) 65%,
    rgba(244,251,240,0.6) 82%,
    var(--green-xpale) 100%
  );
  pointer-events: none;
}

/* ================================================================
   SERVICES
   ================================================================ */
.services { padding:var(--sec-pad); background:var(--warm-white); }
.services__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.service-card {
  background:var(--white); border-radius:var(--r-lg);
  padding:2.25rem 1.875rem; box-shadow:var(--sh-sm);
  border:1.5px solid transparent; transition:all var(--ease);
  cursor:pointer; display:block;
}
.service-card:hover {
  border-color:var(--green-lime);
  transform:translateY(-6px); box-shadow:var(--sh-md);
}
.service-card__icon { font-size:2.25rem; margin-bottom:1.25rem; }
.service-card__title {
  font-size:1.075rem; font-weight:800;
  color:var(--text); margin-bottom:.625rem;
}
.service-card__desc {
  font-size:.85rem; color:var(--text-mid); line-height:1.75; margin-bottom:1rem;
}
.service-card__more {
  font-size:.78rem; font-weight:700; color:var(--green-dark);
  opacity:0; transition:opacity var(--ease);
}
.service-card:hover .service-card__more { opacity:1; }

/* ================================================================
   FEATURES (특별함)
   ================================================================ */
.features {
  padding:var(--sec-pad);
  background: linear-gradient(145deg, var(--forest) 0%, var(--green-dark) 55%, #1E7A3E 100%);
  position:relative; overflow:hidden;
}
.features::before {
  content:''; position:absolute;
  width:500px; height:500px; border-radius:50%;
  background:rgba(141,198,63,.07);
  top:-180px; right:-120px; pointer-events:none;
}
.features::after {
  content:''; position:absolute;
  width:300px; height:300px; border-radius:50%;
  background:rgba(141,198,63,.05);
  bottom:-80px; left:-60px; pointer-events:none;
}
.features .section-eyebrow { color:var(--green-lime); }
.features .section-title   { color:var(--white); }
.features .section-header  { position:relative; z-index:1; }

.features__grid {
  display:grid; grid-template-columns:repeat(5,1fr);
  gap:1.25rem; position:relative; z-index:1;
}
.feature-item {
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-lg); padding:2rem 1.5rem;
  transition:all var(--ease);
}
.feature-item:hover {
  background:rgba(255,255,255,.14);
  transform:translateY(-4px);
}
.feature-item__num {
  font-family:var(--font-en); font-size:2.5rem; font-weight:700;
  color:rgba(255,255,255,.13); line-height:1; margin-bottom:1rem;
}
.feature-item__title { font-size:.975rem; font-weight:700; color:var(--white); margin-bottom:.625rem; }
.feature-item__desc  { font-size:.8rem; color:rgba(255,255,255,.60); line-height:1.75; }

.features__cta { text-align:center; margin-top:3rem; position:relative; z-index:1; }

/* ================================================================
   DOCTOR
   ================================================================ */
.doctor { padding:var(--sec-pad); background:var(--green-xpale); }
.doctor__card {
  max-width: 860px;
  margin: 0 auto;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: 0 16px 56px rgba(27,58,45,.18);
  background: var(--white);
}
.doctor__full-img {
  width: 100%;
  height: auto;
  display: block;
}
.doctor__card-cta {
  padding: 2rem 2.5rem;
  text-align: center;
  background: var(--white);
  border-top: 1px solid var(--green-pale);
}

/* ================================================================
   HOURS
   ================================================================ */
/* ===== VIDEO ===== */
.video-section { padding: var(--sec-pad); background: var(--white); }
.video-wrap {
  position: relative;
  max-width: 860px;
  margin: 2.5rem auto 0;
  aspect-ratio: 16/9;
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(27,58,45,0.12);
}
.video-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

.hours { padding:var(--sec-pad); background:var(--warm-white); }
.hours__inner {
  display:grid; grid-template-columns:1.1fr 1fr;
  gap:5rem; align-items:start;
}
.hours__table { width:100%; border-collapse:collapse; margin-top:1.5rem; }
.hours__table th,
.hours__table td {
  padding:1rem 1.2rem; text-align:left;
  border-bottom:1px solid var(--beige); font-size:.875rem;
}
.hours__table th { color:var(--text-mid); font-weight:600; width:45%; }
.hours__table td { color:var(--text); font-weight:600; }
.hours__table .lunch th,
.hours__table .lunch td { color:var(--text-light); font-weight:400; font-style:italic; }
.hours__table .closed th,
.hours__table .closed td { color:#dc2626; }

.contact-card {
  background: linear-gradient(135deg, var(--forest), var(--green-dark));
  color:var(--white);
  padding:2.5rem; border-radius:var(--r-lg);
  display:flex; flex-direction:column; gap:1rem;
}
.contact-card__label {
  font-size:.72rem; font-weight:700; letter-spacing:.18em;
  text-transform:uppercase; color:var(--green-lime);
}
.contact-card__phone {
  font-size:2rem; font-weight:900; color:var(--white);
  display:block; transition:color var(--ease);
}
.contact-card__phone:hover { color:var(--green-lime); }
.contact-card__note { font-size:.83rem; color:rgba(255,255,255,.65); line-height:1.65; }

/* ================================================================
   LOCATION
   ================================================================ */
.location { padding:var(--sec-pad); background:var(--cream); }
.location__inner {
  display:grid; grid-template-columns:1.3fr 1fr;
  gap:3rem; align-items:start;
}
.location__map-box {
  border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--sh-md);
}
.location__map-box iframe { display:block; }
/* 카카오맵 퍼가기(roughmap) — 컨테이너 폭에 맞춤 */
.location__map-box .root_daum_roughmap { width:100% !important; }
.location__map-box .root_daum_roughmap .wrap_map { height:420px !important; }
@media (max-width:960px) {
  .location__map-box .root_daum_roughmap .wrap_map { height:320px !important; }
}
.location__details { display:flex; flex-direction:column; gap:1.75rem; }
.location__row strong {
  display:block; font-size:.72rem; font-weight:800;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--green-main); margin-bottom:.4rem;
}
.location__row p  { font-size:.875rem; color:var(--text-mid); line-height:1.75; }
.location__row a  { color:var(--green-dark); font-weight:700; }
.location__row a:hover { text-decoration:underline; }

/* ================================================================
   FOOTER
   ================================================================ */
.footer { background:var(--dark); color:rgba(255,255,255,.65); padding:4rem 0 0; }
.footer__inner {
  display:grid; grid-template-columns:1.4fr 2fr 1fr;
  gap:3rem; padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer__logo   { font-size:1.15rem; font-weight:800; color:var(--white); margin-bottom:.4rem; }
.footer__tagline { font-size:.8rem; color:rgba(255,255,255,.4); margin-bottom:1.5rem; }
.footer__social { display:flex; gap:.6rem; flex-wrap:wrap; }
.footer__social a {
  font-size:.75rem; color:rgba(255,255,255,.5);
  padding:.35rem .75rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r-xl); transition:all var(--ease);
}
.footer__social a:hover { color:var(--white); border-color:rgba(255,255,255,.35); }

.footer__info p   { font-size:.78rem; line-height:2.1; color:rgba(255,255,255,.45); }
.footer__info strong { color:rgba(255,255,255,.75); }

.footer__nav ul { display:flex; flex-direction:column; gap:.4rem; }
.footer__nav a  { font-size:.82rem; color:rgba(255,255,255,.5); transition:color var(--ease); }
.footer__nav a:hover { color:var(--green-lime); }

.footer__bottom { padding:1.5rem 0; text-align:center; }
.footer__bottom p { font-size:.72rem; color:rgba(255,255,255,.25); }

/* ================================================================
   FLOATING BUTTONS
   ================================================================ */
.floating {
  position:fixed; right:1.5rem; bottom:6rem;
  display:flex; flex-direction:column; gap:.5rem; z-index:900;
}
.float-btn {
  width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--white); box-shadow:var(--sh-md);
  transition:all var(--ease); position:relative;
}
.float-btn svg { width:21px; height:21px; }
.float-btn__tip {
  position:absolute; right:calc(100% + 10px);
  background:rgba(0,0,0,.72); color:var(--white);
  padding:.3rem .7rem; border-radius:var(--r-sm);
  font-size:.72rem; white-space:nowrap;
  opacity:0; pointer-events:none; transition:opacity var(--ease);
}
.float-btn:hover .float-btn__tip { opacity:1; }
.float-btn:hover { transform:scale(1.1); box-shadow:var(--sh-lg); }

.float-btn--phone { background:var(--green-dark); }
.float-btn--blog  { background:#03C75A; }
.float-btn--insta { background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }
.float-btn--fb    { background:#1877F2; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width:1100px) {
  .features__grid { grid-template-columns:repeat(3,1fr); }
}

@media (max-width:900px) {
  :root {
    --sec-pad: 70px 0;
    --h-top: 0px;
  }
  .top-bar { display:none; }
  .nav, .btn-reserve { display:none; }
  .nav-toggle { display:flex; }
  .mobile-nav { display:block; }

  .hero__title { font-size:clamp(1.9rem,5vw,3rem); }
  .hero__content { max-width:100%; }

  .trust-section__inner { grid-template-columns: 1fr; }
  .trust-photo { height: 300px; position: relative; }
  .trust-content { padding: 3rem 2rem; }
  .trust-stats { grid-template-columns: repeat(3,1fr); }
  .services__grid { grid-template-columns:repeat(2,1fr); }
  .features__grid { grid-template-columns:repeat(2,1fr); }
  .hours__inner   { grid-template-columns:1fr; gap:2.5rem; }
  .location__inner { grid-template-columns:1fr; }
  .footer__inner  { grid-template-columns:1fr 1fr; gap:2rem; }

  .floating {
    top:auto; bottom:1.5rem; right:1rem;
    flex-direction:row; transform:none;
  }
  .float-btn { width:46px; height:46px; }
  .float-btn__tip { display:none; }
}

@media (max-width:768px) {
  .carousel__arrow { display: none; }
}

@media (max-width:580px) {
  :root { --h-head:60px; }
  .services__grid { grid-template-columns:repeat(2,1fr); gap:.75rem; }
  .service-card { padding:1.25rem 1rem; }
  .service-card__icon { font-size:1.75rem; margin-bottom:.75rem; }
  .service-card__desc { font-size:.85rem; }
  .features__grid { grid-template-columns:1fr 1fr; }
  .footer__inner  { grid-template-columns:1fr; }
  .hero__title    { font-size:1.8rem; }
  .trust-stats    { gap:.75rem; }
  .trust-stats--4 { grid-template-columns:repeat(2,1fr); }
  .trust-photo    { display:none; }
  .philosophy__main { font-size:1.6rem; }
  .doctor__card { border-radius: var(--r-lg); }
}
