:root{
  --paper:#FBF8F3; --paper-2:#F3EEE6; --card:#FFFFFF; --line:#E6DFD4; --line-2:#D3C9BA;
  --ink:#2B2833; --ink-2:#5C5666; --ink-3:#8B8494;
  --pine:#2F7D5C; --pine-2:#E4F1EA; --pine-ink:#1F5A41;
  --apricot:#F4A261; --apricot-2:#FDEBDB;
  --river:#5B8DEF; --river-2:#E3ECFD;
  --plum:#9B6BB5; --plum-2:#F0E7F6;
  --focus:#2F7D5C;
  --d1:#F4A261; --d2:#2F7D5C; --d3:#5B8DEF; --d4:#9B6BB5;
  --shadow:0 10px 30px -18px rgba(43,40,51,.35);
  --river-fill:#DCE8FA; --land:#F5F1EA;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#1B1A20; --paper-2:#232229; --card:#26252D; --line:#3A3843; --line-2:#4B4856;
    --ink:#F1EDF4; --ink-2:#C4BFCC; --ink-3:#8F8A99;
    --pine:#5FBF93; --pine-2:#22392F; --pine-ink:#BFE8D3;
    --apricot:#F7B27C; --apricot-2:#3E2E22;
    --river:#84A9F5; --river-2:#22304A;
    --plum:#B98FD1; --plum-2:#352B3E;
    --focus:#5FBF93;
    --d1:#F7B27C; --d2:#5FBF93; --d3:#84A9F5; --d4:#B98FD1;
    --shadow:0 10px 30px -18px rgba(0,0,0,.7);
    --river-fill:#26344F; --land:#22222A;
  }
}
:root[data-theme="dark"]{
  --paper:#1B1A20; --paper-2:#232229; --card:#26252D; --line:#3A3843; --line-2:#4B4856;
  --ink:#F1EDF4; --ink-2:#C4BFCC; --ink-3:#8F8A99;
  --pine:#5FBF93; --pine-2:#22392F; --pine-ink:#BFE8D3;
  --apricot:#F7B27C; --apricot-2:#3E2E22;
  --river:#84A9F5; --river-2:#22304A;
  --plum:#B98FD1; --plum-2:#352B3E;
  --focus:#5FBF93;
  --d1:#F7B27C; --d2:#5FBF93; --d3:#84A9F5; --d4:#B98FD1;
  --shadow:0 10px 30px -18px rgba(0,0,0,.7);
  --river-fill:#26344F; --land:#22222A;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans KR',"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;font-size:15px;line-height:1.7;padding-inline:16px;padding-block:0 60px;word-break:keep-all;overflow-wrap:break-word}
h1,h2,h3,h4,.disp{font-family:'Gowun Dodum','Noto Sans KR',sans-serif;font-weight:400;letter-spacing:-.01em;text-wrap:balance;margin:0}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}
a{color:var(--pine);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto}
.narrow{max-width:720px;margin:0 auto}
/* ===== 헤더 ===== */
.top{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:16px 8px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px}
.brand:hover{text-decoration:none}
.brand .mark{width:32px;height:32px;border-radius:50% 50% 50% 4px;background:var(--pine);position:relative;box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 5px var(--pine);flex:none}
.brand .mark::after{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--apricot)}
.brand b{font-family:'Gowun Dodum',sans-serif;font-weight:400;font-size:21px;color:var(--ink)}
.brand small{color:var(--ink-3);font-size:12px;margin-left:2px}
.nav{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.nav a{font-size:13.5px;color:var(--ink-2);padding:6px 10px;border-radius:9px}
.nav a:hover{background:var(--paper-2);color:var(--ink);text-decoration:none}
.nav a[aria-current="page"]{background:var(--pine-2);color:var(--pine-ink)}
.preview-tag{font-size:11.5px;color:var(--ink-2);background:var(--paper-2);border:1px dashed var(--line-2);padding:3px 9px;border-radius:999px}
/* 지역 선택 드롭다운 */
.regmenu{position:static}
.regmenu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;
  font-size:13.5px;color:var(--ink-2);padding:6px 12px;border:1px solid var(--line-2);border-radius:999px;background:var(--card);user-select:none}
.regmenu>summary::-webkit-details-marker{display:none}
.regmenu>summary:hover{border-color:var(--pine);color:var(--ink)}
.regmenu>summary b{font-weight:500;color:var(--pine-ink)}
.regmenu>summary i{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--ink-3);transition:transform .16s}
.regmenu[open]>summary{border-color:var(--pine);color:var(--ink);background:var(--pine-2)}
.regmenu[open]>summary i{transform:rotate(180deg)}
.regmenu:not([open]) .regpop{display:none}
.regpop{position:absolute;top:calc(100% - 2px);left:0;right:0;z-index:30;
  background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:14px;
  max-height:min(70vh,520px);overflow:auto;-webkit-overflow-scrolling:touch}
.regtitle{margin:0 4px 10px;font-size:13px;color:var(--ink-3);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.regtitle span{color:var(--ink-3);opacity:.8}
.reggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px}
.reggrid a{display:block;padding:9px 11px;border-radius:11px;color:var(--ink)}
.reggrid a:hover{background:var(--paper-2);text-decoration:none}
.reggrid a[aria-current="page"]{background:var(--pine-2)}
.reggrid b{display:block;font-size:15px;font-family:'Gowun Dodum',sans-serif;font-weight:400}
.reggrid b i{font-style:normal;font-family:'Noto Sans KR',sans-serif;font-size:11px;color:var(--ink-3);margin-left:6px}
.reggrid span{display:block;font-size:12px;color:var(--ink-3);margin-top:1px;line-height:1.45}
.crumb{font-size:12.5px;color:var(--ink-3);padding-block:12px 0}
.crumb a{color:var(--ink-3)}
/* ===== 히어로 ===== */
.hero{padding-block:26px 6px;max-width:660px}
.hero h1{font-size:clamp(26px,4.2vw,36px);line-height:1.3}
.hero h1 em{font-style:normal;color:var(--pine);border-bottom:6px solid var(--apricot-2);line-height:1}
.hero p{color:var(--ink-2);margin:10px 0 0;max-width:38em}
/* ===== 선택 패널 ===== */
.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px 22px 16px;box-shadow:var(--shadow);margin-top:16px}
.q{display:grid;grid-template-columns:150px 1fr;gap:8px 18px;padding-block:12px;border-bottom:1px dashed var(--line)}
.q:last-of-type{border-bottom:0}
.q .label{font-family:'Gowun Dodum',sans-serif;font-size:16px;color:var(--ink);padding-top:6px}
.q .label small{display:block;font-family:'Noto Sans KR',sans-serif;font-size:12px;color:var(--ink-3);letter-spacing:.02em;line-height:1.5}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1.5px solid var(--line-2);background:var(--card);border-radius:999px;padding:7px 14px;font-size:14px;line-height:1.3;color:var(--ink-2);transition:background .15s,border-color .15s,color .15s,transform .1s}
.chip:hover{border-color:var(--pine);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--pine);border-color:var(--pine);color:#fff}
.chip[aria-pressed="true"]:active{transform:scale(.97)}
.chip.tog[aria-pressed="true"]{background:var(--apricot-2);border-color:var(--apricot);color:var(--ink)}
.must{display:flex;flex-direction:column;gap:8px}
.must input{font:inherit;padding:8px 12px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--card);color:var(--ink);width:100%;max-width:420px}
.must .picked{display:flex;gap:6px;flex-wrap:wrap}
.must .picked .chip{background:var(--river-2);border-color:var(--river);color:var(--ink)}
.must .picked .chip::after{content:" ×";color:var(--ink-3)}
.sug{display:flex;gap:6px;flex-wrap:wrap}
.sug .chip{font-size:13px;padding:5px 11px}
.go{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:14px;padding:12px 20px;font-weight:500;font-size:15px;border:1.5px solid transparent;transition:transform .1s,background .15s}
.btn:hover{text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--pine);color:#fff;box-shadow:0 8px 18px -10px var(--pine)}
.btn.primary:hover{background:var(--pine-ink)}
.btn.ghost{border-color:var(--line-2);color:var(--ink-2);background:var(--card)}
.btn.ghost:hover{border-color:var(--pine);color:var(--ink)}
.btn.small{padding:7px 12px;font-size:13px;border-radius:10px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.hint{font-size:13px;color:var(--ink-3)}
.presets{margin-top:16px;display:flex;flex-direction:column;gap:6px}
.presets .chip{font-size:13px;padding:6px 12px;background:var(--paper-2);border-color:transparent}
.presets .chip:hover{border-color:var(--pine)}
.date{font:inherit;padding:7px 12px;border:1.5px solid var(--line-2);border-radius:999px;background:var(--card);color:var(--ink);font-size:14px}
.advbtn{display:flex;align-items:center;gap:8px;width:100%;padding:12px 4px;margin-top:4px;border-top:1px dashed var(--line);font-size:14.5px;color:var(--pine);font-family:'Gowun Dodum',sans-serif}
.advbtn::after{content:"▾";font-size:11px;transition:transform .15s}
.advbtn[aria-expanded="true"]::after{transform:rotate(180deg)}
.advbtn:hover{color:var(--pine-ink)}
#adv{border-top:1px dashed var(--line);margin-top:-4px}
.nudge{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:space-between;margin-top:10px;padding:12px 18px;background:var(--river-2);border-radius:14px;font-size:14px;color:var(--ink)}
/* ===== 추천 코스 ===== */
.course{max-width:760px;margin:0 auto}
.cday{margin-top:34px}
.cday h2{font-size:22px;padding-left:12px;border-left:4px solid var(--apricot);margin-bottom:4px}
.cday .lede{color:var(--ink-2);font-size:14px;margin:0 0 14px}
.crow{display:grid;grid-template-columns:62px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.ctime{font-variant-numeric:tabular-nums;color:var(--pine);font-size:14.5px;padding-top:2px}
.cbody h3{font-size:17.5px;margin-bottom:4px}
.cbody h3 a{color:var(--ink)}
.ctag{font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--paper-2);color:var(--ink-2);vertical-align:middle;margin-left:4px}
.cbody p{margin:0 0 4px;font-size:14.5px;color:var(--ink);line-height:1.75}
.cmeta{font-size:12.5px;color:var(--ink-3)}
.cmove{font-size:12.5px;color:var(--ink-3);padding:2px 0 2px 76px;display:flex;align-items:center;gap:6px}
.cmove::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--line-2)}
/* ===== 광고 ===== */
.ad{margin:22px 0;border:1.5px dashed var(--line-2);border-radius:14px;padding:14px;text-align:center;color:var(--ink-3);font-size:12px;letter-spacing:.04em;background:var(--paper-2)}
/* ===== 결과 ===== */
.result{margin-top:24px}
.summary{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:baseline;padding:16px 20px;background:var(--pine-2);border-radius:18px;color:var(--pine-ink)}
.summary h2{font-size:22px;color:var(--pine-ink)}
.summary .stat{font-size:13px;color:var(--pine-ink);opacity:.9}
.summary .stat b{font-size:15px;font-weight:500;font-variant-numeric:tabular-nums}
.weather{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;color:var(--ink-2);background:var(--river-2);padding:3px 10px;border-radius:999px}
.season{font-size:12.5px;color:var(--pine-ink);background:var(--card);padding:3px 10px;border-radius:999px}
.grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;margin-top:18px;align-items:start}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tab{padding:8px 14px;border-radius:12px;font-size:14px;color:var(--ink-2);border:1.5px solid var(--line);background:var(--card);display:flex;align-items:center;gap:8px}
.tab .dot{width:10px;height:10px;border-radius:50%;background:var(--dc)}
.tab[aria-selected="true"]{border-color:var(--dc);color:var(--ink);box-shadow:inset 0 -3px 0 var(--dc)}
.dayhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0 12px}
.dayhead h3{font-size:20px}
.dayhead h3 span{color:var(--ink-3);font-size:14px;margin-left:8px;font-family:'Noto Sans KR',sans-serif}
.dayhead .area{font-size:13px;color:var(--ink-2)}
.tl{position:relative;padding-left:78px}
.tl::before{content:"";position:absolute;left:62px;top:14px;bottom:14px;width:2px;background:var(--line);border-radius:2px}
.item{position:relative;margin-bottom:10px}
.item .time{position:absolute;left:-78px;top:14px;width:52px;text-align:right;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.item .pin{position:absolute;left:-23px;top:13px;width:22px;height:22px;border-radius:50%;background:var(--dc);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px var(--paper)}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 16px 12px;transition:border-color .15s,box-shadow .15s}
.card.hl{border-color:var(--dc);box-shadow:0 0 0 3px color-mix(in srgb,var(--dc) 25%,transparent)}
.card .row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.card .name{font-family:'Gowun Dodum',sans-serif;font-size:18px;line-height:1.3}
.card .name a{color:inherit}
.card .name a:hover{color:var(--pine)}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.tag{font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--paper-2);color:var(--ink-2);letter-spacing:.02em}
.tag.t-food{background:var(--apricot-2)} .tag.t-cafe{background:var(--plum-2)} .tag.t-night{background:var(--river-2)} .tag.t-nature,.tag.t-spot{background:var(--pine-2)}
.tag.rsv{background:var(--apricot-2);color:var(--ink)}
.tag.pet{background:var(--pine-2)}
.tag.off{background:#FBE3E3;color:#8A2B2B}
.card .tip{margin:8px 0 0;font-size:13.5px;color:var(--ink-2)}
.memo{margin:8px 0 0;font-size:13.5px;color:var(--ink);background:var(--apricot-2);border-radius:10px;padding:8px 12px;line-height:1.6}
.memo::before{content:"메모 ";font-size:11.5px;color:var(--ink-3)}
.memoinput{width:100%;font:inherit;font-size:14px;padding:10px 12px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--card);color:var(--ink);resize:vertical;margin:4px 0 2px}
.card .meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.card .acts{display:flex;gap:6px;flex-shrink:0}
.card .acts button,.card .acts a{font-size:12px;color:var(--ink-3);padding:4px 8px;border-radius:8px;border:1px solid var(--line)}
.card .acts button:hover,.card .acts a:hover{border-color:var(--pine);color:var(--pine);text-decoration:none}
.item[draggable]{cursor:grab}
.item.dragging{opacity:.45}
.item.over .card{border-color:var(--dc);border-style:dashed;background:var(--paper-2)}
.item .pin{cursor:grab}
.card .acts button[disabled]{opacity:.35;cursor:default}
.cands{display:flex;flex-direction:column;gap:6px;margin:10px 0 14px}
.cand{text-align:left;border:1.5px solid var(--line);border-radius:12px;padding:10px 13px;background:var(--card);display:flex;flex-direction:column;gap:2px;transition:border-color .15s}
.cand:hover{border-color:var(--pine);background:var(--pine-2)}
.cand b{font-family:'Gowun Dodum',sans-serif;font-weight:400;font-size:16px;color:var(--ink)}
.cand span{font-size:12.5px;color:var(--ink-3)}
.cand em{font-style:normal;font-size:13px;color:var(--ink-2);line-height:1.6}
.travel{font-size:12.5px;color:var(--ink-3);padding:2px 0 6px 6px;display:flex;align-items:center;gap:6px}
.travel::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--line-2)}
.tips{margin-top:14px;margin-left:78px;background:var(--apricot-2);border-radius:14px;padding:12px 16px;font-size:13.5px;color:var(--ink)}
.tips b{font-family:'Gowun Dodum',sans-serif;font-weight:400;display:block;margin-bottom:4px}
.tips ul{margin:0;padding-left:18px;color:var(--ink-2)}
.dayfoot{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-left:78px}
/* ===== 사이드 ===== */
.side{position:sticky;top:12px;display:flex;flex-direction:column;gap:14px}
.mapbox{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px;overflow:hidden}
.mapbox h3{font-size:15px;display:flex;justify-content:space-between;align-items:baseline;padding:2px 4px 8px}
.mapbox h3 small{font-size:12px;color:var(--ink-3);font-family:'Noto Sans KR',sans-serif}
.mapbox svg{width:100%;height:auto;display:block;border-radius:12px;background:var(--land)}
.legend{display:flex;gap:10px;flex-wrap:wrap;padding:8px 4px 0;font-size:12px;color:var(--ink-2)}
.legend button{display:flex;align-items:center;gap:6px;opacity:.5}
.legend button[aria-pressed="true"]{opacity:1}
.legend .sw{width:14px;height:4px;border-radius:2px;background:var(--dc)}
.sharebox{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 16px}
.sharebox h3{font-size:15px;margin-bottom:8px}
.sharebox .btns{display:flex;gap:6px;flex-wrap:wrap}
.sharebox .note{font-size:12px;color:var(--ink-3);margin-top:8px}
.budget{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.budget div{background:var(--paper-2);border-radius:12px;padding:10px 12px}
.budget b{display:block;font-size:17px;font-weight:500;font-variant-numeric:tabular-nums}
.budget span{font-size:12px;color:var(--ink-3)}
.saved{margin-top:10px;font-size:13px}
.saved ul{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:4px}
.saved li{display:flex;justify-content:space-between;gap:8px;align-items:center;background:var(--paper-2);border-radius:10px;padding:6px 10px}
.saved li button{color:var(--pine);font-size:12px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:12px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:50}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.modal{position:fixed;inset:0;background:rgba(20,18,26,.45);display:none;align-items:center;justify-content:center;padding:16px;z-index:40}
.modal.on{display:flex}
.modal .box{background:var(--card);border-radius:20px;padding:22px 24px;max-width:460px;width:100%;box-shadow:var(--shadow);max-height:88vh;display:flex;flex-direction:column}
.modal .box.wide{max-width:520px}
.modal #modal-body{overflow:auto;-webkit-overflow-scrolling:touch;min-height:0;flex:1 1 auto}
.modal #modal-close{flex:0 0 auto;margin-top:12px;align-self:flex-start}
.modal h3{font-size:20px;margin-bottom:8px}
.modal p{color:var(--ink-2);font-size:14px;margin:0 0 8px}
.modal ul{color:var(--ink-2);font-size:14px;padding-left:18px;margin:6px 0 12px}
.modal img{max-width:100%;border-radius:12px;border:1px solid var(--line);display:block;margin:6px 0 10px}
.empty{padding:40px 20px;text-align:center;color:var(--ink-3);border:1.5px dashed var(--line-2);border-radius:18px}
#story-wrap{position:fixed;left:-9999px;top:0;width:540px;pointer-events:none}
#story{width:540px;padding:44px 40px;background:#FBF8F3;color:#2B2833;font-family:'Noto Sans KR',sans-serif}
#story .sh{font-family:'Gowun Dodum',sans-serif;font-size:30px;line-height:1.3;margin-bottom:6px}
#story .ss{font-size:14px;color:#5C5666;margin-bottom:22px}
#story .sd{font-family:'Gowun Dodum',sans-serif;font-size:17px;color:#2F7D5C;margin:16px 0 6px;border-bottom:2px solid #E4F1EA;padding-bottom:4px}
#story .si{display:flex;gap:12px;font-size:15px;padding:4px 0}
#story .si span:first-child{color:#8B8494;font-variant-numeric:tabular-nums;width:48px}
#story .sf{margin-top:26px;font-size:12px;color:#8B8494;display:flex;justify-content:space-between}
/* ===== 지역 카드 (홈) ===== */
.regions{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:18px}
.rcard{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;transition:border-color .15s,transform .1s}
.rcard:hover{border-color:var(--pine);transform:translateY(-2px);text-decoration:none}
.rcard h3{font-size:20px;color:var(--ink)}
.rcard h3 span{font-size:12px;color:var(--ink-3);margin-left:6px;font-family:'Noto Sans KR',sans-serif}
.rcard p{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.6}
.rcard .rmeta{font-size:12px;color:var(--ink-3);margin-top:4px}
/* ===== 글 목록 ===== */
.alist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:14px}
.acard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:5px}
.acard:hover{border-color:var(--pine);text-decoration:none}
.acard h3{font-size:16.5px;color:var(--ink);line-height:1.4}
.acard p{margin:0;font-size:13px;color:var(--ink-2)}
.acard .cat{font-size:11.5px;color:var(--pine-ink);background:var(--pine-2);padding:2px 8px;border-radius:999px;align-self:flex-start}
/* ===== 본문 글 ===== */
.article{max-width:720px;margin:0 auto;padding-block:8px}
.article h1{font-size:clamp(25px,4vw,33px);line-height:1.35;margin-bottom:8px}
.article .lede{color:var(--ink-2);font-size:16px;margin:0 0 6px}
.article .byline{font-size:12.5px;color:var(--ink-3);border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:6px}
.article h2{font-size:21px;margin:30px 0 10px;padding-left:12px;border-left:4px solid var(--pine)}
.article h3{font-size:17px;margin:22px 0 6px;color:var(--pine-ink)}
.article p{margin:0 0 14px;color:var(--ink);line-height:1.85}
.article .box{background:var(--pine-2);border-radius:16px;padding:16px 20px;margin:18px 0;color:var(--pine-ink)}
.article .box b{display:block;font-family:'Gowun Dodum',sans-serif;font-weight:400;font-size:16px;margin-bottom:6px}
.article .box p{color:var(--pine-ink);margin-bottom:6px}
.faq{margin-top:26px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:8px}
.faq summary{cursor:pointer;font-family:'Gowun Dodum',sans-serif;font-size:16px;color:var(--ink)}
.faq summary::marker{color:var(--pine)}
.faq p{margin:8px 0 0;font-size:14px;color:var(--ink-2)}
.chipnav{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
.chipnav a{font-size:13px;padding:6px 12px;border-radius:999px;background:var(--paper-2);color:var(--ink-2)}
.chipnav a:hover{background:var(--pine-2);color:var(--pine-ink);text-decoration:none}
/* ===== 장소 목록·상세 ===== */
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:12px}
.pitem{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.pitem:hover{border-color:var(--pine);text-decoration:none}
.pitem b{display:block;font-family:'Gowun Dodum',sans-serif;font-weight:400;font-size:16px;color:var(--ink)}
.pitem span{font-size:12px;color:var(--ink-3)}
.areasec{margin-top:24px}
.areasec h2{font-size:19px;padding-left:12px;border-left:4px solid var(--apricot)}
.dl{display:grid;grid-template-columns:100px 1fr;gap:8px 14px;margin:18px 0;font-size:14px}
.dl dt{color:var(--ink-3);font-size:13px}
.dl dd{margin:0;color:var(--ink)}
.linkrow{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
/* ===== 푸터 ===== */
.foot{margin-top:46px;font-size:12.5px;color:var(--ink-3);border-top:1px solid var(--line);padding-top:16px;line-height:1.8}
.foot .fnav{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.foot a{color:var(--ink-2)}
@media (max-width:860px){
  .grid{grid-template-columns:1fr}
  .side{position:static}
}
@media (max-width:640px){
  .q{grid-template-columns:1fr;gap:6px}
  .panel{padding:16px 14px 14px;border-radius:18px}
  /* 타임라인: 시간·번호를 카드 위로 올려 카드가 화면 폭을 다 쓰게 */
  .tl{padding-left:0}
  .tl::before{display:none}
  .item{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"pin time" "card card";align-items:center;column-gap:8px;row-gap:5px;margin-bottom:14px}
  .item .time{position:static;grid-area:time;width:auto;text-align:left;font-size:13.5px;color:var(--ink-2)}
  .item .pin{position:static;grid-area:pin;width:20px;height:20px;box-shadow:none;font-size:11px}
  .card{grid-area:card;padding:13px 14px 11px}
  /* 카드 안: 제목·태그·설명 먼저, 버튼은 맨 아래 한 줄 */
  .card{display:flex;flex-direction:column}
  .card .row{display:contents}
  .card .row>div:first-child{order:1;min-width:0}
  .card .tip{order:2}
  .card .memo{order:3}
  .card .meta{order:4}
  .card .name{font-size:17px}
  .card .acts{order:5;width:100%;margin-top:11px;padding-top:9px;border-top:1px dashed var(--line);gap:5px;flex-wrap:wrap}
  .card .acts button{flex:1 1 auto;min-width:40px;padding:7px 9px;font-size:12.5px;text-align:center}
  .card .meta{gap:8px 12px;font-size:12px}
  .tags{gap:5px}
  .tag{font-size:11px;padding:2px 7px}
  .travel{padding-left:2px;margin-bottom:10px}
  .dayfoot,.tips{padding-left:0;margin-left:0}
  .dayfoot .btn{flex:1 1 auto;justify-content:center}
  .budget{grid-template-columns:1fr}
  .dl{grid-template-columns:1fr;gap:2px 0}
  .dl dd{margin-bottom:8px}
  .sharebox .btns .btn{flex:1 1 auto;justify-content:center}
  .summary{padding:14px 16px;gap:8px 14px}
  .summary h2{font-size:20px;width:100%}
  .nav a{font-size:13px;padding:5px 8px}
  .regpop{padding:12px}
  .reggrid span{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
  .modal{padding:12px}
  .modal .box{padding:18px 16px 16px;border-radius:16px;max-height:90vh}
  .crow{grid-template-columns:52px 1fr;gap:10px}
  .cmove{padding-left:62px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{
  .top,.nav,.presets,.panel,.ad,.sharebox,.dayfoot,.tabs,.foot,.crumb,.preview-tag,.nudge,.chipnav,#pfilter{display:none!important}
  body{background:#fff;color:#000;font-size:11pt;padding:0}
  .grid{grid-template-columns:1fr}
  .card,.mapbox{border-color:#ccc;box-shadow:none;break-inside:avoid}
  .summary{background:#f4f4f4;color:#000}
  .summary h2{color:#000}
  a{color:#000;text-decoration:none}
  .item{break-inside:avoid}
  .memo{background:#f7f7f7;border:1px solid #ddd}
}
