/*
Theme Name:   Craftor
Theme URI:    https://craftor.net
Author:       Craftor Team
Author URI:   https://craftor.net
Description:  A blank-canvas companion theme for the Craftor page builder. Ships almost no design of its own — semantic markup, a system font stack, and a header.php/footer.php that hand off to Craftor's Theme Builder — so Craftor's global styles and widgets are the only source of design on the frontend.
Version:      1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.2
License:      GPL v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  craftor-theme
*/

/* ── Reset ─────────────────────────────────────────────────────────────── */

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

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background-color: var( --craftor-color-background, #fff );
	color: var( --craftor-color-text, #1f2937 );
	font-family: var( --craftor-font-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif );
	font-size: var( --craftor-font-size-body, 16px );
	font-weight: var( --craftor-font-weight-body, 400 );
	line-height: var( --craftor-font-line-height-body, 1.6 );
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var( --craftor-color-primary, #4f46e5 );
}

/* ── Skip link ─────────────────────────────────────────────────────────── */

.skip-link {
	position: absolute;
	top: -100px;
	left: 0;
	z-index: 999999;
	padding: 10px 16px;
	background: var( --craftor-color-primary, #4f46e5 );
	color: #fff;
	text-decoration: none;
}

.skip-link:focus {
	top: 0;
}

/* ── Site structure ────────────────────────────────────────────────────── */
/* Same content-width pattern as `.craftor-page` (includes/Assets/frontend/base.css)
   so non-Craftor content (blog archives, 404, native comments) lines up with
   Craftor-built pages instead of running full-bleed. */

.site-content {
	width: 100%;
	max-width: var( --craftor-content-width, 1200px );
	margin-left: auto;
	margin-right: auto;
	padding: var( --craftor-spacing-lg, 32px ) var( --craftor-gap, 24px );
	box-sizing: border-box;
}

/* ── Fallback header/footer ───────────────────────────────────────────────
   Only used when no "Header"/"Footer" Theme Part is published in Craftor —
   see header.php / footer.php. Deliberately minimal, easy to override with
   a real Craftor-built header instead of styling this further.            */

.site-header__inner,
.site-footer__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var( --craftor-spacing-md, 16px );
	max-width: var( --craftor-header-width, var( --craftor-content-width, 1200px ) );
	margin-left: auto;
	margin-right: auto;
	padding: var( --craftor-spacing-md, 16px ) var( --craftor-gap, 24px );
}

.site-branding {
	display: flex;
	align-items: center;
	gap: var( --craftor-spacing-sm, 8px );
}

.site-branding a {
	text-decoration: none;
	color: inherit;
}

.site-title {
	margin: 0;
	font-size: var( --craftor-font-size-heading, 22px );
	font-weight: var( --craftor-font-weight-heading, 700 );
	line-height: 1.2;
}

.site-logo img {
	display: block;
	max-height: 40px;
	width: auto;
}

.site-description {
	margin: 0;
	font-size: 13px;
	opacity: 0.7;
}

.primary-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: var( --craftor-spacing-md, 16px );
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-navigation a {
	text-decoration: none;
	color: inherit;
}

.primary-navigation a:hover,
.primary-navigation a:focus {
	color: var( --craftor-color-primary, #4f46e5 );
}

.menu-toggle {
	display: none;
	background: none;
	border: 1px solid currentColor;
	border-radius: var( --craftor-radius-sm, 4px );
	padding: 6px 10px;
	font: inherit;
	color: inherit;
	cursor: pointer;
}

.site-footer {
	border-top: 1px solid rgba( 0, 0, 0, 0.08 );
}

.site-footer .site-title {
	font-size: 16px;
}

.footer-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: var( --craftor-spacing-md, 16px );
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-navigation a {
	text-decoration: none;
	color: inherit;
	opacity: 0.8;
}

.site-footer__copy {
	margin: 0;
	font-size: 13px;
	opacity: 0.7;
}

@media ( max-width: 600px ) {
	.menu-toggle {
		display: inline-block;
	}

	.primary-navigation {
		flex-basis: 100%;
		display: none;
	}

	.primary-navigation.is-open {
		display: block;
	}

	.primary-navigation ul {
		flex-direction: column;
		gap: var( --craftor-spacing-sm, 8px );
	}
}

/* ── Blog fallback (index/single/archive/search when no Craftor Theme Part
   or Craftor-enabled content applies) ──────────────────────────────────── */

.post-list {
	display: flex;
	flex-direction: column;
	gap: var( --craftor-spacing-xl, 64px );
}

.entry-header {
	margin-bottom: var( --craftor-spacing-md, 16px );
}

.entry-title {
	font-size: var( --craftor-font-size-heading, 32px );
	font-weight: var( --craftor-font-weight-heading, 700 );
	line-height: var( --craftor-font-line-height-heading, 1.25 );
	margin: 0 0 8px;
}

.entry-title a {
	text-decoration: none;
	color: inherit;
}

.entry-meta {
	font-size: 13px;
	opacity: 0.7;
}

.entry-thumbnail {
	margin: var( --craftor-spacing-md, 16px ) 0;
}

.entry-thumbnail img {
	border-radius: var( --craftor-radius-md, 8px );
}

.pagination {
	display: flex;
	gap: var( --craftor-spacing-sm, 8px );
	margin-top: var( --craftor-spacing-xl, 64px );
}

.pagination a,
.pagination span {
	padding: 6px 12px;
	border: 1px solid rgba( 0, 0, 0, 0.12 );
	border-radius: var( --craftor-radius-sm, 4px );
	text-decoration: none;
	color: inherit;
}

.pagination .current {
	background: var( --craftor-color-primary, #4f46e5 );
	border-color: var( --craftor-color-primary, #4f46e5 );
	color: #fff;
}

.no-results {
	text-align: center;
	padding: var( --craftor-spacing-xl, 64px ) 0;
}
