/*
Theme Name: Amit Client Profile
Theme URI: https://whoisamitsingh.com/
Author: Amit Singh
Description: A standalone professional CV and client portfolio theme with animated cards, service offerings, and light and dark modes.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: amit-client-profile
*/

:root {
	--page: #f7f7f8;
	--surface: rgba(255, 255, 255, 0.88);
	--surface-strong: #fff;
	--ink: #17191e;
	--muted: #6b7280;
	--line: rgba(23, 25, 30, 0.12);
	--accent: #2d7d5e;
	--accent-bright: #00a873;
	--shadow: 0 24px 70px rgba(23, 25, 30, 0.09);
	--display: "Montserrat", "Inter", ui-sans-serif, system-ui, sans-serif;
	--body: "Inter", ui-sans-serif, system-ui, sans-serif;
	--serif: "Instrument Serif", "Cormorant Garamond", Georgia, serif;
	color-scheme: light;
}

.theme-dark {
	--page: #101310;
	--surface: rgba(24, 29, 26, 0.9);
	--surface-strong: #191e1b;
	--ink: #f4f5f2;
	--muted: #a5ada7;
	--line: rgba(232, 238, 233, 0.14);
	--accent: #65bd92;
	--accent-bright: #52d39a;
	--shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
	color-scheme: dark;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 7rem;
}

body {
	margin: 0;
	background: var(--page);
	color: var(--ink);
	font-family: var(--body);
	font-size: 16px;
	line-height: 1.7;
	transition: background-color 250ms ease, color 250ms ease;
}

body::before {
	position: fixed;
	z-index: 0;
	inset: -18%;
	background:
		radial-gradient(ellipse at 18% 28%, rgba(45, 125, 94, 0.12), transparent 34%),
		radial-gradient(ellipse at 79% 18%, rgba(0, 168, 115, 0.09), transparent 30%),
		radial-gradient(ellipse at 68% 82%, rgba(45, 125, 94, 0.1), transparent 36%),
		linear-gradient(145deg, transparent 46%, rgba(45, 125, 94, 0.04));
	background-size: 130% 130%;
	content: "";
	pointer-events: none;
	animation: ambient-drift 32s ease-in-out infinite alternate;
}

body::after {
	position: fixed;
	z-index: 0;
	inset: 0;
	background-image:
		linear-gradient(rgba(45, 125, 94, 0.024) 1px, transparent 1px),
		linear-gradient(90deg, rgba(45, 125, 94, 0.024) 1px, transparent 1px);
	background-position: center center;
	background-size: 76px 76px;
	content: "";
	mask-image: radial-gradient(ellipse at 50% 45%, #000 0%, transparent 74%);
	pointer-events: none;
	animation: grid-drift 60s linear infinite;
}

a {
	color: var(--accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

a:hover {
	color: var(--accent-bright);
}

button,
input,
textarea {
	font: inherit;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

.site-shell {
	position: relative;
	z-index: 1;
	width: min(1440px, calc(100% - 64px));
	margin: 0 auto;
}

.site-header {
	position: sticky;
	z-index: 20;
	top: 20px;
	display: flex;
	min-height: 72px;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 20px 0 58px;
	padding: 10px 14px 10px 24px;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: var(--surface);
	box-shadow: 0 12px 40px rgba(23, 25, 30, 0.045);
	backdrop-filter: blur(18px);
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--ink);
	font-family: var(--display);
	font-size: 1.04rem;
	font-weight: 800;
	letter-spacing: -0.055em;
	text-decoration: none;
	white-space: nowrap;
}

.brand .custom-logo-link {
	display: block;
	flex: 0 0 42px;
	line-height: 0;
}

.brand .custom-logo {
	display: block;
	width: 42px;
	height: 42px;
	object-fit: contain;
}

.brand-name {
	display: inline-block;
}

.brand-mark {
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border-radius: 14px;
	background: var(--accent);
	color: #fff;
	font-size: 0.88rem;
	letter-spacing: -0.08em;
}

.brand-dot {
	color: var(--accent);
}

.primary-navigation {
	display: flex;
	align-items: center;
	gap: clamp(18px, 3vw, 44px);
}

.primary-navigation ul {
	display: flex;
	align-items: center;
	gap: clamp(18px, 3vw, 42px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-navigation a {
	color: var(--muted);
	font-size: 0.91rem;
	font-weight: 500;
	text-decoration: none;
	transition: color 180ms ease;
}

.primary-navigation a:hover,
.primary-navigation .current-menu-item > a {
	color: var(--ink);
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.theme-toggle,
.menu-toggle {
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	border: 1px solid var(--line);
	border-radius: 50%;
	background: transparent;
	color: var(--ink);
	cursor: pointer;
	transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.theme-toggle:hover,
.menu-toggle:hover {
	transform: translateY(-2px);
	border-color: var(--accent);
	background: rgba(45, 125, 94, 0.07);
}

.theme-toggle svg,
.menu-toggle svg {
	width: 20px;
	height: 20px;
}

.header-cta,
.profile-download,
.button-link {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	gap: 11px;
	padding: 0 22px;
	border: 1px solid var(--ink);
	border-radius: 999px;
	background: var(--ink);
	color: var(--page);
	font-size: 0.88rem;
	font-weight: 600;
	text-decoration: none;
	transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.header-cta:hover,
.profile-download:hover,
.button-link:hover {
	transform: translateY(-2px);
	background: var(--accent);
	color: #fff;
	box-shadow: 0 10px 28px rgba(45, 125, 94, 0.2);
}

.menu-toggle {
	display: none;
}

.profile-layout {
	display: grid;
	grid-template-columns: minmax(270px, 0.78fr) minmax(0, 1.75fr);
	align-items: start;
	gap: clamp(22px, 3.5vw, 52px);
	padding-bottom: 72px;
}

.profile-rail {
	position: sticky;
	top: 122px;
	overflow: hidden;
	min-width: 0;
	padding: clamp(22px, 3vw, 38px);
	border: 1px solid var(--line);
	border-radius: 28px;
	background: var(--surface);
	box-shadow: var(--shadow);
	transition: transform 280ms cubic-bezier(0.2, 0.7, 0.2, 1), border-color 280ms ease, box-shadow 280ms ease;
}

.profile-rail:hover {
	transform: translateY(-4px);
	border-color: rgba(45, 125, 94, 0.24);
	box-shadow: 0 30px 78px rgba(23, 25, 30, 0.13);
}

.profile-rail::before,
.content-panel::before {
	position: absolute;
	z-index: 0;
	top: -130px;
	right: -135px;
	width: 290px;
	aspect-ratio: 1;
	border: 1px solid rgba(45, 125, 94, 0.14);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.profile-rail::after,
.content-panel::after {
	position: absolute;
	z-index: 0;
	top: -91px;
	right: -96px;
	width: 212px;
	aspect-ratio: 1;
	border: 1px dashed rgba(45, 125, 94, 0.22);
	border-radius: 50%;
	animation: orbit 36s linear infinite;
	content: "";
	pointer-events: none;
}

.profile-rail > *,
.content-panel > * {
	position: relative;
	z-index: 1;
}

.profile-label,
.eyebrow,
.entry-period {
	color: var(--accent);
	font-family: var(--display);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.profile-label {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 28px;
}

.profile-label::before {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--accent-bright);
	box-shadow: 0 0 0 5px rgba(0, 168, 115, 0.11);
	content: "";
	animation: signal 2.2s ease-in-out infinite;
}

.profile-rail .crt-side-box-item {
	margin: 0;
}

.profile-rail .crt-card,
.profile-rail .crt-card-info {
	padding: 0;
	background: transparent;
	color: var(--ink);
}

.profile-rail .crt-card-avatar {
	width: min(100%, 220px);
	margin: 0 auto 25px;
	padding: 8px;
	border: 1px solid var(--line);
	border-radius: 50%;
	background: rgba(45, 125, 94, 0.06);
	animation: portrait-float 6s ease-in-out infinite;
}

.profile-rail .crt-card-avatar img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	border-radius: 50%;
	object-fit: cover;
}

.profile-rail .crt-card-info h1,
.profile-rail .crt-card-info h2 {
	margin: 0;
	font-family: var(--display);
	font-size: clamp(1.7rem, 3vw, 2.3rem);
	font-weight: 800;
	letter-spacing: -0.07em;
	line-height: 1.15;
	text-align: center;
	text-transform: none;
}

.profile-rail .crt-card-info p {
	margin: 12px 0 0;
	color: var(--muted);
	font-size: 0.94rem;
	text-align: center;
}

.profile-rail .crt-social {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin: 20px 0 4px;
	padding: 0;
	list-style: none;
}

.profile-rail .crt-social a {
	display: grid;
	width: 38px;
	height: 38px;
	place-items: center;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--ink);
	text-decoration: none;
	transition: color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.profile-rail .crt-social a .crt-icon {
	font-size: 1rem;
	line-height: 1;
}

.profile-rail .crt-social a:hover {
	transform: translateY(-3px);
	border-color: var(--accent);
	color: var(--accent);
}

.profile-rail .crt-side-box-btn {
	margin-top: 13px;
	padding: 0 !important;
}

.profile-rail .crt-side-box-btn a {
	display: flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: transparent;
	color: var(--ink);
	font-size: 0.8rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

.profile-rail .crt-side-box-btn a:hover {
	border-color: var(--accent);
	background: var(--accent);
	color: #fff;
}

.screen-reader-text {
	position: absolute;
	overflow: hidden;
	width: 1px;
	height: 1px;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	clip-path: inset(50%);
}

.content-panel {
	position: relative;
	overflow: hidden;
	min-width: 0;
	min-height: 540px;
	padding: clamp(28px, 5vw, 66px);
	border: 1px solid var(--line);
	border-radius: 30px;
	background: var(--surface-strong);
	box-shadow: var(--shadow);
	transition: transform 280ms cubic-bezier(0.2, 0.7, 0.2, 1), border-color 280ms ease, box-shadow 280ms ease;
}

.content-panel:hover {
	transform: translateY(-3px);
	border-color: rgba(45, 125, 94, 0.22);
	box-shadow: 0 32px 82px rgba(23, 25, 30, 0.12);
}

.content-panel > :first-child {
	margin-top: 0;
}

.content-panel h1,
.content-panel h2,
.content-panel h3,
.content-panel h4 {
	color: var(--ink);
	font-family: var(--display);
	font-weight: 700;
	letter-spacing: -0.055em;
	line-height: 1.2;
}

.content-panel h1,
.content-panel h2 {
	font-size: clamp(1.75rem, 4vw, 2.8rem);
}

.content-panel h3 {
	font-size: 1.25rem;
}

.content-panel p,
.content-panel li,
.content-panel dd {
	color: var(--muted);
}

.content-panel h2 + p,
.content-panel h2 + .text-box {
	margin-top: 2rem;
	font-size: clamp(1rem, 1.5vw, 1.2rem);
	line-height: 1.9;
}

.content-panel .resume_home_wrapper > section,
.content-panel > section,
.content-panel .cv-section {
	padding: 0 0 36px;
	border-bottom: 1px solid var(--line);
	margin: 0 0 36px;
}

.content-panel .resume_home_wrapper > section:last-child,
.content-panel > section:last-child,
.content-panel .cv-section:last-child {
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}

.content-panel:has(.resume_home_wrapper) {
	padding: clamp(28px, 3.8vw, 54px);
}

.resume_home_wrapper {
	display: grid;
	gap: 22px;
}

.content-panel .resume_home_wrapper > section {
	position: relative;
	overflow: hidden;
	padding: clamp(23px, 3vw, 36px);
	border: 1px solid var(--line);
	border-radius: 22px;
	margin: 0;
	background: var(--page);
	transition: transform 260ms cubic-bezier(0.2, 0.7, 0.2, 1), border-color 260ms ease, box-shadow 260ms ease;
}

.content-panel .resume_home_wrapper > section:hover {
	transform: translateY(-3px);
	border-color: rgba(45, 125, 94, 0.27);
	box-shadow: 0 16px 38px -22px rgba(23, 25, 30, 0.22);
}

.content-panel .resume_home_wrapper > section:first-child {
	border-color: rgba(45, 125, 94, 0.2);
	background:
		radial-gradient(ellipse at 100% 0, rgba(45, 125, 94, 0.09), transparent 48%),
		var(--surface-strong);
}

.content-panel .resume_home_wrapper > section:first-child > .row > .col-sm-12 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	gap: 18px;
}

.content-panel .resume_home_wrapper > section:first-child h2 {
	margin: 0;
	font-size: clamp(1.7rem, 3.1vw, 2.35rem);
	line-height: 1.12;
}

.content-panel .resume_home_wrapper > section:first-child h2::before {
	display: block;
	margin-bottom: 14px;
	color: var(--accent);
	content: "PROFILE / 01";
	font-family: var(--body);
	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.content-panel .resume_home_wrapper > section:first-child .text-box,
.content-panel .resume_home_wrapper > section:first-child .text-box p {
	max-width: 62ch;
	margin: 0;
	color: var(--ink);
	font-size: clamp(0.99rem, 1.25vw, 1.12rem);
	line-height: 1.95;
}

.content-panel .resume_home_wrapper > section:nth-child(2) .row,
.content-panel .resume_home_wrapper > section:nth-child(3) .row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: 16px;
}

.content-panel .resume_home_wrapper > section:nth-child(2) .row > [class*="col-"],
.content-panel .resume_home_wrapper > section:nth-child(3) .row > [class*="col-"] {
	min-width: 0;
	padding: 23px;
	border: 1px solid var(--line);
	border-radius: 17px;
	margin: 0;
	background: var(--surface-strong);
}

.content-panel .resume_home_wrapper > section:nth-child(2) h2,
.content-panel .resume_home_wrapper > section:nth-child(3) h2,
.content-panel .resume_home_wrapper > section:nth-child(4) h2 {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 20px;
	color: var(--ink);
	font-size: 1.03rem;
	font-weight: 700;
	letter-spacing: -0.025em;
}

.content-panel .resume_home_wrapper > section:nth-child(2) h2::before,
.content-panel .resume_home_wrapper > section:nth-child(3) h2::before,
.content-panel .resume_home_wrapper > section:nth-child(4) h2::before {
	width: 7px;
	height: 7px;
	flex: 0 0 7px;
	border-radius: 50%;
	background: var(--accent-bright);
	box-shadow: 0 0 0 4px rgba(0, 168, 115, 0.1);
	content: "";
}

.content-panel .resume_home_wrapper .dl-horizontal {
	display: grid;
	grid-template-columns: minmax(72px, 0.7fr) minmax(0, 1.3fr);
	gap: 0 14px;
	margin: 0;
}

.content-panel .resume_home_wrapper .dl-horizontal dt,
.content-panel .resume_home_wrapper .dl-horizontal dd {
	min-width: 0;
	padding: 9px 0;
	border-bottom: 1px solid var(--line);
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.content-panel .resume_home_wrapper .dl-horizontal dt {
	color: var(--muted);
	font-size: 0.66rem;
	letter-spacing: 0.07em;
}

.content-panel .resume_home_wrapper .dl-horizontal dd {
	color: var(--ink);
	font-weight: 500;
}

.content-panel .resume_home_wrapper .dl-horizontal dd:last-of-type {
	border-bottom: 0;
}

.content-panel .resume_home_wrapper .progress-bullets {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 6px 12px;
	padding: 13px 0;
	border-bottom: 1px solid var(--line);
	margin: 0;
}

.content-panel .resume_home_wrapper .progress-bullets:last-child {
	border-bottom: 0;
}

.content-panel .resume_home_wrapper .progress-title {
	color: var(--ink);
	font-size: 0.86rem;
	font-weight: 600;
}

.content-panel .resume_home_wrapper .progress-text {
	grid-column: 2;
	grid-row: 1;
	color: var(--muted);
	font-size: 0.73rem;
}

.content-panel .resume_home_wrapper .progress-bullets .progress-bar {
	display: flex;
	grid-column: 1;
	grid-row: 2;
	gap: 4px;
}

.content-panel .resume_home_wrapper .progress-bullets .bullet {
	width: 15px;
	height: 4px;
	border-radius: 999px;
	background: var(--line);
}

.content-panel .resume_home_wrapper .progress-bullets .bullet.fill {
	background: var(--accent);
}

.content-panel .resume_home_wrapper .progress-line {
	position: relative;
	padding: 12px 0 16px;
	margin: 0;
}

.content-panel .resume_home_wrapper .progress-title {
	line-height: 1.45;
}

.content-panel .resume_home_wrapper .progress-line .progress-bar {
	position: relative;
	display: block;
	overflow: hidden;
	height: 6px;
	border-radius: 999px;
	margin-top: 9px;
	background: var(--line);
}

.content-panel .resume_home_wrapper .progress-line .progress-bar::before {
	display: block;
	width: var(--skill-progress, 0%);
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--accent), var(--accent-bright));
	content: "";
	transform: scaleX(0);
	transform-origin: left center;
	animation: skill-fill 1s cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}

.content-panel .resume_home_wrapper .progress-line .progress-bar::after {
	position: absolute;
	top: -18px;
	right: 0;
	color: var(--muted);
	content: attr(data-text);
	font-size: 0.68rem;
}

.content-panel .resume_home_wrapper .progress-line[aria-valuenow="90"] .progress-bar {
	--skill-progress: 90%;
}

.content-panel .resume_home_wrapper .progress-line[aria-valuenow="80"] .progress-bar {
	--skill-progress: 80%;
}

.content-panel .resume_home_wrapper .progress-line[aria-valuenow="70"] .progress-bar {
	--skill-progress: 70%;
}

.content-panel .resume_home_wrapper .progress-line[aria-valuenow="60"] .progress-bar {
	--skill-progress: 60%;
}

.content-panel .resume_home_wrapper > section:nth-child(3) .styled-list,
.content-panel .resume_home_wrapper > section:nth-child(4) .styled-list {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.content-panel .resume_home_wrapper > section:nth-child(3) .styled-list + .styled-list {
	margin-top: 10px;
}

.content-panel .resume_home_wrapper .styled-list li {
	padding: 8px 12px;
	border: 1px solid var(--line);
	border-radius: 999px;
	margin: 0;
	background: var(--page);
	color: var(--muted);
	font-size: 0.76rem;
	line-height: 1.4;
	transition: border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.content-panel .resume_home_wrapper .styled-list li:hover {
	transform: translateY(-2px);
	border-color: rgba(45, 125, 94, 0.4);
	color: var(--accent);
}

.content-panel .resume_home_wrapper > section:nth-child(4) {
	background:
		radial-gradient(ellipse at 100% 100%, rgba(45, 125, 94, 0.08), transparent 48%),
		var(--page);
}

.content-panel .resume_home_wrapper > section:nth-child(4) .row > [class*="col-"] {
	min-width: 0;
	padding: 0;
	margin: 0;
}

.content-panel .text-box,
.content-panel .text-box p {
	max-width: 70ch;
}

.content-panel ul,
.content-panel ol {
	padding-left: 1.35rem;
}

.content-panel li + li {
	margin-top: 0.45rem;
}

.page-heading {
	margin-bottom: 32px;
}

.page-heading .eyebrow {
	margin: 0 0 12px;
}

.page-heading h1 {
	margin: 0;
	font-size: clamp(2.15rem, 5vw, 3.8rem);
}

.experience-list {
	display: grid;
	gap: 18px;
}

.experience-entry {
	position: relative;
	padding: 24px 25px 23px 29px;
	border: 1px solid var(--line);
	border-radius: 20px;
	background: var(--page);
	transition: transform 260ms cubic-bezier(0.2, 0.7, 0.2, 1), border-color 260ms ease, box-shadow 260ms ease;
}

.experience-entry::before {
	position: absolute;
	top: 29px;
	bottom: 29px;
	left: 0;
	width: 3px;
	border-radius: 0 4px 4px 0;
	background: var(--accent);
	content: "";
}

.experience-entry:hover {
	transform: translateY(-5px) scale(1.01);
	border-color: rgba(45, 125, 94, 0.35);
	box-shadow: 0 18px 34px -12px rgba(23, 25, 30, 0.2);
}

.experience-entry::after {
	position: absolute;
	top: 21px;
	right: 22px;
	color: var(--accent);
	content: "↗";
	font-size: 1.2rem;
	opacity: 0;
	transform: translate(-5px, 5px);
	transition: opacity 200ms ease, transform 200ms ease;
}

.experience-entry:hover::after {
	opacity: 1;
	transform: translate(0, 0);
}

.experience-entry h2 {
	margin: 10px 0 3px;
	font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.experience-entry p {
	margin: 5px 0 0;
}

.experience-entry .entry-company {
	color: var(--ink);
	font-weight: 500;
}

.reference-card blockquote {
	margin: 12px 0 20px;
}

.reference-card blockquote p {
	margin: 0;
}

.reference-card .reference-quote {
	margin: 0;
	color: var(--accent);
	font-family: var(--serif);
	font-size: 3.5rem;
	line-height: 0.8;
}

.reference-card .entry-company,
.reference-card > p:last-child {
	margin: 3px 0 0;
}

.review-pagination {
	display: flex;
	gap: 8px;
	margin-top: 25px;
}

.review-pagination a {
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--ink);
	text-decoration: none;
	transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

.review-pagination a:hover,
.review-pagination a.is-current {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--page);
}

.empty-state {
	padding: 22px;
	border: 1px dashed var(--line);
	border-radius: 18px;
	background: var(--page);
}

.empty-state p {
	margin: 0;
}

.contact-intro {
	max-width: 58ch;
	margin: 14px 0 0;
	font-size: 1rem;
}

.contact-form-source .crt-paper-cont,
.contact-form-source .padd-box,
.contact-form-source .padd-box-sm {
	display: contents;
}

.contact-form-source .contact-head,
.contact-form-source .wpcf7 > h3 {
	display: none;
}

.contact-form-source .wpcf7 {
	margin-top: 30px;
}

.contact-form-source .wpcf7 form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.contact-form-source .wpcf7 form > .form-group {
	min-width: 0;
	margin: 0;
}

.contact-form-source .wpcf7 form .form-group p {
	margin: 0;
}

.contact-form-source .wpcf7 form > p:empty {
	display: none;
}

.contact-form-source .wpcf7 form > p {
	margin: 0;
}

.contact-form-source .wpcf7 form > .form-group:nth-of-type(3),
.contact-form-source .wpcf7 form > .form-group:nth-of-type(4),
.contact-form-source .wpcf7 form > .form-submit,
.contact-form-source .wpcf7-response-output {
	grid-column: 1 / -1;
}

.contact-form-source .form-label,
.feedback-form .form-field label {
	display: block;
	margin-bottom: 8px;
	color: var(--ink);
	font-size: 0.88rem;
	font-weight: 600;
}

.contact-form-source .form-item-wrap {
	width: 100%;
	margin: 0;
}

.contact-form-source input.form-item,
.contact-form-source textarea.form-item,
.feedback-form input,
.feedback-form textarea {
	display: block;
	width: 100%;
	min-height: 54px;
	padding: 14px 16px;
	border: 1px solid var(--line);
	border-radius: 15px;
	outline: 0;
	background: var(--page);
	color: var(--ink);
	font-family: var(--body);
	font-size: 0.96rem;
	transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.contact-form-source textarea.form-item,
.feedback-form textarea {
	height: 164px;
	min-height: 164px;
	resize: vertical;
}

.contact-form-source input.form-item:focus,
.contact-form-source textarea.form-item:focus,
.feedback-form input:focus,
.feedback-form textarea:focus {
	border-color: var(--accent);
	background: var(--surface-strong);
	box-shadow: 0 0 0 4px rgba(45, 125, 94, 0.11);
}

.contact-form-source .form-submit {
	margin-top: 2px;
}

.contact-form-source input.wpcf7-submit,
.feedback-form .button-link {
	min-height: 52px;
	padding: 0 25px;
	border: 0;
	border-radius: 999px;
	background: var(--ink);
	color: var(--page);
	cursor: pointer;
	font-size: 0.9rem;
	font-weight: 600;
	transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.contact-form-source input.wpcf7-submit:hover,
.feedback-form .button-link:hover {
	transform: translateY(-2px);
	background: var(--accent);
	box-shadow: 0 10px 25px rgba(45, 125, 94, 0.2);
}

.contact-form-source .wpcf7-not-valid-tip {
	display: block;
	margin: 7px 0 0;
	color: #c43d48;
	font-size: 0.8rem;
}

.contact-form-source .wpcf7-response-output {
	margin: 0 !important;
	padding: 14px 16px !important;
	border: 1px solid var(--line) !important;
	border-radius: 14px;
	color: var(--ink);
	font-size: 0.88rem;
}

.contact-form-source .wpcf7-spinner {
	margin: 0 0 0 10px;
	vertical-align: middle;
}

.contact-form-source .wpcf7 form.submitting input.wpcf7-submit {
	cursor: wait;
	opacity: 0.7;
}

.contact-email {
	margin: 23px 0 0;
	color: var(--muted);
	font-size: 0.9rem;
}

.contact-email a {
	margin-left: 5px;
	font-weight: 600;
}

.feedback-form {
	display: grid;
	gap: 19px;
	margin-top: 28px;
}

.feedback-form .button-link {
	justify-self: start;
}

.form-notice {
	margin-top: 20px;
	padding: 14px 17px;
	border: 1px solid var(--line);
	border-radius: 14px;
	font-size: 0.9rem;
}

.form-notice-success {
	border-color: rgba(45, 125, 94, 0.32);
	background: rgba(45, 125, 94, 0.08);
	color: var(--accent);
}

.form-notice-error {
	border-color: rgba(196, 61, 72, 0.3);
	background: rgba(196, 61, 72, 0.06);
	color: #c43d48;
}

.page-content > :last-child,
.content-panel > :last-child {
	margin-bottom: 0;
}

.site-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 0 4px 30px;
	color: var(--muted);
	font-size: 0.82rem;
}

.site-footer p {
	margin: 0;
}

.site-footer a {
	color: var(--muted);
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--accent);
}

[data-reveal] {
	animation: reveal-in 650ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

[data-reveal="profile"] {
	animation-delay: 100ms;
}

[data-reveal="content"] {
	animation-delay: 180ms;
}

@keyframes reveal-in {
	from {
		opacity: 0;
		transform: translateY(18px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes ambient-drift {
	0% {
		background-position: 0% 20%;
		transform: translate3d(-1.5%, -1%, 0) scale(1);
	}

	50% {
		background-position: 55% 45%;
	}

	100% {
		background-position: 100% 80%;
		transform: translate3d(1.5%, 1%, 0) scale(1.04);
	}
}

@keyframes grid-drift {
	to {
		background-position: 76px 76px;
	}
}

@keyframes skill-fill {
	to {
		transform: scaleX(1);
	}
}

@keyframes orbit {
	to {
		transform: rotate(360deg);
	}
}

@keyframes signal {
	50% {
		box-shadow: 0 0 0 8px rgba(0, 168, 115, 0.03);
	}
}

@keyframes portrait-float {
	50% {
		transform: translateY(-7px);
	}
}

@media (max-width: 960px) {
	.site-shell {
		width: min(1120px, calc(100% - 48px));
	}

	.site-header {
		margin-bottom: 34px;
	}

	.profile-layout {
		grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.3fr);
		gap: 18px;
	}

	.profile-rail {
		padding: 22px 18px;
	}

	.content-panel {
		padding: 30px;
	}

	.content-panel:has(.resume_home_wrapper) {
		padding: 24px;
	}

	.content-panel .resume_home_wrapper > section:nth-child(2) .row,
	.content-panel .resume_home_wrapper > section:nth-child(3) .row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.content-panel .resume_home_wrapper > section:nth-child(2) .row > [class*="col-"],
	.content-panel .resume_home_wrapper > section:nth-child(3) .row > [class*="col-"] {
		padding: 18px;
	}

	.header-cta {
		display: none;
	}
}

@media (max-width: 1180px) {
	.site-header {
		position: sticky;
	}

	.header-cta {
		display: none;
	}

	.menu-toggle {
		display: grid;
	}

	.primary-navigation {
		position: absolute;
		top: calc(100% + 10px);
		right: 0;
		left: 0;
		display: none;
		align-items: stretch;
		padding: 12px;
		border: 1px solid var(--line);
		border-radius: 20px;
		background: var(--surface-strong);
		box-shadow: var(--shadow);
	}

	.primary-navigation.is-open {
		display: flex;
	}

	.primary-navigation ul {
		width: 100%;
		align-items: stretch;
		flex-direction: column;
		gap: 0;
	}

	.primary-navigation li + li {
		border-top: 1px solid var(--line);
	}

	.primary-navigation a {
		display: block;
		padding: 12px 10px;
	}
}

@media (max-width: 700px) {
	html {
		scroll-padding-top: 5rem;
	}

	.site-shell {
		width: min(100% - 28px, 560px);
	}

	.site-header {
		top: 10px;
		min-height: 62px;
		gap: 12px;
		margin: 10px 0 24px;
		padding: 7px 8px 7px 14px;
		border-radius: 22px;
	}

	.brand {
		font-size: 0.93rem;
	}

	.brand-mark {
		width: 38px;
		height: 38px;
		border-radius: 12px;
	}

	.header-actions {
		margin-left: auto;
	}

	.theme-toggle,
	.menu-toggle {
		width: 42px;
		height: 42px;
	}

	.profile-layout {
		grid-template-columns: 1fr;
		gap: 18px;
		padding-bottom: 42px;
	}

	.profile-rail {
		position: relative;
		top: auto;
		display: grid;
		grid-template-columns: 78px 1fr;
		align-items: center;
		column-gap: 18px;
		padding: 18px;
		border-radius: 23px;
	}

	.profile-label {
		grid-column: 1 / -1;
		margin: 0 0 14px;
	}

	.profile-rail .crt-side-box-item {
		display: contents;
	}

	.profile-rail .crt-card {
		display: contents;
	}

	.profile-rail .crt-card-avatar {
		grid-row: 2 / span 2;
		width: 78px;
		margin: 0;
		padding: 4px;
	}

	.profile-rail .crt-card-info {
		align-self: end;
	}

	.profile-rail .crt-card-info h1,
	.profile-rail .crt-card-info h2 {
		font-size: 1.24rem;
		text-align: left;
	}

	.profile-rail .crt-card-info p {
		margin-top: 4px;
		font-size: 0.78rem;
		text-align: left;
	}

	.profile-rail .crt-social {
		justify-content: flex-start;
		margin: 8px 0 0;
	}

	.profile-rail .crt-social a {
		width: 32px;
		height: 32px;
	}

	.profile-rail .crt-side-box-btn {
		grid-column: 1 / -1;
	}

	.profile-rail .crt-side-box-btn:first-of-type {
		margin-top: 16px;
	}

	.content-panel {
		min-height: auto;
		padding: 27px 21px;
		border-radius: 24px;
	}

	.content-panel:has(.resume_home_wrapper) {
		padding: 16px;
	}

	.resume_home_wrapper {
		gap: 14px;
	}

	.content-panel .resume_home_wrapper > section {
		padding: 19px 16px;
		border-radius: 18px;
	}

	.content-panel .resume_home_wrapper > section:first-child > .row > .col-sm-12 {
		grid-template-columns: 1fr;
		gap: 15px;
	}

	.content-panel .resume_home_wrapper > section:first-child h2::before {
		margin-bottom: 10px;
	}

	.content-panel .resume_home_wrapper > section:nth-child(2) .row,
	.content-panel .resume_home_wrapper > section:nth-child(3) .row {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.content-panel .resume_home_wrapper > section:nth-child(2) .row > [class*="col-"],
	.content-panel .resume_home_wrapper > section:nth-child(3) .row > [class*="col-"] {
		padding: 18px;
	}

	.content-panel h1,
	.content-panel h2 {
		font-size: clamp(1.65rem, 8vw, 2.2rem);
	}

	.experience-entry {
		padding: 20px 18px 19px 22px;
	}

	.contact-form-source .wpcf7 form {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.contact-form-source .wpcf7 form > .form-group,
	.contact-form-source .wpcf7 form > .form-submit,
	.contact-form-source .wpcf7-response-output {
		grid-column: 1;
	}

	.site-footer {
		align-items: flex-start;
		flex-direction: column;
		padding-bottom: 22px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* Client-focused homepage: shared type, colors, and motion from the CV theme. */
.client-home { grid-template-columns: minmax(250px, .66fr) minmax(0, 1.8fr); gap: 32px; }
.client-content { display: grid; gap: 34px; min-width: 0; }
.client-card { border: 1px solid var(--line); border-radius: 28px; background: var(--surface); padding: clamp(26px, 3.4vw, 48px); box-shadow: 0 12px 40px rgba(23,25,30,.025); }
.client-profile { text-align: center; padding: 32px 24px; }
.client-profile .profile-label { text-align: left; }
.client-portrait { width: 176px; aspect-ratio: 1; padding: 7px; border: 1px solid var(--line); border-radius: 50%; margin: 28px auto 22px; animation: portrait-float 6s ease-in-out infinite; }
.client-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.client-profile h2 { font: 800 clamp(1.5rem, 2vw, 2rem)/1.2 var(--display); letter-spacing: -.06em; margin: 0 0 12px; }
.client-role { color: var(--muted); font-size: .88rem; line-height: 1.8; }
.client-location { font-size: .8rem; color: var(--muted); margin: 22px 0; }
.availability { display: inline-flex; gap: 8px; align-items: center; font-size: .71rem; color: var(--accent); margin-bottom: 22px; }
.availability > span { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(45,125,94,.08); animation: signal 2.2s ease-in-out infinite; }
.client-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; padding: 15px 22px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; font-size: .8rem; font-weight: 600; transition: transform 250ms ease, background 250ms ease; }
.client-button.primary { background: var(--ink); color: var(--page); }
.client-button:hover { transform: translateY(-3px); background: var(--accent); color: white; }
.client-profile .client-button { width: 100%; }
.client-text-link { display: inline-flex; align-items: center; gap: 14px; font-size: .8rem; font-weight: 500; color: var(--ink); text-decoration: none; }
.client-profile > .client-text-link { margin-top: 18px; font-size: .75rem; }
.client-profile-note { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--line); font: italic 1.25rem/1.4 var(--serif); color: var(--muted); }
.client-home .eyebrow { color: var(--accent); font-size: .63rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 20px; }
.client-hero { position: relative; overflow: hidden; padding-top: 46px; }
.client-hero::after { content: ''; position: absolute; right: -100px; top: -145px; width: 320px; height: 320px; border: 1px solid var(--line); border-radius: 50%; box-shadow: 0 0 0 30px rgba(45,125,94,.025),0 0 0 60px rgba(45,125,94,.025); pointer-events: none; }
.client-hero h1 { position: relative; font: 700 clamp(2.8rem, 4.4vw, 4.9rem)/1.07 var(--display); letter-spacing: -.065em; margin: 25px 0; }
.client-home em { font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; color: var(--accent); }
.hero-description { max-width: 550px; font-size: 1rem; color: var(--muted); line-height: 1.9; }
.client-actions { display: flex; align-items: center; gap: 26px; margin: 30px 0 40px; flex-wrap: wrap; }
.client-proof { border-top: 1px solid var(--line); padding-top: 27px; display: grid; grid-template-columns: .7fr 1fr 1fr; gap: 20px; }
.client-proof strong { display: block; font: 600 1.1rem/1.4 var(--display); letter-spacing: -.04em; }
.client-proof span { display: block; max-width: 150px; margin-top: 7px; color: var(--muted); font-size: .7rem; line-height: 1.6; }
.client-section { scroll-margin-top: 130px; }
.client-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 14px 4px 24px; }
.client-home h2 { font-family: var(--display); }
.client-content h2 { font-size: clamp(1.8rem, 2.6vw, 2.65rem); font-weight: 600; line-height: 1.16; letter-spacing: -.055em; margin: 0 0 16px; }
.client-section-heading > p { color: var(--muted); font-size: .76rem; margin-bottom: 16px; }
.service-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.service-card { padding: 28px; transition: transform 280ms ease, border-color 280ms ease; }
.service-card:hover { transform: translateY(-5px); border-color: var(--accent); }
.service-top { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: .65rem; margin-bottom: 27px; }
.service-symbol { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line); background: rgba(45,125,94,.04); color: var(--accent); border-radius: 13px; font-size: 1.5rem; }
.service-card h3 { font: 600 1.05rem/1.4 var(--display); letter-spacing: -.04em; margin: 0 0 12px; }
.service-card p, .client-expertise p, .client-history p, .client-contact > p:not(.eyebrow) { font-size: .85rem; line-height: 1.9; color: var(--muted); }
.service-stack { border-top: 1px solid var(--line); padding-top: 17px; margin-top: 24px; font-size: .65rem; color: var(--accent); }
.client-expertise { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 30px; }
.skill-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 9px; padding: 0; margin: 0; }
.skill-chips li { font-size: .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-strong); padding: 8px 12px; }
.approach-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 35px; }
.approach-grid > div { border-top: 1px solid var(--line); padding-top: 18px; }
.approach-grid span { color: var(--accent); font-size: .65rem; }
.approach-grid h3 { font-size: .84rem; line-height: 1.5; margin: 16px 0 10px; }
.approach-grid p { font-size: .75rem; color: var(--muted); line-height: 1.8; margin: 0; }
.client-history { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 30px; }
.history-links { display: grid; }
.history-links a { padding: 18px 0; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); text-decoration: none; font-size: .8rem; color: var(--ink); }
.history-links a:hover { color: var(--accent); }
.client-contact { text-align: center; background: linear-gradient(130deg, rgba(45,125,94,.075), transparent), var(--surface); }
.client-contact .client-button { margin: 15px 0 22px; }
.contact-caption { display: block; font-size: .65rem; color: var(--muted); }
@media(max-width: 1100px) { .client-home { grid-template-columns: 260px minmax(0,1fr); gap: 24px; } .client-expertise, .client-history { grid-template-columns: 1fr; } .client-actions { gap: 18px; } .client-section-heading { display: block; } }
@media(max-width: 760px) { .client-home { grid-template-columns: 1fr; } .client-profile { position: relative; top: auto; display: block; } .client-profile .profile-label { text-align: center; } .client-portrait { width: 128px; margin: 20px auto; } .client-profile-note { display: none; } .client-profile .client-button { max-width: 320px; margin: 0 auto; display: flex; } .client-profile > .client-text-link { display: flex; justify-content: center; } .client-profile h2 { font-size: 1.7rem; } .client-location { margin: 15px 0; } .client-content { gap: 24px; } .client-card { padding: 26px; border-radius: 24px; } .client-hero h1 { font-size: clamp(2.7rem, 9vw, 4rem); } .client-proof { gap: 12px; } .client-proof strong { font-size: .88rem; } .client-proof span { font-size: .62rem; } .approach-grid { grid-template-columns: 1fr; gap: 22px; } }
@media(max-width: 480px) { .service-grid { grid-template-columns: 1fr; } .client-actions { align-items: flex-start; flex-direction: column; } .client-hero .eyebrow { max-width: 220px; line-height: 1.8; } .client-proof { grid-template-columns: 1fr; } .client-proof > div { display: grid; grid-template-columns: 110px 1fr; gap: 14px; align-items: start; } .client-proof span { margin: 0; max-width: none; font-size: .7rem; } }
@media(max-width: 760px) {
	.client-profile { display: grid; grid-template-columns: 76px minmax(0,1fr); gap: 8px 18px; padding: 22px; text-align: left; }
	.client-profile .profile-label { grid-column: 1 / -1; text-align: left; margin-bottom: 12px; }
	.client-portrait { grid-row: 2 / 4; width: 76px; padding: 4px; margin: 0; }
	.client-profile h2 { font-size: 1.4rem; margin: 6px 0 0; }
	.client-role { font-size: .74rem; margin: 0; }
	.client-profile .client-location, .client-profile > .client-text-link { display: none; }
	.client-profile .availability { grid-column: 1 / -1; margin: 14px 0 8px; font-size: .68rem; }
	.client-profile .client-button { grid-column: 1 / -1; width: 100%; max-width: none; }
}
