/* Shared responsive layer. Desktop artwork and reservation logic remain untouched. */
/* Patient-guide tabs share the hero's 1320px / 32px grid, not each page's body grid. */
.pg-page-nav,.medical-guide-nav,.reserve-guide-nav { box-sizing:border-box; display:flex; flex-wrap:wrap; gap:4px 22px; padding:10px 0; border-block:1px solid #dce5e8; }
.patient-guide > .pg-page-nav,.medical-index-page > .medical-guide-nav { width:min(1320px,calc(100% - 64px)); margin:28px auto 0; }
.renewal-reserve-page .reserve-guide-nav-wrap { padding-top:28px; }
.renewal-reserve-page .reserve-guide-nav-wrap > .renewal-board-content { width:min(1320px,calc(100% - 64px)); margin-inline:auto; }
.reserve-guide-nav { margin:0; }
.pg-page-nav a,.medical-guide-nav a,.reserve-guide-nav a { display:flex; align-items:center; flex-shrink:0; min-height:44px; padding:0; color:#5b7182; font-size:14px; font-weight:550; line-height:24px; letter-spacing:-.3px; white-space:nowrap; text-decoration:none; }
.pg-page-nav a:hover,.medical-guide-nav a:hover,.reserve-guide-nav a:hover { color:#123e60; }
.pg-page-nav a[aria-current="page"],.medical-guide-nav a[aria-current="page"],.reserve-guide-nav a[aria-current="page"] { color:#123e60; font-weight:750; box-shadow:inset 0 -2px #c26a3b; }
.pg-page-nav a:focus-visible,.medical-guide-nav a:focus-visible,.reserve-guide-nav a:focus-visible { outline:2px solid #123e60; outline-offset:3px; }
.patient-guide > .pg-page-nav + .visit-wide { padding-top:48px; }
.medical-index-page .medical-guide-nav + .medical-search,.renewal-reserve-page .reserve-guide-nav-wrap + .renewal-board-shell { padding-top:48px; }
.pg-table-scroll[data-horizontal-scroll]::before { content:'좌우로 밀어 전체 진료시간표를 확인하세요 ↔'; display:block; position:sticky; left:0; width:100%; padding:0 0 12px; font-size:12px; line-height:1.7; color:#557383; }
[data-horizontal-scroll]:focus-visible { outline:2px solid #198a8a; outline-offset:4px; }
@media(max-width:920px) {
 .v2-medical .v2m-hero { min-height:0; }
 .v2-medical .v2m-hero-copy { min-height:0; }
 .v2-medical .v2m-hero-copy-inner { width:100%; margin:0; padding:32px 28px 32px 0; }
 .v2-medical .v2m-hero-visual { min-height:300px; height:300px; }
 .v2-medical .v2m-hero-copy h1 { font-size:clamp(30px,4.5vw,42px); line-height:1.3; overflow-wrap:break-word; }
 .v2-medical .v2m-summary { margin-top:18px; }
 .v2-medical .v2m-actions { margin-top:24px; }
 .v2-medical .v2m-hero-principle { min-height:70px; padding:14px 24px 14px 0; }
}
@media(max-width:767px) {
 body { padding-bottom:calc(72px + env(safe-area-inset-bottom)); }
 .notice-strip { height:44px!important; }
 .notice-strip .notice-inner { height:44px; min-height:44px; padding:0 16px; }
 .notice-strip .notice-label,.notice-strip .notice-controls { display:none; }
 .notice-strip .notice-message { min-width:0; max-width:calc(100% - 36px); margin:0; font-size:11px; line-height:1.5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
 .notice-strip .notice-close { width:36px; height:36px; margin-left:auto; }
 .site-header { height:64px!important; }
 .site-header .header-inner { min-height:64px; height:64px; width:calc(100% - 36px); padding:0; }
 .site-header .brand img { width:180px; max-width:52vw; height:auto; }
 .site-header .main-nav,.site-header .phone-link,.site-header .reserve-link,.site-header .all-menu-toggle { display:none; }
 .site-header .menu-button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-width:44px; min-height:44px; }
 .site-header .menu-button span { flex-shrink:0; width:26px; height:2px; margin:0; }
 .site-header .mobile-menu:not([hidden]) { max-height:calc(100dvh - 184px - env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain; padding:18px 18px 24px; }
 .mobile-menu .mobile-menu-heading { min-height:44px; display:flex; align-items:center; }
 .mobile-menu .mobile-menu-group > div { min-width:0; }
 .mobile-menu .mobile-menu-group > div > a { min-height:44px; display:flex; align-items:center; line-height:1.45; word-break:keep-all; }
 .site-quickbar { display:none!important; }
 .mobile-fixed { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); min-height:66px; height:auto; padding-bottom:env(safe-area-inset-bottom); }
 .mobile-fixed a,.mobile-fixed button { min-width:0; min-height:66px; padding:10px 2px; border:0; border-right:1px solid #dbe5eb; background:white; color:#123e60; font:inherit; display:flex; flex-direction:column; align-items:center; justify-content:center; }
 .mobile-fixed a:first-child { background:#198a8a; color:white; }.mobile-fixed button:last-child { border-right:0; }
 .mobile-fixed strong { font-size:14px; }.mobile-fixed small { font-size:10px; }
 .site-footer { padding-bottom:28px; }.site-footer .footer-top { gap:22px; }.site-footer .footer-top nav { gap:0 16px; }.site-footer .footer-top nav a { display:inline-flex; align-items:center; min-height:40px; font-size:12px; }.site-footer .footer-bottom { gap:10px; line-height:1.8; }
 .medical-index-hero,.renewal-community-page .renewal-board-hero { min-height:0; padding:28px 20px 30px; }
 .medical-index-hero .medical-breadcrumb { flex-wrap:wrap; gap:7px; font-size:11px; }
 .medical-index-hero .medical-kicker { margin:20px 0 12px; font-size:10px; }
 .medical-index-hero h1 { font-size:30px; line-height:1.3; overflow-wrap:break-word; }
 .medical-index-hero > div > p:last-child { margin-top:14px; font-size:14px; line-height:1.75; }
 .medical-index-grid { width:calc(100% - 36px); padding:38px 0 56px; }
 .medical-index-heading { gap:22px; }.medical-index-heading h2 { font-size:27px; }
 .medical-index-card { min-width:0; }.medical-index-card h3 { word-break:keep-all; overflow-wrap:break-word; }
 .medical-index-grid input[type="search"],.medical-index-grid input[type="text"] { font-size:16px; min-width:0; }
 .v2-medical .v2m-wide { width:calc(100% - 36px); }
 .v2-medical .v2m-hero-visual { height:250px; min-height:250px; }
 .v2-medical .v2m-hero-visual figcaption { inset:auto 18px 16px; padding-top:12px; }.v2-medical .v2m-hero-visual figcaption span { display:none; }.v2-medical .v2m-hero-visual figcaption strong { font-size:14px; }
 .v2-medical .v2m-hero-copy { padding-left:18px; }
 .v2-medical .v2m-breadcrumb { min-height:48px; padding-right:18px; gap:7px; font-size:10px; }
 .v2-medical .v2m-hero-copy-inner { padding:26px 18px 28px 0; }
 .v2-medical .v2m-kicker { font-size:10px; letter-spacing:.12em; }
 .v2-medical .v2m-category { margin-top:14px; font-size:15px; }
 .v2-medical .v2m-hero-copy h1 { margin-top:12px; font-size:30px; line-height:1.3; }
 .v2-medical .v2m-summary { margin-top:16px; font-size:14px; line-height:1.8; }
 .v2-medical .v2m-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:22px; }
 .v2-medical .v2m-actions a { min-width:0; width:100%; min-height:52px; padding:10px 12px; gap:8px; border-radius:8px; font-size:13px; }.v2-medical .v2m-actions a strong { font-size:13px; }
 .v2-medical .v2m-actions a[href^="tel:"] { flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; font-size:11px; }
 .v2-medical .v2m-actions a[href^="tel:"] strong { white-space:nowrap; font-size:13px; }
 .v2-medical .v2m-hero-principle { min-height:60px; gap:16px; padding:12px 18px 12px 0; }.v2-medical .v2m-hero-principle p { padding-left:16px; font-size:11px; }
 .v2-medical .v2m-local-nav .v2m-wide { width:100%; height:54px; padding-left:18px; }
 .v2-medical .v2m-local-nav .v2m-wide > span { display:none; }.v2-medical .v2m-local-nav .v2m-wide > div { min-width:0; gap:20px; padding-right:18px; overscroll-behavior-x:contain; }
 .v2-medical .v2m-local-nav a { min-height:48px; white-space:nowrap; font-size:13px; }
 .v2-medical .v2m-opening { padding-top:44px; padding-bottom:44px; gap:24px; }
 .v2-medical .v2m-opening-title h2,.v2-medical .v2m-section-head h2,.v2-medical .v2m-symptoms h2,.v2-medical .v2m-process h2,.v2-medical .v2m-related h2 { font-size:28px; line-height:1.4; word-break:keep-all; overflow-wrap:break-word; }
 .v2-medical .v2m-condition-list summary { gap:10px; }.v2-medical .v2m-condition-list summary h3 { font-size:18px; }
 .v2-medical .v2m-condition-article dl { padding:20px 18px; margin-left:0; }
 .v2-medical .v2m-faq-list summary { font-size:15px; line-height:1.6; }.v2-medical .v2m-faq-list details > div { padding-right:18px; }
 .v2-medical .v2m-cta > .v2m-wide { padding:38px 0; gap:26px; }.v2-medical .v2m-cta h2 { font-size:28px; line-height:1.4; }
 .visit-page .visit-wide,.team-page .team-wide { width:calc(100% - 36px); }
 .visit-contact,.team-contact { padding:24px 20px; }.visit-actions,.team-actions { flex-wrap:wrap; gap:12px; }
 .visit-button,.team-button { min-height:48px; }.visit-section-heading h2 { font-size:26px; }
 .pg-page-nav,.medical-guide-nav,.reserve-guide-nav { flex-wrap:nowrap; overflow-x:auto; padding:10px 0; gap:16px; overscroll-behavior-x:contain; }
 .patient-guide > .pg-page-nav,.medical-index-page > .medical-guide-nav { width:calc(100% - 40px); margin:20px auto 0; }
 .renewal-reserve-page .reserve-guide-nav-wrap { padding-top:20px; }
 .renewal-reserve-page .reserve-guide-nav-wrap > .renewal-board-content { width:calc(100% - 40px); }
 .pg-page-nav a,.medical-guide-nav a,.reserve-guide-nav a { font-size:13px; }
 .patient-guide > .pg-page-nav + .visit-wide,.medical-index-page .medical-guide-nav + .medical-search,.renewal-reserve-page .reserve-guide-nav-wrap + .renewal-board-shell { padding-top:32px; }
 .pg-table-scroll { border-radius:8px; overscroll-behavior-x:contain; }
 .pg-schedule-table th:first-child { position:sticky; left:0; z-index:1; background:#eef4f6; }
 .pg-fee-input input { min-width:0; font-size:16px; }.pg-fee-filters button { min-height:44px; }.pg-fee-item h3 { overflow-wrap:break-word; }
 .team-page .team-switcher { display:flex; flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start; gap:5px; padding:6px; }.team-page .team-switcher a { flex:0 0 80px; min-height:56px; padding:10px 6px; }.team-page .team-switcher small { white-space:nowrap; }
 .team-page .team-profile-copy { padding:26px 20px; }.team-page .team-profile h1 { font-size:36px; }.team-page .team-history-card { padding:24px 20px; }.team-page .team-history-card li { font-size:15px; line-height:1.8; }
 .floor-tabs a { min-height:60px; }.floor-thumbnails button { min-width:0; }.floor-thumbnails span { overflow-wrap:break-word; }
 .greeting-copy > p { font-size:15px; line-height:1.9; }.greeting-copy h2 { font-size:26px; }.greeting-signoff strong { font-size:23px; }
 .clinic-policy-text { min-width:0; }.clinic-policy-text table { font-size:13px; }.clinic-policy-text td,.clinic-policy-text th { padding:9px; }
 .renewal-reserve-page .reserve-intro { margin-top:0; }.renewal-reserve-page input:not([type="checkbox"]):not([type="radio"]),.renewal-reserve-page select,.renewal-reserve-page textarea { font-size:16px; }
}
/* Keep the expanded mobile breakpoint's bottom sheet functional at 641–767px. */
@media(min-width:641px) and (max-width:767px) {
 body.mobile-quick-open { overflow:hidden!important; }
 .mobile-quick-sheet:not([hidden]) { position:fixed; z-index:10030; inset:0; display:block; }
 .mobile-quick-backdrop { position:absolute; inset:0; width:100%; height:100%; border:0; background:#04172780; }
 .mobile-quick-sheet > section { position:absolute; right:0; bottom:0; left:0; width:min(540px,100%); margin:auto; padding:24px 20px calc(26px + env(safe-area-inset-bottom)); border-radius:24px 24px 0 0; background:white; }
 .mobile-quick-sheet header { display:flex; align-items:center; justify-content:space-between; }.mobile-quick-sheet header small { color:#d25a29; font-size:11px; font-weight:800; }.mobile-quick-sheet header h2 { margin:7px 0 0; font-size:26px; }.mobile-quick-sheet header button { width:44px; height:44px; border:0; border-radius:50%; background:#edf2f3; font-size:24px; }
 .mobile-quick-sheet section > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:22px; }
 .mobile-quick-sheet section > div > a,.mobile-quick-sheet section > div > span { display:flex; flex-direction:column; min-height:104px; padding:17px 16px; border:1px solid #dbe5eb; border-radius:14px; background:#f8faf9; color:#123e60; }
 .mobile-quick-sheet section i { font-size:10px; font-style:normal; }.mobile-quick-sheet section strong { margin-top:auto; font-size:16px; }.mobile-quick-sheet section small { margin-top:5px; font-size:12px; }.mobile-quick-sheet section > div > span { opacity:.52; }
}
@media(max-width:360px) {
 .site-header .brand img { width:156px; }.medical-index-hero h1 { font-size:27px; }.v2-medical .v2m-hero-copy h1 { font-size:27px; }
 .v2-medical .v2m-actions a { padding:10px 8px; font-size:12px; }.v2-medical .v2m-actions a strong { font-size:12px; }.v2-medical .v2m-actions a span { font-size:13px; }
 .greeting-portrait figcaption strong { font-size:21px; }.community-nav a { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { [data-horizontal-scroll] { scroll-behavior:auto; } }
