/* 홈페이지 전용 컬러 — 관리자 색상은 assets/admin/css/에서 별도 관리합니다. */
:root { --site-background:#faf4eb; --site-accent:#413731; --site-accent-hover:#704f3b; --site-text:#493b32; --site-muted:#78695e; --site-line:#e5d9cb; --site-surface:#f4ece2; --site-focus:rgb(137 98 75 / 25%); --site-accent-soft:rgb(137 98 75 / 10%); --fh-paper:var(--site-background); --fh-accent:var(--site-accent); --fh-height:70px; }
/* 기존 기능 화면은 홈페이지 컬러를 참조합니다. 이 아래에서 색상값을 다시 지정하지 않습니다. */
.medis-ui { 
	--ink:var(--site-text); --muted:var(--site-muted); --brand:var(--site-accent); 
	--brand-dark:var(--site-accent-hover); --line:var(--site-line); --surface:var(--site-surface);
}

body { background:var(--fh-paper); }
body.fh-sub { padding-top:var(--fh-height); }
html { scroll-padding-top:calc(var(--fh-height) + 24px); }
.fh-header, .fh-header * { box-sizing:border-box; }
.fh-header { position:fixed; inset:0 0 auto; z-index:100; height:96px; color:#fff; background:transparent; border-bottom:1px solid transparent; transition:height .35s ease,background-color .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease; }
.fh-header.is-solid { height:var(--fh-height); color:var(--fh-accent); background:var(--fh-paper); border-bottom-color:rgb(137 98 75 / 16%); box-shadow:0 4px 24px rgb(54 35 23 / 3%); }
.fh-inner { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:32px; height:100%; padding-inline:clamp(24px,3.646vw,70px); }
.fh-header a { color:inherit; text-decoration:none; }
.fh-header button { font:inherit; -webkit-tap-highlight-color:transparent; }
.fh-header :is(a,button):focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.fh-header ul { padding:0; margin:0; list-style:none; }
.fh-header [hidden] { display:none !important; }

/* Original vertical SVG, composed horizontally without altering its paths. */
.fh-brand { display:flex; align-items:center; gap:14px; width:154px; flex-shrink:0; }
.fh-brand-mark, .fh-brand-word { display:block; flex-shrink:0; background:currentColor; -webkit-mask-image:url('/images/common/logo.svg'); mask-image:url('/images/common/logo.svg'); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; }
.fh-brand-mark { width:40px; height:50px; -webkit-mask-size:75.052px 89.6px; mask-size:75.052px 89.6px; -webkit-mask-position:-18px 0; mask-position:-18px 0; }
.fh-brand-word { width:100px; height:38px; -webkit-mask-size:100px 119.384px; mask-size:100px 119.384px; -webkit-mask-position:0 -81.6px; mask-position:0 -81.6px; }
.fh-menu { display:flex; align-items:center; gap:clamp(24px,4.167vw,80px); }
.fh-item { position:relative; }
.fh-menu-row { position:relative; display:flex; align-items:center; }
.fh-menu-link { display:block; padding-block:22px; font-size:18px; font-weight:400; line-height:1.4; white-space:nowrap; }
.fh-menu > .fh-item > .fh-menu-row > .fh-menu-link { font-family:var(--font-serif); }
/* .fh-menu > .fh-item > .fh-menu-row > .fh-menu-link::after { content:''; position:absolute; bottom:15px; left:0; right:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
 */.fh-menu > .fh-item:is(.is-open,:hover) > .fh-menu-row > .fh-menu-link::after, .fh-menu > .fh-item > .fh-menu-row > .fh-menu-link[aria-current]::after { transform:scaleX(1); }
.fh-expand { display:grid; place-items:center; width:24px; height:32px; padding:0; border:0; color:inherit; background:transparent; cursor:pointer; }
.fh-menu > .fh-item > .fh-menu-row > .fh-expand { position:absolute; left:100%; opacity:0; transition:opacity .2s ease; }
.fh-item:is(:hover,:focus-within,.is-open) > .fh-menu-row > .fh-expand { opacity:1; }
.fh-expand span { width:5px; height:5px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg); transition:transform .2s ease; }
.fh-expand span { display:none; }
.fh-expand[aria-expanded=true] span { transform:rotate(225deg); }
.fh-header .fh-dropdown { position:absolute; top:100%; left:50%; width:max-content; min-width:210px; max-width:min(320px,calc(100vw - 32px)); padding:14px; color:var(--fh-accent); background:var(--fh-paper); border:1px solid rgb(137 98 75 / 16%); border-radius:3px; box-shadow:0 18px 45px rgb(51 32 21 / 12%); transform:translateX(-50%); animation:fh-dropdown-in .22s ease both; }
.fh-dropdown .fh-menu-link { flex:1; padding:12px 14px; font-size:14px; line-height:1.55; white-space:normal; overflow-wrap:anywhere; transition:background-color .2s ease; }
.fh-dropdown .fh-menu-row:hover, .fh-dropdown .fh-menu-link[aria-current] { background:rgb(137 98 75 / 7%); }
.fh-dropdown .fh-expand { flex-shrink:0; margin-right:5px; }
.fh-header .fh-dropdown .fh-dropdown { position:static; width:auto; min-width:0; max-width:none; padding:2px 0 6px 12px; border:0; border-left:1px solid rgb(137 98 75 / 20%); border-radius:0; margin-left:14px; box-shadow:none; transform:none; animation:fh-fade-in .2s ease both; }
.fh-header .fh-dropdown { position:absolute; top:100%; left:50%; width:220px; min-width:0; max-width:calc(100vw - 32px); padding:0; margin:0; color:var(--fh-accent); background:var(--fh-paper); border:1px solid rgb(137 98 75 / 16%); border-radius:0; box-shadow:0 8px 20px rgb(51 32 21 / 6%); transform:translateX(-50%); animation:fh-fade-in .18s ease both; }
.fh-dropdown .fh-menu-link { display:flex; align-items:center; flex:1; min-width:0; min-height:46px; padding:12px 18px; font-size:14px; font-weight:400; line-height:1.55; white-space:normal; overflow-wrap:anywhere; transition:background-color .18s ease; }
.fh-dropdown .fh-menu-row:hover, .fh-dropdown .fh-menu-link[aria-current] { background:rgb(137 98 75 / 6%); }
.fh-dropdown .fh-expand { flex-shrink:0; width:32px; height:46px; margin:0; }
.fh-header .fh-dropdown .fh-dropdown { position:static; width:100%; min-width:0; max-width:none; padding:0; margin:0; border:0; border-top:1px solid rgb(137 98 75 / 16%); border-radius:0; background:rgb(137 98 75 / 3%); box-shadow:none; transform:none; animation:fh-fade-in .18s ease both; }
.fh-dropdown > .fh-item + .fh-item { border-top:1px solid rgb(137 98 75 / 16%); }
.fh-dropdown .fh-menu-row:focus-within { background:rgb(137 98 75 / 6%); }
.fh-dropdown .fh-menu-link:focus-visible { outline-offset:-3px; }
.fh-dropdown .fh-dropdown .fh-menu-link { padding-left:28px; font-size:13px; }
.fh-actions { display:flex; align-items:center; justify-self:end; gap:22px; }
.fh-language { position:relative; color:#222; }
.fh-language-toggle { display:flex; align-items:center; gap:10px; width:120px; height:32px; padding:4px 4px 4px 12px; border:0; border-radius:999px; background:#fff; color:#222; cursor:pointer; }
.fh-language-toggle > img { width:22px; height:22px; object-fit:contain; }
.fh-language-toggle > span { font-size:12px; font-weight:500; }
.fh-language-arrow { display:grid; place-items:center; width:24px; height:24px; margin-left:auto; border-radius:50%; background:var(--fh-accent); color:#fff; }
.fh-language-arrow::before { content:''; width:5px; height:5px; margin-top:-3px; border-right:1.5px solid; border-bottom:1.5px solid; transform:rotate(45deg); transition:transform .2s ease; }
.fh-language-toggle[aria-expanded=true] .fh-language-arrow::before { margin-top:3px; transform:rotate(225deg); }
.fh-header .fh-languages { position:absolute; top:calc(100% + 10px); right:0; display:grid; gap:5px; max-height:calc(100dvh - 150px); padding:4px; overflow-y:auto; border-radius:22px; background:rgb(255 255 255 / 94%); box-shadow:0 12px 32px rgb(51 32 21 / 12%); animation:fh-fade-in .2s ease both; }
.fh-languages a { position:relative; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; transition:background-color .2s ease,transform .2s ease; }
.fh-languages a:hover { background:rgb(137 98 75 / 12%); transform:scale(1.06); }
.fh-languages a:focus-visible { outline-offset:0; outline-color:var(--fh-accent); }
.fh-languages img { position:relative; z-index:1; width:28px; height:28px; object-fit:contain; border-radius:50%; }
.fh-language-name { position:absolute; font-size:10px; color:var(--fh-accent); }
.fh-allmenu { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:66px; height:30px; padding:0; border:0; border-radius:999px; background:#fff; color:#111; }
.fh-allmenu { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; width:66px; height:30px; padding:0; border:0; border-radius:999px; background:#fff; color:#111; }
.fh-allmenu:disabled { opacity:1; cursor:default; }
.fh-allmenu span { width:18px; height:2px; background:currentColor; }
.fh-allmenu span { display:block; flex:0 0 2px; width:18px; height:2px; padding:0; margin:0; border:0; background:currentColor; }
@keyframes fh-dropdown-in {
    from { opacity:0; translate:0 8px; }
    to { opacity:1; translate:0 0; }
}
@keyframes fh-fade-in {
    from { opacity:0; }
    to { opacity:1; }
}
@media (max-width:1200px) {
    .fh-inner { gap:24px; }
    .fh-menu { gap:30px; }
    .fh-menu-link { font-size:15px; }
    .fh-actions { gap:12px; }
    .fh-menu > .fh-item > .fh-menu-row > .fh-expand { opacity:1; }
}

/* Until the all-menu panel is built, keep the real CMS links available. */
@media (max-width:1000px) {
    :root { --fh-height:116px; }
    .fh-header { height:var(--fh-height); }
    .fh-inner { grid-template-columns:minmax(0,1fr) auto; grid-template-rows:68px 48px; gap:0 16px; padding-inline:20px; }
    .fh-brand { scale:.88; transform-origin:left center; }
    .fh-actions { grid-column:2; grid-row:1; gap:10px; }
    .fh-allmenu { width:48px; }
    .fh-language-toggle { width:102px; }
    .fh-nav { display:none; grid-column:1 / -1; grid-row:2; min-width:0; align-self:stretch; }
    .fh-menu { height:100%; justify-content:space-between; gap:8px; }
    .fh-menu > .fh-item { position:static; }
    .fh-menu-link { padding-block:15px; font-size:12px; }
  /*   .fh-menu > .fh-item > .fh-menu-row > .fh-menu-link::after { bottom:10px; } */
    .fh-menu > .fh-item > .fh-menu-row > .fh-expand { position:static; width:18px; height:40px; opacity:1; }
    .fh-header .fh-dropdown { top:100%; left:16px; right:16px; width:auto; min-width:0; max-width:none; max-height:calc(100dvh - 140px); overflow:auto; transform:none; }
    .fh-header .fh-dropdown .fh-dropdown { max-height:none; overflow:visible; }
}
@media (max-width:600px) {
    .fh-inner { padding-inline:12px; }
    .fh-actions { gap:8px; }
    .fh-language-toggle { width:90px; gap:6px; padding-left:8px; }
    .fh-allmenu { width:42px; }
    .fh-menu { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
    :root { --fh-height:156px; }
    .fh-inner { grid-template-rows:68px 88px; }
    .fh-menu > .fh-item { min-width:0; }
    .fh-menu > .fh-item > .fh-menu-row > .fh-menu-link { font-size:11px; }
    .fh-header .fh-dropdown { max-height:calc(100dvh - 180px); }
}
@media (hover:none) {
    .fh-menu > .fh-item > .fh-menu-row > .fh-expand { opacity:1; }
}
@media (prefers-reduced-motion:reduce) {
    .fh-header, .fh-header *, .fh-header *::before, .fh-header *::after { animation:none !important; transition:none !important; }
}

/* ===== 푸터 ===== */
#site-footer { padding: 28px 24px; border-top: 1px solid #e6e6e6; }
#site-footer nav { display: flex; flex-wrap: wrap; gap: 20px; max-width: var(--site-width); margin: auto; }
#site-footer a { color: inherit; text-decoration: none; font-size: 13px; }
@media (max-width: 900px) {
    .site-header-inner { flex-wrap: wrap; }
    .site-menu-toggle { display: block; }
    #site-nav { display: none; flex-basis: 100%; }
    #site-nav.is-open { display: block; }
    #site-nav .menu-list { display: block; }
    #site-nav .menu-row { justify-content: space-between; }
    #site-nav .menu-children, #site-nav .menu-children .menu-children { position: static; min-width: 0; padding: 4px 0 4px 20px; border: 0; }
}

/* 이하 공통 운영 요소. 예약·팝업 등 기능의 디자인도 이 파일에서 수정합니다. */

/* ===== 기본 기능 화면 ===== */

/* MEDIS functional screens only. Hospital layout belongs in common/main/sub.css. */
.medis-ui {       --radius: 14px; --container: 1200px; font-family: var(--font-body, system-ui, sans-serif); color: var(--ink); line-height: 1.7; font-size: 16px }
.medis-ui { background: #fff }
.medis-ui.container, :where(.medis-ui) .container { width: min(var(--container), calc(100% - 64px)); margin-inline: auto }
:where(.medis-ui) .narrow { max-width: 650px; margin-inline: auto }
.medis-ui.section, :where(.medis-ui) .section { padding-block: 76px }
:where(.medis-ui) .section p+*, :where(.medis-ui) .section h2+*, :where(.medis-ui) .section h3+* { margin-top: 16px }
:where(.medis-ui) h1, :where(.medis-ui) h2, :where(.medis-ui) h3 { line-height: 1.35; letter-spacing: -.04em }
:where(.medis-ui) h1 { font-size: clamp(2.2rem, 4vw, 3.5rem) }
:where(.medis-ui) h2 { font-size: 1.85rem }
:where(.medis-ui) h3 { font-size: 1.3rem }
:where(.medis-ui) p { word-break: keep-all; overflow-wrap: anywhere }
:where(.medis-ui) .eyebrow { font-size: .75rem; letter-spacing: .16em; font-weight: 700; color: var(--brand); margin-bottom: 16px }
:where(.medis-ui) .muted, :where(.medis-ui) small { color: var(--muted) }
:where(.medis-ui) small { font-size: .85rem }
:where(.medis-ui) .button, :where(.medis-ui) button { display: inline-flex; align-items: center; justify-content: center; gap: 32px; border: 1px solid var(--brand); border-radius: 6px; background: var(--brand); color: white; padding: 13px 23px; font-weight: 650; line-height: 1.4 }
:where(.medis-ui) .button:hover, :where(.medis-ui) button:hover { background: var(--brand-dark) }
:where(.medis-ui) .button.secondary, :where(.medis-ui) button.secondary { background: #fff; color: var(--ink); border-color: var(--line) }
:where(.medis-ui) .button.small { padding: 10px 17px; font-size: .875rem }
:where(.medis-ui) .danger { background: #a43243; border-color: #a43243 }
:where(.medis-ui) .site-header { border-bottom: 1px solid var(--line); background: #fff; position: relative; z-index: 5 }
:where(.medis-ui) .header-inner { min-height: 100px; display: flex; align-items: center; gap: 38px }
:where(.medis-ui) .site-brand { display: flex; align-items: center; gap: 10px; font-size: 1.4rem; font-weight: 750; white-space: nowrap }
:where(.medis-ui) .logo-symbol { font-size: 2rem; line-height: 1; color: var(--brand); font-weight: 400 }
:where(.medis-ui) #site-nav { display: flex; gap: 25px; align-items: center; margin-left: auto; font-weight: 600; font-size: .94rem }
:where(.medis-ui) .header-actions { display: flex; gap: 15px; align-items: center; font-size: .8rem }
:where(.medis-ui) .nav-group { position: relative; padding-block: 20px }
:where(.medis-ui) .submenu { display: none; position: absolute; top: 100%; left: 0; min-width: 190px; background: #fff; box-shadow: 0 8px 25px #10203020; padding: 16px }
:where(.medis-ui) .submenu a { display: block; padding: 8px }
:where(.medis-ui) .nav-group:hover .submenu, :where(.medis-ui) .nav-group:focus-within .submenu { display: block }
:where(.medis-ui) .menu-toggle { display: none }
:where(.medis-ui) .text-link { font-size: .94rem; font-weight: 600 }
:where(.medis-ui) .section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 30px }
:where(.medis-ui) .article-list { border-top: 1px solid var(--line) }
:where(.medis-ui) .article-list>a { display: flex; gap: 25px; align-items: center; padding: 24px 4px; border-bottom: 1px solid var(--line) }
:where(.medis-ui) .article-list strong { font-weight: 600; flex: 1 }
:where(.medis-ui) .article-list time { color: var(--muted); font-size: .85rem }
:where(.medis-ui) .article-list span { color: var(--brand); font-size: .8rem }
:where(.medis-ui) .site-footer { background: #132c35; color: #d5e1e4; padding-top: 44px }
:where(.medis-ui) .footer-grid { display: grid; grid-template-columns: 1fr auto; gap: 30px }
:where(.medis-ui) .footer-grid p { font-size: .84rem; margin-top: 10px; color: #9fb4bc }
:where(.medis-ui) .footer-grid>div:last-child { display: flex; gap: 24px; font-size: .85rem }
:where(.medis-ui) .footer-bottom { font-size: .75rem; color: #8da5ad; border-top: 1px solid #ffffff20; margin-top: 30px; padding-block: 20px }
:where(.medis-ui) .form-layout { display: grid; grid-template-columns: 1fr 1.8fr; gap: 60px }
:where(.medis-ui) .form-layout aside p { color: var(--muted); margin-block: 20px }
:where(.medis-ui) .form-layout aside a { color: var(--brand); font-weight: 600 }
:where(.medis-ui) .panel { background: #fff; border: 1px solid var(--line); padding: 30px; border-radius: var(--radius); margin-bottom: 20px }
:where(.medis-ui) .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px }
:where(.medis-ui) .form-grid label { display: flex; flex-direction: column; gap: 8px; font-size: .94rem }
:where(.medis-ui) .full { grid-column: 1/-1 }
:where(.medis-ui) input, :where(.medis-ui) textarea, :where(.medis-ui) select { width: 100%; min-height: 46px; border: 1px solid #cbd7db; border-radius: 5px; background: #fff; padding: 11px 13px; color: var(--ink) }
:where(.medis-ui) input[type=checkbox] { width: 18px; min-height: 18px; accent-color: var(--brand); flex-shrink: 0 }
:where(.medis-ui) .form-grid .check { display: flex; flex-direction: row; align-items: center; gap: 10px }
:where(.medis-ui) .check a { text-decoration: underline }
:where(.medis-ui) .notice { padding: 25px; background: #e8f4f1; border: 1px solid #afd9cf; border-radius: 10px; margin-bottom: 25px }
:where(.medis-ui) .notice h2 { font-size: 1.5rem }
:where(.medis-ui) .table-wrap { overflow-x: auto }
:where(.medis-ui) th, :where(.medis-ui) td { padding: 17px; text-align: left; border-bottom: 1px solid var(--line) }
:where(.medis-ui) th { background: var(--surface); font-size: .9rem }
:where(.medis-ui) td { font-size: .94rem }
:where(.medis-ui) .toolbar { display: flex; gap: 12px; align-items: end; margin-bottom: 25px }
:where(.medis-ui) .toolbar label { display: flex; align-items: center; gap: 15px }
:where(.medis-ui) .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px }
:where(.medis-ui) .card { padding: 25px; border: 1px solid var(--line); border-radius: 10px }
:where(.medis-ui) .doctor img, :where(.medis-ui) .portrait-placeholder { aspect-ratio: 4/5; object-fit: cover; width: 100%; background: var(--surface); margin-bottom: 25px }
:where(.medis-ui) .portrait-placeholder { display: grid; place-items: center; font-size: 4rem; color: #aec2c7 }
:where(.medis-ui) .doctor h2 { font-size: 1.5rem }
:where(.medis-ui) .prose { max-width: 850px; line-height: 1.9; overflow-wrap: anywhere }
:where(.medis-ui) .prose p, :where(.medis-ui) .prose h2, :where(.medis-ui) .prose h3, :where(.medis-ui) .prose table, :where(.medis-ui) .prose img, :where(.medis-ui) .prose blockquote { margin-block: 22px }
:where(.medis-ui) .prose img { max-width: 100%; height: auto }
:where(.medis-ui) .prose a { color: var(--brand); text-decoration: underline }
:where(.medis-ui) .prose table { display: block; overflow: auto }
:where(.medis-ui) .prose blockquote { border-left: 3px solid var(--brand); padding-left: 20px }
:where(.medis-ui) .prose .profile { max-width: 300px }
:where(.medis-ui) .lead { font-size: 1.65rem; line-height: 1.6; letter-spacing: -.035em }
:where(.medis-ui) .prewrap { white-space: pre-wrap }
:where(.medis-ui) .empty { padding: 35px; text-align: center; background: var(--surface); color: var(--muted) }
:where(.medis-ui) .pagination { display: flex; justify-content: center; gap: 12px; margin-top: 25px }
:where(.medis-ui) .pagination a { padding: 8px 14px; border: 1px solid var(--line) }
:where(.medis-ui) .pagination [aria-current] { background: var(--brand); color: white }
:where(.medis-ui) .badge { display: inline-block; padding: 3px 10px; background: #e7f2ef; color: var(--brand); font-size: .8rem; border-radius: 5px }
:where(.medis-ui) .badge.cancelled { background: #f6e7e9; color: #963845 }
:where(.medis-ui) .social-login { display: flex; flex-direction: column; gap: 10px; text-align: center; margin-top: 20px }
:where(.medis-ui) .naver { background: #03c75a !important; color: #fff !important }
:where(.medis-ui) .kakao { background: #fee500 !important; color: #251f06 !important }
:where(.medis-ui) .skip-link { position: absolute; top: -70px; left: 15px; background: #fff; padding: 15px; z-index: 100 }
:where(.medis-ui) .skip-link:focus { top: 10px }
:where(.medis-ui) .honeypot { position: absolute; left: -9999px }
:where(.medis-ui) .section-banner { padding-bottom: 35px }
:where(.medis-ui) .popup-stack { position: fixed; right: 24px; bottom: 24px; z-index: 20; max-height: 85vh; overflow: auto; display: flex; gap: 15px; align-items: end }
:where(.medis-ui) .hospital-popup { max-width: 360px; background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 50px #142d3830; padding: 22px; border-radius: 10px }
:where(.medis-ui) .popup-slide { animation: slide-in .3s ease-out }
:where(.medis-ui) .popup-actions { display: flex; justify-content: space-between; gap: 12px }
:where(.medis-ui) .popup-actions button { font-size: .8rem; padding: 8px 12px }
:where(.medis-ui) .analytics-consent { position: fixed; bottom: 20px; left: 20px; background: #fff; border: 1px solid var(--line); box-shadow: 0 5px 25px #1232; padding: 20px; max-width: 360px; z-index: 30 }
:where(.medis-ui) .analytics-consent button { margin: 10px 5px 0 0; padding: 8px 14px }
:where(.medis-ui) .cookie-settings { position: fixed; bottom: 4px; left: 5px; font-size: .75rem; padding: 5px 10px; z-index: 10 }
:where(.medis-ui) .device-mobile { display: none }
@keyframes slide-in {
    from { transform: translateY(30px); opacity: 0 }
    to { transform: none; opacity: 1 }
}
@media(max-width:1100px) {
    :where(.medis-ui) #site-nav { gap: 15px }
    :where(.medis-ui) .header-actions>a:not(.button) { display: none }
    :where(.medis-ui) .header-inner { gap: 20px }
    :where(.medis-ui) .hero-grid { gap: 50px }
}
@media(max-width:800px) {
    .medis-ui.container, :where(.medis-ui) .container { width: calc(100% - 36px) }
    .medis-ui.section, :where(.medis-ui) .section { padding-block: 45px }
    :where(.medis-ui) .header-inner { min-height: 76px; flex-wrap: wrap }
    :where(.medis-ui) .site-brand { font-size: 1.2rem }
    :where(.medis-ui) .menu-toggle { display: block; margin-left: auto; background: transparent; color: var(--ink); padding: 7px 12px; border-color: var(--line) }
    :where(.medis-ui) #site-nav { display: none; order: 4; width: 100%; flex-direction: column; align-items: stretch; gap: 0; margin: 0 }
    :where(.medis-ui) #site-nav.open { display: flex }
    :where(.medis-ui) .nav-group { padding: 8px 0 }
    :where(.medis-ui) .submenu { position: static; display: block; box-shadow: none; padding: 0 15px }
    :where(.medis-ui) .submenu a { font-size: .85rem }
    :where(.medis-ui) .header-actions { display: none }
    :where(.medis-ui) .hero-grid { grid-template-columns: 1fr; gap: 40px; padding-block: 50px }
    :where(.medis-ui) .home-hero h1 { font-size: 3rem }
    :where(.medis-ui) .visit-card { max-width: none; padding: 25px }
    :where(.medis-ui) .visit-card h2 { font-size: 1.5rem }
    :where(.medis-ui) .visit-card h2 br { display: none }
    :where(.medis-ui) .hero-actions { gap: 18px; flex-wrap: wrap }
    :where(.medis-ui) .guide-grid, :where(.medis-ui) .news-section, :where(.medis-ui) .form-layout, :where(.medis-ui) .cards, :where(.medis-ui) .about-intro { grid-template-columns: 1fr; gap: 20px }
    :where(.medis-ui) .guide-grid>*+* { border-left: 0 }
    :where(.medis-ui) .guide-grid>a { padding-inline: 10px }
    :where(.medis-ui) .hours-band>.container { align-items: start; flex-direction: column }
    :where(.medis-ui) .footer-grid { grid-template-columns: 1fr }
    :where(.medis-ui) .footer-grid>div:last-child { flex-wrap: wrap }
    :where(.medis-ui) .form-grid { grid-template-columns: 1fr }
    :where(.medis-ui) .panel { padding: 22px }
    :where(.medis-ui) .toolbar { flex-wrap: wrap }
    :where(.medis-ui) .article-list>a { flex-wrap: wrap; gap: 10px }
    :where(.medis-ui) .popup-stack { left: 15px; right: 15px; bottom: 15px; flex-direction: column }
    :where(.medis-ui) .hospital-popup { max-width: 100%; width: 100% }
    :where(.medis-ui) .device-desktop { display: none }
    :where(.medis-ui) .device-mobile { display: block }
    :where(.medis-ui) .form-layout { gap: 25px }
    :where(.medis-ui) h2 { font-size: 1.5rem }
}

/* Common publishing components: edit freely without changing request handlers. */
:where(.medis-ui) .quick-contact { position: fixed; right: 24px; bottom: 24px; z-index: 12; display: flex; align-items: center; background: #fff; border: 1px solid var(--line); box-shadow: 0 8px 30px #142d3820; border-radius: 12px; overflow: hidden }
:where(.medis-ui) .quick-contact a, :where(.medis-ui) .quick-contact button { padding: 14px 18px; font-size: .9rem; min-height: 48px }
:where(.medis-ui) .quick-contact button { border-radius: 0 }
:where(.medis-ui) .popup-stack { bottom: 90px }
:where(.medis-ui) #quick-contact-dialog { width: min(700px, calc(100% - 28px)); max-height: calc(100dvh - 40px); overflow: auto; border: 0; border-radius: 16px; padding: 28px; color: var(--ink) }
:where(.medis-ui) #quick-contact-dialog::backdrop { background: #0d223c99 }
:where(.medis-ui) .dialog-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 24px }
:where(.medis-ui) .dialog-heading h2 { font-size: 1.5rem }
:where(.medis-ui) .dialog-heading button { padding: 8px 16px }
:where(.medis-ui) #quick-contact-dialog .form-layout { display: block }
:where(.medis-ui) #quick-contact-dialog .form-layout aside { display: none }
:where(.medis-ui) #quick-contact-dialog .panel { padding: 0; border: 0; margin: 0 }
:where(.medis-ui) .submenu-toggle { padding: 4px 8px; min-height: 32px; margin-left: 4px; background: transparent; border: 0; color: var(--ink); font-size: .85rem }
:where(.medis-ui) .submenu .nav-group { padding: 0 }
:where(.medis-ui) .submenu .submenu { left: 100%; top: 0 }
:where(.medis-ui) .nav-group>.submenu { display: none }
:where(.medis-ui) .nav-group:hover>.submenu, :where(.medis-ui) .nav-group:focus-within>.submenu, :where(.medis-ui) .nav-group.expanded>.submenu { display: block }
:where(.medis-ui) .site-footer { padding-bottom: 80px }
@media(max-width:800px) {
    :where(.medis-ui) .quick-contact { left: 12px; right: 12px; bottom: 12px; justify-content: space-around }
    :where(.medis-ui) .quick-contact a, :where(.medis-ui) .quick-contact button { flex: 1; justify-content: center; text-align: center; padding: 12px 8px }
    :where(.medis-ui) .submenu .submenu { position: static }
    :where(.medis-ui) .nav-group>.submenu { display: none }
    :where(.medis-ui) .nav-group:hover>.submenu, :where(.medis-ui) .nav-group:focus-within>.submenu { display: none }
    :where(.medis-ui) .nav-group.expanded>.submenu { display: block }
    :where(.medis-ui) .submenu-toggle { float: right; min-width: 44px; min-height: 44px }
    :where(.medis-ui) .nav-group>a { display: inline-block; min-height: 44px; padding-top: 8px }
    :where(.medis-ui) #quick-contact-dialog { padding: 22px }
    :where(.medis-ui) .analytics-consent { bottom: 80px; left: 12px; right: 12px }
    :where(.medis-ui) .popup-stack { bottom: 80px; max-height: 70dvh }
    :where(.medis-ui) .cookie-settings { bottom: 72px }
}
:where(.medis-ui) .slide-controls { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 15px 0 }
:where(.medis-ui) .slide-controls button { min-width: 44px; min-height: 44px; padding: 8px }
:where(.medis-ui) .slide-controls span { font-size: .875rem }
:where(.medis-ui) .tour-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px }
:where(.medis-ui) .tour-card { border: 1px solid var(--line); border-radius: 12px; overflow: hidden }
:where(.medis-ui) .tour-card img { width: 100%; aspect-ratio: 3/2; object-fit: cover }
:where(.medis-ui) .tour-card figcaption { padding: 24px }
:where(.medis-ui) .tour-card h2 { font-size: 1.35rem; margin: 8px 0 }
:where(.medis-ui) .tour-card p { color: var(--muted) }
@media(max-width:700px) {
    :where(.medis-ui) .tour-grid { grid-template-columns: 1fr }
}

/* Stable slide viewport; only long content scrolls inside the popup. */
:where(.medis-ui) .popup-slide { height: min(560px, calc(100dvh - 110px)); display: flex; flex-direction: column; overflow: hidden; }
:where(.medis-ui) .popup-slide[hidden] { display: none !important; }
:where(.medis-ui) .popup-slide>.prose { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; }
:where(.medis-ui) .popup-slide>.prose img { max-height: 350px; width: 100%; object-fit: contain; }
:where(.medis-ui) .popup-slide .slide-controls, :where(.medis-ui) .popup-slide .popup-actions { flex-shrink: 0; }
:where(.medis-ui) .toolbar label { min-width: 0; white-space: nowrap; }

/* Each slide shares one footprint, regardless of image aspect ratio. */
:where(.medis-ui) .popup-slide { width: min(360px, calc(100vw - 32px)); flex: 0 0 auto; animation: none; }
:where(.medis-ui) .popup-slide .prose img { width: 100%; height: min(300px, calc(100dvh - 300px)); object-fit: contain; margin: 0; }

/* ===== 달력 ===== */
.medis-date-trigger { width: 100%; text-align: left; padding: 13px; border: 1px solid #dce0e6; background: #fff; color: #20252c; border-radius: 7px; font: inherit; }
.medis-calendar { width: min(360px, calc(100% - 32px)); margin: auto; padding: 20px; border: 1px solid #e3e6ed; border-radius: 15px; background: #fff; color: #222830; box-shadow: 0 24px 80px #18223533; }
.medis-calendar::backdrop { background: #18223540; }
.medis-calendar button { cursor: pointer; font: inherit; border: 0; border-radius: 7px; background: #f3f5f8; color: #333a44; min-height: 38px; padding: 6px; }
.medis-calendar-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.medis-calendar-heading button { width: 38px; }
.medis-calendar-week, .medis-calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.medis-calendar-week { font-size: 12px; color: #858b94; padding-bottom: 12px; }
.medis-calendar-days button { background: #fff; }
.medis-calendar-days button:hover { background: #edf4ff; }
.medis-calendar button:disabled { color: #bfc4cc; background: #fafbfc; cursor: default; }
.medis-calendar-days button[aria-pressed=true] { color: #fff; background: #1769e0; }
.medis-calendar-days button[data-today=true] { box-shadow: inset 0 0 0 1px #1769e0; }
.medis-calendar [role=status] { font-size: 12px; margin: 12px 0; color: #69727e; }
.medis-calendar-time { display: flex; gap: 12px; margin: 16px 0; }
.medis-calendar-time label { flex: 1; font-size: 12px; }
.medis-calendar-time input { width: 100%; padding: 10px; border: 1px solid #dce0e6; border-radius: 7px; }
.medis-calendar-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.medis-calendar-actions [data-apply] { background: #1769e0; color: #fff; padding: 8px 14px; }
.schedule-days { display: grid; gap: 12px; margin: 20px 0; }
.schedule-row { display: grid; grid-template-columns: repeat(7, minmax(80px, 1fr)); gap: 12px; padding: 16px; border: 1px solid #e3e6ed; border-radius: 8px; margin: 18px 0; }
.schedule-row label { font-size: 12px; display: grid; gap: 5px; }
@media(max-width:1100px) {
    .schedule-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ===== 유튜브·블로그 ===== */

/* Public feed skin: override --external-accent in a hospital's common.css. */
.external-feed,.external-grid { --external-accent:var(--site-accent); font-family:Pretendard,system-ui,sans-serif; }
.external-feed { padding:0 0 40px; }
.external-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.external-card { min-width:0; overflow:hidden; background:#fff; border:1px solid #e7ebf0; border-radius:18px; transition:border-color .18s,box-shadow .18s; }
.external-card:hover { border-color:var(--external-accent); box-shadow:0 8px 24px #243e5010; }
.external-card>a { display:block; height:100%; color:#172b46; text-decoration:none; }
.external-card>a:focus-visible { outline:3px solid var(--external-accent); outline-offset:-3px; border-radius:18px; }
.external-image { position:relative; aspect-ratio:16/9; background:#f1f5f8; display:grid; place-items:center; overflow:hidden; }
.external-image img { display:block; width:100%; height:100%; object-fit:cover; }
.external-short .external-image { aspect-ratio:4/5; }
.external-short .external-image img { object-fit:contain; }
.external-placeholder { font-size:22px; font-weight:700; letter-spacing:.16em; color:#7890a4; }
.external-play { position:absolute; display:grid; place-items:center; width:44px; height:44px; background:#152738b3; color:#fff; border-radius:50%; font-size:16px; }
.external-copy { padding:24px; }
.external-category { color:#51697b; font-size:11px; font-weight:600; letter-spacing:.08em; }
.external-category::before { content:''; display:inline-block; width:6px; height:6px; background:var(--external-accent); border-radius:50%; margin-right:7px; vertical-align:middle; }
.external-copy h2 { font-size:18px; line-height:1.55; letter-spacing:-.03em; font-weight:600; margin:10px 0 14px; overflow-wrap:anywhere; }
.external-copy p { font-size:14px; color:#66768a; line-height:1.7; margin:0 0 18px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.external-copy time { font-size:12px; color:#788799; }
.external-tabs { display:flex; gap:8px; margin:0 0 24px; flex-wrap:wrap; }
.external-tabs a,.external-pagination a { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; padding:10px 18px; min-height:42px; box-sizing:border-box; border:1px solid #e0e6ed; border-radius:9px; color:#58677a; background:#fff; font-size:14px; }
.external-tabs a[aria-current],.external-pagination a[aria-current] { background:var(--external-accent); border-color:var(--external-accent); color:#fff; font-weight:600; }
.external-tabs a:focus-visible,.external-pagination a:focus-visible { outline:2px solid var(--external-accent); outline-offset:3px; }
.external-pagination { display:flex; justify-content:center; gap:8px; margin-top:28px; }
.external-empty { padding:80px 24px; background:#fff; border:1px solid #e7ebf0; border-radius:18px; text-align:center; color:#6d7c90; font-size:15px; }
@media(max-width:1000px) {
    .external-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:18px }
}
@media(max-width:560px) {
    .external-grid { grid-template-columns:1fr;gap:16px }
    .external-copy { padding:20px }
}
@media(prefers-reduced-motion:reduce) {
    .external-card { transition:none }
}

/* ===== 예약·조회 ===== */

/* Shared public service controls. Hospital common.css can override these tokens. */
.service-page { --accent:var(--site-accent);   color:var(--ink); font-family:var(--font-sans); max-width:1120px; padding:64px 24px 80px; margin:0 auto; }
.service-page .page-heading { margin:0 0 36px; }
.service-page .page-heading .eyebrow { display:none; }
.service-page .page-heading h1 { font-size:32px; line-height:1.35; letter-spacing:-.04em; font-weight:650; margin:0; }
.service-page input,.service-page select,.service-page textarea { width:100%; box-sizing:border-box; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:9px; min-height:50px; padding:13px 15px; font:inherit; font-size:16px; transition:border-color .15s,box-shadow .15s; }
.service-page :is(input,select,textarea):focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px #1ea9dc18; }
.service-page input:user-invalid,.service-page textarea:user-invalid { border-color:#c93e48; }
.service-page .required { display:inline; color:#c93e48; margin-left:3px; }
.service-page :is(button,.button) { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px 22px; border:1px solid transparent; border-radius:9px; background:var(--accent); color:#fff; font:600 15px/1.4 var(--font-sans); text-decoration:none; cursor:pointer; transition:filter .15s; }
.service-page :is(button,.button):hover { filter:brightness(.95); }
.service-page :is(button,a):focus-visible { outline:3px solid var(--site-focus); outline-offset:3px; }
.service-page :is(button,.button).secondary { background:#fff; border-color:var(--line); color:var(--ink); }
.service-page button:disabled { cursor:wait; opacity:.55; }
.service-page .form-grid label { display:block; font-size:15px; font-weight:500; }
.service-page .form-grid label>input,.service-page .form-grid label>select,.service-page .form-grid label>textarea,.service-page .service-password { margin-top:10px; }
.service-page .form-grid { gap:24px; }
.service-password { display:flex; align-items:center; position:relative; }
.service-password input { padding-right:64px; }
.service-page .service-password button { position:absolute; right:5px; background:transparent; color:#5b6c80; font-size:13px; min-height:40px; padding:8px 10px; }
.lookup-page { max-width:520px; margin:56px auto; padding:38px; background:#fff; border:1px solid #edf0f4; border-radius:24px; box-shadow:0 12px 40px #172b4607; }
body:has(.lookup-page) { background:#f5f6f8; }
.lookup-page .page-heading h1 { font-size:27px; }
.lookup-page .panel { border:0; box-shadow:none; padding:0; margin:0 0 28px; background:transparent; }
.lookup-page .lookup-form { display:grid; grid-template-columns:1fr; max-width:none; margin:0; }
.lookup-page .lookup-form .full { grid-column:1; }
.lookup-page .panel:not(.lookup-form),.lookup-page .notice { padding:22px; background:#f5f8fa; border-radius:12px; line-height:1.8; overflow-wrap:anywhere; }
.lookup-page .panel h2,.lookup-page .notice h2 { font-size:18px; margin:0 0 12px; }
.lookup-page .panel h3 { font-size:15px; margin:20px 0 8px; }
.lookup-page .panel p { margin:12px 0; }
.lookup-page .danger { background:#fff; color:#ad3440; border-color:#e7c8cc; }
.medis-default-footer { padding:24px; border-top:1px solid #e7ebef; }
.medis-default-footer nav { display:flex; justify-content:center; flex-wrap:wrap; gap:8px 24px; }
.medis-default-footer a { color:#65748a; font:400 13px/1.6 var(--font-sans); text-decoration:none; padding:8px 0; }
@media(max-width:600px) {
    .service-page { padding:32px 20px 48px; }
    .service-page .page-heading h1 { font-size:26px }
    .lookup-page { margin:24px 16px; padding:28px 22px; max-width:none; border-radius:20px }
}
@media(prefers-reduced-motion:reduce) {
    .service-page * { transition:none }
}
.medis-ui.service-page.section { padding-block:64px 80px; }
.medis-ui.lookup-page.section { padding-block:38px; width:calc(100% - 32px); }
.service-page .service-error { padding:14px 16px; margin:0 0 24px; color:#a62e3b; border:1px solid #efcbd0; background:#fff7f8; border-radius:9px; font-size:14px; }
@media(max-width:600px) {
    .medis-ui.service-page.section { padding-block:32px 48px }
    .medis-ui.lookup-page.section { padding-block:28px }
}


/* ===== 팝업·슬라이드 ===== */
.popup-stack { position:fixed;inset:0;z-index:1100;background:rgb(17 23 29 / .64);font-family:var(--font-sans),sans-serif;color:#263238 }
.popup-stack [hidden],.popup-stack[hidden] { display:none!important }
.popup-stack * { box-sizing:border-box }
.popup-stack .hospital-popup { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(var(--popup-width,360px),calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:0;padding:0;border:0;display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 16px 60px #0002;overflow:hidden }
.popup-stack .popup-content { min-height:0;overflow:auto;overscroll-behavior:contain;height:var(--popup-height,auto);margin:0;padding:0;background:#fff }
.popup-stack .popup-content>a { display:block }
.popup-stack .popup-content img { display:block;width:100%;height:auto;margin:0;max-width:100%;object-fit:contain }
.popup-stack .popup-content.has-height img { height:var(--popup-height);max-height:calc(100dvh - 160px) }
.popup-stack .popup-copy { padding:32px 28px;font-size:16px;line-height:1.8;overflow-wrap:anywhere }
.popup-stack .popup-copy h2 { font-size:25px;line-height:1.35;margin:0 0 24px;font-weight:700 }
.popup-stack button { font:500 14px/1.4 var(--font-sans),sans-serif;cursor:pointer;border:0;border-radius:0;margin:0;box-shadow:none }
.popup-stack button:focus-visible,.popup-stack a:focus-visible,.popup-stack input:focus-visible { outline:3px solid var(--site-accent);outline-offset:-3px }
.popup-stack .popup-actions { display:grid;grid-template-columns:1fr 1fr;flex-shrink:0;background:white;padding:0;border-top:1px solid #e9e9e9;margin:0 }
.popup-stack .popup-actions button { min-height:50px;padding:12px;background:white;color:#555 }
.popup-stack .popup-actions button+button { border-left:1px solid #ddd }
.popup-stack .popup-actions button:hover { background:#f6f7f8 }
.popup-stack .popup-carousel { width:min(var(--popup-width,1100px),calc(100vw - 48px));background:transparent;overflow:visible;border-radius:0;box-shadow:none }
.popup-stack .popup-carousel .popup-frame { border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:0;background:#fff;box-shadow:0 20px 80px #0002 }
.popup-stack .popup-topbar { display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-shrink:0;padding:0 0 12px;color:#fff }
.popup-stack .popup-topbar label { display:inline-flex;gap:8px;align-items:center;font-size:14px;cursor:pointer }
.popup-stack .popup-topbar input { width:17px;height:17px;margin:0;accent-color:var(--site-accent) }
.popup-stack .popup-topbar button { background:transparent;color:white;min-height:36px;padding:6px 8px }
.popup-stack .popup-topbar .popup-close { border-radius:50%;background:#fff;color:#555;width:36px;height:36px;padding:0;font-size:26px;line-height:1 }
.popup-stack .popup-tabs { display:flex;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b8c4ca #f5f6f7;flex-shrink:0;background:white;border-top:1px solid #e5e7e9 }
.popup-stack .popup-tabs button { flex:1 0 calc(100% / var(--tab-count,4));min-width:0;min-height:60px;padding:14px 18px;background:white;color:#444;border-right:1px solid #ddd;overflow-wrap:anywhere }
.popup-stack .popup-tabs button[aria-selected=true] { background:var(--site-accent);color:white;font-weight:650 }
.popup-stack .popup-tabs button:last-child { border-right:0 }
.popup-stack .popup-tabs button:hover:not([aria-selected=true]) { background:#f2f5f7 }
.popup-stack .popup-carousel .popup-content { max-height:calc(100dvh - 172px) }
@media(max-width:600px) {
    .popup-stack .popup-carousel { width:calc(100vw - 24px) }
    .popup-stack .popup-tabs button { flex-basis:50%;padding:12px;min-height:56px;font-size:13px }
    .popup-stack .popup-copy { padding:28px 22px }
    .popup-stack .popup-topbar { gap:10px }
    .popup-stack .popup-topbar label { font-size:13px }
}
@media(prefers-reduced-motion:no-preference) {
    .popup-stack button { transition:background .16s,color .16s }
}
.popup-stack .popup-copy:has(>img:only-child) { padding:0 }
.popup-stack .hospital-popup:focus { outline:none }
.popup-stack { display:block;max-width:none;max-height:none;width:auto;height:auto;padding:0;margin:0;overflow:hidden;pointer-events:auto }
.popup-stack .hospital-popup { max-width:calc(100vw - 32px) }
.popup-stack .popup-actions { gap:0 }

/* ===== 회원 화면 (독립 레이어 / .member-body 범위) ===== */
.member-body { font-family: var(--font-body); color: #202632; background: #f5f6f8; font-synthesis: none; --member-accent:var(--site-accent); }
.member-body * { box-sizing: border-box }
.member-body { margin: 0; font-size: 16px; line-height: 1.55 }
.member-body button, .member-body input { font: inherit }
.member-body a { color: inherit; text-decoration: none }
.member-body button, .member-body a, .member-body input { -webkit-tap-highlight-color: transparent }
.member-body button { cursor: pointer }
.member-body [hidden] { display: none !important }
.member-body { min-height: 100dvh; padding: 40px 20px; display: grid; place-items: start center }
.member-body .member-card { width: min(520px, 100%); background: #fff; border-radius: 24px; box-shadow: 0 12px 44px #20263209; overflow: hidden }
.member-body .member-top { display: flex; justify-content: space-between; align-items: center; padding: 18px 26px; border-bottom: 1px solid #edf0f4; position: sticky; top: 0; background: #fff; z-index: 2 }
.member-body .member-top>span { font-size: 12px; color: #6e7b8f; letter-spacing: .5px }
.member-body .member-close { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #f5f6f8; font-size: 26px; color: #6e7b8f }
.member-body .member-content { padding: 32px 38px 38px }
.member-body .member-content h1 { font-size: 26px; line-height: 1.3; font-weight: 650; margin: 0 0 30px; letter-spacing: -.6px }
.member-body .member-content p { margin: 0 0 22px }
.member-body .member-field { margin-top: 22px }
.member-body .member-field:first-child { margin-top: 0 }
.member-body .member-field label { display: block; font-size: 15px; font-weight: 550; margin-bottom: 8px }
.member-body .required { color: #ce3b42; margin-left: 6px }
.member-body .member-field small { font-weight: 400 }
.member-body .member-input { position: relative; display: flex; gap: 8px }
.member-body .member-input input { min-width: 0; width: 100%; height: 50px; border: 1px solid #d5dce5; border-radius: 8px; background: #fff; color: #202632; padding: 0 13px; transition: border-color .16s, box-shadow .16s }
.member-body .member-input:has(.visibility) input { padding-right: 46px }
.member-body .member-input input:focus { outline: none; border-color: var(--member-accent); box-shadow: 0 0 0 3px var(--site-accent-soft) }
.member-body .member-input input[aria-invalid=true] { border-color: #ce3b42 }
.member-body .field-feedback { display: block; font-size: 13px; color: #ce3b42; margin-top: 5px }
.member-body .field-feedback:empty { display: none }
.member-body .field-feedback.success { color: #36677a }
.member-body .member-content .member-hint { font-size: 13px; color: #758195; margin: 5px 0 0 }
.member-body .visibility { position: absolute; right: 5px; top: 3px; height: 44px; width: 40px; background: none; border: 0; color: #7b8799 }
.member-body .visibility svg { width: 20px; height: 20px; stroke-width: 1.5 }
.member-body .member-primary { display: flex; justify-content: center; align-items: center; gap: 8px; width: 100%; min-height: 50px; padding: 12px 16px; border-radius: 8px; background: var(--member-accent); border: 1px solid var(--member-accent); color: #fff !important; font-size: 15px; font-weight: 650; margin-top: 24px; transition: filter .16s }
.member-body .member-primary:hover { filter: brightness(.92) }
.member-body .member-primary:disabled { opacity: .55; cursor: wait }
.member-body .member-input .duplicate { width: auto; flex-shrink: 0; margin: 0; font-size: 14px; padding: 0 17px }
.member-body .member-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 15px; margin-top: 25px; font-size: 13px; color: #677489 }
.member-body .member-links a:hover { text-decoration: underline }
.member-body .member-social { display: flex; gap: 8px; margin-top: 30px }
.member-body .member-social a { flex: 1; min-height: 48px; display: flex; justify-content: center; align-items: center; gap: 7px; border: 1px solid #dde3ec; border-radius: 8px; font-size: 14px }
.member-body .member-social a:hover { background: #f8fafc }
.member-body .member-steps { list-style: none; padding: 0; margin: 0 0 30px; display: flex; justify-content: space-between; gap: 8px }
.member-body .member-steps li { display: flex; gap: 7px; align-items: center; color: #8a96a8; font-size: 12px }
.member-body .member-steps b { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid #dce2e9; border-radius: 50%; font-weight: 550 }
.member-body .member-steps [aria-current] { color: #25324a }
.member-body .member-steps [aria-current] b, .member-body .member-steps .complete b { background: var(--member-accent); border-color: var(--member-accent); color: #fff }
.member-body .agree-all, .member-body .agree-row { padding: 18px 0; border-bottom: 1px solid #e9edf2; font-size: 15px }
.member-body .agree-all label, .member-body .agree-row label { display: flex; align-items: center; gap: 8px }
.member-body .agree-all { font-weight: 550 }
.member-body .agree-row { display: flex; justify-content: space-between; gap: 10px }
.member-body .agree-row a { font-size: 13px; color: #758195; white-space: nowrap }
.member-body input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--member-accent); margin: 0; flex-shrink: 0 }
.member-body .member-back { display: block; margin: 20px auto 0; padding: 8px; background: none; border: 0; color: #6e7b8f; font-size: 14px }
.member-body .member-policy { max-height: 65dvh; overflow: auto; scrollbar-gutter: stable; font-size: 15px; line-height: 1.9; white-space: normal; overflow-wrap: anywhere }
.member-body .member-error, .member-body .member-content .flash { border: 1px solid #e4e8ee; border-radius: 8px; padding: 12px; font-size: 14px }
.member-body .member-error { color: #ad2c34 }
.member-body .member-confirm { width: min(420px, calc(100% - 32px)); border: 0; border-radius: 20px; padding: 28px; color: #202632 }
.member-body .member-confirm::backdrop { background: #17203366 }
.member-body .member-confirm h2 { font-size: 22px; margin: 0 0 16px }
.member-body .member-confirm>div { display: flex; gap: 10px }
.member-body .member-confirm button { flex: 1; min-height: 50px; font-size: 15px; font-weight: 600; border: 1px solid #dce2ea; border-radius: 8px; padding: 10px; background: #f7f8fa }
.member-body .member-confirm .member-primary { background: var(--member-accent); margin: 0 }
.member-body :focus-visible { outline: 3px solid var(--site-focus); outline-offset: 3px }
.member-body .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%) }
@media(max-width:560px) {
    .member-body { padding: 0; background: #fff }
    .member-body .member-card { border-radius: 0; box-shadow: none; min-height: 100dvh }
    .member-body .member-content { padding: 28px 24px }
    .member-body .member-social { gap: 6px }
    .member-body .member-social a { font-size: 13px }
}
.member-body .member-embedded { padding: 0; display: block; background: #fff }
.member-body .member-embedded .member-card { width: 100%; box-shadow: none; border-radius: 0; min-height: 100dvh }
.member-body .member-steps [aria-current] b, .member-body .member-steps .complete b { color: #fff !important }
@media(prefers-reduced-motion:reduce) {
    .member-body * { transition: none !important }
}
.member-body .member-form input[type=checkbox] { appearance: none; display: inline-grid; place-content: center; border: 1px solid #b8c2cf; border-radius: 4px; background: #fff }
.member-body .member-form input[type=checkbox]:checked, .member-body .member-form input[type=checkbox]:indeterminate { border-color: var(--member-accent); background: var(--member-accent) }
.member-body .member-form input[type=checkbox]:checked::after { content: ""; width: 8px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: translateY(-1px) rotate(-45deg) }
.member-body .member-form input[type=checkbox]:indeterminate::after { content: ""; width: 8px; height: 2px; background: #fff }
.member-body .member-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 28px; }
.member-body .member-steps li { position:relative; padding:14px 0 0; gap:6px; font-size:12px; font-weight:500; color:#7b8798; border-top:3px solid #e8edf2; }
.member-body .member-steps li[aria-current] { border-color:var(--member-accent); color:#172b46; font-weight:700; }
.member-body .member-steps li.complete { border-color:var(--member-accent); color:#526477; }
.member-body .member-steps b { width:22px; height:22px; flex:0 0 22px; border:0; border-radius:6px; background:#f0f3f6; color:#718094; font-size:11px; }
.member-body .member-steps [aria-current] b, .member-body .member-steps .complete b { background:var(--member-accent); color:#fff; }
.member-body .member-signin-prompt { margin:10px 0 0; }
.member-body .member-signin-prompt a { display:flex; align-items:center; justify-content:center; width:100%; min-height:50px; box-sizing:border-box; padding:12px 16px; border:1px solid #dce3eb; border-radius:8px; background:#fff; color:#30445e; font-size:15px; font-weight:600; line-height:1.5; text-decoration:none; transition:background .15s,border-color .15s; }
.member-body .member-signin-prompt a:hover { background:#f5f7fa; border-color:#aebccc; }
.member-body .member-signin-prompt a:focus-visible { outline:2px solid var(--member-accent); outline-offset:3px; }
.member-body button.member-back[data-join-back] { display:block; width:100%; min-height:50px; margin:10px 0 0; padding:10px 16px; border:1px solid #dce3eb; border-radius:8px; background:#fff; color:#43536a; font:inherit; font-size:15px; font-weight:600; cursor:pointer; }
.member-body button.member-back[data-join-back]:hover { background:#f5f7fa; }
.member-body button.member-back[data-join-back][hidden] { display:none; }
@media(max-width:380px) {
    .member-body .member-steps { gap:6px }
    .member-body .member-steps li { gap:4px;font-size:11px }
}


/* 푸터 */
.footer { position:relative; width:100%; background:#6c4f3f; overflow:hidden; color:#fff; }

.footer-top { padding:116px 0 50px; border-bottom:1px solid rgba(255,255,255,.15); }
.footer-top-inner { width:90%; max-width:1610px; margin:0 auto; display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.footer-info { width:100%; display:flex; flex-direction:column; gap:10px; }
.footer-info p { display:flex; align-items:center; gap:8px; margin:0; font-size:17px; font-weight:500; color:#dcdad2; line-height:1.4; }

.footer-hours { display:flex; align-items:flex-start; gap:14px; }
.footer-hours .hours-icon { display:flex; align-items:center; height:22px; }
.footer-hours .hours-icon img { width:22px; height:22px; }
.hours-list { margin:0; display:flex; flex-direction:column; gap:10px; }
.hours-row { display:flex; gap:24px; }
.hours-row dt { width:85px; font-size:17px; font-weight:500; color:#dcdad2; line-height:1; }
.hours-row dd { margin:0; font-size:17px; font-weight:500; color:#dcdad2; line-height:1; }

.footer-sns { display:flex; align-items:center; gap:12px; }
.sns-link { width:98px; height:98px; }
.sns-link img { width:100%; display:block; }

.footer-bottom { padding:40px 0 90px; }
.footer-bottom-inner { width:90%; max-width:1610px; margin:0 auto; display:flex; justify-content:space-between; gap:60px; flex-wrap:wrap; }
.footer-left { flex:1; min-width:280px; }
.footer-logo { margin-top:28px; }

.footer-links { list-style:none; display:flex; flex-direction:column; gap:10px; padding:0; margin:14px 0 28px; }
.footer-links a { text-decoration:none; font-size:16px; font-weight:500; color:#dcdad2; line-height:100%; }
.footer-links a:hover { color:#fff; text-decoration:underline; }
.footer-biz { margin:0; font-size:16px; font-weight:500; color:#dcdad2; line-height:100%; }
.footer-biz .bar { margin:0 10px; font-size:10px; }

.footer-right { width:400px; max-width:100%; flex-shrink:0; display:flex; flex-direction:column; align-items:flex-end; gap:16px; }
.footer-map { width:100%; height:200px; border-radius:8px; overflow:hidden; }
.map-buttons { display:flex; gap:10px; width:100%; }
.map-btn { flex:1; display:flex; align-items:center; justify-content:center; gap:6px; height:36px; background-color:#fff; font-size:13px; font-weight:500; color:#32302e; border-radius:8px; text-decoration:none; white-space:nowrap; }
.map-btn img { width:14px; height:14px; }
.map-btn:hover { background-color:#f1ece6; }
.footer-copyright { margin:8px 0 0; font-size:15px; color:#dcdad2; }

.footer-map .root_daum_roughmap { width:100% !important; height:100% !important; padding:0 !important; border:0 !important; }
.footer-map .root_daum_roughmap .wrap_map { height:calc(100% - 32px) !important; }
.footer-map .root_daum_roughmap .wrap_controllers { display:none !important; }
.footer-map .root_daum_roughmap .wrap_map { height:100% !important; }

/* 반응형 */
@media (max-width:1200px) {
    .footer-top-inner { flex-direction:column; align-items:flex-start; gap:28px; }
    .footer-bottom-inner { flex-direction:column; }
    .footer-right { width:100%; align-items:stretch; }
}

@media (max-width:900px) {
    .footer-top { padding:50px 0 30px; }
    .footer-top-inner { gap:14px; }
    .footer-info p { align-items:flex-start; }
    .hours-row dt { width:66px; font-size:15px; }
    .hours-row dd { font-size:15px; }
    .footer-bottom-inner { gap:20px; }
    .footer-sns { gap:8px; }
    .sns-link { width:58px; height:58px; }
    .footer-logo { margin-top:0; }
    .footer-links { gap:1px; margin:14px 0 18px; }
    .footer-map { height:140px; }
}







/* 이하 공통 운영 요소. 예약·팝업 등 기능의 디자인도 이 파일에서 수정합니다. */

/* ===== 기본 기능 화면 ===== */
/* MEDIS functional screens only. Hospital layout belongs in common/main/sub.css. */ .medis-ui {       --radius: 14px; --container: 1200px; font-family: var(--font-body, system-ui, sans-serif); color: var(--ink); line-height: 1.7; font-size: 16px }
.medis-ui { background: #fff }
.medis-ui.container, :where(.medis-ui) .container { width: min(var(--container), calc(100% - 64px)); margin-inline: auto }
:where(.medis-ui) .narrow { max-width: 650px; margin-inline: auto }
.medis-ui.section, :where(.medis-ui) .section { padding-block: 76px }
:where(.medis-ui) .section p+*, :where(.medis-ui) .section h2+*, :where(.medis-ui) .section h3+* { margin-top: 16px }
:where(.medis-ui) h1, :where(.medis-ui) h2, :where(.medis-ui) h3 { line-height: 1.35; letter-spacing: -.04em }
:where(.medis-ui) h1 { font-size: clamp(2.2rem, 4vw, 3.5rem) }
:where(.medis-ui) h2 { font-size: 1.85rem }
:where(.medis-ui) h3 { font-size: 1.3rem }
:where(.medis-ui) p { word-break: keep-all; overflow-wrap: anywhere }
:where(.medis-ui) .eyebrow { font-size: .75rem; letter-spacing: .16em; font-weight: 700; color: var(--brand); margin-bottom: 16px }
:where(.medis-ui) .muted, :where(.medis-ui) small { color: var(--muted) }
:where(.medis-ui) small { font-size: .85rem }
:where(.medis-ui) .button, :where(.medis-ui) button { display: inline-flex; align-items: center; justify-content: center; gap: 32px; border: 1px solid var(--brand); border-radius: 6px; background: var(--brand); color: white; padding: 13px 23px; font-weight: 650; line-height: 1.4 }
:where(.medis-ui) .button:hover, :where(.medis-ui) button:hover { background: var(--brand-dark) }
:where(.medis-ui) .button.secondary, :where(.medis-ui) button.secondary { background: #fff; color: var(--ink); border-color: var(--line) }
:where(.medis-ui) .button.small { padding: 10px 17px; font-size: .875rem }
:where(.medis-ui) .danger { background: #a43243; border-color: #a43243 }
:where(.medis-ui) .site-header { border-bottom: 1px solid var(--line); background: #fff; position: relative; z-index: 5 }
:where(.medis-ui) .header-inner { min-height: 100px; display: flex; align-items: center; gap: 38px }
:where(.medis-ui) .site-brand { display: flex; align-items: center; gap: 10px; font-size: 1.4rem; font-weight: 750; white-space: nowrap }
:where(.medis-ui) .logo-symbol { font-size: 2rem; line-height: 1; color: var(--brand); font-weight: 400 }
:where(.medis-ui) #site-nav { display: flex; gap: 25px; align-items: center; margin-left: auto; font-weight: 600; font-size: .94rem }
:where(.medis-ui) .header-actions { display: flex; gap: 15px; align-items: center; font-size: .8rem }
:where(.medis-ui) .nav-group { position: relative; padding-block: 20px }
:where(.medis-ui) .submenu { display: none; position: absolute; top: 100%; left: 0; min-width: 190px; background: #fff; box-shadow: 0 8px 25px #10203020; padding: 16px }
:where(.medis-ui) .submenu a { display: block; padding: 8px }
:where(.medis-ui) .nav-group:hover .submenu, :where(.medis-ui) .nav-group:focus-within .submenu { display: block }
:where(.medis-ui) .menu-toggle { display: none }
:where(.medis-ui) .text-link { font-size: .94rem; font-weight: 600 }
:where(.medis-ui) .section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 30px }
:where(.medis-ui) .article-list { border-top: 1px solid var(--line) }
:where(.medis-ui) .article-list>a { display: flex; gap: 25px; align-items: center; padding: 24px 4px; border-bottom: 1px solid var(--line) }
:where(.medis-ui) .article-list strong { font-weight: 600; flex: 1 }
:where(.medis-ui) .article-list time { color: var(--muted); font-size: .85rem }
:where(.medis-ui) .article-list span { color: var(--brand); font-size: .8rem }
:where(.medis-ui) .site-footer { background: #132c35; color: #d5e1e4; padding-top: 44px }
:where(.medis-ui) .footer-grid { display: grid; grid-template-columns: 1fr auto; gap: 30px }
:where(.medis-ui) .footer-grid p { font-size: .84rem; margin-top: 10px; color: #9fb4bc }
:where(.medis-ui) .footer-grid>div:last-child { display: flex; gap: 24px; font-size: .85rem }
:where(.medis-ui) .footer-bottom { font-size: .75rem; color: #8da5ad; border-top: 1px solid #ffffff20; margin-top: 30px; padding-block: 20px }
:where(.medis-ui) .form-layout { display: grid; grid-template-columns: 1fr 1.8fr; gap: 60px }
:where(.medis-ui) .form-layout aside p { color: var(--muted); margin-block: 20px }
:where(.medis-ui) .form-layout aside a { color: var(--brand); font-weight: 600 }
:where(.medis-ui) .panel { background: #fff; border: 1px solid var(--line); padding: 30px; border-radius: var(--radius); margin-bottom: 20px }
:where(.medis-ui) .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px }
:where(.medis-ui) .form-grid label { display: flex; flex-direction: column; gap: 8px; font-size: .94rem }
:where(.medis-ui) .full { grid-column: 1/-1 }
:where(.medis-ui) input, :where(.medis-ui) textarea, :where(.medis-ui) select { width: 100%; min-height: 46px; border: 1px solid #cbd7db; border-radius: 5px; background: #fff; padding: 11px 13px; color: var(--ink) }
:where(.medis-ui) input[type=checkbox] { width: 18px; min-height: 18px; accent-color: var(--brand); flex-shrink: 0 }
:where(.medis-ui) .form-grid .check { display: flex; flex-direction: row; align-items: center; gap: 10px }
:where(.medis-ui) .check a { text-decoration: underline }
:where(.medis-ui) .notice { padding: 25px; background: #e8f4f1; border: 1px solid #afd9cf; border-radius: 10px; margin-bottom: 25px }
:where(.medis-ui) .notice h2 { font-size: 1.5rem }
:where(.medis-ui) .table-wrap { overflow-x: auto }
:where(.medis-ui) th, :where(.medis-ui) td { padding: 17px; text-align: left; border-bottom: 1px solid var(--line) }
:where(.medis-ui) th { background: var(--surface); font-size: .9rem }
:where(.medis-ui) td { font-size: .94rem }
:where(.medis-ui) .toolbar { display: flex; gap: 12px; align-items: end; margin-bottom: 25px }
:where(.medis-ui) .toolbar label { display: flex; align-items: center; gap: 15px }
:where(.medis-ui) .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px }
:where(.medis-ui) .card { padding: 25px; border: 1px solid var(--line); border-radius: 10px }
:where(.medis-ui) .doctor img, :where(.medis-ui) .portrait-placeholder { aspect-ratio: 4/5; object-fit: cover; width: 100%; background: var(--surface); margin-bottom: 25px }
:where(.medis-ui) .portrait-placeholder { display: grid; place-items: center; font-size: 4rem; color: #aec2c7 }
:where(.medis-ui) .doctor h2 { font-size: 1.5rem }
:where(.medis-ui) .prose { max-width: 850px; line-height: 1.9; overflow-wrap: anywhere }
:where(.medis-ui) .prose p, :where(.medis-ui) .prose h2, :where(.medis-ui) .prose h3, :where(.medis-ui) .prose table, :where(.medis-ui) .prose img, :where(.medis-ui) .prose blockquote { margin-block: 22px }
:where(.medis-ui) .prose img { max-width: 100%; height: auto }
:where(.medis-ui) .prose a { color: var(--brand); text-decoration: underline }
:where(.medis-ui) .prose table { display: block; overflow: auto }
:where(.medis-ui) .prose blockquote { border-left: 3px solid var(--brand); padding-left: 20px }
:where(.medis-ui) .prose .profile { max-width: 300px }
:where(.medis-ui) .lead { font-size: 1.65rem; line-height: 1.6; letter-spacing: -.035em }
:where(.medis-ui) .prewrap { white-space: pre-wrap }
:where(.medis-ui) .empty { padding: 35px; text-align: center; background: var(--surface); color: var(--muted) }
:where(.medis-ui) .pagination { display: flex; justify-content: center; gap: 12px; margin-top: 25px }
:where(.medis-ui) .pagination a { padding: 8px 14px; border: 1px solid var(--line) }
:where(.medis-ui) .pagination [aria-current] { background: var(--brand); color: white }
:where(.medis-ui) .badge { display: inline-block; padding: 3px 10px; background: #e7f2ef; color: var(--brand); font-size: .8rem; border-radius: 5px }
:where(.medis-ui) .badge.cancelled { background: #f6e7e9; color: #963845 }
:where(.medis-ui) .social-login { display: flex; flex-direction: column; gap: 10px; text-align: center; margin-top: 20px }
:where(.medis-ui) .naver { background: #03c75a !important; color: #fff !important }
:where(.medis-ui) .kakao { background: #fee500 !important; color: #251f06 !important }
:where(.medis-ui) .skip-link { position: absolute; top: -70px; left: 15px; background: #fff; padding: 15px; z-index: 100 }
:where(.medis-ui) .skip-link:focus { top: 10px }
:where(.medis-ui) .honeypot { position: absolute; left: -9999px }
:where(.medis-ui) .section-banner { padding-bottom: 35px }
:where(.medis-ui) .popup-stack { position: fixed; right: 24px; bottom: 24px; z-index: 20; max-height: 85vh; overflow: auto; display: flex; gap: 15px; align-items: end }
:where(.medis-ui) .hospital-popup { max-width: 360px; background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 50px #142d3830; padding: 22px; border-radius: 10px }
:where(.medis-ui) .popup-slide { animation: slide-in .3s ease-out }
:where(.medis-ui) .popup-actions { display: flex; justify-content: space-between; gap: 12px }
:where(.medis-ui) .popup-actions button { font-size: .8rem; padding: 8px 12px }
:where(.medis-ui) .analytics-consent { position: fixed; bottom: 20px; left: 20px; background: #fff; border: 1px solid var(--line); box-shadow: 0 5px 25px #1232; padding: 20px; max-width: 360px; z-index: 30 }
:where(.medis-ui) .analytics-consent button { margin: 10px 5px 0 0; padding: 8px 14px }
:where(.medis-ui) .cookie-settings { position: fixed; bottom: 4px; left: 5px; font-size: .75rem; padding: 5px 10px; z-index: 10 }
:where(.medis-ui) .device-mobile { display: none }
@keyframes slide-in {
    from { transform: translateY(30px); opacity: 0 }
    to { transform: none; opacity: 1 }
}
@media(max-width:1100px) {
    :where(.medis-ui) #site-nav { gap: 15px }
    :where(.medis-ui) .header-actions>a:not(.button) { display: none }
    :where(.medis-ui) .header-inner { gap: 20px }
    :where(.medis-ui) .hero-grid { gap: 50px }
}
@media(max-width:800px) {
    .medis-ui.container, :where(.medis-ui) .container { width: calc(100% - 36px) }
    .medis-ui.section, :where(.medis-ui) .section { padding-block: 45px }
    :where(.medis-ui) .header-inner { min-height: 76px; flex-wrap: wrap }
    :where(.medis-ui) .site-brand { font-size: 1.2rem }
    :where(.medis-ui) .menu-toggle { display: block; margin-left: auto; background: transparent; color: var(--ink); padding: 7px 12px; border-color: var(--line) }
    :where(.medis-ui) #site-nav { display: none; order: 4; width: 100%; flex-direction: column; align-items: stretch; gap: 0; margin: 0 }
    :where(.medis-ui) #site-nav.open { display: flex }
    :where(.medis-ui) .nav-group { padding: 8px 0 }
    :where(.medis-ui) .submenu { position: static; display: block; box-shadow: none; padding: 0 15px }
    :where(.medis-ui) .submenu a { font-size: .85rem }
    :where(.medis-ui) .header-actions { display: none }
    :where(.medis-ui) .hero-grid { grid-template-columns: 1fr; gap: 40px; padding-block: 50px }
    :where(.medis-ui) .home-hero h1 { font-size: 3rem }
    :where(.medis-ui) .visit-card { max-width: none; padding: 25px }
    :where(.medis-ui) .visit-card h2 { font-size: 1.5rem }
    :where(.medis-ui) .visit-card h2 br { display: none }
    :where(.medis-ui) .hero-actions { gap: 18px; flex-wrap: wrap }
    :where(.medis-ui) .guide-grid, :where(.medis-ui) .news-section, :where(.medis-ui) .form-layout, :where(.medis-ui) .cards, :where(.medis-ui) .about-intro { grid-template-columns: 1fr; gap: 20px }
    :where(.medis-ui) .guide-grid>*+* { border-left: 0 }
    :where(.medis-ui) .guide-grid>a { padding-inline: 10px }
    :where(.medis-ui) .hours-band>.container { align-items: start; flex-direction: column }
    :where(.medis-ui) .footer-grid { grid-template-columns: 1fr }
    :where(.medis-ui) .footer-grid>div:last-child { flex-wrap: wrap }
    :where(.medis-ui) .form-grid { grid-template-columns: 1fr }
    :where(.medis-ui) .panel { padding: 22px }
    :where(.medis-ui) .toolbar { flex-wrap: wrap }
    :where(.medis-ui) .article-list>a { flex-wrap: wrap; gap: 10px }
    :where(.medis-ui) .popup-stack { left: 15px; right: 15px; bottom: 15px; flex-direction: column }
    :where(.medis-ui) .hospital-popup { max-width: 100%; width: 100% }
    :where(.medis-ui) .device-desktop { display: none }
    :where(.medis-ui) .device-mobile { display: block }
    :where(.medis-ui) .form-layout { gap: 25px }
    :where(.medis-ui) h2 { font-size: 1.5rem }
}
/* Common publishing components: edit freely without changing request handlers. */ :where(.medis-ui) .quick-contact { position: fixed; right: 24px; bottom: 24px; z-index: 12; display: flex; align-items: center; background: #fff; border: 1px solid var(--line); box-shadow: 0 8px 30px #142d3820; border-radius: 12px; overflow: hidden }
:where(.medis-ui) .quick-contact a, :where(.medis-ui) .quick-contact button { padding: 14px 18px; font-size: .9rem; min-height: 48px }
:where(.medis-ui) .quick-contact button { border-radius: 0 }
:where(.medis-ui) .popup-stack { bottom: 90px }
:where(.medis-ui) #quick-contact-dialog { width: min(700px, calc(100% - 28px)); max-height: calc(100dvh - 40px); overflow: auto; border: 0; border-radius: 16px; padding: 28px; color: var(--ink) }
:where(.medis-ui) #quick-contact-dialog::backdrop { background: #0d223c99 }
:where(.medis-ui) .dialog-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 24px }
:where(.medis-ui) .dialog-heading h2 { font-size: 1.5rem }
:where(.medis-ui) .dialog-heading button { padding: 8px 16px }
:where(.medis-ui) #quick-contact-dialog .form-layout { display: block }
:where(.medis-ui) #quick-contact-dialog .form-layout aside { display: none }
:where(.medis-ui) #quick-contact-dialog .panel { padding: 0; border: 0; margin: 0 }
:where(.medis-ui) .submenu-toggle { padding: 4px 8px; min-height: 32px; margin-left: 4px; background: transparent; border: 0; color: var(--ink); font-size: .85rem }
:where(.medis-ui) .submenu .nav-group { padding: 0 }
:where(.medis-ui) .submenu .submenu { left: 100%; top: 0 }
:where(.medis-ui) .nav-group>.submenu { display: none }
:where(.medis-ui) .nav-group:hover>.submenu, :where(.medis-ui) .nav-group:focus-within>.submenu, :where(.medis-ui) .nav-group.expanded>.submenu { display: block }
:where(.medis-ui) .site-footer { padding-bottom: 80px }
@media(max-width:800px) {
    :where(.medis-ui) .quick-contact { left: 12px; right: 12px; bottom: 12px; justify-content: space-around }
    :where(.medis-ui) .quick-contact a, :where(.medis-ui) .quick-contact button { flex: 1; justify-content: center; text-align: center; padding: 12px 8px }
    :where(.medis-ui) .submenu .submenu { position: static }
    :where(.medis-ui) .nav-group>.submenu { display: none }
    :where(.medis-ui) .nav-group:hover>.submenu, :where(.medis-ui) .nav-group:focus-within>.submenu { display: none }
    :where(.medis-ui) .nav-group.expanded>.submenu { display: block }
    :where(.medis-ui) .submenu-toggle { float: right; min-width: 44px; min-height: 44px }
    :where(.medis-ui) .nav-group>a { display: inline-block; min-height: 44px; padding-top: 8px }
    :where(.medis-ui) #quick-contact-dialog { padding: 22px }
    :where(.medis-ui) .analytics-consent { bottom: 80px; left: 12px; right: 12px }
    :where(.medis-ui) .popup-stack { bottom: 80px; max-height: 70dvh }
    :where(.medis-ui) .cookie-settings { bottom: 72px }
}
:where(.medis-ui) .slide-controls { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 15px 0 }
:where(.medis-ui) .slide-controls button { min-width: 44px; min-height: 44px; padding: 8px }
:where(.medis-ui) .slide-controls span { font-size: .875rem }
:where(.medis-ui) .tour-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px }
:where(.medis-ui) .tour-card { border: 1px solid var(--line); border-radius: 12px; overflow: hidden }
:where(.medis-ui) .tour-card img { width: 100%; aspect-ratio: 3/2; object-fit: cover }
:where(.medis-ui) .tour-card figcaption { padding: 24px }
:where(.medis-ui) .tour-card h2 { font-size: 1.35rem; margin: 8px 0 }
:where(.medis-ui) .tour-card p { color: var(--muted) }
@media(max-width:700px) {
    :where(.medis-ui) .tour-grid { grid-template-columns: 1fr }
}
/* Stable slide viewport; only long content scrolls inside the popup. */ :where(.medis-ui) .popup-slide { height: min(560px, calc(100dvh - 110px)); display: flex; flex-direction: column; overflow: hidden; }
:where(.medis-ui) .popup-slide[hidden] { display: none !important; }
:where(.medis-ui) .popup-slide>.prose { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; }
:where(.medis-ui) .popup-slide>.prose img { max-height: 350px; width: 100%; object-fit: contain; }
:where(.medis-ui) .popup-slide .slide-controls, :where(.medis-ui) .popup-slide .popup-actions { flex-shrink: 0; }
:where(.medis-ui) .toolbar label { min-width: 0; white-space: nowrap; }
/* Each slide shares one footprint, regardless of image aspect ratio. */ :where(.medis-ui) .popup-slide { width: min(360px, calc(100vw - 32px)); flex: 0 0 auto; animation: none; }
:where(.medis-ui) .popup-slide .prose img { width: 100%; height: min(300px, calc(100dvh - 300px)); object-fit: contain; margin: 0; }

/* ===== 달력 ===== */
.medis-date-trigger { width: 100%; text-align: left; padding: 13px; border: 1px solid #dce0e6; background: #fff; color: #20252c; border-radius: 7px; font: inherit; }
.medis-calendar { width: min(360px, calc(100% - 32px)); margin: auto; padding: 20px; border: 1px solid #e3e6ed; border-radius: 15px; background: #fff; color: #222830; box-shadow: 0 24px 80px #18223533; }
.medis-calendar::backdrop { background: #18223540; }
.medis-calendar button { cursor: pointer; font: inherit; border: 0; border-radius: 7px; background: #f3f5f8; color: #333a44; min-height: 38px; padding: 6px; }
.medis-calendar-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.medis-calendar-heading button { width: 38px; }
.medis-calendar-week, .medis-calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.medis-calendar-week { font-size: 12px; color: #858b94; padding-bottom: 12px; }
.medis-calendar-days button { background: #fff; }
.medis-calendar-days button:hover { background: #edf4ff; }
.medis-calendar button:disabled { color: #bfc4cc; background: #fafbfc; cursor: default; }
.medis-calendar-days button[aria-pressed=true] { color: #fff; background: #1769e0; }
.medis-calendar-days button[data-today=true] { box-shadow: inset 0 0 0 1px #1769e0; }
.medis-calendar [role=status] { font-size: 12px; margin: 12px 0; color: #69727e; }
.medis-calendar-time { display: flex; gap: 12px; margin: 16px 0; }
.medis-calendar-time label { flex: 1; font-size: 12px; }
.medis-calendar-time input { width: 100%; padding: 10px; border: 1px solid #dce0e6; border-radius: 7px; }
.medis-calendar-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.medis-calendar-actions [data-apply] { background: #1769e0; color: #fff; padding: 8px 14px; }
.schedule-days { display: grid; gap: 12px; margin: 20px 0; }
.schedule-row { display: grid; grid-template-columns: repeat(7, minmax(80px, 1fr)); gap: 12px; padding: 16px; border: 1px solid #e3e6ed; border-radius: 8px; margin: 18px 0; }
.schedule-row label { font-size: 12px; display: grid; gap: 5px; }
@media(max-width:1100px) {
    .schedule-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ===== 유튜브·블로그 ===== */
/* Public feed skin: override --external-accent in a hospital's common.css. */ .external-feed,.external-grid { --external-accent:var(--site-accent); font-family:Pretendard,system-ui,sans-serif; }
.external-feed { padding:0 0 40px; }
.external-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.external-card { min-width:0; overflow:hidden; background:#fff; border:1px solid #e7ebf0; border-radius:18px; transition:border-color .18s,box-shadow .18s; }
.external-card:hover { border-color:var(--external-accent); box-shadow:0 8px 24px #243e5010; }
.external-card>a { display:block; height:100%; color:#172b46; text-decoration:none; }
.external-card>a:focus-visible { outline:3px solid var(--external-accent); outline-offset:-3px; border-radius:18px; }
.external-image { position:relative; aspect-ratio:16/9; background:#f1f5f8; display:grid; place-items:center; overflow:hidden; }
.external-image img { display:block; width:100%; height:100%; object-fit:cover; }
.external-short .external-image { aspect-ratio:4/5; }
.external-short .external-image img { object-fit:contain; }
.external-placeholder { font-size:22px; font-weight:700; letter-spacing:.16em; color:#7890a4; }
.external-play { position:absolute; display:grid; place-items:center; width:44px; height:44px; background:#152738b3; color:#fff; border-radius:50%; font-size:16px; }
.external-copy { padding:24px; }
.external-category { color:#51697b; font-size:11px; font-weight:600; letter-spacing:.08em; }
.external-category::before { content:''; display:inline-block; width:6px; height:6px; background:var(--external-accent); border-radius:50%; margin-right:7px; vertical-align:middle; }
.external-copy h2 { font-size:18px; line-height:1.55; letter-spacing:-.03em; font-weight:600; margin:10px 0 14px; overflow-wrap:anywhere; }
.external-copy p { font-size:14px; color:#66768a; line-height:1.7; margin:0 0 18px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.external-copy time { font-size:12px; color:#788799; }
.external-tabs { display:flex; gap:8px; margin:0 0 24px; flex-wrap:wrap; }
.external-tabs a,.external-pagination a { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; padding:10px 18px; min-height:42px; box-sizing:border-box; border:1px solid #e0e6ed; border-radius:9px; color:#58677a; background:#fff; font-size:14px; }
.external-tabs a[aria-current],.external-pagination a[aria-current] { background:var(--external-accent); border-color:var(--external-accent); color:#fff; font-weight:600; }
.external-tabs a:focus-visible,.external-pagination a:focus-visible { outline:2px solid var(--external-accent); outline-offset:3px; }
.external-pagination { display:flex; justify-content:center; gap:8px; margin-top:28px; }
.external-empty { padding:80px 24px; background:#fff; border:1px solid #e7ebf0; border-radius:18px; text-align:center; color:#6d7c90; font-size:15px; }
@media(max-width:1000px) {
    .external-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:18px }
}
@media(max-width:560px) {
    .external-grid { grid-template-columns:1fr;gap:16px }
    .external-copy { padding:20px }
}
@media(prefers-reduced-motion:reduce) {
    .external-card { transition:none }
}

/* ===== 예약·조회 ===== */
/* Shared public service controls. Hospital common.css can override these tokens. */ .service-page { --accent:var(--site-accent);   color:var(--ink); font-family:var(--font-sans); max-width:1120px; padding:64px 24px 80px; margin:0 auto; }
.service-page .page-heading { margin:0 0 36px; }
.service-page .page-heading .eyebrow { display:none; }
.service-page .page-heading h1 { font-size:32px; line-height:1.35; letter-spacing:-.04em; font-weight:650; margin:0; }
.service-page input,.service-page select,.service-page textarea { width:100%; box-sizing:border-box; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:9px; min-height:50px; padding:13px 15px; font:inherit; font-size:16px; transition:border-color .15s,box-shadow .15s; }
.service-page :is(input,select,textarea):focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px #1ea9dc18; }
.service-page input:user-invalid,.service-page textarea:user-invalid { border-color:#c93e48; }
.service-page .required { display:inline; color:#c93e48; margin-left:3px; }
.service-page :is(button,.button) { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px 22px; border:1px solid transparent; border-radius:9px; background:var(--accent); color:#fff; font:600 15px/1.4 var(--font-sans); text-decoration:none; cursor:pointer; transition:filter .15s; }
.service-page :is(button,.button):hover { filter:brightness(.95); }
.service-page :is(button,a):focus-visible { outline:3px solid var(--site-focus); outline-offset:3px; }
.service-page :is(button,.button).secondary { background:#fff; border-color:var(--line); color:var(--ink); }
.service-page button:disabled { cursor:wait; opacity:.55; }
.service-page .form-grid label { display:block; font-size:15px; font-weight:500; }
.service-page .form-grid label>input,.service-page .form-grid label>select,.service-page .form-grid label>textarea,.service-page .service-password { margin-top:10px; }
.service-page .form-grid { gap:24px; }
.service-password { display:flex; align-items:center; position:relative; }
.service-password input { padding-right:64px; }
.service-page .service-password button { position:absolute; right:5px; background:transparent; color:#5b6c80; font-size:13px; min-height:40px; padding:8px 10px; }
.lookup-page { max-width:520px; margin:56px auto; padding:38px; background:#fff; border:1px solid #edf0f4; border-radius:24px; box-shadow:0 12px 40px #172b4607; }
body:has(.lookup-page) { background:#f5f6f8; }
.lookup-page .page-heading h1 { font-size:27px; }
.lookup-page .panel { border:0; box-shadow:none; padding:0; margin:0 0 28px; background:transparent; }
.lookup-page .lookup-form { display:grid; grid-template-columns:1fr; max-width:none; margin:0; }
.lookup-page .lookup-form .full { grid-column:1; }
.lookup-page .panel:not(.lookup-form),.lookup-page .notice { padding:22px; background:#f5f8fa; border-radius:12px; line-height:1.8; overflow-wrap:anywhere; }
.lookup-page .panel h2,.lookup-page .notice h2 { font-size:18px; margin:0 0 12px; }
.lookup-page .panel h3 { font-size:15px; margin:20px 0 8px; }
.lookup-page .panel p { margin:12px 0; }
.lookup-page .danger { background:#fff; color:#ad3440; border-color:#e7c8cc; }
.medis-default-footer { padding:24px; border-top:1px solid #e7ebef; }
.medis-default-footer nav { display:flex; justify-content:center; flex-wrap:wrap; gap:8px 24px; }
.medis-default-footer a { color:#65748a; font:400 13px/1.6 var(--font-sans); text-decoration:none; padding:8px 0; }
@media(max-width:600px) {
    .service-page { padding:32px 20px 48px; }
    .service-page .page-heading h1 { font-size:26px }
    .lookup-page { margin:24px 16px; padding:28px 22px; max-width:none; border-radius:20px }
}
@media(prefers-reduced-motion:reduce) {
    .service-page * { transition:none }
}
.medis-ui.service-page.section { padding-block:64px 80px; }
.medis-ui.lookup-page.section { padding-block:38px; width:calc(100% - 32px); }
.service-page .service-error { padding:14px 16px; margin:0 0 24px; color:#a62e3b; border:1px solid #efcbd0; background:#fff7f8; border-radius:9px; font-size:14px; }
@media(max-width:600px) {
    .medis-ui.service-page.section { padding-block:32px 48px }
    .medis-ui.lookup-page.section { padding-block:28px }
}


/* ===== 팝업·슬라이드 ===== */
.popup-stack { position:fixed;inset:0;z-index:1100;background:rgb(17 23 29 / .64);font-family:var(--font-sans),sans-serif;color:#263238 }
.popup-stack [hidden],.popup-stack[hidden] { display:none!important }
.popup-stack * { box-sizing:border-box }
.popup-stack .hospital-popup { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(var(--popup-width,360px),calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:0;padding:0;border:0;display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 16px 60px #0002;overflow:hidden }
.popup-stack .popup-content { min-height:0;overflow:auto;overscroll-behavior:contain;height:var(--popup-height,auto);margin:0;padding:0;background:#fff }
.popup-stack .popup-content>a { display:block }
.popup-stack .popup-content img { display:block;width:100%;height:auto;margin:0;max-width:100%;object-fit:contain }
.popup-stack .popup-content.has-height img { height:var(--popup-height);max-height:calc(100dvh - 160px) }
.popup-stack .popup-copy { padding:32px 28px;font-size:16px;line-height:1.8;overflow-wrap:anywhere }
.popup-stack .popup-copy h2 { font-size:25px;line-height:1.35;margin:0 0 24px;font-weight:700 }
.popup-stack button { font:500 14px/1.4 var(--font-sans),sans-serif;cursor:pointer;border:0;border-radius:0;margin:0;box-shadow:none }
.popup-stack button:focus-visible,.popup-stack a:focus-visible,.popup-stack input:focus-visible { outline:3px solid var(--site-accent);outline-offset:-3px }
.popup-stack .popup-actions { display:grid;grid-template-columns:1fr 1fr;flex-shrink:0;background:white;padding:0;border-top:1px solid #e9e9e9;margin:0 }
.popup-stack .popup-actions button { min-height:50px;padding:12px;background:white;color:#555 }
.popup-stack .popup-actions button+button { border-left:1px solid #ddd }
.popup-stack .popup-actions button:hover { background:#f6f7f8 }
.popup-stack .popup-carousel { width:min(var(--popup-width,1100px),calc(100vw - 48px));background:transparent;overflow:visible;border-radius:0;box-shadow:none }
.popup-stack .popup-carousel .popup-frame { border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:0;background:#fff;box-shadow:0 20px 80px #0002 }
.popup-stack .popup-topbar { display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-shrink:0;padding:0 0 12px;color:#fff }
.popup-stack .popup-topbar label { display:inline-flex;gap:8px;align-items:center;font-size:14px;cursor:pointer }
.popup-stack .popup-topbar input { width:17px;height:17px;margin:0;accent-color:var(--site-accent) }
.popup-stack .popup-topbar button { background:transparent;color:white;min-height:36px;padding:6px 8px }
.popup-stack .popup-topbar .popup-close { border-radius:50%;background:#fff;color:#555;width:36px;height:36px;padding:0;font-size:26px;line-height:1 }
.popup-stack .popup-tabs { display:flex;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b8c4ca #f5f6f7;flex-shrink:0;background:white;border-top:1px solid #e5e7e9 }
.popup-stack .popup-tabs button { flex:1 0 calc(100% / var(--tab-count,4));min-width:0;min-height:60px;padding:14px 18px;background:white;color:#444;border-right:1px solid #ddd;overflow-wrap:anywhere }
.popup-stack .popup-tabs button[aria-selected=true] { background:var(--site-accent);color:white;font-weight:650 }
.popup-stack .popup-tabs button:last-child { border-right:0 }
.popup-stack .popup-tabs button:hover:not([aria-selected=true]) { background:#f2f5f7 }
.popup-stack .popup-carousel .popup-content { max-height:calc(100dvh - 172px) }
@media(max-width:600px) {
    .popup-stack .popup-carousel { width:calc(100vw - 24px) }
    .popup-stack .popup-tabs button { flex-basis:50%;padding:12px;min-height:56px;font-size:13px }
    .popup-stack .popup-copy { padding:28px 22px }
    .popup-stack .popup-topbar { gap:10px }
    .popup-stack .popup-topbar label { font-size:13px }
}
@media(prefers-reduced-motion:no-preference) {
    .popup-stack button { transition:background .16s,color .16s }
}
.popup-stack .popup-copy:has(>img:only-child) { padding:0 }
.popup-stack .hospital-popup:focus { outline:none }
.popup-stack { display:block;max-width:none;max-height:none;width:auto;height:auto;padding:0;margin:0;overflow:hidden;pointer-events:auto }
.popup-stack .hospital-popup { max-width:calc(100vw - 32px) }
.popup-stack .popup-actions { gap:0 }

/* ===== 회원 화면 (독립 레이어 / .member-body 범위) ===== */
.member-body { font-family: var(--font-body); color: #202632; background: #f5f6f8; font-synthesis: none; --member-accent:var(--site-accent); }
.member-body * { box-sizing: border-box }
.member-body { margin: 0; font-size: 16px; line-height: 1.55 }
.member-body button, .member-body input { font: inherit }
.member-body a { color: inherit; text-decoration: none }
.member-body button, .member-body a, .member-body input { -webkit-tap-highlight-color: transparent }
.member-body button { cursor: pointer }
.member-body [hidden] { display: none !important }
.member-body { min-height: 100dvh; padding: 40px 20px; display: grid; place-items: start center }
.member-body .member-card { width: min(520px, 100%); background: #fff; border-radius: 24px; box-shadow: 0 12px 44px #20263209; overflow: hidden }
.member-body .member-top { display: flex; justify-content: space-between; align-items: center; padding: 18px 26px; border-bottom: 1px solid #edf0f4; position: sticky; top: 0; background: #fff; z-index: 2 }
.member-body .member-top>span { font-size: 12px; color: #6e7b8f; letter-spacing: .5px }
.member-body .member-close { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #f5f6f8; font-size: 26px; color: #6e7b8f }
.member-body .member-content { padding: 32px 38px 38px }
.member-body .member-content h1 { font-size: 26px; line-height: 1.3; font-weight: 650; margin: 0 0 30px; letter-spacing: -.6px }
.member-body .member-content p { margin: 0 0 22px }
.member-body .member-field { margin-top: 22px }
.member-body .member-field:first-child { margin-top: 0 }
.member-body .member-field label { display: block; font-size: 15px; font-weight: 550; margin-bottom: 8px }
.member-body .required { color: #ce3b42; margin-left: 6px }
.member-body .member-field small { font-weight: 400 }
.member-body .member-input { position: relative; display: flex; gap: 8px }
.member-body .member-input input { min-width: 0; width: 100%; height: 50px; border: 1px solid #d5dce5; border-radius: 8px; background: #fff; color: #202632; padding: 0 13px; transition: border-color .16s, box-shadow .16s }
.member-body .member-input:has(.visibility) input { padding-right: 46px }
.member-body .member-input input:focus { outline: none; border-color: var(--member-accent); box-shadow: 0 0 0 3px var(--site-accent-soft) }
.member-body .member-input input[aria-invalid=true] { border-color: #ce3b42 }
.member-body .field-feedback { display: block; font-size: 13px; color: #ce3b42; margin-top: 5px }
.member-body .field-feedback:empty { display: none }
.member-body .field-feedback.success { color: #36677a }
.member-body .member-content .member-hint { font-size: 13px; color: #758195; margin: 5px 0 0 }
.member-body .visibility { position: absolute; right: 5px; top: 3px; height: 44px; width: 40px; background: none; border: 0; color: #7b8799 }
.member-body .visibility svg { width: 20px; height: 20px; stroke-width: 1.5 }
.member-body .member-primary { display: flex; justify-content: center; align-items: center; gap: 8px; width: 100%; min-height: 50px; padding: 12px 16px; border-radius: 8px; background: var(--member-accent); border: 1px solid var(--member-accent); color: #fff !important; font-size: 15px; font-weight: 650; margin-top: 24px; transition: filter .16s }
.member-body .member-primary:hover { filter: brightness(.92) }
.member-body .member-primary:disabled { opacity: .55; cursor: wait }
.member-body .member-input .duplicate { width: auto; flex-shrink: 0; margin: 0; font-size: 14px; padding: 0 17px }
.member-body .member-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 15px; margin-top: 25px; font-size: 13px; color: #677489 }
.member-body .member-links a:hover { text-decoration: underline }
.member-body .member-social { display: flex; gap: 8px; margin-top: 30px }
.member-body .member-social a { flex: 1; min-height: 48px; display: flex; justify-content: center; align-items: center; gap: 7px; border: 1px solid #dde3ec; border-radius: 8px; font-size: 14px }
.member-body .member-social a:hover { background: #f8fafc }
.member-body .member-steps { list-style: none; padding: 0; margin: 0 0 30px; display: flex; justify-content: space-between; gap: 8px }
.member-body .member-steps li { display: flex; gap: 7px; align-items: center; color: #8a96a8; font-size: 12px }
.member-body .member-steps b { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid #dce2e9; border-radius: 50%; font-weight: 550 }
.member-body .member-steps [aria-current] { color: #25324a }
.member-body .member-steps [aria-current] b, .member-body .member-steps .complete b { background: var(--member-accent); border-color: var(--member-accent); color: #fff }
.member-body .agree-all, .member-body .agree-row { padding: 18px 0; border-bottom: 1px solid #e9edf2; font-size: 15px }
.member-body .agree-all label, .member-body .agree-row label { display: flex; align-items: center; gap: 8px }
.member-body .agree-all { font-weight: 550 }
.member-body .agree-row { display: flex; justify-content: space-between; gap: 10px }
.member-body .agree-row a { font-size: 13px; color: #758195; white-space: nowrap }
.member-body input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--member-accent); margin: 0; flex-shrink: 0 }
.member-body .member-back { display: block; margin: 20px auto 0; padding: 8px; background: none; border: 0; color: #6e7b8f; font-size: 14px }
.member-body .member-policy { max-height: 65dvh; overflow: auto; scrollbar-gutter: stable; font-size: 15px; line-height: 1.9; white-space: normal; overflow-wrap: anywhere }
.member-body .member-error, .member-body .member-content .flash { border: 1px solid #e4e8ee; border-radius: 8px; padding: 12px; font-size: 14px }
.member-body .member-error { color: #ad2c34 }
.member-body .member-confirm { width: min(420px, calc(100% - 32px)); border: 0; border-radius: 20px; padding: 28px; color: #202632 }
.member-body .member-confirm::backdrop { background: #17203366 }
.member-body .member-confirm h2 { font-size: 22px; margin: 0 0 16px }
.member-body .member-confirm>div { display: flex; gap: 10px }
.member-body .member-confirm button { flex: 1; min-height: 50px; font-size: 15px; font-weight: 600; border: 1px solid #dce2ea; border-radius: 8px; padding: 10px; background: #f7f8fa }
.member-body .member-confirm .member-primary { background: var(--member-accent); margin: 0 }
.member-body :focus-visible { outline: 3px solid var(--site-focus); outline-offset: 3px }
.member-body .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%) }
@media(max-width:560px) {
    .member-body { padding: 0; background: #fff }
    .member-body .member-card { border-radius: 0; box-shadow: none; min-height: 100dvh }
    .member-body .member-content { padding: 28px 24px }
    .member-body .member-social { gap: 6px }
    .member-body .member-social a { font-size: 13px }
}
.member-body .member-embedded { padding: 0; display: block; background: #fff }
.member-body .member-embedded .member-card { width: 100%; box-shadow: none; border-radius: 0; min-height: 100dvh }
.member-body .member-steps [aria-current] b, .member-body .member-steps .complete b { color: #fff !important }
@media(prefers-reduced-motion:reduce) {
    .member-body * { transition: none !important }
}
.member-body .member-form input[type=checkbox] { appearance: none; display: inline-grid; place-content: center; border: 1px solid #b8c2cf; border-radius: 4px; background: #fff }
.member-body .member-form input[type=checkbox]:checked, .member-body .member-form input[type=checkbox]:indeterminate { border-color: var(--member-accent); background: var(--member-accent) }
.member-body .member-form input[type=checkbox]:checked::after { content: ""; width: 8px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: translateY(-1px) rotate(-45deg) }
.member-body .member-form input[type=checkbox]:indeterminate::after { content: ""; width: 8px; height: 2px; background: #fff }
.member-body .member-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 28px; }
.member-body .member-steps li { position:relative; padding:14px 0 0; gap:6px; font-size:12px; font-weight:500; color:#7b8798; border-top:3px solid #e8edf2; }
.member-body .member-steps li[aria-current] { border-color:var(--member-accent); color:#172b46; font-weight:700; }
.member-body .member-steps li.complete { border-color:var(--member-accent); color:#526477; }
.member-body .member-steps b { width:22px; height:22px; flex:0 0 22px; border:0; border-radius:6px; background:#f0f3f6; color:#718094; font-size:11px; }
.member-body .member-steps [aria-current] b, .member-body .member-steps .complete b { background:var(--member-accent); color:#fff; }
.member-body .member-signin-prompt { margin:10px 0 0; }
.member-body .member-signin-prompt a { display:flex; align-items:center; justify-content:center; width:100%; min-height:50px; box-sizing:border-box; padding:12px 16px; border:1px solid #dce3eb; border-radius:8px; background:#fff; color:#30445e; font-size:15px; font-weight:600; line-height:1.5; text-decoration:none; transition:background .15s,border-color .15s; }
.member-body .member-signin-prompt a:hover { background:#f5f7fa; border-color:#aebccc; }
.member-body .member-signin-prompt a:focus-visible { outline:2px solid var(--member-accent); outline-offset:3px; }
.member-body button.member-back[data-join-back] { display:block; width:100%; min-height:50px; margin:10px 0 0; padding:10px 16px; border:1px solid #dce3eb; border-radius:8px; background:#fff; color:#43536a; font:inherit; font-size:15px; font-weight:600; cursor:pointer; }
.member-body button.member-back[data-join-back]:hover { background:#f5f7fa; }
.member-body button.member-back[data-join-back][hidden] { display:none; }
@media(max-width:380px) {
    .member-body .member-steps { gap:6px }
    .member-body .member-steps li { gap:4px;font-size:11px }
}

/* PC 드롭다운: 둥근 패널과 포인트 메뉴 */
.fh-header .fh-dropdown { width:164px; padding:10px 12px; border:0; border-radius:8px; background:#fff; color:#493b32; box-shadow:0 5px 18px rgb(54 35 23 / 10%); }
.fh-dropdown > .fh-item + .fh-item { border-top:0; margin-top:3px; }
.fh-dropdown .fh-menu-row { border-radius:8px; transition:background-color .18s ease,color .18s ease; }
.fh-dropdown .fh-menu-link { min-height:46px; padding:10px 16px; border-radius:8px; color:inherit; }
.fh-dropdown .fh-menu-row:hover, .fh-dropdown .fh-menu-row:focus-within, .fh-dropdown .fh-menu-row:has(> .fh-menu-link[aria-current]) { background:#f3ebe0; color:#5d4942; }
.fh-dropdown .fh-menu-link[aria-current] { background:transparent; color:inherit; }
.fh-dropdown .fh-menu-link:focus-visible { outline:none; text-decoration:underline; text-underline-offset:4px; }
.fh-dropdown .fh-expand { height:46px; color:inherit; }
.fh-header .fh-dropdown .fh-dropdown { width:auto; margin:4px 8px 6px; padding:0 0 0 8px; border:0; border-radius:0; background:transparent; color:#493b32; box-shadow:none; }
.fh-dropdown .fh-dropdown .fh-menu-link { padding-left:14px; }


/* FASCIA 전체 메뉴 */
.fm-dialog { --fm-paper:#faf4eb; --fm-ink:#705442; --fm-muted:#987d68; position:fixed; inset:0; width:100%; max-width:none; height:100%; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:var(--fm-paper); color:var(--fm-ink); overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; opacity:0; clip-path:inset(0 0 100% 100%); transition:clip-path .85s cubic-bezier(.76,0,.24,1),opacity .3s ease; }
.fm-dialog:not([open]) { display:none; }
.fm-dialog::backdrop { background:rgb(35 26 21 / 35%); backdrop-filter:blur(5px); }
.fm-dialog.is-open { opacity:1; clip-path:inset(0); }
.fm-dialog.is-closing { opacity:0; clip-path:inset(0 0 100% 0); transition:clip-path .45s cubic-bezier(.65,0,.35,1),opacity .35s ease .08s; }
.fm-dialog, .fm-dialog * { box-sizing:border-box; }
.fm-dialog :where(h2,h3,p,ul) { margin:0; }
.fm-dialog ul { padding:0; list-style:none; }
.fm-dialog a { color:inherit; text-decoration:none; }
.fm-dialog button { font:inherit; }
.fm-dialog :where(a,button):focus-visible { outline:2px solid var(--fm-ink); outline-offset:6px; border-radius:2px; }
.fm-shell { width:min(100%,1920px); min-height:100%; margin-inline:auto; padding:30px clamp(28px,5vw,96px) 26px; display:flex; flex-direction:column; }
.fm-top { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-shrink:0; }
.fm-caption { font-size:13px; font-weight:400; letter-spacing:.1em; }
.fm-close { position:relative; flex:0 0 auto; width:66px; height:44px; padding:0; border:1px solid rgb(112 84 66 / 22%); border-radius:999px; background:transparent; color:var(--fm-ink); cursor:pointer; transition:background .3s ease,border-color .3s ease; }
.fm-close span { position:absolute; left:22px; top:21px; width:22px; height:1px; background:currentColor; transition:transform .45s cubic-bezier(.22,1,.36,1); }
.fm-close span:first-child { transform:rotate(45deg); }
.fm-close span:last-child { transform:rotate(-45deg); }
.fm-close:hover { background:#ede3d6; border-color:transparent; }
.fm-close:hover span:first-child { transform:rotate(135deg); }
.fm-close:hover span:last-child { transform:rotate(45deg); }
.fm-layout { flex:1; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.45fr); gap:clamp(50px,7vw,135px); align-items:center; padding-block:clamp(65px,8vh,105px); }
.fm-brand-panel { position:relative; align-self:stretch; display:flex; flex-direction:column; justify-content:center; min-width:0; padding-block:24px; }
.fm-eyebrow { font-family:var(--font-serif); font-size:19px; line-height:1.5; }
.fm-home { display:block; width:fit-content; max-width:100%; margin-top:18px; }
.fm-word { display:flex; overflow:hidden; padding-bottom:.1em; font-family:var(--font-serif); font-size:clamp(56px,5.6vw,106px); line-height:1.1; letter-spacing:-.035em; }
.fm-word > span { display:block; transform:translateY(115%) rotate(6deg); opacity:0; transform-origin:50% 100%; transition:transform 1.15s cubic-bezier(.22,1,.36,1),opacity .7s ease; }
.fm-word > span:nth-child(1) { transition-delay:.22s; }
.fm-word > span:nth-child(2) { transition-delay:.29s; }
.fm-word > span:nth-child(3) { transition-delay:.36s; }
.fm-word > span:nth-child(4) { transition-delay:.43s; }
.fm-word > span:nth-child(5) { transition-delay:.50s; }
.fm-word > span:nth-child(6) { transition-delay:.57s; }
.fm-dialog.is-open .fm-word > span { transform:translateY(0) rotate(0); opacity:1; }
.fm-byline { display:block; margin-top:3px; font-size:12px; letter-spacing:.18em; text-align:right; }
.fm-statement { margin-top:48px!important; font-family:var(--font-serif); font-size:clamp(28px,2.2vw,42px); line-height:1.6; word-break:keep-all; }
.fm-description { margin-top:22px!important; color:var(--fm-muted); font-size:15px; line-height:1.9; }
.fm-brand-line { display:block; width:76px; height:1px; margin-top:44px; background:rgb(112 84 66 / 35%); transform:scaleX(0); transform-origin:left; transition:transform 1s cubic-bezier(.22,1,.36,1) .65s; }
.fm-dialog.is-open .fm-brand-line { transform:scaleX(1); }
.fm-brand-note { margin-top:18px!important; color:var(--fm-muted); font-family:var(--font-serif); font-size:15px; letter-spacing:.03em; }
.fm-eyebrow, .fm-byline, .fm-statement, .fm-description, .fm-brand-note { opacity:0; transform:translateY(16px); transition:opacity .9s ease .4s,transform 1.2s cubic-bezier(.22,1,.36,1) .4s; }
.fm-statement { transition-delay:.48s; }
.fm-description { transition-delay:.58s; }
.fm-brand-note { transition-delay:.75s; }
.fm-dialog.is-open :is(.fm-eyebrow,.fm-byline,.fm-statement,.fm-description,.fm-brand-note) { opacity:1; transform:translateY(0); }
.fm-navigation { min-width:0; padding-left:clamp(30px,4vw,76px); border-left:1px solid rgb(112 84 66 / 15%); }
.fm-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px clamp(28px,4vw,78px); }
.fm-group { min-width:0; opacity:0; transform:translateY(30px); transition:opacity .8s ease,transform 1.15s cubic-bezier(.22,1,.36,1); transition-delay:calc(.3s + var(--fm-order,0) * .1s); }
.fm-dialog.is-open .fm-group { opacity:1; transform:translateY(0); }
.fm-group-heading { display:flex; align-items:baseline; gap:13px; padding-bottom:17px; border-bottom:1px solid rgb(112 84 66 / 20%); }
.fm-number { flex:0 0 auto; color:var(--fm-muted); font-family:var(--font-serif); font-size:13px; }
.fm-group h3 { min-width:0; font-family:var(--font-serif); font-size:clamp(23px,1.8vw,34px); font-weight:400; line-height:1.35; overflow-wrap:anywhere; }
.fm-group h3 a { transition:color .25s ease; }
.fm-links { margin-top:18px!important; }
.fm-link { position:relative; display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; padding:8px 0; font-size:16px; line-height:1.5; transition:color .25s ease; }
.fm-link > span:first-child { position:relative; transition:transform .4s cubic-bezier(.22,1,.36,1); }
.fm-link > span:first-child::after { content:""; position:absolute; left:0; right:0; bottom:-4px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s cubic-bezier(.22,1,.36,1); }
.fm-link-arrow { flex:0 0 auto; opacity:0; transform:translate(-7px,5px); transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1); }
.fm-link[aria-current="page"] { color:#a16e49; }
.fm-link[aria-current="page"] > span:first-child::after { transform:scaleX(1); }
.fm-link[aria-current="page"] .fm-link-arrow { opacity:1; transform:none; }
.fm-group h3 a[aria-current="page"] { color:#a16e49; }
.fm-nested { margin:2px 0 8px 16px!important; padding-left:14px!important; border-left:1px solid rgb(112 84 66 / 15%); }
.fm-nested .fm-link { font-size:14px; color:var(--fm-muted); }
.fm-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:22px; border-top:1px solid rgb(112 84 66 / 15%); color:var(--fm-muted); font-size:12px; line-height:1.6; }
.fm-bottom p:first-child { font-family:var(--font-serif); letter-spacing:.12em; }

@media (hover:hover) {
    .fm-link:hover > span:first-child { transform:translateX(6px); }
    .fm-link:hover > span:first-child::after { transform:scaleX(1); transform-origin:left; }
    .fm-link:hover .fm-link-arrow { opacity:1; transform:none; }
    .fm-group h3 a:hover { color:#a16e49; }
}

@media (max-width:1100px) {
    .fm-shell { padding-inline:36px; }
    .fm-layout { grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:36px; }
    .fm-navigation { padding-left:30px; }
    .fm-groups { gap:36px 28px; }
    .fm-group h3 { font-size:25px; }
    .fm-word { font-size:clamp(48px,6.4vw,76px); }
}

@media (max-width:760px) {
    .fm-shell { padding:20px 24px 24px; }
    .fm-layout { display:block; padding-block:35px 45px; }
    .fm-brand-panel { padding:0 0 30px; }
    .fm-eyebrow { font-size:15px; }
    .fm-home { margin-top:8px; }
    .fm-word { font-size:64px; }
    .fm-byline { font-size:10px; }
    .fm-statement { margin-top:22px!important; font-size:25px; }
    .fm-statement br { display:none; }
    .fm-description, .fm-brand-line, .fm-brand-note { display:none; }
    .fm-navigation { padding:30px 0 0; border-left:0; border-top:1px solid rgb(112 84 66 / 18%); }
    .fm-groups { gap:34px 25px; }
    .fm-group h3 { font-size:23px; }
    .fm-group-heading { gap:8px; padding-bottom:13px; }
    .fm-number { font-size:11px; }
    .fm-links { margin-top:12px!important; }
    .fm-link { font-size:15px; }
    .fm-link-arrow { opacity:.5; transform:none; }
    .fm-bottom { align-items:flex-start; flex-direction:column; gap:6px; }
}

@media (max-width:420px) {
    .fm-groups { grid-template-columns:1fr; }
    .fm-group h3 { font-size:27px; }
    .fm-link { min-height:46px; }
}

@media (prefers-reduced-motion:reduce) {
    .fm-dialog, .fm-dialog *, .fm-dialog *::after { transition:none!important; }
}






/* 예약 퀵버튼 레이어 */
.fascia-quick button.fascia-quick-link { padding:0; border:0; font:inherit; cursor:pointer; }
.quick-booking-panel { position:absolute; right:calc(100% + 14px); bottom:58px; width:264px; max-width:calc(100vw - 88px); overflow:hidden; border-radius:18px; background:#fff; color:#493b32; box-shadow:0 8px 32px rgb(0 0 0 / 12%); }
.quick-booking-panel[hidden] { display:none; }
.quick-booking-panel header { display:flex; align-items:center; justify-content:space-between; padding:10px 16px; border-bottom:1px solid #eee; font-size:13px; }
.quick-booking-panel header button { border:0; background:transparent; color:inherit; width:30px; height:30px; padding:0; font-size:22px; cursor:pointer; }
.quick-booking-panel > a, .quick-booking-pending { display:flex; flex-direction:column; gap:4px; padding:14px 16px; color:inherit; text-decoration:none; border-bottom:1px solid #f2efeb; }
.quick-booking-panel strong { font-size:14px; font-weight:500; }
.quick-booking-panel span { font-size:12px; }
.quick-booking-panel > a:hover { background:#faf4eb; }
.quick-booking-pending { color:#91877f; background:#f8f7f5; cursor:default; }
.quick-booking-pending small { margin-left:8px; padding:3px 6px; border-radius:6px; background:#ece8e2; font-size:11px; }



/* 세로 퀵메뉴 */
.fascia-quick { position:fixed; z-index:90; right:24px; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; align-items:center; gap:10px; max-height:calc(100dvh - 100px); }
.fascia-quick-items { display:flex; flex-direction:column; gap:8px; overflow:auto; scrollbar-width:none; }
.fascia-quick-items[hidden] { display:none; }
.fascia-quick .fascia-quick-link { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:48px; height:48px; border-radius:50%; background:rgb(73 59 46 / 90%); color:#fff; text-decoration:none; transition:background .2s; }
.fascia-quick-link img { display:block; width:28px; height:28px; object-fit:contain; }
.fascia-quick-link span { max-width:42px; text-align:center; font-size:10px; line-height:1.3; word-break:keep-all; }
.fascia-quick .fascia-quick-link:hover { background:#89624b; }
.fascia-quick-toggle { display:grid; place-items:center; flex-shrink:0; width:48px; height:48px; padding:0; border:0; border-radius:50%; background:#fff; color:#493b32; box-shadow:0 3px 14px rgb(0 0 0 / 8%); font:300 30px/1 sans-serif; cursor:pointer; }
.fascia-quick-toggle[aria-expanded=false] { font-size:12px; font-weight:600; }
.fascia-quick :focus-visible { outline:1px solid #89624b; outline-offset:3px; }
@media (max-width:640px) {
    .fascia-quick { right:12px; top:auto; bottom:calc(20px + env(safe-area-inset-bottom)); transform:none; }
    .fascia-quick .fascia-quick-link, .fascia-quick-toggle { width:44px; height:44px; }
}




/* FASCIA 간편상담 */
#quick-contact-dialog { --qc-paper:#faf7f1; --qc-ink:#514238; --qc-muted:#81756b; --qc-line:#d8cec2; width:min(620px,calc(100% - 40px)); max-width:none; max-height:calc(100dvh - 48px); margin:auto; padding:48px 52px 40px; overflow:auto; overscroll-behavior:contain; box-sizing:border-box; border:1px solid rgb(255 255 255 / 60%); border-radius:3px; background:var(--qc-paper); color:var(--qc-ink); box-shadow:0 28px 100px rgb(32 24 18 / 20%); }
#quick-contact-dialog::backdrop { background:rgb(38 31 26 / 48%); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
#quick-contact-dialog[open] { animation:qc-dialog-enter .65s cubic-bezier(.22,1,.36,1) both; }
#quick-contact-dialog[open]::backdrop { animation:qc-backdrop-enter .45s ease both; }
#quick-contact-dialog, #quick-contact-dialog * { box-sizing:border-box; }

/* 제목과 닫기 */
#quick-contact-dialog .dialog-heading { position:relative; display:block; margin:0 0 30px; padding:0 45px 25px 0; border-bottom:1px solid var(--qc-line); }
#quick-contact-title { margin:0; color:var(--qc-ink); font-family:var(--font-serif); font-size:32px; font-weight:400; line-height:1.45; letter-spacing:-.035em; }
#quick-contact-title::before { content:"FASCIA · CONSULTATION"; display:block; margin-bottom:12px; color:var(--qc-muted); font-family:var(--font-serif); font-size:11px; font-weight:400; line-height:1.5; letter-spacing:.16em; }
#quick-contact-dialog [data-close-contact] { position:absolute; top:-6px; right:-10px; display:grid; place-items:center; width:44px; height:44px; min-width:0; margin:0; padding:0; border:0; border-radius:50%; background:transparent; color:var(--qc-ink); font-size:0; box-shadow:none; cursor:pointer; transition:background .3s ease,transform .4s cubic-bezier(.22,1,.36,1); }
#quick-contact-dialog [data-close-contact]::before, #quick-contact-dialog [data-close-contact]::after { content:""; position:absolute; width:19px; height:1px; background:currentColor; }
#quick-contact-dialog [data-close-contact]::before { transform:rotate(45deg); }
#quick-contact-dialog [data-close-contact]::after { transform:rotate(-45deg); }

/* 폼 레이아웃 */
#quick-contact-dialog .form-layout { display:block; margin:0; padding:0; }
#quick-contact-dialog .form-layout > aside { display:none; }
#quick-contact-dialog form.panel.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 28px; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
#quick-contact-dialog .form-grid > .full { grid-column:1 / -1; }
#quick-contact-dialog .form-grid > label:not(.check) { display:flex; flex-direction:column; gap:7px; min-width:0; margin:0; color:var(--qc-ink); font-size:13px; font-weight:400; line-height:1.6; }
#quick-contact-dialog .form-grid > .honeypot { display:none!important; }

/* 얇은 라인 입력란 */
#quick-contact-dialog .form-grid input:not([type="hidden"]):not([type="checkbox"]), #quick-contact-dialog .form-grid textarea { display:block; width:100%; min-width:0; margin:0; padding:11px 0; border:0; border-bottom:1px solid var(--qc-line); border-radius:0; outline:none; background:transparent; color:var(--qc-ink); font:inherit; font-size:16px; font-weight:400; line-height:1.65; box-shadow:none; transition:border-color .3s ease,background .3s ease; }
#quick-contact-dialog .form-grid input:not([type="hidden"]):not([type="checkbox"]) { height:46px; }
#quick-contact-dialog .form-grid textarea { min-height:94px; height:94px; max-height:220px; resize:vertical; }
#quick-contact-dialog .form-grid input::placeholder, #quick-contact-dialog .form-grid textarea::placeholder { color:#a2978c; opacity:1; font-size:14px; }
#quick-contact-dialog .form-grid input:not([type="checkbox"]):focus, #quick-contact-dialog .form-grid textarea:focus { border-bottom-color:var(--qc-ink); background:rgb(112 84 66 / 3%); box-shadow:0 1px 0 var(--qc-ink); }
#quick-contact-dialog .form-grid input:user-invalid, #quick-contact-dialog .form-grid textarea:user-invalid { border-bottom-color:#a45140; }
#quick-contact-dialog .form-grid input:-webkit-autofill { -webkit-text-fill-color:var(--qc-ink); -webkit-box-shadow:0 0 0 100px var(--qc-paper) inset; }

/* 안내 문구 */
#quick-contact-dialog .form-grid small { display:block; margin:0; color:var(--qc-muted); font-size:12px; font-weight:400; line-height:1.8; word-break:keep-all; overflow-wrap:anywhere; }
#quick-contact-dialog .form-grid > small.full { margin-top:-14px; }
#quick-contact-dialog .form-grid label > small { margin-top:2px; }

/* 개인정보 동의 */
#quick-contact-dialog .form-grid > .check { display:flex; align-items:flex-start; gap:10px; margin:0; padding:5px 0 0; color:var(--qc-muted); font-size:12px; font-weight:400; line-height:1.8; cursor:pointer; }
#quick-contact-dialog .check input[type="checkbox"] { flex:0 0 17px; width:17px; height:17px; margin:3px 0 0; padding:0; accent-color:#705b49; cursor:pointer; }
#quick-contact-dialog .check span { min-width:0; }
#quick-contact-dialog .check a { color:var(--qc-ink); text-decoration:underline; text-decoration-color:#b7a796; text-underline-offset:4px; text-decoration-thickness:1px; }

/* 접수 버튼 */
#quick-contact-dialog .form-grid > button[type="submit"] { position:relative; display:flex; align-items:center; justify-content:center; gap:18px; width:100%; min-height:54px; margin:0; padding:16px 48px; border:1px solid #705b49; border-radius:1px; background:#705b49; color:#fffaf3; font:inherit; font-size:14px; font-weight:400; line-height:1.5; letter-spacing:.1em; box-shadow:none; cursor:pointer; transition:background .3s ease,border-color .3s ease; }
#quick-contact-dialog .form-grid > button[type="submit"]::after { content:""; position:absolute; right:25px; width:17px; height:7px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:skewX(40deg); transition:translate .35s cubic-bezier(.22,1,.36,1); }
#quick-contact-dialog .form-grid > button[type="submit"]:disabled { opacity:.55; cursor:wait; }
#quick-contact-dialog :is(button,a,input[type="checkbox"]):focus-visible { outline:2px solid #705b49; outline-offset:5px; }

/* 열릴 때 제목과 폼이 순차적으로 나타납니다 */
#quick-contact-dialog[open] .dialog-heading { animation:qc-content-enter .7s cubic-bezier(.22,1,.36,1) .08s both; }
#quick-contact-dialog[open] .form-grid { animation:qc-content-enter .75s cubic-bezier(.22,1,.36,1) .16s both; }

@media (hover:hover) {
    #quick-contact-dialog [data-close-contact]:hover { background:rgb(112 84 66 / 7%); transform:rotate(90deg); }
    #quick-contact-dialog .check a:hover { text-decoration-color:var(--qc-ink); }
    #quick-contact-dialog .form-grid > button[type="submit"]:not(:disabled):hover { background:#554436; border-color:#554436; }
    #quick-contact-dialog .form-grid > button[type="submit"]:not(:disabled):hover::after { translate:4px 0; }
}

@media (max-width:600px) {
    #quick-contact-dialog { width:calc(100% - 28px); max-height:calc(100dvh - 28px); padding:32px 25px 26px; }
    #quick-contact-dialog .dialog-heading { margin-bottom:24px; padding-bottom:21px; }
    #quick-contact-title { font-size:28px; }
    #quick-contact-title::before { font-size:10px; letter-spacing:.14em; }
    #quick-contact-dialog form.panel.form-grid { gap:21px 18px; }
    #quick-contact-dialog .form-grid > label:not(.check) { font-size:12px; }
    #quick-contact-dialog .form-grid textarea { min-height:86px; height:86px; }
    #quick-contact-dialog .form-grid > button[type="submit"] { min-height:52px; }
}

@media (max-width:360px) {
    #quick-contact-dialog form.panel.form-grid { grid-template-columns:1fr; }
}

@keyframes qc-dialog-enter {
    from { opacity:0; transform:translateY(22px) scale(.975); }
    to { opacity:1; transform:translateY(0) scale(1); }
}

@keyframes qc-content-enter {
    from { opacity:0; transform:translateY(12px); }
    to { opacity:1; transform:translateY(0); }
}

@keyframes qc-backdrop-enter {
    from { opacity:0; }
    to { opacity:1; }
}

@media (prefers-reduced-motion:reduce) {
    #quick-contact-dialog, #quick-contact-dialog::backdrop, #quick-contact-dialog * { animation:none!important; transition:none!important; }
}


/* 모바일 헤더 · 삭제한 메뉴 줄의 빈 공간 제거 */
@media (max-width:1000px) {
    :root { --fh-height:68px; }
    #fascia-header, #fascia-header.is-solid { height:var(--fh-height); min-height:0; }
    #fascia-header .fh-inner { display:flex; align-items:center; justify-content:space-between; grid-template-rows:none; width:100%; height:100%; min-height:0; gap:12px; padding:0 20px; }
    #fascia-header .fh-nav { display:none; }
    #fascia-header .fh-brand { flex-shrink:0; }
    #fascia-header .fh-actions { flex:0 0 auto; margin-left:auto; gap:10px; }
}

@media (max-width:600px) {
    #fascia-header .fh-inner { padding-inline:12px; gap:8px; }
    #fascia-header .fh-actions { gap:8px; }
    #fascia-header .fh-language-toggle { width:90px; }
    #fascia-header .fh-allmenu { width:42px; }
}



/* 모바일 · 푸터 글자 크기와 줄 간격 */
@media (max-width:800px) {
    .footer .footer-info { gap:10px; }
    .footer .footer-info p { align-items:flex-start; gap:9px; font-size:13px; font-weight:400; line-height:1.7; word-break:keep-all; overflow-wrap:anywhere; }
    .footer .info-icon { flex:0 0 18px; width:18px; height:18px; margin-top:2px; object-fit:contain; }
    .footer .info-tel a { color:inherit; font:inherit; text-decoration:none !important; border-bottom:0; box-shadow:none; }
    .footer .info-tel a[x-apple-data-detectors] { color:inherit !important; text-decoration:none !important; }

    .footer .footer-hours { gap:9px; }
    .footer .hours-icon { flex:0 0 18px; width:18px; height:22px; }
    .footer .hours-icon img { width:18px; height:18px; object-fit:contain; }
    .footer .hours-list { min-width:0; margin:0; gap: 0px; }
    .footer .hours-row { display:grid; grid-template-columns:64px minmax(0,1fr); gap:12px; }
    .footer .hours-row + .hours-row { margin-top:5px; }
    .footer .hours-row dt, .footer .hours-row dd { width:auto; margin:0; font-size:12px; font-weight:400; line-height:1.1; word-break:keep-all; }

    .footer .footer-left { min-width:0; width:100%; }
    .footer .footer-logo { margin:0; }
    .footer .footer-logo img { display:block; width:280px; max-width:100%; height:auto; }
    .footer .footer-links { gap:1px; margin:8px 0; }
    .footer .footer-links li { margin:0; line-height:1.1; }
    .footer .footer-links a { display:inline-block; font-size:12px; font-weight:400; line-height:1.7; }
    .footer .footer-biz { font-size:11px; font-weight:400; line-height:1.9; word-break:keep-all; }
    .footer .footer-biz .bar { margin:0 6px; }
    .footer .footer-copyright { font-size:10px; line-height:1.8; }
}



/* 모바일 · 전체 메뉴 간소화 */
@media (max-width:800px) {
    #fascia-allmenu { inset:0; width:100%; max-width:none; height:100%; height:100dvh; max-height:none; margin:0; padding:0; border:0; border-radius:0; overflow-x:hidden; overflow-y:auto; scrollbar-gutter:auto; clip-path:none; transform:none; transition:opacity .15s ease; }
    #fascia-allmenu.is-open { opacity:1; clip-path:none; }
    #fascia-allmenu.is-closing { opacity:0; clip-path:none; transition:opacity .15s ease; }

    #fascia-allmenu .fm-shell { width:100%; min-height:100%; padding:0 24px calc(32px + env(safe-area-inset-bottom)); }
    #fascia-allmenu .fm-top { position:sticky; top:0; z-index:5; min-height:64px; padding-top:env(safe-area-inset-top); justify-content:flex-end; background:var(--fm-paper); }
    #fascia-allmenu .fm-caption, #fascia-allmenu .fm-brand-panel, #fascia-allmenu .fm-bottom, #fascia-allmenu .fm-number { display:none; }

    /* 닫기 버튼 */
    #fascia-allmenu .fm-close { width:44px; height:44px; margin-right:-10px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; transition:none; }
    #fascia-allmenu .fm-close::before, #fascia-allmenu .fm-close::after { display:none; }
    #fascia-allmenu .fm-close span { left:11px; top:21px; width:22px; height:1px; transition:none; }
    #fascia-allmenu .fm-close span:first-child { transform:rotate(45deg); }
    #fascia-allmenu .fm-close span:last-child { transform:rotate(-45deg); }
    #fascia-allmenu .fm-close:focus:not(:focus-visible) { outline:none; }
    #fascia-allmenu .fm-close:focus-visible { outline:1px solid currentColor; outline-offset:0; }

    /* 메뉴 목록 */
    #fascia-allmenu .fm-layout { display:block; flex:0 0 auto; padding:8px 0 0; }
    #fascia-allmenu .fm-navigation { width:100%; padding:0; border:0; }
    #fascia-allmenu .fm-groups { display:grid; grid-template-columns:minmax(0,1fr); gap:28px; }
    #fascia-allmenu .fm-group { opacity:1; transform:none; animation:none; transition:none; }
    #fascia-allmenu .fm-group-heading { gap:0; padding-bottom:12px; border-bottom:1px solid rgb(112 84 66 / 18%); }
    #fascia-allmenu .fm-group h3 { font-size:22px; font-weight:400; line-height:1.4; letter-spacing:-.015em; }
    #fascia-allmenu .fm-links { margin-top:8px !important; }
    #fascia-allmenu .fm-link { min-height:26px; padding:4px 0; font-size:14px; font-weight:400; line-height:1.6; }
    #fascia-allmenu .fm-link > span:first-child { transform:none; }
    #fascia-allmenu .fm-link > span:first-child::after { display:none; }
    #fascia-allmenu .fm-link-arrow { display:none; }
    #fascia-allmenu .fm-nested .fm-link { font-size:13px; }

    /* 순차 등장과 호버 이동 제거 */
    #fascia-allmenu .fm-navigation *, #fascia-allmenu .fm-navigation *::before, #fascia-allmenu .fm-navigation *::after { animation:none !important; transition:none !important; }
}








#fascia-header { top:var(--fh-translate-offset,0px) !important; }