/* Noklaw components: page blocks. Loads after style.css. Theme colour: blue (--nk-blue). */

/* Captions: section labels with a rule, e.g. "01 ———— Practice Areas" */
.nk-eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--nk-blue);
	margin-bottom: 20px;
}
.nk-eyebrow span {
	color: var(--nk-blue);
}
.nk-eyebrow span + *:not(span) {
	margin-left: 0;
}
.nk-eyebrow::after {
	content: "";
	display: inline-block;
	width: 56px;
	height: 1px;
	background: var(--nk-blue);
}
.nk-eyebrow--light { color: #bcd6f7; }
.nk-eyebrow--light::after { background: #bcd6f7; }

/* Hero, optionally with a background photo */
.nk-hero {
	position: relative;
	padding: clamp(80px, 11vw, 150px) 0 clamp(56px, 7vw, 100px);
	background: var(--nk-soft);
	isolation: isolate;
}
.nk-hero--bg {
	background-size: cover;
	background-position: center;
	color: #fff;
}
.nk-hero--bg::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 31, 58, .92) 0%, rgba(11, 31, 58, .72) 55%, rgba(11, 31, 58, .45) 100%);
	z-index: -1;
}
.nk-hero--bg h1,
.nk-hero--bg .nk-lead { color: #fff; }
.nk-hero--bg .nk-eyebrow { color: #bcd6f7; }
.nk-hero--bg .nk-eyebrow::after { background: #bcd6f7; }
.nk-hero h1 {
	font-size: clamp(40px, 5.6vw, 72px);
	max-width: 16ch;
	margin-bottom: 24px;
}
.nk-lead {
	font-size: clamp(17px, 1.6vw, 20px);
	color: var(--nk-muted);
	max-width: 56ch;
	margin-bottom: 36px;
}
.nk-body-lead {
	font-size: 18px;
	color: var(--nk-muted);
}
.nk-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
}
.nk-more { margin-top: 40px; }

/* Buttons: blue by default */
.nk-btn {
	background: var(--nk-blue);
	border-color: var(--nk-blue);
	color: #fff;
}
.nk-btn:hover {
	background: var(--nk-blue-dark);
	border-color: var(--nk-blue-dark);
	color: #fff;
	border-bottom-color: var(--nk-blue-dark);
}
.nk-btn--ghost {
	background: transparent;
	color: var(--nk-ink);
	border-color: var(--nk-ink);
}
.nk-btn--ghost:hover {
	background: var(--nk-ink);
	color: #fff;
	border-color: var(--nk-ink);
}
.nk-btn--light {
	background: #fff;
	color: var(--nk-navy);
	border-color: #fff;
}
.nk-btn--light:hover {
	background: transparent;
	color: #fff;
	border-color: #fff;
}
.nk-btn--small {
	padding: 11px 20px;
	font-size: 11px;
}

/* Text links */
.nk-link {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nk-blue);
	border-bottom: 1px solid var(--nk-blue);
	padding-bottom: 2px;
}
.nk-link:hover { color: var(--nk-blue-dark); border-bottom-color: var(--nk-blue-dark); }

/* Icons */
.nk-icon {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}

/* Layout */
.nk-split {
	display: grid;
	grid-template-columns: 1fr;
	gap: 56px;
}
@media (min-width: 900px) {
	.nk-split { grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
	.nk-split--profile { grid-template-columns: 5fr 7fr; }
}
.nk-blue-band {
	background: var(--nk-blue);
	color: #fff;
}
.nk-blue-band h2,
.nk-blue-band h3,
.nk-blue-band p { color: #fff; }
.nk-blue-band .nk-body-lead { color: #dbe9fb; }

/* Stat row (captions with numbers) */
.nk-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	border-top: 1px solid rgba(255, 255, 255, .25);
	border-left: 1px solid rgba(255, 255, 255, .25);
}
.nk-stat {
	padding: 32px 24px;
	border-right: 1px solid rgba(255, 255, 255, .25);
	border-bottom: 1px solid rgba(255, 255, 255, .25);
}
.nk-stat .nk-icon { color: #fff; margin-bottom: 14px; }
.nk-stat-value {
	font-family: var(--nk-serif);
	font-size: clamp(36px, 4vw, 52px);
	line-height: 1;
	color: #fff;
}
.nk-stat-label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #dbe9fb;
	margin-top: 10px;
}

/* Values */
.nk-values {
	display: grid;
	gap: 36px;
}
.nk-values h3 { font-size: 24px; margin-bottom: 10px; }
.nk-values p { color: var(--nk-muted); }
.nk-values--grid {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 48px 40px;
}

/* Practice cards grid (3 columns, with a form card filling the last row) */
.nk-practice-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
@media (max-width: 980px) {
	.nk-practice-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.nk-practice-grid { grid-template-columns: 1fr; }
}
.nk-practice-grid--flush { margin-top: 40px; }
.nk-practice-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--nk-line);
	box-shadow: 0 1px 2px rgba(11, 31, 58, .04);
	padding: 0 28px 28px;
	transition: box-shadow .25s ease, transform .25s ease;
}
.nk-practice-card:hover {
	box-shadow: 0 14px 34px rgba(11, 31, 58, .10);
	transform: translateY(-2px);
}
.nk-practice-card .nk-num {
	font-family: var(--nk-serif);
	font-size: 15px;
	color: var(--nk-blue);
	display: block;
	margin: 22px 0 10px;
}
.nk-practice-card h3 { font-size: 24px; margin-bottom: 12px; }
.nk-practice-card p { color: var(--nk-muted); margin-bottom: 20px; }
.nk-practice-card .nk-link { margin-top: auto; align-self: flex-start; }
.nk-form-card {
	grid-column: span 2;
	background: var(--nk-navy);
	border-color: var(--nk-navy);
	padding: 40px;
	color: #fff;
}
.nk-form-card--full { grid-column: 1 / -1; }
.nk-form-card h3,
.nk-form-card p { color: #fff; }
.nk-form-card p { color: #c8d4e6; }
.nk-form-card .nk-form-row label { color: #bcd6f7; }
.nk-form-card .nk-form-row input,
.nk-form-card .nk-form-row select,
.nk-form-card .nk-form-row textarea {
	color: #fff;
	border-bottom-color: rgba(255, 255, 255, .3);
}
.nk-form-card .nk-form-row select option { color: var(--nk-ink); }
.nk-form-card .nk-form-row input:focus,
.nk-form-card .nk-form-row select:focus,
.nk-form-card .nk-form-row textarea:focus { border-bottom-color: #fff; }
.nk-form-card .nk-notice { background: rgba(255, 255, 255, .08); border-left-color: #fff; color: #fff; }
.nk-form-card .nk-btn { background: #fff; color: var(--nk-navy); border-color: #fff; }
.nk-form-card .nk-btn:hover { background: transparent; color: #fff; border-color: #fff; }

/* Practice media (photo or placeholder letter) */
.nk-practice-media {
	margin: 0 -28px 24px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--nk-soft);
}
.nk-practice-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(100%);
	transition: filter .5s ease, transform .6s ease;
	margin: 0;
}
.nk-practice-card:hover .nk-practice-media img {
	filter: grayscale(0%);
	transform: scale(1.03);
}
.nk-practice-media--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--nk-serif);
	font-size: 56px;
	color: var(--nk-blue);
}
.nk-hero-media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--nk-soft);
}
.nk-hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(100%);
	margin: 0;
}

/* Steps */
.nk-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 48px;
}
.nk-steps h3 { font-size: 26px; margin: 16px 0 12px; }
.nk-steps p { color: var(--nk-muted); }
.nk-steps .nk-num { color: var(--nk-blue); font-family: var(--nk-serif); font-size: 18px; }

/* Testimonial with background photo */
.nk-testimonial {
	position: relative;
	background-size: cover;
	background-position: center;
	color: #fff;
	isolation: isolate;
}
.nk-testimonial::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 31, 58, .94), rgba(11, 31, 58, .75));
	z-index: -1;
}
.nk-testimonial h2 { color: #fff; }
.nk-quote { margin: 0; }
.nk-quote blockquote { margin: 0; }
.nk-quote p {
	font-family: var(--nk-serif);
	font-size: clamp(26px, 3vw, 38px);
	line-height: 1.35;
	color: #fff;
	max-width: 30ch;
}
.nk-quote-author {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 28px;
}
.nk-quote-author img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0;
}
.nk-quote-author cite {
	font-style: normal;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #dbe9fb;
}

/* Background photo panel (sections with a side photo) */
.nk-photo-panel {
	min-height: 360px;
	background-size: cover;
	background-position: center;
	background-color: var(--nk-soft);
}

/* Team */
.nk-team-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 40px 32px;
}
.nk-team-card { text-align: left; border: 0; }
.nk-team-card img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	filter: grayscale(100%);
	transition: filter .4s ease;
	margin-bottom: 18px;
}
.nk-team-card:hover img { filter: grayscale(0%); }
.nk-team-card h3 { font-size: 22px; margin-bottom: 4px; }
.nk-team-card .nk-role {
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nk-blue);
}
.nk-team-placeholder {
	width: 100%;
	aspect-ratio: 3 / 4;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--nk-soft);
	font-family: var(--nk-serif);
	font-size: 64px;
	color: var(--nk-blue);
	margin-bottom: 18px;
}
.nk-profile-photo {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	filter: grayscale(100%);
}

/* Practice detail layout: content + quick menu sidebar */
.nk-practice-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 56px;
}
@media (min-width: 960px) {
	.nk-practice-layout { grid-template-columns: minmax(0, 2.2fr) minmax(260px, 1fr); gap: 72px; align-items: start; }
}
.nk-quickmenu {
	position: sticky;
	top: 110px;
	border: 1px solid var(--nk-line);
	background: var(--nk-soft);
	padding: 28px;
}
.nk-quickmenu h2 {
	font-size: 22px;
	margin-bottom: 14px;
}
.nk-quickmenu ul {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}
.nk-quickmenu li { border-bottom: 1px solid var(--nk-line); }
.nk-quickmenu a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 13px 0;
	font-size: 15px;
	color: var(--nk-ink);
	border: 0;
}
.nk-quickmenu a::after { content: "→"; color: var(--nk-blue); }
.nk-quickmenu a:hover,
.nk-quickmenu a.is-current { color: var(--nk-blue); }
.nk-quickmenu-cta { margin-top: 8px; }

/* FAQ accordion */
.nk-faq { margin-top: 56px; }
.nk-faq h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 28px; }
.nk-faq details {
	border-top: 1px solid var(--nk-line);
}
.nk-faq details:last-child { border-bottom: 1px solid var(--nk-line); }
.nk-faq summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding: 22px 0;
	font-family: var(--nk-serif);
	font-size: 22px;
	color: var(--nk-ink);
}
.nk-faq summary::-webkit-details-marker { display: none; }
.nk-faq summary::after {
	content: "+";
	font-family: var(--nk-sans);
	font-size: 24px;
	color: var(--nk-blue);
	transition: transform .2s ease;
}
.nk-faq details[open] summary::after { content: "−"; }
.nk-faq details p {
	color: var(--nk-muted);
	padding: 0 0 24px;
	max-width: 68ch;
}

/* CTA band */
.nk-cta-band {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	background: var(--nk-blue);
	color: #fff;
	padding: clamp(32px, 4vw, 56px);
}
.nk-cta-band h2 { color: #fff; font-size: clamp(28px, 3.5vw, 44px); max-width: 22ch; }
.nk-cta-band p { color: #dbe9fb; }

/* Prose */
.nk-prose { max-width: 720px; }
.nk-prose p { margin-bottom: 1.2em; color: #2a2f38; }

/* Related list (other practice areas) */
.nk-related {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	border-top: 1px solid var(--nk-line);
}
.nk-related li { border-bottom: 1px solid var(--nk-line); }
.nk-related a {
	display: block;
	padding: 20px 0;
	font-family: var(--nk-serif);
	font-size: 22px;
	border: 0;
}

/* Contact details with icons */
.nk-contact-details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 28px 32px;
	margin-top: 32px;
}
.nk-contact-item {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.nk-contact-icon {
	width: 46px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--nk-blue);
	color: #fff;
	flex-shrink: 0;
}
.nk-label {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--nk-blue);
	margin-bottom: 6px;
}
.nk-contact-details p { margin: 0; }

/* Map */
.nk-map {
	margin-top: 40px;
	border: 1px solid var(--nk-line);
	line-height: 0;
}
.nk-map iframe {
	width: 100%;
	height: 340px;
	border: 0;
	filter: grayscale(20%);
}

/* Notices and honeypot */
.nk-notice {
	padding: 16px 20px;
	border-left: 3px solid var(--nk-blue);
	background: var(--nk-soft);
	margin-bottom: 28px;
}
.nk-notice--error { border-left-color: #b42318; }
.nk-hp {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Forms */
.nk-form-row { margin-bottom: 24px; }
.nk-form-row label {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--nk-blue);
	margin-bottom: 6px;
}
.nk-form-row input,
.nk-form-row select,
.nk-form-row textarea {
	width: 100%;
	padding: 12px 0;
	font-family: var(--nk-sans);
	font-size: 15px;
	color: var(--nk-ink);
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--nk-line);
	border-radius: 0;
	outline: none;
	margin-bottom: 0;
}
.nk-form-row input:focus,
.nk-form-row select:focus,
.nk-form-row textarea:focus { border-bottom-color: var(--nk-blue); }
.nk-form button.nk-btn { margin-top: 8px; }

/* Contact block inside the blue band: white icon tiles and light text */
.nk-blue-band .nk-contact-icon { background: #fff; color: var(--nk-blue); }
.nk-blue-band .nk-label { color: #bcd6f7; }
.nk-blue-band .nk-contact-details p,
.nk-blue-band .nk-contact-details a { color: #fff; }
.nk-contact-band .nk-form-card { background: #fff; color: var(--nk-ink); border-color: var(--nk-line); box-shadow: 0 20px 50px rgba(11, 31, 58, .18); }
.nk-contact-band .nk-form-card h3 { color: var(--nk-ink); }
.nk-contact-band .nk-form-row label { color: var(--nk-blue); }
.nk-contact-band .nk-form-row input,
.nk-contact-band .nk-form-row select,
.nk-contact-band .nk-form-row textarea { color: var(--nk-ink); border-bottom-color: var(--nk-line); }
.nk-contact-band .nk-btn { background: var(--nk-blue); color: #fff; }
.nk-contact-band .nk-cta-row { margin-top: 0; }
.nk-nav-cta-text { color: var(--nk-muted); }

/* ---- v1.4 colour pass: less blue, natural sand and navy tones, readable text ---- */
:root {
	--nk-sand: #efe7da;
	--nk-sand-dark: #d9ccb6;
}
.nk-blue-band {
	background: var(--nk-navy);
	color: #fff;
}
.nk-blue-band p,
.nk-blue-band .nk-values p,
.nk-blue-band .nk-body-lead,
.nk-blue-band .nk-contact-details p,
.nk-blue-band .nk-contact-details a {
	color: #e4ebf5;
}
.nk-blue-band h2,
.nk-blue-band h3 { color: #fff; }
.nk-blue-band .nk-eyebrow,
.nk-blue-band .nk-eyebrow span,
.nk-blue-band .nk-label { color: #cfe0f5; }
.nk-blue-band .nk-eyebrow::after { background: #cfe0f5; }
.nk-blue-band .nk-stat-label { color: #cfe0f5; }
.nk-blue-band .nk-stat { border-color: rgba(255, 255, 255, .18); }
.nk-blue-band .nk-stats { border-color: rgba(255, 255, 255, .18); }
.nk-blue-band .nk-contact-icon { background: #fff; color: var(--nk-navy); }
.nk-values p { color: var(--nk-muted); }

/* Call-to-action bands in sand, with blue accents only */
.nk-cta-band {
	background: var(--nk-sand);
	color: var(--nk-ink);
}
.nk-cta-band h2 { color: var(--nk-ink); }
.nk-cta-band p { color: var(--nk-muted); }
.nk-cta-band .nk-btn--light {
	background: var(--nk-navy);
	border-color: var(--nk-navy);
	color: #fff;
}
.nk-cta-band .nk-btn--light:hover {
	background: transparent;
	color: var(--nk-navy);
	border-color: var(--nk-navy);
}

/* Map sits in the right-hand column on the contact page */
.nk-map {
	margin-top: 0;
	min-height: 420px;
	height: 100%;
}
.nk-map iframe {
	height: 100%;
	min-height: 420px;
	width: 100%;
}

/* Hero photo overlay is softer so the landscape reads */
.nk-hero--bg::before {
	background: linear-gradient(90deg, rgba(11, 31, 58, .88) 0%, rgba(11, 31, 58, .55) 60%, rgba(11, 31, 58, .30) 100%);
}

/* Enquiry card on the contact page: sand background, navy text */
.nk-contact-form-card {
	background: var(--nk-sand);
	border-color: var(--nk-sand-dark);
	color: var(--nk-ink);
}
.nk-contact-form-card h3 { color: var(--nk-ink); }
.nk-contact-form-card .nk-form-row label { color: var(--nk-navy); }
.nk-contact-form-card .nk-form-row input,
.nk-contact-form-card .nk-form-row select,
.nk-contact-form-card .nk-form-row textarea {
	color: var(--nk-ink);
	border-bottom-color: var(--nk-sand-dark);
	background: transparent;
}
.nk-contact-form-card .nk-btn { background: var(--nk-navy); border-color: var(--nk-navy); color: #fff; }
.nk-contact-form-card .nk-btn:hover { background: transparent; color: var(--nk-navy); }

/* ---- v1.5 type system: DM Serif Display (headings), Manrope (body), IBM Plex Mono (captions and labels) ---- */
.nk-eyebrow,
.nk-label,
.nk-stat-label,
.nk-team-card .nk-role,
.nk-practice-card .nk-num,
.nk-footer-title,
.nk-form-row label,
.nk-link,
.nk-btn,
.nk-header-phone {
	font-family: var(--nk-mono);
}
.nk-eyebrow,
.nk-label,
.nk-stat-label,
.nk-footer-title,
.nk-form-row label {
	letter-spacing: .06em;
	text-transform: uppercase;
	font-weight: 500;
}
.nk-btn { letter-spacing: .04em; text-transform: uppercase; font-weight: 500; }
.nk-steps .nk-num,
.nk-stat-value,
.nk-quote p,
.nk-faq summary,
.nk-related a,
.nk-quickmenu h2,
.nk-team-placeholder,
.nk-practice-media--empty {
	font-family: var(--nk-serif);
}
h1, h2, h3, h4 { font-weight: 400; }
