* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    font-family: Arial, "Noto Sans KR", sans-serif;
    color: #171717;
    background: #fff;
}

body {
    min-width: 320px;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select {
    font: inherit;
}

.nv-container {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

.nv-front-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid #ececec;
}

.nv-front-header-inner {
    width: min(1180px, calc(100% - 40px));
    height: 72px;
    margin: 0 auto;
    display: flex;
    align-items: center;
}

.nv-front-logo {
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -.5px;
}

.nv-front-nav {
    display: flex;
    gap: 30px;
    margin-left: 52px;
}

.nv-front-nav a {
    font-size: 15px;
    color: #666;
}

.nv-front-nav a.active,
.nv-front-nav a:hover {
    color: #111;
    font-weight: 700;
}

.nv-front-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 18px;
    font-size: 14px;
}

.nv-login-link {
    padding: 9px 15px;
    background: #111;
    color: #fff;
    border-radius: 8px;
}

.nv-hero {
    padding: 92px 0 70px;
    background: linear-gradient(180deg, #f8f9fb 0%, #ffffff 100%);
}

.nv-hero-copy {
    max-width: 780px;
}

.nv-eyebrow {
    display: inline-block;
    margin-bottom: 12px;
    color: #777;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.2px;
}

.nv-hero h1,
.nv-page-hero h1 {
    margin: 0;
    font-size: clamp(42px, 6vw, 72px);
    line-height: 1.08;
    letter-spacing: -3px;
}

.nv-hero p,
.nv-page-hero p {
    margin: 22px 0 0;
    font-size: 18px;
    color: #666;
    line-height: 1.7;
}

.nv-main-search {
    margin-top: 42px;
    max-width: 760px;
    display: flex;
    gap: 10px;
}

.nv-main-search input {
    flex: 1;
    height: 58px;
    border: 1px solid #d9d9d9;
    border-radius: 12px;
    padding: 0 18px;
    font-size: 16px;
}

.nv-main-search button,
.nv-tools-search button {
    border: 0;
    border-radius: 10px;
    background: #111;
    color: #fff;
    padding: 0 22px;
    cursor: pointer;
    font-weight: 700;
}

.nv-section {
    padding: 72px 0;
}

.nv-section-soft {
    background: #f7f8fa;
}

.nv-section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    margin-bottom: 28px;
}

.nv-section-head h2 {
    margin: 0;
    font-size: 30px;
    letter-spacing: -1px;
}

.nv-section-head > a {
    color: #777;
    font-size: 14px;
}

.nv-tool-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.nv-tool-card {
    position: relative;
    min-height: 220px;
    padding: 22px;
    border: 1px solid #e7e7e7;
    border-radius: 16px;
    background: #fff;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.nv-tool-card:hover {
    transform: translateY(-3px);
    border-color: #cfcfcf;
    box-shadow: 0 12px 30px rgba(0,0,0,.06);
}

.nv-card-category {
    font-size: 12px;
    color: #888;
}

.nv-tool-card h3 {
    margin: 14px 0 8px;
    font-size: 20px;
    letter-spacing: -.5px;
}

.nv-tool-card p {
    margin: 0;
    color: #707070;
    font-size: 14px;
    line-height: 1.65;
}

.nv-card-arrow {
    position: absolute;
    left: 22px;
    bottom: 20px;
    font-size: 13px;
    font-weight: 700;
}

.nv-card-foot {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #999;
}

.nv-card-foot strong {
    color: #222;
}

.nv-business-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.nv-business-card {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 22px;
    min-height: 110px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #e7e7e7;
}

.nv-business-card strong {
    font-size: 17px;
}

.nv-business-card span {
    font-size: 12px;
    color: #888;
}

.nv-coming {
    border-top: 1px solid #ededed;
}

.nv-coming-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.nv-coming-grid > div {
    padding: 34px;
    background: #111;
    color: #fff;
    border-radius: 18px;
}

.nv-coming-grid .nv-eyebrow {
    color: #aaa;
}

.nv-coming-grid h2 {
    margin: 0;
    font-size: 25px;
}

.nv-coming-grid p {
    color: #bbb;
    margin-bottom: 0;
}

.nv-page-hero {
    padding: 72px 0 48px;
    background: #f8f9fb;
}

.nv-page-hero h1 {
    font-size: clamp(36px, 5vw, 56px);
}

.nv-tools-section {
    padding-top: 38px;
}

.nv-tools-search {
    display: grid;
    grid-template-columns: 1fr 200px 220px auto;
    gap: 10px;
    margin-bottom: 20px;
}

.nv-tools-search input,
.nv-tools-search select {
    height: 48px;
    border: 1px solid #d9d9d9;
    border-radius: 10px;
    background: #fff;
    padding: 0 13px;
}

.nv-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 34px;
}

.nv-filter-chips a {
    padding: 9px 13px;
    border: 1px solid #ddd;
    border-radius: 999px;
    font-size: 13px;
    color: #666;
}

.nv-filter-chips a.active {
    background: #111;
    color: #fff;
    border-color: #111;
}

.nv-results-head {
    margin-bottom: 18px;
}

.nv-empty-front {
    padding: 70px 20px;
    text-align: center;
    color: #888;
    background: #fafafa;
    border-radius: 14px;
}

.nv-recommend-badge {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 5px 8px;
    background: #111;
    color: #fff;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
}

.nv-recommend-badge-soft {
    background: #ededed;
    color: #222;
}

.nv-front-footer {
    padding: 54px 0 80px;
    background: #f7f7f7;
    border-top: 1px solid #e8e8e8;
}

.nv-front-footer-inner {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    gap: 30px;
}

.nv-front-footer strong {
    font-size: 18px;
}

.nv-front-footer p {
    color: #888;
    font-size: 13px;
}

.nv-front-footer-links {
    display: flex;
    gap: 20px;
    color: #777;
    font-size: 13px;
}

.nv-mobile-bottom {
    display: none;
}

@media (max-width: 980px) {
    .nv-tool-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nv-business-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nv-tools-search {
        grid-template-columns: 1fr 1fr;
    }

    .nv-tools-search input {
        grid-column: 1 / -1;
    }
}

@media (max-width: 720px) {
    body {
        padding-bottom: 66px;
    }

    .nv-container,
    .nv-front-header-inner,
    .nv-front-footer-inner {
        width: min(100% - 28px, 1180px);
    }

    .nv-front-header-inner {
        height: 60px;
    }

    .nv-front-nav,
    .nv-search-link {
        display: none;
    }

    .nv-front-actions {
        margin-left: auto;
    }

    .nv-hero {
        padding: 58px 0 46px;
    }

    .nv-hero h1,
    .nv-page-hero h1 {
        letter-spacing: -2px;
    }

    .nv-hero p,
    .nv-page-hero p {
        font-size: 15px;
    }

    .nv-main-search {
        display: grid;
        grid-template-columns: 1fr;
    }

    .nv-main-search button {
        height: 50px;
    }

    .nv-section {
        padding: 48px 0;
    }

    .nv-section-head {
        align-items: center;
    }

    .nv-section-head h2 {
        font-size: 25px;
    }

    .nv-tool-grid,
    .nv-business-grid,
    .nv-coming-grid {
        grid-template-columns: 1fr;
    }

    .nv-tool-card {
        min-height: 190px;
    }

    .nv-tools-search {
        grid-template-columns: 1fr;
    }

    .nv-tools-search input {
        grid-column: auto;
    }

    .nv-tools-search button {
        height: 48px;
    }

    .nv-front-footer-inner {
        flex-direction: column;
    }

    .nv-mobile-bottom {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 60;
        height: 62px;
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        background: rgba(255,255,255,.97);
        border-top: 1px solid #e7e7e7;
        backdrop-filter: blur(14px);
    }

    .nv-mobile-bottom a {
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        color: #555;
    }
}


/* ===== Tool detail ===== */

.nv-tool-detail-hero {
    padding: 42px 0 36px;
    background: #f8f9fb;
    border-bottom: 1px solid #ececec;
}

.nv-breadcrumb {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 28px;
    font-size: 12px;
    color: #888;
}

.nv-tool-title-row {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    align-items: flex-end;
}

.nv-tool-title-row h1 {
    margin: 0;
    font-size: clamp(34px, 5vw, 54px);
    letter-spacing: -2px;
}

.nv-tool-title-row p {
    margin: 14px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 1.7;
}

.nv-favorite-placeholder {
    min-width: 110px;
    height: 42px;
    border: 1px solid #ddd;
    border-radius: 9px;
    background: #fff;
    color: #999;
}

.nv-tool-detail-section {
    padding-top: 42px;
}

.nv-tool-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 28px;
    align-items: start;
}

.nv-tool-main {
    min-width: 0;
}

.nv-calculator-card,
.nv-result-card,
.nv-tool-content,
.nv-side-card {
    background: #fff;
    border: 1px solid #e7e7e7;
    border-radius: 16px;
}

.nv-calculator-card {
    padding: 28px;
}

.nv-calc-mode {
    display: flex;
    gap: 18px;
    margin-bottom: 22px;
    font-size: 14px;
}

.nv-calc-label {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 800;
}

.nv-calc-label-gap {
    margin-top: 20px;
}

.nv-money-input {
    display: flex;
    align-items: center;
    height: 54px;
    border: 1px solid #d8d8d8;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}

.nv-money-input:focus-within {
    border-color: #111;
}

.nv-money-input input {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    outline: 0;
    padding: 0 14px;
    font-size: 17px;
}

.nv-money-input span {
    padding-right: 15px;
    color: #777;
    font-size: 14px;
}

.nv-calc-submit {
    width: 100%;
    height: 52px;
    margin-top: 22px;
    border: 0;
    border-radius: 10px;
    background: #111;
    color: #fff;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
}

.nv-calc-error {
    margin-top: 14px;
    padding: 11px 13px;
    border-radius: 8px;
    background: #fee2e2;
    color: #991b1b;
    font-size: 13px;
}

.nv-result-card {
    margin-top: 18px;
    padding: 28px;
}

.nv-result-card > span {
    color: #777;
    font-size: 13px;
}

.nv-result-main {
    margin: 12px 0 26px;
}

.nv-result-main strong {
    display: block;
    font-size: clamp(38px, 6vw, 58px);
    letter-spacing: -2px;
}

.nv-result-main small {
    display: block;
    margin-top: 5px;
    color: #888;
}

.nv-result-list {
    margin: 0;
    border-top: 1px solid #eee;
}

.nv-result-list > div {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 14px 0;
    border-bottom: 1px solid #eee;
}

.nv-result-list dt {
    color: #777;
}

.nv-result-list dd {
    margin: 0;
    font-weight: 800;
}

.nv-tool-content {
    margin-top: 18px;
    padding: 30px;
}

.nv-tool-content h2,
.nv-tool-content h3 {
    letter-spacing: -.6px;
}

.nv-tool-content h2 {
    margin-top: 0;
}

.nv-tool-content h3 {
    margin-top: 30px;
}

.nv-tool-content p {
    color: #555;
    line-height: 1.85;
}

.nv-tool-side {
    display: grid;
    gap: 14px;
}

.nv-side-card {
    padding: 20px;
}

.nv-side-card strong {
    display: block;
    margin-bottom: 8px;
}

.nv-side-card p {
    margin: 0 0 14px;
    color: #777;
    font-size: 13px;
    line-height: 1.6;
}

.nv-side-card button {
    width: 100%;
    height: 40px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #f7f7f7;
    color: #aaa;
}

.nv-side-card dl {
    margin: 0;
}

.nv-side-card dl > div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
    font-size: 13px;
}

.nv-side-card dt {
    color: #888;
}

.nv-side-card dd {
    margin: 0;
}

@media (max-width: 900px) {
    .nv-tool-detail-layout {
        grid-template-columns: 1fr;
    }

    .nv-tool-side {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 620px) {
    .nv-tool-title-row {
        display: block;
    }

    .nv-favorite-placeholder {
        margin-top: 20px;
    }

    .nv-calculator-card,
    .nv-result-card,
    .nv-tool-content {
        padding: 20px;
    }

    .nv-tool-side {
        grid-template-columns: 1fr;
    }

    .nv-calc-mode {
        display: grid;
        gap: 10px;
    }
}


/* ===== Member / MY ===== */

.nv-member-section {
    min-height: 72vh;
    padding: 64px 20px 90px;
    background: #f7f8fa;
}

.nv-member-box {
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    padding: 34px;
    background: #fff;
    border: 1px solid #e7e7e7;
    border-radius: 18px;
}

.nv-member-box-wide {
    max-width: 860px;
}

.nv-member-head {
    margin-bottom: 28px;
}

.nv-member-head h1 {
    margin: 0;
    font-size: 34px;
    letter-spacing: -1.5px;
}

.nv-member-head p {
    margin: 10px 0 0;
    color: #777;
    line-height: 1.6;
}

.nv-member-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.nv-member-field-full {
    grid-column: 1 / -1;
}

.nv-member-field label {
    display: block;
    margin-bottom: 7px;
    font-size: 14px;
    font-weight: 800;
}

.nv-member-field input {
    width: 100%;
    height: 48px;
    border: 1px solid #d8d8d8;
    border-radius: 9px;
    padding: 0 13px;
    font-size: 15px;
}

.nv-member-field small {
    display: block;
    margin-top: 6px;
    color: #999;
    font-size: 12px;
}

.nv-member-submit {
    width: 100%;
    height: 52px;
    margin-top: 24px;
    border: 0;
    border-radius: 10px;
    background: #111;
    color: #fff;
    font-weight: 800;
    font-size: 15px;
    cursor: pointer;
}

.nv-member-bottom {
    margin-top: 20px;
    text-align: center;
    color: #777;
    font-size: 13px;
}

.nv-member-bottom a {
    color: #111;
    font-weight: 800;
}

.nv-business-select-section {
    margin-top: 34px;
    padding-top: 28px;
    border-top: 1px solid #eee;
}

.nv-business-select-section h2 {
    margin: 0;
    font-size: 20px;
}

.nv-business-select-section > p {
    margin: 7px 0 18px;
    color: #888;
    font-size: 13px;
}

.nv-business-radio-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.nv-business-radio input {
    display: none;
}

.nv-business-radio span {
    display: flex;
    flex-direction: column;
    min-height: 78px;
    justify-content: center;
    padding: 14px;
    border: 1px solid #ddd;
    border-radius: 10px;
    cursor: pointer;
}

.nv-business-radio input:checked + span {
    border-color: #111;
    box-shadow: inset 0 0 0 1px #111;
}

.nv-business-radio strong {
    font-size: 14px;
}

.nv-business-radio small {
    margin-top: 5px;
    color: #999;
    font-size: 11px;
}

.nv-interest-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 16px;
}

.nv-interest-grid label {
    font-size: 13px;
}

.nv-agree-box {
    margin-top: 28px;
    padding: 15px;
    background: #f7f7f7;
    border-radius: 9px;
    font-size: 13px;
}

.nv-front-alert {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 13px;
}

.nv-front-alert-error {
    background: #fee2e2;
    color: #991b1b;
}

.nv-front-alert-success {
    background: #dcfce7;
    color: #166534;
}

.nv-my-hero {
    padding: 54px 0 38px;
    background: #f8f9fb;
}

.nv-my-hero .nv-container {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    align-items: end;
}

.nv-my-hero h1 {
    margin: 0;
    font-size: 44px;
    letter-spacing: -2px;
}

.nv-my-hero p {
    margin: 10px 0 0;
    color: #777;
}

.nv-my-actions {
    display: flex;
    gap: 8px;
}

.nv-my-actions a {
    padding: 9px 13px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 13px;
    background: #fff;
}

.nv-my-block {
    margin-bottom: 64px;
}

.nv-tool-card-action {
    display: block;
}

.nv-my-tool-actions {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 18px;
    display: flex;
    gap: 7px;
}

.nv-my-tool-actions form {
    margin: 0;
}

.nv-my-tool-actions button {
    height: 34px;
    padding: 0 11px;
    border: 1px solid #111;
    border-radius: 7px;
    background: #111;
    color: #fff;
    font-size: 12px;
    cursor: pointer;
}

.nv-my-tool-actions button.ghost {
    background: #fff;
    color: #777;
    border-color: #ddd;
}

.nv-recent-list {
    border-top: 1px solid #eee;
}

.nv-recent-list > a {
    display: grid;
    grid-template-columns: 1fr 180px 100px;
    gap: 15px;
    align-items: center;
    padding: 15px 2px;
    border-bottom: 1px solid #eee;
    font-size: 13px;
}

.nv-recent-list span,
.nv-recent-list small {
    color: #888;
}

.nv-favorite-active,
.nv-favorite-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    text-decoration: none;
}

.nv-favorite-active {
    color: #222;
}

.nv-side-action {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 40px;
    border-radius: 8px;
    background: #111;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

@media (max-width: 760px) {
    .nv-member-box {
        padding: 24px 18px;
    }

    .nv-member-form-grid {
        grid-template-columns: 1fr;
    }

    .nv-member-field-full {
        grid-column: auto;
    }

    .nv-business-radio-grid {
        grid-template-columns: 1fr 1fr;
    }

    .nv-my-hero .nv-container {
        display: block;
    }

    .nv-my-actions {
        margin-top: 20px;
    }

    .nv-recent-list > a {
        grid-template-columns: 1fr;
        gap: 5px;
    }
}

@media (max-width: 480px) {
    .nv-business-radio-grid {
        grid-template-columns: 1fr;
    }
}


/* ===== Community ===== */

.nv-community-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 26px;
}

.nv-community-tabs a {
    padding: 9px 13px;
    border: 1px solid #ddd;
    border-radius: 999px;
    color: #666;
    font-size: 13px;
    background: #fff;
}

.nv-community-tabs a.active {
    background: #111;
    border-color: #111;
    color: #fff;
}

.nv-community-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 24px;
    align-items: start;
}

.nv-community-toolbar {
    display: flex;
    gap: 12px;
    margin-bottom: 14px;
}

.nv-community-search {
    flex: 1;
    display: flex;
    gap: 8px;
}

.nv-community-search input {
    flex: 1;
    height: 44px;
    border: 1px solid #ddd;
    border-radius: 9px;
    padding: 0 13px;
}

.nv-community-search button,
.nv-community-write {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    border: 0;
    border-radius: 9px;
    padding: 0 16px;
    background: #111;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.nv-feed-card {
    padding: 22px 2px;
    border-bottom: 1px solid #eaeaea;
}

.nv-feed-card:first-child {
    border-top: 1px solid #eaeaea;
}

.nv-feed-meta-top {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 12px;
    color: #777;
}

.nv-feed-notice {
    padding: 3px 6px;
    border-radius: 5px;
    background: #111;
    color: #fff;
    font-size: 10px;
}

.nv-feed-card h2 {
    margin: 10px 0;
    font-size: 19px;
    letter-spacing: -.4px;
}

.nv-feed-meta {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    color: #999;
    font-size: 12px;
}

.nv-community-side-card {
    position: sticky;
    top: 92px;
    padding: 20px;
    border: 1px solid #e7e7e7;
    border-radius: 14px;
    background: #fff;
}

.nv-community-side-card > strong {
    display: block;
    margin-bottom: 12px;
}

.nv-community-side-card ol {
    margin: 0;
    padding-left: 20px;
}

.nv-community-side-card li {
    margin: 12px 0;
    padding-left: 3px;
}

.nv-community-side-card li a {
    display: block;
    font-size: 13px;
    line-height: 1.5;
}

.nv-community-side-card li small {
    display: block;
    margin-top: 4px;
    color: #999;
    font-size: 11px;
}

.nv-front-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 28px;
}

.nv-front-pagination a {
    display: inline-flex;
    min-width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid #ddd;
    border-radius: 7px;
    font-size: 12px;
}

.nv-front-pagination a.active {
    background: #111;
    color: #fff;
    border-color: #111;
}

.nv-community-select {
    width: 100%;
    height: 48px;
    border: 1px solid #d8d8d8;
    border-radius: 9px;
    padding: 0 12px;
    background: #fff;
}

.nv-community-textarea {
    width: 100%;
    min-height: 360px;
    resize: vertical;
    border: 1px solid #d8d8d8;
    border-radius: 9px;
    padding: 14px;
    font: inherit;
    line-height: 1.7;
}

.nv-community-report-textarea {
    min-height: 150px;
}

.nv-community-field-gap {
    margin-top: 18px;
}

.nv-community-write-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 22px;
}

.nv-community-write-actions a,
.nv-community-write-actions button {
    display: inline-flex;
    height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0 17px;
    border-radius: 8px;
    border: 1px solid #ddd;
    background: #fff;
    cursor: pointer;
}

.nv-community-write-actions button {
    background: #111;
    border-color: #111;
    color: #fff;
}

.nv-community-view-container {
    max-width: 900px;
}

.nv-community-post {
    border-bottom: 1px solid #e8e8e8;
}

.nv-community-post-top {
    margin-bottom: 12px;
    font-size: 13px;
    color: #777;
}

.nv-community-post h1 {
    margin: 0;
    font-size: clamp(28px, 5vw, 42px);
    line-height: 1.28;
    letter-spacing: -1.4px;
}

.nv-community-post-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 15px;
    color: #999;
    font-size: 12px;
}

.nv-community-post-body {
    min-height: 240px;
    padding: 42px 0;
    font-size: 16px;
    line-height: 1.9;
}

.nv-community-post-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 20px 0 30px;
}

.nv-community-post-actions form {
    margin: 0;
}

.nv-community-post-actions a,
.nv-community-post-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    color: #555;
    font-size: 12px;
    cursor: pointer;
}

.nv-community-post-actions button.active {
    background: #111;
    border-color: #111;
    color: #fff;
}

.nv-community-post-actions .link-button {
    font: inherit;
}

.nv-comment-section {
    margin-top: 34px;
}

.nv-comment-head h2 {
    font-size: 20px;
}

.nv-comment-form {
    display: grid;
    gap: 8px;
    margin-bottom: 24px;
}

.nv-comment-form textarea {
    width: 100%;
    min-height: 110px;
    resize: vertical;
    border: 1px solid #ddd;
    border-radius: 9px;
    padding: 12px;
    font: inherit;
}

.nv-comment-form button {
    justify-self: end;
    height: 38px;
    padding: 0 14px;
    border: 0;
    border-radius: 8px;
    background: #111;
    color: #fff;
    cursor: pointer;
}

.nv-comment-login {
    margin-bottom: 24px;
    padding: 18px;
    background: #f7f7f7;
    border-radius: 9px;
    text-align: center;
    color: #777;
    font-size: 13px;
}

.nv-comment-login a {
    color: #111;
    font-weight: 800;
}

.nv-comment-item {
    padding: 18px 0;
    border-top: 1px solid #eee;
}

.nv-comment-item.reply {
    padding-left: 34px;
    background: linear-gradient(90deg, #fafafa 0, #fff 100%);
}

.nv-comment-meta {
    display: flex;
    gap: 10px;
    align-items: center;
}

.nv-comment-meta strong {
    font-size: 13px;
}

.nv-comment-meta span {
    color: #aaa;
    font-size: 11px;
}

.nv-comment-body {
    margin-top: 9px;
    font-size: 14px;
    line-height: 1.75;
}

.nv-comment-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 7px;
    font-size: 11px;
}

.nv-comment-actions form {
    margin: 0;
}

.nv-comment-actions button,
.nv-comment-actions a {
    border: 0;
    background: none;
    color: #999;
    cursor: pointer;
    font: inherit;
}

.nv-comment-deleted {
    margin: 0;
    color: #999;
    font-size: 13px;
}

.nv-community-back {
    margin-top: 32px;
}

.nv-home-community-list {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.nv-home-community-list a {
    display: block;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.nv-home-community-list strong {
    display: block;
    font-size: 14px;
}

.nv-home-community-list small {
    display: block;
    margin-top: 4px;
    color: #aaa;
    font-size: 11px;
}

.nv-home-community-more {
    display: inline-flex;
    margin-top: 18px;
    font-size: 13px;
    font-weight: 700;
}

@media (max-width: 900px) {
    .nv-community-layout {
        grid-template-columns: 1fr;
    }

    .nv-community-side-card {
        position: static;
    }
}

@media (max-width: 620px) {
    .nv-community-toolbar {
        display: grid;
    }

    .nv-community-search {
        display: grid;
        grid-template-columns: 1fr auto;
    }

    .nv-community-post-actions {
        flex-wrap: wrap;
    }
}


/* ===== Business Info ===== */

.nv-info-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.nv-info-tabs a {
    padding: 9px 13px;
    border: 1px solid #ddd;
    border-radius: 999px;
    background: #fff;
    color: #666;
    font-size: 13px;
}

.nv-info-tabs a.active {
    background: #111;
    border-color: #111;
    color: #fff;
}

.nv-info-search {
    display: flex;
    gap: 8px;
    max-width: 680px;
    margin-bottom: 32px;
}

.nv-info-search input {
    flex: 1;
    min-width: 0;
    height: 46px;
    border: 1px solid #ddd;
    border-radius: 9px;
    padding: 0 13px;
}

.nv-info-search button {
    height: 46px;
    padding: 0 18px;
    border: 0;
    border-radius: 9px;
    background: #111;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.nv-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.nv-info-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e7e7e7;
    border-radius: 16px;
    background: #fff;
}

.nv-info-card-link {
    display: block;
    height: 100%;
}

.nv-info-card-thumb {
    height: 170px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #f3f4f6;
    color: #8a8a8a;
    font-size: 13px;
}

.nv-info-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nv-info-card-body {
    padding: 20px;
}

.nv-info-card-meta {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: #888;
    font-size: 12px;
}

.nv-info-card-meta strong {
    color: #111;
}

.nv-info-card h2 {
    margin: 12px 0 8px;
    font-size: 19px;
    line-height: 1.4;
    letter-spacing: -.5px;
}

.nv-info-card p {
    min-height: 46px;
    margin: 0;
    color: #777;
    font-size: 13px;
    line-height: 1.7;
}

.nv-info-card-foot {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 18px;
    color: #999;
    font-size: 11px;
}

.nv-info-view-container {
    max-width: 900px;
}

.nv-info-article-category {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 14px;
    color: #777;
    font-size: 13px;
}

.nv-info-article-category span {
    padding: 4px 7px;
    border-radius: 5px;
    background: #111;
    color: #fff;
    font-size: 10px;
}

.nv-info-article h1 {
    margin: 0;
    font-size: clamp(34px, 6vw, 54px);
    line-height: 1.22;
    letter-spacing: -2px;
}

.nv-info-article-summary {
    margin: 18px 0 0;
    color: #666;
    font-size: 18px;
    line-height: 1.7;
}

.nv-info-article-meta {
    display: flex;
    gap: 12px;
    margin-top: 18px;
    color: #999;
    font-size: 12px;
}

.nv-info-article-image {
    margin-top: 34px;
    overflow: hidden;
    border-radius: 14px;
}

.nv-info-article-image img {
    display: block;
    width: 100%;
    height: auto;
}

.nv-info-article-body {
    padding: 46px 0;
    border-bottom: 1px solid #eee;
    font-size: 16px;
    line-height: 2;
}

.nv-info-related {
    margin-top: 52px;
}

.nv-info-related-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.nv-info-related-grid > a {
    padding: 20px;
    border: 1px solid #e7e7e7;
    border-radius: 12px;
}

.nv-info-related-grid strong {
    display: block;
    line-height: 1.5;
}

.nv-info-related-grid p {
    margin: 8px 0;
    color: #777;
    font-size: 13px;
    line-height: 1.6;
}

.nv-info-related-grid span {
    color: #aaa;
    font-size: 11px;
}

.nv-info-back {
    margin-top: 34px;
}

@media (max-width: 900px) {
    .nv-info-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .nv-info-grid,
    .nv-info-related-grid {
        grid-template-columns: 1fr;
    }

    .nv-info-search {
        display: grid;
        grid-template-columns: 1fr auto;
    }

    .nv-info-article-summary {
        font-size: 16px;
    }
}


/* ===== Front public metrics hidden ===== */

/* 서비스 규모를 드러내는 누적 사용량/조회수는 프론트에서 노출하지 않음.
   데이터 수집과 관리자 통계는 그대로 유지합니다. */

.nv-tool-side-stat {
    display: none !important;
}

.nv-recent-list > a {
    grid-template-columns: 1fr 180px;
}


/* ===== Saved Calculations ===== */

.nv-calc-save-box {
    margin: 22px 0 34px;
    padding: 24px;
    border: 1px solid #dedede;
    border-radius: 14px;
    background: #fafafa;
}

.nv-calc-save-head span {
    display: block;
    margin-bottom: 6px;
    color: #999;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

.nv-calc-save-head strong,
.nv-calc-save-guest strong {
    display: block;
    font-size: 17px;
}

.nv-calc-save-head p,
.nv-calc-save-guest p {
    margin: 7px 0 0;
    color: #777;
    font-size: 13px;
    line-height: 1.6;
}

.nv-calc-save-box form {
    margin-top: 16px;
}

.nv-calc-save-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.nv-calc-save-fields input {
    width: 100%;
    height: 44px;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 0 12px;
    background: #fff;
}

.nv-calc-save-box form > button {
    width: 100%;
    height: 44px;
    margin-top: 8px;
    border: 0;
    border-radius: 8px;
    background: #111;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.nv-calc-save-guest {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
}

.nv-calc-save-guest a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 15px;
    border-radius: 8px;
    background: #111;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.nv-section-head-between {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
}

.nv-my-section-more {
    color: #777;
    font-size: 13px;
}

.nv-my-saved-list {
    border-top: 1px solid #eee;
}

.nv-my-saved-list > a {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    padding: 15px 2px;
    border-bottom: 1px solid #eee;
}

.nv-my-saved-list strong,
.nv-my-saved-list small {
    display: block;
}

.nv-my-saved-list small {
    margin-top: 4px;
    color: #999;
    font-size: 11px;
}

.nv-my-saved-list > a > span {
    color: #999;
    font-size: 12px;
}

.nv-calc-history-filter {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) auto;
    gap: 8px;
    margin-bottom: 24px;
}

.nv-calc-history-filter select,
.nv-calc-history-filter input {
    height: 44px;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 0 12px;
    background: #fff;
}

.nv-calc-history-filter button {
    height: 44px;
    border: 0;
    border-radius: 8px;
    padding: 0 18px;
    background: #111;
    color: #fff;
    cursor: pointer;
}

.nv-calc-history-list {
    display: grid;
    gap: 12px;
}

.nv-calc-history-card {
    border: 1px solid #e7e7e7;
    border-radius: 13px;
    background: #fff;
}

.nv-calc-history-main {
    display: block;
    padding: 22px;
}

.nv-calc-history-category {
    color: #888;
    font-size: 12px;
}

.nv-calc-history-card h2 {
    margin: 8px 0;
    font-size: 20px;
}

.nv-calc-history-card p {
    margin: 0 0 13px;
    color: #777;
    font-size: 13px;
}

.nv-calc-history-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 15px 0;
}

.nv-calc-history-preview span {
    display: inline-flex;
    gap: 6px;
    padding: 7px 9px;
    border-radius: 7px;
    background: #f5f5f5;
    color: #777;
    font-size: 11px;
}

.nv-calc-history-preview strong {
    color: #111;
}

.nv-calc-history-main > small {
    color: #aaa;
    font-size: 11px;
}

.nv-calc-history-empty a {
    display: inline-flex;
    margin-top: 13px;
    padding: 10px 14px;
    border-radius: 8px;
    background: #111;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.nv-calc-history-view-container {
    max-width: 980px;
}

.nv-calc-history-view-head {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    align-items: end;
    margin-bottom: 28px;
}

.nv-calc-history-view-head h1 {
    margin: 7px 0;
    font-size: clamp(32px, 5vw, 48px);
    letter-spacing: -1.8px;
}

.nv-calc-history-view-head p {
    margin: 0;
    color: #999;
    font-size: 12px;
}

.nv-calc-history-view-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.nv-calc-history-view-actions a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 13px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    font-size: 12px;
}

.nv-calc-history-view-actions a.primary {
    background: #111;
    border-color: #111;
    color: #fff;
}

.nv-calc-history-memo {
    margin-bottom: 18px;
    padding: 18px;
    border-radius: 10px;
    background: #f7f7f7;
}

.nv-calc-history-memo strong {
    font-size: 12px;
}

.nv-calc-history-memo p {
    margin: 7px 0 0;
    color: #666;
    font-size: 13px;
    line-height: 1.7;
}

.nv-calc-history-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.nv-calc-history-detail-card {
    padding: 22px;
    border: 1px solid #e7e7e7;
    border-radius: 13px;
    background: #fff;
}

.nv-calc-history-detail-card.result {
    background: #fafafa;
}

.nv-calc-history-detail-card h2 {
    margin: 0 0 15px;
    font-size: 18px;
}

.nv-calc-history-detail-card dl {
    margin: 0;
}

.nv-calc-history-detail-card dl > div {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 11px 0;
    border-bottom: 1px solid #eee;
}

.nv-calc-history-detail-card dl > div:last-child {
    border-bottom: 0;
}

.nv-calc-history-detail-card dt {
    color: #777;
    font-size: 13px;
}

.nv-calc-history-detail-card dd {
    margin: 0;
    text-align: right;
    font-weight: 800;
    font-size: 13px;
}

.nv-calc-history-delete {
    display: flex;
    justify-content: flex-end;
    margin-top: 22px;
}

.nv-calc-history-delete button {
    border: 0;
    background: none;
    color: #999;
    font-size: 12px;
    cursor: pointer;
}

@media (max-width: 700px) {
    .nv-calc-save-fields,
    .nv-calc-history-filter,
    .nv-calc-history-detail-grid {
        grid-template-columns: 1fr;
    }

    .nv-calc-save-guest,
    .nv-calc-history-view-head {
        display: block;
    }

    .nv-calc-save-guest a,
    .nv-calc-history-view-actions {
        margin-top: 16px;
    }
}


/* ===== Terms / Privacy ===== */

.nv-policy-section {
    padding: 60px 0 90px;
    background: #f7f8fa;
}

.nv-policy-container {
    max-width: 900px;
}

.nv-policy-head {
    margin-bottom: 28px;
}

.nv-policy-head h1 {
    margin: 5px 0 8px;
    font-size: clamp(34px, 6vw, 48px);
    letter-spacing: -1.8px;
}

.nv-policy-head p {
    margin: 0;
    color: #999;
    font-size: 12px;
}

.nv-policy-content {
    padding: 34px;
    border: 1px solid #e7e7e7;
    border-radius: 16px;
    background: #fff;
}

.nv-policy-content section + section {
    margin-top: 34px;
}

.nv-policy-content h2 {
    margin: 0 0 12px;
    font-size: 18px;
    letter-spacing: -.4px;
}

.nv-policy-content h3 {
    margin: 18px 0 8px;
    font-size: 14px;
}

.nv-policy-content p,
.nv-policy-content li {
    color: #60646c;
    font-size: 14px;
    line-height: 1.85;
}

.nv-policy-content p {
    margin: 8px 0;
}

.nv-policy-content ul {
    margin: 8px 0;
    padding-left: 20px;
}

.nv-policy-company {
    padding-top: 26px;
    border-top: 1px solid #eee;
}

.nv-agree-list {
    display: grid;
    gap: 12px;
}

.nv-agree-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
}

.nv-agree-item > span {
    display: flex;
    gap: 7px;
    align-items: center;
}

.nv-agree-item strong {
    font-size: 13px;
}

.nv-agree-item a {
    flex: 0 0 auto;
    color: #777;
    text-decoration: underline;
    font-size: 12px;
}

.nv-front-legal {
    padding: 18px 0 80px;
    border-top: 1px solid #eee;
    background: #fff;
    color: #999;
    font-size: 11px;
}

.nv-front-legal .nv-container {
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.nv-front-legal .nv-container > div {
    display: flex;
    gap: 12px;
}

@media (max-width: 620px) {
    .nv-policy-content {
        padding: 22px 18px;
    }

    .nv-agree-item,
    .nv-front-legal .nv-container {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ===== Account Recovery / Withdrawal ===== */

.nv-account-help-links {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 16px;
    color: #999;
    font-size: 12px;
}

.nv-account-help-links a {
    color: #666;
}

.nv-account-result,
.nv-account-complete {
    padding: 20px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f9fafb;
    text-align: center;
}

.nv-account-result span,
.nv-account-complete p {
    display: block;
    color: #777;
    font-size: 13px;
}

.nv-account-result strong {
    display: block;
    margin-top: 8px;
    font-size: 28px;
    letter-spacing: 1px;
}

.nv-account-complete strong {
    display: block;
    line-height: 1.6;
}

.nv-account-complete p {
    margin: 8px 0 0;
    line-height: 1.6;
}

.nv-account-primary-link {
    display: inline-flex;
    margin-top: 16px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border-radius: 8px;
    background: #111;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.nv-profile-danger {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    margin-top: 32px;
    padding-top: 22px;
    border-top: 1px solid #eee;
    color: #999;
    font-size: 12px;
}

.nv-profile-danger a {
    color: #b91c1c;
    text-decoration: underline;
}

.nv-withdraw-notice {
    margin-bottom: 28px;
    padding: 20px;
    border: 1px solid #fee2e2;
    border-radius: 10px;
    background: #fff7f7;
}

.nv-withdraw-notice h2 {
    margin: 0 0 10px;
    font-size: 16px;
}

.nv-withdraw-notice ul {
    margin: 0;
    padding-left: 18px;
}

.nv-withdraw-notice li {
    margin: 7px 0;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.6;
}

.nv-withdraw-submit {
    background: #991b1b;
}

@media (max-width: 620px) {
    .nv-profile-danger {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ===== Business Promotion ===== */

.nv-promotion-hero-inner {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 40px;
}

.nv-promotion-hero-action {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    flex: 0 0 auto;
}

.nv-promotion-hero-action a {
    display: inline-flex;
    min-height: 48px;
    padding: 0 18px;
    align-items: center;
    border-radius: 9px;
    background: #111;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
}

.nv-promotion-hero-action small {
    color: #999;
    font-size: 11px;
}

.nv-promotion-section {
    padding-top: 36px;
}

.nv-promotion-filter {
    display: grid;
    grid-template-columns: 165px 155px 190px 180px minmax(190px, 1fr) auto;
    gap: 8px;
    padding: 16px;
    border: 1px solid #e7e7e7;
    border-radius: 13px;
    background: #fafafa;
}

.nv-promotion-filter select,
.nv-promotion-filter input {
    min-width: 0;
    height: 46px;
    padding: 0 11px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
}

.nv-promotion-filter button {
    height: 46px;
    padding: 0 20px;
    border: 0;
    border-radius: 8px;
    background: #111;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.nv-promotion-results-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin: 26px 0 16px;
}

.nv-promotion-results-head a {
    color: #888;
    font-size: 12px;
}

.nv-promotion-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.nv-promotion-card {
    overflow: hidden;
    border: 1px solid #e7e7e7;
    border-radius: 15px;
    background: #fff;
    transition: transform .15s ease, box-shadow .15s ease;
}

.nv-promotion-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(0,0,0,.07);
}

.nv-promotion-card-image {
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #f1f2f4;
    font-size: 54px;
    font-weight: 900;
    color: #c3c6cb;
}

.nv-promotion-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nv-promotion-card-body {
    padding: 19px;
}

.nv-promotion-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 9px;
}

.nv-promotion-card-meta span {
    display: inline-flex;
    padding: 5px 7px;
    border-radius: 6px;
    background: #f4f5f6;
    color: #70757d;
    font-size: 10px;
}

.nv-promotion-business-name {
    display: block;
    color: #777;
    font-size: 12px;
}

.nv-promotion-card h2 {
    margin: 7px 0;
    font-size: 19px;
    line-height: 1.4;
    letter-spacing: -.5px;
}

.nv-promotion-card p {
    min-height: 44px;
    margin: 0;
    color: #6f7379;
    font-size: 13px;
    line-height: 1.65;
}

.nv-promotion-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 14px;
}

.nv-promotion-tags span,
.nv-promotion-tags a {
    display: inline-flex;
    padding: 6px 8px;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    color: #666;
    font-size: 10px;
}

.nv-promotion-card small {
    display: block;
    margin-top: 15px;
    color: #aaa;
    font-size: 10px;
}

.nv-promotion-write-container {
    max-width: 900px;
}

.nv-promotion-write-head {
    margin-bottom: 28px;
}

.nv-promotion-write-head h1 {
    margin: 4px 0 8px;
    font-size: 40px;
    letter-spacing: -1.5px;
}

.nv-promotion-write-head p {
    margin: 0;
    color: #777;
    line-height: 1.65;
}

.nv-promotion-write-form {
    padding: 28px;
    border: 1px solid #e6e6e6;
    border-radius: 15px;
    background: #fff;
}

.nv-promotion-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.nv-promotion-write-form .nv-member-field {
    margin-bottom: 18px;
}

.nv-promotion-write-form select,
.nv-promotion-write-form textarea {
    width: 100%;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 11px 12px;
    background: #fff;
}

.nv-promotion-write-form select {
    height: 46px;
}

.nv-promotion-write-form textarea {
    resize: vertical;
    line-height: 1.7;
}

.nv-promotion-services-field small,
.nv-member-field > label small,
.nv-form-help {
    color: #999;
    font-size: 11px;
    font-weight: 400;
}

.nv-promotion-service-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.nv-promotion-service-checks label {
    cursor: pointer;
}

.nv-promotion-service-checks input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nv-promotion-service-checks span {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 11px;
    border: 1px solid #ddd;
    border-radius: 999px;
    color: #666;
    font-size: 12px;
}

.nv-promotion-service-checks input:checked + span {
    border-color: #111;
    background: #111;
    color: #fff;
}

.nv-promotion-write-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.nv-promotion-write-actions a,
.nv-promotion-write-actions button {
    display: inline-flex;
    min-height: 44px;
    padding: 0 16px;
    align-items: center;
    justify-content: center;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    font-size: 13px;
    cursor: pointer;
}

.nv-promotion-write-actions button {
    border-color: #111;
    background: #111;
    color: #fff;
    font-weight: 800;
}

.nv-promotion-view-container {
    max-width: 980px;
}

.nv-promotion-view-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 17px;
    color: #777;
    font-size: 12px;
}

.nv-promotion-view-top > div {
    display: flex;
    gap: 8px;
    align-items: center;
}

.nv-promotion-view-top form {
    margin: 0;
}

.nv-promotion-view-top button {
    border: 0;
    background: none;
    color: #a33;
    cursor: pointer;
    font-size: 12px;
}

.nv-promotion-view-card {
    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #fff;
}

.nv-promotion-view-image {
    width: 100%;
    max-height: 520px;
    overflow: hidden;
    background: #f5f5f5;
}

.nv-promotion-view-image img {
    display: block;
    width: 100%;
    max-height: 520px;
    object-fit: cover;
}

.nv-promotion-view-main {
    padding: 34px 34px 28px;
}

.nv-promotion-view-main h1 {
    margin: 3px 0 6px;
    font-size: 38px;
    letter-spacing: -1.5px;
}

.nv-promotion-view-main h2 {
    margin: 0;
    font-size: 22px;
    font-weight: 600;
    color: #444;
}

.nv-promotion-view-summary {
    margin: 16px 0 0;
    color: #666;
    font-size: 15px;
    line-height: 1.7;
}

.nv-promotion-view-info {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 22px;
}

.nv-promotion-view-info > div {
    padding: 14px;
    border-radius: 9px;
    background: #f7f8fa;
}

.nv-promotion-view-info span,
.nv-promotion-view-info strong {
    display: block;
}

.nv-promotion-view-info span {
    color: #999;
    font-size: 10px;
}

.nv-promotion-view-info strong {
    margin-top: 5px;
    font-size: 13px;
}

.nv-promotion-view-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

.nv-promotion-view-links a {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding: 0 13px;
    border-radius: 7px;
    background: #111;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.nv-promotion-view-contents {
    padding: 32px 34px;
    border-top: 1px solid #eee;
    color: #444;
    font-size: 15px;
    line-height: 1.9;
}

.nv-promotion-view-foot {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 34px;
    border-top: 1px solid #eee;
    color: #aaa;
    font-size: 11px;
}

.nv-home-promotion-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.nv-home-promotion-card {
    min-height: 210px;
    padding: 20px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
}

.nv-home-promotion-card > span {
    color: #888;
    font-size: 10px;
}

.nv-home-promotion-card > strong {
    display: block;
    margin-top: 18px;
    color: #666;
    font-size: 12px;
}

.nv-home-promotion-card h3 {
    margin: 7px 0;
    font-size: 18px;
    line-height: 1.45;
}

.nv-home-promotion-card p {
    margin: 0;
    color: #777;
    font-size: 12px;
    line-height: 1.65;
}

@media (max-width: 1050px) {
    .nv-promotion-filter {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .nv-home-promotion-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .nv-promotion-hero-inner {
        display: block;
    }

    .nv-promotion-hero-action {
        align-items: flex-start;
        margin-top: 25px;
    }

    .nv-promotion-filter,
    .nv-promotion-form-grid,
    .nv-promotion-view-info {
        grid-template-columns: 1fr;
    }

    .nv-promotion-grid {
        grid-template-columns: 1fr;
    }

    .nv-promotion-write-form {
        padding: 20px 16px;
    }

    .nv-promotion-view-main,
    .nv-promotion-view-contents {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media (max-width: 560px) {
    .nv-home-promotion-grid {
        grid-template-columns: 1fr;
    }
}


/* ===== Promotion UI Polish ===== */

.nv-promotion-hero {
    overflow: hidden;
    position: relative;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.12), transparent 28%),
        linear-gradient(135deg, #111827 0%, #1f2937 55%, #334155 100%);
    color: #fff;
}

.nv-promotion-hero::after {
    content: "";
    position: absolute;
    right: -120px;
    top: -80px;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: rgba(255,255,255,.05);
    filter: blur(6px);
}

.nv-promotion-hero-inner {
    position: relative;
    z-index: 1;
    min-height: 420px;
    align-items: center;
}

.nv-promotion-hero-copy {
    flex: 1 1 auto;
    max-width: 700px;
}

.nv-promotion-hero-copy h1 {
    margin: 10px 0 18px;
    font-size: clamp(38px, 6vw, 62px);
    line-height: 1.08;
    letter-spacing: -2.3px;
    color: #fff;
}

.nv-promotion-hero-copy p {
    max-width: 620px;
    margin: 0;
    color: rgba(255,255,255,.75);
    font-size: 16px;
    line-height: 1.85;
}

.nv-promotion-hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.nv-promotion-hero-stats > div {
    min-width: 132px;
    padding: 16px 18px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 16px;
    background: rgba(255,255,255,.06);
    backdrop-filter: blur(10px);
}

.nv-promotion-hero-stats strong,
.nv-promotion-hero-stats span {
    display: block;
}

.nv-promotion-hero-stats strong {
    font-size: 26px;
    letter-spacing: -.8px;
}

.nv-promotion-hero-stats span {
    margin-top: 6px;
    color: rgba(255,255,255,.68);
    font-size: 12px;
}

.nv-promotion-hero-panel {
    flex: 0 0 360px;
}

.nv-promotion-hero-panel-box {
    padding: 26px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 22px;
    background: rgba(255,255,255,.08);
    box-shadow: 0 20px 44px rgba(0,0,0,.18);
    backdrop-filter: blur(16px);
}

.nv-promotion-hero-panel-box > span {
    display: inline-flex;
    margin-bottom: 10px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: rgba(255,255,255,.8);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
}

.nv-promotion-hero-panel-box > strong {
    display: block;
    font-size: 23px;
    line-height: 1.45;
    letter-spacing: -.8px;
    color: #fff;
}

.nv-promotion-hero-panel-box > p {
    margin: 10px 0 0;
    color: rgba(255,255,255,.75);
    font-size: 13px;
    line-height: 1.7;
}

.nv-promotion-hero-action {
    display: block;
    margin-top: 24px;
}

.nv-promotion-hero-action a {
    justify-content: center;
    width: 100%;
    min-height: 52px;
    border-radius: 12px;
    background: #fff;
    color: #111827;
    box-shadow: 0 12px 24px rgba(0,0,0,.14);
    font-size: 14px;
}

.nv-promotion-hero-action small {
    display: block;
    margin-top: 10px;
    text-align: center;
    color: rgba(255,255,255,.7);
    font-size: 11px;
}

.nv-promotion-section {
    padding-top: 50px;
}

.nv-promotion-filter-wrap {
    margin-top: -56px;
    padding: 24px;
    border: 1px solid #e5e7eb;
    border-radius: 24px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfbfc 100%);
    box-shadow: 0 22px 46px rgba(15,23,42,.08);
}

.nv-promotion-filter-head {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    align-items: end;
    margin-bottom: 18px;
}

.nv-promotion-filter-head h2 {
    margin: 6px 0 0;
    font-size: 28px;
    letter-spacing: -1px;
}

.nv-promotion-filter-head p {
    max-width: 420px;
    margin: 0;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.7;
}

.nv-promotion-filter {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.nv-promotion-filter-item {
    display: block;
}

.nv-promotion-filter-item > span {
    display: block;
    margin-bottom: 8px;
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
}

.nv-promotion-filter-item select,
.nv-promotion-filter-item input {
    width: 100%;
    min-width: 0;
    height: 52px;
    padding: 0 14px;
    border: 1px solid #d8dde6;
    border-radius: 14px;
    background: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
    font-size: 14px;
}

.nv-promotion-filter-item select {
    appearance: none;
    -webkit-appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, #94a3b8 50%),
        linear-gradient(135deg, #94a3b8 50%, transparent 50%);
    background-position:
        calc(100% - 20px) calc(50% - 3px),
        calc(100% - 14px) calc(50% - 3px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
}

.nv-promotion-filter-item select:focus,
.nv-promotion-filter-item input:focus {
    border-color: #111827;
    box-shadow: 0 0 0 4px rgba(17,24,39,.08);
    transform: translateY(-1px);
    outline: none;
}

.nv-promotion-filter-item-keyword {
    grid-column: span 3;
}

.nv-promotion-filter-actions {
    display: flex;
    align-items: end;
}

.nv-promotion-filter-actions button {
    width: 100%;
    height: 52px;
    padding: 0 20px;
    border-radius: 14px;
    background: linear-gradient(135deg, #111827 0%, #374151 100%);
    box-shadow: 0 12px 24px rgba(17,24,39,.14);
    font-size: 14px;
    letter-spacing: -.2px;
}

.nv-promotion-quick-services {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #edf0f4;
}

.nv-promotion-quick-services > span {
    flex: 0 0 auto;
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
}

.nv-promotion-quick-services > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.nv-promotion-quick-services a {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    padding: 0 13px;
    border: 1px solid #dde3ea;
    border-radius: 999px;
    background: #fff;
    color: #4b5563;
    font-size: 12px;
    transition: all .15s ease;
}

.nv-promotion-quick-services a:hover,
.nv-promotion-quick-services a.active {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

.nv-promotion-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    margin: 28px 0 0;
}

.nv-promotion-toolbar-left strong {
    display: block;
    font-size: 20px;
    letter-spacing: -.5px;
}

.nv-promotion-toolbar-left span {
    display: block;
    margin-top: 4px;
    color: #6b7280;
    font-size: 13px;
}

.nv-promotion-reset-link {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 0 14px;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #fff;
    color: #6b7280;
    font-size: 12px;
}

.nv-promotion-active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0 16px;
}

.nv-promotion-active-filters span {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    padding: 0 12px;
    border-radius: 999px;
    background: #eef2f7;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
}

.nv-promotion-grid {
    margin-top: 18px;
    gap: 20px;
}

.nv-promotion-card {
    border: 1px solid #e6eaf0;
    border-radius: 22px;
    box-shadow: 0 10px 24px rgba(15,23,42,.04);
}

.nv-promotion-card:hover {
    box-shadow: 0 18px 38px rgba(15,23,42,.10);
}

.nv-promotion-card-image {
    height: 190px;
    background:
        linear-gradient(135deg, #f4f6f8 0%, #e8edf3 100%);
    color: #94a3b8;
}

.nv-promotion-card-body {
    padding: 22px;
}

.nv-promotion-card-meta span {
    padding: 6px 9px;
    border-radius: 999px;
    background: #f3f6fa;
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
}

.nv-promotion-business-name {
    margin-top: 3px;
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
}

.nv-promotion-card h2 {
    margin: 9px 0 10px;
    font-size: 22px;
    line-height: 1.38;
    letter-spacing: -.9px;
}

.nv-promotion-card p {
    min-height: 66px;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.75;
}

.nv-promotion-tags {
    gap: 7px;
}

.nv-promotion-tags span,
.nv-promotion-tags a {
    padding: 7px 10px;
    border-radius: 999px;
    background: #fff;
    border-color: #e1e6ee;
    color: #52606d;
    font-size: 10px;
    font-weight: 700;
}

.nv-promotion-card small {
    margin-top: 17px;
    font-size: 11px;
}

.nv-promotion-write-head h1 {
    font-size: clamp(34px, 5vw, 48px);
}

.nv-promotion-write-head p {
    color: #6b7280;
}

.nv-promotion-write-form-modern {
    padding: 30px;
    border: 1px solid #e6eaf0;
    border-radius: 22px;
    background: linear-gradient(180deg, #fff 0%, #fbfcfd 100%);
    box-shadow: 0 20px 42px rgba(15,23,42,.06);
}

.nv-promotion-write-form .nv-member-field label {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    margin-bottom: 9px;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
}

.nv-promotion-write-form input[type="text"],
.nv-promotion-write-form input[type="url"],
.nv-promotion-write-form select,
.nv-promotion-write-form textarea {
    border: 1px solid #d8dde6;
    border-radius: 14px;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.nv-promotion-write-form input[type="text"]:focus,
.nv-promotion-write-form input[type="url"]:focus,
.nv-promotion-write-form select:focus,
.nv-promotion-write-form textarea:focus {
    border-color: #111827;
    box-shadow: 0 0 0 4px rgba(17,24,39,.08);
    outline: none;
}

.nv-promotion-service-checks {
    gap: 10px;
}

.nv-promotion-service-checks span {
    min-height: 40px;
    padding: 0 13px;
    border: 1px solid #dde3ea;
    background: #fff;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.nv-promotion-service-checks input:checked + span {
    background: linear-gradient(135deg, #111827 0%, #334155 100%);
    box-shadow: 0 10px 18px rgba(15,23,42,.16);
}

.nv-promotion-write-actions {
    margin-top: 28px;
    padding-top: 24px;
}

.nv-promotion-write-actions a,
.nv-promotion-write-actions button {
    min-height: 46px;
    padding: 0 18px;
    border-radius: 12px;
    font-weight: 700;
}

.nv-promotion-write-actions a {
    color: #475569;
}

.nv-promotion-write-actions button {
    background: linear-gradient(135deg, #111827 0%, #334155 100%);
    box-shadow: 0 12px 24px rgba(15,23,42,.12);
}

.nv-promotion-view-top a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 0 12px;
    border-radius: 999px;
    background: #f7f8fa;
    color: #475569;
    font-size: 12px;
}

.nv-promotion-view-card {
    border: 1px solid #e6eaf0;
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(15,23,42,.05);
}

.nv-promotion-view-main {
    padding: 38px 38px 30px;
}

.nv-promotion-view-main h1 {
    margin: 6px 0 4px;
    font-size: clamp(34px, 6vw, 46px);
}

.nv-promotion-view-main h2 {
    font-size: 24px;
    letter-spacing: -.5px;
}

.nv-promotion-view-summary {
    margin: 18px 0 0;
    font-size: 15px;
}

.nv-promotion-view-owner {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    margin-top: 18px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #f5f7fa;
}

.nv-promotion-view-owner span {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 700;
}

.nv-promotion-view-owner strong {
    color: #334155;
    font-size: 12px;
}

.nv-promotion-view-tags {
    margin-top: 22px;
}

.nv-promotion-view-info {
    gap: 12px;
    margin-top: 24px;
}

.nv-promotion-view-info > div {
    padding: 16px 16px 15px;
    border: 1px solid #e9edf2;
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.nv-promotion-view-info span {
    font-size: 11px;
    font-weight: 700;
}

.nv-promotion-view-info strong {
    font-size: 13px;
    line-height: 1.55;
}

.nv-promotion-view-links a {
    min-height: 42px;
    padding: 0 15px;
    border-radius: 12px;
    background: linear-gradient(135deg, #111827 0%, #334155 100%);
    box-shadow: 0 12px 22px rgba(15,23,42,.14);
}

.nv-promotion-view-contents-wrap {
    padding: 34px 38px;
    border-top: 1px solid #edf0f4;
    background: linear-gradient(180deg, #fff 0%, #fcfcfd 100%);
}

.nv-promotion-view-contents-head h3 {
    margin: 6px 0 0;
    font-size: 28px;
    letter-spacing: -1px;
}

.nv-promotion-view-contents {
    padding: 0;
    border-top: 0;
    margin-top: 20px;
    color: #3f4752;
    font-size: 15px;
    line-height: 2;
}

.nv-promotion-view-foot {
    padding: 18px 38px 24px;
    border-top: 1px solid #edf0f4;
    background: #fff;
}

.nv-home-promotion-card {
    border: 1px solid #e6eaf0;
    border-radius: 18px;
    box-shadow: 0 12px 26px rgba(15,23,42,.04);
    transition: transform .15s ease, box-shadow .15s ease;
}

.nv-home-promotion-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(15,23,42,.08);
}

@media (max-width: 1100px) {
    .nv-promotion-hero-inner {
        gap: 30px;
    }

    .nv-promotion-hero-panel {
        flex-basis: 320px;
    }

    .nv-promotion-filter {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nv-promotion-filter-item-keyword {
        grid-column: span 2;
    }
}

@media (max-width: 760px) {
    .nv-promotion-hero-inner,
    .nv-promotion-filter-head,
    .nv-promotion-quick-services,
    .nv-promotion-toolbar {
        display: block;
    }

    .nv-promotion-hero {
        padding-bottom: 26px;
    }

    .nv-promotion-hero-copy p {
        font-size: 14px;
    }

    .nv-promotion-hero-panel {
        margin-top: 24px;
    }

    .nv-promotion-filter-wrap {
        margin-top: -34px;
        padding: 18px;
        border-radius: 18px;
    }

    .nv-promotion-filter-head p,
    .nv-promotion-quick-services > span {
        margin-top: 10px;
    }

    .nv-promotion-quick-services > div {
        margin-top: 12px;
    }

    .nv-promotion-filter,
    .nv-promotion-view-info {
        grid-template-columns: 1fr;
    }

    .nv-promotion-filter-item-keyword {
        grid-column: span 1;
    }

    .nv-promotion-view-main,
    .nv-promotion-view-contents-wrap,
    .nv-promotion-view-foot {
        padding-left: 22px;
        padding-right: 22px;
    }
}


/* ===== Internal Message ===== */

.nv-header-message-link {
    position: relative;
}

.nv-header-message-link > span {
    display: inline-flex;
    min-width: 18px;
    height: 18px;
    margin-left: 4px;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
}

.nv-message-section {
    background: #f8fafc;
}

.nv-message-container {
    max-width: 980px;
}

.nv-message-page-head {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: end;
    margin-bottom: 26px;
}

.nv-message-page-head h1 {
    margin: 5px 0 7px;
    font-size: clamp(36px, 6vw, 48px);
    letter-spacing: -1.7px;
}

.nv-message-page-head p {
    margin: 0;
    color: #6b7280;
    line-height: 1.7;
}

.nv-message-page-head > a {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: 0 14px;
    border: 1px solid #dfe4ea;
    border-radius: 12px;
    background: #fff;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.nv-message-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
    padding: 6px;
    border: 1px solid #e5e9ef;
    border-radius: 14px;
    background: #fff;
}

.nv-message-tabs a {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    gap: 6px;
    padding: 0 14px;
    border-radius: 10px;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.nv-message-tabs a.active {
    background: #111827;
    color: #fff;
}

.nv-message-tabs a span {
    display: inline-flex;
    min-width: 19px;
    height: 19px;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 9px;
}

.nv-message-list {
    overflow: hidden;
    border: 1px solid #e5e9ef;
    border-radius: 18px;
    background: #fff;
}

.nv-message-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 140px;
    gap: 14px;
    align-items: center;
    padding: 18px 20px;
    border-bottom: 1px solid #edf0f4;
    transition: background .15s ease;
}

.nv-message-row:last-child {
    border-bottom: 0;
}

.nv-message-row:hover {
    background: #f9fafb;
}

.nv-message-row.unread {
    background: #f8fbff;
}

.nv-message-unread-dot,
.nv-message-read-dot {
    display: block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.nv-message-unread-dot {
    background: #2563eb;
    box-shadow: 0 0 0 4px rgba(37,99,235,.10);
}

.nv-message-read-dot {
    background: #d1d5db;
}

.nv-message-row-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
}

.nv-message-row-meta span {
    color: #94a3b8;
    font-size: 10px;
    font-weight: 700;
}

.nv-message-row-meta strong {
    color: #475569;
    font-size: 12px;
}

.nv-message-row-meta em {
    padding: 4px 7px;
    border-radius: 999px;
    background: #eef2ff;
    color: #4f46e5;
    font-style: normal;
    font-size: 9px;
    font-weight: 800;
}

.nv-message-row h2 {
    margin: 5px 0 0;
    font-size: 16px;
    letter-spacing: -.35px;
}

.nv-message-row p {
    margin: 5px 0 0;
    color: #94a3b8;
    font-size: 11px;
}

.nv-message-row time {
    text-align: right;
    color: #94a3b8;
    font-size: 11px;
}

.nv-message-compose-card,
.nv-message-view-card {
    padding: 28px;
    border: 1px solid #e5e9ef;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(15,23,42,.05);
}

.nv-message-recipient,
.nv-message-related {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 14px;
    padding: 14px 16px;
    border-radius: 13px;
    background: #f8fafc;
}

.nv-message-recipient span,
.nv-message-related span {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 700;
}

.nv-message-recipient strong,
.nv-message-related a {
    color: #334155;
    font-size: 13px;
    font-weight: 800;
}

.nv-message-compose-card .nv-member-field {
    margin-top: 18px;
}

.nv-message-compose-card textarea {
    width: 100%;
    border: 1px solid #d8dde6;
    border-radius: 14px;
    padding: 14px;
    resize: vertical;
    line-height: 1.75;
}

.nv-message-compose-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 22px;
}

.nv-message-compose-actions a,
.nv-message-compose-actions button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border: 1px solid #dfe4ea;
    border-radius: 11px;
    background: #fff;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.nv-message-compose-actions button {
    border-color: #111827;
    background: #111827;
    color: #fff;
    cursor: pointer;
}

.nv-message-view-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 14px;
}

.nv-message-view-top > div {
    display: flex;
    gap: 8px;
    align-items: center;
}

.nv-message-view-top form {
    margin: 0;
}

.nv-message-view-top a,
.nv-message-view-top button {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 0 12px;
    border: 1px solid #dfe4ea;
    border-radius: 10px;
    background: #fff;
    color: #475569;
    font-size: 11px;
    cursor: pointer;
}

.nv-message-view-top a.primary {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

.nv-message-view-head > span {
    color: #94a3b8;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
}

.nv-message-view-head > strong {
    display: block;
    margin-top: 4px;
    color: #475569;
    font-size: 13px;
}

.nv-message-view-head h1 {
    margin: 12px 0 6px;
    font-size: 28px;
    letter-spacing: -1px;
}

.nv-message-view-head time {
    color: #94a3b8;
    font-size: 11px;
}

.nv-message-related-card {
    display: block;
    margin-top: 22px;
    padding: 16px;
    border: 1px solid #e5e9ef;
    border-radius: 14px;
    background: #f8fafc;
}

.nv-message-related-card span,
.nv-message-related-card strong,
.nv-message-related-card p {
    display: block;
}

.nv-message-related-card span {
    color: #94a3b8;
    font-size: 10px;
}

.nv-message-related-card strong {
    margin-top: 5px;
    color: #334155;
}

.nv-message-related-card p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 12px;
}

.nv-message-view-contents {
    margin-top: 24px;
    padding: 24px 0;
    border-top: 1px solid #edf0f4;
    border-bottom: 1px solid #edf0f4;
    color: #374151;
    font-size: 14px;
    line-height: 1.9;
}

.nv-message-view-foot {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    margin-top: 18px;
}

.nv-message-view-foot span,
.nv-message-view-foot strong {
    display: block;
}

.nv-message-view-foot span {
    color: #94a3b8;
    font-size: 10px;
}

.nv-message-view-foot strong {
    margin-top: 4px;
    color: #64748b;
    font-size: 11px;
}

.nv-message-view-foot > a {
    color: #b91c1c;
    font-size: 11px;
    text-decoration: underline;
}

.nv-message-block-list {
    overflow: hidden;
    border: 1px solid #e5e9ef;
    border-radius: 18px;
    background: #fff;
}

.nv-message-block-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    padding: 17px 20px;
    border-bottom: 1px solid #edf0f4;
}

.nv-message-block-row:last-child {
    border-bottom: 0;
}

.nv-message-block-row strong,
.nv-message-block-row span {
    display: block;
}

.nv-message-block-row span {
    margin-top: 4px;
    color: #94a3b8;
    font-size: 10px;
}

.nv-message-block-row button {
    border: 1px solid #dfe4ea;
    border-radius: 9px;
    background: #fff;
    padding: 8px 11px;
    color: #475569;
    font-size: 11px;
    cursor: pointer;
}

.nv-promotion-message-cta {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: center;
    margin-top: 26px;
    padding: 20px;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    background: linear-gradient(135deg, #f8fbff 0%, #f3f7fb 100%);
}

.nv-promotion-message-cta span {
    display: block;
    color: #64748b;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
}

.nv-promotion-message-cta strong {
    display: block;
    margin-top: 6px;
    color: #1e293b;
    font-size: 18px;
}

.nv-promotion-message-cta p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 12px;
    line-height: 1.65;
}

.nv-promotion-message-cta > a {
    flex: 0 0 auto;
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    border-radius: 11px;
    background: #111827;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

@media (max-width: 700px) {
    .nv-message-page-head,
    .nv-message-view-foot,
    .nv-promotion-message-cta {
        display: block;
    }

    .nv-message-page-head > a,
    .nv-promotion-message-cta > a {
        margin-top: 16px;
    }

    .nv-message-row {
        grid-template-columns: 20px minmax(0, 1fr);
    }

    .nv-message-row time {
        grid-column: 2;
        text-align: left;
        margin-top: -5px;
    }

    .nv-message-compose-card,
    .nv-message-view-card {
        padding: 20px 16px;
    }

    .nv-message-tabs {
        overflow-x: auto;
    }
}


/* ===== MY Promotion Management ===== */

.nv-my-promotion-done {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: 0 14px;
    border-radius: 10px;
    background: #eef2f7;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.nv-my-actions a.primary {
    background: #111827;
    color: #fff;
}

.nv-my-promotion-tabs {
    display: inline-flex;
    gap: 6px;
    padding: 5px;
    margin-bottom: 20px;
    border: 1px solid #e5e9ef;
    border-radius: 13px;
    background: #fff;
}

.nv-my-promotion-tabs a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 0 13px;
    border-radius: 9px;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.nv-my-promotion-tabs a.active {
    background: #111827;
    color: #fff;
}

.nv-my-promotion-list {
    display: grid;
    gap: 14px;
}

.nv-my-promotion-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    gap: 22px;
    padding: 22px;
    border: 1px solid #e5e9ef;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15,23,42,.04);
}

.nv-my-promotion-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.nv-my-promotion-meta span,
.nv-my-promotion-meta em {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    background: #f3f6fa;
    color: #64748b;
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
}

.nv-my-promotion-meta em.active {
    background: #ecfdf5;
    color: #047857;
}

.nv-my-promotion-meta em.blocked {
    background: #fef2f2;
    color: #b91c1c;
}

.nv-my-promotion-card .business {
    color: #64748b;
    font-size: 12px;
}

.nv-my-promotion-card h2 {
    margin: 6px 0 12px;
    font-size: 21px;
    letter-spacing: -.6px;
}

.nv-my-promotion-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.nv-my-promotion-stats > span {
    display: inline-flex;
    gap: 6px;
    padding: 7px 9px;
    border-radius: 8px;
    background: #f8fafc;
    color: #64748b;
    font-size: 11px;
}

.nv-my-promotion-stats > span.unread {
    background: #eff6ff;
    color: #1d4ed8;
}

.nv-my-promotion-card-main > small {
    display: block;
    margin-top: 14px;
    color: #94a3b8;
    font-size: 10px;
}

.nv-my-promotion-card-actions {
    display: flex;
    flex-direction: column;
    gap: 7px;
    justify-content: center;
}

.nv-my-promotion-card-actions a,
.nv-my-promotion-card-actions button {
    display: flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    width: 100%;
    border: 1px solid #dfe4ea;
    border-radius: 9px;
    background: #fff;
    color: #475569;
    font-size: 11px;
    cursor: pointer;
}

.nv-my-promotion-card-actions a.primary {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

.nv-my-promotion-card-actions form {
    margin: 0;
}

.nv-my-promotion-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.nv-my-promotion-summary a {
    padding: 16px;
    border: 1px solid #e5e9ef;
    border-radius: 13px;
    background: #f9fafb;
}

.nv-my-promotion-summary span,
.nv-my-promotion-summary strong {
    display: block;
}

.nv-my-promotion-summary span {
    color: #64748b;
    font-size: 11px;
}

.nv-my-promotion-summary strong {
    margin-top: 7px;
    font-size: 24px;
}

/* ===== Promotion Comments ===== */

.nv-promotion-comments-section {
    padding-top: 0;
    background: #f8fafc;
}

.nv-promotion-comments-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: end;
    margin-bottom: 18px;
}

.nv-promotion-comments-head h2 {
    margin: 4px 0;
    font-size: 30px;
    letter-spacing: -1px;
}

.nv-promotion-comments-head p {
    margin: 0;
    color: #64748b;
    font-size: 13px;
}

.nv-promotion-comments-head > strong {
    font-size: 28px;
    color: #94a3b8;
}

.nv-promotion-comment-form,
.nv-promotion-reply-form {
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid #e5e9ef;
    border-radius: 16px;
    background: #fff;
}

.nv-promotion-comment-form textarea,
.nv-promotion-reply-form textarea {
    width: 100%;
    padding: 13px;
    border: 1px solid #d8dde6;
    border-radius: 12px;
    resize: vertical;
    line-height: 1.7;
}

.nv-promotion-comment-form-bottom {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-top: 10px;
}

.nv-promotion-comment-form-bottom label {
    display: flex;
    gap: 7px;
    align-items: center;
    color: #64748b;
    font-size: 11px;
}

.nv-promotion-comment-form-bottom button {
    min-height: 38px;
    padding: 0 14px;
    border: 0;
    border-radius: 9px;
    background: #111827;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

.nv-promotion-comment-login {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    margin-bottom: 18px;
    padding: 16px 18px;
    border: 1px solid #e5e9ef;
    border-radius: 14px;
    background: #fff;
    color: #64748b;
    font-size: 12px;
}

.nv-promotion-comment-login a {
    color: #111827;
    font-weight: 800;
}

.nv-promotion-comment-list {
    overflow: hidden;
    border: 1px solid #e5e9ef;
    border-radius: 18px;
    background: #fff;
}

.nv-promotion-comment-thread {
    border-bottom: 1px solid #edf0f4;
}

.nv-promotion-comment-thread:last-child {
    border-bottom: 0;
}

.nv-promotion-comment-item {
    padding: 19px 20px;
}

.nv-promotion-comment-item.secret {
    background: #fcfcfd;
}

.nv-promotion-comment-item.reply {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 6px;
    padding-left: 30px;
    border-top: 1px solid #edf0f4;
    background: #f8fafc;
}

.nv-promotion-comment-reply-mark {
    color: #94a3b8;
    font-size: 18px;
}

.nv-promotion-comment-meta {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
}

.nv-promotion-comment-meta > div {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
}

.nv-promotion-comment-meta strong {
    font-size: 12px;
}

.nv-promotion-comment-meta span.owner,
.nv-promotion-comment-meta span.secret-badge {
    display: inline-flex;
    padding: 4px 7px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
}

.nv-promotion-comment-meta span.owner {
    background: #111827;
    color: #fff;
}

.nv-promotion-comment-meta span.secret-badge {
    background: #fff7ed;
    color: #c2410c;
}

.nv-promotion-comment-meta time {
    color: #94a3b8;
    font-size: 10px;
}

.nv-promotion-comment-body {
    margin-top: 11px;
    color: #374151;
    font-size: 13px;
    line-height: 1.75;
}

.nv-secret-comment-text {
    color: #94a3b8;
    font-style: italic;
}

.nv-promotion-comment-actions {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}

.nv-promotion-comment-actions form {
    margin: 0;
}

.nv-promotion-comment-actions button {
    padding: 0;
    border: 0;
    background: none;
    color: #94a3b8;
    font-size: 10px;
    cursor: pointer;
}

.nv-promotion-reply-form {
    margin: 13px 0 0;
    padding: 14px;
    background: #f8fafc;
}

.nv-promotion-comment-form-bottom .disabled-secret {
    color: #b45309;
}

@media (max-width: 760px) {
    .nv-my-promotion-card {
        grid-template-columns: 1fr;
    }

    .nv-my-promotion-summary {
        grid-template-columns: 1fr;
    }

    .nv-promotion-comments-head,
    .nv-promotion-comment-form-bottom,
    .nv-promotion-comment-login {
        align-items: flex-start;
        flex-direction: column;
    }

    .nv-promotion-comment-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }

    .nv-promotion-comment-item.reply {
        padding-left: 18px;
    }
}

/* ===== UI POLISH 2026-08 ===== */

html,
body {
    background:
        radial-gradient(circle at top left, rgba(99,102,241,.05), transparent 26%),
        radial-gradient(circle at top right, rgba(16,185,129,.05), transparent 22%),
        #f7f8fb;
    color: #0f172a;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    line-height: 1.5;
}

.nv-container,
.nv-front-header-inner,
.nv-front-footer-inner {
    width: min(1200px, calc(100% - 40px));
}

.nv-front-header {
    background: rgba(255,255,255,.85);
    border-bottom: 1px solid rgba(226,232,240,.95);
    box-shadow: 0 10px 30px rgba(15,23,42,.04);
}

.nv-front-header-inner {
    height: 78px;
    gap: 18px;
}

.nv-front-logo {
    display: inline-flex;
    align-items: center;
    font-size: 24px;
    font-weight: 900;
    letter-spacing: -1px;
    color: #0f172a;
}

.nv-front-nav {
    gap: 12px;
    margin-left: 34px;
    padding: 6px;
    border: 1px solid #e6ebf2;
    border-radius: 999px;
    background: rgba(248,250,252,.95);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.85);
}

.nv-front-nav a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border-radius: 999px;
    color: #64748b;
    font-size: 14px;
    font-weight: 700;
    transition: all .16s ease;
}

.nv-front-nav a.active,
.nv-front-nav a:hover {
    background: #111827;
    color: #fff;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(17,24,39,.16);
}

.nv-front-actions {
    gap: 10px;
    font-size: 13px;
}

.nv-header-action,
.nv-login-link {
    position: relative;
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border-radius: 999px;
    font-weight: 800;
    transition: all .16s ease;
}

.nv-header-action {
    border: 1px solid #dfe5ee;
    background: #fff;
    color: #475569;
    box-shadow: 0 8px 20px rgba(15,23,42,.03);
}

.nv-header-action:hover {
    transform: translateY(-1px);
    border-color: #cbd5e1;
    color: #111827;
    box-shadow: 0 12px 24px rgba(15,23,42,.07);
}

.nv-header-message-link > span {
    display: inline-flex;
    min-width: 18px;
    height: 18px;
    margin-left: 6px;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 9px;
    line-height: 1;
    font-weight: 900;
}

.nv-login-link {
    padding: 0 16px;
    border: 1px solid #111827;
    border-radius: 999px;
    background: linear-gradient(135deg, #111827 0%, #334155 100%);
    color: #fff;
    box-shadow: 0 12px 24px rgba(15,23,42,.16);
}

.nv-login-link:hover {
    transform: translateY(-1px);
}

.nv-hero {
    position: relative;
    overflow: hidden;
    padding: 96px 0 76px;
    background:
        radial-gradient(circle at 15% 15%, rgba(99,102,241,.13), transparent 20%),
        radial-gradient(circle at 85% 15%, rgba(16,185,129,.10), transparent 18%),
        linear-gradient(180deg, #f8fafc 0%, #f8fbff 48%, #ffffff 100%);
}

.nv-hero::after {
    content: "";
    position: absolute;
    right: -140px;
    top: -100px;
    width: 380px;
    height: 380px;
    border-radius: 50%;
    background: rgba(148,163,184,.08);
    filter: blur(8px);
}

.nv-hero .nv-container {
    position: relative;
    z-index: 1;
}

.nv-hero-copy {
    max-width: 850px;
}

.nv-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border: 1px solid #e4e9f1;
    border-radius: 999px;
    background: rgba(255,255,255,.78);
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    box-shadow: 0 8px 24px rgba(15,23,42,.04);
}

.nv-hero h1,
.nv-page-hero h1 {
    margin-top: 18px;
    font-size: clamp(44px, 6vw, 74px);
    line-height: 1.02;
    letter-spacing: -3.2px;
    color: #0f172a;
}

.nv-hero p,
.nv-page-hero p {
    max-width: 760px;
    margin-top: 20px;
    color: #64748b;
    font-size: 18px;
    line-height: 1.8;
}

.nv-main-search,
.nv-tools-search {
    display: flex;
    align-items: stretch;
    gap: 12px;
}

.nv-main-search {
    margin-top: 38px;
    max-width: 800px;
    padding: 10px;
    border: 1px solid #e5e9f0;
    border-radius: 22px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 20px 48px rgba(15,23,42,.08);
}

.nv-main-search input,
.nv-tools-search input,
.nv-tools-search select {
    height: 56px;
    border: 1px solid #dce3ec;
    border-radius: 14px;
    padding: 0 16px;
    background: #fff;
    color: #0f172a;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.nv-main-search input {
    border: 0;
    border-radius: 14px;
    box-shadow: none;
    font-size: 16px;
}

.nv-main-search input:focus,
.nv-tools-search input:focus,
.nv-tools-search select:focus,
textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="url"]:focus {
    outline: none;
    border-color: #111827;
    box-shadow: 0 0 0 4px rgba(17,24,39,.06);
    transform: translateY(-1px);
}

.nv-main-search button,
.nv-tools-search button,
.nv-member-submit,
button[type="submit"] {
    min-height: 56px;
    padding: 0 22px;
    border-radius: 14px;
    border: 0;
    background: linear-gradient(135deg, #111827 0%, #334155 100%);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 14px 28px rgba(15,23,42,.14);
    transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}

.nv-main-search button:hover,
.nv-tools-search button:hover,
.nv-member-submit:hover,
button[type="submit"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 34px rgba(15,23,42,.18);
}

.nv-hero-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    max-width: 740px;
    margin-top: 20px;
}

.nv-hero-metrics a {
    display: block;
    padding: 18px 20px;
    border: 1px solid #e6ebf2;
    border-radius: 18px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 16px 34px rgba(15,23,42,.05);
    transition: transform .16s ease, box-shadow .16s ease;
}

.nv-hero-metrics a:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px rgba(15,23,42,.09);
}

.nv-hero-metrics span,
.nv-hero-metrics strong {
    display: block;
}

.nv-hero-metrics span {
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.nv-hero-metrics strong {
    margin-top: 8px;
    color: #0f172a;
    font-size: 28px;
    letter-spacing: -1px;
}

.nv-section {
    padding: 82px 0;
}

.nv-section-soft {
    background:
        linear-gradient(180deg, rgba(248,250,252,.9) 0%, rgba(255,255,255,1) 100%);
}

.nv-section-head {
    margin-bottom: 28px;
}

.nv-section-head h2 {
    font-size: 34px;
    letter-spacing: -1.2px;
    color: #0f172a;
}

.nv-section-head > a,
.nv-my-section-more {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 0 12px;
    border-radius: 999px;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    background: #fff;
    border: 1px solid #e5e9ef;
}

.nv-tool-grid,
.nv-business-grid,
.nv-home-board-grid,
.nv-home-promotion-grid,
.nv-info-grid {
    gap: 18px;
}

.nv-tool-card,
.nv-business-card,
.nv-home-board-card,
.nv-home-promotion-card,
.nv-info-card,
.nv-panel,
.nv-my-block,
.nv-front-panel {
    border: 1px solid #e7ebf2;
    border-radius: 20px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 14px 34px rgba(15,23,42,.05);
}

.nv-tool-card {
    min-height: 228px;
    padding: 24px;
}

.nv-tool-card h3 {
    margin-top: 16px;
    color: #0f172a;
    font-size: 21px;
    letter-spacing: -.6px;
}

.nv-tool-card p,
.nv-business-card span,
.nv-front-footer p,
.nv-front-legal span,
.nv-front-legal a,
.nv-empty-front,
.nv-front-alert,
.nv-card-category {
    color: #64748b;
}

.nv-card-category {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #edf1f5;
    font-size: 11px;
    font-weight: 800;
}

.nv-card-arrow,
.nv-card-foot strong {
    color: #0f172a;
}

.nv-business-card {
    min-height: 124px;
    justify-content: center;
    transition: transform .16s ease, box-shadow .16s ease;
}

.nv-business-card:hover,
.nv-tool-card:hover,
.nv-home-board-card:hover,
.nv-home-promotion-card:hover,
.nv-info-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 42px rgba(15,23,42,.09);
    border-color: #dbe3ec;
}

.nv-business-card strong {
    color: #0f172a;
    font-size: 19px;
    letter-spacing: -.4px;
}

.nv-empty-front {
    padding: 44px 18px;
    border: 1px dashed #d7dfe8;
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    text-align: center;
    font-size: 14px;
}

.nv-front-alert {
    padding: 16px 18px;
    border-radius: 16px;
    border: 1px solid #e7ebf2;
    font-size: 13px;
    line-height: 1.65;
    box-shadow: 0 12px 28px rgba(15,23,42,.04);
}

.nv-front-alert-success {
    background: #f0fdf4;
    border-color: #bbf7d0;
    color: #166534;
}

.nv-front-alert-error {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}

.nv-member-box,
.nv-login-box,
.nv-register-box,
.nv-find-box,
.nv-password-box {
    border: 1px solid #e7ebf2;
    border-radius: 24px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 18px 42px rgba(15,23,42,.06);
}

.nv-member-field input,
.nv-member-field select,
.nv-member-field textarea,
.nv-tools-search input,
.nv-tools-search select,
textarea,
input[type="text"],
input[type="password"],
input[type="email"],
input[type="url"] {
    border: 1px solid #dce3ec;
    border-radius: 14px;
    background: #fff;
}

.nv-front-footer {
    margin-top: 18px;
    border-top: 1px solid #e8edf3;
    background: #ffffff;
}

.nv-front-footer-inner {
    padding: 38px 0 30px;
}

.nv-front-footer strong {
    color: #0f172a;
    font-size: 26px;
    letter-spacing: -1px;
}

.nv-front-footer-links {
    gap: 12px;
}

.nv-front-footer-links a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 0 12px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e5e9ef;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.nv-front-legal {
    border-top: 1px solid #eef2f6;
    background: #fff;
}

.nv-front-legal .nv-container {
    padding: 18px 0 20px;
    gap: 14px;
}

.nv-front-legal a {
    font-weight: 700;
}

.nv-mobile-bottom {
    border-top: 1px solid #e5e9ef;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(12px);
    box-shadow: 0 -10px 30px rgba(15,23,42,.05);
}

.nv-mobile-bottom a {
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
}

.nv-home-board-card,
.nv-info-card,
.nv-home-promotion-card {
    overflow: hidden;
}

.nv-home-board-card,
.nv-info-card {
    padding: 22px;
}

.nv-home-promotion-card {
    padding: 0;
}

.nv-home-promotion-card-body,
.nv-home-promotion-card .nv-promotion-card-body {
    padding: 22px;
}

.nv-my-hero,
.nv-page-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.12), transparent 24%),
        linear-gradient(135deg, #111827 0%, #1f2937 60%, #334155 100%);
    color: #fff;
}

.nv-my-hero .nv-container,
.nv-page-hero .nv-container {
    position: relative;
    z-index: 1;
}

.nv-my-hero h1,
.nv-page-hero h1 {
    color: #fff;
}

.nv-my-hero p,
.nv-page-hero p {
    color: rgba(255,255,255,.75);
}

.nv-my-actions a,
.nv-page-hero a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 0 15px;
    border-radius: 12px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.14);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.nv-my-actions a.primary {
    background: #fff;
    color: #111827;
}

.nv-table {
    border-collapse: separate;
    border-spacing: 0;
}

.nv-table th,
.nv-table td {
    border-bottom: 1px solid #edf1f5;
    vertical-align: middle;
}

.nv-table th {
    background: #f8fafc;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.nv-admin-filter,
.nv-tools-search {
    padding: 16px;
    border: 1px solid #e7ebf2;
    border-radius: 20px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 12px 28px rgba(15,23,42,.05);
}

@media (max-width: 1080px) {
    .nv-front-header-inner {
        flex-wrap: wrap;
        height: auto;
        padding: 14px 0;
    }

    .nv-front-nav {
        order: 3;
        width: 100%;
        margin-left: 0;
        overflow-x: auto;
        white-space: nowrap;
    }
}

@media (max-width: 780px) {
    .nv-front-header-inner {
        gap: 10px;
    }

    .nv-front-logo {
        font-size: 22px;
    }

    .nv-front-nav {
        display: none;
    }

    .nv-front-actions {
        margin-left: auto;
        gap: 8px;
    }

    .nv-header-action,
    .nv-login-link {
        min-height: 36px;
        padding: 0 12px;
        font-size: 11px;
    }

    .nv-hero {
        padding-top: 72px;
    }

    .nv-main-search,
    .nv-tools-search {
        display: block;
        padding: 14px;
    }

    .nv-main-search input,
    .nv-tools-search input,
    .nv-tools-search select,
    .nv-main-search button,
    .nv-tools-search button {
        width: 100%;
    }

    .nv-main-search input,
    .nv-tools-search input,
    .nv-tools-search select {
        margin-bottom: 10px;
    }

    .nv-hero-metrics {
        grid-template-columns: 1fr;
    }

    .nv-section-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }
}


/* ===== Home Promotion + MY Dashboard Refinement + Secure Image Upload ===== */

.nv-home-promotion-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.nv-home-promotion-grid.nv-home-promotion-count-1 {
    grid-template-columns: minmax(0, 1fr);
}

.nv-home-promotion-card {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    min-height: 230px;
    padding: 0;
    overflow: hidden;
    border: 1px solid #e5eaf1;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15,23,42,.05);
}

.nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-card {
    grid-template-columns: minmax(260px, 36%) minmax(0, 1fr);
    min-height: 290px;
}

.nv-home-promotion-media {
    min-height: 100%;
    overflow: hidden;
    background: linear-gradient(135deg, #eef2f7 0%, #e2e8f0 100%);
}

.nv-home-promotion-media img {
    width: 100%;
    height: 100%;
    min-height: 230px;
    object-fit: cover;
    display: block;
    transition: transform .25s ease;
}

.nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-media img {
    min-height: 290px;
}

.nv-home-promotion-card:hover .nv-home-promotion-media img {
    transform: scale(1.035);
}

.nv-home-promotion-placeholder {
    width: 100%;
    height: 100%;
    min-height: 230px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,.8), transparent 28%),
        linear-gradient(135deg, #edf2f7 0%, #dfe7f0 100%);
}

.nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-placeholder {
    min-height: 290px;
}

.nv-home-promotion-placeholder span {
    display: inline-flex;
    width: 72px;
    height: 72px;
    align-items: center;
    justify-content: center;
    border-radius: 22px;
    background: rgba(255,255,255,.72);
    color: #94a3b8;
    font-size: 34px;
    font-weight: 900;
    box-shadow: 0 12px 28px rgba(15,23,42,.08);
}

.nv-home-promotion-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 26px 28px;
}

.nv-home-promotion-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 14px;
}

.nv-home-promotion-meta span {
    display: inline-flex;
    min-height: 27px;
    align-items: center;
    padding: 0 9px;
    border: 1px solid #e7ebf1;
    border-radius: 999px;
    background: #f8fafc;
    color: #64748b;
    font-size: 10px;
    font-weight: 800;
}

.nv-home-promotion-content > strong {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.nv-home-promotion-content h3 {
    margin: 8px 0 9px;
    color: #0f172a;
    font-size: 21px;
    line-height: 1.42;
    letter-spacing: -.7px;
}

.nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-content h3 {
    max-width: 720px;
    font-size: 27px;
}

.nv-home-promotion-content p {
    margin: 0;
    color: #64748b;
    font-size: 13px;
    line-height: 1.75;
}

.nv-home-promotion-content em {
    margin-top: 20px;
    color: #0f172a;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
}

/* MY는 큰 흰 박스 안에 카드가 덩그러니 남지 않도록 섹션 자체를 가볍게 만든다. */
.nv-my-section {
    background: #f7f9fc;
}

.nv-my-section .nv-my-block {
    margin-bottom: 34px;
    padding: 28px;
    border: 1px solid #e5eaf1;
    border-radius: 22px;
    background: rgba(255,255,255,.9);
    box-shadow: 0 12px 30px rgba(15,23,42,.045);
}

.nv-my-section .nv-my-block .nv-section-head {
    margin-bottom: 20px;
}

.nv-my-section .nv-my-block .nv-section-head h2 {
    margin-top: 8px;
    font-size: 28px;
}

.nv-my-tool-grid,
.nv-my-recommended-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.nv-my-section .nv-tool-card {
    min-height: 210px;
    padding: 22px;
    border-radius: 18px;
    box-shadow: none;
}

.nv-my-section .nv-tool-card-action {
    min-height: 230px;
}

.nv-my-section .nv-my-tool-actions {
    left: 22px;
    right: 22px;
    bottom: 18px;
}

.nv-my-section .nv-my-tool-actions button {
    min-height: 38px;
    height: 38px;
    padding: 0 13px;
    border-radius: 10px;
    box-shadow: none;
}

.nv-my-promotion-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.nv-my-promotion-summary a {
    min-height: 112px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px;
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.nv-my-promotion-summary strong {
    font-size: 30px;
}

.nv-my-saved-list,
.nv-recent-list {
    overflow: hidden;
    border: 1px solid #e8edf3;
    border-radius: 16px;
    background: #fff;
}

.nv-my-saved-list > a,
.nv-recent-list > a {
    min-height: 66px;
    padding: 14px 18px;
    border-bottom: 1px solid #edf1f5;
    transition: background .15s ease;
}

.nv-my-saved-list > a:last-child,
.nv-recent-list > a:last-child {
    border-bottom: 0;
}

.nv-my-saved-list > a:hover,
.nv-recent-list > a:hover {
    background: #f8fafc;
}

/* 실제 업로드 UI */
.nv-promotion-image-field {
    margin-top: 4px;
}

.nv-promotion-current-image {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    margin-bottom: 14px;
    padding: 14px;
    border: 1px solid #e5eaf1;
    border-radius: 16px;
    background: #f8fafc;
}

.nv-promotion-current-image img,
.nv-promotion-image-preview img {
    width: 180px;
    height: 120px;
    object-fit: cover;
    border-radius: 12px;
    display: block;
}

.nv-promotion-image-remove {
    display: flex !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    align-items: center !important;
    margin: 0 !important;
    color: #b91c1c !important;
    font-size: 12px !important;
}

.nv-promotion-file-upload {
    display: flex !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    align-items: center !important;
    min-height: 58px;
    margin: 0 !important;
    padding: 10px 12px;
    border: 1px dashed #cbd5e1;
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
}

.nv-promotion-file-upload strong {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 0 13px;
    border-radius: 10px;
    background: #111827;
    color: #fff;
    font-size: 11px;
}

.nv-promotion-file-upload span {
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
}

.nv-promotion-file-upload input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.nv-promotion-image-preview {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #e5eaf1;
    border-radius: 14px;
    background: #f8fafc;
}

@media (max-width: 1100px) {
    .nv-my-tool-grid,
    .nv-my-recommended-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .nv-home-promotion-grid,
    .nv-home-promotion-grid.nv-home-promotion-count-1 {
        grid-template-columns: 1fr;
    }

    .nv-home-promotion-card,
    .nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-card {
        grid-template-columns: 140px minmax(0, 1fr);
        min-height: 210px;
    }

    .nv-home-promotion-media img,
    .nv-home-promotion-placeholder,
    .nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-media img,
    .nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-placeholder {
        min-height: 210px;
    }

    .nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-content h3 {
        font-size: 21px;
    }
}

@media (max-width: 680px) {
    .nv-my-section .nv-my-block {
        padding: 20px 16px;
        border-radius: 18px;
    }

    .nv-my-tool-grid,
    .nv-my-recommended-grid,
    .nv-my-promotion-summary {
        grid-template-columns: 1fr;
    }

    .nv-home-promotion-card,
    .nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-card {
        display: block;
    }

    .nv-home-promotion-media img,
    .nv-home-promotion-placeholder,
    .nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-media img,
    .nv-home-promotion-grid.nv-home-promotion-count-1 .nv-home-promotion-placeholder {
        width: 100%;
        min-height: 190px;
        height: 190px;
    }

    .nv-home-promotion-content {
        padding: 20px;
    }

    .nv-promotion-current-image {
        grid-template-columns: 1fr;
    }
}


/* ===== NURIVOQ LOGO 2026-08 ===== */

.nv-front-logo {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    min-width: 0;
    padding: 0;
    background: transparent;
    line-height: 1;
}

.nv-front-logo img {
    display: block;
    width: auto;
    height: 34px;
    max-width: 225px;
    object-fit: contain;
}

@media (max-width: 780px) {
    .nv-front-logo img {
        height: 29px;
        max-width: 190px;
    }
}

@media (max-width: 420px) {
    .nv-front-logo img {
        height: 27px;
        max-width: 168px;
    }
}
