@charset "utf-8";

/* Shared public-page shell; native board/editor/member controls remain intact. */
#sa-home.sa-subpage { position: relative; min-height: 100vh; background: #f8f4eb; }
#sa-home.sa-subpage .sa-header { position: sticky; top: 0; }
#sa-home .sa-page-scene { position: fixed; inset: 86px 0 0; pointer-events: none; background: linear-gradient(#f8f4eb20, #f8f4eb50), url('assets/village.webp') center center / cover no-repeat; }
#sa-home .sa-page-main { position: relative; z-index: 1; width: 100%; max-width: 1152px; min-height: calc(100vh - 210px); margin: 0 auto; padding: 42px 28px 72px; }
#sa-home .sa-page-heading { padding: 0 3px 28px; }
#sa-home .sa-breadcrumb { display: flex; align-items: center; gap: 11px; font-size: 12px; color: #405f4d; margin-bottom: 12px; }
#sa-home .sa-breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
#sa-home .sa-page-heading h1 { margin: 0; font-size: 36px; line-height: 1.3; font-weight: 800; letter-spacing: -1.3px; color: #253e30; word-break: keep-all; }
#sa-home .sa-section-nav { display: flex; gap: 0; overflow-x: auto; max-width: 100%; scrollbar-width: thin; background: #f5f0e5f5; border: 1px solid #d9cfbd; border-bottom: 0; border-radius: 5px 5px 0 0; }
#sa-home .sa-section-nav a { flex: 0 0 auto; display: block; padding: 17px 24px; font-size: 15px; line-height: 1.4; color: #685f4e; white-space: nowrap; border-bottom: 3px solid transparent; }
#sa-home .sa-section-nav a:hover { background: #fffdf5; color: #385a3e; }
#sa-home .sa-section-nav a[aria-current="page"] { color: #2d5037; font-weight: 750; border-bottom-color: #476347; background: #fffdf7; }
#sa-home #container.sa-page-paper { float: none; position: relative; width: 100%; min-width: 0; max-width: none; min-height: 340px; margin: 0; padding: 32px; background: #fffdf7fa; border: 1px solid #d9cfbd; border-radius: 5px; box-shadow: 0 10px 32px #4537190c; font-size: 15px; line-height: 1.65; }
#sa-home .sa-section-nav + #container.sa-page-paper { border-radius: 0 0 5px 5px; }
#sa-home .sa-page-paper::after { content: ''; display: block; clear: both; }
#sa-home .sa-page-paper .tbl_wrap { max-width: 100%; overflow-x: auto; }
#sa-home .sa-page-paper img { max-width: 100%; height: auto; }
#sa-home .sa-page-paper :is(input, select, textarea, button) { font-family: inherit; }
#sa-home .sa-page-paper :is(input[type="text"], input[type="password"], input[type="email"], input[type="number"], input[type="tel"], select, textarea, .frm_input) { max-width: 100%; border-color: #d8cebc; background-color: #fffefa; color: #302b22; border-radius: 3px; box-shadow: none; }
#sa-home .sa-page-paper :is(input, select, textarea):focus-visible { outline: 2px solid #718568; outline-offset: 2px; border-color: #718568; }
#sa-home .sa-page-paper :is(input[type="checkbox"], input[type="radio"], input[type="range"]) { accent-color: #476347; }
#sa-home .sa-page-paper :is(.btn_submit, a.btn_submit, button.btn_submit, .btn_b02) { background: #426044; color: #fffdf4; border: 1px solid #426044; border-radius: 3px; }
#sa-home .sa-page-paper :is(.btn_submit, .btn_b02):hover { background: #304d34; color: #fff; }
#sa-home .sa-page-paper :is(.btn_cancel, .btn_b01, .btn_b03, .btn_b04) { background: #f3eee3; color: #504735; border-color: #d9cfbd; border-radius: 3px; }
#sa-home .sa-page-paper :is(.btn_b01, .btn_b02, .btn_b03, .btn_b04) { white-space: nowrap; }
#sa-home .sa-page-paper :is(.pg_page, .pg_current) { border-radius: 3px; border: 1px solid #d9cfbd; box-shadow: none; }
#sa-home .sa-page-paper .pg_current { background: #426044; border-color: #426044; color: #fff; }
#sa-home .sa-page-paper .pg_page { background-color: #fffdf7; color: #6a604e; }
#sa-home .sa-page-paper :is(.tbl_head01, .tbl_head02) thead th { background: #f2eddf; color: #615845; border-color: #d9cfbd; font-weight: 600; letter-spacing: 0; }
#sa-home .sa-page-paper :is(.tbl_head01, .tbl_head02) td { border-color: #e5decf; }
#sa-home #bo_list { width: 100% !important; margin: 0; font-size: 14px; }
#sa-home #bo_list table { width: 100%; }
#sa-home #bo_list tbody tr:hover { border-left-color: #70805a; }
#sa-home #bo_list tbody .even td { background: #faf7ef; }
#sa-home #bo_list .bo_notice td { background: #f7f0d9 !important; border-color: #e7dcc1; }
#sa-home #bo_list .bo_notice .notice_icon { color: #886327; }
#sa-home #bo_list .fix_btn.write_btn { background: #496b45; color: #fffdf4; }
#sa-home #bo_list .cnt_cmt, #sa-home .bo_cate_link, #sa-home #bo_v_title .bo_v_cate { background: #e9efdf; color: #46613d; }
#sa-home #bo_cate { margin-top: 0; }
#sa-home #bo_cate a { color: #655e4f; border-color: #d9cfbd; background: #fffdf7; border-radius: 3px; }
#sa-home #bo_cate #bo_cate_on { background: #426044; color: #fff; border-color: #426044; box-shadow: none; }
#sa-home #bo_v { background: transparent; padding: 0; margin: 0; width: 100% !important; }
#sa-home #bo_v_title .bo_v_tit { font-size: 27px; line-height: 1.45; font-weight: 700; color: #302d24; word-break: keep-all; overflow-wrap: anywhere; }
#sa-home #bo_v_info { border-color: #e1d7c6; color: #766d5f; }
#sa-home #bo_v_con { font-size: 16px; line-height: 1.9; color: #39352b; overflow-wrap: anywhere; }
#sa-home #bo_v_con :is(img, video, iframe) { max-width: 100%; }
#sa-home #bo_v_con img { height: auto; }
#sa-home #bo_v_con table { max-width: 100%; }
#sa-home #bo_v_con a { color: #46613d; text-decoration: underline; text-underline-offset: 3px; }
#sa-home #bo_v_con ul { list-style: disc; padding-left: 1.7em; }
#sa-home #bo_v_con ol { list-style: decimal; padding-left: 1.7em; }
#sa-home #bo_v_con li { list-style: inherit; }
#sa-home #bo_vc { border-color: #d9cfbd; }
#sa-home #bo_vc article { border-color: #e4dccd; }
#sa-home #bo_w { width: 100%; }
#sa-home #bo_w .write_div { margin-top: 15px; }
#sa-home .bo_sch { width: min(360px, calc(100vw - 32px)); margin: 0; transform: translate(-50%, -50%); background: #fffdf7; border-color: #c9bda6; }
#sa-home .bo_sch .sch_input { width: calc(100% - 42px); }

/* Member screens keep the existing form fields, actions and validation. */
#sa-home.sa-account-page .sa-page-main { padding-top: 55px; }
#sa-home.sa-account-page .sa-page-heading { max-width: 470px; margin: 0 auto; text-align: center; }
#sa-home.sa-account-page .sa-breadcrumb { justify-content: center; }
#sa-home.sa-account-page #container.sa-page-paper { max-width: 470px; min-height: 0; margin: 0 auto; padding: 32px; }
#sa-home .mbskin { width: 100%; margin: 0 auto; padding: 0; }
#sa-home .mbskin .mbskin_box { background: transparent; border: 0; }
#sa-home .mbskin h1 { display: none; }
#sa-home #login_fs { padding: 24px 0 0; }
#sa-home #login_fs .frm_input { height: 48px; padding: 0 14px; font-size: 15px; }
#sa-home #login_fs .btn_submit { min-height: 49px; font-size: 16px; }
#sa-home .mb_log_cate { background: transparent; border-bottom: 1px solid #d9cfbd; }
#sa-home .mb_log_cate :is(h2, a) { color: #526349; background: transparent; border-color: #d9cfbd; }
#sa-home #login_info { font-size: 13px; }
#sa-home #login_info .login_if_auto label { padding-left: 24px; }
#sa-home #fregister p { background: #f1ebda; color: #675538; height: auto; line-height: 1.6; padding: 14px 20px; border-radius: 3px; }
#sa-home #fregister p::before { background: #b19a64; height: 100%; }
#sa-home #fregister section, #sa-home .register_form_inner { border-color: #d9cfbd; background: #faf7ef; }
#sa-home #fregister h2, #sa-home #register_form h2 { color: #3c503a; border-color: #ddd2bd; font-weight: 700; }
#sa-home #fregister_chkall { background: #f1eddf; border-color: #d9cfbd; }
#sa-home #register_form { background: transparent; }
#sa-home .chk_box input[type="checkbox"]:checked + label span { background-color: #55724a; border-color: #476347; }
#sa-home :is(#member_confirm, #pw_confirm, #find_info) { width: 100%; margin: 0; }
#sa-home.sa-account-page .new_win { width: 100%; min-width: 0; background: transparent; }
#sa-home.sa-account-page .new_win > h1 { display: none; }
#sa-home.sa-account-page .new_win .win_desc { background: #f4eedf; border-color: #d9cfbd; color: #675d49; }
#sa-home .sa-page-paper .new_win { width: 100%; min-width: 0; margin: 0; background: transparent; }
#sa-home .sa-page-paper .new_win > h1 { display: none; }

/* Existing public tools share the palette without changing their behavior. */
#sa-home .mypage, #sa-home .promo, #sa-home .hwcalc, #sa-home .auc-wrap { color: #3b362b; }
#sa-home .mp-hero, #sa-home .promo .hd { background: #526848; border-radius: 4px; }
#sa-home .mp-hero::after { background-image: none; }
#sa-home .mp-reflink, #sa-home .mp-card.hot, #sa-home .promo .prog { background: #eff0e3; border-color: #d4dcc4; border-radius: 4px; }
#sa-home .mp-reflink .h, #sa-home .mp-card .ic, #sa-home .promo .prog .progtxt { color: #506743; }
#sa-home .mp-sec h3 { border-left-color: #71845e; }
#sa-home #rlCopy, #sa-home .hwcalc .seg button.on { background: #506743; border-color: #506743; color: #fff; }
#sa-home .hwcalc .tabs button.on { color: #506743; border-bottom-color: #506743; }
#sa-home .hwcalc .label { border-left-color: #71845e; }
#sa-home .hwcalc input[type="range"] { accent-color: #71845e; }
#sa-home .hwcalc .card, #sa-home .mp-info, #sa-home .mp-card, #sa-home .mp-char { border-color: #ded6c5; border-radius: 4px; }
#sa-home .mp-info .k { background: #f5f0e6; }
#sa-home .sa-footer { position: relative; z-index: 1; }

#sa-home .sa-page-paper .sa-referral-event { --blue: #587149; --blue-deep: #3c5734; --blue-soft: #edf0e2; --teal: #657d50; --teal-soft: #eff0e3; --cyan: #738953; --pink: #a8893e; --ink: #343b2c; --text: #49483b; --muted: #797460; --line: #dfd8c5; --bg: transparent; --surface: #fffdf7; --surface-2: #f6f1e5; background: transparent; }
#sa-home .sa-page-paper .sa-referral-event .wrap { padding-inline: 0; }
#sa-home .sa-page-paper .sa-referral-event .hero { background: transparent; }
#sa-home .sa-page-paper .sa-referral-event .hero .banner { background: #526848; margin-top: 0; border-radius: 4px; padding: 32px; }
#sa-home .sa-page-paper .sa-referral-event .hero .banner::after { background-image: none; }
#sa-home .sa-page-paper .sa-referral-event .hero h1 { font-size: clamp(26px, 3.5vw, 40px); }
#sa-home .sa-page-paper .sa-referral-event .finale { background: #526848; border-radius: 4px; padding-inline: 20px; }
#sa-home .sa-page-paper .sa-referral-event .foot { background: transparent; color: #797460; }
#sa-home .sa-page-paper .sa-referral-event section { padding: 34px 0; }

@media (max-width: 900px) {
    #sa-home .sa-page-scene { top: 76px; background-position: center, 58% center; }
    #sa-home .sa-page-main { padding: 32px 24px 48px; }
    #sa-home .sa-page-heading { padding-bottom: 22px; }
    #sa-home .sa-page-heading h1 { font-size: 31px; }
    #sa-home #container.sa-page-paper { padding: 25px; }
    #sa-home .sa-section-nav a { padding: 15px 19px; font-size: 14px; }
}
@media (max-width: 560px) {
    #sa-home .sa-page-scene { top: 70px; background-position: center, 65% center; }
    #sa-home .sa-page-main { padding: 28px 12px 38px; }
    #sa-home .sa-page-heading { padding: 0 8px 24px; }
    #sa-home .sa-page-heading h1 { font-size: 28px; }
    #sa-home .sa-breadcrumb { font-size: 11px; margin-bottom: 9px; }
    #sa-home #container.sa-page-paper { padding: 20px 15px; min-height: 270px; font-size: 14px; }
    #sa-home .sa-section-nav a { padding: 14px 17px; }
    #sa-home #bo_v_title .bo_v_tit { font-size: 22px; }
    #sa-home #bo_v_con { font-size: 15px; line-height: 1.85; }
    #sa-home.sa-account-page .sa-page-main { padding: 32px 18px 45px; }
    #sa-home.sa-account-page #container.sa-page-paper { padding: 24px 20px; }
    #sa-home #fregister h2 { padding: 16px 34px 16px 14px; font-size: 15px; }
    #sa-home #fregister textarea { padding: 14px; }
    #sa-home #fregister .fregister_terms div { padding: 12px; overflow-x: auto; }
    #sa-home #register_form .half_input { width: 100%; margin-left: 0; margin-right: 0; }
    #sa-home .register_form_inner ul { padding: 16px; }
    #sa-home .promo { padding: 0; }
    #sa-home .hwcalc .card { padding: 15px 12px; }
}

#sa-home .sa-page-paper .sa-referral-event .btn { width: auto; min-width: max-content; white-space: nowrap; }
#sa-home .sa-page-paper .sa-referral-event p { word-break: keep-all; overflow-wrap: break-word; }
