/*
Theme Name: CADATTACK
Description: A minimal technical project archive for CADATTACK.
Author: CADATTACK
Version: 0.6.3
Template: twentytwentyfive
Text Domain: cadattack
*/

@font-face {
	font-display: swap;
	font-family: "Chakra Petch";
	font-style: normal;
	font-weight: 700;
	src: url("assets/ChakraPetch-Bold.ttf") format("truetype");
}

:root {
	--cad-line: #2b3948;
	--cad-muted: #9eacbc;
	--cad-accent: #3f86d6;
	--cad-surface: #131e2c;
	--cad-signal: #ffd500;
	--cad-deep: #07111a;
}

/* Industrial hero layout */
.cadattack-home { padding-left: 0 !important; padding-right: 0 !important; }
.cadattack-home > * { margin-block-start: 0; }

.cadattack-header {
	background: rgba(7, 17, 26, 0.97);
	border-bottom: 1px solid rgba(158, 172, 188, 0.35);
	position: relative;
	z-index: 5;
}

.cadattack-header-inner {
	align-items: center;
	display: grid;
	gap: clamp(1rem, 3vw, 3rem);
	grid-template-columns: minmax(16rem, 28rem) 1fr auto;
	margin: 0 auto;
	max-width: 1536px;
	min-height: 52px;
	padding: 0 clamp(1.25rem, 3.5vw, 3.5rem);
}

.cadattack-header .cadattack-logo img { width: min(100%, 23rem); }

.cadattack-nav {
	font-family: var(--wp--preset--font-family--technical);
	font-size: 0.76rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cadattack-nav .wp-block-navigation-item__content {
	padding: 1rem 0 0.8rem;
	position: relative;
	text-decoration: none;
}

.cadattack-nav .current-menu-item .wp-block-navigation-item__content,
.cadattack-nav .current-menu-ancestor .wp-block-navigation-item__content,
.home .cadattack-nav .wp-block-navigation-item:nth-child(1) .wp-block-navigation-item__content,
.post-type-archive-project .cadattack-nav .wp-block-navigation-item:nth-child(2) .wp-block-navigation-item__content,
.single-project .cadattack-nav .wp-block-navigation-item:nth-child(2) .wp-block-navigation-item__content,
.page-id-120 .cadattack-nav .wp-block-navigation-item:nth-child(4) .wp-block-navigation-item__content,
.cadattack-nav .wp-block-navigation-item__content:hover { color: var(--cad-signal); }

.cadattack-nav .current-menu-item .wp-block-navigation-item__content::after,
.cadattack-nav .current-menu-ancestor .wp-block-navigation-item__content::after,
.home .cadattack-nav .wp-block-navigation-item:nth-child(1) .wp-block-navigation-item__content::after,
.post-type-archive-project .cadattack-nav .wp-block-navigation-item:nth-child(2) .wp-block-navigation-item__content::after,
.single-project .cadattack-nav .wp-block-navigation-item:nth-child(2) .wp-block-navigation-item__content::after,
.page-id-120 .cadattack-nav .wp-block-navigation-item:nth-child(4) .wp-block-navigation-item__content::after {
	background: var(--cad-signal);
	bottom: 0;
	content: "";
	height: 3px;
	left: 0;
	position: absolute;
	right: 0;
}

.cadattack-header-mark {
	border-left: 1px solid rgba(158, 172, 188, 0.35);
	color: var(--cad-muted);
	display: grid;
	font-family: var(--wp--preset--font-family--technical);
	font-size: 0.62rem;
	letter-spacing: 0.13em;
	line-height: 1.35;
	padding-left: 1rem;
	text-transform: uppercase;
}

.cadattack-hero {
	background-image: url('/wp-content/themes/cadattack/assets/hero-1536.avif');
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	border-bottom: 1px solid rgba(158, 172, 188, 0.45);
	min-height: clamp(36rem, calc(100vh - 90px), 51.5rem);
	position: relative;
}

.cadattack-hero-shade {
	background: linear-gradient(90deg, rgba(7,17,26,.98) 0%, rgba(7,17,26,.86) 23%, rgba(7,17,26,.2) 53%, rgba(7,17,26,.04) 100%);
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.cadattack-hero-content {
	left: clamp(1.5rem, 3.7vw, 3.6rem);
	max-width: 29rem;
	position: absolute;
	top: clamp(4rem, 10vh, 7rem);
	z-index: 1;
}

.cadattack-eyebrow {
	color: var(--cad-muted);
	font-family: var(--wp--preset--font-family--technical);
	font-size: clamp(.73rem, 1vw, .9rem);
	letter-spacing: .2em;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

.cadattack-hero h1 {
	font-size: clamp(2.6rem, 4.2vw, 4.2rem);
	font-weight: 700;
	letter-spacing: .025em;
	line-height: .96;
	margin: 0;
	text-transform: uppercase;
}

.cadattack-hero-copy {
	color: #d2d8df;
	font-size: clamp(.96rem, 1.2vw, 1.15rem);
	line-height: 1.5;
	margin: 1.35rem 0 1.5rem;
	max-width: 25rem;
}

.cadattack-cta {
	align-items: center;
	border: 2px solid var(--cad-signal);
	color: var(--cad-signal);
	display: flex;
	font-family: var(--wp--preset--font-family--technical);
	font-size: .8rem;
	font-weight: 700;
	justify-content: space-between;
	letter-spacing: .14em;
	max-width: 15rem;
	padding: 1rem 1.4rem;
	text-decoration: none;
	text-transform: uppercase;
}
.cadattack-cta:hover { background: var(--cad-signal); color: var(--cad-deep); }

.cadattack-hero-side {
	bottom: 52%;
	color: rgba(233,238,244,.66);
	display: grid;
	font-family: var(--wp--preset--font-family--technical);
	font-size: .9rem;
	gap: .35rem;
	letter-spacing: .08em;
	position: absolute;
	right: 3.5rem;
	text-transform: uppercase;
}
.cadattack-hero-side::after { background: var(--cad-signal); content: ""; height: 4px; margin-top: .65rem; width: 4.5rem; }

.cadattack-capabilities {
	background: rgba(7,17,26,.98);
	border-bottom: 1px solid var(--cad-line);
	display: grid;
	grid-template-columns: repeat(4,1fr);
	margin: 0 auto;
	max-width: 1536px;
	padding: 1.7rem clamp(1.5rem,3.7vw,3.6rem);
}
.cadattack-capability { align-items:center; border-right:1px solid var(--cad-line); display:flex; gap:1rem; min-width:0; padding:0 1.3rem; }
.cadattack-capability:first-child { padding-left:0; }
.cadattack-capability:last-child { border-right:0; }
.cadattack-capability > span:last-child { display:grid; gap:.25rem; }
.cadattack-capability strong,.cadattack-capability small { font-family:var(--wp--preset--font-family--technical); letter-spacing:.08em; text-transform:uppercase; }
.cadattack-capability strong { font-size:.72rem; }
.cadattack-capability small { color:var(--cad-muted); font-size:.6rem; }
.cadattack-cap-icon {
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	color: var(--cad-signal);
	display: block;
	flex: 0 0 3rem;
	font-size: 0;
	height: 3rem;
	line-height: 0;
	width: 3rem;
}
.cadattack-capability:nth-child(1) .cadattack-cap-icon { background-image: url('/wp-content/themes/cadattack/assets/icon-cad.svg'); }
.cadattack-capability:nth-child(2) .cadattack-cap-icon { background-image: url('/wp-content/themes/cadattack/assets/icon-laser.svg'); }
.cadattack-capability:nth-child(3) .cadattack-cap-icon { background-image: url('/wp-content/themes/cadattack/assets/icon-print.svg'); }
.cadattack-capability:nth-child(4) .cadattack-cap-icon { background-image: url('/wp-content/themes/cadattack/assets/icon-dfm.svg'); }
.cadattack-cap-icon svg {
	display: none;
	fill: none;
	height: 100%;
	stroke: currentColor;
	stroke-linecap: square;
	stroke-linejoin: miter;
	stroke-width: 1.8;
	vector-effect: non-scaling-stroke;
	width: 100%;
}
.cadattack-project-index { padding:clamp(3rem,7vw,7rem) clamp(1rem,3vw,2.5rem) 0; }

/* The homepage ends at the process/capabilities band. */
.home .cadattack-project-index,
.home footer {
	display: none;
}

/* Project archive */
.cadattack-archive-shell {
	background: var(--cad-deep);
	overflow-x: clip;
}

.cadattack-archive-shell > .cadattack-archive-hero {
	background-image: linear-gradient(90deg, rgba(7,17,26,.95) 0%, rgba(7,17,26,.78) 34%, rgba(7,17,26,.08) 67%, rgba(7,17,26,0)), url('/wp-content/themes/cadattack/assets/projects-hero-kalle-kran-v3.png');
	background-position: center 48%;
	background-size: cover;
	border-bottom: 1px solid var(--cad-line);
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: none !important;
	min-height: 300px;
	position: relative;
	width: 100vw !important;
}

.cadattack-archive-hero-content {
	max-width: 34rem;
	padding: clamp(3rem, 6vw, 5.5rem) clamp(1.5rem, 3.7vw, 3.6rem) 2.5rem;
}

.cadattack-archive-hero h1 {
	font-size: clamp(3.5rem, 6.5vw, 6rem);
	font-weight: 700;
	letter-spacing: .04em;
	line-height: .9;
	margin: 0 0 .8rem;
	text-transform: uppercase;
}

.cadattack-archive-hero-content > p:last-child {
	color: #d2d8df;
	line-height: 1.45;
	margin: 0;
	max-width: 31rem;
}

.cadattack-page-title {
	font-size: clamp(3.5rem, 6.5vw, 6rem);
	font-weight: 700;
	letter-spacing: .04em;
	line-height: .9;
	text-transform: uppercase;
}

.cadattack-about-layout {
	align-items: center;
	display: grid;
	gap: clamp(2rem, 5vw, 5rem);
	grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr);
	margin-top: clamp(1.5rem, 3vw, 3rem);
}

.cadattack-about-copy {
	color: #d2d8df;
	font-size: clamp(1rem, 1.15vw, 1.15rem);
	line-height: 1.7;
}

.cadattack-about-copy p:first-child { margin-top: 0; }
.cadattack-about-copy p:last-child { margin-bottom: 0; }

.cadattack-about-portrait {
	border: 1px solid var(--cad-line);
	margin: 0;
	padding: .55rem;
	position: relative;
}

.cadattack-about-portrait::after {
	border-right: 2px solid var(--cad-signal);
	border-top: 2px solid var(--cad-signal);
	content: "";
	height: 2.5rem;
	position: absolute;
	right: -.4rem;
	top: -.4rem;
	width: 2.5rem;
}

.cadattack-about-portrait img {
	display: block;
	height: auto;
	width: 100%;
}

.cadattack-about {
	padding: clamp(1.25rem, 2.5vw, 2.5rem) clamp(1.5rem, 3.7vw, 3.6rem) clamp(4rem, 7vw, 7rem);
}

.cadattack-about-grid {
	align-items: center;
	display: grid;
	gap: clamp(2rem, 5vw, 5rem);
	grid-template-columns: minmax(0, 1fr) minmax(17rem, .72fr);
	margin-top: clamp(1rem, 2vw, 1.75rem);
}

.cadattack-about-copy {
	color: #d2d8df;
	font-size: clamp(1rem, 1.3vw, 1.15rem);
	line-height: 1.65;
}

.cadattack-about-portrait {
	border: 1px solid var(--cad-line);
	box-shadow: 14px 14px 0 rgba(19, 30, 44, .9), 14px 14px 0 1px rgba(255, 213, 0, .28);
	margin: 0;
}

.cadattack-about-portrait img {
	aspect-ratio: 1;
	display: block;
	object-fit: cover;
	width: 100%;
}

.cadattack-filterbar {
	align-items: stretch;
	background: rgba(7,17,26,.98);
	border-bottom: 1px solid var(--cad-line);
	display: grid;
	gap: .8rem;
	grid-template-columns: 1fr minmax(14rem, 21rem);
	padding: 0 clamp(1.5rem, 3.7vw, 3.6rem);
}

.cadattack-filterlinks {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cadattack-filterlinks br { display: none; }

.cadattack-filterlinks a {
	align-items: center;
	border-left: 1px solid var(--cad-line);
	color: var(--cad-muted);
	display: flex;
	font-family: var(--wp--preset--font-family--technical);
	font-size: .68rem;
	justify-content: center;
	letter-spacing: .08em;
	min-width: 0;
	padding: .9rem 1.25rem;
	text-decoration: none;
	text-transform: uppercase;
}
.cadattack-filterlinks a:last-child { border-right: 1px solid var(--cad-line); }
.cadattack-filterlinks a:hover { color: var(--wp--preset--color--graphite); }
.cadattack-filterlinks a.is-active { box-shadow: inset 0 0 0 2px var(--cad-signal); color: var(--cad-signal); }

.cadattack-project-search {
	align-items: center;
	align-self: center;
	border: 1px solid var(--cad-line);
	display: flex;
	height: 2.45rem;
	margin: .45rem 0;
}
.cadattack-project-search input[type="search"] {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--graphite);
	font-family: var(--wp--preset--font-family--technical);
	font-size: .7rem;
	height: 100%;
	min-width: 0;
	outline: 0;
	padding: 0 .85rem;
	width: 100%;
}
.cadattack-project-search button {
	background: transparent;
	border: 0;
	color: var(--cad-signal);
	cursor: pointer;
	font-size: 1.35rem;
	height: 100%;
	padding: 0 .8rem;
}

.cadattack-archive-grid {
	padding: clamp(1rem, 2vw, 1.75rem) clamp(1.5rem, 3.7vw, 3.6rem) clamp(3rem, 6vw, 6rem);
}
.cadattack-archive-grid .wp-block-post-template { gap: .75rem; }
.cadattack-archive-grid .cadattack-project-card {
	border: 1px solid var(--cad-line);
	position: relative;
}
.cadattack-archive-grid .cadattack-project-card .wp-block-post-featured-image { margin: 0; }
.cadattack-archive-grid .cadattack-card-body { min-height: 4.4rem; padding: .75rem 3.25rem .7rem .85rem; position: relative; }
.cadattack-archive-grid .cadattack-card-body::after {
	color: var(--cad-signal);
	content: "→";
	font-family: var(--wp--preset--font-family--technical);
	font-size: 1.5rem;
	position: absolute;
	right: .9rem;
	top: 50%;
	transform: translateY(-50%);
}
.cadattack-archive-grid .wp-block-post-terms { font-size: .63rem; margin: 0 0 .15rem; }
.cadattack-archive-grid .wp-block-post-terms__separator { display: none; }
.cadattack-archive-grid .wp-block-post-title { font-family: var(--wp--preset--font-family--technical); font-size: .8rem !important; letter-spacing: .04em; text-transform: uppercase; }
.cadattack-archive-grid .wp-block-post-title a::after { content: ""; inset: 0; position: absolute; }

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	color-scheme: dark;
	text-rendering: optimizeLegibility;
}

body.page,
body.post-type-archive-project,
body.single-project {
	background-color: var(--cad-deep);
}

a {
	text-underline-offset: 0.18em;
}

.cadattack-shell {
	border-left: 1px solid var(--cad-line);
	border-right: 1px solid var(--cad-line);
}

.cadattack-shell > * {
	margin-left: auto;
	margin-right: auto;
	width: min(100%, var(--wp--style--global--wide-size));
}

.cadattack-header {
	border-bottom: 1px solid var(--cad-line);
}

.cadattack-header,
.cadattack-section-rule {
	position: relative;
}

.cadattack-logo {
	display: inline-flex;
	line-height: 0;
}

.cadattack-logo img {
	display: block;
	height: auto;
	width: clamp(18rem, 50vw, 36rem);
}

.cadattack-kicker,
.cadattack-project-meta,
.wp-block-post-terms {
	color: var(--cad-muted);
	font-family: var(--wp--preset--font-family--technical);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cadattack-intro {
	border-bottom: 1px solid var(--cad-line);
}

.cadattack-project-grid .wp-block-post-template {
	display: grid;
	gap: clamp(1.1rem, 2.2vw, 2rem) clamp(0.75rem, 1.8vw, 1.5rem);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cadattack-project-card {
	min-width: 0;
}

.cadattack-project-card .wp-block-post-featured-image {
	background: var(--cad-surface);
	margin-bottom: 0.65rem;
	overflow: hidden;
}

.cadattack-project-card .wp-block-post-featured-image img {
	aspect-ratio: 4 / 3;
	display: block;
	object-fit: cover;
	transition: opacity 160ms ease;
}

.cadattack-project-card:hover .wp-block-post-featured-image img {
	opacity: 0.88;
}

.cadattack-project-card .wp-block-post-title {
	margin: 0.3rem 0 0;
}

.cadattack-project-card .wp-block-post-title a {
	text-decoration: none;
}

.cadattack-title-block {
	border-bottom: 1px solid var(--cad-line);
	border-top: 1px solid var(--cad-line);
}

.cadattack-project-content > .wp-block-image,
.cadattack-project-content > .wp-block-gallery,
.cadattack-project-content > .wp-block-columns {
	margin-bottom: clamp(1.5rem, 4vw, 3.5rem);
	margin-top: clamp(1.5rem, 4vw, 3.5rem);
}

.cadattack-project-content figcaption {
	color: var(--cad-muted);
	font-family: var(--wp--preset--font-family--technical);
	font-size: 0.75rem;
	line-height: 1.5;
	margin-top: 0.55rem;
	text-align: left;
}

.cadattack-footer {
	border-top: 1px solid var(--cad-line);
}

@media (max-width: 960px) {
	.cadattack-header-inner { grid-template-columns: minmax(15rem, 1fr) auto; }
	.cadattack-header-mark { display: none; }
	.cadattack-capabilities { grid-template-columns: repeat(2, 1fr); row-gap: 1.5rem; }
	.cadattack-capability:nth-child(2) { border-right: 0; }
	.cadattack-filterbar { grid-template-columns: 1fr; padding-bottom: .75rem; }
	.cadattack-project-search { margin: 0; }
	.cadattack-project-grid .wp-block-post-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.cadattack-about-layout { grid-template-columns: 1fr; }
	.cadattack-about-portrait { margin: 0 auto; max-width: 30rem; }
	.cadattack-header-inner { min-height: 54px; }
	.cadattack-header .cadattack-logo img { width: min(18rem, 68vw); }
	.cadattack-hero {
		background-image: url('/wp-content/themes/cadattack/assets/hero-640.avif');
		background-position: 63% center;
		min-height: 42rem;
	}
	.cadattack-hero-shade { background: linear-gradient(90deg, rgba(7,17,26,.96), rgba(7,17,26,.65) 64%, rgba(7,17,26,.18)); }
	.cadattack-hero-content { left: 1.25rem; right: 1.25rem; top: 4rem; }
	.cadattack-hero h1 { font-size: clamp(2.25rem, 10vw, 3.25rem); }
	.cadattack-hero-side { display: none; }
	.cadattack-capabilities { grid-template-columns: 1fr; }
	.cadattack-capability { border-bottom: 1px solid var(--cad-line); border-right: 0; padding: 0 0 1.25rem; }
	.cadattack-capability:last-child { border-bottom: 0; padding-bottom: 0; }
	.cadattack-archive-hero { background-image: linear-gradient(90deg, rgba(7,17,26,.94), rgba(7,17,26,.52)), url('/wp-content/themes/cadattack/assets/projects-hero-kalle-kran-v3.png'); background-position: 64% center; min-height: 255px; }
	.cadattack-archive-hero-content { padding: 3rem 1.25rem 2rem; }
	.cadattack-filterbar { padding-left: 1.25rem; padding-right: 1.25rem; }
	.cadattack-filterlinks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cadattack-filterlinks a { padding-left: .8rem; padding-right: .8rem; }
	.cadattack-about-grid { grid-template-columns: 1fr; }
	.cadattack-about-portrait { justify-self: center; max-width: 28rem; }
	.cadattack-archive-grid { padding-left: 1.25rem; padding-right: 1.25rem; }
	.cadattack-project-grid .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 460px) {
	.cadattack-filterlinks {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cadattack-project-grid .wp-block-post-template {
		grid-template-columns: 1fr;
	}

	.cadattack-shell {
		border-left: 0;
		border-right: 0;
	}
}

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

/* Native block editor compatibility; shared with the public site. */
.cadattack-header > .cadattack-header-inner { max-width:1536px; margin:0 auto; }
.cadattack-header-inner > * { margin-block-start:0; margin-block-end:0; }
.cadattack-hero > .cadattack-hero-content { margin-block-start:0; }
.cadattack-hero-buttons { margin:0; }
.cadattack-cta-block { width:15rem; max-width:100%; }
.cadattack-cta-block .wp-block-button__link { align-items:center; background:transparent; border:2px solid var(--cad-signal); border-radius:0; color:var(--cad-signal); display:flex; font-family:var(--wp--preset--font-family--technical); font-size:.8rem; font-weight:700; justify-content:space-between; letter-spacing:.14em; padding:1rem 1.4rem; text-decoration:none; text-transform:uppercase; }
.cadattack-cta-block .wp-block-button__link::after { content:"→"; }
.cadattack-cta-block .wp-block-button__link:hover { background:var(--cad-signal); color:var(--cad-deep); }
.cadattack-capabilities > .cadattack-capability { margin-block-start:0; margin-block-end:0; }
.cadattack-capability > * { margin:0; }
.cadattack-capability-text { display:grid; gap:.25rem; }
.cadattack-capability-text > p { margin:0; line-height:1.6; }
.editor-styles-wrapper .cadattack-header-inner { width:100%; }

/* Keep native Group spacing from changing the established layout. */
.cadattack-header.wp-block-group { padding-left:0; padding-right:0; }
.cadattack-home > .wp-block-group { margin-block-start:0; }
.cadattack-header-inner > .cadattack-nav, .cadattack-header-inner > .cadattack-header-mark { margin-block:0; }
.cadattack-header .cadattack-nav { font-size:.76rem; }
.cadattack-hero-content > .cadattack-eyebrow { margin:0 0 1rem; }
.cadattack-hero-content > .cadattack-hero-copy { margin:1.35rem 0 1.5rem; }
.cadattack-hero-content > .cadattack-hero-buttons { margin:0; }
.cadattack-capability-text > .wp-block-paragraph { margin:0; }

.cadattack-header-inner.wp-block-group { min-height:68px; }
.cadattack-header-inner > .cadattack-nav { justify-self:center; }
.cadattack-archive-hero > .cadattack-archive-hero-content { margin-top:0; }
.cadattack-archive-hero-content > .cadattack-eyebrow { margin:0 0 1rem; }
.cadattack-archive-hero-content > .wp-block-heading { margin:0 0 .8rem; }
.cadattack-archive-hero-content > .cadattack-archive-description { margin:0; }
@media (max-width:960px) { .cadattack-header-inner > .cadattack-nav { justify-self:end; } }
@media (max-width:700px) { .cadattack-header-inner.wp-block-group { min-height:54px; } }
