/*
Theme Name: GoalHosting
Theme URI: https://goalhosting.com
Author: PTCreators.com
Author URI: https://ptcreators.com
Description: Block theme for GoalHosting.com — educational WordPress hosting and Mission Page training support, powered by PTCreators.com. Built with native Gutenberg blocks and patterns so content stays portable. Pair with the GoalHosting Core plugin for forms, the Resources manager, applications and the student area.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: goalhosting
Tags: full-site-editing, block-patterns, accessibility-ready, education, one-column, custom-colors
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { -webkit-font-smoothing: antialiased; }

:where(a, button, input, select, textarea, summary, .wp-block-button__link):focus-visible {
	outline: 3px solid var(--wp--preset--color--green);
	outline-offset: 3px;
	border-radius: 4px;
}

.screen-reader-text:focus { clip: auto !important; }

/* Headings inherit color inside colored sections */
.has-text-color :where(h1, h2, h3, h4, h5, h6, a:not(.wp-block-button__link)) { color: inherit; }

/* Uppercase display treatment (text stays readable to screen readers) */
.gh-caps { text-transform: uppercase; letter-spacing: 0.02em; }

.gh-eyebrow {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	font-size: 0.9rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--green);
	margin-bottom: 0.25rem;
}
.has-text-color .gh-eyebrow { color: #CFE9DC; }

.gh-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.55; }
.gh-small { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--slate); }
.has-text-color .gh-small { color: inherit; opacity: 0.9; }

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

.gh-header__inner { padding-block: 0.75rem; gap: 1rem; }
.gh-logo { margin: 0 !important; }
.gh-logo img { width: 210px; height: auto; display: block; }
.gh-header .wp-block-navigation { font-family: var(--wp--preset--font-family--poppins); font-weight: 500; font-size: 1rem; gap: 1.25rem; }
.gh-header .wp-block-navigation a { text-decoration: none; color: var(--wp--preset--color--ink); }
.gh-header .wp-block-navigation a:hover,
.gh-header .wp-block-navigation .current-menu-item a { color: var(--wp--preset--color--purple); text-decoration: underline; text-underline-offset: 6px; }
.gh-header .wp-block-button__link { padding: 0.65rem 1.1rem; font-size: 0.95rem; }
.gh-header__right { gap: 1.25rem; }
@media (max-width: 600px) {
	.gh-logo img { width: 170px; }
	.gh-header .gh-header-cta .wp-block-button__link { font-size: 0.85rem; padding: 0.55rem 0.8rem; }
}

/* ---------- Sections ---------- */
.gh-section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.gh-section--tight { padding-block: clamp(2rem, 4vw, 3rem); }
.gh-section > * + * { margin-block-start: 1.25rem; }

.gh-hero {
	background: linear-gradient(135deg, #3A2268 0%, var(--wp--preset--color--purple) 55%, #5C3A9C 100%);
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
}
.gh-hero h1 { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.08; margin-top: 0.25rem; }
.gh-hero .gh-tagline {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--large);
	color: #CFE9DC;
}
.gh-hero img { border-radius: 18px; box-shadow: 0 24px 60px rgba(20, 8, 45, 0.35); }

.gh-page-hero { padding-block: clamp(3rem, 6vw, 4.5rem); border-bottom: 1px solid var(--wp--preset--color--line); }
.gh-page-hero h1 { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.1; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .15s ease, transform .15s ease; }
.wp-block-button__link:hover { background-color: #245740; }
.wp-block-button__link:active { transform: translateY(1px); }

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--purple);
	border: 2px solid currentColor;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--lavender); }
.has-text-color .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--white); }
.has-text-color .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: rgba(255,255,255,0.12); }

.gh-btn-purple > .wp-block-button__link { background: var(--wp--preset--color--purple); }
.gh-btn-purple > .wp-block-button__link:hover { background: #3A2268; }

.gh-disabled { opacity: 0.75; cursor: not-allowed; }

/* ---------- Cards ---------- */
.gh-card {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px;
	padding: clamp(1.25rem, 3vw, 2rem);
	box-shadow: 0 6px 24px rgba(31, 20, 60, 0.06);
	height: 100%;
}
.gh-card > * + * { margin-block-start: 0.75rem; }
.gh-card h3 { font-size: var(--wp--preset--font-size--large); margin-top: 0.5rem; color: var(--wp--preset--color--purple); }
.gh-card--featured { border: 2px solid var(--wp--preset--color--green); box-shadow: 0 14px 40px rgba(47, 107, 79, 0.16); }
.gh-card--purple { background: var(--wp--preset--color--lavender); border-color: #DCD2EE; }
.gh-card .gh-badge, .gh-badge {
	display: inline-block;
	font-family: var(--wp--preset--font-family--poppins);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: var(--wp--preset--color--purple);
	color: var(--wp--preset--color--white);
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
}
.gh-badge--green { background: var(--wp--preset--color--green) !important; }

.wp-block-columns.gh-grid { gap: clamp(1rem, 3vw, 1.75rem); }

.gh-icon { margin: 0 !important; }
.gh-icon img { width: 56px; height: 56px; }

/* Checklist-style lists */
.gh-checks { list-style: none; padding-left: 0; }
.gh-checks li { position: relative; padding-left: 2rem; margin-bottom: 0.6rem; }
.gh-checks li::before {
	content: "";
	position: absolute;
	left: 0; top: 0.3em;
	width: 1.2rem; height: 1.2rem;
	border-radius: 50%;
	background: var(--wp--preset--color--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat;
}
.gh-x li::before {
	background: var(--wp--preset--color--slate) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round'%3E%3Cpath d='M7 12h10'/%3E%3C/svg%3E") center / 70% no-repeat;
}
@media (min-width: 640px) { .gh-list-2col { columns: 2; column-gap: 2.5rem; } .gh-list-2col li { break-inside: avoid; } }

/* ---------- Steps ---------- */
.gh-step { gap: 1.25rem !important; align-items: flex-start !important; padding-block: 1.25rem; border-bottom: 1px solid var(--wp--preset--color--line); }
.gh-step:last-child { border-bottom: 0; }
.gh-step-num {
	flex: 0 0 auto;
	width: 3.25rem; height: 3.25rem;
	border-radius: 50%;
	display: grid; place-items: center;
	background: var(--wp--preset--color--purple);
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 700;
	font-size: 1.35rem;
	margin: 0 !important;
}
.gh-step-body { flex: 1 1 0; min-width: 0; }
.gh-step-body > * { margin-block: 0 0.6rem; }
.gh-step-body h2, .gh-step-body h3 { font-size: var(--wp--preset--font-size--x-large); }

/* ---------- Quote ---------- */
.gh-quote {
	border-left: 6px solid var(--wp--preset--color--green);
	padding: 1.25rem 1.5rem;
	background: var(--wp--preset--color--white);
	border-radius: 0 14px 14px 0;
	font-family: var(--wp--preset--font-family--poppins);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	color: var(--wp--preset--color--purple);
	line-height: 1.3;
}
.gh-quote p { margin: 0; }

/* ---------- Notices ---------- */
.gh-notice {
	background: #FFF8E1;
	border: 1px solid #E8C770;
	border-left: 6px solid #C99A1C;
	border-radius: 10px;
	padding: 1rem 1.25rem;
	color: #3D2E00;
	font-size: var(--wp--preset--font-size--small);
}
.gh-notice > * { margin: 0; }
.gh-notice > * + * { margin-top: 0.5rem; }
.gh-disclosure {
	background: var(--wp--preset--color--lavender);
	border-left: 6px solid var(--wp--preset--color--purple);
	border-radius: 10px;
	padding: 1.1rem 1.35rem;
}
.gh-disclosure > * { margin: 0; }

/* ---------- FAQ ---------- */
.wp-block-details {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	padding: 0;
	background: var(--wp--preset--color--white);
	margin-block: 0.75rem !important;
}
.wp-block-details summary {
	cursor: pointer;
	padding: 1.1rem 1.35rem;
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	font-size: 1.15rem;
	color: var(--wp--preset--color--purple);
	list-style-position: outside;
}
.wp-block-details[open] summary { border-bottom: 1px solid var(--wp--preset--color--line); }
.wp-block-details > :not(summary) { padding-inline: 1.35rem; }
.wp-block-details > :last-child { padding-bottom: 1.1rem; }

/* ---------- Policies ---------- */
.gh-policy h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.25rem; }

/* ---------- Footer ---------- */
.gh-footer { padding-block: 3.5rem 2rem; }
.gh-footer a { color: var(--wp--preset--color--white); text-underline-offset: 3px; }
.gh-footer a:hover { color: #CFE9DC; }
.gh-footer h2 { font-size: 1.1rem; letter-spacing: 0.06em; text-transform: uppercase; }
.gh-footer-brand { font-family: var(--wp--preset--font-family--poppins); font-weight: 700; font-size: 1.4rem; }
.gh-footer ul { list-style: none; padding-left: 0; margin: 0; }
.gh-footer li { margin-bottom: 0.5rem; }
.gh-footer-bottom { border-top: 1px solid rgba(255,255,255,0.2); padding-top: 1.25rem; margin-top: 2rem !important; }

/* ---------- Final CTA ---------- */
.gh-final-cta h2 { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.1; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.gh-hero .wp-block-columns { gap: 2rem; }
	.gh-hero .wp-block-buttons, .gh-final-cta .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.gh-hero .wp-block-button, .gh-final-cta .wp-block-button { width: 100%; }
	.gh-hero .wp-block-button__link, .gh-final-cta .wp-block-button__link { width: 100%; }
}

/* ---------- Price ---------- */
.gh-price {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 700;
	font-size: clamp(2.5rem, 6vw, 3.5rem);
	line-height: 1;
	color: var(--wp--preset--color--purple);
	margin: 0;
}

/* Keep the 7-item menu + CTA on one row on laptop widths */
.gh-header .wp-block-navigation { gap: 1rem; font-size: 0.95rem; }
@media (max-width: 1240px) {
	.gh-header .wp-block-navigation { gap: 0.8rem; font-size: 0.9rem; }
	.gh-logo img { width: 180px; }
	.gh-header .gh-header-cta .wp-block-button__link { font-size: 0.85rem; padding: 0.55rem 0.85rem; }
}
