:root{--ink:#222724;--muted:#737a75;--line:#d9ded9;--paper:#f7f8f5;--white:#fff;--pine:#285b47;--pine-dark:#153c2e;--mist:#dce8e0;--sand:#d8cdb8;--danger:#a23d35;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Noto Sans KR",sans-serif}button,input,textarea{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.site-header{height:94px;max-width:var(--max);margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center}.brand-mark{display:grid;place-items:center;width:45px;height:45px;border:1px solid var(--ink);font-family:"Gowun Batang",serif;font-size:13px}.brand strong{font-family:"Gowun Batang",serif;font-size:20px}.brand small{display:block;margin-top:2px;font-size:8px;letter-spacing:.2em;color:var(--muted)}nav{display:flex;align-items:center;gap:34px;font-size:14px;color:#5e655f}.site-header nav a{position:relative;padding:38px 0}.site-header nav a.active{font-weight:700;color:var(--ink)}.site-header nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--pine)}.menu-button{display:none;border:0;background:none;width:44px;height:44px}.menu-button i{display:block;width:22px;height:1px;margin:7px auto;background:var(--ink)}.board-head{max-width:var(--max);margin:0 auto;padding:82px 20px 53px}.eyebrow{font-size:11px;letter-spacing:.28em;color:var(--pine);font-weight:700}.title-row{display:flex;align-items:flex-end;justify-content:space-between;margin-top:20px}.title-row h1{margin:0;font-family:"Gowun Batang",serif;font-size:58px;line-height:1}.title-row p{margin:0;color:var(--muted);line-height:1.7;font-size:14px}.quiet-rule{display:flex;align-items:center;gap:18px;margin-top:54px}.quiet-rule span{height:1px;background:var(--line);flex:1}.quiet-rule em{font-family:"Gowun Batang",serif;font-size:12px;font-style:normal;color:#8b928d}.board-shell{max-width:var(--max);margin:auto;padding:0 20px 110px}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.summary{display:flex;align-items:baseline;gap:5px}.summary strong{font-family:"Gowun Batang";font-size:28px;color:var(--pine)}.summary span{font-size:13px;color:var(--muted)}.actions{display:flex;gap:10px}.search{width:250px;height:48px;border:1px solid var(--line);background:var(--white);display:flex}.search input{width:100%;min-width:0;border:0;padding:0 14px;background:transparent;outline:0}.search input:focus{box-shadow:inset 0 0 0 2px var(--pine)}.search button{width:48px;border:0;background:none;font-size:22px;cursor:pointer}.primary,.submit{height:48px;border:0;background:var(--pine);color:white;padding:0 21px;font-weight:600;cursor:pointer}.primary span{margin-left:18px}.primary:hover,.submit:hover{background:var(--pine-dark)}.list-head,.post-row{display:grid;grid-template-columns:90px minmax(0,1fr) 130px 120px;align-items:center}.list-head{height:51px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);text-align:center}.list-head span:nth-child(2){text-align:left}.post-row{min-height:76px;border-bottom:1px solid var(--line);background:transparent;transition:background .2s}.post-row:hover{background:#fff}.post-row>span,.post-row>time{text-align:center;font-size:13px;color:var(--muted)}.post-title{min-width:0;padding:16px 0;border:0;text-align:left;background:none;cursor:pointer}.post-title strong{font-weight:500;vertical-align:middle}.post-title:hover strong{text-decoration:underline;text-underline-offset:4px}.badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;margin-right:11px;border-radius:20px;background:var(--pine);color:white;font-size:10px;font-weight:700}.secret{font-size:12px;margin-right:7px;color:var(--pine)}.comment-count{margin-left:8px;font-size:11px;color:#9aa09c}.empty{text-align:center;padding:70px 0;border-bottom:1px solid var(--line);color:var(--muted);line-height:2}.empty button{border:0;border-bottom:1px solid;background:none;cursor:pointer}.pagination{justify-content:center;gap:7px;margin-top:35px}.pagination button{border:0;background:transparent;width:35px;height:35px;color:var(--muted);cursor:pointer}.pagination button.current{border-radius:50%;background:var(--pine);color:white}footer{border-top:1px solid var(--line);max-width:var(--max);margin:auto;padding:45px 20px 55px;display:grid;grid-template-columns:1fr auto;gap:10px;color:var(--muted);font-size:11px}footer strong{font-family:"Gowun Batang";font-size:18px;color:var(--ink)}footer p{margin:8px 0 0}.admin-link{grid-column:2;grid-row:1;border:0;background:none;text-decoration:underline;color:var(--muted);cursor:pointer}footer>p{grid-column:2;grid-row:2}.modal{width:min(680px,calc(100% - 32px));max-height:90vh;padding:0;border:0;background:var(--paper);box-shadow:0 22px 70px #101b1660}.modal::backdrop{background:#15211ba8;backdrop-filter:blur(4px)}.modal form,.modal article{padding:40px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:34px}.modal-head span{color:var(--pine);font-size:10px;letter-spacing:.22em;font-weight:700}.modal h2{font-family:"Gowun Batang";font-size:30px;margin:8px 0}.close{border:0;background:none;font-size:28px;line-height:1;cursor:pointer}.field{margin-bottom:22px}.field label{display:block;font-size:12px;font-weight:600;margin-bottom:9px}.field input,.field textarea,.small-modal input{width:100%;border:1px solid var(--line);background:white;padding:13px 14px;outline:0;resize:vertical}.field input:focus,.field textarea:focus,.small-modal input:focus{border-color:var(--pine);box-shadow:0 0 0 2px #285b4720}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.options{display:flex;gap:25px;margin:0 0 22px}.options label{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;font-size:13px}.options input{accent-color:var(--pine)}.options small{grid-column:2;color:var(--muted);font-size:10px}.submit{width:100%}.form-error{min-height:18px;margin:0 0 8px;color:var(--danger);font-size:12px}.small-modal{width:min(410px,calc(100% - 32px));text-align:center}.small-modal form{position:relative}.small-modal .close{position:absolute;right:22px;top:20px}.small-modal p{color:var(--muted);font-size:13px;line-height:1.6}.small-modal input{margin:16px 0 8px}.lock-symbol{width:50px;height:50px;border:1px solid var(--pine);border-radius:50%;display:grid;place-items:center;margin:auto;color:var(--pine);font-family:"Gowun Batang"}.detail-modal{width:min(780px,calc(100% - 32px))}.detail-top{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.detail-title{font-family:"Gowun Batang";font-size:30px;line-height:1.35;margin:15px 0}.detail-meta{display:flex;gap:15px;padding-bottom:25px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.detail-body{min-height:170px;padding:30px 0;white-space:pre-wrap;line-height:1.8;font-size:15px}.detail-actions{text-align:right;padding-bottom:20px;border-bottom:1px solid var(--line)}.text-button{border:0;background:none;color:var(--muted);text-decoration:underline;cursor:pointer}.comments h3{font-size:15px;margin:25px 0}.comment{padding:17px 0;border-top:1px solid var(--line)}.comment:first-of-type{border-top:0}.comment-head{display:flex;justify-content:space-between;font-size:12px}.comment-admin{color:var(--pine);font-weight:700}.comment p{white-space:pre-wrap;line-height:1.6;font-size:13px}.comment-form{display:grid;grid-template-columns:120px 120px 1fr auto;gap:8px;padding-top:18px}.comment-form input,.comment-form textarea{min-width:0;border:1px solid var(--line);padding:10px;background:white;resize:none}.comment-form button{border:0;background:var(--pine);color:white;padding:0 16px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:white;padding:12px 18px;border-radius:4px;font-size:13px;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:720px){.site-header{height:76px;padding:0 18px}.brand-mark{width:39px;height:39px}.brand strong{font-size:17px}.site-header nav{display:none;position:absolute;top:76px;left:0;right:0;z-index:5;background:var(--paper);padding:20px;box-shadow:0 15px 20px #0001}.site-header nav.open{display:grid;gap:0}.site-header nav a{padding:15px}.menu-button{display:block}.board-head{padding:55px 20px 38px}.title-row{display:block}.title-row h1{font-size:43px}.title-row p{margin-top:22px}.quiet-rule{margin-top:38px}.quiet-rule em{display:none}.toolbar{align-items:flex-end}.actions{flex-direction:column-reverse;align-items:flex-end}.search{width:44px;height:44px;border:0;background:transparent}.search input{position:absolute;left:20px;right:20px;width:calc(100% - 40px);height:44px;background:white;border:1px solid var(--line);opacity:0;pointer-events:none}.search.open input{opacity:1;pointer-events:auto;z-index:3}.search button{height:44px}.primary{height:44px}.primary span{margin-left:8px}.list-head{display:none}.post-row{grid-template-columns:1fr auto;gap:8px;padding:18px 4px}.post-row>span:first-child{display:none}.post-title{grid-column:1 / -1;padding:0}.post-row .author{text-align:left}.post-row time{text-align:right;font-size:11px}.board-shell{padding-bottom:70px}.form-grid{grid-template-columns:1fr}.modal form,.modal article{padding:27px 20px}.modal-head{margin-bottom:25px}.options{display:block}.options label{margin-bottom:12px}.detail-title{font-size:25px}.comment-form{grid-template-columns:1fr 1fr}.comment-form textarea{grid-column:1 / -1;min-height:75px}.comment-form button{grid-column:1 / -1;height:42px}footer{display:block;padding:35px 20px}footer .admin-link{margin-top:28px;padding:0}footer>p{margin-top:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.post-title .badge{display:none}
@media(max-width:720px){.post-title .badge{display:inline-flex}}

/* 객실 예약현황 */
.page-view[hidden]{display:none}.calendar-view{max-width:var(--max);margin:auto;padding:78px 20px 110px}.calendar-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:52px}.calendar-head h1{margin:18px 0 12px;font-family:"Gowun Batang",serif;font-size:58px;line-height:1}.calendar-head p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.calendar-legend{display:flex;gap:20px;padding-bottom:4px;font-size:12px;color:var(--muted)}.calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-legend i{display:block;width:9px;height:9px;border-radius:50%}.available-dot{border:1px solid #9ba7a0;background:#fff}.reserved-dot{background:var(--pine)}.peak-dot{background:#d58165}.calendar-shell{border-top:2px solid var(--ink)}.calendar-toolbar{min-height:82px;display:grid;grid-template-columns:44px 58px 1fr 44px auto;gap:8px;align-items:center;border-bottom:1px solid var(--line)}.calendar-toolbar button:not(.primary){width:44px;height:42px;border:1px solid var(--line);background:#fff;cursor:pointer}.calendar-toolbar #todayMonth{width:58px;font-size:12px}.calendar-toolbar h2{margin:0;text-align:center;font-family:"Gowun Batang",serif;font-size:27px}.calendar-toolbar .primary{justify-self:end}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday-row{height:44px;align-items:center;border-bottom:1px solid var(--line);font-size:11px;text-align:center;color:var(--muted)}.weekday-row span:first-child{color:#b35b54}.weekday-row span:nth-child(6),.weekday-row span:last-child{color:#3c6c87}.calendar-day{position:relative;min-width:0;min-height:190px;padding:12px 9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fbfcfa}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#f0f2ef;color:#aab0ab}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--pine)}.calendar-day.peak-day{background:#fff9f6}.day-head{height:28px;display:flex;align-items:flex-start;justify-content:space-between;gap:5px}.day-number{font-size:13px;font-weight:600}.sunday .day-number{color:#b64d47}.friday .day-number,.saturday .day-number{color:#2e6582}.today-label{padding:2px 6px;border-radius:10px;background:var(--pine);color:#fff;font-size:9px}.holiday-name{min-height:17px;margin:0 0 5px;overflow:hidden;color:#b64d47;font-size:9px;white-space:nowrap;text-overflow:ellipsis}.room-statuses{display:grid;gap:4px}.room-status{width:100%;height:22px;display:flex;align-items:center;justify-content:space-between;padding:0 6px;border:1px solid #dfe4e0;background:#fff;color:#69716c;font-size:9px;text-align:left}.room-status b{font-weight:600;color:#3c443f}.room-status.reserved{border-color:#285b4728;background:var(--mist);color:var(--pine)}button.room-status{cursor:pointer}.is-admin button.room-status:hover{border-color:var(--pine);transform:translateX(2px)}.calendar-note{margin:22px 0 0;color:var(--muted);font-size:11px;line-height:1.7}.field select{width:100%;height:46px;border:1px solid var(--line);background:#fff;padding:0 12px}.privacy-note{margin:-7px 0 15px;color:var(--muted);font-size:11px}.reservation-actions{display:grid;grid-template-columns:auto 1fr;gap:10px}.danger-button{border:1px solid #d8aaa6;background:#fff;color:var(--danger);padding:0 20px;cursor:pointer}.reservation-actions .submit{grid-column:2}.reservation-actions .danger-button[hidden]+.submit{grid-column:1 / -1}.admin-only[hidden]{display:none!important}
@media(max-width:720px){.calendar-view{padding:52px 18px 70px}.calendar-head{display:block;margin-bottom:35px}.calendar-head h1{font-size:43px}.calendar-head p{margin-top:20px}.calendar-legend{margin-top:25px;gap:13px;flex-wrap:wrap}.calendar-toolbar{grid-template-columns:42px 1fr 42px;min-height:72px}.calendar-toolbar #todayMonth{display:none}.calendar-toolbar h2{font-size:23px}.calendar-toolbar .primary{grid-column:1 / -1;width:100%;margin-bottom:14px}.weekday-row{display:none}.calendar-grid{display:block}.calendar-day{min-height:0;padding:14px 12px;border-right:0;background:transparent}.calendar-day.outside{display:none}.calendar-day.peak-day{background:#fff9f6}.day-head{height:auto;align-items:center;margin-bottom:5px}.day-number{font-size:16px}.holiday-name{margin-bottom:9px;font-size:10px}.room-statuses{grid-template-columns:repeat(5,1fr);gap:5px}.room-status{height:39px;display:grid;place-items:center;padding:3px 2px;text-align:center}.room-status span{display:none}.room-status.reserved span{display:block;font-size:8px}.reservation-actions{grid-template-columns:1fr}.reservation-actions .submit,.reservation-actions .danger-button{grid-column:1;height:46px}.reservation-actions .danger-button{grid-row:2}.reservation-modal .form-grid{grid-template-columns:1fr 1fr}}

.day-number small{display:none;margin-left:7px;font-size:10px;font-weight:500;color:var(--muted)}
@media(max-width:720px){.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);height:38px;background:#f0f3ef;position:sticky;top:0;z-index:2}.day-number small{display:inline}}
@media(max-width:720px){.room-status{height:50px;line-height:1.25}.room-status b{max-width:100%;font-size:9px;word-break:keep-all}.room-status.reserved span{font-size:7px}}

/* 게시글 댓글 작성 영역 */
.comment-form{grid-template-columns:160px 160px 1fr;gap:10px}.comment-form textarea{grid-column:1 / -1;min-height:120px;line-height:1.6}.comment-form button{grid-column:3;width:150px;height:44px;justify-self:end;cursor:pointer}
@media(max-width:720px){.comment-form{grid-template-columns:1fr 1fr}.comment-form textarea{grid-column:1 / -1;min-height:130px}.comment-form button{grid-column:1 / -1;width:100%;height:46px}}

/* 텍스트 중심 안내 페이지: 바다의 수평선과 종이 질감에서 가져온 정보 구조 */
.info-view{min-height:calc(100vh - 76px);background:var(--paper)}
.info-hero{padding:clamp(76px,11vw,150px) max(7vw,24px) clamp(72px,10vw,132px);background:linear-gradient(115deg,#e7f0eb 0%,#f7f5ed 56%,#f1e8dc 100%);border-bottom:1px solid #d7e0da}
.info-hero h1{max-width:760px;margin:18px 0 20px;font:700 clamp(42px,7vw,86px)/1.12 'Gowun Batang',serif;letter-spacing:-.07em;color:var(--ink)}
.info-hero p{max-width:560px;margin:0 0 28px;font-size:clamp(16px,2vw,20px);line-height:1.8;color:var(--muted)}
.info-cta{display:inline-flex;align-items:center;gap:25px}.info-cta span{font-size:20px}
.info-shell{max-width:1120px;margin:0 auto;padding:clamp(58px,8vw,110px) 24px}
.section-intro{max-width:760px;margin-bottom:48px}.section-intro h1,.section-intro h2{margin:13px 0 18px;font:700 clamp(34px,5vw,60px)/1.2 'Gowun Batang',serif;letter-spacing:-.06em}.section-intro p{margin:0;color:var(--muted);font-size:17px;line-height:1.9}
.eyebrow{letter-spacing:.16em;font-size:11px;color:var(--sea);font-weight:700}
.fact-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.fact-grid article{padding:25px 20px 25px 0;border-right:1px solid var(--line)}.fact-grid article+article{padding-left:24px}.fact-grid article:last-child{border-right:0}.fact-grid b{display:block;font:700 22px 'Gowun Batang',serif;margin-bottom:8px}.fact-grid span{font-size:14px;color:var(--muted)}
.room-copy-grid,.tour-copy{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.room-copy-grid article,.tour-copy article{padding:30px;border:1px solid var(--line);background:rgba(255,255,255,.45)}.room-copy-grid article>span{font-size:11px;letter-spacing:.14em;color:var(--sea)}.room-copy-grid h2,.tour-copy h2{margin:14px 0 10px;font:700 30px 'Gowun Batang',serif}.room-copy-grid p,.tour-copy p{margin:0;color:var(--muted);line-height:1.85}
.facility-list{border-top:1px solid var(--line)}.facility-list article{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}.facility-list article>span{font:700 24px 'Gowun Batang',serif;color:var(--sea)}.facility-list h2{margin:0 0 8px;font:700 28px 'Gowun Batang',serif}.facility-list p{margin:0;max-width:680px;color:var(--muted);line-height:1.8}
.address-card{padding:36px;background:#edf3ef;border:1px solid #d4e1da}.address-card h2{margin:14px 0 8px;font:700 clamp(25px,4vw,40px) 'Gowun Batang',serif;letter-spacing:-.05em}.address-card p{color:var(--muted);margin:0 0 22px}.info-note{margin-top:36px;padding:22px 24px;border-left:3px solid var(--sea);background:#faf8f2}.info-note b{font-size:16px}.info-note p{margin:8px 0;color:var(--muted);line-height:1.7}.info-note a{color:var(--sea);font-weight:700;text-decoration:none}.info-view a:focus-visible,.info-view button:focus-visible{outline:3px solid #e0a34b;outline-offset:4px}
.faq-strip{margin-top:38px;padding:26px 0 0;border-top:1px solid var(--line)}.faq-strip h2{margin:0 0 14px;font:700 25px 'Gowun Batang',serif}.faq-strip details{border-bottom:1px solid var(--line);padding:14px 0}.faq-strip summary{cursor:pointer;font-weight:600}.faq-strip p{margin:10px 0 2px;color:var(--muted);line-height:1.7}
.map-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.map-link{color:var(--pine);font-weight:700;text-decoration:underline;text-underline-offset:4px}.map-card{position:relative;margin-top:22px;border:1px solid var(--line);background:#e6ece8;overflow:hidden}.map-card #pensionMap{height:390px;width:100%}.map-attribution{position:absolute;right:8px;bottom:4px;margin:0;padding:2px 5px;background:rgba(255,255,255,.84);font-size:10px;color:#59635d;z-index:500}.map-attribution a{color:inherit;text-decoration:underline}
.map-card .leaflet-popup-content-wrapper{min-width:290px}.map-card .leaflet-popup-content{width:260px!important;margin:14px 16px;line-height:1.6;font-size:14px}.map-card .leaflet-popup-content strong{font-size:16px;color:var(--pine-dark)}
@media(max-width:720px){.info-hero{padding:64px 20px 70px}.info-hero h1{font-size:43px}.info-shell{padding:58px 20px}.section-intro{margin-bottom:32px}.section-intro p{font-size:15px}.fact-grid{grid-template-columns:1fr}.fact-grid article,.fact-grid article+article{padding:18px 0;border-right:0;border-bottom:1px solid var(--line)}.fact-grid article:last-child{border-bottom:0}.room-copy-grid,.tour-copy{grid-template-columns:1fr}.room-copy-grid article,.tour-copy article{padding:24px}.facility-list article{grid-template-columns:42px 1fr;gap:10px}.facility-list h2{font-size:25px}.address-card{padding:26px 20px}.faq-strip{margin-top:30px}}
