/*
Theme Name: ACW Williamsburg
Theme URI: https://acwmbg.com
Author: Assessment & Counseling of Williamsburg PLC
Description: Custom theme rebuilding the Assessment & Counseling of Williamsburg site design (colors, fonts, layout, and button styling reproduced from the original site's own code) as a standard, editable WordPress theme. Built from the site's crawled HTML/CSS since the original page-builder theme could not be transferred directly.
Version: 1.0
Requires at least: 6.4
Requires PHP: 7.4
Tested up to: 6.7
Text Domain: acw-williamsburg
*/

/* ---------------------------------------------------------
   1. Design tokens — pulled from the original site's own
   embedded color-palette JSON and compiled CSS.
--------------------------------------------------------- */
:root {
	--acw-primary: #c82914;           /* brand accent — terracotta/brick red */
	--acw-primary-variant: #015ea3;   /* secondary accent — blue */
	--acw-text: #0c0c0c;              /* body/heading text */
	--acw-text-muted: #454545;
	--acw-grey: #585858;
	--acw-bg-light: #f1f1f1;
	--acw-white: #ffffff;
	--acw-font-heading: 'Adamina', Georgia, 'Times New Roman', serif;
	--acw-font-body: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--acw-radius-pill: 9999px;
	--acw-max-width: 1200px;
}

/* ---------------------------------------------------------
   2. Base
--------------------------------------------------------- */
* { box-sizing: border-box; }

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

body {
	margin: 0;
	font-family: var(--acw-font-body);
	font-size: 20px;
	line-height: 1.6;
	color: var(--acw-text);
	background: var(--acw-white);
}

a { color: var(--acw-primary-variant); }
a:hover { color: var(--acw-primary); }

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

h1, h2, h3, h4, h5, h6, .wp-block-heading {
	font-family: var(--acw-font-heading);
	color: var(--acw-text);
	line-height: 1.25;
	font-weight: 400;
	margin: 0 0 .6em;
}

h1 { font-size: 42px; }
h2 { font-size: 36px; }
h3 { font-size: 28px; }
h4, h5 { font-size: 20px; text-transform: none; }

p { margin: 0 0 1.2em; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px,1px,1px,1px);
}

/* ---------------------------------------------------------
   3. Layout shell
--------------------------------------------------------- */
.acw-container {
	max-width: var(--acw-max-width);
	margin: 0 auto;
	padding: 0 24px;
}

.site-content { padding: 40px 0 60px; }

/* Let full/wide-aligned Gutenberg blocks (covers, images) bleed edge to edge
   while everything else stays within the container. */
.entry-content > * {
	max-width: var(--acw-max-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}
.entry-content > .alignwide { max-width: calc(var(--acw-max-width) + 160px); }
.entry-content > .alignfull { max-width: none; padding-left: 0; padding-right: 0; }
.entry-content > .wp-block-image.alignfull img,
.entry-content > figure.alignfull img { width: 100%; }

/* ---------------------------------------------------------
   4. Header / navigation
--------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--acw-white);
	border-bottom: 1px solid #eee;
}
.site-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 14px 24px;
	max-width: var(--acw-max-width);
	margin: 0 auto;
}
.site-logo img { height: 60px; width: auto; }
.site-logo a { display: block; }

.primary-navigation ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin: 0;
	padding: 0;
}
.primary-navigation a {
	color: var(--acw-text);
	text-decoration: none;
	font-size: 16px;
	font-weight: 500;
}
.primary-navigation a:hover,
.primary-navigation .current-menu-item > a { color: var(--acw-primary); }

.menu-toggle {
	display: none;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 8px;
}
.menu-toggle span {
	display: block;
	width: 26px;
	height: 3px;
	background: var(--acw-text);
	margin: 5px 0;
}

@media (max-width: 860px) {
	.menu-toggle { display: block; }
	.primary-navigation { display: none; width: 100%; }
	.primary-navigation.is-open { display: block; }
	.primary-navigation ul { flex-direction: column; gap: 12px; padding: 16px 0; }
}

/* ---------------------------------------------------------
   5. Buttons — pill-shaped, matching the original site
--------------------------------------------------------- */
.wp-block-button__link,
.wp-element-button,
.acw-button {
	display: inline-block;
	background-color: var(--acw-primary);
	color: var(--acw-white) !important;
	border: none;
	border-radius: var(--acw-radius-pill);
	padding: calc(.667em + 2px) calc(1.333em + 2px);
	font-size: 1.125em;
	font-family: var(--acw-font-body);
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .2s ease-out;
}
.wp-block-button__link:hover,
.acw-button:hover { background-color: var(--acw-primary-variant); color: var(--acw-white) !important; }

/* ---------------------------------------------------------
   6. Service grid (Home page tiles)
--------------------------------------------------------- */
.acw-service-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin: 32px 0;
}
.acw-service-tile {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: var(--acw-text);
	border-radius: 12px;
	overflow: hidden;
	background: var(--acw-bg-light);
	transition: transform .2s ease-out, box-shadow .2s ease-out;
}
.acw-service-tile:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 24px rgba(0,0,0,.12);
}
.acw-service-tile img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.acw-service-tile span {
	padding: 16px;
	font-family: var(--acw-font-heading);
	font-size: 20px;
	text-align: center;
}
@media (max-width: 780px) {
	.acw-service-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
	.acw-service-grid { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------
   7. Notes (used for editorial/placeholder callouts carried
   over from the migration package)
--------------------------------------------------------- */
.entry-content em { color: #b45309; }

/* ---------------------------------------------------------
   8. Footer
--------------------------------------------------------- */
.site-footer {
	background: var(--acw-bg-light);
	padding: 48px 24px 24px;
	margin-top: 40px;
}
.site-footer-columns {
	max-width: var(--acw-max-width);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	gap: 24px;
	text-align: center;
}
.site-footer-columns h4 {
	font-size: 18px;
	margin-bottom: .5em;
}
.site-footer-columns p { margin: 0; font-size: 15px; color: var(--acw-text-muted); }
.site-footer-columns a { color: var(--acw-text-muted); text-decoration: none; }
.site-footer-columns a:hover { color: var(--acw-primary); }
.site-footer-logo img { height: 50px; width: auto; margin: 0 auto; }

.site-footer-bottom {
	max-width: var(--acw-max-width);
	margin: 32px auto 0;
	padding-top: 20px;
	border-top: 1px solid #ddd;
	text-align: center;
	font-size: 14px;
	color: var(--acw-text-muted);
}

@media (max-width: 780px) {
	.site-footer-columns { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	.site-footer-columns { grid-template-columns: 1fr; }
}
