/* [feat @yuri 2026-07-08] 진료시간 알약(v2-pill) — flex-wrap(내용 길이별 가변폭 → 들쭉날쭉) 대신 균등 그리드.
   모바일: 1열 풀폭 행(요일 좌·시간 우, space-between). ≥768: 7요일 스트립(세로 알약, 동일 폭). 텍스트 달라도 박스 배열 일정. */
.hours-pills{list-style: none;margin: 0;padding: 0;display: grid;grid-template-columns: 1fr;gap: 8px;}.hours-pill{display: flex;align-items: center;justify-content: space-between;gap: 8px;min-height: 44px;padding: 8px 14px;background: #fff;border: 1px solid var(--navy-100);border-radius: var(--r-lg);font-size: 14px;}.hours-pill__day{font-weight: 700;color: var(--navy-700);min-width: 18px;text-align: center;}.hours-pill__val{display: flex;flex-direction: column;align-items: flex-end;gap: 1px;min-width: 0;}.hours-pill__time{color: var(--ink-700);word-break: keep-all;}.hours-pill__note{font-size: 11.5px;color: var(--ink-500);line-height: 1.3;word-break: keep-all;}.hours-pill.is-closed{background: var(--navy-50);color: var(--ink-500);}.hours-pill.is-closed .hours-pill__time{color: var(--ink-500);}
@media (min-width: 768px){.hours-pills{grid-template-columns: repeat(7,minmax(0,1fr));gap: 6px;}.hours-pill{flex-direction: column;align-items: center;justify-content: center;gap: 4px;min-height: 66px;padding: 10px 6px;text-align: center;}.hours-pill__day{min-width: 0;}.hours-pill__val{align-items: center;}.hours-pill__time{font-size: 13px;line-height: 1.3;}}.hours-meta{margin-top: 16px;display: flex;flex-direction: column;gap: 6px;font-size: 14px;color: var(--ink-700);}.hours-meta__lunch strong{color: var(--ink-900);font-weight: 700;margin-right: 6px;}.hours-meta__note{font-size: 13px;color: var(--ink-500);margin: 0;}.hours-today{padding: 24px 20px;background: #fff;border: 1px solid var(--navy-100);border-radius: var(--r-lg);display: flex;flex-direction: column;gap: 8px;}.hours-today__state{display: flex;align-items: center;gap: 10px;margin-bottom: 4px;}.hours-today__badge{display: inline-flex;align-items: center;padding: 4px 12px;font-size: 13px;font-weight: 700;color: #fff;background: var(--ink-500);border-radius: 999px;}.hours-today__state.is-open .hours-today__badge{background: #16A34A;}.hours-today__state.is-closed .hours-today__badge{background: var(--ink-500);}.hours-today__when{font-size: 14px;font-weight: 600;color: var(--ink-700);}.hours-today__time{margin: 0;font-size: 22px;font-weight: 700;line-height: 1.3;color: var(--ink-900);letter-spacing: -0.01em;}.hours-today__lunch{margin: 0;font-size: 14px;color: var(--ink-500);}.hours-today__more{margin-top: 16px;}.hours-today__more > summary{cursor: pointer;font-size: 14px;font-weight: 600;color: var(--navy-700);padding: 10px 0;list-style: none;display: inline-flex;align-items: center;gap: 6px;}.hours-today__more > summary::-webkit-details-marker{display: none;}.hours-today__more-icon{display: inline-block;width: 14px;height: 14px;position: relative;color: var(--ink-500);}.hours-today__more-icon::before,.hours-today__more-icon::after{content: '';position: absolute;background: currentColor;}.hours-today__more-icon::before{top: 6px;left: 0;width: 14px;height: 2px;}.hours-today__more-icon::after{top: 0;left: 6px;width: 2px;height: 14px;}.hours-today__more[open] > summary .hours-today__more-icon::after{display: none;}.hours-today__week{list-style: none;margin: 8px 0 0;padding: 0;display: grid;grid-template-columns: repeat(2,1fr);gap: 6px;}.hours-today__row{display: flex;align-items: center;gap: 10px;padding: 8px 12px;background: var(--navy-50);border-radius: var(--r-sm);font-size: 13px;}.hours-today__row.is-today{background: var(--navy-700);color: #fff;}.hours-today__row.is-today .hours-today__row-day,.hours-today__row.is-today .hours-today__row-time{color: #fff;}.hours-today__row-day{font-weight: 700;color: var(--navy-700);}.hours-today__row-time{color: var(--ink-700);}.hours-today__note{margin: 12px 0 0;font-size: 12px;color: var(--ink-500);}
/* [feat @yuri 2026-07-29] 병원 기본 진료시간 요약표 — 빌더 '진료시간 표시 방식 = 요약+주간' 일 때만 출력.
   지금까지 이 섹션엔 요일별 병원 시간표가 없어(캘린더 + 의료진별 주간표뿐) 진료시간 안내 페이지가 허전했다. */
.hours-summary{margin: 0 0 16px;padding: 16px 18px;background: var(--navy-50,#F4F7FC);border: 1px solid var(--navy-100,#DCE6F2);border-radius: var(--r-lg,12px);}
.hours-summary__table{width: 100%;border-collapse: collapse;}
.hours-summary__row + .hours-summary__row > *{border-top: 1px solid var(--navy-100,#DCE6F2);}
.hours-summary__day{width: 84px;padding: 9px 0;text-align: left;font-size: 14px;font-weight: 700;color: var(--navy-700);white-space: nowrap;}
.hours-summary__time{padding: 9px 0;font-size: 15px;font-weight: 600;color: var(--ink-900);letter-spacing: -0.01em;word-break: keep-all;}
.hours-summary__row.is-off .hours-summary__day,.hours-summary__row.is-off .hours-summary__time{color: var(--ink-500,#64748B);font-weight: 500;}
.hours-summary__meta{margin: 12px 0 0;padding-top: 12px;border-top: 1px solid var(--navy-100,#DCE6F2);display: flex;flex-wrap: wrap;align-items: center;gap: 8px 12px;}
.hours-summary__chip{display: inline-flex;align-items: center;gap: 6px;padding: 4px 10px;background: #fff;border: 1px solid var(--navy-100,#DCE6F2);border-radius: 999px;font-size: 12.5px;color: var(--ink-700);}
.hours-summary__chip strong{font-weight: 700;color: var(--navy-700);}
.hours-summary__note{font-size: 12.5px;line-height: 1.6;color: var(--ink-500,#64748B);word-break: keep-all;}
@media (min-width: 768px){
	.hours-summary{padding: 20px 24px;}
	.hours-summary__day{width: 104px;font-size: 15px;}
	.hours-summary__time{font-size: 16px;}
}


/* [feat @yuri 2026-07-29] 모바일 주간 뷰 — 요일 칩을 고르면 그날 진료 의료진만.
   요일 묶음 표기(월·수 / 화·목·금)는 읽는 사람이 머릿속으로 다시 매핑해야 했고, 매트릭스는 가로 스크롤이었다.
   한 번에 한 요일치만 그리므로 의료진 수가 늘어도 세로 길이가 그대로다.
   전환은 라디오 + :has() 로 CSS 만(JS 없음). v4-summary-cards 변형에서만 출력.
   [fix 같은 날] 320~400px 대응 — 이름/시간 한 줄 배치가 겹쳐서, 좁은 폭은 2줄(이름 → 시간)로 두고
   420px 이상에서만 한 줄로 편다. 시간은 슬롯(08:30 - 13:00)별 span 이라 슬롯 사이에서만 줄바꿈. */
.hours-week__radio{position: absolute;width: 1px;height: 1px;opacity: 0;pointer-events: none;}
.hours-week__chips{display: grid;grid-template-columns: repeat(7,minmax(0,1fr));gap: 4px;margin: 0 0 14px;}
.hours-week__chip{position: relative;display: flex;align-items: center;justify-content: center;min-width: 0;min-height: 44px;padding: 0 2px;border: 1px solid var(--line,#E2E8F0);border-radius: 10px;background: #fff;font-size: 14px;font-weight: 700;color: var(--ink-700);cursor: pointer;user-select: none;transition: background .15s ease,color .15s ease,border-color .15s ease;}
.hours-week__chip.is-off{color: var(--ink-300,#CBD5E1);}
.hours-week__dot{position: absolute;bottom: 6px;left: 50%;transform: translateX(-50%);width: 4px;height: 4px;border-radius: 50%;background: var(--navy-700);}
.hours-week__panel{display: none;}
.hours-week__meta{margin: 0 0 10px;display: flex;flex-wrap: wrap;align-items: baseline;gap: 4px 8px;}
.hours-week__meta-day{font-size: 15px;font-weight: 800;color: var(--ink-900);letter-spacing: -0.02em;}
.hours-week__meta-clinic{font-size: 13px;color: var(--ink-500,#64748B);word-break: keep-all;}
.hours-week__list{list-style: none;margin: 0;padding: 0;display: flex;flex-direction: column;gap: 8px;}

/* 모바일 기본 = 2줄(이름 줄 / 시간 줄). 시간은 사진 폭(36) + 간격(9) 만큼 들여써 이름과 왼쪽을 맞춘다. */
.hours-week__item{display: flex;flex-direction: column;align-items: stretch;gap: 4px;padding: 10px 12px;background: #fff;border: 1px solid var(--line,#E2E8F0);border-radius: var(--r-md,10px);}
.hours-week__doc{display: flex;align-items: center;gap: 9px;min-width: 0;color: inherit;text-decoration: none;}
.hours-week__doc:hover{text-decoration: none;}
.hours-week__photo{flex: 0 0 auto;width: 36px;height: 36px;border-radius: 50%;overflow: hidden;background: var(--navy-50,#F4F7FC);}
.hours-week__photo img{width: 100%;height: 100%;object-fit: cover;object-position: center top;display: block;}
.hours-week__name{display: flex;flex-wrap: wrap;align-items: baseline;gap: 2px 5px;min-width: 0;font-size: 14px;font-weight: 700;color: var(--ink-900);letter-spacing: -0.02em;word-break: keep-all;}
.hours-week__pos{font-size: 11.5px;font-style: normal;font-weight: 500;color: var(--ink-500,#64748B);white-space: nowrap;}
.hours-week__time{display: flex;flex-wrap: wrap;align-items: baseline;gap: 2px 6px;padding-left: 45px;font-size: 13px;font-weight: 600;color: var(--navy-700);line-height: 1.45;}
.hours-week__slot{white-space: nowrap;}
.hours-week__slot + .hours-week__slot::before{content: "·";margin-right: 6px;color: var(--ink-300,#CBD5E1);}
.hours-week__note{flex: 1 1 100%;font-size: 11.5px;font-weight: 500;color: var(--ink-500,#64748B);word-break: keep-all;}
.hours-week__empty{margin: 0;padding: 18px 12px;text-align: center;font-size: 13.5px;color: var(--ink-500,#64748B);background: var(--bg-2,#F7F9FC);border-radius: var(--r-md,10px);}

/* 420px 이상 = 이름과 시간을 한 줄로. */
@media (min-width: 420px){
	.hours-week__chips{gap: 5px;}
	.hours-week__item{flex-direction: row;align-items: center;justify-content: space-between;gap: 10px;}
	.hours-week__doc{flex: 1 1 auto;}
	.hours-week__time{flex: 0 1 auto;justify-content: flex-end;padding-left: 0;text-align: right;}
	.hours-week__note{flex-basis: 100%;text-align: right;}
}
.hours-week:has(#hours-week-mon:checked) .hours-week__panel--mon{display: block;}
.hours-week:has(#hours-week-mon:checked) .hours-week__chip--mon{background: var(--navy-700);border-color: var(--navy-700);color: #fff;}
.hours-week:has(#hours-week-mon:checked) .hours-week__chip--mon .hours-week__dot{background: #fff;}
.hours-week:has(#hours-week-mon:focus-visible) .hours-week__chip--mon{outline: 2px solid var(--navy-700);outline-offset: 2px;}
.hours-week:has(#hours-week-tue:checked) .hours-week__panel--tue{display: block;}
.hours-week:has(#hours-week-tue:checked) .hours-week__chip--tue{background: var(--navy-700);border-color: var(--navy-700);color: #fff;}
.hours-week:has(#hours-week-tue:checked) .hours-week__chip--tue .hours-week__dot{background: #fff;}
.hours-week:has(#hours-week-tue:focus-visible) .hours-week__chip--tue{outline: 2px solid var(--navy-700);outline-offset: 2px;}
.hours-week:has(#hours-week-wed:checked) .hours-week__panel--wed{display: block;}
.hours-week:has(#hours-week-wed:checked) .hours-week__chip--wed{background: var(--navy-700);border-color: var(--navy-700);color: #fff;}
.hours-week:has(#hours-week-wed:checked) .hours-week__chip--wed .hours-week__dot{background: #fff;}
.hours-week:has(#hours-week-wed:focus-visible) .hours-week__chip--wed{outline: 2px solid var(--navy-700);outline-offset: 2px;}
.hours-week:has(#hours-week-thu:checked) .hours-week__panel--thu{display: block;}
.hours-week:has(#hours-week-thu:checked) .hours-week__chip--thu{background: var(--navy-700);border-color: var(--navy-700);color: #fff;}
.hours-week:has(#hours-week-thu:checked) .hours-week__chip--thu .hours-week__dot{background: #fff;}
.hours-week:has(#hours-week-thu:focus-visible) .hours-week__chip--thu{outline: 2px solid var(--navy-700);outline-offset: 2px;}
.hours-week:has(#hours-week-fri:checked) .hours-week__panel--fri{display: block;}
.hours-week:has(#hours-week-fri:checked) .hours-week__chip--fri{background: var(--navy-700);border-color: var(--navy-700);color: #fff;}
.hours-week:has(#hours-week-fri:checked) .hours-week__chip--fri .hours-week__dot{background: #fff;}
.hours-week:has(#hours-week-fri:focus-visible) .hours-week__chip--fri{outline: 2px solid var(--navy-700);outline-offset: 2px;}
.hours-week:has(#hours-week-sat:checked) .hours-week__panel--sat{display: block;}
.hours-week:has(#hours-week-sat:checked) .hours-week__chip--sat{background: var(--navy-700);border-color: var(--navy-700);color: #fff;}
.hours-week:has(#hours-week-sat:checked) .hours-week__chip--sat .hours-week__dot{background: #fff;}
.hours-week:has(#hours-week-sat:focus-visible) .hours-week__chip--sat{outline: 2px solid var(--navy-700);outline-offset: 2px;}
.hours-week:has(#hours-week-sun:checked) .hours-week__panel--sun{display: block;}
.hours-week:has(#hours-week-sun:checked) .hours-week__chip--sun{background: var(--navy-700);border-color: var(--navy-700);color: #fff;}
.hours-week:has(#hours-week-sun:checked) .hours-week__chip--sun .hours-week__dot{background: #fff;}
.hours-week:has(#hours-week-sun:focus-visible) .hours-week__chip--sun{outline: 2px solid var(--navy-700);outline-offset: 2px;}
@media (min-width: 768px){
	.hours-week{display: none;}
}
@media (max-width: 767px){
	.sec--hours--summary-first .hours-doctors__scroll{display: none;}
	/* 좁은 폭에서 요약표 라벨이 값을 밀어내지 않게 — 값이 두 줄로 흐르도록 폭 고정 해제. */
	.hours-summary__day{width: 62px;font-size: 13px;}
	.hours-summary__time{font-size: 14px;}
}
