/* ══════════════════════════════════════════════════════════
   COMPLIANCE ASSESSMENT PLATFORM — PAGE STYLES
══════════════════════════════════════════════════════════ */

/* ── CONTENT WRAPPER ────────────────────────────────────── */
.cap-content {
	padding: 50px 0 80px;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

/* ── HERO SECTION ───────────────────────────────────────── */
.cap-hero {
	display: flex;
	gap: 40px;
	align-items: flex-start;
}

.cap-hero-left {
	flex: 1;
	min-width: 0;
}

.cap-title {
	font-size: 40px;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -0.5px;
	color: var(--dark);
	margin-top: 8px;
	margin-bottom: 16px;
}

.cap-desc {
	font-size: 16px;
	color: var(--gray);
	line-height: 24px;
	margin-bottom: 12px;
	max-width: 680px;
}

.cap-note {
	font-size: 13px;
	color: var(--gray);
	line-height: 20px;
	max-width: 680px;
}

/* ── STEP 1 CARD ────────────────────────────────────────── */
.cap-step-card {
	width: 340px;
	flex-shrink: 0;
	border: 1.5px solid var(--border);
	border-radius: 16px;
	padding: 20px 24px 20px;
	background: #F1F5FB;
}

.cap-step-header {
	display: flex;
	justify-content: start;
	margin-bottom: 14px;
}

.cap-step-num {
	font-size: 12px;
	font-weight: 500;
	color: var(--blue);
	background: var(--blue-light);
	border-radius: 100px;
}

.cap-step-title {
	font-size: 18px;
	font-weight: 600;
	color: var(--dark);
	margin-bottom: 8px;
	line-height: 26px;
}

.cap-step-desc {
	font-size: 14px;
	color: var(--gray);
	line-height: 20px;
	margin-bottom: 0;
}

.cap-step-nav {
	display: flex;
	align-items: center;
	gap: 0;
	border-top: 1px solid var(--border);
	padding-top: 16px;
	margin-top: 20px;
}

.cap-nav-btn {
	width: 36px;
	height: 36px;
	border-radius: 8px;
	border: 1.5px solid var(--border);
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--gray);
	flex-shrink: 0;
	transition: background 0.15s, border-color 0.15s;
}

.cap-nav-btn:hover {
	background: var(--bg-light);
}

.cap-nav-btn--active {
	background: var(--blue);
	border-color: var(--blue);
	color: #fff;
}

.cap-nav-btn--active:hover {
	background: var(--blue);
	opacity: 0.88;
}

.cap-nav-count {
	flex: 1;
	text-align: center;
	font-size: 14px;
	color: var(--gray);
}

/* ── TOOLS GRID ─────────────────────────────────────────── */
.cap-tools-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.cap-tool-card {
	border: 1px solid #D2D9E4;
	border-radius: 16px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.cap-tool-card:nth-child(1) {
	background-image: linear-gradient( 215deg, hsl(214deg 83% 46%) 0%, hsl(214deg 83% 57%) -1%, hsl(214deg 83% 68%) -2%, hsl(213.8, 100%, 89.2%) -1%, hsl(215deg 82% 89%) 2%, hsl(0deg 0% 100%) 28% );
}

/* Card header: icon + badge */
.cap-tool-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.cap-tool-icon {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.cap-tool-icon svg {
	width: 20px;
	height: 20px;
	color: var(--gray);
}

.cap-tool-badge {
	font-size: 12px;
	font-weight: 500;
	color: var(--gray);
	background: #fff;
	border: 1.5px solid var(--border);
	padding: 3px 14px;
	border-radius: 100px;
}

/* Card text */
.cap-tool-title {
	font-size: 22px;
	font-weight: 500;
	color: var(--dark);
	margin: 0 0 4px;
	line-height: 1.2;
}

.cap-tool-subtitle {
	font-size: 14px;
	color: var(--gray);
	line-height: 20px;
	margin: 0;
}

/* Quiz row */
.cap-quiz-row {
	display: flex;
	align-items: center;
	gap: 8px;
}

.cap-quiz-tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: #696C71;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 500;
}

.cap-quiz-sep {
	font-size: 14px;
	color: #696C71;
}

.cap-quiz-meta {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 16px;
	color: var(--gray);
}

.cap-quiz-meta span {
	color: #131314;
}

.cap-quiz-meta svg {
	flex-shrink: 0;
	color: var(--gray);
}

/* Standard dropdown */
.cap-standard {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.cap-standard-label {
	font-size: 18px;
	font-weight: 500;
	color: #131314;
}

.cap-select-wrap {
	position: relative;
}

.cap-select-wrap select {
	width: 100%;
	padding: 9px 36px 9px 12px;
	border: 1.5px solid var(--border);
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	color: var(--dark);
	background: #fff;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	outline: none;
}

.cap-select-wrap select:focus {
	border-color: var(--blue);
}

.cap-select-chevron {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--gray);
	pointer-events: none;
}

/* Feature list */
.cap-features {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cap-features li {
	font-size: 14px;
	color: var(--dark);
	padding-left: 20px;
	position: relative;
	line-height: 20px;
}

.cap-features li::before {
	content: '';
	position: absolute;
	top: 5px;
	left: 0;
	width: 15px;
	height: 11px;
	background-image: url('/images/checkgreen.svg');
	background-size: contain;
	background-repeat: no-repeat;
}

/* Tip box */
.cap-tip {
	background: #e8f0fe;
	border-radius: 10px;
	padding: 12px 16px;
}

.cap-tip p {
	font-size: 13px;
	color: #4a5568;
	line-height: 18px;
	margin: 0;
}

/* Tool action row */
.cap-tool-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 16px;
	border-top: 1px solid var(--border);
	margin-top: auto;
}

.cap-link {
	flex: 1;
	text-align: center;
	font-size: 15px;
	font-weight: 500;
	color: var(--blue);
	border: 1px solid #D2D9E4;
	padding: 15px 0;
	width: 50%;
	border-radius: 10px;
}

.cap-tool-btn {
	font-size: 14px;
	padding: 15px 0;
	white-space: nowrap;
	width: 50%;
}

/* ══════════════════════════════════════════════════════════
   STEP VIEWS — show/hide + transition
══════════════════════════════════════════════════════════ */
.cap-step-view {
	display: none;
}

.cap-step-view.active {
	display: block;
	animation: capFadeIn 0.22s ease;
}

@keyframes capFadeIn {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Disabled nav button */
.cap-nav-btn--disabled {
	opacity: 0.35;
	cursor: not-allowed;
	pointer-events: none;
}

/* ── STEP 2: Scope form ────────────────────────────────── */
.cap-scope-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 20px;
}

.cap-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.cap-scope-form .form-group label,
.cap-scope-form label {
	font-size: 14px;
	font-weight: 500;
	color: var(--dark);
}

.cap-scope-form input,
.cap-scope-form select {
	padding: 10px 14px;
	border: 1.5px solid var(--border);
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	color: var(--dark);
	background: #fff;
	outline: none;
	transition: border-color 0.15s;
	width: 100%;
}

.cap-scope-form input:focus,
.cap-scope-form select:focus {
	border-color: var(--blue);
}

.cap-textarea {
	width: 100%;
	padding: 10px 14px;
	border: 1.5px solid var(--border);
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	color: var(--dark);
	background: #fff;
	outline: none;
	resize: vertical;
	min-height: 84px;
	transition: border-color 0.15s;
	display: block;
}

.cap-textarea:focus {
	border-color: var(--blue);
}

.cap-textarea::placeholder,
.cap-scope-form input::placeholder {
	color: #bbb;
}

/* ── STEP 3: Progress + questionnaire ──────────────────── */
.cap-progress {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 16px 0 4px;
}

.cap-progress-track {
	flex: 1;
	height: 6px;
	background: var(--bg-light);
	border-radius: 4px;
	overflow: hidden;
}

.cap-progress-fill {
	height: 100%;
	background: var(--blue);
	border-radius: 4px;
	transition: width 0.35s ease;
}

.cap-progress-label {
	font-size: 13px;
	color: var(--gray);
	white-space: nowrap;
}

.cap-questions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 8px;
}

.cap-question {
	background: var(--bg-light);
	border-radius: 10px;
	padding: 16px 18px;
}

.cap-question-text {
	font-size: 14px;
	font-weight: 500;
	color: var(--dark);
	line-height: 20px;
	margin-bottom: 12px;
}

.cap-answer-group {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.cap-answer {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--gray);
	background: #fff;
	border: 1.5px solid var(--border);
	border-radius: 8px;
	padding: 7px 12px;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.cap-answer input[type="radio"] {
	accent-color: var(--blue);
	width: 14px;
	height: 14px;
}

.cap-answer:has(input:checked) {
	border-color: var(--blue);
	background: var(--blue-light);
	color: var(--blue);
}

/* ── STEP 4: Results ───────────────────────────────────── */
.cap-results {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 16px;
}

.cap-score-row {
	display: flex;
	align-items: center;
	gap: 20px;
	background: var(--bg-light);
	border-radius: 14px;
	padding: 20px;
}

.cap-score-circle {
	width: 84px;
	height: 84px;
	border-radius: 50%;
	background: var(--blue);
	display: flex;
	align-items: baseline;
	justify-content: center;
	flex-shrink: 0;
	color: #fff;
	padding-top: 20px;
}

.cap-score-num {
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
}

.cap-score-pct {
	font-size: 14px;
	font-weight: 500;
}

.cap-score-label {
	font-size: 16px;
	font-weight: 600;
	color: var(--dark);
	margin-bottom: 6px;
}

.cap-score-desc {
	font-size: 13px;
	color: var(--gray);
	line-height: 18px;
}

.cap-score-btn {
	font-size: 13px !important;
	padding: 9px 18px !important;
	margin-top: 12px;
	display: inline-flex;
}

.cap-gaps-title {
	font-size: 15px;
	font-weight: 600;
	color: var(--dark);
}

.cap-gap-list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cap-gap-item {
	font-size: 13px;
	line-height: 18px;
	padding: 9px 12px 9px 32px;
	border-radius: 8px;
	position: relative;
}

.cap-gap-item::before {
	content: '';
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	border-radius: 50%;
}

.cap-gap--high   { background: #fee2e2; color: #b91c1c; }
.cap-gap--high::before   { background: #ef4444; }
.cap-gap--medium { background: #fef3c7; color: #92400e; }
.cap-gap--medium::before { background: #f59e0b; }
.cap-gap--low    { background: #dcfce7; color: #15803d; }
.cap-gap--low::before    { background: #22c55e; }

/* ══════════════════════════════════════════════════════════
   RESPONSIVE — TABLET (<=1024px)
══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
    /* Content */
    .cap-content { padding: 32px 0 60px; gap: 32px; }

    /* Hero — stack two panels */
    .cap-hero { flex-direction: column; gap: 24px; }
    .cap-hero-left { width: 100%; }
    .cap-step-card { width: 100%; }
    .cap-title { font-size: 32px; }
    .cap-desc { max-width: 100%; }
    .cap-note { max-width: 100%; }

    /* Tools grid */
    .cap-tools-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
    .cap-tool-card { padding: 20px; gap: 28px; }
    .cap-tool-title { font-size: 20px; }

    /* Tool actions */
    .cap-tool-actions { gap: 10px; }
    .cap-link, .cap-tool-btn { font-size: 14px; padding: 12px 0; }

    /* Nav buttons */
    .cap-nav-btn { width: 32px; height: 32px; }

    /* Form rows */
    .cap-form-row { grid-template-columns: 1fr 1fr; }

    /* Results */
    .cap-score-row { flex-direction: row; gap: 16px; }
}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE (<=600px)
══════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
    /* Content */
    .cap-content { padding: 24px 0 48px; gap: 24px; }

    /* Hero */
    .cap-hero { gap: 20px; }
    .cap-title { font-size: 24px; margin-bottom: 12px; }
    .cap-desc { font-size: 14px; line-height: 22px; }
    .cap-note { font-size: 12px; }

    /* Step card */
    .cap-step-card { padding: 16px 18px; border-radius: 14px; }
    .cap-step-title { font-size: 16px; line-height: 22px; }
    .cap-step-desc { font-size: 13px; }
    .cap-step-nav { padding-top: 12px; margin-top: 14px; }
    .cap-nav-btn { width: 30px; height: 30px; border-radius: 6px; }
    .cap-nav-count { font-size: 13px; }

    /* Tools grid — single column */
    .cap-tools-grid { grid-template-columns: 1fr; gap: 14px; }
    .cap-tool-card { padding: 18px; gap: 20px; }
    .cap-tool-title { font-size: 18px; }
    .cap-tool-subtitle { font-size: 13px; }

    /* Tool actions — stack */
    .cap-tool-actions { flex-direction: column; gap: 8px; }
    .cap-link, .cap-tool-btn { width: 100%; font-size: 14px; padding: 12px 0; }

    /* Quiz row */
    .cap-quiz-row { flex-wrap: wrap; gap: 6px; }
    .cap-quiz-meta { font-size: 14px; }

    /* Standard dropdown */
    .cap-standard-label { font-size: 15px; }

    /* Scope form */
    .cap-form-row { grid-template-columns: 1fr; }
    .cap-scope-form .form-group label,
    .cap-scope-form label { font-size: 13px; }

    /* Progress */
    .cap-progress { gap: 8px; }
    .cap-progress-label { font-size: 12px; }

    /* Questions */
    .cap-question { padding: 14px; border-radius: 8px; }
    .cap-question-text { font-size: 13px; margin-bottom: 10px; }
    .cap-answer-group { gap: 6px; }
    .cap-answer { font-size: 12px; padding: 6px 10px; }

    /* Results */
    .cap-results { gap: 16px; }
    .cap-score-row { flex-direction: column; align-items: center; text-align: center; padding: 16px; }
    .cap-score-circle { width: 72px; height: 72px; }
    .cap-score-num { font-size: 26px; }
    .cap-score-label { font-size: 15px; }
    .cap-score-desc { font-size: 12px; }
    .cap-score-btn { font-size: 12px !important; padding: 8px 14px !important; }

    /* Gaps */
    .cap-gaps-title { font-size: 14px; }
    .cap-gap-item { font-size: 12px; padding: 8px 10px 8px 28px; }
    .cap-gap-item::before { left: 10px; }
}
