/*
 * ACS Theme — Base Styles
 * CSS reset (adapted from normalize.css, MIT License) + base typography + accessibility
 *
 * @package ACS
 * @since   1.0.0
 */

/* =========================================================================
   CSS Custom Properties (defaults — overridden by Customizer via wp_head)
   ========================================================================= */

:root {
	--acs-color-main:   #1a1a2e;
	--acs-color-accent: #e94560;
	--acs-color-bg:     #ffffff;
	--acs-color-text:   #333333;
	--acs-color-muted:  #666666;
	--acs-color-border: #dddddd;
	--acs-color-h2:     #1a1a2e;
	--acs-color-h3:     #1a1a2e;
	--acs-cta-color:    #e94560;

	/* Typography */
	--acs-font-primary: system-ui, -apple-system, BlinkMacSystemFont,
		"Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN",
		"Yu Gothic UI", "Yu Gothic", "Meiryo", sans-serif;
	--acs-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;

	--acs-font-size-base:  1rem;      /* 16px */
	--acs-font-size-sm:    0.875rem;  /* 14px */
	--acs-font-size-lg:    1.125rem;  /* 18px */
	--acs-font-size-xl:    1.25rem;   /* 20px */
	--acs-font-size-2xl:   1.5rem;    /* 24px */
	--acs-font-size-3xl:   1.875rem;  /* 30px */
	--acs-font-size-4xl:   2.25rem;   /* 36px */
	--acs-line-height-base: 1.7;

	/* Spacing */
	--acs-spacing-xs:  0.25rem;
	--acs-spacing-sm:  0.5rem;
	--acs-spacing-md:  1rem;
	--acs-spacing-lg:  1.5rem;
	--acs-spacing-xl:  2rem;
	--acs-spacing-2xl: 3rem;
	--acs-spacing-3xl: 4rem;

	/* Borders */
	--acs-radius-sm:  4px;
	--acs-radius-md:  8px;
	--acs-radius-lg:  12px;
	--acs-radius-full: 9999px;

	/* Shadows */
	--acs-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
	--acs-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
	--acs-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);

	/* Transitions */
	--acs-transition: 0.2s ease;

	/* Container */
	--acs-container-max: 1200px;
	--acs-container-pad: 1.25rem;
}

/* =========================================================================
   Reset (adapted from normalize.css — MIT License)
   ========================================================================= */

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

html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
}

main {
	display: block;
}

h1 { font-size: 2em; margin: 0.67em 0; }

hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

pre {
	font-family: var(--acs-font-mono);
	font-size: 1em;
}

a {
	background-color: transparent;
}

abbr[title] {
	border-bottom: none;
	text-decoration: underline dotted;
}

b, strong { font-weight: bolder; }

code, kbd, samp {
	font-family: var(--acs-font-mono);
	font-size: 1em;
}

small { font-size: 80%; }

sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub { bottom: -0.25em; }
sup { top: -0.5em; }

img {
	border-style: none;
	max-width: 100%;
	height: auto;
	display: block;
}

button, input, optgroup, select, textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

button, input { overflow: visible; }
button, select { text-transform: none; }

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

fieldset {
	padding: 0.35em 0.75em 0.625em;
}

legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

progress { vertical-align: baseline; }

textarea { overflow: auto; }

[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

details { display: block; }
summary { display: list-item; }
template { display: none; }
[hidden] { display: none; }

/* =========================================================================
   Base Typography
   ========================================================================= */

body {
	font-family: var(--acs-font-primary);
	font-size: var(--acs-font-size-base);
	line-height: var(--acs-line-height-base);
	color: var(--acs-color-text);
	background-color: var(--acs-color-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: 700;
	line-height: 1.3;
	margin-top: 0;
	margin-bottom: var(--acs-spacing-md);
}

h1 { font-size: var(--acs-font-size-4xl); color: var(--acs-color-main); }
h2 { font-size: var(--acs-font-size-3xl); color: var(--acs-color-h2); }
h3 { font-size: var(--acs-font-size-2xl); color: var(--acs-color-h3); }
h4 { font-size: var(--acs-font-size-xl);  color: var(--acs-color-main); }
h5 { font-size: var(--acs-font-size-lg);  color: var(--acs-color-main); }
h6 { font-size: var(--acs-font-size-base); color: var(--acs-color-main); }

p {
	margin-top: 0;
	margin-bottom: var(--acs-spacing-md);
}

a {
	color: var(--acs-color-accent);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color var(--acs-transition), opacity var(--acs-transition);
}

a:hover,
a:focus {
	opacity: 0.8;
}

ul, ol {
	margin-top: 0;
	margin-bottom: var(--acs-spacing-md);
	padding-left: 1.5em;
}

li { margin-bottom: var(--acs-spacing-xs); }

blockquote {
	margin: var(--acs-spacing-xl) 0;
	padding: var(--acs-spacing-lg) var(--acs-spacing-xl);
	border-left: 4px solid var(--acs-color-accent);
	background: #f8f8f8;
	font-style: italic;
}

blockquote cite {
	display: block;
	margin-top: var(--acs-spacing-sm);
	font-style: normal;
	font-size: var(--acs-font-size-sm);
	color: var(--acs-color-muted);
}

code {
	font-family: var(--acs-font-mono);
	font-size: 0.9em;
	background: #f4f4f4;
	padding: 0.1em 0.4em;
	border-radius: var(--acs-radius-sm);
}

pre {
	background: #1e1e1e;
	color: #d4d4d4;
	padding: var(--acs-spacing-lg);
	border-radius: var(--acs-radius-md);
	overflow-x: auto;
	margin-bottom: var(--acs-spacing-lg);
}

pre code {
	background: none;
	padding: 0;
	font-size: var(--acs-font-size-sm);
	color: inherit;
}

table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--acs-spacing-lg);
	font-size: var(--acs-font-size-sm);
}

th, td {
	padding: var(--acs-spacing-sm) var(--acs-spacing-md);
	text-align: left;
	border-bottom: 1px solid var(--acs-color-border);
}

th {
	font-weight: 700;
	background: #f8f8f8;
}

hr {
	border: none;
	border-top: 1px solid var(--acs-color-border);
	margin: var(--acs-spacing-xl) 0;
}

/* Figures */
figure {
	margin: 0 0 var(--acs-spacing-lg);
}

figcaption {
	font-size: var(--acs-font-size-sm);
	color: var(--acs-color-muted);
	text-align: center;
	margin-top: var(--acs-spacing-xs);
}

/* =========================================================================
   Accessibility
   ========================================================================= */

/* Screen Reader Text */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #ffffff;
	border-radius: var(--acs-radius-sm);
	box-shadow: 0 0 0 3px var(--acs-color-accent);
	clip: auto !important;
	clip-path: none;
	color: var(--acs-color-main);
	display: block;
	font-size: var(--acs-font-size-base);
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: var(--acs-spacing-md) var(--acs-spacing-lg);
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Skip Link */
.skip-link {
	position: absolute;
	top: -100%;
	left: var(--acs-spacing-md);
	z-index: 9999;
}

.skip-link:focus {
	top: var(--acs-spacing-md);
}

/* Focus visible — keyboard navigation */
:focus-visible {
	outline: 3px solid var(--acs-color-accent);
	outline-offset: 2px;
}

:focus:not(:focus-visible) {
	outline: none;
}

/* =========================================================================
   WordPress Core Classes
   ========================================================================= */

/* Alignments */
.alignleft  { float: left; margin: 0 var(--acs-spacing-lg) var(--acs-spacing-md) 0; }
.alignright { float: right; margin: 0 0 var(--acs-spacing-md) var(--acs-spacing-lg); }
.aligncenter { display: block; margin: 0 auto var(--acs-spacing-md); text-align: center; }
.alignwide  { margin-left: calc(-1 * var(--acs-spacing-xl)); margin-right: calc(-1 * var(--acs-spacing-xl)); }
.alignfull  { margin-left: calc(-1 * var(--acs-container-pad)); margin-right: calc(-1 * var(--acs-container-pad)); }

/* Captions */
.wp-caption      { max-width: 100%; }
.wp-caption-text { font-size: var(--acs-font-size-sm); color: var(--acs-color-muted); text-align: center; margin-top: var(--acs-spacing-xs); }

/* Gallery */
.gallery { display: grid; gap: var(--acs-spacing-sm); }
.gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.gallery-item img  { width: 100%; height: auto; }

/* Sticky posts */
.sticky { border-left: 4px solid var(--acs-color-accent); }
.sticky .entry-header::before {
	content: attr(data-sticky-label);
	display: inline-block;
	background: var(--acs-color-accent);
	color: #ffffff;
	font-size: var(--acs-font-size-sm);
	padding: 0.1em 0.6em;
	border-radius: var(--acs-radius-sm);
	margin-bottom: var(--acs-spacing-xs);
}

/* Post formats / classes */
.bypostauthor {}

/* =========================================================================
   Print Styles
   ========================================================================= */

@media print {
	*,
	*::before,
	*::after {
		background: transparent !important;
		color: #000 !important;
		box-shadow: none !important;
		text-shadow: none !important;
	}

	a,
	a:visited {
		text-decoration: underline;
	}

	a[href]::after {
		content: " (" attr(href) ")";
	}

	abbr[title]::after {
		content: " (" attr(title) ")";
	}

	a[href^="#"]::after,
	a[href^="javascript:"]::after {
		content: "";
	}

	pre {
		white-space: pre-wrap !important;
	}

	pre,
	blockquote {
		border: 1px solid #999;
		page-break-inside: avoid;
	}

	thead { display: table-header-group; }

	tr,
	img {
		page-break-inside: avoid;
	}

	p,
	h2,
	h3 {
		orphans: 3;
		widows: 3;
	}

	h2,
	h3 {
		page-break-after: avoid;
	}

	.site-header,
	.site-footer,
	.sidebar,
	.main-navigation,
	.breadcrumb-nav {
		display: none;
	}
}
