/*
Theme Name: New Idea Corner
Theme URI: https://newideacorner.local
Author: New Idea Corner
Description: Custom coded theme for New Idea Corner — a lifestyle, fashion, travel, beauty & tech blog. Ported from the AI Studio React prototype.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: new-idea-corner
*/

/* =========================================================================
   FONTS (self-hosted)
   ========================================================================= */
@font-face { font-family: 'Fira Code'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/fira-code-400.woff2') format('woff2'); }
@font-face { font-family: 'Fira Code'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/fira-code-500.woff2') format('woff2'); }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 300; font-display: swap; src: url('assets/fonts/lato-300.woff2') format('woff2'); }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/lato-400.woff2') format('woff2'); }
@font-face { font-family: 'Lato'; font-style: italic; font-weight: 400; font-display: swap; src: url('assets/fonts/lato-400i.woff2') format('woff2'); }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap; src: url('assets/fonts/lato-700.woff2') format('woff2'); }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 900; font-display: swap; src: url('assets/fonts/lato-900.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/playfair-display-400.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap; src: url('assets/fonts/playfair-display-400i.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/playfair-display-500.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url('assets/fonts/playfair-display-600.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 600; font-display: swap; src: url('assets/fonts/playfair-display-600i.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url('assets/fonts/playfair-display-700.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 800; font-display: swap; src: url('assets/fonts/playfair-display-800.woff2') format('woff2'); }

/* =========================================================================
   TOKENS
   ========================================================================= */
:root {
	--c-forest: #2F4F43;
	--c-forest-hover: #243e34;
	--c-sage: #8FA489;
	--c-yellow: #F5D27A;
	--c-yellow-hover: #ebd074;
	--c-vanilla: #F7E9C6;
	--c-cream: #FAF8F2;
	--c-stone: #D7CEC0;
	--c-charcoal: #333333;
	--c-charcoal-soft: #4A4A4A;
	--c-white: #FFFFFF;

	--font-body: 'Lato', system-ui, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
	--font-serif: 'Playfair Display', Georgia, Cambria, 'Times New Roman', Times, serif;
	--font-mono: 'Fira Code', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

	--container-max: 1280px;
	--container-pad: 1rem;
	--radius-sm: 2px;
}

@media (min-width: 640px) { :root { --container-pad: 1.5rem; } }
@media (min-width: 1024px) { :root { --container-pad: 2rem; } }

/* =========================================================================
   RESET & BASE
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-body);
	color: var(--c-charcoal);
	background-color: var(--c-cream);
	-webkit-font-smoothing: antialiased;
	line-height: 1.55;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
input, textarea, select { font: inherit; }
ul { margin: 0; padding: 0; list-style: none; }
p { margin: 0; }

h1, h2, h3, h4, h5, h6, .font-serif {
	font-family: var(--font-serif);
	color: var(--c-forest);
	margin: 0;
	font-weight: 700;
	line-height: 1.2;
}

code, pre, .font-mono { font-family: var(--font-mono); }

::selection { background: rgba(245, 210, 122, 0.5); color: var(--c-forest); }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--c-cream); }
::-webkit-scrollbar-thumb { background: var(--c-stone); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--c-sage); }

.container {
	max-width: var(--container-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--container-pad);
	padding-right: var(--container-pad);
}
.container-narrow { max-width: 900px; margin-left: auto; margin-right: auto; padding-left: var(--container-pad); padding-right: var(--container-pad); }

.site-main { flex: 1; }
body.nic-body { display: flex; flex-direction: column; min-height: 100vh; }

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

/* =========================================================================
   BUTTONS / BADGES
   ========================================================================= */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.65rem 1.5rem;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.btn-yellow { background: var(--c-yellow); color: var(--c-forest); border-color: var(--c-yellow-hover); }
.btn-yellow:hover { background: var(--c-yellow-hover); }
.btn-forest { background: var(--c-forest); color: var(--c-white); }
.btn-forest:hover { background: var(--c-forest-hover); }
.btn:disabled { opacity: 0.4; cursor: not-allowed; }

.badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.2rem 0.7rem;
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	background: var(--c-vanilla);
	border: 1px solid var(--c-stone);
	color: var(--c-forest);
	border-radius: 999px;
}

.eyebrow {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: var(--c-sage);
}
.eyebrow-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--c-yellow); flex-shrink: 0; }

/* =========================================================================
   HEADER
   ========================================================================= */
.site-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: rgba(250, 248, 242, 0.95);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--c-stone);
}
.header-topbar { height: 6px; width: 100%; background: var(--c-forest); }
.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 4.5rem;
}
@media (min-width: 640px) { .header-inner { height: 5rem; } }

.brand { display: inline-flex; align-items: center; }
.brand-link { display: flex; align-items: center; gap: 0.75rem; cursor: pointer; }
.brand-mark { width: 3.25rem; height: 3.25rem; flex-shrink: 0; }
.brand-text { display: flex; flex-direction: column; text-align: left; min-width: 0; }
.brand-name { font-family: var(--font-body); font-weight: 700; font-size: 0.75rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--c-forest); line-height: 1.2; }
.brand-tagline-row { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.3rem; width: 100%; }
.brand-tagline-rule { flex: 1; height: 1.5px; background: var(--c-yellow); border-radius: 999px; min-width: 10px; }
.brand-tagline-words { display: flex; align-items: center; gap: 0.4rem; flex-shrink: 0; }
.brand-tagline-words span.word { font-size: 0.55rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-forest); }
.brand-tagline-dot { width: 3px; height: 3px; border-radius: 999px; background: var(--c-yellow); }

/* Dark variant (used on the forest-green footer) */
.brand-link--dark .brand-name,
.brand-link--dark .brand-tagline-words span.word { color: var(--c-cream); }

.primary-nav { display: none; align-items: center; gap: 1.5rem; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.18em; font-weight: 700; }
@media (min-width: 768px) { .primary-nav { display: flex; } }
.primary-nav a { padding: 0.25rem 0; color: rgba(47, 79, 67, 0.8); border-bottom: 2px solid transparent; transition: color 0.2s ease; }
.primary-nav a:hover { color: var(--c-sage); }
.primary-nav a.is-active { color: var(--c-forest); border-bottom-color: var(--c-yellow); }

.header-actions { display: none; align-items: center; gap: 1rem; }
@media (min-width: 768px) { .header-actions { display: flex; } }
.icon-btn {
	padding: 0.5rem;
	color: var(--c-forest);
	border-radius: 999px;
	background: none;
	border: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.icon-btn:hover { color: var(--c-sage); background: var(--c-vanilla); }
.icon-btn svg { width: 1.1rem; height: 1.1rem; }

.mobile-header-actions { display: flex; align-items: center; gap: 0.25rem; }
@media (min-width: 768px) { .mobile-header-actions { display: none; } }

.mobile-drawer { display: none; background: var(--c-cream); border-bottom: 1px solid var(--c-stone); padding: 0.75rem 1rem 1.25rem; }
.mobile-drawer.is-open { display: block; }
.mobile-drawer a.drawer-link {
	display: block;
	width: 100%;
	text-align: left;
	padding: 0.65rem 0.75rem;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	font-weight: 600;
	color: var(--c-forest);
	margin-bottom: 0.25rem;
}
.mobile-drawer a.drawer-link.is-active { background: var(--c-vanilla); font-weight: 700; }
.mobile-drawer-divider { padding-top: 0.75rem; margin-top: 0.5rem; border-top: 1px solid var(--c-stone); }
.mobile-drawer .btn { width: 100%; }

/* =========================================================================
   MODALS (search / subscribe)
   ========================================================================= */
.modal-overlay {
	position: fixed;
	inset: 0;
	z-index: 50;
	background: rgba(47, 79, 67, 0.65);
	backdrop-filter: blur(2px);
	display: none;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}
.modal-overlay.is-open { display: flex; }
.modal-overlay.search-overlay { align-items: flex-start; padding-top: 6rem; }

.modal {
	background: var(--c-cream);
	border: 1px solid var(--c-stone);
	width: 100%;
	max-width: 32rem;
	padding: 1.5rem;
	box-shadow: 0 25px 50px -12px rgba(0,0,0,0.35);
}
.modal-subscribe { background: var(--c-white); max-width: 28rem; padding: 2rem 2.25rem; text-align: center; position: relative; }

.modal-close {
	position: absolute;
	top: 1rem; right: 1rem;
	background: none; border: none;
	color: rgba(51,51,51,0.4);
	padding: 0.4rem;
}
.modal-close:hover { color: var(--c-forest); }

.modal-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 0.75rem; border-bottom: 1px solid var(--c-stone); }
.modal-title { font-family: var(--font-serif); font-weight: 700; font-size: 1.25rem; color: var(--c-forest); }

.subscribe-icon { width: 3rem; height: 3rem; border-radius: 999px; background: var(--c-forest); color: var(--c-yellow); display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; }
.subscribe-icon svg { width: 1.5rem; height: 1.5rem; }

.search-results-list { max-height: 16rem; overflow-y: auto; }
.search-result-item { display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem 0.4rem; border-bottom: 1px solid rgba(215,206,192,0.4); }
.search-result-item:hover { background: rgba(247,233,198,0.6); }
.search-result-item img { width: 2.75rem; height: 2.75rem; object-fit: cover; border: 1px solid var(--c-stone); flex-shrink: 0; }
.search-result-cat { font-size: 0.6rem; text-transform: uppercase; font-weight: 700; color: var(--c-sage); letter-spacing: 0.1em; display: block; }
.search-result-title { font-size: 0.75rem; font-weight: 700; color: var(--c-forest); }
.search-empty { text-align: center; padding: 1.5rem 0; font-size: 0.75rem; color: rgba(51,51,51,0.6); }

/* =========================================================================
   FORMS
   ========================================================================= */
.field { margin-bottom: 1rem; }
.field-label { display: block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; color: rgba(51,51,51,0.8); margin-bottom: 0.3rem; }
.field-input, .field-textarea {
	width: 100%;
	padding: 0.65rem 1rem;
	background: var(--c-white);
	border: 1px solid var(--c-stone);
	color: var(--c-charcoal);
	font-size: 0.8rem;
}
.field-input:focus, .field-textarea:focus { outline: none; border-color: var(--c-forest); }
.field-input.has-error, .field-textarea.has-error { border-color: #ef4444; }
.field-error { font-size: 0.7rem; color: #dc2626; font-weight: 600; margin-top: 0.3rem; }
.field-error:empty { display: none; }
.field-textarea { resize: vertical; min-height: 8rem; }

.form-success {
	padding: 1.5rem;
	background: var(--c-cream);
	border: 1px solid rgba(143,164,137,0.5);
	text-align: center;
}
.form-success .icon-circle { width: 2.5rem; height: 2.5rem; background: rgba(143,164,137,0.2); color: var(--c-forest); border-radius: 999px; display: flex; align-items: center; justify-content: center; margin: 0 auto 0.75rem; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer { background: var(--c-forest); color: var(--c-white); padding: 4rem 0 2.5rem; margin-top: 4rem; border-top: 1px solid rgba(255,255,255,0.1); }
.footer-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem;
	padding-bottom: 3.5rem;
	border-bottom: 1px solid rgba(255,255,255,0.15);
}
@media (min-width: 640px) { .footer-grid { grid-template-columns: repeat(12, 1fr); gap: 2.5rem; } }
.footer-col-brand { grid-column: span 2 / span 2; display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; }
@media (min-width: 640px) { .footer-col-brand { grid-column: span 4 / span 4; } }
.footer-col-brand p { font-size: 0.75rem; color: rgba(255,255,255,0.75); line-height: 1.6; max-width: 20rem; }
.footer-col { grid-column: span 1 / span 1; }
@media (min-width: 640px) { .footer-col { grid-column: span 2 / span 2; } }
.footer-col-follow { grid-column: span 2 / span 2; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
@media (min-width: 640px) { .footer-col-follow { grid-column: span 4 / span 4; } }

.footer-heading { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.2em; font-weight: 700; color: var(--c-yellow); margin-bottom: 1rem; }
.footer-links li { margin-bottom: 0.6rem; }
.footer-links a { font-size: 0.75rem; color: rgba(255,255,255,0.8); transition: color 0.2s ease; }
.footer-links a:hover { color: var(--c-yellow); }

.social-icons { display: flex; align-items: center; justify-content: center; gap: 0.75rem; }
.social-icons a { width: 2rem; height: 2rem; border-radius: 999px; border: 1px solid rgba(255,255,255,0.25); display: flex; align-items: center; justify-content: center; color: var(--c-white); transition: all 0.2s ease; }
.social-icons a:hover { background: var(--c-yellow); color: var(--c-forest); border-color: var(--c-yellow); }
.social-icons svg { width: 1rem; height: 1rem; }

.trustpilot-badge { width: 100%; max-width: 285px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.15); padding: 1rem; border-radius: var(--radius-sm); }
.trustpilot-row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.65rem; }
.trustpilot-row strong { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.16em; font-weight: 700; }
.trustpilot-logo { display: flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; font-weight: 700; }
.trustpilot-stars { display: flex; align-items: center; gap: 0.35rem; margin-bottom: 0.65rem; }
.trustpilot-stars span { width: 1.4rem; height: 1.4rem; background: #00B67A; display: flex; align-items: center; justify-content: center; border-radius: 2px; }
.trustpilot-stars svg { width: 0.9rem; height: 0.9rem; fill: #fff; }
.trustpilot-score { font-size: 0.78rem; color: rgba(255,255,255,0.9); }

.footer-bottom { padding-top: 1.5rem; text-align: center; font-size: 0.75rem; color: rgba(255,255,255,0.6); }

/* =========================================================================
   BREADCRUMB
   ========================================================================= */
.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--c-sage); margin-bottom: 1rem; }
.breadcrumb-link { display: inline-flex; align-items: center; gap: 0.3rem; }
.breadcrumb-link:hover { color: var(--c-forest); }
.breadcrumb-arrow { flex-shrink: 0; }
.breadcrumb-current { color: var(--c-forest); font-weight: 700; }
.breadcrumb-sep { color: rgba(51,51,51,0.4); }

/* Single-post variant: mixed case, ">" separators, gray, no arrow icon */
.breadcrumb--post { text-transform: none; letter-spacing: normal; font-weight: 500; color: rgba(51,51,51,0.6); margin-bottom: 1.5rem; }
.breadcrumb--post .breadcrumb-link:hover { color: var(--c-sage); }
.breadcrumb--post .breadcrumb-link--mid { color: var(--c-forest); font-weight: 700; }
.breadcrumb--post .breadcrumb-current { color: rgba(51,51,51,0.7); font-weight: 500; text-transform: none; max-width: 24rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* =========================================================================
   PAGE HEADER (category / search / archive)
   ========================================================================= */
.page-head { padding-top: 2rem; padding-bottom: 1rem; }
.page-head-row { display: flex; flex-direction: column; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--c-stone); }
@media (min-width: 640px) { .page-head-row { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.page-title { font-size: 1.9rem; font-weight: 700; }
@media (min-width: 640px) { .page-title { font-size: 2.4rem; } }
.page-desc { font-size: 0.85rem; color: rgba(51,51,51,0.7); margin-top: 0.3rem; }

.subfilter-pills { display: inline-flex; align-items: center; gap: 0.35rem; background: rgba(247,233,198,0.6); padding: 0.25rem; border: 1px solid var(--c-stone); }
.subfilter-pills a { padding: 0.35rem 0.8rem; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--c-forest); display: inline-flex; align-items: center; gap: 0.3rem; }
.subfilter-pills a:hover { background: rgba(255,255,255,0.8); }
.subfilter-pills a.is-active { background: var(--c-forest); color: var(--c-white); }

/* =========================================================================
   POST GRID / CARDS
   ========================================================================= */
.post-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; padding: 2.5rem 0; }
@media (min-width: 768px) { .post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .post-grid { grid-template-columns: repeat(3, 1fr); } }

.post-card { background: var(--c-white); border: 1px solid var(--c-stone); display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; transition: box-shadow 0.3s ease; }
.post-card:hover { box-shadow: 0 10px 25px -8px rgba(0,0,0,0.15); }
.post-card:hover .post-card-title { color: var(--c-sage); }
.post-card:hover .post-card-img { transform: scale(1.05); }
.post-card-thumb { aspect-ratio: 16 / 10; overflow: hidden; background: var(--c-cream); position: relative; }
.post-card-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.post-card-thumb-badge { position: absolute; top: 0.75rem; left: 0.75rem; background: rgba(250,248,242,0.95); backdrop-filter: blur(2px); padding: 0.25rem 0.6rem; font-size: 0.6rem; text-transform: uppercase; font-weight: 700; letter-spacing: 0.08em; color: var(--c-forest); border: 1px solid var(--c-stone); }
.post-card-body { padding: 1.5rem; }
.post-card-title { font-family: var(--font-serif); font-size: 1.3rem; font-weight: 700; color: var(--c-forest); line-height: 1.3; margin-bottom: 0.6rem; transition: color 0.2s ease; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.post-card-excerpt { font-size: 0.8rem; color: rgba(51,51,51,0.75); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.post-card-footer { padding: 1rem 1.5rem; background: var(--c-cream); border-top: 1px solid var(--c-stone); display: flex; align-items: center; justify-content: space-between; }
.post-card-author { display: flex; align-items: center; gap: 0.6rem; font-size: 0.72rem; font-weight: 600; color: var(--c-forest); }
.post-card-author img { width: 1.75rem; height: 1.75rem; border-radius: 999px; object-fit: cover; border: 1px solid var(--c-stone); }
.post-card-read { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--c-forest); display: inline-flex; align-items: center; gap: 0.25rem; }

.empty-state { padding: 4rem 1rem; text-align: center; background: var(--c-white); border: 1px solid var(--c-stone); }
.empty-state p:first-child { font-family: var(--font-serif); font-size: 1.15rem; color: var(--c-forest); font-weight: 700; margin-bottom: 0.4rem; }
.empty-state p { font-size: 0.75rem; color: rgba(51,51,51,0.7); }
.empty-state .icon-circle { width: 3rem; height: 3rem; border-radius: 999px; background: rgba(47,79,67,0.1); display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; }
.empty-state .icon-circle svg { width: 1.5rem; height: 1.5rem; color: rgba(47,79,67,0.6); }

/* =========================================================================
   SINGLE POST
   ========================================================================= */
.post-layout { display: grid; grid-template-columns: 1fr; gap: 2.5rem; padding: 2rem 0 3rem; align-items: start; }
@media (min-width: 1024px) { .post-layout { grid-template-columns: 2fr 1fr; gap: 3rem; } }

.post-article > * + * { margin-top: 2rem; }
.post-head { padding-bottom: 1rem; border-bottom: 1px solid var(--c-stone); }
.post-cat-badge { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.3rem 0.8rem; background: var(--c-vanilla); border: 1px solid var(--c-stone); font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--c-forest); margin-bottom: 1rem; }
.post-cat-badge:hover { background: var(--c-yellow); }
.post-cat-badge svg { color: var(--c-sage); flex-shrink: 0; }
.post-title { font-size: 1.9rem; font-weight: 700; line-height: 1.2; margin-bottom: 1rem; }
@media (min-width: 640px) { .post-title { font-size: 2.5rem; } }
@media (min-width: 1024px) { .post-title { font-size: 3rem; } }
.post-excerpt { font-family: var(--font-serif); font-style: italic; font-size: 1.05rem; color: rgba(51,51,51,0.8); line-height: 1.6; }

.post-hero-image, .post-inline-image { border: 1px solid var(--c-stone); overflow: hidden; background: var(--c-cream); }
.post-hero-image img { width: 100%; height: 26rem; object-fit: cover; }
.post-inline-image img { width: 100%; height: 22rem; object-fit: cover; }

.post-body p { font-size: 1rem; color: rgba(51,51,51,0.9); line-height: 1.75; margin-bottom: 1.5rem; }

/* Sidebar */
.post-sidebar { display: flex; flex-direction: column; gap: 2rem; }
@media (min-width: 1024px) { .post-sidebar { position: sticky; top: 6rem; } }
.sidebar-widget { background: var(--c-white); border: 1px solid var(--c-stone); padding: 1.5rem; box-shadow: 0 1px 2px rgba(0,0,0,0.03); }
.sidebar-widget-title { font-size: 1rem; padding-bottom: 0.85rem; margin-bottom: 1rem; border-bottom: 1px solid var(--c-stone); }
.sidebar-recent-item { display: flex; gap: 0.85rem; align-items: flex-start; margin-bottom: 1rem; }
.sidebar-recent-item:last-child { margin-bottom: 0; }
.sidebar-recent-item img { width: 4rem; height: 4rem; object-fit: cover; border: 1px solid var(--c-stone); flex-shrink: 0; }
.sidebar-recent-cat { font-size: 0.6rem; text-transform: uppercase; font-weight: 700; color: var(--c-sage); letter-spacing: 0.08em; display: block; margin-bottom: 0.15rem; }
.sidebar-recent-title { font-family: var(--font-serif); font-size: 0.78rem; font-weight: 700; color: var(--c-forest); line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sidebar-recent-item:hover .sidebar-recent-title { color: var(--c-sage); }

.author-widget { padding: 1.75rem; }
.author-widget-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1rem; margin-bottom: 1.25rem; border-bottom: 1px solid var(--c-stone); }
.author-widget-head span.tag { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; color: var(--c-sage); }
.author-widget-body { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1rem; }
@media (min-width: 640px) { .author-widget-body { flex-direction: row; align-items: flex-start; text-align: left; } }
.author-widget-body img { width: 4.5rem; height: 4.5rem; border-radius: 999px; object-fit: cover; border: 2px solid var(--c-stone); flex-shrink: 0; }
.author-widget-role { font-size: 0.72rem; font-weight: 600; color: var(--c-sage); display: block; margin: 0.2rem 0 0.6rem; }
.author-widget-bio { font-size: 0.8rem; color: rgba(51,51,51,0.8); line-height: 1.6; }

/* =========================================================================
   CONTACT PAGE
   ========================================================================= */
.contact-layout { display: grid; grid-template-columns: 1fr; gap: 2.5rem; padding: 3rem 0; }
@media (min-width: 1024px) { .contact-layout { grid-template-columns: 1fr 1fr; gap: 4rem; align-items: stretch; } }
.contact-left { display: flex; flex-direction: column; }
.contact-left h1 { font-size: 2.2rem; margin: 1rem 0; line-height: 1.15; }
@media (min-width: 640px) { .contact-left h1 { font-size: 3.75rem; } }
.contact-left p.lead { font-size: 0.9rem; color: rgba(51,51,51,0.8); line-height: 1.7; max-width: 28rem; margin-bottom: 2rem; }
.contact-image { flex: 1; width: 100%; min-height: 20rem; overflow: hidden; border: 1px solid var(--c-stone); background: var(--c-white); }
.contact-image img { width: 100%; height: 100%; object-fit: cover; }
.contact-image-top { overflow: hidden; border: 1px solid var(--c-stone); aspect-ratio: 16/9; background: var(--c-white); margin-bottom: 2rem; }
.contact-form-card { background: var(--c-white); padding: 2rem; border: 1px solid var(--c-stone); }
.contact-form-card h2 { font-size: 1.4rem; margin-bottom: 0.5rem; }
.contact-form-card > p { font-size: 0.75rem; color: rgba(51,51,51,0.7); margin-bottom: 1.5rem; }
.contact-notice { padding: 0.85rem 1rem; margin-bottom: 1.25rem; font-size: 0.78rem; border: 1px solid #ef4444; color: #b91c1c; background: #fef2f2; }

/* =========================================================================
   LEGAL PAGES
   ========================================================================= */
.legal-wrap { padding: 3rem 0; }
.legal-intro p { font-size: 0.9rem; color: rgba(51,51,51,0.85); line-height: 1.7; margin-bottom: 0.85rem; padding-bottom: 1.25rem; }
.legal-intro { border-bottom: 1px solid var(--c-stone); margin-bottom: 2rem; }
.legal-doc h1 { font-size: 2rem; margin-bottom: 1rem; }
@media (min-width: 640px) { .legal-doc h1 { font-size: 2.6rem; } }
.legal-doc h2 { font-size: 1.15rem; margin: 2rem 0 0.75rem; }
.legal-doc h3 { font-size: 1rem; margin: 1rem 0 0.4rem; }
.legal-doc p { font-size: 16px; color: rgba(51,51,51,0.85); line-height: 1.7; margin-bottom: 0.75rem; }
.legal-doc ul { margin: 0.5rem 0 0.85rem; padding-left: 1.1rem; list-style: disc; }
.legal-doc li { font-size: 0.85rem; color: rgba(51,51,51,0.8); line-height: 1.7; margin-bottom: 0.3rem; }

.legal-switcher { margin-top: 4rem; padding-top: 3rem; border-top: 1px solid var(--c-stone); }
.legal-switcher h3 { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 1.5rem; }
.legal-cards { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .legal-cards { grid-template-columns: repeat(3, 1fr); } }
.legal-card { display: block; padding: 1.5rem; background: var(--c-white); border: 1px solid var(--c-stone); }
.legal-card:hover { border-color: var(--c-sage); }
.legal-card.is-active { border-color: var(--c-forest); box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
.legal-card .icon-circle { width: 2.5rem; height: 2.5rem; border-radius: 999px; background: var(--c-vanilla); color: var(--c-forest); display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; }
.legal-card.is-active .icon-circle { background: var(--c-forest); color: var(--c-yellow); }
.legal-card h4 { font-size: 0.95rem; margin-bottom: 0.35rem; }
.legal-card p { font-size: 0.72rem; color: rgba(51,51,51,0.7); line-height: 1.5; }

/* =========================================================================
   ABOUT PAGE (also used by the bundled Elementor "About Story" widget)
   ========================================================================= */
.about-hero { max-width: 900px; padding: 3rem 0 2rem; border-bottom: 1px solid var(--c-stone); margin-bottom: 3rem; }
.about-hero .eyebrow { margin-bottom: 0.5rem; }
.about-hero h1 { font-size: 2.25rem; line-height: 1.15; }
@media (min-width: 640px) { .about-hero h1 { font-size: 3rem; } }
@media (min-width: 1024px) { .about-hero h1 { font-size: 3.5rem; } }
.about-hero p { font-size: 1rem; color: var(--c-charcoal-soft); line-height: 1.6; margin-top: 1rem; }
@media (min-width: 640px) { .about-hero p { font-size: 1.1rem; } }

.about-layout { display: grid; grid-template-columns: 1fr; gap: 3rem; padding-bottom: 4rem; }
@media (min-width: 1024px) { .about-layout { grid-template-columns: 7fr 5fr; gap: 4rem; } }

.about-sections { display: flex; flex-direction: column; gap: 3rem; }
@media (min-width: 640px) { .about-sections { gap: 3.5rem; } }
.about-section { padding-bottom: 2.5rem; border-bottom: 1px solid var(--c-stone); }
.about-section:last-child { border-bottom: none; padding-bottom: 1rem; }
.about-section-eyebrow { display: block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-sage); margin-bottom: 0.5rem; }
.about-section h2 { font-size: 1.5rem; margin-bottom: 0.75rem; }
@media (min-width: 640px) { .about-section h2 { font-size: 1.85rem; } }
.about-section p { font-size: 0.9rem; color: var(--c-charcoal-soft); line-height: 1.7; margin-bottom: 0.75rem; }
@media (min-width: 640px) { .about-section p { font-size: 1rem; } }

.about-quote { margin-top: 0.5rem; padding: 1rem; background: rgba(247,233,198,0.6); border-left: 3px solid var(--c-forest); }
.about-quote p { font-family: var(--font-serif); font-style: italic; font-size: 1rem; font-weight: 500; color: var(--c-forest); margin: 0; }
@media (min-width: 640px) { .about-quote p { font-size: 1.15rem; } }

.about-gallery { display: flex; flex-direction: column; gap: 1.5rem; }
.about-gallery-main { aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid var(--c-stone); background: var(--c-cream); }
.about-gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.about-gallery-grid > div { aspect-ratio: 1 / 1; overflow: hidden; border: 1px solid var(--c-stone); background: var(--c-cream); }
.about-gallery-wide { aspect-ratio: 16 / 10; overflow: hidden; border: 1px solid var(--c-stone); background: var(--c-cream); }
.about-gallery img { width: 100%; height: 100%; object-fit: cover; }

/* =========================================================================
   HOMEPAGE SECTION WIDGETS (Elementor)
   ========================================================================= */

/* --- Hero --- */
.home-hero { padding: 2.5rem 0; }
@media (min-width: 640px) { .home-hero { padding: 4rem 0; } }
@media (min-width: 1024px) { .home-hero { padding: 5rem 0; } }
.home-hero-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; }
@media (min-width: 1024px) { .home-hero-grid { grid-template-columns: 1fr 1fr; gap: 3.5rem; } }
.home-hero-copy { display: flex; flex-direction: column; gap: 1.5rem; }
.home-hero-copy h1 { font-size: 2.25rem; line-height: 1.08; letter-spacing: -0.01em; }
@media (min-width: 640px) { .home-hero-copy h1 { font-size: 3rem; } }
@media (min-width: 1024px) { .home-hero-copy h1 { font-size: 3.75rem; } }
@media (min-width: 1280px) { .home-hero-copy h1 { font-size: 4.5rem; } }
.home-hero-copy p { font-size: 0.9rem; color: var(--c-charcoal-soft); line-height: 1.6; max-width: 32rem; }
@media (min-width: 640px) { .home-hero-copy p { font-size: 1rem; } }
.home-hero-btn { align-self: flex-start; padding: 0.85rem 2rem; }
.home-hero-image { aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid var(--c-stone); background: var(--c-cream); }
.home-hero-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.home-hero-media a:hover .home-hero-image img { transform: scale(1.03); }

/* --- Shared section chrome --- */
.home-section { padding: 3rem 0; border-top: 1px solid var(--c-stone); }
.home-section--tint { background: var(--c-cream); }
.home-section-head { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 1.5rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--c-stone); }
@media (min-width: 640px) { .home-section-head { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.eyebrow-label { display: block; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--c-sage); margin-bottom: 0.25rem; }
.home-section-head h2 { font-size: 1.9rem; }
@media (min-width: 640px) { .home-section-head h2 { font-size: 2.3rem; } }
.home-view-all { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--c-forest); }
.home-view-all:hover { color: var(--c-sage); }

/* --- Spotlight (dominant card + stacked list) --- */
.spotlight-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: stretch; }
@media (min-width: 1024px) { .spotlight-grid { grid-template-columns: 7fr 5fr; } }
.spotlight-grid--reverse { }
@media (min-width: 1024px) { .spotlight-grid--reverse { grid-template-columns: 5fr 7fr; } }
.spotlight-grid--reverse .stacked-list { order: 1; }
.spotlight-grid--reverse .spotlight-card { order: 2; }

.spotlight-card { background: var(--c-white); border: 1px solid var(--c-stone); display: flex; flex-direction: column; transition: box-shadow 0.3s ease; }
.spotlight-card:hover { box-shadow: 0 10px 25px -8px rgba(0,0,0,0.15); }
.spotlight-card:hover h3 { color: var(--c-sage); }
.spotlight-card-thumb { aspect-ratio: 16 / 10; overflow: hidden; background: var(--c-cream); position: relative; }
.spotlight-card-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.spotlight-card:hover .spotlight-card-thumb img { transform: scale(1.05); }
.spotlight-card-badge { position: absolute; top: 0.75rem; left: 0.75rem; background: rgba(250,248,242,0.95); backdrop-filter: blur(2px); padding: 0.25rem 0.65rem; font-size: 0.6rem; text-transform: uppercase; font-weight: 700; letter-spacing: 0.06em; color: var(--c-forest); border: 1px solid var(--c-stone); }
.spotlight-card-badge--solid { top: 1rem; right: 1rem; left: auto; background: var(--c-forest); color: var(--c-white); border: none; letter-spacing: 0.1em; padding: 0.3rem 0.8rem; }
.spotlight-card-body { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
.spotlight-card-body h3 { font-size: 1.5rem; line-height: 1.3; margin-bottom: 0.6rem; transition: color 0.2s ease; }
@media (min-width: 640px) { .spotlight-card-body h3 { font-size: 1.7rem; } }
.spotlight-card-body p { font-size: 0.85rem; color: rgba(51,51,51,0.75); line-height: 1.6; margin-bottom: 1rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.spotlight-card-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 0.85rem; border-top: 1px solid var(--c-stone); margin-top: auto; font-size: 0.72rem; font-weight: 600; color: var(--c-forest); }
.spotlight-card-author { display: flex; align-items: center; gap: 0.5rem; }
.spotlight-card-author img { width: 1.75rem; height: 1.75rem; border-radius: 999px; object-fit: cover; }
.spotlight-read { display: inline-flex; align-items: center; gap: 0.25rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.spotlight-card:hover .spotlight-read { color: var(--c-sage); }

.stacked-list { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
.stacked-card { background: var(--c-white); border: 1px solid var(--c-stone); padding: 1rem; display: flex; gap: 1rem; align-items: center; flex: 1; transition: box-shadow 0.2s ease; }
.stacked-card:hover { box-shadow: 0 6px 16px -6px rgba(0,0,0,0.12); }
.stacked-card:hover h4 { color: var(--c-sage); }
.stacked-card-thumb { width: 6rem; height: 6rem; flex-shrink: 0; overflow: hidden; background: var(--c-cream); border: 1px solid var(--c-stone); }
.stacked-card-thumb img { width: 100%; height: 100%; object-fit: cover; }
.stacked-card-eyebrow { display: block; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 700; color: var(--c-sage); margin-bottom: 0.25rem; }
.stacked-card h4 { font-size: 0.85rem; line-height: 1.35; margin-bottom: 0.25rem; transition: color 0.2s ease; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.stacked-card p { font-size: 0.72rem; color: rgba(51,51,51,0.65); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* --- Dual spotlight + 4-up grid (Beauty & Lifestyle) --- */
.dual-spotlight-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: 1.5rem; }
@media (min-width: 1024px) { .dual-spotlight-grid { grid-template-columns: 1fr 1fr; } }
.spotlight-card--compact .spotlight-card-body h3 { font-size: 1.25rem; }
@media (min-width: 640px) { .spotlight-card--compact .spotlight-card-body h3 { font-size: 1.45rem; } }

.grid-4up { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .grid-4up { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .grid-4up { grid-template-columns: repeat(4, 1fr); } }
.grid-card { background: var(--c-white); border: 1px solid var(--c-stone); padding: 1.1rem; display: flex; flex-direction: column; transition: box-shadow 0.2s ease; }
.grid-card:hover { box-shadow: 0 6px 16px -6px rgba(0,0,0,0.12); }
.grid-card:hover h4 { color: var(--c-sage); }
.grid-card-thumb { aspect-ratio: 16 / 10; overflow: hidden; background: var(--c-cream); border: 1px solid var(--c-stone); margin-bottom: 0.85rem; position: relative; }
.grid-card-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.grid-card:hover .grid-card-thumb img { transform: scale(1.05); }
.grid-card-badge { position: absolute; bottom: 0.5rem; left: 0.5rem; background: rgba(250,248,242,0.9); color: var(--c-forest); font-size: 0.58rem; text-transform: uppercase; font-weight: 700; padding: 0.15rem 0.5rem; border: 1px solid var(--c-stone); }
.grid-card h4 { font-size: 0.95rem; line-height: 1.35; margin-bottom: 0.35rem; transition: color 0.2s ease; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.grid-card p { font-size: 0.75rem; color: rgba(51,51,51,0.7); margin-bottom: 0.75rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.grid-card-footer { padding-top: 0.75rem; border-top: 1px solid var(--c-stone); margin-top: auto; display: flex; align-items: center; justify-content: space-between; font-size: 0.72rem; font-weight: 700; color: var(--c-forest); }

/* --- Gallery + postcards (Travel) --- */
.gallery-top-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .gallery-top-grid { grid-template-columns: 1fr 1fr; } }
.gallery-card { display: block; background: var(--c-white); border: 1px solid var(--c-stone); overflow: hidden; transition: box-shadow 0.3s ease; }
.gallery-card:hover { box-shadow: 0 10px 25px -8px rgba(0,0,0,0.15); }
.gallery-card:hover h3 { color: var(--c-sage); }
.gallery-card-thumb { aspect-ratio: 16 / 11; overflow: hidden; position: relative; background: var(--c-cream); }
.gallery-card-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.gallery-card:hover .gallery-card-thumb img { transform: scale(1.05); }
.gallery-card-badge { position: absolute; top: 1rem; left: 1rem; background: rgba(255,255,255,0.95); padding: 0.3rem 0.75rem; font-size: 0.6rem; text-transform: uppercase; font-weight: 700; letter-spacing: 0.08em; color: var(--c-forest); border: 1px solid var(--c-stone); }
.gallery-card-body { padding: 1.5rem; }
.gallery-card-body h3 { font-size: 1.35rem; line-height: 1.3; margin-bottom: 0.6rem; transition: color 0.2s ease; }
@media (min-width: 640px) { .gallery-card-body h3 { font-size: 1.55rem; } }
.gallery-card-body p { font-size: 0.85rem; color: rgba(51,51,51,0.75); margin-bottom: 0.75rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gallery-card-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 0.75rem; border-top: 1px solid var(--c-stone); font-size: 0.72rem; font-weight: 600; color: var(--c-forest); }

.postcard-row { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .postcard-row { grid-template-columns: 1fr 1fr; } }
.postcard { background: var(--c-white); border: 1px solid var(--c-stone); padding: 1rem; display: flex; gap: 1rem; align-items: center; transition: box-shadow 0.2s ease; }
.postcard:hover { box-shadow: 0 6px 16px -6px rgba(0,0,0,0.12); }
.postcard:hover h4 { color: var(--c-sage); }
.postcard-thumb { width: 7rem; height: 5.5rem; flex-shrink: 0; overflow: hidden; background: var(--c-cream); border: 1px solid var(--c-stone); }
.postcard-thumb img { width: 100%; height: 100%; object-fit: cover; }
.postcard h4 { font-size: 0.85rem; line-height: 1.35; margin-bottom: 0.25rem; transition: color 0.2s ease; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.postcard p { font-size: 0.72rem; color: rgba(51,51,51,0.65); margin-bottom: 0.35rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.postcard-read { font-size: 0.68rem; font-weight: 700; color: var(--c-forest); }

/* --- Newsletter --- */
.home-newsletter-wrap { margin: 3rem auto; }
.newsletter-box { background: var(--c-vanilla); border: 1px solid var(--c-stone); padding: 1.5rem; position: relative; overflow: hidden; }
@media (min-width: 640px) { .newsletter-box { padding: 2rem; } }
@media (min-width: 768px) { .newsletter-box { padding: 2.5rem; } }
.newsletter-decor { position: absolute; right: -1.5rem; bottom: -2rem; width: 10rem; height: 10rem; opacity: 0.15; color: var(--c-forest); pointer-events: none; }
.newsletter-inner { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 1.5rem; position: relative; z-index: 1; }
@media (min-width: 1024px) { .newsletter-inner { flex-direction: row; gap: 2rem; } }
.newsletter-left { display: flex; align-items: center; gap: 1rem; width: 100%; }
@media (min-width: 1024px) { .newsletter-left { width: auto; } }
.newsletter-icon { width: 3.5rem; height: 3.5rem; border-radius: 999px; background: rgba(143,164,137,0.25); border: 1px solid var(--c-sage); color: var(--c-forest); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.newsletter-left h3 { font-size: 1.3rem; }
@media (min-width: 640px) { .newsletter-left h3 { font-size: 1.55rem; } }
.newsletter-left p { font-size: 0.85rem; color: rgba(51,51,51,0.8); margin-top: 0.25rem; max-width: 28rem; }
.newsletter-right { width: 100%; }
@media (min-width: 1024px) { .newsletter-right { width: auto; flex: 1; max-width: 28rem; } }
.newsletter-field-row { display: flex; flex-direction: column; gap: 0.65rem; }
@media (min-width: 640px) { .newsletter-field-row { flex-direction: row; } }
.newsletter-field-row .field-input { flex: 1; }
.newsletter-field-row .btn { white-space: nowrap; }
.nic-newsletter-success { padding: 0.875rem; background: var(--c-white); border: 1px solid var(--c-sage); color: var(--c-forest); font-size: 0.75rem; display: flex; align-items: center; gap: 0.65rem; border-radius: var(--radius-sm); box-shadow: 0 1px 2px rgba(0,0,0,0.04); }
.nic-newsletter-success svg { color: var(--c-sage); flex-shrink: 0; }
.nic-newsletter-success strong { display: block; color: var(--c-forest); font-weight: 700; }
.nic-newsletter-success span { font-size: 0.68rem; color: rgba(51,51,51,0.7); }

/* =========================================================================
   GENERIC PAGE / INDEX FALLBACK
   ========================================================================= */
.page-simple { padding: 3rem 0 4rem; }
.page-simple h1 { font-size: 2rem; margin-bottom: 1.5rem; }
.page-simple .entry-content p { font-size: 0.92rem; line-height: 1.75; color: rgba(51,51,51,0.88); margin-bottom: 1.1rem; }

.archive-head { padding: 2rem 0 1rem; border-bottom: 1px solid var(--c-stone); }

.pagination { display: flex; justify-content: center; gap: 0.5rem; padding: 2rem 0; }
.pagination a, .pagination span { padding: 0.5rem 0.9rem; font-size: 0.75rem; font-weight: 700; border: 1px solid var(--c-stone); color: var(--c-forest); }
.pagination .current { background: var(--c-forest); color: var(--c-white); border-color: var(--c-forest); }
.pagination a:hover { background: var(--c-vanilla); }

/* =========================================================================
   MISC ANIMATION
   ========================================================================= */
@keyframes nicFadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
.nic-fade-in { animation: nicFadeIn 0.2s ease; }

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