/* ==========================================================================
   MEMO CARE (메모케어) — 공용 디자인 시스템 / style.css
   원칙: 신뢰 / 따뜻함 / 안심 / 가족 / 전문성 / 쉬운 사용
   화이트 베이스 + 딥그린(신뢰) + 테라코타(포인트), 넓은 여백, 큰 글씨, 큰 버튼
   ========================================================================== */

:root{
  /* Color */
  --primary: #1F6F5C;         /* 딥 그린 - 신뢰/안심 */
  --primary-dark: #164F41;
  --primary-light: #E9F3EF;   /* 연한 그린 배경 */
  --accent: #D97B4F;          /* 테라코타 - 따뜻함, 강조 CTA */
  --accent-dark: #B8623A;
  --bg: #FFFFFF;
  --bg-soft: #F8F6F2;         /* 따뜻한 오프화이트 */
  --bg-soft-2: #F1EFE9;
  --text: #29302E;
  --text-sub: #5C6664;
  --text-faint: #8A9390;
  --border: #E6E2D8;
  --border-strong: #D7D2C4;
  --danger: #C0473A;
  --star: #E8A93D;
  --radius-sm: 10px;
  --radius: 18px;
  --radius-lg: 24px;
  --shadow-sm: 0 2px 8px rgba(31, 42, 39, 0.06);
  --shadow: 0 8px 24px rgba(31, 42, 39, 0.08);
  --shadow-lg: 0 16px 40px rgba(31, 42, 39, 0.12);
  --header-h: 68px;
  --bottomnav-h: 72px;
  --container-w: 1120px;
}

*{ box-sizing: border-box; }
html, body{ margin:0; padding:0; }

body{
  font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo",
    'Malgun Gothic', sans-serif;
  color: var(--text);
  background: var(--bg-soft);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  padding-bottom: calc(var(--bottomnav-h) + 8px);
}

img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
button{ font-family: inherit; cursor: pointer; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }

.container{
  max-width: var(--container-w);
  margin: 0 auto;
  padding: 0 20px;
}

/* ---------- 유틸 ---------- */
.section{ padding: 40px 0; }
.section-head{ margin-bottom: 24px; }
.section-title{ font-size: 24px; font-weight: 800; letter-spacing:-0.3px; }
.section-desc{ margin-top:8px; color: var(--text-sub); font-size: 16px; }
.text-center{ text-align:center; }
.mt-8{margin-top:8px;} .mt-12{margin-top:12px;} .mt-16{margin-top:16px;}
.mt-24{margin-top:24px;} .mt-32{margin-top:32px;}
.hint-note{ color: var(--text-faint); font-size: 14px; }

.badge{
  display:inline-flex; align-items:center; gap:6px;
  background: var(--primary-light); color: var(--primary-dark);
  font-size: 13px; font-weight:700; padding: 5px 12px; border-radius: 999px;
}
.badge.accent{ background:#FBEADF; color: var(--accent-dark); }
.badge.outline{ background:#fff; border:1px solid var(--border-strong); color: var(--text-sub); }

.tag{
  display:inline-block; font-size:13px; font-weight:600; color: var(--primary-dark);
  background: var(--primary-light); border-radius: 8px; padding: 4px 10px;
}

/* ---------- 버튼 ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border-radius: 14px; font-weight:700; font-size:16px;
  padding: 14px 22px; border: none; transition: transform .05s ease, opacity .15s ease;
  min-height: 50px;
}
.btn:active{ transform: scale(0.98); }
.btn-block{ width:100%; }
.btn-primary{ background: var(--primary); color:#fff; }
.btn-primary:hover{ background: var(--primary-dark); }
.btn-accent{ background: var(--accent); color:#fff; }
.btn-accent:hover{ background: var(--accent-dark); }
.btn-outline{ background:#fff; color: var(--primary); border: 2px solid var(--primary); }
.btn-outline:hover{ background: var(--primary-light); }
.btn-ghost{ background: var(--bg-soft-2); color: var(--text); }
.btn-sm{ padding: 10px 16px; font-size: 14px; min-height:auto; border-radius: 10px; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; }

/* ---------- 헤더 ---------- */
.site-header{
  position: sticky; top:0; z-index: 100;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--border);
}
.site-header .header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height: var(--header-h);
}
.brand{ display:flex; align-items:baseline; gap:8px; font-weight:800; }
.brand .brand-en{ color: var(--primary); font-size: 21px; letter-spacing: 0.5px; }
.brand .brand-kr{ color: var(--text-sub); font-size: 14px; font-weight:600; }
.header-nav{ display:none; gap: 6px; }
.header-nav a{
  padding: 10px 16px; border-radius: 10px; font-weight:700; color: var(--text-sub); font-size:15px;
}
.header-nav a.active, .header-nav a:hover{ background: var(--primary-light); color: var(--primary-dark); }
.header-actions{ display:flex; align-items:center; gap:10px; }
.icon-btn{
  width:44px; height:44px; border-radius:50%; background:var(--bg-soft-2);
  display:flex; align-items:center; justify-content:center; color: var(--text-sub); font-size:18px;
}

@media (min-width: 900px){
  .header-nav{ display:flex; }
}

/* ---------- 브레드크럼/뒤로가기 바 ---------- */
.subpage-bar{
  display:flex; align-items:center; gap:12px;
  padding: 14px 0;
}
.back-link{
  display:flex; align-items:center; gap:6px; font-weight:700; color: var(--text-sub);
  font-size: 15px;
}
.back-link i{ font-size:16px; }
.page-heading{ font-size: 21px; font-weight:800; }

/* ---------- 하단 모바일 내비게이션 ---------- */
.bottom-nav{
  position: fixed; left:0; right:0; bottom:0; z-index: 200;
  height: var(--bottomnav-h);
  background:#fff; border-top:1px solid var(--border);
  display:flex;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.05);
}
.bottom-nav a{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; color: var(--text-faint); font-size:12px; font-weight:700;
}
.bottom-nav a i{ font-size: 20px; }
.bottom-nav a.active{ color: var(--primary); }

@media (min-width: 900px){
  .bottom-nav{ display:none; }
  body{ padding-bottom: 0; }
}

/* ---------- 히어로 ---------- */
.hero{
  background: linear-gradient(180deg, var(--primary-light) 0%, var(--bg-soft) 100%);
  padding: 48px 0 40px;
  border-bottom: 1px solid var(--border);
}
.hero h1{
  font-size: 32px; font-weight:800; line-height:1.35; letter-spacing:-0.5px; color: var(--text);
}
.hero h1 span{ color: var(--primary); }
.hero p{ margin-top:14px; font-size:18px; color: var(--text-sub); }
.hero-badges{ display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }

@media (min-width: 700px){
  .hero h1{ font-size: 40px; }
}

/* ---------- 서비스 카드 (홈) ---------- */
.service-grid{
  display:grid; grid-template-columns: 1fr; gap:18px;
  margin-top: 28px;
}
@media (min-width: 700px){
  .service-grid{ grid-template-columns: 1fr 1fr; }
}

.service-card{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 26px; box-shadow: var(--shadow-sm);
  display:flex; flex-direction:column; gap:14px;
  transition: box-shadow .15s ease, transform .15s ease;
}
.service-card:hover{ box-shadow: var(--shadow); transform: translateY(-2px); }
.service-card .icon-wrap{
  width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  font-size: 26px; color:#fff;
}
.service-card .icon-wrap.c1{ background: #1F6F5C; }
.service-card .icon-wrap.c2{ background: #3E8E7E; }
.service-card .icon-wrap.c3{ background: #D97B4F; }
.service-card .icon-wrap.c4{ background: #6B6B75; }
.service-card h3{ font-size: 21px; font-weight:800; }
.service-card p{ color: var(--text-sub); font-size:15.5px; flex:1; }

/* ---------- 흐름/연계 안내 ---------- */
.flow-strip{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  background:#fff; border:1px solid var(--border); border-radius: var(--radius);
  padding: 16px 18px; font-size:14.5px; color:var(--text-sub);
}
.flow-strip .step{ display:flex; align-items:center; gap:6px; font-weight:700; color: var(--text); }
.flow-strip i.fa-arrow-right-long{ color: var(--primary); }

/* ---------- 필터 바 ---------- */
.filter-bar{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius);
  padding: 18px; box-shadow: var(--shadow-sm);
}
.filter-grid{
  display:grid; grid-template-columns: 1fr; gap: 12px;
}
@media (min-width: 640px){
  .filter-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 980px){
  .filter-grid{ grid-template-columns: repeat(4, 1fr); }
}
.filter-field label{
  display:block; font-size: 13.5px; font-weight:700; color: var(--text-sub); margin-bottom:6px;
}
.filter-field select, .filter-field input{
  width:100%; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border-strong);
  font-size: 15px; background: var(--bg-soft); color: var(--text);
}
.filter-actions{ display:flex; gap:10px; margin-top:16px; }
.search-input-wrap{ position:relative; }
.search-input-wrap i{ position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--text-faint); }
.search-input-wrap input{ padding-left: 40px; }

/* ---------- 카드 그리드 (목록) ---------- */
.card-grid{ display:grid; grid-template-columns: 1fr; gap:18px; margin-top:20px; }
@media (min-width: 700px){ .card-grid{ grid-template-columns: 1fr 1fr; } }
@media (min-width: 1040px){ .card-grid{ grid-template-columns: 1fr 1fr 1fr; } }

/* 시설 카드 */
.facility-card{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  overflow:hidden; box-shadow: var(--shadow-sm); display:flex; flex-direction:column;
}
.facility-thumb{
  height: 160px; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size: 40px; position:relative;
}
.facility-thumb .thumb-type{
  position:absolute; top:12px; left:12px; background:rgba(0,0,0,0.35); color:#fff;
  font-size:12.5px; font-weight:700; padding:5px 10px; border-radius:999px;
}
.facility-body{ padding: 18px; display:flex; flex-direction:column; gap:10px; flex:1; }
.facility-body h3{ font-size:19px; font-weight:800; }
.facility-meta{ display:flex; align-items:center; gap:6px; color: var(--text-sub); font-size:14.5px; }
.facility-tags{ display:flex; gap:6px; flex-wrap:wrap; }
.facility-cost{ font-weight:800; color: var(--primary-dark); font-size: 16px; }
.facility-cost span{ font-weight:500; color: var(--text-sub); font-size:13.5px; }

/* 사람(전문가) 카드 공용 */
.person-card{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 20px; box-shadow: var(--shadow-sm); display:flex; flex-direction:column; gap:12px;
}
.person-top{ display:flex; gap:14px; align-items:center; }
.avatar{
  width:64px; height:64px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:26px;
  background: linear-gradient(135deg, var(--primary), #3E8E7E);
}
.avatar.a2{ background: linear-gradient(135deg, #D97B4F, #E8A93D); }
.avatar.a3{ background: linear-gradient(135deg, #6B6B75, #3E4750); }
.person-name{ font-size:18px; font-weight:800; }
.person-sub{ font-size:14px; color: var(--text-sub); margin-top:2px; }
.rating{ display:flex; align-items:center; gap:5px; color: var(--star); font-weight:700; font-size:14.5px; }
.rating .fa-star{ font-size:13px; }
.person-info-list{ display:flex; flex-direction:column; gap:6px; font-size:14.5px; color: var(--text-sub); }
.person-info-list b{ color: var(--text); font-weight:700; }
.person-bio{
  font-size:14.5px; color: var(--text-sub); background: var(--bg-soft); border-radius:10px; padding:10px 12px;
}
.card-actions{ display:flex; gap:8px; margin-top:4px; }

/* ---------- 상세 페이지 ---------- */
.detail-hero{
  height: 220px; border-radius: var(--radius-lg); display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:56px; margin-top: 6px;
}
@media (min-width:700px){ .detail-hero{ height: 280px; } }

.detail-layout{
  display:grid; grid-template-columns: 1fr; gap: 24px; margin-top:24px;
}
@media (min-width: 900px){
  .detail-layout{ grid-template-columns: 2fr 1fr; align-items:start; }
}

.detail-card{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 22px; box-shadow: var(--shadow-sm);
}
.detail-card + .detail-card{ margin-top:18px; }
.detail-card h2{ font-size:19px; font-weight:800; margin-bottom:14px; }

.info-table{ width:100%; border-collapse: collapse; }
.info-table tr{ border-bottom: 1px solid var(--border); }
.info-table tr:last-child{ border-bottom:none; }
.info-table th, .info-table td{ text-align:left; padding: 12px 6px; font-size:15px; vertical-align:top; }
.info-table th{ width: 130px; color: var(--text-sub); font-weight:700; white-space:nowrap; }
.info-table td{ color: var(--text); }

.sticky-panel{ position: sticky; top: calc(var(--header-h) + 16px); }
.price-box{
  display:flex; align-items:baseline; justify-content:space-between; margin-bottom:14px;
}
.price-box .label{ color: var(--text-sub); font-size:14.5px; }
.price-box .value{ font-size:22px; font-weight:800; color: var(--primary-dark); }
.action-stack{ display:flex; flex-direction:column; gap:10px; }

.review-item{ border-top:1px solid var(--border); padding-top:14px; margin-top:14px; }
.review-item:first-child{ border-top:none; padding-top:0; margin-top:0; }
.review-item .review-top{ display:flex; justify-content:space-between; align-items:center; }
.review-item .review-name{ font-weight:700; font-size:14.5px; }
.review-item p{ margin-top:6px; color: var(--text-sub); font-size:14.5px; }

.related-links{ display:flex; flex-direction:column; gap:10px; }
.related-link{
  display:flex; align-items:center; gap:12px; border:1px solid var(--border); border-radius: 14px;
  padding: 14px; background: var(--bg-soft);
}
.related-link i{ font-size:18px; color: var(--primary); }
.related-link .t{ font-weight:700; font-size:15px; }
.related-link .s{ font-size:13px; color: var(--text-sub); }
.related-link .chev{ margin-left:auto; color: var(--text-faint); }

/* ---------- 돌봄 허브 / 마이페이지 ---------- */
.hub-grid{ display:grid; grid-template-columns:1fr; gap:16px; margin-top:24px; }
@media (min-width:700px){ .hub-grid{ grid-template-columns: 1fr 1fr; } }

.menu-list{ display:flex; flex-direction:column; gap:10px; margin-top:20px; }
.menu-item{
  display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--border);
  border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow-sm);
}
.menu-item i.leading{ font-size:19px; color: var(--primary); width:26px; text-align:center; }
.menu-item .label{ font-weight:700; font-size:15.5px; flex:1; }
.menu-item .chev{ color: var(--text-faint); }

.profile-summary{
  display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--border);
  border-radius: var(--radius-lg); padding: 20px; box-shadow: var(--shadow-sm);
}
.profile-summary .avatar{ width:64px; height:64px; font-size:26px; }
.profile-summary .name{ font-size:19px; font-weight:800; }
.profile-summary .desc{ font-size:14px; color: var(--text-sub); margin-top:2px; }

/* ---------- 푸터 ---------- */
.site-footer{
  background: var(--primary-dark); color: rgba(255,255,255,0.85);
  padding: 32px 0; margin-top: 40px; font-size:14px;
}
.site-footer .foot-brand{ color:#fff; font-weight:800; font-size:17px; }
.site-footer a{ color: rgba(255,255,255,0.85); }
.site-footer .foot-links{ display:flex; gap:16px; margin-top:12px; flex-wrap:wrap; }
.site-footer .foot-note{ margin-top:16px; color: rgba(255,255,255,0.55); font-size:12.5px; }

/* ---------- 빈 결과 안내 ---------- */
.empty-state{
  text-align:center; padding: 40px 20px; color: var(--text-sub);
}
.empty-state i{ font-size:32px; color: var(--text-faint); margin-bottom:10px; }

/* ---------- 공통 페이지 상단 여백 ---------- */
.page-main{ padding-top: 12px; }

/* ==========================================================================
   [2차 추가] 요양병원·요양원 정보 구조 강화용 스타일
   (기존 규칙은 수정하지 않고 새 규칙만 추가합니다)
   ========================================================================== */

/* 시설 유형 배지 (카드 상단) */
.facility-type-badge{
  position:absolute; top:12px; right:12px;
  font-size:13px; font-weight:800; padding:6px 12px; border-radius:999px;
  background:#fff; color: var(--primary-dark);
  box-shadow: var(--shadow-sm);
}
.facility-type-badge.type-hospital{ color: var(--primary-dark); }
.facility-type-badge.type-home{ color: var(--accent-dark); }

/* 비용 안내(참고용) 문구 */
.cost-disclaimer{
  font-size: 12.5px; color: var(--text-faint); line-height:1.5; margin-top:8px;
}
.cost-disclaimer.box{
  background: var(--bg-soft); border:1px solid var(--border); border-radius: 12px;
  padding: 12px 14px; margin-top: 14px;
}

/* 정보 없음 표기 */
.info-empty{ color: var(--text-faint); font-style: normal; }

/* 특화 서비스 배지 묶음 */
.specialty-badges{ display:flex; gap:6px; flex-wrap:wrap; }
.specialty-badge{
  font-size:12.5px; font-weight:700; padding:4px 10px; border-radius:999px;
  background:#FBEADF; color: var(--accent-dark);
}

/* 비교 체크 UI (카드 하단) */
.compare-check-row{
  display:flex; align-items:center; gap:8px; margin-top:6px;
  font-size:14.5px; color: var(--text-sub); font-weight:700;
}
.compare-check-row input[type="checkbox"]{
  width:20px; height:20px; accent-color: var(--primary);
}

/* 선택 시설 비교 플로팅 바 */
.compare-float-bar{
  position: fixed; left:0; right:0; bottom: calc(var(--bottomnav-h) + 12px);
  z-index: 150; display:none;
}
@media (min-width:900px){ .compare-float-bar{ bottom: 20px; } }
.compare-float-bar.show{ display:flex; justify-content:center; }
.compare-float-inner{
  background: var(--primary-dark); color:#fff; border-radius: 999px;
  padding: 12px 12px 12px 20px; display:flex; align-items:center; gap:14px;
  box-shadow: var(--shadow-lg);
}
.compare-float-inner span{ font-weight:700; font-size:14.5px; }
.compare-float-inner .btn{ padding:10px 18px; font-size:14.5px; min-height:auto; }

/* 비용 상세 표 */
.cost-detail-list{ display:flex; flex-direction:column; gap:10px; }
.cost-detail-item{
  display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid var(--border);
  padding-bottom:10px; font-size:14.5px;
}
.cost-detail-item:last-child{ border-bottom:none; padding-bottom:0; }
.cost-detail-item .k{ color: var(--text-sub); font-weight:700; min-width:110px; flex-shrink:0; }
.cost-detail-item .v{ color: var(--text); text-align:right; }

/* 이용대상/의료돌봄 섹션 아이콘 항목 */
.info-mini-grid{ display:grid; grid-template-columns: 1fr; gap:10px; }
@media (min-width:640px){ .info-mini-grid{ grid-template-columns: 1fr 1fr; } }
.info-mini-item{
  background: var(--bg-soft); border-radius:12px; padding:12px 14px;
}
.info-mini-item .mini-label{ font-size:13px; color: var(--text-sub); font-weight:700; margin-bottom:4px; }
.info-mini-item .mini-value{ font-size:14.5px; color: var(--text); }

/* 상담 연결 선택 UI (돌봄 전문가 찾기 - 요양보호사/동행매니저 선택) */
.connect-choice-grid{ display:grid; grid-template-columns: 1fr; gap:10px; margin-top:14px; }
@media (min-width:560px){ .connect-choice-grid{ grid-template-columns: 1fr 1fr; } }
.connect-choice-card{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px;
  border:1px solid var(--border); border-radius: var(--radius); padding: 20px 14px; background:#fff;
}
.connect-choice-card i{ font-size: 26px; color: var(--primary); }

/* 간단 모달 (돌봄 전문가 찾기 선택창) */
.simple-modal-overlay{
  position: fixed; inset:0; background: rgba(20,26,24,0.45); z-index: 300;
  display:none; align-items:center; justify-content:center; padding:20px;
}
.simple-modal-overlay.show{ display:flex; }
.simple-modal{
  background:#fff; border-radius: var(--radius-lg); padding: 24px; max-width: 460px; width:100%;
  box-shadow: var(--shadow-lg);
}
.simple-modal h3{ font-size:19px; font-weight:800; }
.simple-modal .modal-close{
  margin-top:16px; text-align:center;
}

/* 비교 페이지 표 */
.compare-table-wrap{ overflow-x:auto; }
.compare-table{ width:100%; border-collapse: collapse; min-width: 560px; }
.compare-table th, .compare-table td{
  border:1px solid var(--border); padding: 12px 14px; font-size:14.5px; text-align:left; vertical-align:top;
}
.compare-table th.row-label{
  background: var(--bg-soft); color: var(--text-sub); font-weight:700; white-space:nowrap; width:130px;
}
.compare-table th.col-head{ background: var(--primary-light); color: var(--primary-dark); font-weight:800; }

/* ==========================================================================
   [7차-1 추가] 병원동행매니저 전용 스타일
   (기존 규칙은 수정하지 않고 새 규칙만 추가합니다)
   ========================================================================== */

/* 지금 동행 가능 등 활동상태 배지 */
.availability-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:800; padding:5px 12px; border-radius:999px;
  background: var(--bg-soft); color: var(--text-sub); border:1px solid var(--border);
}
.availability-badge.st-availableNow{ background:#E9F7EE; color:#1D8348; border-color:#CDEFDA; }
.availability-badge.st-bookingOnly{ background:#FEF6E4; color:#9C7A16; border-color:#F5E6B8; }
.availability-badge.st-unavailable{ background: var(--bg-soft-2); color: var(--text-faint); border-color: var(--border); }

/* 동행유형 배지 묶음 (검색 결과/상세 공용) */
.escort-type-badges{ display:flex; gap:6px; flex-wrap:wrap; }
.escort-type-badge{
  font-size:12.5px; font-weight:700; padding:4px 10px; border-radius:999px;
  background: var(--primary-light); color: var(--primary-dark);
}

/* 주문 상태 배지 (내 주문 / 매니저 요청목록 공용) */
.order-status-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:800; padding:5px 12px; border-radius:999px;
  background: var(--bg-soft-2); color: var(--text-sub);
}
.order-status-badge.st-requested{ background:#FEF6E4; color:#9C7A16; }
.order-status-badge.st-accepted{ background:#E7F0FE; color:#2A5DAE; }
.order-status-badge.st-confirmed,
.order-status-badge.st-onTheWay,
.order-status-badge.st-inService{ background: var(--primary-light); color: var(--primary-dark); }
.order-status-badge.st-completed{ background:#E9F7EE; color:#1D8348; }
.order-status-badge.st-rejected,
.order-status-badge.st-cancelled{ background:#FBEBE8; color: var(--danger); }

/* 가격 유형(고정가/시간제) 배지 */
.pricing-type-badge{
  display:inline-flex; font-size:12.5px; font-weight:800; padding:4px 10px; border-radius:8px;
  background:#FBEADF; color: var(--accent-dark);
}

/* 서비스 카드 (동행매니저 상세 - 제공 서비스 목록) */
.escort-service-card{
  display:flex; flex-direction:column; gap:8px; border:1px solid var(--border);
  border-radius: var(--radius); padding: 16px 18px; background:#fff;
}
.escort-service-card + .escort-service-card{ margin-top:10px; }
.escort-service-card .svc-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.escort-service-card .svc-name{ font-weight:800; font-size:16px; }
.escort-service-card .svc-price{ font-weight:800; color: var(--primary-dark); font-size:16px; white-space:nowrap; }
.escort-service-card .svc-desc{ font-size:14px; color: var(--text-sub); }
.escort-service-card.is-private{ opacity:.6; }

/* 포함/불포함/추가비용 리스트 (서비스 상세) */
.escort-item-list{ display:flex; flex-direction:column; gap:8px; margin-top:6px; }
.escort-item-list li{ display:flex; align-items:flex-start; gap:8px; font-size:14.5px; color: var(--text); }
.escort-item-list li i{ margin-top:3px; font-size:13px; }
.escort-item-list.included li i{ color: var(--primary); }
.escort-item-list.excluded li i{ color: var(--text-faint); }
.escort-item-list.extra li i{ color: var(--accent); }

/* 요청목록 상단 탭 (매니저 콘솔) */
.escort-tab-bar{
  display:flex; gap:6px; background: var(--bg-soft); border-radius: 14px; padding: 5px;
  overflow-x:auto;
}
.escort-tab-btn{
  flex:1; white-space:nowrap; text-align:center; padding: 10px 12px; border-radius: 10px;
  font-weight:700; font-size:14px; color: var(--text-sub); background:transparent; border:none;
}
.escort-tab-btn.active{ background:#fff; color: var(--primary-dark); box-shadow: var(--shadow-sm); }
.escort-tab-btn .count{
  display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px;
  border-radius:999px; background: var(--accent); color:#fff; font-size:11px; font-weight:800;
  margin-left:4px; padding:0 4px;
}

/* 요청 카드 (매니저 콘솔 - 요청목록) */
.escort-order-card{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 18px; box-shadow: var(--shadow-sm); display:flex; flex-direction:column; gap:10px;
}
.escort-order-card + .escort-order-card{ margin-top:14px; }
.escort-order-card .order-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.escort-order-card .order-id{ font-size:12.5px; color: var(--text-faint); }
.escort-order-card .order-info-list{ display:flex; flex-direction:column; gap:5px; font-size:14.5px; color: var(--text-sub); }
.escort-order-card .order-info-list b{ color: var(--text); font-weight:700; }
.escort-order-card .order-actions{ display:flex; gap:8px; flex-wrap:wrap; margin-top:4px; }

/* 별점 입력 위젯 (후기 작성) */
.star-input-row{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--border); }
.star-input-row:last-child{ border-bottom:none; }
.star-input-row .criterion-label{ font-weight:700; font-size:15px; color: var(--text); }
.star-input{ display:flex; gap:4px; direction: ltr; }
.star-input i{ font-size:24px; color: var(--border-strong); cursor:pointer; transition: color .1s ease; }
.star-input i.active{ color: var(--star); }
.star-input.readonly i{ cursor:default; }

/* 신청서/폼 공용 필드 (신청서 페이지) */
.form-field{ margin-bottom:16px; }
.form-field label{ display:block; font-size:14.5px; font-weight:700; color: var(--text-sub); margin-bottom:6px; }
.form-field label .req{ color: var(--danger); margin-left:2px; }
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding: 13px 14px; border-radius: 12px; border: 1px solid var(--border-strong);
  font-size: 15px; background:#fff; color: var(--text); font-family: inherit;
}
.form-field textarea{ resize: vertical; min-height: 90px; }
.form-row-2{ display:grid; grid-template-columns: 1fr; gap:0 14px; }
@media (min-width:640px){ .form-row-2{ grid-template-columns: 1fr 1fr; } }
.form-row-2 .form-field{ min-width:0; }

/* 의료정보 미수집 안내 배너 */
.privacy-note-box{
  display:flex; align-items:flex-start; gap:10px; background: var(--primary-light);
  border-radius: 12px; padding: 14px 16px; font-size:13.5px; color: var(--primary-dark);
  margin: 4px 0 20px;
}
.privacy-note-box i{ font-size:16px; margin-top:2px; }

/* 신청 결과 요약 카드 */
.result-summary-card{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 24px; box-shadow: var(--shadow-sm); text-align:center;
}
.result-summary-card .result-icon{
  width:64px; height:64px; border-radius:50%; background: var(--primary-light); color: var(--primary);
  display:flex; align-items:center; justify-content:center; font-size:28px; margin: 0 auto 14px;
}
.result-summary-card .result-title{ font-size:20px; font-weight:800; }
.result-summary-card .result-order-no{ margin-top:6px; font-size:13.5px; color: var(--text-faint); }

/* 데모 전환 안내(고지) */
.demo-flag{
  display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700;
  color: var(--text-faint); background: var(--bg-soft-2); border-radius:8px; padding:4px 9px;
}

/* ==========================================================================
   [7차-2 추가] 장례지도사 전용 스타일
   (기존 규칙은 수정하지 않고 새 규칙만 추가합니다)
   ========================================================================== */

/* 테스트/더미 데이터 안내 배지 (실제 장례지도사로 오해되지 않도록 표시) */
.test-data-badge{
  display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700;
  color: var(--accent-dark); background:#FBEADF; border-radius:8px; padding:4px 9px;
}

/* 장례 주문 상태 배지 — 병원동행과 다른 상태값(st-contracted / st-inProgress) 색상 보강 */
.order-status-badge.st-contracted{ background: var(--primary-light); color: var(--primary-dark); }
.order-status-badge.st-inProgress{ background:#E7F0FE; color:#2A5DAE; }

/* ==========================================================================
   [8차-2 추가] 회원가입/로그인/마이페이지(데모) 전용 스타일
   (기존 규칙은 수정하지 않고 새 규칙만 추가합니다)
   ========================================================================== */

/* 데모 모드 경고 배너 — 실제 인증이 아님을 모든 인증 관련 화면 상단에 명시 */
.demo-auth-banner{
  display:flex; align-items:flex-start; gap:10px; background:#FEF6E4;
  border:1px solid #F5E6B8; border-radius: 12px; padding: 14px 16px;
  font-size:13.5px; color:#8A6A14; margin: 4px 0 20px; line-height:1.55;
}
.demo-auth-banner i{ font-size:16px; margin-top:2px; }
.demo-auth-banner b{ color:#6B5110; }

/* 동의 항목 리스트(체크박스형) */
.consent-list{ display:flex; flex-direction:column; gap:10px; margin: 14px 0; }
.consent-item{
  display:flex; align-items:flex-start; gap:10px; border:1px solid var(--border);
  border-radius: 12px; padding: 14px 16px; background: var(--bg-soft);
}
.consent-item input[type="checkbox"]{
  width:20px; height:20px; accent-color: var(--primary); margin-top:2px; flex-shrink:0;
}
.consent-item .consent-body{ flex:1; }
.consent-item .consent-title{ font-weight:700; font-size:14.5px; color: var(--text); }
.consent-item .consent-title .req{ color: var(--danger); margin-left:2px; }
.consent-item .consent-title .optional-tag{
  color: var(--text-faint); font-weight:600; font-size:12.5px; margin-left:6px;
}
.consent-item .consent-meta{ font-size:12.5px; color: var(--text-faint); margin-top:4px; line-height:1.5; }

/* 로그인 상태 칩 (헤더/마이페이지) */
.auth-state-chip{
  display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700;
  padding:5px 12px; border-radius:999px;
}
.auth-state-chip.is-guest{ background: var(--bg-soft-2); color: var(--text-sub); }
.auth-state-chip.is-member{ background:#E9F7EE; color:#1D8348; }

/* 계정(내 정보) 정보 행 */
.account-info-row{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding: 12px 0; border-bottom:1px solid var(--border); font-size:14.5px;
}
.account-info-row:last-child{ border-bottom:none; }
.account-info-row .k{ color: var(--text-sub); font-weight:700; }
.account-info-row .v{ color: var(--text); text-align:right; }

/* 위험 영역(탈퇴 등) */
.danger-zone{
  border:1px solid #F3D3CD; background:#FDF4F2; border-radius: var(--radius-lg);
  padding: 20px; margin-top:18px;
}
.danger-zone h3{ color: var(--danger); font-size:16px; font-weight:800; margin-bottom:8px; }
.danger-zone p{ font-size:13.5px; color: var(--text-sub); margin-bottom:12px; }
