.partner-renewal {
	--partner-primary: #2563eb;
	--partner-primary-dark: #1746a2;
	--partner-navy: #132238;
	--partner-text: #334155;
	--partner-muted: #64748b;
	--partner-border: #e2e8f0;
	--partner-surface: #f6f8fc;
	color: var(--partner-text);
}

.partner-renewal .partner-renewal-container {
	width: min(100%, 1320px);
	margin: 0 auto;
	padding: 32px 24px 96px;
}

.partner-renewal .partner-hero {
	display: flex;
	min-height: 330px;
	align-items: flex-end;
	justify-content: space-between;
	gap: 48px;
	padding: 58px 64px;
	border: 1px solid #dce6f5;
	border-radius: 26px;
	background:
		radial-gradient(circle at 86% 15%, rgba(96, 165, 250, .2), transparent 31%),
		linear-gradient(135deg, #f8fbff 0%, #edf4ff 100%);
}

.partner-renewal .partner-kicker,
.partner-renewal .partner-section-label {
	display: block;
	margin-bottom: 10px;
	color: var(--partner-primary);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.partner-renewal .partner-hero h1 {
	margin: 0;
	color: var(--partner-navy);
	font-size: clamp(36px, 4.2vw, 56px);
	font-weight: 900;
	line-height: 1.18;
	letter-spacing: -.045em;
}

.partner-renewal .partner-hero-copy > p {
	max-width: 610px;
	margin: 20px 0 0;
	color: var(--partner-muted);
	font-size: 17px;
	line-height: 1.75;
	word-break: keep-all;
}

.partner-renewal .partner-hero-side {
	display: flex;
	flex: 0 0 auto;
	align-items: flex-end;
	gap: 18px;
}

.partner-renewal .partner-count {
	display: flex;
	min-width: 150px;
	flex-direction: column;
	padding: 18px 20px;
	border: 1px solid rgba(37, 99, 235, .16);
	border-radius: 16px;
	background: rgba(255, 255, 255, .82);
}

.partner-renewal .partner-count strong {
	color: var(--partner-primary-dark);
	font-size: 30px;
	font-weight: 900;
	line-height: 1;
}

.partner-renewal .partner-count span {
	margin-top: 7px;
	color: var(--partner-muted);
	font-size: 13px;
	font-weight: 700;
}

.partner-renewal .partner-register-button {
	display: inline-flex;
	min-height: 52px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0 22px;
	border: 0;
	border-radius: 12px;
	background: var(--partner-primary);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	transition: background .2s ease, transform .2s ease;
}

.partner-renewal .partner-register-button:hover {
	transform: translateY(-2px);
	background: var(--partner-primary-dark);
}

.partner-renewal .partner-section {
	margin-top: 78px;
}

.partner-renewal .partner-section-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 28px;
}

.partner-renewal .partner-section-header h2 {
	margin: 0;
	color: var(--partner-navy);
	font-size: clamp(26px, 3vw, 34px);
	font-weight: 900;
	letter-spacing: -.035em;
}

.partner-renewal .partner-section-header > p {
	max-width: 430px;
	margin: 0;
	color: var(--partner-muted);
	font-size: 14px;
	line-height: 1.7;
	text-align: right;
	word-break: keep-all;
}

.partner-renewal .partner-featured-grid {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
	gap: 20px;
}

.partner-renewal .partner-featured-grid > :only-child {
	grid-column: 1 / -1;
}

.partner-renewal .partner-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.partner-renewal .partner-story-card {
	position: relative;
	display: block;
	overflow: hidden;
	border: 1px solid var(--partner-border);
	border-radius: 20px;
	background: #fff;
	color: inherit;
	cursor: pointer;
	text-decoration: none;
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.partner-renewal .partner-story-card:hover {
	transform: translateY(-4px);
	border-color: #a9c0e8;
	box-shadow: 0 16px 34px rgba(30, 64, 120, .11);
}

.partner-renewal .partner-story-card:focus-visible,
.partner-renewal .partner-register-button:focus-visible {
	outline: 3px solid rgba(37, 99, 235, .32);
	outline-offset: 4px;
}

.partner-renewal .partner-featured-card {
	min-height: 430px;
	display: flex;
	align-items: flex-end;
}

.partner-renewal .partner-card-media {
	overflow: hidden;
	background: #e9eef6;
}

.partner-renewal .partner-featured-card .partner-card-media {
	position: absolute;
	inset: 0;
}

.partner-renewal .partner-featured-card .partner-card-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(9, 20, 38, .04) 20%, rgba(9, 20, 38, .92) 100%);
}

.partner-renewal .partner-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

.partner-renewal .partner-story-card:hover .partner-card-media img {
	transform: scale(1.025);
}

.partner-renewal .partner-card-content {
	position: relative;
	z-index: 1;
}

.partner-renewal .partner-featured-card .partner-card-content {
	width: 100%;
	padding: 34px;
	color: #fff;
}

.partner-renewal .partner-card-badge {
	display: inline-flex;
	align-items: center;
	padding: 5px 9px;
	border-radius: 7px;
	background: #eaf1ff;
	color: var(--partner-primary-dark);
	font-size: 11px;
	font-weight: 900;
}

.partner-renewal .partner-featured-card .partner-card-badge {
	background: rgba(255, 255, 255, .17);
	color: #fff;
}

.partner-renewal .partner-story-card h3 {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.partner-renewal .partner-featured-card h3 {
	max-width: 720px;
	margin: 14px 0 0;
	color: #fff;
	font-size: 29px;
	font-weight: 900;
	line-height: 1.35;
	letter-spacing: -.03em;
}

.partner-renewal .partner-featured-card:not(.partner-featured-card-primary) h3 {
	font-size: 23px;
}

.partner-renewal .partner-featured-card p {
	display: -webkit-box;
	max-width: 650px;
	margin: 10px 0 0;
	overflow: hidden;
	color: #dce6f4;
	font-size: 14px;
	line-height: 1.65;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.partner-renewal .partner-card-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 22px;
	font-size: 12px;
}

.partner-renewal .partner-featured-card .partner-card-meta {
	color: #e2e8f0;
}

.partner-renewal .partner-list-card {
	display: flex;
	min-height: 100%;
	flex-direction: column;
}

.partner-renewal .partner-list-card .partner-card-media {
	aspect-ratio: 16 / 10;
}

.partner-renewal .partner-list-card .partner-card-content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 24px;
}

.partner-renewal .partner-list-card h3 {
	margin: 14px 0 0;
	color: var(--partner-navy);
	font-size: 19px;
	font-weight: 900;
	line-height: 1.45;
	letter-spacing: -.02em;
}

.partner-renewal .partner-list-card p {
	display: -webkit-box;
	margin: 10px 0 0;
	overflow: hidden;
	color: var(--partner-muted);
	font-size: 13px;
	line-height: 1.65;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.partner-renewal .partner-list-card .partner-card-meta {
	margin-top: auto;
	padding-top: 24px;
	color: var(--partner-muted);
}

.partner-renewal .partner-empty {
	margin-top: 64px;
	padding: 80px 24px;
	border: 1px dashed #cbd5e1;
	border-radius: 20px;
	background: var(--partner-surface);
	text-align: center;
}

.partner-renewal .partner-empty i {
	display: block;
	margin-bottom: 14px;
	color: #94a3b8;
	font-size: 42px;
}

.partner-renewal .partner-empty strong {
	color: var(--partner-navy);
	font-size: 19px;
}

.partner-renewal .partner-empty p {
	margin: 8px 0 0;
	color: var(--partner-muted);
}

@media (max-width: 991.98px) {
	.partner-renewal .partner-hero {
		min-height: auto;
		align-items: flex-start;
		flex-direction: column;
		padding: 48px 40px;
	}

	.partner-renewal .partner-featured-grid {
		grid-template-columns: 1fr 1fr;
	}

	.partner-renewal .partner-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.partner-renewal .partner-renewal-container {
		padding: 20px 16px 72px;
	}

	.partner-renewal .partner-hero {
		gap: 30px;
		padding: 38px 24px;
		border-radius: 20px;
	}

	.partner-renewal .partner-hero h1 {
		font-size: 34px;
	}

	.partner-renewal .partner-hero-copy > p {
		font-size: 15px;
	}

	.partner-renewal .partner-hero-side {
		width: 100%;
		align-items: stretch;
		flex-direction: column;
	}

	.partner-renewal .partner-register-button {
		width: 100%;
	}

	.partner-renewal .partner-section {
		margin-top: 60px;
	}

	.partner-renewal .partner-section-header {
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

	.partner-renewal .partner-section-header > p {
		text-align: left;
	}

	.partner-renewal .partner-featured-grid,
	.partner-renewal .partner-card-grid {
		grid-template-columns: 1fr;
	}

	.partner-renewal .partner-featured-card {
		min-height: 380px;
	}

	.partner-renewal .partner-featured-card .partner-card-content {
		padding: 26px 22px;
	}

	.partner-renewal .partner-featured-card h3,
	.partner-renewal .partner-featured-card:not(.partner-featured-card-primary) h3 {
		font-size: 23px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.partner-renewal .partner-story-card,
	.partner-renewal .partner-card-media img,
	.partner-renewal .partner-register-button {
		transition: none;
	}
}

/* Shared partner detail and editor surfaces */
.partner-renewal .partner-detail-container,
.partner-renewal .partner-editor-container {
	box-sizing: border-box;
	width: min(100%, 1180px);
	min-width: 0;
	margin: 0 auto;
	padding: 42px 24px 96px;
}

.partner-renewal .partner-page-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 28px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--partner-border);
}

.partner-renewal .partner-page-heading h4 {
	margin: 0 0 9px;
	color: var(--partner-navy);
	font-size: clamp(28px, 3vw, 38px) !important;
	font-weight: 900;
	line-height: 1.28;
	letter-spacing: -.035em;
}

.partner-renewal .partner-page-heading .breadcrumb { margin: 0; }
.partner-renewal .partner-page-heading .breadcrumb-item,
.partner-renewal .partner-page-heading .breadcrumb-item.active {
	color: var(--partner-text);
	font-size: 13px;
	font-weight: 700;
}

.partner-detail-renewal .partner-detail-card,
.partner-editor-renewal .partner-editor-card {
	overflow: hidden;
	border: 1px solid var(--partner-border);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 18px 46px rgba(15, 35, 68, .07);
}

.partner-detail-renewal .partner-detail-card > .position-relative,
.partner-editor-renewal .partner-editor-card > .position-relative {
	min-height: 360px;
	background: #e9eef6;
}

.partner-detail-renewal #backgroundImg,
.partner-editor-renewal #background-img {
	display: block;
	width: 100%;
	height: 360px !important;
	object-fit: cover;
}

.partner-detail-renewal .partner-detail-time {
	position: absolute;
	right: 24px;
	bottom: 24px;
	padding: 8px 12px;
	border: 1px solid rgba(255, 255, 255, .46);
	border-radius: 8px;
	background: rgba(15, 35, 68, .74);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	backdrop-filter: blur(8px);
}

.partner-detail-renewal .partner-detail-card > .card-body,
.partner-editor-renewal .partner-editor-card > .card-body {
	padding: 30px 38px !important;
	border-color: var(--partner-border) !important;
}

.partner-detail-renewal .partner-detail-card h2 {
	margin: 0 0 12px !important;
	color: var(--partner-navy);
	font-size: clamp(28px, 3.6vw, 42px) !important;
	font-weight: 900 !important;
	line-height: 1.3;
	letter-spacing: -.04em;
}

.partner-detail-renewal [id$="-tag"] {
	min-height: auto;
	padding: 0 0 18px !important;
	color: var(--partner-text) !important;
	font-size: 16px !important;
	line-height: 1.7;
}

.partner-detail-renewal .d-flex.align-items-center.gap-4 {
	color: var(--partner-text);
	font-weight: 700;
}

.partner-detail-renewal [id$="-content"] {
	min-height: 420px !important;
	color: #1e293b;
	font-size: 16px;
	line-height: 1.85;
}

.partner-renewal #attachmentSection,
.partner-editor-renewal .table-responsive { text-align: left !important; }
.partner-renewal #filePreviewTable { border-color: var(--partner-border); }
.partner-renewal #filePreviewTable th,
.partner-renewal #filePreviewTable td,
.partner-renewal #filePreviewTable h6 { color: #1e293b !important; }

.partner-renewal .partner-page-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	gap: 10px;
	padding: 28px 0 8px;
}

.partner-renewal .partner-page-actions .btn {
	min-width: 112px;
	min-height: 46px;
	margin: 0 !important;
	border: 0;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 800;
}

.partner-renewal .partner-page-actions .btn-info,
.partner-renewal .partner-page-actions .btn-success { background: var(--partner-primary); color: #fff; }
.partner-renewal .partner-page-actions .btn-dark { background: #e8eef7; color: var(--partner-navy); }
.partner-renewal .partner-page-actions .btn-danger { background: #fff0f0; color: #b42318; }

.partner-editor-renewal .partner-editor-heading::before {
	content: "Partner Studio";
	position: absolute;
	top: 0;
	left: 0;
	color: var(--partner-primary);
	font-size: 12px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.partner-editor-renewal .partner-editor-heading {
	position: relative;
	padding-top: 28px;
}

.partner-editor-renewal .partner-editor-banner {
	position: relative;
}

.partner-editor-renewal .partner-banner-edit-button {
	position: absolute;
	z-index: 2;
	top: 20px;
	right: 20px;
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 0 15px;
	border: 1px solid rgba(255, 255, 255, .58);
	border-radius: 10px;
	background: rgba(15, 35, 68, .8) !important;
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	cursor: pointer;
	backdrop-filter: blur(8px);
	box-shadow: 0 8px 20px rgba(15, 35, 68, .18);
}

.partner-editor-renewal .partner-banner-edit-button:hover {
	background: rgba(15, 35, 68, .94) !important;
}

.partner-editor-renewal .partner-banner-edit-button:focus-visible {
	outline: 3px solid rgba(255, 255, 255, .78);
	outline-offset: 3px;
}

.partner-editor-renewal #banner-edit-btn:not(.partner-banner-edit-button) {
	right: 24px !important;
	bottom: 24px !important;
	margin: 0 !important;
	padding: 10px 15px;
	border: 1px solid rgba(255, 255, 255, .58);
	border-radius: 9px;
	background: rgba(15, 35, 68, .8) !important;
	color: #fff;
	cursor: pointer;
	backdrop-filter: blur(8px);
}

.partner-editor-renewal .form-floating > .form-control {
	height: 58px;
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	background: #fff;
	color: #172033;
	font-weight: 700;
}

.partner-editor-renewal .form-floating > label { color: #475569; font-weight: 700; }
.partner-editor-renewal #toast-editor { border-radius: 12px; }
.partner-editor-renewal .toastui-editor-defaultUI {
	overflow: hidden;
	border-color: #cbd5e1;
	border-radius: 12px;
}

.partner-editor-renewal .btn-info {
	border: 0;
	border-radius: 9px;
	background: #eaf1ff;
	color: var(--partner-primary-dark);
	font-weight: 800;
}

@media (max-width: 767.98px) {
	.partner-renewal .partner-detail-container,
	.partner-renewal .partner-editor-container { padding: 24px 16px 72px; }
	.partner-renewal .partner-page-heading { align-items: flex-start; padding-bottom: 18px; }
	.partner-detail-renewal .partner-detail-card > .position-relative,
	.partner-editor-renewal .partner-editor-card > .position-relative,
	.partner-detail-renewal #backgroundImg,
	.partner-editor-renewal #background-img { min-height: 230px; height: 230px !important; }
	.partner-detail-renewal .partner-detail-card > .card-body,
	.partner-editor-renewal .partner-editor-card > .card-body { padding: 24px 20px !important; }
	.partner-editor-renewal .partner-banner-edit-button { top: 12px; right: 12px; min-height: 44px; padding: 0 13px; }
	.partner-renewal .partner-page-actions { flex-wrap: wrap; }
	.partner-renewal .partner-page-actions .btn { min-width: 0; flex: 1 1 120px; }
	.partner-renewal .partner-file-heading { align-items: flex-start; flex-direction: column; }
}

/* ── 첨부파일 컴포넌트 ─────────────────────────────────── */
.partner-renewal .partner-file-section {
	padding: 24px;
}

.partner-renewal .partner-file-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.partner-renewal .partner-file-heading .partner-file-title {
	margin: 0 0 4px;
	font-size: 14px;
	font-weight: 800;
	color: var(--partner-navy);
}

.partner-renewal .partner-file-heading .partner-file-hint {
	margin: 0;
	font-size: 12px;
	color: var(--partner-muted);
}

.partner-renewal .partner-upload-button {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	gap: 7px;
	padding: 0 14px;
	border: 1px solid var(--partner-primary);
	border-radius: 9px;
	background: #fff;
	color: var(--partner-primary-dark);
	font-size: 12px;
	font-weight: 800;
	white-space: nowrap;
}

.partner-renewal .partner-file-table {
	overflow-x: auto;
	border: 1px solid var(--partner-border);
	border-radius: 12px;
}

.partner-renewal .partner-file-table table {
	width: 100%;
	min-width: 480px;
	border-collapse: collapse;
}

.partner-renewal .partner-file-table th {
	padding: 13px 16px;
	border-bottom: 1px solid var(--partner-border);
	background: var(--partner-surface);
	color: var(--partner-muted);
	font-size: 11px;
	font-weight: 800;
	text-align: left;
}

.partner-renewal .partner-file-table th:not(:first-child),
.partner-renewal .partner-file-table td:not(:first-child) {
	text-align: center;
}

.partner-renewal .partner-file-table td {
	padding: 15px 16px;
	border-bottom: 1px solid var(--partner-border);
	color: var(--partner-text);
	font-size: 13px;
	font-weight: 600;
}

.partner-renewal .partner-file-table tbody tr:last-child td {
	border-bottom: 0;
}

.partner-renewal .partner-file-table .no-file-row td {
	padding: 30px 16px;
	color: var(--partner-muted);
	text-align: center;
}

.partner-renewal .partner-file-table .btn {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid var(--partner-border);
	border-radius: 8px;
	background: #fff;
	color: var(--partner-muted);
}

.partner-renewal .partner-logo-editor {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 8px;
}

.partner-renewal .partner-logo-preview {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 112px;
	height: 112px;
	overflow: hidden;
	border: 1px solid var(--partner-border);
	border-radius: 8px;
	background: var(--partner-surface);
	color: var(--partner-primary-dark);
	font-size: 22px;
	font-weight: 900;
}

.partner-renewal .partner-logo-preview img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #fff;
}
