/*
Theme Name: Twenty Twenty-Five Child
Theme URI:
Description: Portfolio child theme for Twenty Twenty-Five — dark/moody aesthetic with violet accent.
Author: JO Dunson
Author URI:
Template: twentytwentyfive
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive-child
Requires at least: 6.4
Requires PHP: 8.0
*/

/*
 * Note: In PHP files, all theme files include `defined('ABSPATH') || exit;`
 * to prevent direct access. This is a CSS file, so no PHP guard is needed here.
 */

/* === Design Tokens (Custom Properties) === */
:root {
	/* Color aliases referencing theme.json preset tokens */
	--portfolio-accent: var(--wp--preset--color--accent);
	--portfolio-accent-light: var(--wp--preset--color--accent-300);
	--portfolio-accent-dark: var(--wp--preset--color--accent-700);
	--portfolio-primary: var(--wp--preset--color--primary);
	--portfolio-background: var(--wp--preset--color--background);
	--portfolio-foreground: var(--wp--preset--color--foreground);
	--portfolio-meta-color: #8a7a9a;

	/* Layout tokens */
	--portfolio-content-width: 1240px;
	--portfolio-prose-width: 600px;
	--portfolio-edge-padding: 1rem;
	--portfolio-grid-gap: clamp(1rem, 2vw, 2rem);

	/* Spacing tokens */
	--portfolio-section-gap: 2.5rem;
	--portfolio-nav-content-gap: 5rem;
	--portfolio-heading-gap: 1rem;
	--portfolio-hero-heading-gap: 3rem;

	/* Interaction tokens */
	--portfolio-transition-speed: 300ms;

	/* Component tokens */
	--portfolio-radius: 8px;
	--portfolio-card-border: 1px solid var(--wp--preset--color--accent-700);
}

/* === Global Styles === */
html {
	scrollbar-width: none;
}

html::-webkit-scrollbar {
	display: none;
}

body {
	font-size: 1.125rem;
	color: var(--wp--preset--color--accent-500, #8B5BF5);
}

/* === Paragraph text stays white === */
p,
li,
td,
blockquote {
	color: var(--wp--preset--color--foreground, #f7f6f7);
}

/* === Prevent widows and orphans === */
p,
h1, h2, h3, h4, h5, h6,
li,
blockquote {
	text-wrap: pretty;
}

/* === Force left-alignment on constrained layouts === */
.wp-site-blocks .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	margin-left: 0;
	margin-right: auto;
}

/* === Consistent 1rem edge padding — prevent double application === */
.wp-site-blocks {
	padding-left: 1rem !important;
	padding-right: 1rem !important;
}

/* Override WP root padding variables that parent theme may set */
body {
	--wp--style--root--padding-left: 0px !important;
	--wp--style--root--padding-right: 0px !important;
}

.wp-site-blocks > .wp-block-group,
.wp-site-blocks > .wp-block-template-part {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Constrained layouts should not add their own horizontal padding */
.is-layout-constrained {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* === Prose width constraint === */
.has-prose-width {
	max-width: var(--portfolio-prose-width);
}

/* === Section spacing === */
.wp-block-group + .wp-block-group {
	margin-block-start: var(--portfolio-section-gap);
}

/* === Meta/Label treatment === */
.portfolio-meta,
.portfolio-label {
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--portfolio-meta-color);
}

/* === Buttons === */
.wp-block-button.is-style-fill .wp-block-button__link,
.wp-element-button {
	border-radius: var(--portfolio-radius);
}

/* === Images: no radius, no gaps === */
.wp-block-image,
.wp-block-post-featured-image {
	margin: 0;
	padding: 0;
}

.wp-block-image img,
.wp-block-post-featured-image img,
.portfolio-card__image img {
	border-radius: 0;
	display: block;
	margin: 0;
	padding: 0;
}

/* === Portfolio Hero === */
.portfolio-hero {
	padding: 5rem 0;
}

.portfolio-hero__inner {
	max-width: var(--portfolio-content-width, 1240px);
	margin: 0 auto;
	padding: 0;
}

.portfolio-hero__title {
	font-family: var(--wp--preset--font-family--instrument-sans, 'Instrument Sans', sans-serif);
	font-size: 3.5rem;
	font-weight: 700;
	font-style: normal;
	line-height: 1.15;
	color: var(--wp--preset--color--accent-500, #8B5BF5);
	margin: 0;
}

.portfolio-hero__subtitle {
	font-family: var(--wp--preset--font-family--instrument-sans, 'Instrument Sans', sans-serif);
	font-size: 3.5rem;
	font-weight: 700;
	font-style: normal;
	line-height: 1.15;
	color: var(--wp--preset--color--foreground, #f7f6f7);
	margin: 0;
	text-wrap: pretty;
}

.portfolio-hero__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 3rem;
}

.portfolio-hero__btn {
	display: inline-flex;
	align-items: center;
	padding: 1rem 2rem;
	font-size: 1.125rem;
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--portfolio-radius, 8px);
	transition: background-color var(--portfolio-transition-speed, 300ms) ease,
		color var(--portfolio-transition-speed, 300ms) ease;
}

.portfolio-hero__btn--primary {
	background-color: var(--wp--preset--color--accent-500, #8B5BF5);
	color: var(--wp--preset--color--background, #09090a);
}

.portfolio-hero__btn--primary:hover {
	background-color: var(--wp--preset--color--accent-400, #a584f7);
}

.portfolio-hero__btn--outline {
	background: transparent;
	border: 1px solid var(--wp--preset--color--accent-500, #8B5BF5);
	color: var(--wp--preset--color--accent-500, #8B5BF5);
}

.portfolio-hero__btn--outline:hover {
	background-color: var(--wp--preset--color--accent-500, #8B5BF5);
	color: var(--wp--preset--color--background, #09090a);
}

@media (max-width: 767px) {
	.portfolio-hero__title,
	.portfolio-hero__subtitle {
		font-size: clamp(2rem, 8vw, 3.5rem);
	}
}

