@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.css");
:root{--ink:#062d50;--blue:#087eba;--navy:#083d60;--teal:#095868;--orange:#f0541d;--paper:#f7f1e5;--card:#fffdf7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Pretendard Variable",Pretendard,"Malgun Gothic",sans-serif;background:var(--paper)}button,input{font:inherit}a{color:inherit}.wrap{width:min(100% - 48px,1200px);margin-left:auto;margin-right:auto}header{height:70px;width:min(100% - 48px,1200px);margin:auto;display:flex;align-items:center;gap:34px;border-bottom:1px dashed #c7bdaa;position:relative;z-index:2}nav{display:flex;gap:25px;margin-left:auto}.brand{text-decoration:none;color:var(--blue);font-size:13px;font-weight:900;letter-spacing:.05em;border-bottom:3px solid var(--blue);padding:5px 2px}nav a{text-decoration:none;font-size:13px;font-weight:800}.plain{border:0;background:none;color:#6d7780;cursor:pointer}.hero{padding:48px 0 54px;display:grid;grid-template-columns:.78fr 1.22fr;align-items:center;gap:58px}.eyebrow,.section-head>p{color:var(--blue);font-size:10px;letter-spacing:.2em;font-weight:950}.hero h1{font-size:clamp(48px,5.8vw,78px);line-height:1.06;letter-spacing:-.065em;margin:14px 0 27px}.meta{font-size:13px;font-weight:750;margin-bottom:28px}.cta,.login-card button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;background:var(--orange);color:white;text-decoration:none;border:0;border-radius:9px;padding:15px 20px;font-weight:850;box-shadow:0 6px 0 #d9b5a4}.photo{position:relative;background:#fff;padding:10px;transform:rotate(1deg);box-shadow:0 15px 30px #4c3c2c29}.photo:before,.hotel-photo:before{content:"";position:absolute;width:65px;height:22px;background:#dfd2aeaa;top:-13px;left:-14px;transform:rotate(-8deg);z-index:2}.photo img{width:100%;height:350px;display:block;object-fit:cover}.photo>b{position:absolute;right:8%;bottom:-32px;width:90px;height:90px;border:3px double #d36a4b;border-radius:50%;display:grid;place-content:center;text-align:center;color:#d36a4b;transform:rotate(10deg);font-size:12px}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:70px}.quick article{background:var(--card);padding:24px;box-shadow:0 8px 20px #59432212;display:flex;gap:18px}.quick em{color:var(--blue);font-style:normal}.quick small,.hotel dt{color:var(--blue);font-size:10px;font-weight:900}.quick h2{font-size:16px;margin:7px 0}.quick p{color:#6b7880;font-size:11px;margin:0}.dark-section,.packing,.documents{padding:72px 0;background:linear-gradient(120deg,#07466b,#083958);color:#fff}.section-head{text-align:center;margin-bottom:35px}.section-head h2{font-size:clamp(31px,4vw,44px);letter-spacing:-.045em;margin:7px 0}.section-head span{font-size:11px;color:#87939b}.section-head.light>p{color:#70d0e4}.section-head.light>span{color:#a9cad3}.day-tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.day-tabs button{border:1px solid #ffffff20;background:#ffffff08;color:#fff;padding:15px 10px;border-radius:7px;cursor:pointer}.day-tabs small,.day-tabs b,.day-tabs span{display:block}.day-tabs small{font-size:8px;opacity:.7}.day-tabs b{font-size:16px;margin:3px}.day-tabs .active{background:var(--orange);border-color:var(--orange);transform:translateY(-2px)}.day-detail{margin-top:14px;background:var(--card);color:var(--ink);border-radius:13px;padding:24px 30px;display:grid;grid-template-columns:1fr 1fr 1.35fr;align-items:center;gap:20px;min-height:108px}.day-detail em{font-size:9px;color:var(--orange);font-style:normal}.day-detail p{font-size:10px;color:var(--blue);font-weight:800;margin:4px 0}.day-detail h3{margin:0;font-size:21px}.day-detail>strong{font-size:12px}.day-detail ul{list-style:none;padding:0;margin:0;font-size:11px;line-height:1.9;color:#d85b34}.hotel{padding:90px 0;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.hotel-photo{position:relative;background:white;padding:10px;transform:rotate(-2deg);box-shadow:0 15px 25px #4c3c2c25}.hotel-photo img{width:100%;height:330px;object-fit:cover;display:block}.hotel h2{font-size:40px;line-height:1.08;letter-spacing:-.05em;margin:10px 0 22px}.desc{color:#65727b;font-size:13px;line-height:1.8}.hotel dl{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px dashed #c9bdab;padding-top:18px}.hotel dt,.hotel dd{margin:0}.hotel dd{font-size:11px;margin-top:6px}.text-link,.center-link{color:var(--blue);font-size:11px;font-weight:850;text-decoration:none}.places,.booking{padding:0 0 90px}.filters{display:flex;justify-content:center;gap:8px;margin-bottom:30px;flex-wrap:wrap}.filters button{border:1px solid #d9d3c8;background:white;color:var(--ink);border-radius:99px;padding:8px 15px;font-size:10px;font-weight:800;cursor:pointer}.filters .active{background:var(--blue);color:white;border-color:var(--blue)}.place-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.place-grid article{background:var(--card);padding:20px;box-shadow:0 7px 16px #55412912;min-height:140px}.place-grid small{color:var(--orange);font-weight:900;font-size:9px}.place-grid h3{font-size:16px;margin:7px 0}.place-grid p{font-size:10px;color:#6d7880}.place-grid footer{display:flex;justify-content:space-between;margin-top:20px;font-size:8px}.place-grid footer a{color:var(--blue);font-weight:850}.center-link{display:block;text-align:center;margin-top:27px}.packing{background:linear-gradient(120deg,#095b69,#075064)}.progress{max-width:640px;display:flex;align-items:center;gap:14px;margin-bottom:30px}.progress i{height:8px;background:#ffffff25;flex:1;border-radius:99px;overflow:hidden}.progress i span{display:block;height:100%;background:#fb835c;transition:.25s}.progress b{font-size:10px}.packing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.packing-grid article{background:var(--card);color:var(--ink);padding:21px;min-height:270px}.packing-grid h3{font-size:15px;margin:0 0 12px}.packing-grid label{display:flex;gap:9px;padding:7px 0;cursor:pointer}.packing-grid input{width:15px;height:15px;accent-color:var(--orange)}.packing-grid label span,.packing-grid label b,.packing-grid label small{display:block}.packing-grid label b{font-size:11px}.packing-grid label small{min-height:12px;color:#1780a5;font-size:8px;margin-top:2px}.packing-grid .done b{text-decoration:line-through;color:#999}.booking{padding-top:75px}.buy-layout{max-width:930px;margin:auto}.buy-layout ol{background:white;padding:18px 28px;box-shadow:0 14px 30px #51402b1c}.buy-layout li{display:grid;grid-template-columns:35px 1.5fr 1fr 1fr;gap:10px;border-bottom:1px solid #eee6d8;padding:9px 0;font-size:10px;align-items:center}.buy-layout li i{color:#b99c6c;font-style:normal}.buy-layout li a{color:var(--blue);font-weight:800;text-decoration:none}.buy-layout li span{text-align:right;color:#747d82}.budget{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:55px;align-items:center}.budget>div{text-align:center;border:2px dashed #ed815f;border-radius:50%;padding:30px}.budget small,.budget strong,.budget span{display:block}.budget strong{font-size:37px;margin:8px}.budget span{font-size:9px;color:#777}.budget dl>div{display:flex;justify-content:space-between;border-bottom:1px dotted #b9afa0;padding:9px;font-size:10px}.budget dd{margin:0;color:var(--blue);font-weight:850}.documents{background:#062f54}.doc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.doc-grid a{background:var(--card);color:var(--ink);padding:20px;text-decoration:none;display:flex;align-items:center;gap:15px}.doc-grid a>b{flex:1;font-size:12px}.doc-grid small{display:block;font-weight:400;color:#7e878d;margin-top:4px;font-size:8px}body>footer{height:88px;width:min(100% - 48px,1200px);margin:auto;display:flex;align-items:center;justify-content:space-between;font-size:9px}body>footer>a:last-child{text-decoration:none;font-weight:800}.login-layer{position:fixed;z-index:99;inset:0;background:#062e51f4;display:grid;place-items:center;padding:20px}.login-layer.hidden{display:none}.login-card{width:min(100%,410px);background:var(--card);padding:40px;border-radius:16px;box-shadow:0 20px 50px #0006}.login-card h1{font-size:40px;line-height:1.1;letter-spacing:-.05em}.login-card p:not(.eyebrow){color:#68757d;line-height:1.6}.login-card input{width:100%;height:60px;border:1px solid #c7bca7;border-radius:10px;background:#fff;padding:0 20px;font-size:27px;letter-spacing:.4em;text-align:center;margin:10px 0}.login-card button{width:100%;cursor:pointer}.login-card #login-error{color:#c63220;font-size:12px;min-height:20px;margin-top:10px}
@media(max-width:850px){header,.wrap,body>footer{width:calc(100% - 30px)}nav{display:none}.hero{grid-template-columns:1fr;padding-top:25px}.hero-copy{order:2}.photo img{height:300px}.quick{grid-template-columns:1fr}.day-tabs{grid-template-columns:repeat(3,1fr)}.day-detail{grid-template-columns:1fr}.hotel{grid-template-columns:1fr;gap:35px}.place-grid,.packing-grid,.doc-grid{grid-template-columns:repeat(2,1fr)}.budget{grid-template-columns:1fr;gap:30px}}
@media(max-width:520px){header{height:60px}.hero{gap:34px}.hero h1{font-size:49px}.photo img{height:220px}.quick{margin-bottom:48px}.dark-section,.packing,.documents{padding:58px 0}.section-head h2{font-size:32px}.day-tabs{grid-template-columns:repeat(2,1fr)}.hotel{padding:65px 0}.hotel-photo img{height:230px}.place-grid,.packing-grid,.doc-grid{grid-template-columns:1fr}.packing-grid article{min-height:0}.buy-layout li{grid-template-columns:26px 1fr}.buy-layout li a,.buy-layout li span{display:none}.budget>div{border-radius:120px}.login-card{padding:29px 23px}body>footer span{display:none}}

/* v5: 매장정보 시트 전체를 compact 목록으로 표시 */
.place-grid{display:flex;flex-direction:column;gap:0;background:var(--card);box-shadow:0 8px 22px #55412912}
.place-grid article{display:grid;grid-template-columns:minmax(150px,1.05fr) minmax(190px,1.25fr) minmax(220px,2fr) auto auto;gap:16px;align-items:center;min-height:0;padding:11px 16px;border-bottom:1px solid #eae2d5;box-shadow:none}
.place-grid article:last-child{border-bottom:0}
.place-grid h3{font-size:13px;margin:3px 0 0}
.place-grid p{font-size:10px;color:#6d7880;margin:0;line-height:1.45}
.place-meta{display:flex;flex-direction:column;gap:3px;font-size:9px;color:#7b858b}
.place-meta b{color:var(--ink)}
.place-tags{display:flex;gap:4px;flex-wrap:wrap}
.place-tags i{font-style:normal;font-size:8px;color:var(--teal);background:#e7f2ef;border-radius:99px;padding:4px 7px;white-space:nowrap}
.place-grid article>a{color:var(--blue);font-size:9px;font-weight:850;text-decoration:none;white-space:nowrap}
.empty-list{text-align:center!important;padding:35px}
@media(max-width:850px){.place-grid article{grid-template-columns:1fr auto;gap:7px 12px}.place-name{grid-column:1}.place-meta{grid-column:1}.place-grid article>p{grid-column:1/-1}.place-tags{grid-column:1}.place-grid article>a{grid-column:2;grid-row:1/3}}
@media(max-width:520px){.place-grid article{padding:12px}}

/* v5.1: 긴 맛집/쇼핑 목록은 섹션 안에서 스크롤 */
.place-grid{max-height:520px;overflow-y:auto;overscroll-behavior:contain}
.buy-scroll{max-height:360px;overflow-y:auto;overscroll-behavior:contain;background:#fff;box-shadow:0 14px 30px #51402b1c}
.buy-scroll ol{margin:0;box-shadow:none}
.place-grid,.buy-scroll{scrollbar-width:thin;scrollbar-color:#88a9b3 #eee7da}
.place-grid::-webkit-scrollbar,.buy-scroll::-webkit-scrollbar{width:8px}
.place-grid::-webkit-scrollbar-track,.buy-scroll::-webkit-scrollbar-track{background:#eee7da}
.place-grid::-webkit-scrollbar-thumb,.buy-scroll::-webkit-scrollbar-thumb{background:#88a9b3;border-radius:99px}
@media(max-width:520px){.place-grid{max-height:440px}.buy-scroll{max-height:320px}}

/* v5.2: 가독성, 카드 정렬, 쇼핑 목록 및 로그아웃 UI 개선 */
body{font-size:16px}
.plain{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 15px;border:1px solid #cfc5b4;border-radius:999px;background:#fffdf8;color:var(--ink);font-size:12px;font-weight:850;box-shadow:0 3px 10px #55412912;transition:background .2s,border-color .2s,color .2s,transform .2s}
.plain:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateY(-1px)}
.plain:focus-visible{outline:3px solid #62b8df66;outline-offset:2px}

/* 장소 목록은 한 줄짜리 압축 표 대신 읽기 쉬운 2열 카드로 표시 */
.place-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px;background:#efe8da}
.place-grid article{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name link" "meta meta" "memo memo" "tags tags";align-content:start;gap:10px 14px;min-height:190px;padding:20px;border:0;border-radius:12px;background:var(--card);box-shadow:0 5px 14px #55412914}
.place-name{grid-area:name;min-width:0}
.place-grid article>a{grid-area:link;align-self:start;font-size:12px}
.place-meta{grid-area:meta;display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px;line-height:1.5}
.place-grid article>p{grid-area:memo;font-size:12px;line-height:1.65;margin:0;overflow-wrap:anywhere}
.place-tags{grid-area:tags}
.place-tags i{font-size:10px;padding:5px 9px}
.place-grid small{font-size:11px}
.place-grid h3{font-size:18px;line-height:1.35;margin:6px 0 0;overflow-wrap:anywhere}

/* 준비물은 섹션 전체가 같은 중심선과 폭을 사용 */
.packing .section-head,.packing-grid,.progress{margin-left:auto;margin-right:auto}
.progress{max-width:min(720px,calc(100% - 48px));justify-content:center}
.packing-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1000px}
.packing-grid article{min-height:0;padding:25px 24px;border-radius:4px}
.packing-grid h3{font-size:18px;text-align:center;margin-bottom:16px}
.packing-grid label{align-items:flex-start;padding:9px 0}
.packing-grid input{flex:0 0 auto;width:18px;height:18px}
.packing-grid label b{font-size:13px;line-height:1.45}
.packing-grid label small{font-size:10px}

/* 사올 물건 표를 화면 폭에 맞춰 넓히고 글자 크기를 키움 */
.buy-layout{max-width:1100px}
.buy-scroll{max-height:430px;border-radius:10px}
.buy-layout ol{padding:16px 24px}
.buy-layout li{grid-template-columns:42px minmax(180px,1.5fr) minmax(130px,1fr) minmax(150px,1fr);gap:16px;padding:14px 4px;font-size:13px;line-height:1.45}
.buy-layout li b{font-size:14px}
.buy-layout li a{font-size:13px}

@media(max-width:850px){
  body{font-size:17px}
  .place-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px}
  .place-grid article{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name link" "meta meta" "memo memo" "tags tags";min-height:210px;padding:17px}
  .place-meta{grid-template-columns:1fr;font-size:12px}
  .packing-grid{grid-template-columns:repeat(3,minmax(0,1fr));width:min(calc(100% - 30px),1000px)}
  .buy-layout li{grid-template-columns:34px minmax(130px,1.4fr) minmax(110px,1fr) minmax(120px,1fr);font-size:12px}
}

@media(max-width:620px){
  header{gap:12px}
  .brand{font-size:12px}
  .plain{margin-left:auto;min-height:40px;padding:9px 14px;font-size:13px}
  .section-head{margin-bottom:28px}
  .section-head>p{font-size:11px}
  .section-head span{display:block;padding:0 15px;font-size:13px;line-height:1.55}
  .filters{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:2px 0 10px;margin-bottom:16px;scrollbar-width:none}
  .filters::-webkit-scrollbar{display:none}
  .filters button{flex:0 0 auto;padding:10px 15px;font-size:12px}
  .place-grid{grid-template-columns:1fr;max-height:560px;padding:9px}
  .place-grid article{min-height:0;padding:18px}
  .place-grid h3{font-size:19px}
  .place-grid article>p,.place-meta{font-size:13px}
  .place-grid article>a{font-size:13px}
  .packing .section-head{padding:0 15px}
  .progress{max-width:calc(100% - 30px);flex-wrap:wrap;justify-content:flex-end;margin-bottom:22px}
  .progress i{flex-basis:100%}
  .progress b{font-size:13px}
  .packing-grid{grid-template-columns:1fr;width:calc(100% - 30px);gap:12px}
  .packing-grid article{padding:22px 20px}
  .packing-grid h3{text-align:left;font-size:19px}
  .packing-grid label b{font-size:15px}
  .packing-grid label small{font-size:11px}
  .booking{padding-left:0;padding-right:0;width:100%}
  .booking>.section-head{padding:0 15px}
  .buy-layout{width:calc(100% - 30px)}
  .buy-scroll{max-height:390px;overflow:auto}
  .buy-layout ol{min-width:560px;padding:10px 16px}
  .buy-layout li{grid-template-columns:36px minmax(170px,1.5fr) minmax(120px,1fr) minmax(150px,1fr);gap:12px;padding:13px 2px;font-size:13px}
  .buy-layout li b{font-size:14px}
  .buy-layout li a,.buy-layout li span{display:block;font-size:13px}
}
