html {overflow:auto; min-height: 780px;min-width:340px;  scroll-behavior: smooth;}
body {margin:0;padding:0;font-size:0.75em; height:100%;font-family: 'Pretendard'; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;   position: relative; width: 100%; letter-spacing:0px; min-width:340px;margin:0 auto; }
html, h1, h2, h3, h4, h5, h6, form, fieldset, img { margin:0;padding:0;border:0}
h1, h2, h3, h4, h5, h6 {font-size:1em;font-family: 'Pretendard';}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block}
legend {position:absolute;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
label, input, button, select, img {vertical-align:middle; font-family: 'Pretendard';}
input, button {margin:0;padding:0;font-size:1em;font-family: 'Pretendard';}
button {cursor:pointer}
input[type=text], input[type=password], input[type=submit], input[type=image], button {font-size:1em; -webkit-appearance:none}
textarea, select {font-size:1em;font-family: 'Pretendard';}
textarea {border-radius:0;-webkit-appearance:none;font-family: 'Pretendard';}
select {margin:0;background:none;font-family: 'Pretendard';}
p {margin:0;padding:0;word-break:break-all; font-family: 'Pretendard';}
hr {display:none}
pre {overflow-x:scroll;font-size:1.1em}
a {color:#000;text-decoration:none; font-weight:400; font-family: 'Pretendard';}
ul,li,dl,dt,dd {padding:0;margin:0; font-family: 'Pretendard';}
ul {list-style:none}
*,:after,:before {
	-webkit-box-sizing:border-box;
	-moz-box-sizing:border-box;
	box-sizing:border-box;
}
input[type="text"]:focus {outline: none;}
input[type="password"]:focus {outline: none;}
textarea:focus {outline: none;}
input[type="text"]::placeholder {color:#aaa;}
input[type="password"]::placeholder {color:#aaa;}
textarea::placeholder {color:#aaa;}




header {position: fixed; left:0; width:100%; top:0; border-bottom:1px solid #e8e8e8; height:90px; background:#fff; z-index: 10; padding:21px 35px;}
header .logo {float:left; margin-top:-1px;}
header .right {float:right;}
header .right button {height:45px; border:none; background:#222; color:#fff; position: relative; padding:0 60px 2px 20px; font-size:15px; margin-left:4px;}
header .right button b {font-weight:400;}
header .right button.cancel {background:#C7C7C7}
header .right button.back {background:#C7C7C7}
header .right button span {display: inline-block; width:45px; height:45px; background:rgba(0,0,0,.06); text-align: center;  padding:11px 0; position: absolute; right:0; top:0;}
header .right button.save span {background:#000; padding:12px 0 12px 2px;}




nav {position: fixed; left:0; top:90px; height:calc(100% - 90px); width:300px; background:#f8f8f8; border-right:1px solid #e8e8e8; padding:15px; z-index: 9;}
nav .pro_info {width:100%; border:1px solid #eee; background:#fff; padding:10px;}
nav .pro_info:after {content:''; clear:both; display: table;}
nav .pro_info .img {float:left; width:90px; height:90px; }
nav .pro_info .txt {float:right; width:calc(100% - 105px); padding:8px 5px 8px 0;}
nav .pro_info .txt p {font-size:13px; color:#111; font-weight:500; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
nav .pro_info .txt span {display: inline-block; width:100%; margin-top:6px;font-size:11px; color:#777; font-weight:300; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}
nav .pro_info .txt b {display: inline-block; width:100%; margin-top:12px; color:#111; font-size:14px; font-weight:600;}
nav .pro_info .txt b strong {color:#FF6262; font-weight:600; display: inline-block; margin-right:3px;}
nav .pro_info .open_letter {width:100%; float:left; margin-top:10px; height:30px; font-size:13px; border:1px solid #ddd; background:#fff; color:#888; font-weight:400; padding-bottom:1px;}

nav p.s_txt {padding-left:10px; font-size:13px; color:#aaa; font-weight:400; margin-top:35px;}
nav .step {padding:0 5px;}
nav .step li {margin-top:35px; position: relative; padding-left:40px; font-size:15px; color:#ababab; font-weight:400;}
nav .step li:first-child {margin-top:22px;}
nav .step li span {position: absolute; left:3px; top:-3px; width:26px; height:26px; border-radius:50%;  border:1px solid #cecece; background:none;}
nav .step li span:after {content:''; position: absolute; left:12px; top:25px; width:1px; height:28px; background:#CECECE}
nav .step li:last-child span:after {content:none;}
nav .step li.on {color:#111; font-weight:500;}
nav .step li.on:after {content:url('../img/step_arrow.svg'); margin-left:10px;}
nav .step li.on.off:after {content:none;}
nav .step li.on span {background:url('../img/step_check.svg')no-repeat center #111; border:none;}
nav .step li.on span:after {background:#111}


nav .bt_box {position: absolute; left:15px; width:calc(100% - 30px); bottom:15px;}
nav .bt_box p {text-align: center; font-size:14px; color:#888; line-height:1.4em; margin-bottom:20px;}
nav .bt_box p b {color:#111; font-weight:600;}
nav .bt_box p span {color:#FF6262; font-weight:500;}
nav .bt_box .bt:after {content:''; clear:both;; display: table;}
nav .bt_box .bt button {float:left; width:calc((100% - 5px) / 2); height:40px; font-size:14px; color:#111; font-weight:500; background:none;border:1px solid #111;}
nav .bt_box .bt button span {display: inline-block; padding:0 6px 0 6px; height:18px; font-size:11px; color:#fff; border-radius:50px; margin-left:3px; background:#111; line-height:19px; margin-top:1px; position: relative; top:-1px;}
nav .bt_box .bt button:last-child {float:right;}


nav .letter_change {position: absolute; left:15px; top:15px; width:calc(100% - 30px); background:#fff; z-index: 1; overflow: hidden; height:0px; transition: .8s;}
nav .letter_change.on {height:calc(100% - 70px); }
nav .letter_change ul {height:calc(100% - 50px); overflow-y:scroll; padding-bottom:10px;}
nav .letter_change ul::-webkit-scrollbar {display:none;}
nav .letter_change ul li:after {content:''; clear:both; display: table;}
nav .letter_change ul li {padding:10px 10px 0 10px; cursor: pointer;}
nav .letter_change ul li .img {float:left; width:75px; height:75px; position: relative; border:1px solid #eee}
nav .letter_change ul li .img span {position: absolute; left:-11px; top:-11px; font-size:12px; color:#fff; padding:5px 6px; background:#111;}
nav .letter_change ul li .txt {float:right; width:calc(100% - 87px); padding:4px 5px 2px 0;}
nav .letter_change ul li .txt p {font-size:13px; color:#111; font-weight:500; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
nav .letter_change ul li .txt span {display: inline-block; width:100%; margin-top:4px;font-size:11px; color:#777; font-weight:300; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}
nav .letter_change ul li .txt b {display: inline-block; width:100%; margin-top:6px; color:#111; font-size:14px; font-weight:600;}
nav .letter_change ul li .txt b strong {color:#FF6262; font-weight:600; display: inline-block; margin-right:3px;}
nav .letter_change ul li.on {padding:10px; border:1px solid #111; margin-top:10px;}

nav .letter_change .letter_sel {width:100%; height:40px; color:#fff; background:#111; font-size:13px; border:none;}


.content {float:left; position: relative; left:300px; width:calc(100% - 300px - 250px); height:calc(100vh - 90px); margin-top:90px; }
.content2 {width:calc(100% - 300px);}

.preview {float:right; position:relative; width:250px; border-left:1px solid #e8e8e8; height:calc(100vh - 90px); margin-top:90px; background:#f8f8f8}
.preview::-webkit-scrollbar {display: none;}



.mo_letter_bt {display: none;}
.step_hd {display: none;}

/* #523: 앱 웹뷰(no_hd)에선 기존 형태 [작성취소|다음단계] 복원 — 건너뛰기 진입점은
   앱 네이티브 '편지 없이 사진/문서만 보내기' 링크가 대체. 뷰포트 폭과 무관하게
   적용(태블릿/폴더블 웹뷰에서 재노출 방지 — 리뷰 반영). 모바일 브라우저는 3버튼 유지 */
.no_hd header .right button.skip {display: none;}


@media screen and (max-width:1600px) {
	.preview {display: none;}
	.content {width:calc(100% - 300px);}
}


@media screen and (max-width:1280px) {
	nav {left:-100%;}
	.content {width:100%; left:0; margin-top:70px;}

	header {padding:15px 20px}
	header .logo img {width:88px;}

	header {height:70px;}
	/* #523: 하단 고정 바를 flex 한 줄로 — 버튼 수가 늘어도(작성취소+건너뛰기+다음단계) 50% 그리드처럼
	   2줄로 래핑되어 첫 줄이 .mo_letter_bt(bottom:45px)에 가려지는 회귀를 막는다 */
	header .right {position: fixed; left:0; bottom:0; width:100%; display:flex;}
	/* 3버튼(브라우저) 시 버튼당 ~120px — 기본 패딩(좌20/우60)이면 텍스트가 잘려
	   좌우를 줄인다. 우측은 아이콘 span 폭 45px 이상 확보해야 글자가 아이콘과 안 겹침 */
	header .right button {float:none; flex:1 1 0; width:auto; margin:0; padding:0 50px 2px 12px;}
	header .right button b {display: none;}

	nav {z-index: 10;}
	nav .bt_box .bt {position: fixed; right:20px; top:18px; }
	nav .bt_box .bt b {display: none;}
	nav .bt_box .bt button {border-radius:50px; padding:0 13px; width:auto;  height:32px; margin-left:5px;}
	nav .bt_box .bt button:first-child {padding:0 8px 0 13px;}

	.mo_letter_bt {position: fixed; left:0; width:100%; bottom:45px; display: block; z-index: 10}
	.mo_letter_bt button {float:left; width:50%; height:35px; background:#fff; color:#888; font-size:13px; border:1px solid #eee; }
	.mo_letter_bt button:last-child {border-left:none;}

	nav .letter_change {position: fixed; left:0; top:0; width:100%; }
	nav .letter_change.on {height:calc(100% - 79px);}
	nav .letter_change ul {height:calc(100% - 41px); padding:10px 20px 20px 20px;}
}

@media screen and (max-width:767px) {
	header {height:60px; padding:13px 20px; border-bottom:none;}
	header .logo img {width:78px}

	nav .bt_box .bt {right:17px; top:15px;}
	nav .bt_box .bt button {height:29px; font-size:13px; padding:0 10px;}
	nav .bt_box .bt button:first-child {padding:0 7px 0 10px}
	nav .bt_box .bt button span {font-size:10px; height:17px; padding:0 5px; line-height:16px; margin-left:5px;}

	.content {margin-top:60px;}
	.content .step_hd {height:40px; line-height:39px; color:#434343; background:#f8f8f8; text-align: center; font-size:14px; position: relative;}
	.content .step_hd button {position: absolute; width:40px; height:40px; background:none; border:none; left:0; top:0;}
	.content .step_hd button img {margin:-6px 0 0 0;}
	.content .step_hd {display: block;}
}	