@charset "utf-8";
/* =========================================================================
   펜션 · 독채 풀빌라형 1 (pension1)
   따뜻한 아이보리 바탕에 물빛(딥 틸)을 주 색으로 쓰고, 불멍 · 요금처럼
   눈이 멈춰야 하는 곳에만 테라코타를 쓴다.
   ========================================================================= */

:root{
  --pn-bg:#faf7f2;            /* 아이보리 */
  --pn-bg2:#f1ece3;           /* 연한 모래 */
  --pn-bg3:#e7e0d5;
  --pn-line:#e0d8cb;
  --pn-ink:#2a2724;           /* 따뜻한 먹색 */
  --pn-mut:#857c70;
  --pn-key:#2f6b6a;           /* 물빛 — 주 포인트 */
  --pn-key-d:#24534f;
  --pn-acc:#c2703f;           /* 테라코타 — 요금 · 불멍 */
  --pn-acc-bg:#f7ece4;
  --pn-dark:#26302f;          /* 푸터 · 오시는 길 */
  --pn-wrap:1180px;
  --pn-gutter:24px;
  --pn-fixedh:74px;
  --pn-serif:"Noto Serif KR", Georgia, "Nanum Myeongjo", serif;
  --pn-sans:-apple-system, BlinkMacSystemFont, "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", sans-serif;
}

body{ margin:0; background:var(--pn-bg); color:var(--pn-ink);
  font-family:var(--pn-sans); font-size:16px; line-height:1.78; letter-spacing:-.01em; -webkit-text-size-adjust:100%; }
img{ max-width:100%; height:auto; vertical-align:middle; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
h1,h2,h3,h4{ margin:0; line-height:1.4; letter-spacing:-.03em; }
p{ margin:0; }
ul,ol,dl,dd{ margin:0; padding:0; list-style:none; }
table{ border-collapse:collapse; }
:focus-visible{ outline:2px solid var(--pn-key); outline-offset:3px; }

.pn-skip{ position:absolute; left:-9999px; }
.pn-skip:focus{ left:10px; top:10px; z-index:999; background:#fff; padding:10px 16px; }
.sound_only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

.pn-wrap{ max-width:var(--pn-wrap); margin:0 auto; padding-left:var(--pn-gutter); padding-right:var(--pn-gutter); }
.pn-ico{ width:1.15em; height:1.15em; flex:none; }
#pn-main [id]{ scroll-margin-top:calc(var(--pn-fixedh) + 16px); }

.pn-sec{ padding:100px 0; }
.pn-label{ margin:0 0 10px; font-size:12.5px; font-weight:700; letter-spacing:.24em; color:var(--pn-key); }
.pn-head{ max-width:660px; margin:0 auto 50px; text-align:center; }
.pn-head h2{ font-family:var(--pn-serif); font-size:clamp(27px,3.5vw,40px); font-weight:600; }
.pn-head__desc{ margin-top:14px; color:var(--pn-mut); font-size:15.5px; }

.pn-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:54px; padding:0 32px;
  border:1px solid var(--pn-key); border-radius:4px; background:var(--pn-key); color:#fff;
  font-size:15.5px; font-weight:700; transition:background .2s,color .2s,border-color .2s; }
.pn-btn:hover{ background:var(--pn-key-d); border-color:var(--pn-key-d); }
.pn-btn--line{ background:transparent; color:var(--pn-key); }
.pn-btn--line:hover{ background:rgba(47,107,106,.08); color:var(--pn-key-d); }
.pn-btn--sm{ min-height:44px; padding:0 22px; font-size:14.5px; }
.pn-empty{ padding:26px; border:1px dashed var(--pn-line); border-radius:6px; color:var(--pn-mut); text-align:center; font-size:14.5px; }
.pn-empty code{ font-family:ui-monospace,Menlo,Consolas,monospace; }

/* 고정 헤더 ------------------------------------------------------------- */
.pn-fixed{ position:fixed; inset:0 0 auto; z-index:60; transition:background .25s,box-shadow .25s; }
.pn-fixed.is-solid,.pn-fixed:not(.is-main){ background:rgba(250,247,242,.95); box-shadow:0 1px 0 var(--pn-line); backdrop-filter:blur(8px); }
.pn-demo{ display:flex; flex-wrap:wrap; justify-content:center; gap:4px 18px; padding:7px 16px; background:var(--pn-dark); color:#b3bdb9; font-size:12.5px; }
.pn-demo b{ color:#fff; }
.pn-demo a{ color:#9fd0c8; font-weight:700; border-bottom:1px solid rgba(159,208,200,.5); }

.pn-header__in{ display:flex; align-items:center; gap:24px; min-height:74px; }
.pn-logo{ display:flex; align-items:center; gap:10px; }
.pn-logo__mark{ display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--pn-key); color:#fff; }
.pn-logo__mark .pn-ico{ width:20px; height:20px; }
.pn-logo__txt{ display:flex; flex-direction:column; line-height:1.2; }
.pn-logo__txt strong{ font-family:var(--pn-serif); font-size:20px; font-weight:600; }
.pn-logo__txt small{ font-size:10.5px; letter-spacing:.22em; color:var(--pn-mut); }
.pn-gnb{ margin-left:auto; }
.pn-gnb>ul{ display:flex; align-items:center; gap:30px; }
.pn-gnb>ul>li{ position:relative; }
.pn-gnb>ul>li>a{ display:block; padding:10px 0; font-size:15.5px; }
.pn-gnb>ul>li>a:hover{ color:var(--pn-key); }
.pn-gnb li ul{ position:absolute; left:50%; top:100%; transform:translateX(-50%); min-width:154px; padding:8px 0;
  background:#fff; border:1px solid var(--pn-line); border-radius:6px; box-shadow:0 10px 24px rgba(42,39,36,.10);
  opacity:0; visibility:hidden; transition:.18s; }
.pn-gnb li:hover ul,.pn-gnb li:focus-within ul{ opacity:1; visibility:visible; }
.pn-gnb li ul a{ display:block; padding:8px 18px; font-size:14.5px; white-space:nowrap; }
.pn-gnb li ul a:hover{ color:var(--pn-key); }
.pn-gnb__empty{ font-size:13px; color:var(--pn-mut); }
.pn-gnb__empty a{ color:var(--pn-key); text-decoration:underline; }
.pn-headcta{ display:inline-flex; align-items:center; height:44px; padding:0 22px; border-radius:4px;
  background:var(--pn-acc); color:#fff; font-size:14.5px; font-weight:700; }
.pn-headcta:hover{ background:#a95d32; }
.pn-burger{ display:none; width:44px; height:44px; padding:0; border:0; background:transparent; }
.pn-burger span{ display:block; width:22px; height:1.6px; margin:5px auto; background:var(--pn-ink); }

/* 메인 상단 — 히어로 위에서는 흰 글자 (스크롤하면 is-solid 로 되돌아간다) */
.pn-fixed.is-main:not(.is-solid) .pn-logo__txt strong,
.pn-fixed.is-main:not(.is-solid) .pn-gnb>ul>li>a{ color:#fff; text-shadow:0 1px 3px rgba(18,24,23,.5); }
.pn-fixed.is-main:not(.is-solid) .pn-logo__txt small{ color:#d6e2de; }
.pn-fixed.is-main:not(.is-solid) .pn-logo__mark{ background:rgba(255,255,255,.22); box-shadow:inset 0 0 0 1px rgba(255,255,255,.6); }
.pn-fixed.is-main:not(.is-solid) .pn-gnb>ul>li>a:hover{ color:#d9ece8; }
.pn-fixed.is-main:not(.is-solid) .pn-burger span{ background:#fff; }

/* 드로어 ---------------------------------------------------------------- */
.pn-drawer{ position:fixed; inset:0; z-index:80; }
.pn-drawer__bg{ position:absolute; inset:0; background:rgba(38,48,47,.55); }
.pn-drawer__panel{ position:absolute; right:0; top:0; bottom:0; width:min(84vw,330px); padding:26px 26px 30px;
  background:var(--pn-bg); overflow-y:auto; }
.pn-drawer__close{ position:absolute; right:14px; top:14px; width:40px; height:40px; border:0; background:transparent; font-size:19px; }
.pn-drawer__brand{ margin-bottom:22px; font-family:var(--pn-serif); font-size:21px; }
.pn-drawer__brand small{ display:block; font-size:10.5px; letter-spacing:.2em; color:var(--pn-mut); font-family:var(--pn-sans); }
.pn-drawer__panel>ul>li>a{ display:block; padding:13px 0; border-bottom:1px solid var(--pn-line); font-size:16.5px; font-weight:700; }
.pn-drawer__panel ul ul{ padding:6px 0 10px; }
.pn-drawer__panel ul ul a{ display:block; padding:6px 0 6px 12px; font-size:14.5px; color:var(--pn-mut); font-weight:400; }
.pn-drawer__state{ margin-top:22px; font-size:14px; color:var(--pn-mut); }
.pn-drawer__tel{ display:flex; align-items:center; gap:9px; margin-top:12px; font-size:19px; font-weight:700; color:var(--pn-key); }

/* 서브 페이지 배너 ------------------------------------------------------ */
.pn-sbanner{ padding:calc(var(--pn-fixedh) + 54px) 0 40px; background:var(--pn-bg2); border-bottom:1px solid var(--pn-line); }
.pn-sbanner p{ font-size:11.5px; letter-spacing:.24em; color:var(--pn-key); }
.pn-sbanner h1{ margin-top:8px; font-family:var(--pn-serif); font-size:clamp(25px,3.2vw,36px); font-weight:600; }
.pn-sub{ padding:56px 0 100px; }

/* 1. 히어로 ------------------------------------------------------------- */
.pn-hero{ position:relative; display:flex; align-items:flex-end; min-height:min(92vh,820px); padding:0 0 92px;
  color:#fff; overflow:hidden; }
.pn-hero__bg{ position:absolute; inset:0; background:var(--pn-dark); }
.pn-hero__bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(20,26,25,.45) 0%,rgba(20,26,25,.12) 38%,rgba(20,26,25,.72) 100%); }
.pn-hero__img,.pn-hero__video{ width:100%; height:100%; object-fit:cover; }
/* 영상은 실제로 재생이 시작되면 그때 드러낸다 — 그전에는 poster(사진)가 보인다 */
.pn-hero__video{ position:absolute; inset:0; opacity:0; transition:opacity .6s ease; }
.pn-hero__video.is-on{ opacity:1; }
.pn-hero__in{ position:relative; width:100%; }
.pn-hero__kicker{ font-size:12px; font-weight:700; letter-spacing:.3em; color:#cfe3de; }
.pn-hero__head{ margin:16px 0 0; font-family:var(--pn-serif); font-weight:600;
  font-size:clamp(34px,5.6vw,66px); line-height:1.24; text-shadow:0 2px 18px rgba(12,18,17,.45); }
.pn-hero__head em{ font-style:normal; color:#f0c9a8; }
.pn-hero__desc{ max-width:540px; margin-top:18px; font-size:16.5px; color:rgba(255,255,255,.88); }
.pn-hero__cta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:32px; }
.pn-hero__cta .pn-btn--key{ background:var(--pn-acc); border-color:var(--pn-acc); }
.pn-hero__cta .pn-btn--key:hover{ background:#a95d32; border-color:#a95d32; }
.pn-hero__cta .pn-btn--line{ border-color:rgba(255,255,255,.7); color:#fff; }
.pn-hero__cta .pn-btn--line:hover{ background:rgba(255,255,255,.14); color:#fff; }

/* 2. 핵심 한 줄 --------------------------------------------------------- */
.pn-key{ background:var(--pn-bg2); border-bottom:1px solid var(--pn-line); }
.pn-key__in{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.pn-key__in>div{ display:flex; flex-direction:column; align-items:center; gap:2px; padding:26px 16px; text-align:center; }
.pn-key__in>div+div{ border-left:1px solid var(--pn-line); }
.pn-key__in .pn-ico{ width:24px; height:24px; margin-bottom:6px; color:var(--pn-key); }
.pn-key__in b{ font-size:16px; }
.pn-key__in span{ font-size:13px; color:var(--pn-mut); line-height:1.6; }

/* 3. 소개 --------------------------------------------------------------- */
.pn-about__in{ display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:start; }
.pn-about__tx h2{ margin:0 0 20px; font-family:var(--pn-serif); font-size:clamp(26px,3.4vw,38px); font-weight:600; }
.pn-about__tx p{ margin-bottom:16px; color:#4d4740; }
.pn-about__pts li{ display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; gap:2px 14px;
  padding:20px 0; border-bottom:1px solid var(--pn-line); }
.pn-about__pts li:first-child{ border-top:1px solid var(--pn-line); }
.pn-about__pts .pn-ico{ grid-row:1 / span 2; width:26px; height:26px; margin-top:5px; color:var(--pn-key); }
.pn-about__pts b{ font-size:16.5px; }
.pn-about__pts span{ font-size:14.5px; color:var(--pn-mut); line-height:1.7; }

/* 4. 객실 --------------------------------------------------------------- */
.pn-room{ background:var(--pn-bg2); }
.pn-room__list{ display:flex; flex-direction:column; gap:70px; }
.pn-room__it{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.pn-room__it.is-flip .pn-room__ph{ order:2; }
.pn-room__ph{ position:relative; display:block; overflow:hidden; border-radius:6px; background:var(--pn-bg3); }
.pn-room__ph img{ width:100%; aspect-ratio:3/2; object-fit:cover; transition:transform .5s ease; }
.pn-room__ph:hover img{ transform:scale(1.04); }
.pn-room__noimg{ display:block; aspect-ratio:3/2; }
.pn-room__badge{ position:absolute; left:16px; top:16px; padding:5px 14px; border-radius:999px;
  background:rgba(250,247,242,.94); font-size:12.5px; font-weight:700; color:var(--pn-key); }
.pn-room__tx h3{ font-family:var(--pn-serif); font-size:clamp(22px,2.6vw,30px); font-weight:600; }
.pn-room__desc{ margin:14px 0 22px; color:var(--pn-mut); font-size:15px; }
.pn-room__spec{ margin-bottom:26px; border-top:1px solid var(--pn-line); }
.pn-room__spec>div{ display:flex; gap:16px; padding:11px 0; border-bottom:1px solid var(--pn-line); font-size:14.5px; }
.pn-room__spec dt{ flex:0 0 58px; color:var(--pn-mut); }
.pn-room__spec dd{ margin:0; }

/* 5. 시설 --------------------------------------------------------------- */
.pn-fac__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.pn-fac__grid a{ display:block; }
.pn-fac__grid img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:6px; background:var(--pn-bg3); }
.pn-fac__noimg{ display:block; aspect-ratio:3/2; border-radius:6px; background:var(--pn-bg3); }
.pn-fac__grid div{ padding-top:14px; }
.pn-fac__grid b{ display:block; font-size:16.5px; }
.pn-fac__grid span{ display:block; margin-top:4px; font-size:14px; color:var(--pn-mut); line-height:1.65; }
.pn-fac__grid em{ display:inline-flex; align-items:center; gap:5px; margin-top:8px; font-style:normal;
  font-size:12.5px; color:var(--pn-key); }

/* 6. 요금표 ------------------------------------------------------------- */
.pn-rate{ background:var(--pn-bg2); }
.pn-rate__scroll{ overflow-x:auto; border:1px solid var(--pn-line); border-radius:6px; background:#fff; }
.pn-rate__tbl{ width:100%; min-width:760px; font-size:14.5px; }
.pn-rate__tbl th,.pn-rate__tbl td{ padding:13px 12px; text-align:center; border-bottom:1px solid var(--pn-line); white-space:nowrap; }
.pn-rate__tbl thead th{ background:var(--pn-bg2); font-size:13px; font-weight:700; color:var(--pn-mut); }
.pn-rate__tbl thead tr:first-child th{ border-bottom:1px solid var(--pn-line); }
.pn-rate__tbl thead th[colspan]{ color:var(--pn-ink); letter-spacing:.04em; }
.pn-rate__tbl tbody th{ background:var(--pn-bg); font-weight:700; }
.pn-rate__tbl tbody tr:last-child th,.pn-rate__tbl tbody tr:last-child td{ border-bottom:0; }
.pn-rate__tbl td{ font-variant-numeric:tabular-nums; }
.pn-rate__tbl tbody tr:last-child td{ color:var(--pn-acc); font-weight:700; }
.pn-rate__note{ margin-top:22px; }
.pn-rate__note li{ position:relative; padding-left:16px; font-size:14px; color:var(--pn-mut); line-height:1.85; }
.pn-rate__note li::before{ content:""; position:absolute; left:2px; top:13px; width:4px; height:4px; border-radius:50%; background:var(--pn-mut); }

/* 7. 이용 안내 ---------------------------------------------------------- */
.pn-guide__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.pn-guide__box{ padding:28px 26px; border:1px solid var(--pn-line); border-radius:6px; background:#fff; }
.pn-guide__box h3{ margin-bottom:14px; font-size:17px; color:var(--pn-key); }
.pn-guide__box li{ position:relative; padding-left:15px; margin-bottom:9px; font-size:14.5px; color:#4d4740; line-height:1.75; }
.pn-guide__box li::before{ content:""; position:absolute; left:2px; top:11px; width:4px; height:4px; border-radius:50%; background:var(--pn-key); }
.pn-guide__box li:last-child{ margin-bottom:0; }

/* 8. 주변 --------------------------------------------------------------- */
.pn-travel{ background:var(--pn-bg2); }
.pn-travel__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pn-travel__grid img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:6px; background:var(--pn-bg3); }
.pn-travel__grid b{ display:block; margin-top:14px; font-size:16.5px; }
.pn-travel__grid span{ display:block; margin-top:3px; font-size:13.5px; color:var(--pn-mut); }

/* 9. 후기 --------------------------------------------------------------- */
.pn-rev__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.pn-rev__grid li{ padding:28px 26px; border:1px solid var(--pn-line); border-radius:6px; background:#fff; }
.pn-rev__star{ color:var(--pn-acc); font-size:15px; letter-spacing:.12em; }
.pn-rev__grid h3{ margin:10px 0 10px; font-size:16.5px; }
.pn-rev__tx{ font-size:14.5px; color:var(--pn-mut); line-height:1.8; }
.pn-rev__meta{ margin-top:14px; font-size:12.5px; color:var(--pn-mut); }
.pn-rev__more{ margin-top:36px; text-align:center; }
.pn-rev__more a{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--pn-key); }

/* 10. 예약 문의 --------------------------------------------------------- */
.pn-book{ background:var(--pn-bg2); }
.pn-book__rt{ max-width:660px; margin:-26px auto 40px; padding:14px 18px; border-radius:6px;
  background:var(--pn-acc-bg); text-align:center; font-size:14.5px; }
.pn-book__rt a{ font-weight:700; color:var(--pn-acc); border-bottom:1px solid rgba(194,112,63,.45); }
.pn-book__in{ display:grid; grid-template-columns:1.35fr .65fr; gap:34px; align-items:start; }

.pn-form{ display:grid; grid-template-columns:1fr 1fr; gap:18px;
  padding:34px 32px; border:1px solid var(--pn-line); border-radius:6px; background:#fff; }
.pn-form__done{ grid-column:1 / -1; display:flex; align-items:center; gap:9px; padding:13px 16px; border-radius:6px;
  background:rgba(47,107,106,.1); color:var(--pn-key-d); font-size:14.5px; font-weight:700; }
.pn-form__row{ display:flex; flex-direction:column; gap:7px; }
.pn-form__row.is-wide{ grid-column:1 / -1; }
.pn-form__row label,.pn-form__lb{ font-size:13.5px; font-weight:700; }
.pn-form__row label b,.pn-form__lb b{ color:var(--pn-acc); }
.pn-form input[type=text],.pn-form input[type=tel],.pn-form input[type=date],.pn-form select,.pn-form textarea{
  width:100%; padding:12px 13px; border:1px solid var(--pn-line); border-radius:4px; background:var(--pn-bg);
  font:inherit; font-size:15px; color:var(--pn-ink); box-sizing:border-box; }
.pn-form textarea{ resize:vertical; line-height:1.7; }
.pn-form input:focus,.pn-form select:focus,.pn-form textarea:focus{ border-color:var(--pn-key); outline:none; background:#fff; }
.pn-form__captcha #captcha{ margin-top:2px; }
.pn-form__agree{ grid-column:1 / -1; padding-top:4px; font-size:13.5px; color:var(--pn-mut); }
.pn-form__agree label{ display:inline-flex; align-items:center; gap:7px; font-weight:700; color:var(--pn-ink); }
.pn-form__agree>a{ margin-left:8px; color:var(--pn-key); text-decoration:underline; }
.pn-form__agree p{ margin-top:6px; font-size:12.5px; }
.pn-form__err{ grid-column:1 / -1; margin:0; padding:11px 14px; border-radius:6px;
  background:rgba(194,112,63,.12); color:#9d4a1e; font-size:14px; font-weight:700; }
.pn-form__submit{ grid-column:1 / -1; min-height:56px; border:0; border-radius:4px;
  background:var(--pn-acc); color:#fff; font-size:16px; font-weight:700; cursor:pointer; transition:background .2s; }
.pn-form__submit:hover{ background:#a95d32; }
.pn-form__submit:disabled{ background:var(--pn-mut); cursor:default; }

/* 달력 예약(adplan_booking)으로 바꾼 경우의 안내 카드 */
.pn-live{ padding:30px 28px; border:1px solid var(--pn-line); border-radius:6px; background:#fff; }
.pn-live__steps{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 0 20px; padding:0; list-style:none; }
.pn-live__steps li{ display:flex; flex-direction:column; gap:4px; padding:16px 14px; border-radius:6px; background:var(--pn-bg2, #f6f2ec); }
.pn-live__steps b{ font-size:13px; color:var(--pn-acc); }
.pn-live__steps span{ font-size:14.5px; font-weight:700; color:var(--pn-ink); line-height:1.5; }
.pn-live__desc{ margin:0 0 20px; font-size:15px; color:var(--pn-mut); line-height:1.75; }
.pn-live__go{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%; text-decoration:none; }
.pn-live__go svg{ width:22px; height:22px; }
@media (max-width:640px){ .pn-live{ padding:22px 18px; } .pn-live__steps{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

.pn-book__side{ padding:26px 24px; border:1px solid var(--pn-line); border-radius:6px; background:#fff; }
.pn-book__side img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:4px; margin-bottom:18px; }
.pn-book__side h3{ margin-bottom:12px; font-size:16px; }
.pn-book__note li{ position:relative; padding-left:15px; margin-bottom:9px; font-size:14px; color:var(--pn-mut); line-height:1.75; }
.pn-book__note li::before{ content:""; position:absolute; left:2px; top:10px; width:4px; height:4px; border-radius:50%; background:var(--pn-key); }
.pn-book__tel{ display:flex; align-items:center; gap:9px; margin-top:18px; padding-top:16px;
  border-top:1px solid var(--pn-line); font-size:20px; font-weight:700; color:var(--pn-key); }

/* 11. 오시는 길 --------------------------------------------------------- */
.pn-visit{ padding:86px 0; background:var(--pn-dark); color:#e8ece9; }
.pn-visit__in{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.pn-visit .pn-label{ color:#8cc3ba; }
.pn-visit h2{ margin-bottom:26px; font-family:var(--pn-serif); font-size:clamp(25px,3.2vw,36px); font-weight:600; color:#fff; }
.pn-visit__list li{ display:flex; gap:13px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.13); font-size:15px; }
.pn-visit__list .pn-ico{ width:20px; height:20px; margin-top:4px; color:#8cc3ba; }
.pn-visit__list a{ border-bottom:1px solid rgba(255,255,255,.4); }
.pn-visit__ph img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:6px; }

/* 푸터 ------------------------------------------------------------------ */
.pn-footer{ padding:58px 0 40px; background:#1e2726; color:#9aa5a2; font-size:14px; }
.pn-footer__in{ display:grid; grid-template-columns:1fr 1.5fr auto; gap:40px; align-items:start; }
.pn-footer__brand strong{ display:flex; flex-direction:column; font-family:var(--pn-serif); font-size:21px; font-weight:600; color:#fff; }
.pn-footer__brand small{ font-family:var(--pn-sans); font-size:10.5px; letter-spacing:.2em; color:#7d8a86; }
.pn-footer__brand p{ margin-top:10px; }
.pn-footer__nav{ display:flex; flex-wrap:wrap; gap:6px 20px; margin-bottom:14px; }
.pn-footer__nav a:hover{ color:#fff; }
.pn-footer__nav b{ color:#cdd6d3; }
.pn-footer__co{ font-size:13px; line-height:1.8; }
.pn-footer__co a{ color:#8cc3ba; text-decoration:underline; }
.pn-footer__copy{ margin-top:12px; font-size:12.5px; color:#707c79; }
.pn-footer__call{ text-align:right; }
.pn-footer__call .pn-state{ display:inline-flex; align-items:center; gap:9px; font-size:13.5px; }
.pn-footer__call .pn-state i{ width:8px; height:8px; border-radius:50%; background:#8cc3ba; flex:none; }
.pn-footer__call a{ display:block; margin-top:8px; font-size:24px; font-weight:700; color:#fff; }
.pn-footer__call small{ display:block; font-size:12px; font-weight:400; color:#7d8a86; }

/* 모바일 하단 바 -------------------------------------------------------- */
.pn-dock{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:70;
  background:rgba(250,247,242,.97); border-top:1px solid var(--pn-line);
  padding-bottom:env(safe-area-inset-bottom,0px); transition:transform .25s ease; }
.pn-dock.is-off{ transform:translateY(110%); }
.pn-dock a{ flex:1 1 0; display:flex; flex-direction:column; align-items:center; gap:2px; padding:9px 0 8px; font-size:11.5px; }
.pn-dock .pn-ico{ width:21px; height:21px; }
.pn-dock .is-key{ background:var(--pn-acc); color:#fff; }

/* 반응형 ---------------------------------------------------------------- */
@media (max-width:1024px){
  .pn-sec{ padding:78px 0; }
  .pn-about__in{ grid-template-columns:1fr; gap:36px; }
  .pn-fac__grid{ grid-template-columns:repeat(2,1fr); }
  .pn-book__in{ grid-template-columns:1fr; }
  .pn-visit__in{ grid-template-columns:1fr; gap:32px; }
  .pn-footer__in{ grid-template-columns:1fr; gap:28px; }
  .pn-footer__call{ text-align:left; }
}
@media (max-width:860px){
  .pn-gnb,.pn-headcta{ display:none; }
  .pn-burger{ display:block; margin-left:auto; }
  .pn-dock{ display:flex; }
  body{ padding-bottom:62px; }
  .pn-hero{ min-height:78vh; padding-bottom:70px; }
  .pn-key__in{ grid-template-columns:1fr 1fr; }
  .pn-key__in>div:nth-child(odd){ border-left:0; }
  .pn-key__in>div:nth-child(n+3){ border-top:1px solid var(--pn-line); }
  .pn-room__it,.pn-room__it.is-flip{ grid-template-columns:1fr; gap:22px; }
  .pn-room__it.is-flip .pn-room__ph{ order:0; }
  .pn-room__list{ gap:52px; }
  .pn-guide__grid,.pn-travel__grid,.pn-rev__grid{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  :root{ --pn-gutter:18px; }
  .pn-sec{ padding:62px 0; }
  .pn-head{ margin-bottom:34px; }
  .pn-fac__grid{ grid-template-columns:1fr; }
  .pn-form{ grid-template-columns:1fr; padding:26px 20px; }
  .pn-hero__desc{ font-size:15.5px; }
  .pn-hero__cta{ flex-direction:column; align-items:stretch; }
  .pn-visit{ padding:62px 0; }
}
@media (prefers-reduced-motion:reduce){
  .pn-hero__video{ display:none; }
  .pn-room__ph img{ transition:none; }
  .pn-dock{ transition:none; }
}

/* 사진이 아직 없는 주변 항목 — 자리만 잡아 줄이 어긋나지 않게 */
.pn-travel__noimg{ display:block; aspect-ratio:3/2; border-radius:6px; background:var(--pn-bg3); }
