/* ============================================================
   GRASSHOPPER COURSE site — base typography, core-block
   defaults, page scaffolding. Loads last.
   ============================================================ */

body {
	background: var(--gc-paper);
	color: var(--gc-ink);
	font-family: var(--gc-font-sans);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

/* links */
a { color: var(--gc-ink); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--gc-leaf-deep); }
::selection { background: var(--gc-leaf); color: #fff; }

/* headings — machined grotesk, tight tracking */
h1, h2, h3, h4, .wp-block-post-title {
	font-family: var(--gc-font-sans);
	font-weight: 500;
	letter-spacing: -.02em;
	line-height: 1.05;
	text-wrap: balance;
}
h1, .wp-block-post-title { font-size: clamp(2.4rem, 5.4vw, 4rem); }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); letter-spacing: -.015em; }
h3 { font-size: clamp(1.2rem, 2.2vw, 1.5rem); }
p { text-wrap: pretty; }

/* content column */
.gc-content > * { margin-block-start: 1.4em; }
.gc-content > h2 { margin-block-start: 2.4em; }

/* page title block (page.html) */
.gc-title-block { padding: clamp(40px, 6vw, 70px) var(--gc-gutter) 0; }
.gc-title-block .wp-block-post-title { margin: 14px 0 0; }

/* generic page main */
.gc-main { padding-bottom: var(--gc-section); }

/* wp core niceties */
.wp-block-separator:not(.gc-wire) {
	border: 0;
	border-top: 1px solid var(--gc-hairline-strong);
	opacity: 1;
}
.wp-block-quote {
	border-left: 0;
	padding: 26px 34px;
	background: var(--gc-surface-gloss);
	border: 1px solid var(--gc-hairline);
	border-radius: 0 70px 0 0;
	font-size: 1.15em;
	font-weight: 300;
}
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table td, .wp-block-table th { border: 0; border-bottom: 1px solid var(--gc-hairline); padding: 12px 16px 12px 0; }
.wp-block-table th { font-family: var(--gc-font-mono); font-size: 11px; letter-spacing: var(--gc-track-label); text-transform: uppercase; color: var(--gc-grey-soft); text-align: left; }
code, kbd { font-family: var(--gc-font-mono); font-size: .9em; background: rgba(23, 24, 18, .06); border-radius: 6px; padding: 2px 7px; }
.wp-block-image img { height: auto; }  /* archival honesty: no forced stretching */

/* lists */
.gc-content ul { padding-left: 1.2em; }
.gc-content li { margin: .4em 0; }
/* numbered service lists read as component stacks */
.gc-content ol { padding-left: 1.4em; }
.gc-content ol li { margin: .4em 0; }

/* search + 404 */
.gc-search-form .wp-block-search__input {
	border: 1px solid var(--gc-hairline-strong);
	border-radius: var(--gc-r-blade);
	padding: 14px 26px;
	font-family: var(--gc-font-sans);
	font-size: 15px;
	background: var(--gc-gloss);
}
.gc-search-form .wp-block-search__button {
	border-radius: var(--gc-r-blade) var(--gc-r-blade) var(--gc-r-blade) 22px;
	background: var(--gc-ink);
	color: var(--gc-paper);
	border: 0;
	padding: 14px 30px;
	font-family: var(--gc-font-sans);
	transition: background var(--gc-speed) var(--gc-ease);
}
.gc-search-form .wp-block-search__button:hover { background: var(--gc-leaf-deep); }
.gc-404-code {
	font-family: var(--gc-font-mono) !important;
	font-size: clamp(120px, 24vw, 280px) !important;
	line-height: 1 !important;
	-webkit-text-stroke: 2.5px var(--gc-ink);
	color: transparent !important;
	letter-spacing: .04em;
	margin: 0 !important;
}

/* query pagination */
.wp-block-query-pagination { font-family: var(--gc-font-mono); font-size: 13px; letter-spacing: .08em; }
.wp-block-query-pagination a { text-decoration: none; padding: 8px 16px; border: 1px solid var(--gc-hairline); border-radius: var(--gc-r-blade); transition: border-color var(--gc-speed), background var(--gc-speed); }
.wp-block-query-pagination a:hover { border-color: var(--gc-leaf-deep); background: rgba(120, 148, 63, .12); }

/* footer part */
.gc-footer-word {
	font-size: clamp(52px, 10.5vw, 132px) !important;
	font-weight: 600 !important;
	letter-spacing: .1em !important;
	line-height: 1 !important;
	text-align: center;
	pointer-events: none;
	margin: 0 !important;
}
.gc-footer-meta { font-family: var(--gc-font-mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: #56544d; }
.gc-footer nav a, .gc-footer .wp-block-navigation-item__content { color: #c9c8c1; }

/* ============ RESPONSIVE ============ */
@media (max-width: 781px) {
	.gc-header { margin: 12px 12px 0; gap: 12px; padding: 10px 12px 10px 18px; }
	.gc-shell { border-radius: 8px 8px 110px 8px; }
	.gc-dark { border-radius: 70px 8px 8px 8px; }
	.gc-shell-leaf { border-radius: 0 80px 0 0; }
	.gc-indent-1, .gc-indent-2 { margin-left: 0 !important; }
	.gc-blade:hover, .gc-index > *:hover { transform: none; }
	.gc-index > *:nth-child(n) { margin-right: 0; }
	.gc-specs p { grid-template-columns: 1fr; gap: 2px; }
}

/* print: keep it readable, drop theatrics */
@media print {
	.gc-cursor-ring, .gc-cursor-dot, .gc-marquee { display: none !important; }
	body { background: #fff; }
}
