/*
Theme Name: Green Nursery
Theme URI: https://greennurseryllc.com/
Author: Brand9X
Author URI: https://brand9x.com/
Description: A bespoke, high-performance WordPress theme for Green Nursery LLC — a grower-direct plant nursery in Miami, Florida. Hand-built markup, no page builder, no framework bloat. Ships with custom post types for Learn guides and Service Areas, hand-written JSON-LD schema, AEO answer blocks, and responsive WebP imagery with explicit dimensions for near-zero CLS.
Version: 1.0.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: green-nursery
Tags: custom-menu, custom-logo, featured-images, threaded-comments, translation-ready, block-styles, wide-blocks, accessibility-ready
*/

/*
--------------------------------------------------------------------------
  This file exists to declare the theme to WordPress and to hold small
  admin/editor-facing overrides only.

  The real stylesheet is assets/brand9x.css plus assets/premium.css, both
  enqueued from inc/enqueue.php with filemtime() versioning. Do not paste
  the design CSS in here — keeping it in assets/ means the browser can
  cache it independently of theme metadata, and it keeps this file legible.
--------------------------------------------------------------------------
*/

/* WordPress core alignment + caption classes, matched to the site's rhythm. */
.alignleft {
	float: left;
	margin: 0 1.6rem 1.2rem 0;
}

.alignright {
	float: right;
	margin: 0 0 1.2rem 1.6rem;
}

.aligncenter {
	display: block;
	margin: 0 auto 1.2rem;
}

.alignwide {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}

.alignfull {
	max-width: 100%;
	width: 100%;
}

.wp-caption {
	max-width: 100%;
}

.wp-caption-text,
.wp-block-image figcaption {
	font-family: var(--sans, system-ui), sans-serif;
	font-size: 0.84rem;
	color: var(--moss, #4a6153);
	margin-top: 0.6rem;
}

.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: #fff;
	clip: auto !important;
	clip-path: none;
	color: #0e3320;
	display: block;
	font-size: 0.9rem;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Admin bar must not sit on top of the fixed header. */
body.admin-bar header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar header {
		top: 46px;
	}
}

/* Comments — the static site had none, so these are styled to match the
   existing card vocabulary rather than invented from scratch. */
.gn-comments {
	max-width: 820px;
	margin: 0 auto;
}

.gn-comments .comment-list {
	list-style: none;
	margin: 0 0 2.4rem;
	padding: 0;
}

.gn-comments .comment-body {
	border: 1px solid var(--line, #e3e8e3);
	border-radius: var(--r-sm, 10px);
	padding: 20px 24px;
	margin-bottom: 16px;
	background: var(--paperHi, #fbfcfa);
}

.gn-comments .children {
	list-style: none;
	margin-left: 28px;
	padding: 0;
}

.gn-comments .comment-meta {
	font-family: var(--sans, system-ui), sans-serif;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--moss, #4a6153);
	margin-bottom: 10px;
}

.gn-comments .comment-form input[type="text"],
.gn-comments .comment-form input[type="email"],
.gn-comments .comment-form input[type="url"],
.gn-comments .comment-form textarea,
.gn-search-form input[type="search"] {
	width: 100%;
	padding: 13px 16px;
	border: 1px solid var(--line, #e3e8e3);
	border-radius: var(--r-sm, 10px);
	font-family: var(--sans, system-ui), sans-serif;
	font-size: 0.98rem;
	background: #fff;
	color: var(--canopy, #0e3320);
}

.gn-comments .comment-form textarea:focus,
.gn-comments .comment-form input:focus,
.gn-search-form input[type="search"]:focus {
	outline: 2px solid var(--leaf, #2f7a4f);
	outline-offset: 2px;
}

.gn-search-form {
	display: flex;
	gap: 10px;
	max-width: 520px;
}

.gn-pagination {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 44px;
}

.gn-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--line, #e3e8e3);
	border-radius: var(--r-sm, 10px);
	font-family: var(--sans, system-ui), sans-serif;
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--canopy, #0e3320);
	background: var(--paperHi, #fbfcfa);
	transition: border-color 0.3s, transform 0.3s;
}

.gn-pagination .page-numbers:hover {
	border-color: var(--leaf, #2f7a4f);
	transform: translateY(-2px);
}

.gn-pagination .page-numbers.current {
	background: var(--canopy, #0e3320);
	border-color: var(--canopy, #0e3320);
	color: #fff;
}

/* Widget areas — the static build had no sidebar, so these inherit the
   footer column styling to stay visually consistent if one is used. */
.gn-sidebar .widget {
	margin-bottom: 34px;
}

.gn-sidebar .widget-title {
	font-family: var(--sans, system-ui), sans-serif;
	font-size: 0.74rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--moss, #4a6153);
	margin-bottom: 14px;
}

.gn-sidebar ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.gn-sidebar li {
	margin-bottom: 9px;
}

.gn-sidebar a {
	color: var(--canopy, #0e3320);
	border-bottom: 1px solid var(--line, #e3e8e3);
}

.gn-sidebar a:hover {
	border-color: var(--leaf, #2f7a4f);
}

/* Optional sidebar layout — only engaged when the Blog sidebar has widgets. */
.gn-with-sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 48px;
	align-items: start;
}

@media (max-width: 900px) {
	.gn-with-sidebar {
		grid-template-columns: 1fr;
	}
}

/* Category link in the article byline, matching the surrounding meta row. */
.meta-row .meta-cat {
	border: none;
	font-weight: 600;
}

/* Footer address block spacing, previously an inline style. */
.foot-address {
	margin-top: 14px;
	font-size: 0.86rem;
}

/* The closing CTA heading kept an inline margin in the static build. */
.final h2 {
	margin-top: 18px;
}

/*
--------------------------------------------------------------------------
  Inline styles lifted out of the static markup.

  The original build carried a handful of repeated inline style attributes.
  They are reproduced here as classes so the templates stay free of inline
  CSS, and so a Content-Security-Policy without 'unsafe-inline' can be
  applied later without the layout collapsing.
--------------------------------------------------------------------------
*/

/* header nav: full-bleed gutters handled by .nav's own padding */
header .nav {
	padding-left: 0;
	padding-right: 0;
	max-width: var(--wrap);
}

/* the dark closing band */
.section.final.bg-dark {
	background: linear-gradient(165deg, #0a2417, #092217);
}

/* spacing utilities used by imported content */
.gn-stack-sm { margin: 26px 0; }
.gn-stack    { margin: 30px 0; }
.gn-stack-lg { margin: 32px 0; }
.gn-narrow   { max-width: 820px; margin-inline: auto; }
.gn-wide     { max-width: 1000px; margin-inline: auto; }
.gn-center   { text-align: center; }
.gn-tag-gap { margin-bottom: 14px; }
.gn-stack-xs { margin: 8px 0; }
.gn-filters-center {
	justify-content: center;
	max-width: 880px;
	margin: 0 auto 22px;
}
.gn-h-alt {
	font-size: clamp(1.8rem, 3.6vw, 2.6rem);
	color: var(--canopy);
	margin: 14px 0 16px;
}

/* Page-specific one-off rules, extracted from the original inline styles. */
.gn-u-041369 { font-family:var(--serif); font-size:1.3rem; display:block; margin-bottom:6px; }
.gn-u-113d14 { text-align:center; margin-top:30px; }
.gn-u-301969 { margin-bottom:20px; }
.gn-u-40200c { color:rgba(255,255,255,.6); margin-top:12px; }
.gn-u-56a128 { text-align:center; color:var(--moss); margin-top:28px; }
.gn-u-58180d { font-size:.88rem; }
.gn-u-5df622 { display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; }
.gn-u-633c8c { font-size:1.7rem; color:var(--canopy); margin:14px 0 8px; }
.gn-u-793659 { color:var(--gold); }
.gn-u-80e1b7 { border-style:dashed; }
.gn-u-9842b4 { justify-content:center; margin-bottom:34px; }
.gn-u-a2c1db { border-left-color:var(--gold); }
.gn-u-a9b8f1 { justify-content:center; max-width:880px; margin:0 auto 24px; }
.gn-u-b2c618 { font-size:.9rem; color:rgba(255,255,255,.75); }
.gn-u-b71c09 { max-width:820px; margin:0 auto 40px; }
.gn-u-c70937 { font-size:1.15rem; color:var(--canopy); margin-bottom:14px; }
.gn-u-d42b13 { display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }
.gn-u-d6167d { width:100%; justify-content:center; }
.gn-u-da1a60 { margin:24px 0; }
.gn-u-ef4825 { margin-bottom:26px; }
.gn-u-f7c2c3 { text-align:center; margin-top:38px; color:var(--moss); }
.gn-u-fa2748 { color:var(--moss); font-size:.95rem; margin-bottom:24px; }
.gn-u-2eab16 { color:#C0563A; font-weight:600; text-align:center; margin-top:14px; }
.gn-u-676ebe { justify-content:center; margin-bottom:30px; }
.gn-u-94ed4a { color:var(--leaf); font-weight:600; text-align:center; margin-top:14px; }

/* Agency credit in the footer bar. */
.foot-bottom .gn-credit a {
	color: inherit;
	border-bottom: 1px solid rgba(255, 255, 255, 0.25);
	transition: border-color 0.3s, opacity 0.3s;
}

.foot-bottom .gn-credit a:hover {
	border-bottom-color: currentColor;
	opacity: 1;
}
