/* Sacred Nature Media – theme styles (front end + editor). */

:root {
	--snm-navy: var(--wp--preset--color--base, #0B1320);
	--snm-night: var(--wp--preset--color--accent-3, #13203A);
	--snm-gold: var(--wp--preset--color--accent-1, #E3A548);
	--snm-aqua: var(--wp--preset--color--accent-2, #6FC9C0);
	--snm-parchment: var(--wp--preset--color--contrast, #F8F4EC);
	--snm-mist: var(--wp--preset--color--accent-4, #B9C1CE);
	--snm-line: rgba(227, 165, 72, 0.28);
	--snm-radius: 14px;
	--snm-section-pad: clamp(3.5rem, 8vw, 6.5rem);
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: rgba(227, 165, 72, 0.35); color: #fff; }

/* Page skeleton: sections sit flush against each other. */
.wp-site-blocks > main,
.wp-site-blocks > footer,
.wp-site-blocks > .wp-block-template-part { margin-block-start: 0; }
.snm-main { margin-top: 0; }
.snm-landing-content > .alignfull,
.snm-landing-content > .alignfull + * { margin-block-start: 0; }
.snm-landing-content > *:last-child { margin-block-end: 0; }

/* ---------- Header ---------- */
.snm-header {
	padding-top: 0.9rem;
	padding-bottom: 0.9rem;
	border-bottom: 1px solid rgba(227, 165, 72, 0.18);
	position: relative;
	z-index: 20;
}
.snm-header-inner { gap: 1.5rem; }
.snm-logo { margin: 0; flex-shrink: 0; }
.snm-logo img { display: block; height: auto; max-width: 100%; }
.snm-nav .wp-block-navigation-item__content { padding: 0.3rem 0.15rem; font-variant: small-caps; letter-spacing: 0.06em; }
.snm-nav .wp-block-navigation__container { gap: 0.4rem 1.5rem; }
.snm-nav .wp-block-navigation-item__content:hover,
.snm-nav .current-menu-item > .wp-block-navigation-item__content,
.snm-nav .wp-block-navigation-item__content[aria-current="page"] { color: var(--snm-gold); }
.snm-nav .wp-block-navigation__responsive-container-open,
.snm-nav .wp-block-navigation__responsive-container-close { color: var(--snm-gold); }
.snm-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.snm-nav .wp-block-navigation__responsive-container.is-menu-open {
	background-image: radial-gradient(ellipse 120% 70% at 50% 0%, #1A2B4C 0%, #0B1320 70%);
	padding: 2rem;
}
.snm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.1rem; }
.snm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.6rem; }
@media (max-width: 1340px) and (min-width: 1081px) {
	.snm-logo img { width: 240px !important; }
	.snm-nav { font-size: 1.08rem !important; }
	.snm-nav .wp-block-navigation__container { gap: 0.3rem 1.1rem; }
}
/* Tablet: switch to the hamburger menu earlier than core's 600px so the menu never wraps. */
@media (min-width: 600px) and (max-width: 1080px) {
	.snm-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.snm-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.snm-logo img { width: 240px !important; }
}
@media (max-width: 599px) {
	.snm-logo img { width: 210px !important; }
	.snm-eyebrow { letter-spacing: 0.1em; }
}

/* ---------- Star field (pure CSS) ---------- */
.snm-stars { position: relative; isolation: isolate; overflow: hidden; }
.snm-stars::before,
.snm-stars::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
}
.snm-stars::before {
	background-image:
		radial-gradient(1px 1px at 12% 18%, rgba(248, 244, 236, 0.9), transparent 60%),
		radial-gradient(1px 1px at 27% 72%, rgba(248, 244, 236, 0.7), transparent 60%),
		radial-gradient(1.5px 1.5px at 41% 33%, rgba(227, 165, 72, 0.9), transparent 60%),
		radial-gradient(1px 1px at 58% 12%, rgba(248, 244, 236, 0.8), transparent 60%),
		radial-gradient(1px 1px at 66% 58%, rgba(111, 201, 192, 0.8), transparent 60%),
		radial-gradient(1.5px 1.5px at 79% 26%, rgba(248, 244, 236, 0.85), transparent 60%),
		radial-gradient(1px 1px at 88% 81%, rgba(248, 244, 236, 0.6), transparent 60%),
		radial-gradient(1px 1px at 6% 88%, rgba(227, 165, 72, 0.7), transparent 60%),
		radial-gradient(1px 1px at 94% 44%, rgba(248, 244, 236, 0.7), transparent 60%),
		radial-gradient(1px 1px at 35% 92%, rgba(111, 201, 192, 0.6), transparent 60%);
	background-size: 420px 420px;
	opacity: 0.85;
}
.snm-stars::after {
	background-image:
		radial-gradient(1px 1px at 20% 40%, rgba(248, 244, 236, 0.55), transparent 60%),
		radial-gradient(1px 1px at 50% 80%, rgba(248, 244, 236, 0.45), transparent 60%),
		radial-gradient(1px 1px at 75% 15%, rgba(248, 244, 236, 0.5), transparent 60%),
		radial-gradient(1px 1px at 90% 65%, rgba(227, 165, 72, 0.5), transparent 60%);
	background-size: 190px 190px, 230px 230px, 170px 170px, 260px 260px;
}
@media (prefers-reduced-motion: no-preference) {
	.snm-stars::before { animation: snm-twinkle 7s ease-in-out infinite alternate; }
}
@keyframes snm-twinkle { from { opacity: 0.55; } to { opacity: 0.95; } }

/* ---------- Sections ---------- */
.snm-section { padding-top: var(--snm-section-pad); padding-bottom: var(--snm-section-pad); }
.snm-section.snm-tight { padding-top: calc(var(--snm-section-pad) * 0.6); padding-bottom: calc(var(--snm-section-pad) * 0.6); }
.snm-band { background-color: var(--snm-night); border-top: 1px solid rgba(227, 165, 72, 0.12); border-bottom: 1px solid rgba(227, 165, 72, 0.12); }
.snm-center { text-align: center; }
.snm-center .wp-block-list { text-align: left; }

.snm-hero {
	padding-top: clamp(3.5rem, 9vw, 7rem);
	padding-bottom: clamp(4rem, 10vw, 8rem);
	text-align: center;
}
.snm-hero h1 { max-width: 16ch; margin-left: auto !important; margin-right: auto !important; }
.snm-hero .snm-lede { max-width: 40rem; margin-left: auto !important; margin-right: auto !important; }
.snm-hero-emblem { margin-bottom: 0.5rem !important; }
.snm-hero-emblem img { width: min(300px, 62vw) !important; height: auto; filter: drop-shadow(0 0 40px rgba(227, 165, 72, 0.18)); }
.snm-page-head { padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 5rem); text-align: center; }

.snm-eyebrow {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-variant: small-caps;
	font-weight: 600;
	font-size: 1.2rem;
	letter-spacing: 0.14em;
	color: var(--snm-aqua);
	margin-bottom: 0.25rem !important;
}
.snm-lede { font-size: clamp(1.15rem, 1.6vw, 1.35rem); color: var(--snm-parchment); line-height: 1.65; }
.snm-subtitle {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-style: italic;
	font-size: clamp(1.4rem, 2.4vw, 1.9rem);
	line-height: 1.3;
	color: var(--snm-parchment);
}
.snm-muted { color: var(--snm-mist); }
.snm-center h2, .snm-center h1 { text-wrap: balance; }

/* Ornamental separator: short gold rule with a diamond. */
.wp-block-separator:not(.snm-footer-rule) {
	border: 0;
	height: 1px;
	width: 140px;
	max-width: 140px;
	background: linear-gradient(90deg, transparent, var(--snm-gold), transparent) !important;
	opacity: 1;
	margin-left: auto !important;
	margin-right: auto !important;
	position: relative;
	overflow: visible;
}
.wp-block-separator:not(.snm-footer-rule)::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 6px;
	height: 6px;
	background: var(--snm-gold);
	transform: translate(-50%, -50%) rotate(45deg);
}

/* Buttons */
.wp-block-buttons { gap: 0.9rem; }
.wp-block-button__link { transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus {
	background-color: rgba(111, 201, 192, 0.12);
	color: var(--snm-parchment);
	border-color: var(--snm-aqua);
}
.snm-center .wp-block-buttons,
.wp-block-buttons.snm-center,
.snm-hero .wp-block-buttons { justify-content: center; }

/* Cards */
.snm-cards { gap: clamp(1.25rem, 3vw, 2rem) !important; }
.snm-card {
	background: linear-gradient(180deg, rgba(26, 43, 76, 0.55) 0%, rgba(19, 32, 58, 0.9) 100%);
	border: 1px solid var(--snm-line);
	border-radius: var(--snm-radius);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: border-color .25s ease, transform .25s ease;
}
.snm-band .snm-card { background: linear-gradient(180deg, rgba(11, 19, 32, 0.65) 0%, rgba(11, 19, 32, 0.95) 100%); }
.snm-card:hover { border-color: rgba(227, 165, 72, 0.55); }
.snm-card > * { margin-block-start: 0; }
.snm-card > * + * { margin-block-start: 1rem; }
.snm-card h3 { margin-top: 0; }
.snm-card .wp-block-buttons { margin-top: auto; padding-top: 1rem; }
.snm-card-icon { font-size: 1.6rem; color: var(--snm-gold); line-height: 1; margin-bottom: 0.25rem !important; }
.wp-block-column > .snm-card { height: 100%; }

.snm-note {
	border: 1px solid rgba(111, 201, 192, 0.35);
	border-radius: var(--snm-radius);
	padding: 1.25rem 1.5rem;
	background: rgba(111, 201, 192, 0.06);
	color: var(--snm-mist);
}

/* Quotes */
.wp-block-quote { padding-left: 1.5rem; }
.wp-block-quote cite, .wp-block-pullquote cite { font-family: var(--wp--preset--font-family--source-sans-3); font-style: normal; font-size: 0.95rem; color: var(--snm-mist); letter-spacing: 0.04em; }
.snm-center .wp-block-quote { border-left: 0; padding-left: 0; }
.wp-block-pullquote { padding: 2.5rem 0; color: var(--snm-parchment); }
.wp-block-pullquote p { font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.5; }

/* Lists */
.snm-list-grid { columns: 2 260px; column-gap: 2.5rem; }
.snm-list-grid li { break-inside: avoid; }
.wp-block-list li { margin-bottom: 0.5rem; }
.wp-block-list li::marker { color: var(--snm-gold); }
.snm-facts { list-style: none; padding-left: 0; }
.snm-facts li { padding: 0.8rem 0; border-bottom: 1px solid rgba(227, 165, 72, 0.18); margin: 0; }
.snm-facts li:last-child { border-bottom: 0; }
.snm-facts strong { color: var(--snm-gold); font-weight: 600; }

/* ---------- Podcast episodes (core/rss) ---------- */
.wp-block-rss.snm-episodes { list-style: none; padding: 0; margin-left: 0; }
.wp-block-rss.snm-episodes .wp-block-rss__item {
	background: linear-gradient(180deg, rgba(26, 43, 76, 0.55) 0%, rgba(19, 32, 58, 0.9) 100%);
	border: 1px solid var(--snm-line);
	border-radius: var(--snm-radius);
	padding: 1.5rem 1.6rem;
	margin: 0 0 1.25rem;
	overflow-wrap: anywhere;
}
.snm-band .wp-block-rss.snm-episodes .wp-block-rss__item { background: rgba(11, 19, 32, 0.8); }
.wp-block-rss.snm-episodes.is-grid { gap: 1.5rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wp-block-rss.snm-episodes.is-grid.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1000px) { .wp-block-rss.snm-episodes.is-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .wp-block-rss.snm-episodes.is-grid, .wp-block-rss.snm-episodes.is-grid.columns-2 { grid-template-columns: 1fr; } }
.wp-block-rss.snm-episodes .wp-block-rss__item { display: flex; flex-direction: column; }
.wp-block-rss.snm-episodes .wp-block-rss__item-publish-date { order: -1; margin: 0 0 0.6rem !important; }
.wp-block-rss.snm-episodes .wp-block-rss__item-title a::after { content: " \2192"; color: var(--snm-aqua); font-family: var(--wp--preset--font-family--source-sans-3); font-size: 0.9em; }
.wp-block-rss.snm-episodes.is-grid .wp-block-rss__item { margin: 0; width: auto; }
.wp-block-rss.snm-episodes .wp-block-rss__item-title { font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: 1.45rem; font-weight: 600; line-height: 1.25; }
.wp-block-rss.snm-episodes .wp-block-rss__item-title a { color: var(--snm-gold); text-decoration: none; }
.wp-block-rss.snm-episodes .wp-block-rss__item-title a:hover { color: var(--snm-aqua); text-decoration: underline; }
.wp-block-rss.snm-episodes .wp-block-rss__item-publish-date {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.85rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--snm-aqua);
}
.wp-block-rss.snm-episodes .wp-block-rss__item-excerpt { margin-top: 0.6rem; color: var(--snm-mist); font-size: 1rem; line-height: 1.6; }

/* ---------- Contact ---------- */
.snm-contact-form { min-height: 1px; }
.snm-email-link { font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: clamp(1.4rem, 3vw, 1.9rem); overflow-wrap: anywhere; }

/* ---------- Footer ---------- */
.snm-footer {
	padding-top: clamp(3rem, 6vw, 4.5rem);
	padding-bottom: 2rem;
	border-top: 1px solid rgba(227, 165, 72, 0.22);
	font-size: 1rem;
	color: var(--snm-mist);
}
.snm-footer-cols { gap: 2.5rem; }
.snm-footer-emblem { margin-bottom: 1rem !important; }
.snm-footer-label {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-variant: small-caps;
	font-weight: 600;
	font-size: 1.25rem;
	letter-spacing: 0.12em;
	color: var(--snm-gold);
	margin-bottom: 0.5rem !important;
}
.snm-footer-links { list-style: none; padding-left: 0; margin-top: 0; }
.snm-footer-links li { margin-bottom: 0.35rem; }
.snm-footer a { color: var(--snm-parchment); text-decoration: none; }
.snm-footer a:hover { color: var(--snm-gold); text-decoration: underline; }
.snm-footer .snm-social { gap: 0.9rem; margin-bottom: 1.25rem; }
.snm-footer .snm-social .wp-social-link { font-size: 22px; }
.snm-footer .snm-social a:hover { color: inherit; }
.snm-footer .snm-social .wp-social-link:hover { transform: translateY(-2px); }
.snm-footer-rule { border: 0; border-top: 1px solid rgba(227, 165, 72, 0.18) !important; background: none !important; margin-top: 2.5rem !important; margin-bottom: 1.5rem !important; height: 0; }
.snm-disclaimer { color: var(--snm-mist); opacity: 0.9; line-height: 1.6; }
.snm-copyright { color: var(--snm-mist); margin-top: 0.75rem; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.snm-card { height: auto; }
	.snm-footer-cols { gap: 1.75rem; }
	.snm-hero .wp-block-buttons .wp-block-button { width: 100%; max-width: 360px; }
	.snm-hero .wp-block-buttons .wp-block-button__link { width: 100%; }
}

/* Mobile menu overlay: centred items */
.snm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.snm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: center; }
.snm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3rem; }

/* Search (404) */
.snm-search { max-width: 30rem; margin-left: auto !important; margin-right: auto !important; }
.snm-search .wp-block-search__input { background: rgba(248, 244, 236, 0.06); color: var(--snm-parchment); border: 1px solid rgba(111, 201, 192, 0.45); border-radius: 999px; padding: 0.7rem 1.2rem; }
.snm-search .wp-block-search__input::placeholder { color: var(--snm-mist); }

/* Generic pages (page.html) */
.snm-page-head + .snm-section { padding-top: clamp(2rem, 5vw, 3.5rem); }
