/*
Theme Name: corpo-paisagem
Description: Brutalist block theme for the corpo-paisagem collective — one index of collective and individual works, work pages, artist pages and collaborators.
Author: corpo-paisagem
Version: 1.0.5
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: corpo-paisagem
*/

/* ---------- basics ---------- */
a { text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 3px; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }

.cp-mono,
.cp-label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.cp-label { font-size: 12px; letter-spacing: 0.06em; margin-bottom: 8px; }
.cp-name { color: var(--wp--preset--color--accent); text-transform: none; white-space: nowrap; }
.wp-block-site-title { white-space: nowrap; }
.cp-rule { border-top: 2px solid #000; }
.cp-rule-bottom { border-bottom: 2px solid #000; }

/* ---------- header / footer ---------- */
.cp-header { border-bottom: 2px solid #000; }
.cp-header > .wp-block-group { padding-top: 20px; padding-bottom: 20px; gap: 16px; }
.cp-nav .wp-block-navigation__container { gap: 8px 28px; }
.cp-nav .wp-block-navigation-item__content { text-decoration: underline; text-underline-offset: 3px; }
.cp-nav .current-menu-item > .wp-block-navigation-item__content { text-decoration-thickness: 3px; }
.cp-footer { border-top: 2px solid #000; }
.cp-footer > .wp-block-group { padding-top: 48px; padding-bottom: 48px; gap: 24px; }
.cp-footer-mail { font-weight: 800; font-size: clamp(18px, 6vw, 40px); letter-spacing: -0.02em; margin: 0; white-space: nowrap; }

/* ---------- statement ---------- */
.cp-statement {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 500;
	line-height: 1.04;
	letter-spacing: -0.025em;
	max-width: 1180px;
}

/* ---------- filter chips (category list) ---------- */
.cp-filter-row { gap: 8px; }
.cp-chip a,
ul.cp-filter li a {
	display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box;
	padding: 0 16px; border: 2px solid #000; text-decoration: none; color: #000;
	font-family: var(--wp--preset--font-family--mono); font-size: 14px;
	text-transform: uppercase; letter-spacing: 0.04em;
}
.cp-chip { margin: 0; line-height: 1; }
ul.cp-filter { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
ul.cp-filter li { margin: 0; }
ul.cp-filter li a:hover,
.cp-chip a:hover,
ul.cp-filter li.current-cat a { background: #000; color: var(--wp--preset--color--paper); }

/* bigger tap areas without changing the look */
.cp-nav .wp-block-navigation-item__content { padding-top: 11px; padding-bottom: 11px; }
.cp-row .wp-block-post-terms a { display: inline-block; padding: 12px 0; margin: -12px 0; }
.cp-footer .cp-mono a, .cp-mono a, .cp-split .wp-block-column p a { display: inline-block; padding: 12px 0; margin: -12px 0; }

/* ---------- works list (index rows) ---------- */
.cp-rows { list-style: none; margin: 0; padding: 0; border-top: 2px solid #000; }
.cp-rows > li { margin: 0; }
.cp-row,
.cp-row-head {
	display: grid !important;
	grid-template-columns: 96px minmax(0, 2.2fr) minmax(0, 1.4fr) minmax(0, 1.6fr) 40px;
	gap: 24px; align-items: start;
	padding: 22px 0; border-bottom: 1px solid #000;
	position: relative;
}
.cp-row > *, .cp-row-head > * { margin: 0 !important; }
.cp-row > :not(.wp-block-post-title) { padding-top: 5px; }
.cp-row-head { padding: 12px 0; border-bottom: 0; }
.cp-row .wp-block-post-title { font-size: 26px; line-height: 1.1; letter-spacing: -0.01em; font-weight: 800; }
.cp-row .wp-block-post-title a { text-decoration: none; }
.cp-row .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.cp-row .wp-block-post-excerpt__excerpt, .cp-row .wp-block-post-excerpt p { margin: 0; font-size: 16px; }
.cp-row .wp-block-post-excerpt__more-text { display: none; }
.cp-row .wp-block-post-terms a { position: relative; z-index: 1; }
.cp-ar { font-family: var(--wp--preset--font-family--mono); font-size: 20px; text-align: right; }
.cp-row:hover { background: #000; color: var(--wp--preset--color--paper); }
.cp-row:hover a { color: var(--wp--preset--color--paper); }

/* ---------- two-column sections: heading left, content right ---------- */
.cp-split { gap: 40px; padding-top: 40px; border-top: 2px solid #000; }
.cp-split.is-first { border-top: 0; }

/* ---------- facts strip on work pages ---------- */
.cp-facts {
	display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 2px solid #000; gap: 0 !important;
}
.cp-facts > * { margin: 0 !important; padding: 18px 20px 22px 0; border-bottom: 1px solid #000; }

/* ---------- CV lines ---------- */
.cp-cv { list-style: none; margin: 0 0 32px; padding: 0; border-top: 1px solid #000; }
.cp-cv li { padding: 12px 0; border-bottom: 1px solid #000; font-size: 16px; }

/* ---------- media placeholder look ---------- */
.wp-block-image img, .wp-block-embed iframe, .wp-block-video video { display: block; }
.wp-block-image, .wp-block-embed, .wp-block-video { margin-top: 48px; margin-bottom: 48px; }

/* ---------- next work ---------- */
.cp-next { border-top: 2px solid #000; }
.cp-next .post-navigation-link-next,
.cp-next a { font-weight: 800; font-size: clamp(28px, 4vw, 48px); letter-spacing: -0.02em; text-decoration: none; }

/* ---------- collaborators ---------- */
.cp-person { gap: 40px; padding: 36px 0 40px; border-bottom: 1px solid #000; }

.cp-person .wp-block-column > * + * { margin-top: 8px; }

/* ---------- mobile menu overlay ---------- */
.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--paper) !important;
	color: var(--wp--preset--color--ink) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 20px; padding: 6px 0;
}

/* ---------- small screens ---------- */
@media (max-width: 760px) {
	.cp-row, .cp-row-head { grid-template-columns: 64px minmax(0, 1fr); gap: 6px 16px; align-items: start; }
	.cp-row > :nth-child(3), .cp-row > :nth-child(4) { grid-column: 2; }
	.cp-row .cp-ar, .cp-row-head > :nth-child(3), .cp-row-head > :nth-child(4), .cp-row-head > :nth-child(5) { display: none; }
	.cp-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
