@charset "utf-8";
/* ==========================================================================
   HERA THERAPY theme
   ========================================================================== */
:root {
    --ink: #1d1e20;
    --ink-2: #444;
    --muted: #8a857f;
    --taupe: #8f877e;
    --taupe-dk: #766f67;
    --line: #e7e3de;
    --soft: #f6f4f1;
    --red: #e0362c;
    --hd-h: 60px;
    --wrap: 1250px;
    --logo: "Poppins", "Pretendard Variable", Pretendard, sans-serif;
    --sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}
@media (min-width: 1024px) { :root { --hd-h: 90px; } }

html { -webkit-text-size-adjust: 100%; }
#hera *, #hera *::before, #hera *::after { box-sizing: border-box; }
body { margin: 0; background: #fff; color: var(--ink); font-family: var(--sans); font-size: 15px; line-height: 1.6; word-break: keep-all; }
#hera, #hera h1, #hera h2, #hera h3, #hera h4, #hera h5, #hera h6, #hera button, #hera input, #hera textarea, #hera select { font-family: var(--sans); }
#hera p { word-break: keep-all; }
:where(#hera) a { color: inherit; text-decoration: none; }
#hera img { max-width: 100%; }
#hera [hidden] { display: none !important; }
html.hera-menu-open { overflow: hidden; }

.hera-wrap { width: 100%; max-width: calc(var(--wrap) + 40px); margin: 0 auto; padding: 0 20px; }

/* ---------- 공통 버튼 ---------- */
.hera-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    height: 56px; padding: 0 50px; border: 1px solid transparent; border-radius: 0;
    background: var(--taupe); color: #fff !important; font-size: 19px; font-weight: 700; letter-spacing: .01em; white-space: nowrap;
    cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .15s;
}
.hera-btn:hover { background: var(--taupe-dk); }
.hera-btn:active { transform: translateY(1px); }
.hera-btn:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.hera-btn.is-line { background: #fff; color: var(--ink) !important; border-color: #cfc9c2; }
.hera-btn.is-line:hover { border-color: var(--ink); }
.hera-btn.is-sm { height: 40px; padding: 0 18px; font-size: 14px; border-radius: 4px; }

/* ---------- 헤더 ---------- */
#hera-hd { position: relative; z-index: 100; height: var(--hd-h); color: var(--ink); background: #fff; border-bottom: 1px solid var(--line); }
.is-photo #hera-hd { position: absolute; inset: 0 0 auto; color: #fff; background: transparent; border-bottom-color: rgba(255,255,255,.28); }
.hd-inner { display: flex; align-items: center; justify-content: space-between; height: 100%; max-width: calc(var(--wrap) + 40px); margin: 0 auto; padding: 0 20px; }
.hd-logo { font-family: var(--logo); font-size: 24px; font-weight: 700; letter-spacing: -.01em; white-space: nowrap; }
.is-photo .hd-logo, .is-photo .hd-nav ul a { text-shadow: 0 1px 6px rgba(0,0,0,.18); }
.hd-nav ul { display: flex; gap: 37px; margin: 0; padding: 0; list-style: none; }
.hd-nav ul a { display: block; padding: 8px 0; font-size: 18px; font-weight: 600; transition: opacity .2s; }
.hd-nav ul a:hover { opacity: .7; }
.hd-nav ul a.on { color: #9b958f; text-shadow: none; }
.is-photo .hd-nav ul a.on { color: rgba(80,76,72,.75); }
.hd-nav-foot, .hd-burger, .hd-dim { display: none; }

@media (max-width: 1023px) {
    .hd-logo { font-size: 19px; }
    .hd-burger {
        display: flex; flex-direction: column; justify-content: center; gap: 5px;
        width: 44px; height: 44px; margin-right: -10px; padding: 0 10px; border: 0; background: none; color: inherit; cursor: pointer;
    }
    .hd-burger span { display: block; height: 2px; background: currentColor; border-radius: 1px; transition: transform .25s, opacity .25s; }
    .hera-menu-open .hd-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hera-menu-open .hd-burger span:nth-child(2) { opacity: 0; }
    .hera-menu-open .hd-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    .hera-menu-open #hera-hd { position: fixed; inset: 0 0 auto; background: #fff; color: var(--ink); border-bottom-color: var(--line); }
    .hera-menu-open #hera-hd .hd-logo { text-shadow: none; }

    .hd-nav {
        position: fixed; top: var(--hd-h); right: 0; bottom: 0; width: min(300px, 82vw);
        display: flex; flex-direction: column; justify-content: space-between;
        padding: 16px 28px calc(28px + env(safe-area-inset-bottom)); background: #fff; color: var(--ink);
        transform: translateX(100%); transition: transform .3s ease; overflow-y: auto;
    }
    .hera-menu-open .hd-nav { transform: none; box-shadow: -10px 0 30px rgba(0,0,0,.08); }
    .hd-nav ul { flex-direction: column; gap: 0; }
    .hd-nav ul li + li { border-top: 1px solid var(--line); }
    .hd-nav ul a, .is-photo .hd-nav ul a { padding: 18px 0; font-size: 17px; text-shadow: none; }
    .hd-nav ul a.on, .is-photo .hd-nav ul a.on { color: var(--taupe); }
    .hd-nav-foot { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: var(--muted); }
    .hd-nav-tel { flex-basis: 100%; font-size: 18px; font-weight: 700; color: var(--ink) !important; }
    .hd-dim { display: block; position: fixed; inset: var(--hd-h) 0 0 0; z-index: 90; background: rgba(0,0,0,.35); opacity: 0; pointer-events: none; transition: opacity .3s; }
    .hera-menu-open .hd-dim { opacity: 1; pointer-events: auto; }
}

/* ---------- 배경사진 페이지 (메인·이용안내) ---------- */
.is-photo #hera-main {
    position: relative; min-height: 100vh; min-height: 100svh; padding-top: var(--hd-h);
    background: #b9b6b2 var(--photo) center bottom / cover no-repeat;
}

/* ---------- 메인 ---------- */
.home { padding: 125px 0 30px; }
.home-sign { width: 100%; max-width: 1080px; margin: 0 auto; aspect-ratio: 1080 / 340; overflow: hidden; background: #f3eae2; box-shadow: 0 18px 40px -26px rgba(0,0,0,.45); }
.home-sign img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-rooms { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 35px 0 0; padding: 0; list-style: none; }
.home-rooms li { aspect-ratio: 410 / 231; overflow: hidden; background: #ddd; }
.home-rooms img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.home-rooms li:hover img { transform: scale(1.04); }
.home-btns { display: flex; flex-direction: column; align-items: center; gap: 30px; margin-top: 35px; }
.home-btns .hera-btn { min-width: 270px; padding: 0 50px; background: rgba(143,135,126,.96); }
.home-btns .hera-btn:hover { background: var(--taupe-dk); }

@media (max-width: 1023px) {
    .home { padding: 56px 0 40px; }
    .home .hera-wrap { padding: 0 16px; }
    .home-rooms { display: flex; gap: 8px; margin: 16px -16px 0; padding: 0 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .home-rooms::-webkit-scrollbar { display: none; }
    .home-rooms li { flex: 0 0 78%; scroll-snap-align: center; }
    .home-btns { gap: 14px; margin-top: 28px; }
    .home-btns .hera-btn { width: 100%; max-width: 320px; min-width: 0; height: 52px; font-size: 17px; padding: 0 20px; }
}

/* ---------- 이용안내 ---------- */
.guide { padding: 87px 0 56px; }
.guide-grid { display: grid; grid-template-columns: repeat(2, 377px); gap: 40px; padding-left: 20px; }
.guide-card {
    display: flex; flex-direction: column; padding: 47px 47px 45px; border-radius: 22px;
    background: rgba(255,255,255,.86); box-shadow: 0 20px 40px -24px rgba(0,0,0,.35);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.gc-label { margin: 0 0 30px; font-size: 26px; font-weight: 700; letter-spacing: -.02em; }
.gc-big { margin: 0; font-size: 28px; font-weight: 500; line-height: 1.65; letter-spacing: -.02em; }
.gc-mid { margin: 0; font-size: 21px; font-weight: 600; line-height: 2.2; letter-spacing: -.02em; }
.gc-mid span { display: block; }
.gc-mid small { font-size: 15px; font-weight: 600; }
.gc-note { margin: 8px 0 0; font-size: 14px; color: #777; }
.gc-sub { margin: 30px 0 10px; font-size: 16px; font-weight: 700; }
.gc-list { margin: 0; padding: 0; list-style: none; font-size: 15px; line-height: 2.3; color: var(--ink-2); }
.gc-reserve { margin-top: 60px; font-size: 14px; line-height: 1.75; }
.gc-reserve em { font-style: normal; color: var(--red); }
.gc-btn { width: 100%; height: 58px; margin-top: auto; padding: 0; border-radius: 6px; font-size: 16px; }
.guide-card .gc-list + .gc-btn { margin-top: 40px; }

@media (max-width: 1023px) {
    .guide { padding: 36px 0 48px; }
    .guide-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: 460px; margin: 0 auto; padding-left: 0; }
    .guide-card { padding: 32px 26px 26px; border-radius: 18px; }
    .gc-label { margin-bottom: 18px; font-size: 22px; }
    .gc-big { font-size: 24px; }
    .gc-mid { font-size: 19px; line-height: 2; }
    .gc-reserve { margin-top: 26px; }
}

/* ---------- 일반 페이지 제목 ---------- */
.is-plain #hera-main { min-height: 60vh; }
.hera-page-hd { padding: 64px 20px 36px; text-align: center; }
.ph-eyebrow { margin: 0 0 6px; font-family: var(--logo); font-size: 13px; font-weight: 600; letter-spacing: .24em; color: var(--taupe); }
.ph-title { margin: 0; font-size: 30px; font-weight: 700; letter-spacing: -.03em; }
.ph-date { margin: 10px 0 0; font-size: 16px; font-weight: 600; color: var(--ink-2); }
@media (max-width: 1023px) { .hera-page-hd { padding: 40px 16px 24px; } .ph-title { font-size: 24px; } }

/* ---------- 비공개(비밀번호) ---------- */
.hera-gate { max-width: 380px; margin: 0 auto; padding: 56px 20px 100px; text-align: center; }
.gate-title { margin: 0 0 56px; font-size: 22px; font-weight: 700; }
.gate-lock { width: 64px; height: 72px; color: #c8c8c8; }
.gate-msg { margin: 16px 0 0; color: #a3a3a3; font-size: 15px; line-height: 1.6; }
.gate-form { display: flex; gap: 8px; margin: 26px 0 0; }
.gate-form input { flex: 1; min-width: 0; height: 46px; padding: 0 14px; border: 1px solid #ddd; border-radius: 3px; font-size: 15px; background: #fff; color: var(--ink); }
.gate-form input:focus { outline: 0; border-color: var(--ink); }
.gate-form button { flex: none; width: 64px; height: 46px; border: 0; border-radius: 3px; background: #2b2b2b; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.hera-gate .gate-error { margin: 12px 0 0; color: var(--red); font-size: 14px; }
.hera-gate .gate-hint { margin: 16px 0 0; font-size: 13px; color: var(--muted); }
.gate-actions { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-top: 30px; font-size: 14px; }
.gate-sms { color: var(--taupe-dk) !important; font-weight: 700; }
.gate-home { color: #666 !important; }

/* ---------- 빈 화면 ---------- */
.hera-empty { padding: 56px 20px; text-align: center; color: var(--muted); font-size: 15px; }
.hera-empty p { margin: 14px 0 0; }
.empty-logo { width: 72px; height: 72px; color: #cfc9c2; }
img.empty-logo { width: 150px; height: auto; opacity: .45; }

/* ---------- 관리사 카드 (출근부·프로필 공용) ---------- */
.pf-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 22px; margin: 0; padding: 0; list-style: none; }
.pf-card a { display: block; }
.pf-photo { position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 12px; background: var(--soft); }
.pf-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.pf-card a:hover .pf-photo img { transform: scale(1.04); }
.pf-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.pf-noimg-logo { width: 40%; height: auto; color: #d4cec7; }
img.pf-noimg-logo { width: 62%; opacity: .5; }
.pf-badge { display: inline-block; padding: 3px 9px; border-radius: 3px; background: var(--taupe); color: #fff; font-family: var(--logo); font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.pf-badge.bd-best { background: var(--ink); }
.pf-photo .pf-badge { position: absolute; top: 12px; right: 12px; }
.pf-state { position: absolute; top: 12px; left: 12px; padding: 4px 10px; border-radius: 99px; background: rgba(29,30,32,.85); color: #fff; font-size: 12px; font-weight: 700; }
.pf-state::before { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 6px 1px 0; border-radius: 50%; background: #5fd38d; vertical-align: middle; }
.st-soon .pf-state::before { background: #f3b04a; }
.st-full .pf-state::before { background: #bbb; }
.st-full .pf-photo img { filter: grayscale(.85) brightness(.92); }
.pf-body { display: flex; flex-direction: column; gap: 2px; padding: 14px 2px 0; }
.pf-name { font-size: 19px; font-weight: 700; letter-spacing: -.02em; }
.pf-meta { font-size: 14px; color: var(--ink-2); }
.pf-time { margin-top: 4px; font-size: 15px; font-weight: 700; color: var(--taupe-dk); }
.pf-memo { font-size: 13px; color: var(--red); }
.pf-spec { margin-top: 2px; font-size: 13px; color: var(--muted); }

@media (max-width: 1023px) { .pf-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 14px; } }
@media (max-width: 640px) {
    .pf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 10px; }
    .pf-photo { border-radius: 10px; }
    .pf-state { top: 8px; left: 8px; padding: 3px 8px; font-size: 11px; }
    .pf-photo .pf-badge { top: 8px; right: 8px; }
    .pf-name { font-size: 17px; }
    .pf-meta, .pf-time { font-size: 13px; }
}

/* ---------- 출근부 ---------- */
.at-wrap { padding-bottom: 90px; }
.at-tabs { display: flex; justify-content: center; gap: 8px; margin-bottom: 30px; }
.at-tabs a { padding: 9px 20px; border: 1px solid var(--line); border-radius: 99px; font-size: 14px; font-weight: 600; color: var(--ink-2); }
.at-tabs a.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.at-count { margin: 0 0 22px; padding-bottom: 16px; border-bottom: 1px solid var(--line); font-size: 15px; font-weight: 600; }
.at-count strong { color: var(--taupe-dk); }
.at-count span { margin-left: 10px; font-weight: 400; color: var(--muted); font-size: 14px; }
.at-cta { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 56px; }
.at-cta .hera-btn { height: 52px; padding: 0 34px; font-size: 16px; }
@media (max-width: 640px) {
    .at-count span { display: block; margin: 4px 0 0; }
    .at-cta .hera-btn { width: 100%; }
}

/* 출근부 관리 (관리자) */
.at-admin { margin-top: 80px; padding: 32px; border: 2px dashed #d6cfc7; border-radius: 16px; background: #fbfaf8; }
.ata-hd { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.ata-hd h2 { margin: 0; font-size: 22px; font-weight: 700; }
.ata-hd h2 small { margin-left: 8px; font-size: 13px; font-weight: 500; color: var(--muted); }
.ata-date { display: flex; align-items: center; gap: 6px; }
.ata-date a { padding: 8px 14px; border: 1px solid var(--line); border-radius: 6px; background: #fff; font-size: 14px; font-weight: 600; }
.ata-date a.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.ata-date input { height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; font-size: 14px; }
.ata-guide { margin: 0 0 16px; font-size: 14px; color: var(--ink-2); }
.ata-empty { margin: 0; font-size: 15px; }
.ata-empty a { color: var(--taupe-dk); font-weight: 700; text-decoration: underline; }
.ata-table { border-top: 2px solid var(--ink); }
.ata-row { position: relative; display: grid; grid-template-columns: 56px minmax(120px, 1.2fr) 110px 110px 110px minmax(140px, 1.6fr) 72px; align-items: center; gap: 10px; padding: 10px 8px; border-bottom: 1px solid var(--line); background: #fff; }
.ata-row.is-on { background: #f3efe9; }
.ata-head { background: var(--soft); font-size: 13px; font-weight: 700; color: var(--ink-2); }
.ata-chk { text-align: center; }
.ata-chk input { width: 20px; height: 20px; accent-color: var(--taupe-dk); cursor: pointer; }
.ata-name { display: flex; align-items: center; gap: 10px; font-weight: 700; cursor: pointer; }
.ata-name img { width: 36px; height: 48px; border-radius: 6px; object-fit: cover; }
.ata-f select, .ata-f input { width: 100%; height: 38px; padding: 0 8px; border: 1px solid #ddd; border-radius: 6px; background: #fff; font-size: 14px; }
.ata-btns { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 22px; }
.ata-btns .hera-btn { height: 48px; padding: 0 26px; font-size: 15px; border-radius: 6px; }
/* 이용안내 수정 (관리자) */
.gd-admin { max-width: 794px; margin: 48px 0 0 20px; }
.gd-red { font-style: normal; color: var(--red); }
.gd-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.gd-f { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 700; color: var(--ink-2); }
.gd-f input, .gd-f textarea { width: 100%; padding: 10px 12px; border: 1px solid #ddd; border-radius: 6px; background: #fff; font-size: 15px; line-height: 1.6; color: var(--ink); }
.gd-f input { height: 44px; padding-top: 0; padding-bottom: 0; }
.gd-f textarea { min-height: 120px; resize: vertical; }
.gd-f input:focus, .gd-f textarea:focus { outline: 0; border-color: var(--ink); }
.gd-form .ata-btns { grid-column: 1 / -1; margin-top: 6px; }
@media (max-width: 1023px) { .gd-admin { margin: 24px auto 0; max-width: 460px; } .gd-form { grid-template-columns: minmax(0, 1fr); } }

/* 비밀번호 설정 (관리자) */
.ata-gate { margin-top: 64px; }
.ata-gate + .at-admin { margin-top: 24px; }
.ata-pw { display: inline-block; margin: 0 4px; padding: 2px 10px; border-radius: 4px; background: var(--ink); color: #fff; font-family: var(--logo); letter-spacing: .08em; }
.ata-gate-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.ata-gate-form label { display: flex; flex-direction: column; gap: 4px; flex: 1 1 200px; font-size: 13px; font-weight: 700; color: var(--ink-2); }
.ata-gate-form input { height: 46px; padding: 0 12px; border: 1px solid #ddd; border-radius: 6px; background: #fff; font-size: 15px; }
.ata-gate-form input:focus { outline: 0; border-color: var(--ink); }
.ata-gate-form .hera-btn { height: 46px; padding: 0 24px; font-size: 15px; border-radius: 6px; }
.ata-note { margin: 14px 0 0; font-size: 13px; color: var(--muted); }
.ata-note a { margin-left: 6px; color: var(--taupe-dk); font-weight: 700; text-decoration: underline; }
@media (max-width: 640px) { .ata-gate-form .hera-btn { width: 100%; } }
.ata-clear { margin-left: auto; padding: 8px 4px; border: 0; background: none; color: var(--red); font-size: 14px; text-decoration: underline; cursor: pointer; }
@media (max-width: 860px) {
    .at-admin { padding: 20px 14px; }
    .ata-head { display: none; }
    .ata-row { grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px 12px 14px 50px; }
    .ata-chk { position: absolute; left: 14px; top: 26px; }
    .ata-name, .ata-memo { grid-column: 1 / -1; }
    .ata-memo { order: 9; }
    .ata-f::before { content: attr(data-label); display: block; margin-bottom: 3px; font-size: 12px; color: var(--muted); }
    .ata-clear { margin-left: 0; }
}

/* ---------- 프로필 목록 ---------- */
.hera-board-wrap { padding-bottom: 90px; }
.pf-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 28px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.pf-filter { display: flex; gap: 8px; }
.pf-filter button { padding: 9px 18px; border: 1px solid var(--line); border-radius: 99px; background: #fff; font-size: 14px; font-weight: 600; color: var(--ink-2); cursor: pointer; }
.pf-filter button b { margin-left: 3px; color: var(--taupe); }
.pf-filter button.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.pf-filter button.on b { color: #d9d2c9; }
.pf-adm { display: flex; gap: 8px; }
#hera .pg_wrap { margin-top: 40px; }

/* ---------- 프로필 상세 ---------- */
.pf-view { display: grid; grid-template-columns: minmax(0, 520px) minmax(0, 1fr); gap: 56px; align-items: start; }
.pfv-main { aspect-ratio: 3 / 4; overflow: hidden; border-radius: 16px; background: var(--soft); }
.pfv-main img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pfv-thumbs { display: flex; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; overflow-x: auto; }
.pfv-thumbs button { display: block; width: 68px; aspect-ratio: 3 / 4; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: none; cursor: pointer; opacity: .6; transition: opacity .2s; }
.pfv-thumbs button.on, .pfv-thumbs button:hover { border-color: var(--ink); opacity: 1; }
.pfv-thumbs img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pfv-info { padding-top: 8px; }
.pfv-name { margin: 10px 0 18px; font-size: 36px; font-weight: 700; letter-spacing: -.03em; }
.pfv-attend { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 16px 20px; border-radius: 12px; background: var(--soft); font-size: 15px; }
.pfv-attend strong::before { content: ""; display: inline-block; width: 8px; height: 8px; margin: 0 8px 2px 0; border-radius: 50%; background: #3fbf74; vertical-align: middle; }
.pfv-attend.st-soon strong::before { background: #f3b04a; }
.pfv-attend.st-full strong::before, .pfv-attend.is-off strong::before { background: #bbb; }
.pfv-attend.is-off { color: var(--muted); }
.pfv-attend span { font-weight: 700; color: var(--taupe-dk); }
.pfv-attend em { font-style: normal; font-size: 13px; color: var(--red); }
.pfv-tmr { flex-basis: 100%; margin: 2px 0 0; font-size: 13px; color: var(--muted); }
.pfv-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; margin: 24px 0 0; border-top: 1px solid var(--line); }
.pfv-fields div { display: flex; gap: 14px; padding: 14px 4px; border-bottom: 1px solid var(--line); }
.pfv-fields dt { flex: none; width: 70px; font-size: 14px; color: var(--muted); }
.pfv-fields dd { margin: 0; font-size: 15px; font-weight: 600; }
.pfv-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.pfv-tags li { padding: 6px 12px; border-radius: 99px; background: #efeae4; color: var(--taupe-dk); font-size: 13px; font-weight: 600; }
.pfv-intro { margin-top: 24px; font-size: 15px; line-height: 1.85; color: var(--ink-2); }
.pfv-intro img { height: auto; }
.pfv-btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.pfv-btns .hera-btn { height: 54px; padding: 0 30px; font-size: 16px; border-radius: 6px; }
.pfv-adm { display: flex; gap: 16px; margin-top: 18px; font-size: 14px; }
.pfv-adm a { color: var(--muted) !important; text-decoration: underline; }
.pfv-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin-top: 64px; padding-top: 22px; border-top: 1px solid var(--line); font-size: 14px; }
.pfv-prev { justify-self: start; color: var(--ink-2); }
.pfv-next { justify-self: end; color: var(--ink-2); }
.pfv-list { padding: 10px 22px; border: 1px solid var(--line); border-radius: 99px; font-weight: 600; }
@media (max-width: 860px) {
    .pf-view { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .pfv-name { font-size: 28px; margin: 8px 0 14px; }
    .pfv-fields { grid-template-columns: 1fr; }
    .pfv-btns .hera-btn { flex: 1 1 100%; }
    .pfv-nav { grid-template-columns: 1fr 1fr; }
    .pfv-list { grid-column: 1 / -1; grid-row: 1; justify-self: center; }
}

/* ---------- 프로필 등록 ---------- */
.pf-write { max-width: 820px; margin: 0 auto; }
.pfw-title { margin: 0 0 24px; font-size: 22px; font-weight: 700; }
.pfw-row { display: grid; gap: 16px; margin-bottom: 16px; }
.pfw-2 { grid-template-columns: 1fr 1fr; }
.pfw-f { display: flex; flex-direction: column; gap: 6px; }
.pfw-f.is-wide { grid-column: 1 / -1; }
.pfw-f > span { font-size: 14px; font-weight: 700; }
.pfw-f > span b { color: var(--red); }
.pfw-f > span small { margin-left: 6px; font-weight: 400; color: var(--muted); }
.pfw-f input[type=text], .pfw-f input[type=password], .pfw-f select, .pfw-f textarea {
    width: 100%; height: 46px; padding: 0 14px; border: 1px solid #ddd; border-radius: 6px; background: #fff; font-size: 15px; color: var(--ink);
}
.pfw-f textarea { height: 180px; padding: 12px 14px; line-height: 1.7; }
.pfw-f input:focus, .pfw-f select:focus, .pfw-f textarea:focus { outline: 0; border-color: var(--ink); }
.pfw-files { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 0; padding: 0; list-style: none; }
.pfw-file { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px dashed #cfc9c2; border-radius: 8px; background: #fff; cursor: pointer; }
.pfw-file b { flex: none; min-width: 36px; padding: 3px 6px; border-radius: 4px; background: var(--soft); font-size: 12px; text-align: center; }
.pfw-file input { min-width: 0; font-size: 13px; }
.pfw-del { display: block; margin-top: 4px; font-size: 12px; color: var(--muted); }
.pfw-btns { display: flex; justify-content: center; gap: 10px; margin-top: 30px; }
.pfw-btns .hera-btn { height: 52px; min-width: 140px; padding: 0 30px; font-size: 16px; border-radius: 6px; }
@media (max-width: 640px) { .pfw-2, .pfw-files { grid-template-columns: 1fr; } }

/* ---------- 푸터 ---------- */
#hera-ft { padding: 30px 20px 64px; background: #1d1e20; color: #a3a3a3; text-align: center; }
.ft-logo { width: 104px; height: 104px; color: #fff; }
img.ft-logo { width: 170px; height: auto; }
.ft-name { margin: 46px 0 22px; font-size: 14px; font-weight: 600; color: #a3a3a3; }
.ft-info { display: flex; flex-direction: column; gap: 2px; font-style: normal; font-size: 13px; line-height: 1.7; }
.ft-info a { color: #d6d6d6 !important; }
.ft-name a { color: inherit !important; cursor: default; }
@media (max-width: 640px) { #hera-ft { padding-bottom: 44px; } .ft-name { margin-top: 24px; } }

/* ---------- 우측 하단 문의 버튼 ---------- */
#hera-quick { position: fixed; right: 20px; bottom: calc(24px + env(safe-area-inset-bottom)); z-index: 80; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.qk-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 136px; height: 56px; padding: 0 22px; border-radius: 999px;
    font-size: 15px; font-weight: 700; box-shadow: 0 6px 18px rgba(0,0,0,.18); transition: transform .2s;
}
.qk-btn:hover { transform: translateY(-2px); }
.qk-ico { font-size: 17px; line-height: 1; filter: saturate(.4) brightness(1.4); }
.qk-btn svg { width: 26px; height: 26px; flex: none; }
.qk-sms { background: var(--taupe); color: #fff !important; }
.qk-tele { background: #fff; color: #111 !important; }
.qk-tel { display: none !important; }
/* 모바일: 화면 아래 고정 띠 (본문을 가리지 않게) */
@media (max-width: 640px) {
    #hera { padding-bottom: calc(54px + env(safe-area-inset-bottom)); }
    #hera-quick {
        left: 0; right: 0; bottom: 0; flex-direction: row; align-items: stretch; gap: 0;
        padding-bottom: env(safe-area-inset-bottom); background: #fff; box-shadow: 0 -4px 16px rgba(0,0,0,.1);
    }
    .qk-btn { flex: 1 1 0; min-width: 0; height: 54px; padding: 0 6px; gap: 6px; border-radius: 0; box-shadow: none; font-size: 15px; }
    .qk-btn:hover { transform: none; }
    .qk-tel { display: inline-flex !important; background: var(--ink); color: #fff !important; }
    .qk-tel svg { width: 18px; height: 18px; }
    .qk-tele { border-left: 1px solid var(--line); }
    .qk-btn svg { width: 20px; height: 20px; }
    .qk-ico { font-size: 15px; }
}
@media (max-width: 360px) { .qk-btn { font-size: 14px; gap: 4px; } .has-tele .qk-btn svg, .has-tele .qk-ico { display: none; } }

/* 접근성 */
@media (prefers-reduced-motion: reduce) {
    #hera *, #hera *::before, #hera *::after { transition: none !important; }
}
