feat: 시즌별 마케팅 + 공지사항 관리 기능 추가
- 연간 세무 캘린더(7개 시즌) 기반 자동 Hero 섹션 전환 - 시즌 감지 시 D-Day 카운트다운, 긴박감 배지, 시즌 CTA 표시 - 서비스 카드 순서 시즌 관련 항목 우선 정렬 - 어드민 공지사항 CRUD (등록·수정·삭제, 기간·유형 설정) - 홈페이지 상단 공지 배너 자동 노출 (일반/배너/긴급) - CLAUDE.md에 세무 캘린더 및 마케팅 방향 하네스 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+200
-93
@@ -1,37 +1,107 @@
|
||||
@page
|
||||
@model TaxBaik.Web.Pages.IndexModel
|
||||
@{
|
||||
ViewData["Title"] = "백원숙 세무회계 | 사업자·부동산·증여 세무 상담";
|
||||
var season = Model.CurrentSeason;
|
||||
ViewData["Title"] = season != null
|
||||
? $"백원숙 세무회계 | {season.Name} — 지금 상담하세요"
|
||||
: "백원숙 세무회계 | 사업자·부동산·증여 세무 상담";
|
||||
ViewData["Description"] = "사업자 기장, 부동산 양도세·증여세, 종합소득세 전문 상담. 온라인 맞춤 상담 제공.";
|
||||
}
|
||||
|
||||
<!-- Hero Section — 강임팩트 -->
|
||||
<section class="hero-section text-white pt-5 pb-4">
|
||||
<div class="container">
|
||||
<div class="row align-items-center py-4">
|
||||
<div class="col-lg-7">
|
||||
<span class="badge bg-primary-badge mb-3">경험 있는 세무사의 맞춤 전략</span>
|
||||
<h1 class="mb-3">
|
||||
세금과 자산<br/>
|
||||
<span style="color: #E8E4D8;">한 번에 해결하는</span>
|
||||
</h1>
|
||||
<p class="fs-5 mb-4" style="line-height: 1.8; opacity: 0.95;">
|
||||
사업자 세무, 부동산 거래, 가족자산 관리를 위한<br/>
|
||||
통합 솔루션을 제공합니다.
|
||||
</p>
|
||||
<div class="d-flex gap-3 flex-wrap">
|
||||
<a href="/taxbaik/contact" class="btn btn-primary btn-lg">무료 상담 신청</a>
|
||||
<a href="javascript:void(0);" class="btn btn-outline-primary btn-lg" onclick="openKakao()" style="border-color: white; color: white;">
|
||||
💬 카카오 채널 문의
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-5 d-none d-lg-block text-center">
|
||||
<div style="font-size: 120px; opacity: 0.15;">📋</div>
|
||||
@* ─── 공지사항 배너 (관리자 등록 공지) ─── *@
|
||||
@if (Model.ActiveAnnouncements.Count > 0)
|
||||
{
|
||||
foreach (var notice in Model.ActiveAnnouncements)
|
||||
{
|
||||
<div class="announcement-bar announcement-bar--@notice.DisplayType">
|
||||
<div class="container d-flex align-items-center gap-2 py-2">
|
||||
<span class="announcement-icon">
|
||||
@if (notice.DisplayType == "urgent") { <text>🚨</text> }
|
||||
else if (notice.DisplayType == "banner") { <text>📢</text> }
|
||||
else { <text>ℹ️</text> }
|
||||
</span>
|
||||
<span class="announcement-text fw-semibold">@notice.Title</span>
|
||||
@if (!string.IsNullOrEmpty(notice.Content))
|
||||
{
|
||||
<span class="d-none d-md-inline text-muted small ms-2">— @notice.Content</span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
}
|
||||
}
|
||||
|
||||
@* ─── Hero Section ─── *@
|
||||
@if (season != null)
|
||||
{
|
||||
<section class="hero-section hero-section--seasonal text-white pt-5 pb-4">
|
||||
<div class="container">
|
||||
<div class="row align-items-center py-4">
|
||||
<div class="col-lg-7">
|
||||
<span class="badge bg-danger-badge mb-3 fs-6 px-3 py-2">
|
||||
@season.UrgencyBadge
|
||||
</span>
|
||||
<h1 class="mb-3" style="white-space: pre-line;">@season.HeroHeadline</h1>
|
||||
<p class="fs-5 mb-4" style="line-height: 1.8; opacity: 0.95;">
|
||||
@season.HeroSubtext
|
||||
</p>
|
||||
<div class="d-flex gap-3 flex-wrap">
|
||||
<a href="/taxbaik/contact" class="btn btn-warning btn-lg fw-bold">
|
||||
⏰ @season.CtaText
|
||||
</a>
|
||||
<a href="javascript:void(0);" class="btn btn-outline-primary btn-lg"
|
||||
onclick="openKakao()" style="border-color: white; color: white;">
|
||||
💬 카카오 채널 문의
|
||||
</a>
|
||||
</div>
|
||||
@if (season.DaysUntilDeadline <= 7)
|
||||
{
|
||||
<p class="mt-3 small" style="opacity: 0.8;">
|
||||
마감까지 <strong>@(season.DaysUntilDeadline)일</strong> 남았습니다.
|
||||
지금 바로 상담 신청하세요.
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
<div class="col-lg-5 d-none d-lg-block text-center">
|
||||
<div class="seasonal-deadline-badge">
|
||||
<div class="deadline-label">마감</div>
|
||||
<div class="deadline-date">@season.Deadline.ToString("M월 d일")</div>
|
||||
<div class="deadline-days">D-@season.DaysUntilDeadline</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
}
|
||||
else
|
||||
{
|
||||
<section class="hero-section text-white pt-5 pb-4">
|
||||
<div class="container">
|
||||
<div class="row align-items-center py-4">
|
||||
<div class="col-lg-7">
|
||||
<span class="badge bg-primary-badge mb-3">경험 있는 세무사의 맞춤 전략</span>
|
||||
<h1 class="mb-3">
|
||||
세금과 자산<br/>
|
||||
<span style="color: #E8E4D8;">한 번에 해결하는</span>
|
||||
</h1>
|
||||
<p class="fs-5 mb-4" style="line-height: 1.8; opacity: 0.95;">
|
||||
사업자 세무, 부동산 거래, 가족자산 관리를 위한<br/>
|
||||
통합 솔루션을 제공합니다.
|
||||
</p>
|
||||
<div class="d-flex gap-3 flex-wrap">
|
||||
<a href="/taxbaik/contact" class="btn btn-primary btn-lg">무료 상담 신청</a>
|
||||
<a href="javascript:void(0);" class="btn btn-outline-primary btn-lg"
|
||||
onclick="openKakao()" style="border-color: white; color: white;">
|
||||
💬 카카오 채널 문의
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-5 d-none d-lg-block text-center">
|
||||
<div style="font-size: 120px; opacity: 0.15;">📋</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
}
|
||||
|
||||
<!-- 신뢰도 스트립 — 자격과 경험 -->
|
||||
<section class="trust-strip">
|
||||
@@ -62,7 +132,7 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 서비스 영역 — 전문성 강조 -->
|
||||
<!-- 서비스 영역 -->
|
||||
<section class="py-5">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
@@ -72,66 +142,88 @@
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@{
|
||||
var focusService = season?.FocusService ?? "";
|
||||
// 시즌에 따라 서비스 카드 순서 결정: 시즌 관련 카드가 맨 앞
|
||||
var cardOrder = focusService switch
|
||||
{
|
||||
"real-estate-tax" => new[] { "real-estate-tax", "business-tax", "family-asset" },
|
||||
"family-asset" => new[] { "family-asset", "business-tax", "real-estate-tax" },
|
||||
_ => new[] { "business-tax", "real-estate-tax", "family-asset" }
|
||||
};
|
||||
}
|
||||
|
||||
<div class="row g-4">
|
||||
<!-- 사업자 세무 -->
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card service-card h-100">
|
||||
<div class="service-icon">🏪</div>
|
||||
<div class="card-body pt-0">
|
||||
<h3 class="card-title">사업자 세무</h3>
|
||||
<ul class="list-unstyled small mb-3">
|
||||
<li class="mb-2">✓ 정확한 기장 및 결산</li>
|
||||
<li class="mb-2">✓ 세금계산서 관리</li>
|
||||
<li class="mb-2">✓ 경비처리 최적화</li>
|
||||
<li class="mb-2">✓ 절세 전략 수립</li>
|
||||
</ul>
|
||||
<p class="text-muted small">
|
||||
초기부터 세무 전략을 수립하면 연간 최대 수백만 원의 절세가 가능합니다.
|
||||
</p>
|
||||
<a href="/taxbaik/services#business-tax" class="btn btn-sm btn-outline-primary mt-3">자세히 보기</a>
|
||||
@foreach (var cardKey in cardOrder)
|
||||
{
|
||||
var isFeatured = cardKey == focusService;
|
||||
if (cardKey == "business-tax")
|
||||
{
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card service-card h-100 @(isFeatured ? "service-card--featured" : "")">
|
||||
@if (isFeatured) { <div class="service-card-badge">현재 시즌</div> }
|
||||
<div class="service-icon">🏪</div>
|
||||
<div class="card-body pt-0">
|
||||
<h3 class="card-title">사업자 세무</h3>
|
||||
<ul class="list-unstyled small mb-3">
|
||||
<li class="mb-2">✓ 정확한 기장 및 결산</li>
|
||||
<li class="mb-2">✓ 세금계산서 관리</li>
|
||||
<li class="mb-2">✓ 경비처리 최적화</li>
|
||||
<li class="mb-2">✓ 절세 전략 수립</li>
|
||||
</ul>
|
||||
<p class="text-muted small">
|
||||
초기부터 세무 전략을 수립하면 연간 최대 수백만 원의 절세가 가능합니다.
|
||||
</p>
|
||||
<a href="/taxbaik/services#business-tax" class="btn btn-sm btn-outline-primary mt-3">자세히 보기</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 부동산 세금 -->
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card service-card h-100">
|
||||
<div class="service-icon">🏠</div>
|
||||
<div class="card-body pt-0">
|
||||
<h3 class="card-title">부동산 세금</h3>
|
||||
<ul class="list-unstyled small mb-3">
|
||||
<li class="mb-2">✓ 양도세 최소화</li>
|
||||
<li class="mb-2">✓ 취득세 절감</li>
|
||||
<li class="mb-2">✓ 임대소득 관리</li>
|
||||
<li class="mb-2">✓ 다주택자 세무</li>
|
||||
</ul>
|
||||
<p class="text-muted small">
|
||||
부동산 거래 시 미리 상담하면 세금 부담을 크게 줄일 수 있습니다.
|
||||
</p>
|
||||
<a href="/taxbaik/services#real-estate-tax" class="btn btn-sm btn-outline-primary mt-3">자세히 보기</a>
|
||||
}
|
||||
else if (cardKey == "real-estate-tax")
|
||||
{
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card service-card h-100 @(isFeatured ? "service-card--featured" : "")">
|
||||
@if (isFeatured) { <div class="service-card-badge">현재 시즌</div> }
|
||||
<div class="service-icon">🏠</div>
|
||||
<div class="card-body pt-0">
|
||||
<h3 class="card-title">부동산 세금</h3>
|
||||
<ul class="list-unstyled small mb-3">
|
||||
<li class="mb-2">✓ 양도세 최소화</li>
|
||||
<li class="mb-2">✓ 취득세 절감</li>
|
||||
<li class="mb-2">✓ 임대소득 관리</li>
|
||||
<li class="mb-2">✓ 다주택자 세무</li>
|
||||
</ul>
|
||||
<p class="text-muted small">
|
||||
부동산 거래 시 미리 상담하면 세금 부담을 크게 줄일 수 있습니다.
|
||||
</p>
|
||||
<a href="/taxbaik/services#real-estate-tax" class="btn btn-sm btn-outline-primary mt-3">자세히 보기</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 가족자산 & 증여 -->
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card service-card h-100">
|
||||
<div class="service-icon">👨👩👧👦</div>
|
||||
<div class="card-body pt-0">
|
||||
<h3 class="card-title">가족자산 관리</h3>
|
||||
<ul class="list-unstyled small mb-3">
|
||||
<li class="mb-2">✓ 증여세 전략</li>
|
||||
<li class="mb-2">✓ 상속세 대비</li>
|
||||
<li class="mb-2">✓ 자산 이전 계획</li>
|
||||
<li class="mb-2">✓ 가족법인 설립</li>
|
||||
</ul>
|
||||
<p class="text-muted small">
|
||||
세대 이전 전에 사전 계획하면 세금 부담을 현저히 줄일 수 있습니다.
|
||||
</p>
|
||||
<a href="/taxbaik/services#family-asset" class="btn btn-sm btn-outline-primary mt-3">자세히 보기</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card service-card h-100 @(isFeatured ? "service-card--featured" : "")">
|
||||
@if (isFeatured) { <div class="service-card-badge">현재 시즌</div> }
|
||||
<div class="service-icon">👨👩👧👦</div>
|
||||
<div class="card-body pt-0">
|
||||
<h3 class="card-title">가족자산 관리</h3>
|
||||
<ul class="list-unstyled small mb-3">
|
||||
<li class="mb-2">✓ 증여세 전략</li>
|
||||
<li class="mb-2">✓ 상속세 대비</li>
|
||||
<li class="mb-2">✓ 자산 이전 계획</li>
|
||||
<li class="mb-2">✓ 가족법인 설립</li>
|
||||
</ul>
|
||||
<p class="text-muted small">
|
||||
세대 이전 전에 사전 계획하면 세금 부담을 현저히 줄일 수 있습니다.
|
||||
</p>
|
||||
<a href="/taxbaik/services#family-asset" class="btn btn-sm btn-outline-primary mt-3">자세히 보기</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -214,17 +306,32 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 최종 CTA — 강렬한 다크 배경 -->
|
||||
<!-- 최종 CTA -->
|
||||
<section class="py-5" style="background: linear-gradient(135deg, #2E5C4E 0%, #1F3A30 100%); color: white;">
|
||||
<div class="container text-center">
|
||||
<h2 class="mb-3 fw-bold" style="font-size: 2.5rem;">세금 고민은 이제 끝!</h2>
|
||||
<p class="fs-5 mb-5" style="opacity: 0.95; max-width: 500px; margin-left: auto; margin-right: auto;">
|
||||
무료 상담으로 현재 상황을 진단하고<br/>
|
||||
맞춤형 절세 전략을 받아보세요.
|
||||
</p>
|
||||
<div class="d-flex gap-3 justify-content-center flex-wrap">
|
||||
<a href="/taxbaik/contact" class="btn btn-warning btn-lg">상담 신청하기</a>
|
||||
<a href="javascript:void(0);" onclick="openKakao()" class="btn btn-light btn-lg">카카오로 문의</a>
|
||||
</div>
|
||||
@if (season != null)
|
||||
{
|
||||
<h2 class="mb-3 fw-bold" style="font-size: 2.5rem;">@season.Name 마감이 다가옵니다!</h2>
|
||||
<p class="fs-5 mb-5" style="opacity: 0.95; max-width: 500px; margin-left: auto; margin-right: auto;">
|
||||
마감 <strong>D-@(season.DaysUntilDeadline)일</strong> — 지금 바로 상담을 신청하세요.<br/>
|
||||
빠른 검토로 불이익 없이 신고를 완료합니다.
|
||||
</p>
|
||||
<div class="d-flex gap-3 justify-content-center flex-wrap">
|
||||
<a href="/taxbaik/contact" class="btn btn-warning btn-lg">⏰ @season.CtaText</a>
|
||||
<a href="javascript:void(0);" onclick="openKakao()" class="btn btn-light btn-lg">카카오로 문의</a>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<h2 class="mb-3 fw-bold" style="font-size: 2.5rem;">세금 고민은 이제 끝!</h2>
|
||||
<p class="fs-5 mb-5" style="opacity: 0.95; max-width: 500px; margin-left: auto; margin-right: auto;">
|
||||
무료 상담으로 현재 상황을 진단하고<br/>
|
||||
맞춤형 절세 전략을 받아보세요.
|
||||
</p>
|
||||
<div class="d-flex gap-3 justify-content-center flex-wrap">
|
||||
<a href="/taxbaik/contact" class="btn btn-warning btn-lg">상담 신청하기</a>
|
||||
<a href="javascript:void(0);" onclick="openKakao()" class="btn btn-light btn-lg">카카오로 문의</a>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user