/*
Theme Name: Harvest Cleaning Co.
Theme URI: https://mountofolivesfoundation.com
Author: Mount of Olives Foundation
Description: A simple, warm theme for Harvest Cleaning Co. – a social enterprise of the Mount of Olives Foundation. On activation it creates the Home, Services, Our Story, Work With Us and Get a Quote pages, sets the homepage and menu, and adds working enquiry forms that email you and save a copy under Enquiries in the dashboard.
Version: 1.0.0
Requires at least: 6.0
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: harvest-cleaning
*/

:root {
	--hc-olive: #3d4a2a;
	--hc-olive-deep: #28311c;
	--hc-wheat: #d9a441;
	--hc-wheat-soft: #f3e3bd;
	--hc-cream: #faf6ec;
	--hc-paper: #ffffff;
	--hc-ink: #23271d;
	--hc-muted: #5b6150;
	--hc-line: #e5ddc8;
	--hc-radius: 14px;
	--hc-max: 1120px;
	--hc-text: 680px;
	--hc-serif: "Fraunces", Georgia, "Times New Roman", serif;
	--hc-sans: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
}

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

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

body {
	margin: 0;
	background: var(--hc-cream);
	color: var(--hc-ink);
	font-family: var(--hc-sans);
	font-size: 1.125rem;
	line-height: 1.65;
}

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

a { color: var(--hc-olive); text-underline-offset: 3px; }
a:hover { color: var(--hc-olive-deep); }

:focus-visible { outline: 3px solid var(--hc-wheat); outline-offset: 3px; }

h1, h2, h3, h4 {
	font-family: var(--hc-serif);
	font-weight: 700;
	line-height: 1.15;
	color: var(--hc-olive-deep);
	margin: 0 0 .6em;
}
h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); letter-spacing: -.01em; }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.4rem); }
h3 { font-size: 1.35rem; }

p { margin: 0 0 1.1em; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px,1px,1px,1px); white-space: nowrap;
}
.skip-link:focus {
	position: fixed; top: 10px; left: 10px; z-index: 1000; width: auto; height: auto; clip: auto;
	background: var(--hc-paper); padding: 10px 16px; border-radius: 8px;
}

/* ---------- Header ---------- */
.hc-header {
	background: var(--hc-cream);
	border-bottom: 1px solid var(--hc-line);
	position: sticky; top: 0; z-index: 50;
}
.admin-bar .hc-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hc-header { top: 0; position: relative; } }

.hc-header__inner {
	max-width: var(--hc-max); margin: 0 auto; padding: 14px 16px;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.hc-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--hc-olive-deep); }
.hc-brand__mark {
	width: 38px; height: 38px; flex: none; border-radius: 50%;
	background: var(--hc-olive); display: grid; place-items: center;
}
.hc-brand__mark svg { width: 22px; height: 22px; }
.hc-brand__name { font-family: var(--hc-serif); font-weight: 700; font-size: 1.25rem; line-height: 1.1; }
.hc-brand__name small { display: block; font-family: var(--hc-sans); font-weight: 600; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--hc-muted); }
.custom-logo { max-height: 56px; width: auto; }

.hc-nav-toggle {
	display: none; background: none; border: 2px solid var(--hc-olive); color: var(--hc-olive);
	border-radius: 10px; padding: 8px 14px; font: 600 1rem var(--hc-sans); cursor: pointer;
}
.hc-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.hc-nav a {
	display: block; padding: 8px 12px; border-radius: 8px; text-decoration: none;
	color: var(--hc-ink); font-weight: 600;
}
.hc-nav a:hover, .hc-nav .current-menu-item > a, .hc-nav .current_page_item > a { background: var(--hc-wheat-soft); color: var(--hc-olive-deep); }
.hc-nav .hc-nav__cta > a { background: var(--hc-olive); color: #fff; padding-inline: 16px; }
.hc-nav .hc-nav__cta > a:hover { background: var(--hc-olive-deep); color: #fff; }

@media (max-width: 860px) {
	.hc-nav-toggle { display: inline-block; }
	.hc-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--hc-cream); border-bottom: 1px solid var(--hc-line); }
	.hc-nav.is-open { display: block; }
	.hc-nav ul { flex-direction: column; align-items: stretch; padding: 8px 16px 16px; }
	.hc-header__inner { position: relative; }
}

/* ---------- Layout ---------- */
.hc-main { display: block; }
.hc-container { max-width: var(--hc-max); margin: 0 auto; padding: 0 16px; }

.hc-page-header { padding: 56px 0 8px; }
.hc-page-header h1 { margin: 0; }

.hc-content { padding: 32px 0 72px; }
.hc-content > * { max-width: var(--hc-text); margin-left: 0; margin-right: 0; }
.hc-content > .alignwide,
.hc-content > .wp-block-columns,
.hc-content > .hc-section,
.hc-content > .hc-band,
.hc-content > .hc-hero,
.hc-content > .hc-cta { max-width: var(--hc-max); }
.hc-content > .alignfull { max-width: none; }

.home .hc-content { padding-top: 0; }

/* Blocks inside sections */
.hc-section, .hc-band, .hc-hero, .hc-cta { margin-top: 0; margin-bottom: 0; }
.hc-section > *, .hc-band > *, .hc-hero > *, .hc-cta > * { max-width: var(--hc-text); }

.hc-hero {
	padding: 72px 0 56px;
}
.hc-hero h1 { max-width: 14ch; }
.hc-eyebrow {
	display: inline-block; font-weight: 700; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase;
	color: var(--hc-olive); background: var(--hc-wheat-soft); padding: 4px 12px; border-radius: 99px;
}
.hc-lead { font-size: 1.3rem; color: var(--hc-muted); }

.hc-section { padding: 56px 0; }
.hc-section + .hc-section { border-top: 1px solid var(--hc-line); }

.hc-band {
	background: var(--hc-olive); color: #eef0e6; border-radius: var(--hc-radius);
	padding: 48px 32px; margin-top: 32px; margin-bottom: 32px;
}
.hc-band h2, .hc-band h3 { color: #fff; }
.hc-band a { color: var(--hc-wheat-soft); }
.hc-band .wp-block-button__link { background: var(--hc-wheat); color: var(--hc-ink); }

.hc-cta {
	background: var(--hc-wheat-soft); border-radius: var(--hc-radius); padding: 44px 32px; margin-top: 32px;
}

@media (max-width: 600px) {
	.hc-band, .hc-cta { padding: 36px 20px; border-radius: 10px; }
	.hc-hero { padding: 48px 0 36px; }
}

/* Cards (columns) */
.hc-section > .wp-block-columns, .hc-band > .wp-block-columns, .hc-cta > .wp-block-columns { max-width: none; }
.wp-block-columns.hc-cards { display: flex; flex-wrap: nowrap; gap: 20px; margin: 28px 0; }
.hc-cards > .wp-block-column { flex: 1 1 0; min-width: 0; }
@media (max-width: 781px) {
	.wp-block-columns.hc-cards { flex-direction: column; }
}
.hc-cards > .wp-block-column {
	background: var(--hc-paper); border: 1px solid var(--hc-line); border-radius: var(--hc-radius);
	padding: 26px 24px;
}
.hc-cards h3 { margin-bottom: .4em; }
.hc-cards p:last-child { margin-bottom: 0; }
.hc-price { font-weight: 700; color: var(--hc-olive); }

.hc-band .hc-cards > .wp-block-column { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.18); }

/* Lists */
.hc-content ul, .hc-content ol { padding-left: 1.3em; margin-top: 0; margin-bottom: 1.2em; }
.hc-content li { margin-bottom: .35em; }
.hc-ticks { list-style: none; padding-left: 0 !important; }
.hc-ticks li { position: relative; padding-left: 1.8em; }
.hc-ticks li::before {
	content: ""; position: absolute; left: 0; top: .45em; width: 1em; height: 1em; border-radius: 50%;
	background: var(--hc-wheat) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%2323271d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat;
}

/* Buttons */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 0; }
.wp-block-button__link, .hc-button {
	display: inline-block; background: var(--hc-olive); color: #fff; text-decoration: none;
	font: 700 1.05rem var(--hc-sans); padding: 14px 24px; border-radius: 10px; border: 2px solid transparent;
	cursor: pointer; line-height: 1.2;
}
.wp-block-button__link:hover, .hc-button:hover { background: var(--hc-olive-deep); color: #fff; }
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent; color: var(--hc-olive); border-color: var(--hc-olive);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--hc-olive); color: #fff; }

/* ---------- Forms ---------- */
.hc-form {
	background: var(--hc-paper); border: 1px solid var(--hc-line); border-radius: var(--hc-radius);
	padding: 28px 24px; margin-top: 24px; margin-bottom: 24px;
}
.hc-field { margin-bottom: 18px; }
.hc-field label, .hc-field legend { display: block; font-weight: 700; margin-bottom: 6px; }
.hc-field .hc-req { color: #9a3b1b; }
.hc-field .hc-hint { display: block; font-weight: 400; font-size: .95rem; color: var(--hc-muted); }
.hc-field input[type=text], .hc-field input[type=email], .hc-field input[type=tel],
.hc-field select, .hc-field textarea {
	width: 100%; font: inherit; color: var(--hc-ink); background: var(--hc-cream);
	border: 1.5px solid #cfc6ad; border-radius: 10px; padding: 11px 13px;
}
.hc-field textarea { min-height: 120px; resize: vertical; }
.hc-field input:focus, .hc-field select:focus, .hc-field textarea:focus { border-color: var(--hc-olive); outline: 2px solid var(--hc-wheat); outline-offset: 1px; }
.hc-field fieldset { border: 0; padding: 0; margin: 0; }
.hc-checks { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.hc-checks label { font-weight: 400; display: flex; align-items: center; gap: 8px; margin: 0; }
.hc-checks input { width: 20px; height: 20px; accent-color: var(--hc-olive); }
.hc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hc-notice { border-radius: 10px; padding: 14px 18px; margin: 0 0 18px; font-weight: 600; }
.hc-notice--ok { background: #e3eed8; color: #2b4a14; }
.hc-notice--err { background: #f8e1d8; color: #7a2a0e; }
.hc-privacy { font-size: .92rem; color: var(--hc-muted); margin: 14px 0 0; }

/* ---------- Footer ---------- */
.hc-footer { background: var(--hc-olive-deep); color: #d9dccd; padding: 52px 0 28px; font-size: 1rem; }
.hc-footer a { color: #fff; }
.hc-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; }
.hc-footer h2 { color: #fff; font-size: 1.15rem; margin-bottom: .6em; }
.hc-footer ul { list-style: none; margin: 0; padding: 0; }
.hc-footer li { margin-bottom: 6px; }
.hc-footer__bottom { border-top: 1px solid rgba(255,255,255,.15); margin-top: 36px; padding-top: 18px; font-size: .9rem; color: #b8bca8; }
@media (max-width: 760px) { .hc-footer__grid { grid-template-columns: 1fr; gap: 24px; } }

/* WP core alignment helpers */
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text, figcaption { font-size: .9rem; color: var(--hc-muted); }
