/*
Theme Name: G. Romany — Escape From Reality
Theme URI: https://gromanywrites.com/
Author: G. Romany
Description: A custom author website inspired by the original Saraswati Blog design and rebuilt for G. Romany, The 7 Genre Enchanter.
Version: 1.0.1
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: gromany-enchanted
Tags: custom-background, custom-logo, custom-menu, featured-images, blog, one-column, two-columns
*/

@font-face {
	font-family: 'Gromany Serif';
	src: url('assets/fonts/DejaVuSerif.ttf') format('truetype');
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: 'Gromany Serif';
	src: url('assets/fonts/DejaVuSerif-Bold.ttf') format('truetype');
	font-style: normal;
	font-weight: 700;
	font-display: swap;
}

:root {
	--gromany-ink: #555252;
	--gromany-ink-deep: #252121;
	--gromany-wine: #58212e;
	--gromany-wine-deep: #401722;
	--gromany-rose: #9f4061;
	--gromany-paper: #fff;
	--gromany-rule: #dedbd9;
	--gromany-shadow: 0 18px 48px rgba(13, 13, 19, .11);
	--gromany-max: 1180px;
	--gromany-serif: 'Merriweather', 'Gromany Serif', Georgia, 'Times New Roman', serif;
}

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

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background-color: #222b31;
	background-image: url('assets/images/snow-globe.jpg');
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: fixed;
	color: var(--gromany-ink);
	font-family: var(--gromany-serif);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: .065em;
	line-height: 1.9;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; }
a { color: var(--gromany-wine); text-underline-offset: .2em; }
a:hover, a:focus-visible { color: var(--gromany-rose); }
h1, h2, h3, h4, h5, h6 {
	color: var(--gromany-ink);
	font-family: var(--gromany-serif);
	letter-spacing: -.035em;
	line-height: 1.28;
}

p { margin: 0 0 1.55em; }
p:last-child { margin-bottom: 0; }

.screen-reader-text {
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}

.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none;
	height: auto;
	width: auto;
	left: 12px;
	top: 12px;
	z-index: 100000;
	padding: 12px 18px;
	background: #fff;
	color: var(--gromany-wine);
}

.site-topbar {
	padding: 13px 20px;
	background: var(--gromany-wine-deep);
	color: #fff;
	text-align: center;
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.site-topbar a { color: #fff; text-decoration: none; }

.site-branding {
	background: #080808;
	border-top: 1px solid rgba(255, 255, 255, .09);
	border-bottom: 1px solid rgba(255, 255, 255, .09);
	text-align: center;
}

.site-branding__link {
	display: block;
	max-width: 1020px;
	margin: 0 auto;
	color: #fff;
	text-decoration: none;
}

.site-branding__image {
	display: block;
	width: 100%;
	height: clamp(245px, 49vw, 465px);
	object-fit: contain;
	object-position: center center;
	background: #080808;
}

.site-nav {
	position: sticky;
	top: 0;
	z-index: 100;
	border-top: 1px dashed #c8c4c0;
	border-bottom: 1px dashed #c8c4c0;
	background: rgba(255, 255, 255, .985);
	box-shadow: 0 2px 9px rgba(0, 0, 0, .075);
}

.admin-bar .site-nav { top: 32px; }

.site-nav__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 76px;
	max-width: var(--gromany-max);
	margin: 0 auto;
	padding: 0 30px;
}

.site-nav__label {
	color: #292626;
	font-size: 21px;
	font-weight: 700;
	letter-spacing: .035em;
	text-decoration: none;
}

.site-nav__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 48px;
	padding: 10px;
	border: 0;
	background: transparent;
	color: #161515;
	cursor: pointer;
}

.site-nav__toggle-lines,
.site-nav__toggle-lines::before,
.site-nav__toggle-lines::after {
	position: absolute;
	width: 26px;
	height: 3px;
	background: currentColor;
	transition: transform .2s ease, opacity .2s ease;
}

.site-nav__toggle-lines::before,
.site-nav__toggle-lines::after { content: ''; }
.site-nav__toggle-lines::before { transform: translateY(-8px); }
.site-nav__toggle-lines::after { transform: translateY(8px); }
.site-nav__toggle[aria-expanded='true'] .site-nav__toggle-lines { background: transparent; }
.site-nav__toggle[aria-expanded='true'] .site-nav__toggle-lines::before { transform: rotate(45deg); }
.site-nav__toggle[aria-expanded='true'] .site-nav__toggle-lines::after { transform: rotate(-45deg); }

.primary-menu,
.primary-menu .sub-menu {
	display: flex;
	align-items: center;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-menu a {
	color: #373434;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .07em;
	text-decoration: none;
	text-transform: uppercase;
}

.primary-menu .current-menu-item > a,
.primary-menu a:hover { color: var(--gromany-wine); }

.age-notice {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 10px 18px;
	background: rgba(57, 22, 33, .97);
	color: #fff;
	font-size: 11px;
	line-height: 1.5;
	text-align: center;
}

.age-notice[hidden] { display: none; }

.age-notice button {
	padding: 5px 11px;
	border: 1px solid rgba(255, 255, 255, .72);
	background: transparent;
	color: #fff;
	font: inherit;
	cursor: pointer;
}

.site-shell {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 315px;
	align-items: start;
	gap: 34px;
	max-width: calc(var(--gromany-max) + 40px);
	margin: 0 auto;
	padding: 54px 20px 70px;
}

.content-area { min-width: 0; }

.paper-card,
.sidebar-card {
	background: var(--gromany-paper);
	border: 1px solid rgba(226, 223, 220, .96);
	box-shadow: var(--gromany-shadow);
}

.paper-card {
	padding: 64px clamp(34px, 7vw, 78px) 72px;
}

.paper-card + .paper-card { margin-top: 34px; }

.page-heading {
	margin: 0 0 14px;
	font-size: clamp(32px, 4vw, 44px);
	font-weight: 900;
	text-align: center;
}

.page-heading--uppercase { text-transform: uppercase; }

.ornament {
	display: block;
	width: 83px;
	height: 33px;
	margin: 19px auto 46px;
	background-image: url('assets/images/ornament-leaves.svg');
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.entry-content,
.entry-summary {
	font-size: 16px;
	font-weight: 400;
	letter-spacing: .06em;
	line-height: 2;
}

.entry-content > :first-child { margin-top: 0; }
.entry-content > :last-child { margin-bottom: 0; }

.entry-content h2,
.entry-content h3 {
	margin: 1.8em 0 .75em;
	line-height: 1.5;
}

.entry-content strong { color: var(--gromany-ink-deep); }

.genre-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin: 24px 0 32px;
	padding: 0;
	list-style: none;
}

.genre-tags li {
	padding: 5px 11px;
	border: 1px solid #e5d8dd;
	color: var(--gromany-wine);
	font-size: 11px;
	letter-spacing: .065em;
}

.home-invitation {
	margin: 20px 0 32px;
	padding: 24px 0;
	border-top: 1px dashed var(--gromany-rule);
	border-bottom: 1px dashed var(--gromany-rule);
	color: var(--gromany-wine);
	font-size: 21px;
	font-style: italic;
	text-align: center;
}

.book-grid {
	display: grid;
	gap: 23px;
	margin: 32px 0 0;
}

.book-card {
	position: relative;
	padding: 23px 24px 25px;
	border: 1px solid #e8e3e4;
	border-left: 3px solid var(--gromany-wine);
}

.book-card__eyebrow {
	display: block;
	margin-bottom: 5px;
	color: var(--gromany-rose);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.book-card h3 { margin: 0 0 10px; font-size: 20px; }
.book-card p { margin-bottom: 14px; font-size: 13px; }

.button,
.wp-block-button__link,
.newsletter-form button,
.contact-form button {
	display: inline-block;
	padding: 12px 19px;
	border: 1px solid var(--gromany-wine);
	border-radius: 0;
	background: var(--gromany-wine);
	color: #fff;
	font-family: var(--gromany-serif);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .105em;
	line-height: 1.4;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
}

.button:hover,
.button:focus-visible,
.wp-block-button__link:hover,
.newsletter-form button:hover,
.contact-form button:hover {
	border-color: var(--gromany-wine-deep);
	background: var(--gromany-wine-deep);
	color: #fff;
}

.button--outline { background: #fff; color: var(--gromany-wine); }

.sidebar { min-width: 0; }

.sidebar-card {
	margin-bottom: 25px;
	padding: 35px 23px 38px;
}

.sidebar-card:last-child { margin-bottom: 0; }

.sidebar-card__heading {
	position: relative;
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .075em;
	line-height: 1.7;
	text-align: center;
	text-transform: uppercase;
}

.sidebar-card__heading::before {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	border-top: 1px dashed var(--gromany-rule);
	content: '';
}

.sidebar-card__heading span {
	position: relative;
	z-index: 1;
	padding: 0 11px;
	background: #fff;
}

.sidebar-card .ornament {
	width: 86px;
	height: 25px;
	margin: 15px auto 25px;
	background-image: url('assets/images/ornament-scroll.svg');
}

.sidebar-card p { font-size: 13px; line-height: 1.95; }

.social-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.social-links a {
	display: inline-block;
	padding: 7px 10px;
	border: 1px solid #e6e0e1;
	font-size: 10px;
	text-decoration: none;
}

.newsletter-intro {
	margin: 0 0 35px;
	font-size: clamp(21px, 3vw, 28px);
	font-weight: 900;
	letter-spacing: -.035em;
	line-height: 1.58;
}

.newsletter-required {
	margin: 0 0 16px;
	font-size: 11px;
	text-align: right;
}

.required-star { color: #bf493f; }

.form-field { margin: 0 0 19px; }

.form-field label {
	display: block;
	margin-bottom: 8px;
	color: var(--gromany-ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .075em;
}

.form-field input,
.form-field textarea,
.search-form input[type='search'] {
	display: block;
	width: 100%;
	padding: 11px 12px;
	border: 1px solid #bbb7b5;
	border-radius: 0;
	background: #fff;
	color: var(--gromany-ink-deep);
	font: inherit;
	font-size: 14px;
	letter-spacing: .02em;
	line-height: 1.5;
}

.form-field textarea { min-height: 160px; resize: vertical; }

.form-field input:focus,
.form-field textarea:focus,
.search-form input[type='search']:focus {
	border-color: var(--gromany-wine);
	outline: 2px solid rgba(88, 33, 46, .18);
}

.form-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 17px 0 20px;
	font-size: 11px;
	line-height: 1.7;
}

.form-consent input { margin-top: 5px; }

.form-status {
	margin: 0 0 24px;
	padding: 13px 15px;
	border-left: 3px solid var(--gromany-wine);
	background: #f6f0f2;
	font-size: 13px;
}

.form-status--error { border-left-color: #ae362d; background: #fbefee; }

.gromany-honeypot {
	position: absolute !important;
	left: -9999px !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

.post-meta { margin-bottom: 20px; font-size: 11px; }
.post-card + .post-card { margin-top: 30px; }
.post-card .page-heading { text-align: left; }
.post-navigation { margin-top: 24px; }

.site-footer {
	padding: 33px 20px;
	background: rgba(30, 18, 22, .92);
	color: #fff;
	text-align: center;
	font-size: 11px;
	line-height: 2;
}

.site-footer a { color: #fff; }
.site-footer__tagline { margin: 0 0 7px; }

.back-to-top {
	position: fixed;
	right: 22px;
	bottom: 25px;
	z-index: 101;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 43px;
	height: 43px;
	border: 0;
	background: rgba(255, 255, 255, .96);
	color: var(--gromany-wine);
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s ease;
}

.back-to-top.is-visible { opacity: 1; pointer-events: auto; }

.back-to-top::before {
	width: 15px;
	height: 15px;
	border-top: 4px solid currentColor;
	border-left: 4px solid currentColor;
	content: '';
	transform: translateY(4px) rotate(45deg);
}

@media (max-width: 1000px) {
	.site-shell { grid-template-columns: minmax(0, 1fr) 270px; gap: 23px; }
	.primary-menu { gap: 13px; }
	.primary-menu a { font-size: 10px; }
}

@media (max-width: 782px) {
	.admin-bar .site-nav { top: 46px; }
	.site-branding__image { height: clamp(220px, 61vw, 365px); }
	.site-nav__inner { min-height: 72px; padding: 0 22px; }
	.site-nav__label { font-size: 18px; }
	.site-nav__toggle { display: inline-flex; }
	.primary-navigation {
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		padding: 7px 0 12px;
		border-bottom: 1px solid var(--gromany-rule);
		background: #fff;
		box-shadow: 0 8px 16px rgba(0, 0, 0, .08);
	}
	.primary-navigation:not(.is-open) { display: none; }
	.primary-menu, .primary-menu .sub-menu {
		display: block;
		margin: 0;
		padding: 0;
	}
	.primary-menu a {
		display: block;
		padding: 11px 23px;
		font-size: 12px;
	}
	.site-shell {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 30px 15px 50px;
	}
	.paper-card { padding: 48px 35px 56px; }
	.sidebar-card { padding: 36px 28px 42px; }
	.entry-content, .entry-summary { font-size: 16px; line-height: 1.95; }
	.age-notice { font-size: 10px; }
}

@media (max-width: 450px) {
	.site-topbar { font-size: 10px; letter-spacing: .10em; }
	.site-branding__image { height: clamp(225px, 72vw, 295px); }
	.site-shell { padding-right: 11px; padding-left: 11px; }
	.paper-card { padding: 42px 26px 49px; }
	.page-heading { font-size: 32px; }
	.ornament { margin-bottom: 36px; }
	.entry-content, .entry-summary { font-size: 15px; letter-spacing: .055em; }
	.book-card { padding-right: 17px; padding-left: 17px; }
	.newsletter-intro { font-size: 21px; }
}

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