/*
 * Theme Name: Other World Stone
 * Theme URI: https://otherworldstone.com/
 * Author: Other World Stone
 * Author URI: https://otherworldstone.com/
 * Description: A simple, literary, responsive theme for Other World Stone. Banner with the site name, language-specific navigation menus, page content and a footer with contact details and navigation. Polylang ready.
 * Version: 1.7.0
 * Requires at least: 6.0
 * Tested up to: 7.1
 * 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: otherworldstone
 * Tags: custom-menu, custom-logo, featured-images, translation-ready, blog, one-column
 */

/* ==========================================================================
   1. Design tokens
   ========================================================================== */

:root {
	--ows-ink: #0f2040;
	--ows-ink-deep: #0a1628;
	--ows-teal: #c9a84c;
	--ows-teal-dark: #b8943f;
	--ows-cream: #f7f3e8;
	--ows-cream-soft: #f0ead6;
	--ows-mist: #e8dcc8;
	--ows-green: #538914;
	--ows-text: #1a1a2e;
	--ows-muted: #5a5a7a;
	--ows-line: rgba(10, 22, 40, 0.15);
	--ows-line-light: rgba(232, 220, 200, 0.2);
	--ows-serif: "Noto Serif", Georgia, "Times New Roman", serif;
	--ows-sans: "Inter", "Questrial", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	--ows-nav: "Questrial", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	--ows-max: 1180px;
	--ows-radius: 4px;
	--ows-shadow: 0 18px 40px rgba(10, 22, 40, 0.14);
	--ows-on-dark: #e8dcc8;
	--ows-banner-start: #0a1628;
	--ows-banner-mid: #0f2040;
	--ows-banner-end: #0a1a35;
	--ows-footer-start: #0f2040;
	--ows-footer-end: #0a1628;
	/* Midnight palette */
	--ows-nav-surface: #f0ead6;
	--ows-nav-surface-end: #f0ead6;
	--ows-nav-border: rgba(10, 22, 40, 0.15);
	--ows-nav-shadow: 0 12px 28px rgba(10, 22, 40, 0.12);
	--ows-footer-card: rgba(232, 220, 200, 0.07);
	--ows-footer-card-border: rgba(232, 220, 200, 0.2);
	--ows-control-border: rgba(10, 22, 40, 0.26);
	--ows-control-border-strong: rgba(10, 22, 40, 0.45);
	--ows-control-hover: rgba(10, 22, 40, 0.06);
	--ows-input-bg: #fff;
	--ows-code-bg: rgba(10, 22, 40, 0.06);
	--ows-link-underline: rgba(201, 168, 76, 0.4);
	--ows-button-bg: var(--ows-ink);
	--ows-button-text: var(--ows-on-dark);
	--ows-button-hover: #0a1628;
	color-scheme: light;
}

[data-theme="dark"] {
	--ows-ink: #a8b8d0;
	--ows-ink-deep: #050a14;
	--ows-teal: #7a8aaa;
	--ows-teal-dark: #8a9ab8;
	--ows-cream: #0c0e1a;
	--ows-cream-soft: #0a1020;
	--ows-mist: #1a1e30;
	--ows-green: #a6d96a;
	--ows-text: #c8c8e0;
	--ows-muted: #5a5a7a;
	--ows-line: rgba(168, 184, 208, 0.1);
	--ows-line-light: rgba(168, 184, 208, 0.16);
	--ows-shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
	--ows-banner-start: #050a14;
	--ows-banner-mid: #081220;
	--ows-banner-end: #040a14;
	--ows-footer-start: #080e18;
	--ows-footer-end: #050810;
	/* Dark mode: nav lighter than body for contrast */
	--ows-nav-surface: #0a1020;
	--ows-nav-surface-end: #0a1020;
	--ows-nav-border: rgba(168, 184, 208, 0.1);
	--ows-nav-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
	--ows-footer-card: rgba(168, 184, 208, 0.07);
	--ows-footer-card-border: rgba(168, 184, 208, 0.2);
	--ows-control-border: rgba(168, 184, 208, 0.28);
	--ows-control-border-strong: rgba(168, 184, 208, 0.5);
	--ows-control-hover: rgba(168, 184, 208, 0.08);
	--ows-input-bg: #0a1020;
	--ows-code-bg: rgba(168, 184, 208, 0.08);
	--ows-link-underline: rgba(138, 154, 184, 0.4);
	--ows-button-bg: #8a9ab8;
	--ows-button-text: #050a14;
	--ows-button-hover: #a0b0cc;
	color-scheme: dark;
}

/* ==========================================================================
   2. Base
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	overflow-x: hidden;
	overflow-y: scroll;
}

body {
	margin: 0;
	background: var(--ows-cream);
	color: var(--ows-text);
	font-family: var(--ows-sans);
	font-size: 1.6rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	max-width: 100%;
}

img {
	max-width: 100%;
	height: auto;
}

figure {
	margin: 0;
}

iframe,
video,
embed,
object {
	max-width: 100%;
}

::selection {
	background: var(--ows-mist);
	color: var(--ows-ink);
}

[data-theme="dark"] ::selection {
	background: var(--ows-teal);
	color: var(--ows-ink-deep);
}

/* Accessibility helpers */

.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 !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background: var(--ows-cream);
	border-radius: 2px;
	box-shadow: 0 0 2px 2px var(--ows-control-border);
	clip: auto !important;
	clip-path: none;
	color: var(--ows-ink);
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	height: auto;
	left: 1rem;
	line-height: 1.5;
	padding: 0.85rem 1.25rem;
	text-decoration: none;
	top: 1rem;
	width: auto;
	z-index: 100000;
}

.ows-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
}

.ows-skip-link:focus {
	left: 1rem;
	top: 1rem;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--ows-green);
	outline-offset: 3px;
}

/* ==========================================================================
   3. Banner
   ========================================================================== */

.ows-header {
	position: relative;
	z-index: 30;
	max-width: 100%;
	overflow: visible;
}

.ows-banner {
	position: relative;
	background: linear-gradient(180deg, var(--ows-banner-start) 0%, var(--ows-banner-mid) 58%, var(--ows-banner-end) 100%);
	box-shadow: inset 0 -1px 0 rgba(246, 240, 228, 0.18);
	color: #e8dcc8;
	padding: 0 1.875rem;
	text-align: center;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.ows-banner__top {
	align-items: center;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin: 0;
	max-width: 100%;
	padding: 1.35rem 0 0.15rem;
}

.ows-banner__main {
	margin: 0 auto;
	max-width: var(--ows-max);
	padding: 2.25rem 0 3.75rem;
}

.ows-branding {
	margin: 0 auto;
	max-width: 52rem;
}

.ows-site-title {
	color: #e8dcc8;
	font-family: var(--ows-serif);
	font-size: clamp(3.15rem, 2rem + 3.1vw, 5.25rem);
	font-weight: 700;
	letter-spacing: 0.012em;
	line-height: 1.06;
	margin: 0;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
	text-wrap: balance;
}

.ows-site-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.ows-site-title a:hover {
	color: #ffffff;
}

.ows-site-description {
	color: #e8dcc8;
	font-family: var(--ows-nav);
	font-size: 1.17rem;
	letter-spacing: 0.2em;
	margin: 1.1rem auto 0;
	max-width: 42ch;
	text-transform: uppercase;
}

.ows-branding .custom-logo-link {
	display: inline-block;
}

.ows-branding .custom-logo {
	display: inline-block;
	height: auto;
	max-height: 88px;
	width: auto;
}

/* Language switcher (Polylang) */

.ows-lang {
	align-items: center;
	display: flex;
	gap: 0.1rem;
	justify-content: flex-end;
	list-style: none;
	margin: 0 0 0 auto;
	padding: 0;
}

.ows-lang li {
	margin: 0;
	padding: 0;
}

.ows-lang a {
	align-items: center;
	border-radius: 2px;
	color: #e8dcc8;
	display: inline-flex;
	font-family: var(--ows-nav);
	font-size: 1.08rem;
	gap: 0.4rem;
	letter-spacing: 0.14em;
	line-height: 1;
	padding: 0.5rem 0.55rem;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 0.2s ease;
}

.ows-lang__flag {
	border-radius: 1px;
	box-shadow: 0 0 0 1px rgba(250, 241, 226, 0.24);
	display: block;
	flex: 0 0 18px;
	height: 12px;
	object-fit: cover;
	width: 18px;
}

.ows-lang__name {
	display: block;
}

.ows-lang a:hover {
	color: #fff;
}

.ows-lang .is-current a {
	box-shadow: inset 0 -1px 0 var(--ows-teal-dark);
	color: var(--ows-teal-dark);
}

/* Light/dark mode toggle */

.ows-theme-toggle {
	align-items: center;
	background: transparent;
	border: 1px solid var(--ows-control-border);
	border-radius: var(--ows-radius);
	color: var(--ows-ink);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--ows-nav);
	font-size: 1.05rem;
	gap: 0.5rem;
	justify-content: center;
	letter-spacing: 0.12em;
	line-height: 1;
	min-height: 60px;
	padding: 0.75rem 1.1rem;
	text-transform: uppercase;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	white-space: nowrap;
}

.ows-theme-toggle--banner {
	border-color: rgba(250, 241, 226, 0.5);
	color: #f6f0e4;
}

.ows-theme-toggle--banner:hover {
	background: rgba(250, 241, 226, 0.12);
	border-color: rgba(250, 241, 226, 0.8);
	color: #ffffff;
}

.ows-theme-toggle--nav {
	display: none;
	height: 65px;
	left: 1rem;
	min-height: 65px;
	padding: 0.5rem;
	position: absolute;
	right: auto;
	top: 50%;
	transform: translateY(-50%);
	width: 65px;
	z-index: 2;
}

.ows-theme-toggle--nav:hover {
	background: var(--ows-control-hover);
	border-color: var(--ows-control-border-strong);
}

.ows-theme-toggle__icon {
	display: block;
	flex: none;
	height: 27px;
	width: 18px;
}

.ows-theme-toggle__icon svg {
	display: block;
	height: 100%;
	width: 100%;
}

.ows-theme-toggle__icon--sun {
	display: none;
}

[data-theme="dark"] .ows-theme-toggle__icon--sun {
	display: block;
}

[data-theme="dark"] .ows-theme-toggle__icon--moon {
	display: none;
}

.ows-theme-toggle__text--light {
	display: none;
}

[data-theme="dark"] .ows-theme-toggle__text--light {
	display: inline;
}

[data-theme="dark"] .ows-theme-toggle__text--dark {
	display: none;
}

html.no-js .ows-theme-toggle {
	display: none;
}

/* ==========================================================================
   4. Navigation
   ========================================================================== */

.ows-nav {
	background: var(--ows-nav-surface);
	background: linear-gradient(to right, var(--ows-nav-surface), var(--ows-nav-surface-end));
	border-bottom: 1px solid var(--ows-nav-border);
	position: relative;
	z-index: 40;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	overflow: visible;
}

.ows-nav__inner {
	align-items: center;
	display: flex;
	justify-content: center;
	margin: 0 auto;
	max-width: var(--ows-max);
	min-height: 80px;
	padding: 0 1.875rem;
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.ows-menu {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0 clamp(1rem, 2.6vw, 2.6rem);
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ows-menu li {
	margin: 0;
	padding: 0;
}

.ows-menu a {
	align-items: center;
	border-bottom: 2px solid transparent;
	color: var(--ows-ink);
	display: inline-flex;
	font-family: var(--ows-nav);
	font-size: 1.14rem;
	font-weight: 400;
	gap: 0.45rem;
	letter-spacing: 0.15em;
	line-height: 1;
	padding: 0.35rem 0;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.ows-menu a:hover {
	color: var(--ows-teal);
}

.ows-menu .current-menu-item > a,
.ows-menu .current_page_item > a,
.ows-menu .current-menu-ancestor > a {
	border-bottom-color: var(--ows-teal);
	color: var(--ows-teal-dark);
}

/* The home item is icon-only; its label remains available to screen readers. */
.ows-menu .menu-item-home > a,
.ows-footer__menu .menu-item-home > a {
	font-size: 0;
	gap: 0;
	letter-spacing: 0;
}

.ows-home-icon {
	display: block;
	flex: none;
	height: 25px;
	width: 25px;
}

/* Burger button */

.ows-menu-toggle {
	align-items: center;
	background: transparent;
	border: 1px solid var(--ows-control-border);
	border-radius: var(--ows-radius);
	color: var(--ows-ink);
	cursor: pointer;
	display: none;
	height: 65px;
	justify-content: center;
	padding: 0;
	position: absolute;
	right: 1.875rem;
	top: 50%;
	transform: translateY(-50%);
	transition: background-color 0.2s ease, border-color 0.2s ease;
	width: 65px;
	z-index: 2;
}

.ows-menu-toggle:hover {
	background: var(--ows-control-hover);
	border-color: var(--ows-control-border-strong);
}

.ows-menu-toggle__box {
	display: block;
	height: 14px;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 20px;
}

.ows-menu-toggle__bar {
	background: currentColor;
	height: 2px;
	left: 0;
	position: absolute;
	transition: transform 0.22s ease, opacity 0.16s ease, top 0.22s ease;
	width: 20px;
}

.ows-menu-toggle__bar:nth-child(1) {
	top: 0;
}

.ows-menu-toggle__bar:nth-child(2) {
	top: 6px;
}

.ows-menu-toggle__bar:nth-child(3) {
	top: 12px;
}

.ows-menu-toggle[aria-expanded="true"] .ows-menu-toggle__bar:nth-child(1) {
	top: 6px;
	transform: rotate(45deg);
}

.ows-menu-toggle[aria-expanded="true"] .ows-menu-toggle__bar:nth-child(2) {
	opacity: 0;
}

.ows-menu-toggle[aria-expanded="true"] .ows-menu-toggle__bar:nth-child(3) {
	top: 6px;
	transform: rotate(-45deg);
}

/* ==========================================================================
   5. Content
   ========================================================================== */

.ows-main {
	background: var(--ows-cream);
	min-height: 45vh;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
}

/* Long-form editorial content */

.ows-main--construction {
	background: var(--ows-cream);
}

.ows-construction {
	align-items: center;
	display: flex;
	justify-content: center;
	min-height: clamp(28rem, 62vh, 48rem);
	padding: clamp(3rem, 8vw, 7rem) clamp(1.25rem, 4vw, 2rem);
	text-align: center;
}

.ows-construction__title {
	color: var(--ows-ink);
	font-family: var(--ows-serif);
	font-size: clamp(2.75rem, 12vw, 9rem);
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 0.95;
	margin: 0;
	max-width: 12ch;
	text-transform: uppercase;
	text-wrap: balance;
}

.ows-container {
	margin: 0 auto;
	max-width: var(--ows-max);
	padding: clamp(3.75rem, 5vw, 6.75rem) clamp(1.25rem, 4vw, 2rem);
	width: 100%;
}

.ows-page-header {
	display: none;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.ows-page-title,
.ows-entry__title {
	color: var(--ows-ink);
	font-family: var(--ows-serif);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.15;
	margin: 0;
	text-wrap: balance;
}

.ows-page-title {
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem);
}

.ows-entry__header {
	display: none;
	margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.ows-entry__title {
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3.1rem);
	margin-bottom: 1rem;
}

.ows-page-description {
	color: var(--ows-muted);
	margin: 0.9rem 0 0;
	max-width: 62ch;
}

.ows-entry {
	margin: 0 auto;
	max-width: 46rem;
}

.ows-entry__header {
	margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.ows-entry__meta {
	color: var(--ows-muted);
	font-family: var(--ows-nav);
	font-size: 1.11rem;
	letter-spacing: 0.12em;
	margin: 0 0 0.9rem;
	text-transform: uppercase;
}

.ows-entry__media {
	margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
}

.ows-entry__media img {
	border-radius: var(--ows-radius);
	width: 100%;
}

.ows-entry__footer {
	border-top: 1px solid var(--ows-line);
	margin-top: 2.5rem;
	padding-top: 1.25rem;
}

.ows-entry__tags a {
	color: var(--ows-teal-dark);
}

/* Long-form editorial content */

.entry-content {
	font-size: 1.6rem;
	line-height: 1.78;
}

.entry-content > * + * {
	margin-top: 1.35em;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
	color: var(--ows-ink);
	font-family: var(--ows-serif);
	font-weight: 600;
	line-height: 1.25;
	margin: 2.2em 0 0.7em;
	text-wrap: balance;
}

.entry-content h2 {
	font-size: clamp(2.3rem, 1.85rem + 1.1vw, 3.15rem);
}

.entry-content h3 {
	font-size: clamp(1.95rem, 1.65rem + 0.7vw, 2.475rem);
}

.entry-content h4 {
	font-size: 1.8rem;
}

.entry-content p,
.entry-content ul,
.entry-content ol {
	margin-bottom: 1.35em;
	margin-top: 1.35em;
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.35em;
}

.entry-content li + li {
	margin-top: 0.4em;
}

.entry-content a {
	color: var(--ows-teal-dark);
	text-decoration: underline;
	text-decoration-color: var(--ows-link-underline);
	text-underline-offset: 3px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.entry-content a:hover {
	color: var(--ows-ink);
	text-decoration-color: currentColor;
}

.entry-content blockquote {
	border-left: 3px solid var(--ows-mist);
	color: var(--ows-ink);
	font-family: var(--ows-serif);
	font-size: 1.875rem;
	font-style: italic;
	margin: 2em 0;
	padding: 0.25em 0 0.25em 1.5em;
}

.entry-content blockquote cite {
	color: var(--ows-muted);
	display: block;
	font-family: var(--ows-sans);
	font-size: 1.8rem;
	font-style: normal;
	letter-spacing: 0.1em;
	margin-top: 1em;
	text-transform: uppercase;
}

.entry-content img,
.entry-content .wp-block-image img {
	border-radius: var(--ows-radius);
}

.entry-content figcaption {
	color: var(--ows-muted);
	font-size: 1.23rem;
	margin-top: 0.6rem;
	text-align: center;
}

.entry-content hr {
	border: 0;
	border-top: 1px solid var(--ows-line);
	margin: 3em auto;
	max-width: 8rem;
}

.entry-content table {
	border-collapse: collapse;
	font-size: 1.4rem;
	width: 100%;
}

.entry-content th,
.entry-content td {
	border-bottom: 1px solid var(--ows-line);
	padding: 0.65em 0.75em;
	text-align: left;
}

.entry-content th {
	color: var(--ows-ink);
	font-family: var(--ows-serif);
}

.entry-content code,
.entry-content pre {
	background: var(--ows-code-bg);
	border-radius: 3px;
	font-size: 0.9em;
}

.entry-content code {
	padding: 0.15em 0.35em;
}

.entry-content pre {
	overflow: auto;
	padding: 1.25em;
}

.alignwide {
	margin-left: auto;
	margin-right: auto;
	max-width: 72rem;
}

.alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
	width: 100vw;
}

/* Post list / cards */

.ows-post-list {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
}

.ows-card {
	border-top: 1px solid var(--ows-line);
	padding-top: 2.25rem;
}

.ows-card__thumb {
	display: block;
	margin-bottom: 1.875rem;
	overflow: hidden;
}

.ows-card__thumb img {
	aspect-ratio: 16 / 10;
	border-radius: var(--ows-radius);
	object-fit: cover;
	transition: transform 0.4s ease;
	width: 100%;
}

.ows-card__thumb:hover img {
	transform: scale(1.02);
}

.ows-card__meta {
	color: var(--ows-muted);
	font-family: var(--ows-nav);
	font-size: 1.08rem;
	letter-spacing: 0.12em;
	margin: 0 0 0.65rem;
	text-transform: uppercase;
}

.ows-card__title {
	color: var(--ows-ink);
	font-family: var(--ows-serif);
	font-size: clamp(2rem, 1.7rem + 0.8vw, 2.55rem);
	font-weight: 600;
	line-height: 1.25;
	margin: 0 0 1.1rem;
	text-wrap: balance;
}

.ows-card__title a {
	color: inherit;
	text-decoration: none;
}

.ows-card__title a:hover {
	color: var(--ows-teal);
}

.ows-card__excerpt {
	color: var(--ows-text);
	font-size: 1.47rem;
}

.ows-card__excerpt p {
	margin: 0 0 1rem;
}

.ows-card__more {
	color: var(--ows-teal-dark);
	font-family: var(--ows-nav);
	font-size: 1.11rem;
	letter-spacing: 0.14em;
	text-decoration: none;
	text-transform: uppercase;
}

.ows-card__more:hover {
	color: var(--ows-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Pagination */

.ows-pagination {
	margin-top: clamp(2.5rem, 5vw, 4rem);
}

.ows-pagination .nav-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	justify-content: center;
}

.ows-pagination .page-numbers {
	align-items: center;
	border: 1px solid var(--ows-line);
	border-radius: var(--ows-radius);
	color: var(--ows-ink);
	display: inline-flex;
	font-family: var(--ows-nav);
	font-size: 1.2rem;
	justify-content: center;
	min-height: 60px;
	min-width: 60px;
	padding: 0.45rem 1.05rem;
	text-decoration: none;
}

.ows-pagination .page-numbers:hover {
	border-color: var(--ows-teal);
	color: var(--ows-teal-dark);
}

.ows-pagination .page-numbers.current {
	background: var(--ows-button-bg);
	border-color: var(--ows-button-bg);
	color: var(--ows-button-text);
}

.ows-pagination .dots {
	border-color: transparent;
}

/* Single post navigation */

.ows-post-nav {
	border-top: 1px solid var(--ows-line);
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
	margin-top: 2.5rem;
	padding-top: 1.5rem;
}

.ows-post-nav a {
	color: var(--ows-teal-dark);
	font-size: 1.35rem;
	text-decoration: none;
}

.ows-post-nav a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ows-post-nav .nav-next {
	margin-left: auto;
	text-align: right;
}

/* Search and forms */

.ows-search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	max-width: 34rem;
}

.ows-search-form__field {
	background: var(--ows-input-bg);
	border: 1px solid var(--ows-control-border);
	border-radius: var(--ows-radius);
	color: var(--ows-text);
	flex: 1 1 12rem;
	font: inherit;
	font-size: 1.4rem;
	min-height: 65px;
	padding: 0.8rem 1.25rem;
}

.ows-search-form__field::placeholder {
	color: var(--ows-muted);
	opacity: 1;
}

.ows-search-form__submit {
	background: var(--ows-button-bg);
	border: 1px solid var(--ows-button-bg);
	border-radius: var(--ows-radius);
	color: var(--ows-button-text);
	cursor: pointer;
	font-family: var(--ows-nav);
	font-size: 1.14rem;
	letter-spacing: 0.12em;
	min-height: 65px;
	padding: 0.8rem 2.1rem;
	text-transform: uppercase;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.ows-search-form__submit:hover {
	background: var(--ows-button-hover);
	border-color: var(--ows-button-hover);
}

/* No results / 404 */

.ows-no-results {
	margin: 0 auto;
	max-width: 44rem;
	text-align: center;
}

.ows-no-results p {
	color: var(--ows-muted);
}

.ows-no-results .ows-search-form {
	margin: 2rem auto 0;
}

/* Comments */

.ows-comments {
	border-top: 1px solid var(--ows-line);
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	padding-top: clamp(2rem, 4vw, 2.5rem);
}

.ows-comments__title,
.comment-reply-title {
	color: var(--ows-ink);
	font-family: var(--ows-serif);
	font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.8rem);
	font-weight: 600;
	margin: 0 0 1.5rem;
}

.comment-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.comment-list .children {
	list-style: none;
	margin: 1.5rem 0 0;
	padding-left: clamp(1rem, 4vw, 2.5rem);
}

.comment-body {
	border-top: 1px solid var(--ows-line);
	padding: 1.5rem 0;
}

.comment-meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}

.comment-author img {
	border-radius: 50%;
}

.comment-author .fn {
	color: var(--ows-ink);
	font-style: normal;
	font-weight: 600;
}

.comment-metadata {
	font-size: 1.17rem;
}

.comment-metadata a {
	color: var(--ows-muted);
	text-decoration: none;
}

.reply a {
	color: var(--ows-teal-dark);
	font-size: 1.2rem;
	text-decoration: none;
}

.comment-form label {
	display: block;
	font-size: 1.275rem;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	background: var(--ows-input-bg);
	border: 1px solid var(--ows-control-border);
	border-radius: var(--ows-radius);
	color: var(--ows-text);
	font: inherit;
	font-size: 1.4rem;
	padding: 0.9rem 1.25rem;
	width: 100%;
}

.comment-form input::placeholder,
.comment-form textarea::placeholder {
	color: var(--ows-muted);
	opacity: 1;
}

.comment-form p {
	margin: 0 0 1.1rem;
}

.comment-form .submit {
	background: var(--ows-button-bg);
	border: 0;
	border-radius: var(--ows-radius);
	color: var(--ows-button-text);
	cursor: pointer;
	font-family: var(--ows-nav);
	font-size: 1.17rem;
	letter-spacing: 0.12em;
	padding: 1.35rem 2.4rem;
	text-transform: uppercase;
}

.comment-form .submit:hover {
	background: var(--ows-button-hover);
}

/* ==========================================================================
   6. Footer
   ========================================================================== */

.ows-footer {
	background: linear-gradient(180deg, var(--ows-footer-start) 0%, var(--ows-footer-end) 100%);
	color: rgba(232, 220, 200, 0.8);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Footer top boundary line — visible in both themes */
.ows-footer::before {
	background: var(--ows-teal);
	content: "";
	display: block;
	height: 1px;
	width: 100%;
}

/* Dark mode: darker footer with subtle boundary */
[data-theme="dark"] .ows-footer {
	background: linear-gradient(180deg, #060c16 0%, #050810 100%);
}

[data-theme="dark"] .ows-footer::before {
	height: 1px;
	background: var(--ows-line-light);
}

.ows-footer__inner {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-start;
	gap: 2.5rem;
	padding: clamp(3.75rem, 5vw, 5.6rem) clamp(1.25rem, 4vw, 2rem);
}

.ows-footer__contact {
	flex: 0 0 auto;
}

.ows-footer__title {
	color: #c9a84c;
	font-family: var(--ows-nav);
	font-size: 1.11rem;
	font-weight: 400;
	letter-spacing: 0.2em;
	margin: 0 0 1.1rem;
	text-transform: uppercase;
}

.ows-footer__contact p {
	color: rgba(232, 220, 200, 0.8);
	margin: 0;
}

.ows-footer__label {
	color: rgba(232, 220, 200, 0.8);
	display: block;
	margin-bottom: 0.3rem;
}

.ows-footer__contact a {
	color: rgba(232, 220, 200, 0.8);
	text-decoration: underline;
	text-decoration-color: rgba(201, 168, 76, 0.4);
	text-underline-offset: 4px;
}

.ows-footer__contact a:hover {
	text-decoration-color: currentColor;
}

.ows-footer__nav {
	text-align: right;
}

.ows-footer__menu {
	display: grid;
	gap: 0.55rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ows-footer__menu a {
	color: rgba(232, 220, 200, 0.8);
	font-size: 1.4rem;
	text-decoration: none;
	transition: color 0.2s ease;
}

.ows-footer__menu a:hover {
	color: rgba(232, 220, 200, 0.8);
}

.ows-footer__menu .current-menu-item > a {
	color: rgba(232, 220, 200, 0.8);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.ows-footer__menu .ows-home-icon {
	display: inline-block;
	height: 14px;
	margin-right: 0.3rem;
	vertical-align: -2px;
	width: 21px;
}

.ows-footer__bottom {
	border-top: 1px solid rgba(250, 241, 226, 0.25);
}

.ows-footer__bottom-inner {
	color: rgba(232, 220, 200, 0.7);
	display: flex;
	font-size: 1.17rem;
	gap: 1rem;
	justify-content: space-between;
	margin: 0 auto;
	max-width: var(--ows-max);
	padding: 1.875rem clamp(1.875rem, 4vw, 3rem);
}

.ows-footer__bottom-inner p {
	margin: 0;
}

/* ==========================================================================
   7. Responsive
   ========================================================================== */

@media (min-width: 720px) {

	.ows-post-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1024px) {

	.ows-theme-toggle--banner {
		display: none;
	}

	.ows-theme-toggle--nav {
		display: inline-flex;
	}

	.ows-theme-toggle--nav .ows-theme-toggle__text {
		border: 0;
		clip: rect(1px, 1px, 1px, 1px);
		clip-path: inset(50%);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	.ows-banner {
		padding: 0 1rem;
	}

	.ows-banner__top {
		padding-top: 1.05rem;
	}

	.ows-banner__main {
		padding: 1.25rem 0 2rem;
	}

	.ows-nav__inner {
		justify-content: flex-end;
		min-height: 75px;
		padding: 0 1.5rem;
		overflow: visible;
	}

	.ows-menu-toggle {
		display: inline-flex;
	}

	/* Mobile menu: dropdown under nav, flows with page */
	.ows-menu {
		display: none;
	}
	.js .ows-menu {
		background: var(--ows-nav-surface);
		border-bottom: 1px solid var(--ows-nav-border);
		box-shadow: var(--ows-shadow);
		display: none;
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 0;
		left: 0;
		max-height: none;
		overflow-y: visible;
		overscroll-behavior: auto;
		padding: 0.25rem 0;
		position: absolute;
		right: 0;
		top: 100%;
		width: 100%;
		z-index: 999;
		justify-content: flex-start;
		align-items: stretch;
	}

	.js .ows-menu.is-open {
		display: flex;
	}

	.ows-menu li {
		border-top: 1px solid var(--ows-line);
		width: 100%;
	}

	.ows-menu li:first-child {
		border-top: 0;
	}

	.ows-menu a {
		border-bottom: 0;
		display: flex;
		font-size: 1.26rem;
		padding: 0.85rem 1.5rem;
		width: 100%;
	}

	.ows-menu .current-menu-item > a,
	.ows-menu .current_page_item > a {
		border-bottom-color: transparent;
	}

	html.no-js .ows-menu-toggle {
		display: none;
	}

	html.no-js .ows-nav__inner {
		justify-content: center;
	}

	html.no-js .ows-menu {
		display: flex;
		flex-wrap: wrap;
		position: static;
	}
}

@media (max-width: 700px) {

	.ows-footer__inner {
		flex-direction: column;
		flex-wrap: wrap;
	}

	.ows-footer__nav {
		text-align: left;
		width: 100%;
	}

	.ows-footer__menu {
		width: 100%;
	}

	.ows-footer__bottom-inner {
		flex-direction: column;
		gap: 0.35rem;
	}

	.ows-lang a {
		padding-left: 0.45rem;
		padding-right: 0.45rem;
	}
}

@media (max-width: 480px) {

	.ows-banner__main {
		padding-bottom: 2.625rem;
	}

	.ows-site-description {
		font-size: 1.05rem;
		letter-spacing: 0.24em;
	}
}

/* ==========================================================================
   8. Motion preferences
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* ==========================================================================
   9. Readability guards
   ========================================================================== */

/*
 * Ensure header link colors are readable against any background layer.
 */

.ows-header .ows-site-title a,
.ows-header .ows-lang a {
	color: #f6f0e4 !important;
}

.ows-header .ows-site-title a:hover,
.ows-header .ows-site-title a:focus-visible,
.ows-header .ows-lang a:hover,
.ows-header .ows-lang a:focus-visible {
	color: #ffffff !important;
}

.ows-header .ows-lang .is-current a {
	color: var(--ows-on-dark) !important;
}

.ows-header .ows-menu a {
	color: var(--ows-ink);
}

.ows-header .ows-menu a:hover,
.ows-header .ows-menu a:focus-visible {
	color: var(--ows-teal);
}

.ows-footer .ows-footer__contact a,
.ows-footer .ows-footer__menu a {
	color: rgba(232, 220, 200, 0.8) !important;
}

.ows-footer .ows-footer__contact a:hover,
.ows-footer .ows-footer__contact a:focus-visible,
.ows-footer .ows-footer__menu a:hover,
.ows-footer .ows-footer__menu a:focus-visible {
	color: rgba(232, 220, 200, 0.8) !important;
}

.ows-footer .ows-footer__menu .current-menu-item > a {
	color: rgba(232, 220, 200, 0.8) !important;
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* Mobile menu scroll lock */
body.menu-open {
	/* allow scroll */
}