:root{
  --sand:#F4EFE6;--paper:#FBF8F2;--ink:#2C2F31;--muted:#62676A;--line:#E2DACB;
  --sea:#2E6A70;--sea-deep:#1E4A50;--glint:#E3B65C;--ok:#2E6A70;--no:#B9B2A6;--warn:#A4462F;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --sand:#1B1E1F;--paper:#222628;--ink:#ECE7DE;--muted:#A9ABA8;--line:#3A3E40;--sea:#6FB2B6;--sea-deep:#16353A;--glint:#E8C27A;--no:#4A4D4E;--warn:#E08B73;}}
:root[data-theme="dark"]{--sand:#1B1E1F;--paper:#222628;--ink:#ECE7DE;--muted:#A9ABA8;--line:#3A3E40;--sea:#6FB2B6;--sea-deep:#16353A;--glint:#E8C27A;--no:#4A4D4E;--warn:#E08B73;}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:72px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--sand);color:var(--ink);font-family:"Gowun Dodum","Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-size:17px;line-height:1.8;word-break:keep-all;overflow-wrap:break-word}
html[lang="zh-Hans"] body{font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC","Hiragino Sans GB",sans-serif;word-break:normal}
h1,h2,h3{font-family:"Gowun Batang","Noto Serif KR",serif;font-weight:700;line-height:1.35;margin:0}
html[lang="zh-Hans"] h1,html[lang="zh-Hans"] h2,html[lang="zh-Hans"] h3{font-family:"Songti SC","Noto Serif SC","SimSun",serif}
p{margin:0}
a{color:var(--sea)}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
@media (min-width:600px){.wrap{padding:0 22px}}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:99;background:var(--paper);padding:8px 12px}

header.top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;gap:18px;height:60px}
.logo{font-family:"Gowun Batang",serif;font-weight:700;font-size:20px;color:var(--ink);text-decoration:none;white-space:nowrap}
.logo small{font-size:11px;color:var(--muted);margin-left:6px;letter-spacing:.12em}
nav.menu{display:flex;gap:18px;margin-left:auto;font-size:15px}
nav.menu a{color:var(--ink);text-decoration:none;opacity:.8}
nav.menu a:hover,nav.menu a[aria-current]{opacity:1;color:var(--sea)}
.lang{margin-left:8px;border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13px;text-decoration:none;color:var(--ink);white-space:nowrap}
.lang:hover{border-color:var(--sea)}
@media (max-width:820px){nav.menu{display:none}.lang{margin-left:auto}}

.hero{position:relative;overflow:hidden;color:#fff;min-height:78vh;display:flex;align-items:flex-end;background:#24555B}
.hero.short{min-height:56vh}
.hero picture,.hero picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,30,34,.10) 0%,rgba(10,30,34,.38) 45%,rgba(10,30,34,.74) 100%)}
.hero .sea{position:absolute;left:0;right:0;bottom:0;height:40%;overflow:hidden;z-index:1;pointer-events:none}
.hero .sea i{position:absolute;width:3px;height:3px;border-radius:50%;background:#FFF6D8;box-shadow:0 0 8px 2px rgba(255,236,170,.85);opacity:0;animation:glint 3.6s infinite ease-in-out}
@keyframes glint{0%,100%{opacity:0;transform:scaleX(1)}45%{opacity:.9;transform:scaleX(5)}60%{opacity:.2}}
@media (prefers-reduced-motion:reduce){.hero .sea i{animation:none;opacity:0}}
.hero .wrap{position:relative;z-index:2;padding-bottom:56px;padding-top:120px;width:100%}
.eyebrow{font-size:14px;letter-spacing:.18em;opacity:.95}
.hero h1{font-size:clamp(30px,6vw,58px);margin-top:10px;text-shadow:0 2px 18px rgba(0,0,0,.3)}
.hero p.sub{margin-top:14px;max-width:32em;font-size:18px;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 24px;border-radius:999px;font:inherit;font-size:16px;text-decoration:none;cursor:pointer;border:0;text-align:center}
.btn-glint{background:var(--glint);color:#2C2A22}
.btn-ghost{border:1.5px solid rgba(255,255,255,.85);color:#fff;background:rgba(0,0,0,.08)}
.btn-sea{background:var(--sea);color:#fff}
.btn-line{border:1.5px solid var(--line);color:var(--ink);background:transparent}
.btn[disabled]{opacity:.5;cursor:not-allowed}

section.block{padding:76px 0}
section.alt{background:var(--paper)}
.kicker{color:var(--sea);font-size:14px;letter-spacing:.18em}
h2{font-size:clamp(25px,3.6vw,35px);margin-top:8px}
h3{font-size:21px}
.lead{color:var(--muted);margin-top:14px;max-width:40em}
.prose p+p{margin-top:14px}
.prose{max-width:42em}

.points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:40px}
.point figure{margin:0}
.point img,.ph img{aspect-ratio:4/3;object-fit:cover;border-radius:6px;width:100%}
.point h3{margin-top:16px}
.point p{color:var(--muted);margin-top:6px;font-size:16px}
@media (max-width:820px){.points{grid-template-columns:1fr}}

.split{display:grid;grid-template-columns:1.15fr 1fr;gap:44px;margin-top:40px;align-items:start}
.split img{border-radius:6px;aspect-ratio:4/5;object-fit:cover;width:100%}
.split.rev{grid-template-columns:1fr 1.15fr}
@media (max-width:820px){.split,.split.rev{grid-template-columns:1fr}.split img{aspect-ratio:4/3}}
dl.space{margin:0;display:grid;grid-template-columns:88px 1fr;gap:12px 16px;border-top:1px solid var(--line);padding-top:18px}
dl.space dt{color:var(--sea);font-family:"Gowun Batang",serif;font-weight:700}
dl.space dd{margin:0}
.amen{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;padding:0;list-style:none}
.amen li{border:1px solid var(--line);background:var(--sand);border-radius:999px;padding:7px 15px;font-size:15px}

.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:34px}
.gallery a{display:block;border-radius:6px;overflow:hidden}
.gallery img{aspect-ratio:1/1;object-fit:cover;width:100%;transition:transform .4s}
.gallery a:hover img{transform:scale(1.04)}
.gallery a.wide{grid-column:span 2;grid-row:span 2}
.gallery a.wide img{aspect-ratio:auto;height:100%}
@media (max-width:700px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}

.themes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:34px}
.theme{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper)}
.theme:hover{border-color:var(--sea)}
.theme img{aspect-ratio:4/3;object-fit:cover;width:100%}
.theme div{padding:16px 18px 18px}
.theme b{display:block;font-family:"Gowun Batang",serif;font-size:18px}
.theme span{display:block;color:var(--muted);font-size:14px;margin-top:4px}
@media (max-width:900px){.themes{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.themes{grid-template-columns:1fr}}

.info{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:32px}
.info ul,.list{margin:0;padding-left:20px}
.info li,.list li{margin-bottom:8px}
@media (max-width:820px){.info{grid-template-columns:1fr}}

.faq{margin-top:30px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);padding:16px 0}
.faq summary{cursor:pointer;font-weight:700;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q. ";color:var(--sea)}
.faq details p{margin-top:10px;color:var(--muted)}

.crumbs{font-size:14px;color:var(--muted);padding-top:18px}
.crumbs a{color:var(--muted)}

.closing{background:var(--sea-deep);color:#fff;padding:68px 0;text-align:center}
.closing h2{color:#fff}
.closing p{opacity:.88;margin-top:10px}
.closing .cta{justify-content:center}

footer{background:var(--paper);border-top:1px solid var(--line);color:var(--muted);font-size:14px;padding:30px 0 110px;line-height:1.75}
footer b{color:var(--ink)}
footer nav{margin-top:10px;display:flex;flex-wrap:wrap;gap:14px}
footer nav a{color:var(--muted)}

.bar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;gap:8px;padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));background:var(--paper);border-top:1px solid var(--line)}
.bar a{flex:1;min-height:48px}
@media (max-width:820px){.bar{display:flex}}

/* 예약 */
.perks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
.perk{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:20px}
.perk b{display:block;font-family:"Gowun Batang",serif;font-size:26px;color:var(--sea)}
.perk span{color:var(--muted);font-size:15px}
@media (max-width:700px){.perks{grid-template-columns:1fr}}
.steps{counter-reset:s;list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.steps li{counter-increment:s;border-top:2px solid var(--sea);padding-top:10px;font-size:15px}
.steps li::before{content:counter(s);display:block;font-family:"Gowun Batang",serif;font-size:22px;color:var(--sea)}
@media (max-width:700px){.steps{grid-template-columns:1fr 1fr}}

.book{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;margin-top:34px;align-items:start}
@media (max-width:900px){.book{grid-template-columns:1fr}}
.cal{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:18px}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cal-head button{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:999px;width:40px;height:40px;font:inherit;cursor:pointer}
.cal-head button[disabled]{opacity:.35;cursor:default}
.cal-months{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:10px}
@media (max-width:620px){.cal-months{grid-template-columns:1fr}}
.cal-month h3{font-size:17px;text-align:center;margin-bottom:8px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center;font-size:14px}
.cal-grid .dow{color:var(--muted);font-size:12px;padding:4px 0}
.cal-grid button{aspect-ratio:1/1;border:0;border-radius:6px;background:transparent;color:var(--ink);font:inherit;cursor:pointer;min-height:36px;padding:0}
.cal-grid button:hover:not([disabled]){background:color-mix(in srgb,var(--sea) 15%,transparent)}
.cal-grid button[disabled]{color:var(--no);cursor:not-allowed}
.cal-grid button.blocked{text-decoration:line-through}
.cal-grid button.in{background:color-mix(in srgb,var(--sea) 18%,transparent);border-radius:0}
.cal-grid button.start,.cal-grid button.end{background:var(--sea);color:#fff}
.cal-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:13px;color:var(--muted)}
.cal-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.cal-msg{margin-top:10px;font-size:14px;color:var(--muted)}
.cal-msg.err{color:var(--warn)}

form.req{display:grid;gap:14px}
form.req label{display:grid;gap:5px;font-size:15px}
form.req input,form.req select,form.req textarea{font:inherit;font-size:16px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);width:100%}
form.req textarea{min-height:96px;resize:vertical}
form.req .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:480px){form.req .row{grid-template-columns:1fr}}
form.req .chk{display:flex;gap:10px;align-items:flex-start;grid-template-columns:none}
form.req .chk input{width:20px;height:20px;margin-top:4px;flex:none}
.req-sum{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-size:15px}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.notice{font-size:14px;color:var(--muted)}
.result{padding:14px;border-radius:8px;display:none}
.result.ok{display:block;background:color-mix(in srgb,var(--sea) 14%,transparent)}
.result.err{display:block;background:color-mix(in srgb,var(--warn) 14%,transparent)}

table.policy{width:100%;border-collapse:collapse;margin-top:16px;font-size:15px}
table.policy th,table.policy td{border:1px solid var(--line);padding:9px 10px;text-align:center}
table.policy th{background:var(--paper);font-weight:700}
.tbl{overflow-x:auto}
.legal h2{font-size:22px;margin-top:36px}
.legal h3{font-size:18px;margin-top:22px}
.legal p,.legal li{color:var(--ink)}

/* 하단 사이트맵 */
.sitemap{background:var(--paper);border-bottom:1px solid var(--line);padding-block:44px}
.sitemap .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.sitemap h2{font-size:15px;letter-spacing:.06em;color:var(--sea);margin:0 0 12px}
.sitemap ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.sitemap a{color:var(--ink);text-decoration:none;font-size:14px;opacity:.85}
.sitemap a:hover{opacity:1;text-decoration:underline}
@media (max-width:820px){.sitemap .wrap{grid-template-columns:1fr 1fr}}
footer{padding-top:0}
footer .wrap{padding-top:26px}
.themes.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.themes.n3{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.themes.n3{grid-template-columns:1fr}}
.chip-h{font-size:16px;margin-top:30px;color:var(--muted)}
.chips{margin-top:12px}
.chips a{color:var(--ink);text-decoration:none}
.chips li:hover{border-color:var(--sea)}
.themes.n2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
@media (max-width:480px){.themes.n2{grid-template-columns:1fr}}

/* 사이드 예약 패널 (PC) */
.qb{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:35;display:flex;align-items:center;pointer-events:none}
.qb>*{pointer-events:auto}
.qb-tab{writing-mode:vertical-rl;border:0;background:var(--glint);color:#2C2A22;font:inherit;font-size:15px;letter-spacing:.12em;padding:18px 11px;border-radius:10px 0 0 10px;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.14)}
.qb-panel{display:none;position:relative;width:250px;background:var(--paper);border:1px solid var(--line);border-right:0;border-radius:12px 0 0 12px;padding:20px 18px 16px;margin-right:0;box-shadow:0 10px 30px rgba(0,0,0,.16);font-size:14px}
.qb.open .qb-panel{display:grid;gap:6px}
.qb.open .qb-tab{display:none}
.qb-h{font-family:"Gowun Batang",serif;font-size:19px;font-weight:700}
.qb-perk{color:var(--sea);font-size:13px;margin-bottom:6px}
.qb-panel label{color:var(--muted);font-size:13px;margin-top:4px}
.qb-panel input,.qb-panel select{font:inherit;font-size:15px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--sand);color:var(--ink);width:100%}
.qb-go{min-height:44px;font-size:15px;margin-top:10px;padding:0 12px}
.qb-air{font-size:13px;color:var(--muted);text-align:center;margin-top:4px}
.qb-note{font-size:12px;color:var(--muted);text-align:center}
.qb-x{position:absolute;top:8px;right:8px;width:32px;height:32px;border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer;border-radius:50%}
.qb-x:hover{background:var(--sand)}
.qb-tab:focus-visible,.qb-x:focus-visible{outline:2px solid var(--sea);outline-offset:2px}
@media (min-width:1600px){.qb .qb-panel{display:grid;gap:6px}.qb .qb-tab{display:none}.qb-x{display:none}}
@media (max-width:820px){.qb{display:none}}

/* 색상 버전: 귤 + 제주 바다 (site_config.json 의 theme 를 "gyul" 로) */
:root[data-palette="gyul"]{--sand:#F7F6F1;--paper:#FFFFFF;--ink:#1F2A2C;--muted:#5B6668;--line:#E3E6E0;--sea:#0B7A83;--sea-deep:#084B57;--glint:#F39223;--no:#B9C0BC;--warn:#B4432A}
@media (prefers-color-scheme:dark){:root[data-palette="gyul"]:not([data-theme="light"]){--sand:#101A1C;--paper:#162326;--ink:#EDF2EF;--muted:#A3B0AE;--line:#2C3B3E;--sea:#4FC3C4;--sea-deep:#0B3F48;--glint:#F7A445;--no:#3D4A4C;--warn:#E5896F}}
:root[data-palette="gyul"][data-theme="dark"]{--sand:#101A1C;--paper:#162326;--ink:#EDF2EF;--muted:#A3B0AE;--line:#2C3B3E;--sea:#4FC3C4;--sea-deep:#0B3F48;--glint:#F7A445;--no:#3D4A4C;--warn:#E5896F}
:root[data-palette="gyul"] .btn-glint,:root[data-palette="gyul"] .qb-tab{color:#2A1703}
:root[data-palette="gyul"] .kicker{color:var(--glint);font-weight:700}
:root[data-palette="gyul"] .hero::after{background:linear-gradient(180deg,rgba(8,75,87,.08) 0%,rgba(8,75,87,.36) 45%,rgba(6,52,62,.78) 100%)}
:root[data-palette="gyul"] .perk b,:root[data-palette="gyul"] .steps li::before{color:var(--glint)}
:root[data-palette="gyul"] .steps li{border-top-color:var(--glint)}
:root[data-palette="gyul"] .sitemap h2{color:var(--glint)}
:root[data-palette="gyul"] .closing{background:linear-gradient(135deg,var(--sea-deep),#0B6C76)}
:root[data-palette="gyul"] .amen li{background:var(--paper)}
:root[data-palette="gyul"] dl.space dt{color:var(--sea)}

/* 문자 문의 */
.sms-box{border:1px dashed var(--line);border-radius:8px;padding:14px;display:grid;gap:8px;margin-top:4px}
.sms-box b{font-size:15px}
.sms-btn{min-height:44px;font-size:15px}
@media (hover:hover) and (pointer:fine){.sms-btn{display:none}}
.bar .btn{padding:0 10px;font-size:15px}
.qb-note a{color:inherit}

/* 히어로 글자 가독성 보강 */
.hero .eyebrow{text-shadow:0 1px 8px rgba(0,0,0,.55);font-weight:700}
.hero h1{text-shadow:0 2px 20px rgba(0,0,0,.45)}

/* 기기별 버튼 */
@media (hover:hover) and (pointer:fine){.only-touch{display:none}}
@media (hover:none),(pointer:coarse){.only-pointer{display:none}}
