/*
Theme Name: The Rose Garden
Theme URI: https://therose.garden
Author: The Rose Garden Consultancy
Author URI: https://therose.garden
Description: A specimen-sheet theme for The Rose Garden Consultancy — penetration testing and security research, powered by flowers. Botanical line-work, herbarium labelling, and a severity palette that keeps functional reads inside the brand world. Fonts are served locally; the theme makes no third-party requests.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
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: rose-garden
Tags: one-column, custom-colors, custom-logo, custom-menu, editor-style, featured-images, block-patterns, translation-ready, threaded-comments
*/

/* ==========================================================================
   1. Tokens
   ========================================================================== */

:root {
	/* Core palette */
	--rg-paper:        #ECE8DF;
	--rg-paper-deep:   #E2DDD1;
	--rg-ink:          #1D1D1F;
	--rg-rose:         #8A5C5C;
	--rg-rose-deep:    #6E4646;
	--rg-grey:         #6A6562;

	/* Derived */
	--rg-rule:         rgba(29, 29, 31, 0.16);
	--rg-rule-soft:    rgba(29, 29, 31, 0.08);
	--rg-rose-wash:    rgba(138, 92, 92, 0.10);

	/* Severity — muted earths, functional but in-world */
	--rg-critical:     #8C4A3F; /* brick rose */
	--rg-high:         #B06B4A; /* terracotta */
	--rg-medium:       #A98A3C; /* ochre     */
	--rg-low:          #6F8368; /* sage      */
	--rg-info:         #58616B; /* slate     */

	/* Type */
	--rg-display: "Italiana", "Didot", "Bodoni MT", Georgia, serif;
	--rg-body:    "Cormorant Garamond", Garamond, "EB Garamond", Georgia, serif;
	--rg-mono:    "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

	--rg-step--1: 0.95rem;
	--rg-step-0:  clamp(1.14rem, 0.4vw + 1.05rem, 1.3rem);
	--rg-step-1:  clamp(1.4rem, 0.7vw + 1.2rem, 1.72rem);
	--rg-step-2:  clamp(1.7rem, 1.2vw + 1.4rem, 2.3rem);
	--rg-step-3:  clamp(2.1rem, 2.6vw + 1.5rem, 3.4rem);
	--rg-step-4:  clamp(2.6rem, 5.2vw + 1.4rem, 5.4rem);

	/* Rhythm */
	--rg-gutter:  clamp(1.25rem, 4vw, 3.25rem);
	--rg-measure: 36rem;
	--rg-shell:   74rem;
	--rg-flow:    1.15em;
}

/* ==========================================================================
   2. Reset & base
   ========================================================================== */

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

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

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

body {
	margin: 0;
	background-color: var(--rg-paper);
	color: var(--rg-ink);
	font-family: var(--rg-body);
	font-size: var(--rg-step-0);
	font-weight: 400;
	line-height: 1.62;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
img { border-style: none; }

a {
	color: var(--rg-rose-deep);
	text-decoration: none;
	background-image: linear-gradient(var(--rg-rose), var(--rg-rose));
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 100% 1px;
	transition: background-size 180ms ease, color 180ms ease;
}
a:hover,
a:focus-visible { color: var(--rg-ink); background-size: 100% 2px; }

:focus-visible {
	outline: 2px solid var(--rg-rose);
	outline-offset: 3px;
}

hr, .wp-block-separator {
	border: 0;
	border-top: 1px solid var(--rg-rule);
	margin-block: 2.5rem;
}

::selection { background: var(--rg-rose-wash); }

/* ==========================================================================
   3. Typographic roles
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
	font-family: var(--rg-body);
	font-weight: 500;
	line-height: 1.16;
	letter-spacing: 0.005em;
	margin: 2.1em 0 0.55em;
	text-wrap: balance;
}
h1 { font-size: var(--rg-step-3); font-family: var(--rg-display); font-weight: 400; letter-spacing: 0.012em; }
h2 { font-size: var(--rg-step-2); }
h3 { font-size: var(--rg-step-1); }
h4 { font-size: var(--rg-step-0); font-weight: 600; }
h5, h6 {
	font-family: var(--rg-mono);
	font-size: 0.74rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--rg-grey);
}

p, ul, ol, dl, blockquote, figure, pre, table { margin: 0 0 var(--rg-flow); }

/* The house label: mono, spaced, quiet. */
.rg-label {
	font-family: var(--rg-mono);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--rg-grey);
	line-height: 1.5;
}
.rg-label a { background-image: none; color: inherit; }
.rg-label a:hover { color: var(--rg-rose); }

/* Latin binomial — the taxon line. */
.rg-taxon {
	font-family: var(--rg-body);
	font-style: italic;
	font-size: var(--rg-step-0);
	color: var(--rg-rose);
	letter-spacing: 0.01em;
}

blockquote {
	margin-inline: 0;
	padding-left: 1.4rem;
	border-left: 1px solid var(--rg-rose);
	font-size: var(--rg-step-1);
	font-weight: 300;
	font-style: italic;
	color: var(--rg-rose-deep);
}
blockquote cite {
	display: block;
	margin-top: 0.6rem;
	font: 500 0.7rem/1.5 var(--rg-mono);
	font-style: normal;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--rg-grey);
}

code, kbd, samp, pre {
	font-family: var(--rg-mono);
	font-size: 0.86em;
}
code { background: var(--rg-rose-wash); padding: 0.1em 0.35em; }
pre {
	background: var(--rg-paper-deep);
	border-left: 1px solid var(--rg-rose);
	padding: 1.1rem 1.25rem;
	overflow-x: auto;
	line-height: 1.6;
	font-size: 0.82rem;
}
pre code { background: none; padding: 0; }

table { width: 100%; border-collapse: collapse; font-size: 0.94em; }
th, td { padding: 0.6em 0.8em; border-bottom: 1px solid var(--rg-rule-soft); text-align: left; }
th {
	font: 500 0.68rem/1.5 var(--rg-mono);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rg-grey);
	border-bottom-color: var(--rg-rule);
}

/* ==========================================================================
   4. Shell — the mounting sheet
   ========================================================================== */

.rg-shell {
	max-width: var(--rg-shell);
	margin-inline: auto;
	padding-inline: var(--rg-gutter);
	width: 100%;
}
.rg-shell--narrow { max-width: calc(var(--rg-measure) + 2 * var(--rg-gutter)); }

/* Hairline frame with herbarium mounting corners. Decorative only. */
.rg-sheet-frame {
	position: fixed;
	inset: 14px;
	pointer-events: none;
	z-index: 2;
	border: 1px solid var(--rg-rule-soft);
}
.rg-sheet-frame::before,
.rg-sheet-frame::after {
	content: "";
	position: absolute;
	width: 16px;
	height: 16px;
	border: 1px solid var(--rg-rose);
	opacity: 0.5;
}
.rg-sheet-frame::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.rg-sheet-frame::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }
@media (max-width: 720px) { .rg-sheet-frame { display: none; } }

/* Ambient spray, cascading the right edge. */
.rg-spray {
	position: fixed;
	top: 4vh;
	right: -2.5rem;
	width: 15rem;
	color: var(--rg-rose);
	opacity: 0.14;
	pointer-events: none;
	z-index: 0;
}
@media (max-width: 1180px) { .rg-spray { display: none; } }

.rg-site { position: relative; z-index: 1; }

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 99;
	background: var(--rg-ink);
	color: var(--rg-paper);
	padding: 0.7rem 1.1rem;
	font: 500 0.72rem/1 var(--rg-mono);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background-image: none;
}
.skip-link:focus { left: 1rem; top: 1rem; }

/* ==========================================================================
   5. Masthead
   ========================================================================== */

.rg-masthead {
	padding-block: clamp(1.6rem, 4vw, 2.75rem) clamp(1.4rem, 3vw, 2.25rem);
	border-bottom: 1px solid var(--rg-rule);
}
.rg-masthead__inner {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem 2rem;
	flex-wrap: wrap;
}

.rg-branding__title { margin: 0; font-size: inherit; font-weight: 400; line-height: 1; }
.rg-wordmark-link { background-image: none; display: inline-block; }

.rg-wordmark {
	display: inline-flex;
	align-items: baseline;
	gap: 0.28em;
	font-family: var(--rg-display);
	font-size: clamp(1.9rem, 4.4vw, 3.1rem);
	line-height: 1;
	letter-spacing: 0.02em;
	color: var(--rg-ink);
	background-image: none;
	white-space: nowrap;
}
.rg-wordmark:hover { color: var(--rg-ink); }
/* Italiana ships no italic — the oblique is synthesised, per brand. */
.rg-wordmark__garden {
	color: var(--rg-rose);
	transform: skewX(-11deg);
	display: inline-block;
	transform-origin: bottom left;
}
.rg-wordmark__mark {
	width: 0.62em;
	color: var(--rg-rose);
	align-self: center;
	flex: none;
}
.rg-branding { display: flex; flex-direction: column; gap: 0.55rem; }
.rg-tagline { margin: 0; }
.custom-logo { max-height: 74px; width: auto; }

/* Running mark */
.rg-runmark { display: inline-flex; align-items: center; gap: 0.55em; }
.rg-runmark__star {
	color: var(--rg-rose);
	font-family: var(--rg-mono), "DejaVu Sans", "Segoe UI Symbol", sans-serif;
	font-size: 1.05em;
	line-height: 1;
}

/* ==========================================================================
   6. Navigation
   ========================================================================== */

.rg-nav ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 1.75rem;
	margin: 0;
	padding: 0;
}
.rg-nav a {
	font-family: var(--rg-mono);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rg-ink);
	background-image: linear-gradient(var(--rg-rose), var(--rg-rose));
	background-size: 0 1px;
	padding-bottom: 0.3em;
}
.rg-nav a:hover,
.rg-nav a:focus-visible,
.rg-nav .current-menu-item > a,
.rg-nav .current_page_item > a { background-size: 100% 1px; color: var(--rg-rose-deep); }

.rg-nav-toggle {
	display: none;
	align-items: center;
	gap: 0.6rem;
	background: none;
	border: 1px solid var(--rg-rule);
	color: var(--rg-ink);
	font: 500 0.7rem/1 var(--rg-mono);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 0.7rem 1rem;
	cursor: pointer;
}
.rg-nav-toggle:hover { border-color: var(--rg-rose); color: var(--rg-rose-deep); }

@media (max-width: 860px) {
	.rg-nav-toggle { display: inline-flex; }
	.rg-nav {
		flex-basis: 100%;
		display: none;
		padding-top: 1.25rem;
		border-top: 1px solid var(--rg-rule-soft);
		margin-top: 0.5rem;
	}
	.rg-nav.is-open { display: block; }
	.rg-nav ul { flex-direction: column; align-items: flex-start; gap: 0.9rem; }
}

/* ==========================================================================
   7. Specimen label — the signature device
   ========================================================================== */

.rg-specimen {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(8.5rem, auto));
	gap: 0.75rem 2.25rem;
	justify-content: start;
	padding: 0.85rem 0 0.95rem;
	border-top: 1px solid var(--rg-ink);
	border-bottom: 1px solid var(--rg-rule);
	margin-bottom: 1.6rem;
}
.rg-specimen__field { display: flex; flex-direction: column; gap: 0.22rem; }
.rg-specimen__key {
	font: 400 0.62rem/1.4 var(--rg-mono);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--rg-grey);
}
.rg-specimen__val {
	font: 500 0.78rem/1.4 var(--rg-mono);
	letter-spacing: 0.04em;
	color: var(--rg-ink);
}
.rg-specimen__val a { background-image: none; color: inherit; }
.rg-specimen__val a:hover { color: var(--rg-rose); }
.rg-specimen__val--taxon {
	font-family: var(--rg-body);
	font-style: italic;
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.01em;
	color: var(--rg-rose);
}

/* Severity chips */
.rg-severity {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	font: 500 0.68rem/1 var(--rg-mono);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rg-sev, var(--rg-info));
	background-image: none;
}
.rg-severity::before {
	content: "";
	width: 0.55em;
	height: 0.55em;
	background: currentColor;
	flex: none;
}
.rg-severity--critical { --rg-sev: var(--rg-critical); }
.rg-severity--high     { --rg-sev: var(--rg-high); }
.rg-severity--medium   { --rg-sev: var(--rg-medium); }
.rg-severity--low      { --rg-sev: var(--rg-low); }
.rg-severity--info     { --rg-sev: var(--rg-info); }

/* ==========================================================================
   8. Entries & archive
   ========================================================================== */

.rg-main { padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(3rem, 8vw, 6rem); }
.home .rg-main { padding-top: 0; }

.rg-page-header { margin-bottom: clamp(2.25rem, 5vw, 3.5rem); }
.rg-page-header__title {
	font-family: var(--rg-display);
	font-weight: 400;
	font-size: var(--rg-step-3);
	margin: 0.35rem 0 0;
	letter-spacing: 0.012em;
}
.rg-page-header__intro {
	max-width: var(--rg-measure);
	margin: 1rem 0 0;
	font-weight: 300;
	font-size: var(--rg-step-1);
	color: var(--rg-grey);
}

.rg-entries { display: flex; flex-direction: column; }

.rg-entry {
	padding-block: clamp(1.75rem, 4vw, 2.75rem);
	border-bottom: 1px solid var(--rg-rule-soft);
}
.rg-entry:first-child { padding-top: 0; }

@media (min-width: 900px) {
	.rg-entry {
		display: grid;
		grid-template-columns: 11rem minmax(0, 1fr);
		gap: 0 3rem;
		align-items: start;
	}
}

.rg-entry__aside { display: flex; flex-direction: column; gap: 0.5rem; }
.rg-entry__accession {
	font: 500 0.72rem/1.4 var(--rg-mono);
	letter-spacing: 0.14em;
	color: var(--rg-rose);
}
.rg-entry__date {
	font: 400 0.68rem/1.4 var(--rg-mono);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rg-grey);
}
@media (max-width: 899px) {
	.rg-entry__aside { flex-direction: row; flex-wrap: wrap; gap: 0.4rem 1.25rem; margin-bottom: 0.9rem; }
}

.rg-entry__title {
	font-family: var(--rg-display);
	font-weight: 400;
	font-size: var(--rg-step-2);
	line-height: 1.14;
	letter-spacing: 0.012em;
	margin: 0 0 0.5rem;
	max-width: 26ch;
}
.rg-entry__title a { color: var(--rg-ink); background-image: none; }
.rg-entry__title a:hover { color: var(--rg-rose-deep); }

.rg-entry__taxon { display: block; margin-bottom: 0.7rem; }

.rg-entry__excerpt {
	max-width: var(--rg-measure);
	font-weight: 300;
	color: var(--rg-grey);
	margin-bottom: 0.9rem;
}
.rg-entry__excerpt > :last-child { margin-bottom: 0; }

.rg-entry__thumb { margin: 0 0 1.1rem; }
.rg-entry__thumb img { filter: grayscale(1) contrast(1.02); transition: filter 260ms ease; }
.rg-entry:hover .rg-entry__thumb img { filter: grayscale(0.35) contrast(1.02); }

.rg-more {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	font: 500 0.7rem/1 var(--rg-mono);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background-image: none;
	color: var(--rg-rose-deep);
}
.rg-more::after { content: "→"; transition: transform 200ms ease; }
.rg-more:hover::after { transform: translateX(0.3em); }

/* ==========================================================================
   8b. Front page
   ========================================================================== */

.rg-hero {
	padding-block: clamp(2.5rem, 8vw, 6rem) clamp(2.5rem, 6vw, 4.5rem);
	border-bottom: 1px solid var(--rg-rule);
}
.rg-hero__eyebrow { margin: 0 0 clamp(1.5rem, 4vw, 2.5rem); }

.rg-hero__line {
	font-family: var(--rg-display);
	font-weight: 400;
	font-size: var(--rg-step-4);
	line-height: 1.02;
	letter-spacing: 0.015em;
	margin: 0;
	max-width: 16ch;
}
/* Italiana has no italic; the oblique is synthesised, as on the wordmark. */
.rg-hero__line em {
	display: inline-block;
	font-style: normal;
	color: var(--rg-rose);
	transform: skewX(-11deg);
	transform-origin: bottom left;
}

.rg-hero__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.75rem 3rem;
	margin-top: clamp(2rem, 5vw, 3.25rem);
}
.rg-hero__standfirst {
	max-width: var(--rg-measure);
	font-size: var(--rg-step-1);
	font-weight: 300;
	color: var(--rg-grey);
	margin: 0;
}
.rg-hero__actions { margin: 0; }

.rg-section { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.rg-section + .rg-section { padding-top: 0; }
.rg-section__head { max-width: var(--rg-measure); margin-bottom: clamp(1.5rem, 4vw, 2.25rem); }
.rg-section__title {
	font-family: var(--rg-display);
	font-weight: 400;
	font-size: var(--rg-step-2);
	letter-spacing: 0.012em;
	margin: 0.4rem 0 0;
}
.rg-section__intro { margin: 0.9rem 0 0; font-weight: 300; color: var(--rg-grey); }

/* ==========================================================================
   9. Single article
   ========================================================================== */

.rg-article__header { margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }
.rg-article__title {
	font-family: var(--rg-display);
	font-weight: 400;
	font-size: var(--rg-step-3);
	line-height: 1.1;
	letter-spacing: 0.012em;
	margin: 0 0 0.6rem;
	max-width: 22ch;
}
.rg-article__standfirst {
	max-width: var(--rg-measure);
	font-size: var(--rg-step-1);
	font-weight: 300;
	color: var(--rg-grey);
	margin: 0;
}
.rg-article__figure { margin: 0 0 clamp(1.75rem, 4vw, 2.5rem); }
.rg-article__figure figcaption,
.wp-block-image figcaption {
	font: 400 0.7rem/1.6 var(--rg-mono);
	letter-spacing: 0.1em;
	color: var(--rg-grey);
	margin-top: 0.7rem;
	text-align: left;
}

.rg-content { max-width: var(--rg-measure); }
.rg-content > *:first-child { margin-top: 0; }
.rg-content > p:first-of-type::first-line { letter-spacing: 0.015em; }
.rg-content ul, .rg-content ol { padding-left: 1.3rem; }
.rg-content ul { list-style: none; padding-left: 1.5rem; }
.rg-content ul > li { position: relative; }
.rg-content ul > li::before {
	content: "";
	position: absolute;
	left: -1.15rem;
	top: 0.62em;
	width: 5px;
	height: 5px;
	background: var(--rg-rose);
	transform: rotate(45deg);
}
.rg-content li { margin-bottom: 0.4em; }

/* Wide/full blocks escape the measure */
.rg-content .alignwide { width: min(100%, 56rem); max-width: none; }
.rg-content .alignfull { width: 100%; max-width: none; }
.rg-content .alignleft { float: left; margin: 0.3rem 1.75rem 1.25rem 0; max-width: 45%; }
.rg-content .alignright { float: right; margin: 0.3rem 0 1.25rem 1.75rem; max-width: 45%; }
.rg-content .aligncenter { margin-inline: auto; }

.rg-article__footer {
	max-width: var(--rg-measure);
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	padding-top: 1.4rem;
	border-top: 1px solid var(--rg-rule);
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 2rem;
}

/* Prev / next */
.rg-post-nav {
	max-width: var(--rg-measure);
	margin-top: 2.5rem;
	display: grid;
	gap: 1.5rem;
}
@media (min-width: 700px) { .rg-post-nav { grid-template-columns: 1fr 1fr; } }
.rg-post-nav__link { display: flex; flex-direction: column; gap: 0.4rem; background-image: none; }
.rg-post-nav__title { font-family: var(--rg-body); font-size: var(--rg-step-0); color: var(--rg-ink); }
.rg-post-nav__link:hover .rg-post-nav__title { color: var(--rg-rose-deep); }
.rg-post-nav__link--next { text-align: right; }

/* ==========================================================================
   10. Notes — services as a perfumer's pyramid
   ========================================================================== */

.rg-notes {
	display: grid;
	gap: clamp(1.75rem, 4vw, 2.75rem);
	margin-block: clamp(2rem, 5vw, 3.25rem);
}
@media (min-width: 820px) { .rg-notes { grid-template-columns: repeat(3, 1fr); } }

.rg-note { border-top: 1px solid var(--rg-ink); padding-top: 1rem; }
.rg-note__stage {
	font: 500 0.66rem/1 var(--rg-mono);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--rg-rose);
	display: block;
	margin-bottom: 0.75rem;
}
.rg-note__title {
	font-family: var(--rg-display);
	font-weight: 400;
	font-size: var(--rg-step-1);
	margin: 0 0 0.5rem;
	letter-spacing: 0.012em;
}
.rg-note__body { font-weight: 300; color: var(--rg-grey); margin: 0; }

/* ==========================================================================
   10b. The studio card
   ========================================================================== */

.rg-card-grid {
	display: grid;
	gap: clamp(2rem, 5vw, 3.5rem);
	align-items: start;
}
@media (min-width: 900px) { .rg-card-grid { grid-template-columns: 22rem minmax(0, 1fr); } }

.rg-card {
	position: relative;
	padding: 2.25rem 2rem;
	border: 1px solid var(--rg-rule);
	background: var(--rg-paper-deep);
}
.rg-card__corner {
	position: absolute;
	width: 14px;
	height: 14px;
	border: 1px solid var(--rg-rose);
}
.rg-card__corner--tl { top: 8px; left: 8px; border-right: 0; border-bottom: 0; }
.rg-card__corner--br { bottom: 8px; right: 8px; border-left: 0; border-top: 0; }
.rg-card__mark { width: 2.6rem; color: var(--rg-rose); margin-bottom: 1.5rem; }
.rg-card__name {
	font-family: var(--rg-display);
	font-size: var(--rg-step-1);
	letter-spacing: 0.02em;
	margin: 0 0 0.35rem;
}
.rg-card__role { margin: 0 0 1.25rem; }
.rg-card__lines { font: 400 0.8rem/1.9 var(--rg-mono); margin: 0; }
.rg-card__lines a { background-image: none; color: var(--rg-ink); }
.rg-card__lines a:hover { color: var(--rg-rose); }
.rg-card__fingerprint {
	margin: 1.5rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--rg-rule);
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

/* ==========================================================================
   11. Forms, buttons, search
   ========================================================================== */

input[type="text"], input[type="email"], input[type="url"], input[type="search"],
input[type="tel"], input[type="number"], input[type="password"], textarea, select {
	width: 100%;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--rg-rule);
	padding: 0.65rem 0.15rem;
	font: 400 0.9rem/1.5 var(--rg-mono);
	color: var(--rg-ink);
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
}
input:focus, textarea:focus, select:focus { outline: 0; border-bottom-color: var(--rg-rose); }
::placeholder { color: var(--rg-grey); opacity: 0.7; }
label {
	display: block;
	font: 400 0.66rem/1.5 var(--rg-mono);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--rg-grey);
	margin-bottom: 0.15rem;
}

.rg-button,
button, input[type="submit"], .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	background: transparent;
	color: var(--rg-ink);
	border: 1px solid var(--rg-ink);
	border-radius: 0;
	padding: 0.85rem 1.5rem;
	font: 500 0.7rem/1 var(--rg-mono);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	background-image: none;
	transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease;
	width: auto;
}
.rg-button:hover, .rg-button:focus-visible,
button:hover, input[type="submit"]:hover, .wp-block-button__link:hover {
	background: var(--rg-rose);
	border-color: var(--rg-rose);
	color: var(--rg-paper);
}

.rg-search { display: flex; align-items: flex-end; gap: 0.9rem; max-width: 30rem; }
.rg-search__field { flex: 1; }
.rg-search .rg-button { flex: none; padding-inline: 1.1rem; }

/* ==========================================================================
   12. Comments
   ========================================================================== */

.rg-comments { max-width: var(--rg-measure); margin-top: clamp(3rem, 6vw, 4.5rem); }
.rg-comments__title { font-family: var(--rg-display); font-weight: 400; font-size: var(--rg-step-2); margin: 0 0 1.75rem; }
.comment-list { list-style: none; margin: 0; padding: 0; }
.comment-list ol.children { list-style: none; margin: 1.5rem 0 0; padding-left: 1.5rem; border-left: 1px solid var(--rg-rule-soft); }
.comment-body { padding-block: 1.4rem; border-top: 1px solid var(--rg-rule-soft); }
.comment-author { display: flex; align-items: center; gap: 0.75rem; }
.comment-author .fn { font-style: normal; font-size: var(--rg-step-0); font-weight: 500; }
.comment-author img { border-radius: 50%; }
.comment-meta { margin-bottom: 0.6rem; }
.comment-metadata a { font: 400 0.66rem/1.5 var(--rg-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--rg-grey); background-image: none; }
.reply a { font: 500 0.66rem/1 var(--rg-mono); letter-spacing: 0.18em; text-transform: uppercase; background-image: none; }
.comment-form p { margin-bottom: 1.25rem; }
.comment-respond .comment-reply-title { font-family: var(--rg-display); font-weight: 400; font-size: var(--rg-step-1); }

/* ==========================================================================
   13. Pagination
   ========================================================================== */

.rg-pagination { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.rg-pagination .nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.rg-pagination .page-numbers {
	font: 400 0.74rem/1 var(--rg-mono);
	letter-spacing: 0.12em;
	color: var(--rg-grey);
	padding: 0.55rem 0.75rem;
	border: 1px solid transparent;
	background-image: none;
}
.rg-pagination a.page-numbers:hover { border-color: var(--rg-rule); color: var(--rg-ink); }
.rg-pagination .page-numbers.current { color: var(--rg-rose); border-color: var(--rg-rose); }

/* ==========================================================================
   14. Footer
   ========================================================================== */

.rg-footer {
	border-top: 1px solid var(--rg-ink);
	padding-block: clamp(2.25rem, 5vw, 3.25rem) clamp(2rem, 4vw, 2.75rem);
}
.rg-footer__grid {
	display: grid;
	gap: 2rem clamp(2rem, 5vw, 4rem);
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	margin-bottom: 2.5rem;
}
.rg-footer__col > *:last-child { margin-bottom: 0; }
.rg-footer__heading {
	font: 400 0.66rem/1.5 var(--rg-mono);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--rg-grey);
	margin: 0 0 0.9rem;
}
.rg-footer__col ul { list-style: none; margin: 0; padding: 0; }
.rg-footer__col li { margin-bottom: 0.45rem; }
.rg-footer__col li a {
	color: var(--rg-ink);
	background-size: 0 1px;
}
.rg-footer__col li a:hover,
.rg-footer__col li a:focus-visible {
	color: var(--rg-rose-deep);
	background-size: 100% 1px;
}
.rg-footer__contact { font: 400 0.8rem/1.9 var(--rg-mono); color: var(--rg-ink); margin: 0; }
.rg-footer__contact a { background-image: none; color: var(--rg-ink); }
.rg-footer__contact a:hover { color: var(--rg-rose); }
.rg-fingerprint { word-break: break-all; font-size: 0.72rem; color: var(--rg-grey); }

.rg-colophon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.9rem 2rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--rg-rule-soft);
}

/* ==========================================================================
   15. Widgets
   ========================================================================== */

.widget { margin-bottom: 2.25rem; }
.widget-title, .wp-block-heading.widget-title {
	font: 400 0.66rem/1.5 var(--rg-mono);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--rg-grey);
	margin: 0 0 0.9rem;
}
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget li { margin-bottom: 0.45rem; }

/* ==========================================================================
   16. Block editor front-end tidy-ups
   ========================================================================== */

.wp-block-quote { border-left: 1px solid var(--rg-rose); padding-left: 1.4rem; }
.wp-block-pullquote { border-block: 1px solid var(--rg-rule); padding-block: 1.75rem; text-align: left; }
.wp-block-table th, .wp-block-table td { border-bottom: 1px solid var(--rg-rule-soft); }
.wp-block-code { background: var(--rg-paper-deep); border-left: 1px solid var(--rg-rose); }
.wp-block-button__link { border-radius: 0; }
.is-style-outline .wp-block-button__link { border: 1px solid var(--rg-ink); }
.has-rg-rose-color { color: var(--rg-rose) !important; }
.has-rg-ink-color { color: var(--rg-ink) !important; }
.has-rg-grey-color { color: var(--rg-grey) !important; }
.has-rg-paper-background-color { background-color: var(--rg-paper) !important; }
.has-rg-paper-deep-background-color { background-color: var(--rg-paper-deep) !important; }
.has-rg-rose-background-color { background-color: var(--rg-rose) !important; }
.has-rg-ink-background-color { background-color: var(--rg-ink) !important; }

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* ==========================================================================
   17. Print — the sheet, on paper
   ========================================================================== */

@media print {
	.rg-spray, .rg-sheet-frame, .rg-nav, .rg-nav-toggle, .rg-comments, .rg-post-nav { display: none !important; }
	body { background: #fff; color: #000; font-size: 11pt; }
	.rg-content { max-width: none; }
	a { background-image: none; color: #000; }
	.rg-content a::after { content: " (" attr(href) ")"; font-family: var(--rg-mono); font-size: 0.75em; color: #555; }
}
