/*
Theme Name: Audient
Theme URI: https://audientconsciousness.com
Description: Editorial child theme for Audient Consciousness — a magazine about sound, waves and healing. Built on Twenty Twenty-Five; palette, type and layouts live in theme.json, templates in templates/ and parts/.
Author: Audient Consciousness
Template: twentytwentyfive
Version: 1.2.1
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: audient
*/

/* ---------- Tokens ---------- */
:root {
	--au-ease: cubic-bezier(.2,.7,.2,1);
	--au-shadow: 0 1px 2px rgba(15,26,43,.06), 0 12px 32px -16px rgba(15,26,43,.25);
	--au-radius: 10px;
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

/* ---------- Masthead strip ---------- */
.audient-masthead { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--accent-4); border-bottom: 1px solid var(--wp--preset--color--accent-3); }
.audient-masthead .wp-block-group { padding-top: .45rem; padding-bottom: .45rem; }
.audient-masthead a { color: var(--wp--preset--color--accent-1); text-decoration: none; font-weight: 700; }
.audient-masthead a:hover { text-decoration: underline; }
.audient-masthead .au-left { display: none; }
@media (min-width: 782px) { .audient-masthead .au-left { display: block; } }

/* ---------- Wordmark & header ---------- */
.audient-wordmark { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--wp--preset--color--contrast); }
.audient-wordmark svg { width: 36px; height: 36px; flex: none; transition: transform .6s var(--au-ease); }
.audient-wordmark:hover svg { transform: scale(1.08); }
.audient-wordmark .word { font-family: var(--wp--preset--font-family--literata); font-weight: 700; font-size: 1.6rem; letter-spacing: -.02em; line-height: 1; }
.audient-wordmark .word small { display: block; font-family: var(--wp--preset--font-family--manrope); font-weight: 600; font-size: .56rem; letter-spacing: .3em; text-transform: uppercase; color: var(--wp--preset--color--accent-4); margin-top: .32rem; }
.audient-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--wp--preset--color--base) 84%, transparent); backdrop-filter: saturate(160%) blur(12px); -webkit-backdrop-filter: saturate(160%) blur(12px); border-bottom: 1px solid var(--wp--preset--color--accent-3); transition: box-shadow .3s var(--au-ease); }
.audient-header.is-scrolled { box-shadow: 0 8px 24px -18px rgba(15,26,43,.35); }
.admin-bar .audient-header { top: 32px; }
.audient-header .wp-block-navigation a { padding: .35rem .1rem; position: relative; }
.audient-header .wp-block-navigation a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--wp--preset--color--accent-2); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--au-ease); }
.audient-header .wp-block-navigation a:hover::after, .audient-header .wp-block-navigation .current-menu-item > a::after { transform: scaleX(1); }
.audient-header .wp-block-navigation a:hover { text-decoration: none; }
.audient-progress { position: absolute; left: 0; bottom: -1px; height: 2px; width: 0; background: var(--wp--preset--color--accent-1); transition: width .1s linear; }

/* ---------- Section labels ---------- */
.audient-kicker { font-family: var(--wp--preset--font-family--manrope); font-size: var(--wp--preset--font-size--small); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); }
.audient-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; border-top: 2px solid var(--wp--preset--color--contrast); padding-top: .9rem; margin-bottom: 1.4rem; }
.audient-section-head h2 { margin: 0; font-size: var(--wp--preset--font-size--x-large); }
.audient-section-head h2 small { display: block; font-family: var(--wp--preset--font-family--manrope); font-size: .78rem; font-weight: 500; letter-spacing: .02em; text-transform: none; color: var(--wp--preset--color--accent-4); margin-top: .25rem; }
.audient-section-head a.more { font-size: var(--wp--preset--font-size--small); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; color: var(--wp--preset--color--accent-1); white-space: nowrap; }
.audient-section-head a.more:hover { color: var(--wp--preset--color--contrast); }

/* ---------- Cards ---------- */
.audient-card .wp-block-post-featured-image { overflow: hidden; border-radius: var(--au-radius); box-shadow: var(--au-shadow); }
.audient-card .wp-block-post-featured-image img { aspect-ratio: 16/10; object-fit: cover; width: 100%; display: block; transition: transform .8s var(--au-ease), filter .8s var(--au-ease); }
.audient-card:hover .wp-block-post-featured-image img { transform: scale(1.04); filter: saturate(1.1); }
.audient-card .wp-block-post-title { font-size: var(--wp--preset--font-size--x-large); margin-top: .75rem; }
.audient-card .wp-block-post-title a { background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .35s var(--au-ease); }
.audient-card:hover .wp-block-post-title a { background-size: 100% 1px; }
.audient-card .wp-block-post-excerpt__excerpt { margin-top: .45rem; }
.audient-card .wp-block-post-excerpt__more-text { display: none; }
.audient-meta { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); }
.audient-meta .wp-block-post-terms, .audient-meta .wp-block-post-date { margin: 0; }
.audient-meta .wp-block-post-terms a { color: var(--wp--preset--color--accent-1); }

/* Hero */
.audient-hero { position: relative; }
.audient-hero .wp-block-post-featured-image { border-radius: var(--au-radius); overflow: hidden; box-shadow: var(--au-shadow); }
.audient-hero .wp-block-post-featured-image img { aspect-ratio: 16/9; object-fit: cover; width: 100%; display: block; transition: transform 1s var(--au-ease); }
.audient-hero:hover .wp-block-post-featured-image img { transform: scale(1.02); }
.audient-hero .audient-meta::before { content: "Lead story"; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--accent-2); padding-right: .6rem; border-right: 1px solid var(--wp--preset--color--accent-3); }
.audient-hero .wp-block-post-title { font-size: var(--wp--preset--font-size--display); line-height: 1.04; margin-top: 1rem; letter-spacing: -.02em; }
.audient-hero .wp-block-post-excerpt__excerpt { font-size: var(--wp--preset--font-size--x-large); line-height: 1.4; color: var(--wp--preset--color--contrast); font-family: var(--wp--preset--font-family--literata); font-weight: 400; }
.audient-hero .wp-block-post-excerpt__excerpt::after { content: "Read the story →"; display: block; margin-top: 1rem; font-family: var(--wp--preset--font-family--manrope); font-size: var(--wp--preset--font-size--small); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); }

/* List rows (briefs) */
.audient-row { display: grid; grid-template-columns: 1fr; gap: .3rem; padding: 1.1rem 0; border-top: 1px solid var(--wp--preset--color--accent-3); }
.audient-row .wp-block-post-title { font-size: var(--wp--preset--font-size--large); margin: 0; }
.audient-row .wp-block-post-excerpt__excerpt { margin: 0; }
.audient-rows > ul { list-style: none; padding: 0; margin: 0; }
.audient-rows > ul > li:last-child .audient-row { border-bottom: 1px solid var(--wp--preset--color--accent-3); }

/* ---------- Newsletter ---------- */
.audient-subscribe { background: var(--wp--preset--color--accent-6); color: var(--wp--preset--color--base); border-radius: 14px; padding: clamp(28px, 5vw, 60px); position: relative; overflow: hidden; isolation: isolate; }
.audient-subscribe::before { content: ""; position: absolute; inset: 0; background: radial-gradient(80% 120% at 100% 0%, rgba(31,111,139,.55), transparent 60%), radial-gradient(60% 80% at 0% 100%, rgba(217,164,65,.18), transparent 60%); z-index: -1; }
.audient-subscribe::after { content: ""; position: absolute; left: -10%; right: -10%; bottom: -46%; height: 150px; background: repeating-radial-gradient(circle at 50% 100%, rgba(255,255,255,0) 0 18px, rgba(255,255,255,.07) 18px 20px); pointer-events: none; z-index: -1; }
.audient-subscribe h2, .audient-subscribe h3 { color: var(--wp--preset--color--base); margin-top: 0; }
.audient-subscribe p { color: #CFE0E8; max-width: 54ch; }
.audient-subscribe .audient-kicker { color: var(--wp--preset--color--accent-2); }
.audient-form { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.2rem; position: relative; }
.audient-form input[type=email] { flex: 1 1 260px; min-width: 0; padding: .95rem 1.2rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; font: inherit; font-size: 1rem; transition: border-color .2s, background .2s; }
.audient-form input[type=email]::placeholder { color: rgba(255,255,255,.6); }
.audient-form input[type=email]:focus { outline: 2px solid var(--wp--preset--color--accent-2); outline-offset: 1px; background: rgba(255,255,255,.12); }
.audient-form button { flex: 0 0 auto; padding: .95rem 1.6rem; border-radius: 999px; border: 0; background: var(--wp--preset--color--accent-2); color: var(--wp--preset--color--contrast); font: inherit; font-weight: 700; cursor: pointer; transition: transform .2s var(--au-ease), background .2s; }
.audient-form button:hover { background: #fff; transform: translateY(-1px); }
.audient-form .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.audient-form-note { font-size: var(--wp--preset--font-size--small); color: #9FBAC6 !important; margin-top: .8rem; }
.audient-subscribe.is-light { background: var(--wp--preset--color--accent-5); color: var(--wp--preset--color--contrast); }
.audient-subscribe.is-light::before, .audient-subscribe.is-light::after { display: none; }
.audient-subscribe.is-light h2, .audient-subscribe.is-light h3, .audient-subscribe.is-light p { color: var(--wp--preset--color--contrast); }
.audient-subscribe.is-light .audient-form input[type=email] { background: #fff; color: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--accent-3); }
.audient-subscribe.is-light .audient-form input[type=email]::placeholder { color: var(--wp--preset--color--accent-4); }
.audient-subscribe.is-light .audient-form-note { color: var(--wp--preset--color--accent-4) !important; }
.audient-notice { border-radius: 8px; padding: 1rem 1.2rem; background: var(--wp--preset--color--accent-5); border-left: 4px solid var(--wp--preset--color--accent-2); }

/* ---------- Single article ---------- */
.audient-article-head { text-align: left; }
.audient-article-head .wp-block-post-title { margin-top: .6rem; max-width: 20ch; letter-spacing: -.02em; }
.audient-dek { font-family: var(--wp--preset--font-family--literata); font-size: var(--wp--preset--font-size--x-large); line-height: 1.4; color: var(--wp--preset--color--accent-4); margin-top: .8rem; max-width: 38ch; }
.audient-byline { display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--accent-3); }
.audient-byline .wp-block-post-date, .audient-byline .wp-block-post-author-name { margin: 0; }
.audient-readtime::before { content: "·"; margin-right: .6rem; }
.wp-block-post-featured-image.alignwide { border-radius: var(--au-radius); overflow: hidden; box-shadow: var(--au-shadow); }
.entry-content > p:first-of-type::first-letter { font-family: var(--wp--preset--font-family--literata); font-size: 3.8em; line-height: .8; float: left; padding: .1em .12em 0 0; font-weight: 600; color: var(--wp--preset--color--accent-1); }
.entry-content h2 { margin-top: 2.4rem; }
.entry-content h3 { margin-top: 1.8rem; }
.entry-content p { margin-block: 1.1rem; }
.entry-content a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.entry-content .wp-block-quote { margin-block: 1.8rem; }
.audient-sources { margin-top: 2.6rem; padding: 1.4rem 1.6rem; border: 1px solid var(--wp--preset--color--accent-3); border-radius: var(--au-radius); background: var(--wp--preset--color--accent-5); font-size: var(--wp--preset--font-size--medium); }
.audient-sources h2, .audient-sources h3 { font-family: var(--wp--preset--font-family--manrope); font-size: var(--wp--preset--font-size--small); letter-spacing: .12em; text-transform: uppercase; font-weight: 700; margin: 0 0 .7rem; color: var(--wp--preset--color--accent-4); }
.audient-sources ol { padding-left: 1.2rem; margin: 0; }
.audient-sources li { margin-bottom: .45rem; overflow-wrap: anywhere; }
.audient-callout { background: var(--wp--preset--color--accent-5); border-radius: var(--au-radius); padding: 1.3rem 1.5rem; margin-block: 1.8rem; }
.audient-callout p:first-child { margin-top: 0; }
.audient-callout p:last-child { margin-bottom: 0; }
.audient-takeaways { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--accent-3); border-top: 3px solid var(--wp--preset--color--accent-2); border-radius: var(--au-radius); padding: 1.3rem 1.5rem; margin-block: 1.8rem; box-shadow: var(--au-shadow); }
.audient-takeaways h4 { margin: 0 0 .6rem; font-family: var(--wp--preset--font-family--manrope); font-size: var(--wp--preset--font-size--small); letter-spacing: .12em; text-transform: uppercase; }
.audient-takeaways ul { margin: 0; padding-left: 1.2rem; }
.audient-disclosure p, .audient-disclaimer { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); margin-top: 2rem; }

/* ---------- Footer (dark) ---------- */
.audient-footer { background: var(--wp--preset--color--accent-6); color: var(--wp--preset--color--base); margin-top: var(--wp--preset--spacing--70); }
.audient-footer .audient-wordmark, .audient-footer h4, .audient-footer .wp-block-navigation a { color: var(--wp--preset--color--base); }
.audient-footer .audient-wordmark svg circle:first-child { stroke: var(--wp--preset--color--base); }
.audient-footer .audient-wordmark .word small { color: #9FBAC6; }
.audient-footer .wp-block-navigation a { font-size: var(--wp--preset--font-size--small); font-weight: 500; opacity: .85; }
.audient-footer .wp-block-navigation a:hover { opacity: 1; }
.audient-footer .colophon { font-size: var(--wp--preset--font-size--small); color: #9FBAC6; }
.audient-footer .audient-tagline { font-family: var(--wp--preset--font-family--literata); font-size: var(--wp--preset--font-size--medium); color: var(--wp--preset--color--base); font-style: italic; }
.audient-footer .wp-block-separator { border-color: rgba(255,255,255,.14); }
.audient-footer .audient-subscribe.is-light { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); color: var(--wp--preset--color--base); }
.audient-footer .audient-subscribe.is-light h3, .audient-footer .audient-subscribe.is-light p { color: var(--wp--preset--color--base); }
.audient-footer .audient-subscribe.is-light .audient-form input[type=email] { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.25); }
.audient-footer .audient-subscribe.is-light .audient-form input[type=email]::placeholder { color: rgba(255,255,255,.6); }
.audient-footer .audient-subscribe.is-light .audient-form-note { color: #9FBAC6 !important; }

/* ---------- Reveal on scroll (progressive; no JS = everything visible) ---------- */
.js .au-reveal { opacity: 0; transform: translateY(14px); transition: opacity .7s var(--au-ease), transform .7s var(--au-ease); }
.js .au-reveal.is-in { opacity: 1; transform: none; }

/* ---------- Misc ---------- */
.audient-pill { display: inline-block; font-size: var(--wp--preset--font-size--small); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .25rem .65rem; border-radius: 999px; background: var(--wp--preset--color--accent-5); color: var(--wp--preset--color--accent-1); }
.wp-block-post-navigation-link { font-family: var(--wp--preset--font-family--literata); }
.wp-block-query-pagination a { text-decoration: none; font-weight: 600; }
@media (max-width: 781px) {
	.audient-section-head { flex-direction: column; gap: .3rem; }
	.audient-hero .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large); }
	.audient-header { position: static; }
}

/* ---------- Dark mode (system) ---------- */
@media (prefers-color-scheme: dark) {
	:root {
		--wp--preset--color--base: #0F1A2B;
		--wp--preset--color--contrast: #F3EFE7;
		--wp--preset--color--accent-3: #22314A;
		--wp--preset--color--accent-4: #9AA6B8;
		--wp--preset--color--accent-5: #16233A;
		--wp--preset--color--accent-6: #0A1522;
		--wp--preset--color--accent-1: #6FB6D2;
		--au-shadow: 0 1px 2px rgba(0,0,0,.4), 0 12px 32px -16px rgba(0,0,0,.6);
	}
	body { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
	.audient-header { background: color-mix(in srgb, #0F1A2B 82%, transparent); }
	.audient-wordmark svg circle:first-child { stroke: #F3EFE7; }
	.audient-takeaways { background: var(--wp--preset--color--accent-5); }
	.audient-subscribe.is-light { background: var(--wp--preset--color--accent-5); }
	.audient-subscribe.is-light .audient-form input[type=email] { background: #0F1A2B; color: #F3EFE7; border-color: #2A3B55; }
	.wp-block-post-title a, .wp-block-post-title a:hover { color: var(--wp--preset--color--contrast); }
	.wp-element-button, .wp-block-button__link { background: #F3EFE7; color: #0F1A2B; }
}

/* ---------- Start here (single posts) ---------- */
.audient-start-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem 2rem; }
.audient-start-list li { border-top: 1px solid var(--wp--preset--color--accent-3); padding-top: .8rem; }
.audient-start-list a { font-family: var(--wp--preset--font-family--literata); font-weight: 600; font-size: 1.1rem; text-decoration: none; display: block; }
.audient-start-list a:hover { color: var(--wp--preset--color--accent-1); }
.audient-start-list span { display: block; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); margin-top: .25rem; }

/* ---------- Slide-in subscribe (single posts, 60 % read) ---------- */
.audient-slidein { position: fixed; right: 16px; bottom: 16px; z-index: 60; width: min(360px, calc(100vw - 32px)); background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); border: 1px solid var(--wp--preset--color--accent-3); border-radius: var(--au-radius); box-shadow: var(--au-shadow); padding: 1.1rem 1.2rem 1rem; transform: translateY(24px); opacity: 0; transition: transform .5s var(--au-ease), opacity .5s var(--au-ease); }
.audient-slidein[hidden] { display: none; }
.audient-slidein.is-open { transform: none; opacity: 1; }
.audient-slidein-close { position: absolute; top: .4rem; right: .6rem; border: 0; background: none; font-size: 1.4rem; line-height: 1; color: var(--wp--preset--color--accent-4); cursor: pointer; padding: .2rem .4rem; }
.audient-slidein-title { font-family: var(--wp--preset--font-family--literata); font-weight: 600; font-size: 1.15rem; line-height: 1.3; margin: .2rem 0 .8rem; }
.audient-slidein .audient-form { display: flex; gap: .4rem; }
.audient-slidein .audient-form input[type=email] { flex: 1; min-width: 0; }
.audient-slidein .audient-form-note { font-size: .72rem; color: var(--wp--preset--color--accent-4); margin: .5rem 0 0; }
@media (max-width: 600px) { .audient-slidein { right: 8px; bottom: 8px; width: calc(100vw - 16px); } }
