/*
Theme Name:        TRL NLSV
Template:          trl-block-theme-starter
Author:            TechRidge Labs LLC
Author URI:        https://techridgelabs.com
Description:       NLSV Consulting LLC child of the TRL Block Theme Starter. Navy + steel from the N.L.S.V. logo; layout follows the 2026-09-12 prototype.
Version:           0.1.0
Requires at least: 7.0
Requires PHP:      8.1
License:           GPL-2.0-or-later
Text Domain:       trl-nlsv
*/

/* ---- NLSV: mechanics theme.json can't express ---- */

/* Bands butt together */
.wp-site-blocks > * + * { margin-block-start: 0; }
main > .wp-block-post-content > * + * { margin-block-start: 0; }

/* Header logo */
.nlsv-logo img { display: block; height: 52px; width: auto; }
.nlsv-footer-logo img { display: block; height: 64px; width: auto; }

/* Current nav item */
.nlsv-nav .wp-block-navigation-item a[aria-current="page"] {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent-bright);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}

/* Hero: navy with a fine dot texture and the logo's diamond as a large shape */
.nlsv-hero { position: relative; overflow: hidden; }
.nlsv-hero::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image: radial-gradient(rgba(255,255,255,0.07) 1px, transparent 1px);
	background-size: 18px 18px;
}
.nlsv-hero::after {
	content: ""; position: absolute; width: 640px; height: 640px; right: -140px; top: -120px;
	border: 56px solid rgba(255,255,255,0.05); transform: rotate(45deg); pointer-events: none;
}
.nlsv-hero > * { position: relative; z-index: 1; }

/* Eyebrows (Outfit uppercase, tracked) */
.nlsv-eyebrow {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: 0.8125rem; letter-spacing: 0.16em; text-transform: uppercase;
}

/* Fact strip */
.nlsv-facts > .wp-block-column { border-left: 1px solid var(--wp--preset--color--line); padding-left: var(--wp--preset--spacing--40); }
.nlsv-facts > .wp-block-column:first-child { border-left: 0; padding-left: 0; }
.nlsv-facts p { margin: 0; }

/* Dotted paper behind the services grid */
.nlsv-dots { background-image: radial-gradient(var(--wp--preset--color--line) 1px, transparent 1px); background-size: 22px 22px; }

/* Service cards */
.nlsv-card {
	background: var(--wp--preset--color--surface-bright);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
	transition: transform .2s ease, box-shadow .2s ease;
}
.nlsv-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(2,45,86,0.10); }
.nlsv-card h3 { margin: 0; }
.nlsv-card p { margin: 0; }
.nlsv-card--dark { background: var(--wp--preset--color--brand-primary); border-color: var(--wp--preset--color--brand-primary); }
.nlsv-card--dashed { background: transparent; border-style: dashed; }

/* Placeholder copy Nakia still has to supply */
.nlsv-todo { background: #FFF4CC; color: #5A4500; padding: 0 .25em; }

/* Headshot in the logo's diamond */
.nlsv-diamond { aspect-ratio: 1; max-width: 460px; margin-inline: auto; position: relative; }
.nlsv-diamond::before { content: ""; position: absolute; inset: 15%; border: 12px solid #D6E3F3; transform: rotate(45deg); }
.nlsv-diamond figure, .nlsv-diamond .nlsv-diamond-inner {
	position: absolute; inset: 22%; margin: 0; overflow: hidden; transform: rotate(45deg);
	background: var(--wp--preset--color--brand-accent);
	display: flex; align-items: center; justify-content: center;
}
.nlsv-diamond img { width: 142%; height: 142%; max-width: none; object-fit: cover; transform: rotate(-45deg); }
.nlsv-diamond .nlsv-diamond-inner p { transform: rotate(-45deg); color: #fff; text-align: center; font-size: .8rem; margin: 0; max-width: 70%; }

/* Testimonials */
.nlsv-quote { border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.04); border-radius: 4px; }
.nlsv-quote p { margin: 0; }
.nlsv-quote .nlsv-quote-mark { font-family: var(--wp--preset--font-family--source-serif-4); font-size: 3rem; line-height: 1; color: var(--wp--preset--color--accent-bright); }

/* Booking band: diagonal cut */
.nlsv-book { background: linear-gradient(105deg, var(--wp--preset--color--surface) 0 40%, var(--wp--preset--color--surface-bright) 40% 100%); }

/* Fade-up on load (off for reduced motion) */
@media (prefers-reduced-motion: no-preference) {
	.nlsv-rise { animation: nlsv-rise .7s ease both; }
	.nlsv-rise-2 { animation-delay: .1s; } .nlsv-rise-3 { animation-delay: .2s; }
	@keyframes nlsv-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}

.nlsv-footer p { margin: 0; }

@media (max-width: 781px) {
	.nlsv-facts > .wp-block-column { border-left: 0; padding-left: 0; }
	.nlsv-hero::after { width: 360px; height: 360px; right: -160px; }
	.nlsv-book { background: var(--wp--preset--color--surface); }
}

/* Measures for hero copy */
.nlsv-w-lg, .nlsv-w-md { margin-left: max(0px, calc((100% - 1200px) / 2)) !important; }
.nlsv-w-lg { max-width: 860px !important; }
.nlsv-w-md { max-width: 600px !important; }
