/* ==========================================================================
   Foyle Voices — front end

   STYLESHEET RULE, learned twice on this project:
   NEVER write a base colour rule as `.band p { color: X }`. A trailing element
   selector scores (0,2,1) and silently outranks any single-class component
   rule (0,2,0), whatever the source order. That produced magenta text on
   magenta buttons, and near-white text on a white form card. Bands own
   BACKGROUNDS. Components own their own text colour. The guarantee block at
   the foot is a backstop, not the defence.
   ========================================================================== */

.fh-voice,.fh-voice-share,.fh-voices-grid,.fh-voices-rail,.fh-voices-filters{
	--fhv-indigo:#312B80;--fhv-indigo-deep:#1A1445;--fhv-indigo-soft:#4A3FA0;
	--fhv-magenta:#C4007A;--fhv-magenta-deep:#9C0061;--fhv-teal:#80BBB3;
	--fhv-ivory:#FBF9F6;--fhv-ground2:#F2EFEA;--fhv-line:#E3DFEC;--fhv-onDark:#EDEAF7;
	--fhv-radius:24px;--fhv-shadow:0 1px 2px rgba(26,20,69,.05),0 10px 30px rgba(26,20,69,.07);
	--fhv-focus:3px solid var(--fhv-magenta);
}

.fh-voice{background:var(--fhv-ivory);color:var(--fhv-indigo-deep);line-height:1.7}
.fh-voice *,.fh-voice *::before,.fh-voice *::after{box-sizing:border-box}
.fh-voice img{max-width:100%;height:auto;display:block}
.fh-voice-shell{max-width:1120px;margin:0 auto;padding:0 20px}
.fh-voice-narrow{max-width:68ch;margin-inline:auto}
.fh-voices-sr{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.fh-voice a:focus-visible,.fh-voice button:focus-visible,.fh-voices-chip:focus-visible,
.fh-voices-btn:focus-visible,.fh-voices-poster:focus-visible,.fh-voices-card-cta a:focus-visible,
.fhv-submit:focus-visible{outline:var(--fhv-focus);outline-offset:4px;border-radius:6px}

.fh-voice-skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--fhv-magenta);
	padding:14px 22px;border-radius:0 0 var(--fhv-radius) 0;font-weight:700;text-decoration:none}
.fh-voice-skip:focus{left:0}

/* Breadcrumb */
.fh-voice-crumb{background:var(--fhv-ground2);border-bottom:1px solid var(--fhv-line);font-size:.86rem}
.fh-voice-crumb ol{list-style:none;margin:0;padding:12px 0;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.fh-voice-crumb li{display:flex;align-items:center;gap:10px}
.fh-voice-crumb li+li::before{content:"\203A";color:var(--fhv-teal);font-weight:700}
.fh-voice-crumb a{text-decoration:underline;text-underline-offset:3px;padding:6px 0;display:inline-block}

/* Hero */
.fh-voice-hero{background:var(--fhv-indigo);padding:clamp(32px,5vw,64px) 0 0}
.fh-voice-hero-grid{display:grid;grid-template-columns:1fr;gap:clamp(24px,4vw,48px);align-items:end}
@media(min-width:880px){.fh-voice-hero-grid{grid-template-columns:1.05fr .95fr}}
.fh-voice-title{font-weight:900;line-height:1.2;letter-spacing:-.01em;margin:0 0 .35em;
	font-size:clamp(2rem,1.3rem + 3.2vw,3.4rem)}
.fh-voice-eyebrow{font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin:0 0 .8em;
	font-size:clamp(.92rem,.84rem + .4vw,1.15rem)}
.fh-voice-eyebrow a{text-decoration:none;display:inline-flex;align-items:center;min-height:44px;border-bottom:2px solid transparent}
.fh-voice-eyebrow a:hover{border-bottom-color:var(--fhv-teal)}
.fh-voice-standfirst{font-weight:300;margin-bottom:1.6em;font-size:clamp(1.05rem,1rem + .45vw,1.25rem)}
.fh-voice-hero-media{padding-bottom:clamp(24px,4vw,48px)}
.fh-voice-hero-img{border-radius:var(--fhv-radius)}
.fh-voice-tags{list-style:none;margin:0 0 1.8em;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.fh-voice-tags a{display:inline-block;font-weight:700;font-size:.78rem;letter-spacing:.05em;
	text-transform:uppercase;padding:9px 16px;min-height:44px;line-height:26px;border-radius:40px;
	border:1.5px solid rgba(255,255,255,.4);text-decoration:none}
.fh-voice-tags a:hover{background:#fff;border-color:#fff}
.fh-voices-dir-hero{padding:clamp(40px,6vw,84px) 0}
.fh-voices-dir-intro{max-width:52ch}
.fh-voices-dir-intro .fh-voice-standfirst{margin-bottom:0}

/* Story body */
.fh-voice-body{padding:clamp(40px,6vw,72px) 0}
.fh-voice-byline{font-size:.86rem;border-bottom:1px solid var(--fhv-line);padding-bottom:1.2em;
	margin-bottom:2em;display:flex;flex-wrap:wrap;gap:6px 18px}
.fh-voice-byline span{display:inline-flex;align-items:center;gap:7px}
.fh-voice-byline span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--fhv-teal)}
.fh-voice-pull{margin:2.6em 0;padding-left:clamp(20px,3vw,32px);border-left:5px solid var(--fhv-magenta)}
.fh-voice-pull blockquote{margin:0;font-weight:700;line-height:1.35;font-size:clamp(1.25rem,1.1rem + .9vw,1.7rem)}
.fh-voice-pull cite{display:block;margin-top:.9em;font-style:normal;font-weight:500;font-size:.9rem}
.fh-voice-prose p{line-height:1.75;margin:0 0 1.15em}

/* Video facade */
.fh-voices-video{margin:2.8em 0}
.fh-voices-video-frame{position:relative;border-radius:var(--fhv-radius);overflow:hidden;
	background:var(--fhv-indigo-deep);box-shadow:var(--fhv-shadow);aspect-ratio:16/9}
.fh-voices-video-frame img,.fh-voices-video-frame iframe,.fh-voices-video-frame video{
	position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.fh-voices-poster{position:absolute;inset:0;width:100%;height:100%;padding:0;margin:0;border:0;
	background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}
.fh-voices-poster::after{content:"";position:absolute;inset:0;
	background:linear-gradient(180deg,rgba(26,20,69,.15),rgba(26,20,69,.55))}
.fh-voices-play{position:relative;z-index:2;width:76px;height:76px;border-radius:50%;
	background:var(--fhv-magenta);display:flex;align-items:center;justify-content:center;
	box-shadow:0 6px 24px rgba(26,20,69,.45);transition:transform .18s ease,background .18s ease}
.fh-voices-poster:hover .fh-voices-play,.fh-voices-poster:focus-visible .fh-voices-play{
	background:var(--fhv-magenta-deep);transform:scale(1.07)}
.fh-voices-play svg{width:28px;height:28px;margin-left:5px;fill:#fff}
.fh-voices-video-label{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 22px;font-weight:700;text-align:left}
.fh-voices-transcript{margin-top:1.2em;border:1px solid var(--fhv-line);border-radius:var(--fhv-radius);background:#fff}
.fh-voices-transcript summary{cursor:pointer;padding:16px 22px;min-height:48px;display:flex;align-items:center;font-weight:700}
.fh-voices-transcript-body{padding:0 22px 20px;font-size:.94rem}

/* Filters */
.fh-voices-filters{background:var(--fhv-ground2);border-bottom:1px solid var(--fhv-line);padding:clamp(24px,3.5vw,40px) 0}
.fh-voices-filter-group{margin-bottom:1.5em}
.fh-voices-legend{font-weight:700;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .7em}
.fh-voices-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.fh-voices-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 18px;
	border-radius:40px;border:2px solid var(--fhv-line);background:#fff;font-weight:700;font-size:.88rem;
	cursor:pointer;text-decoration:none}
.fh-voices-chip:hover{border-color:var(--fhv-indigo-soft)}
.fh-voices-chip[aria-pressed="true"]{background:var(--fhv-magenta);border-color:var(--fhv-magenta)}
.fh-voices-chip[aria-pressed="true"]:hover{background:var(--fhv-magenta-deep);border-color:var(--fhv-magenta-deep)}
.fh-voices-tick{display:none;font-size:.9em}
.fh-voices-chip[aria-pressed="true"] .fh-voices-tick{display:inline}
.fh-voices-count{font-weight:400;opacity:.75;font-size:.82em}
.fh-voices-filter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
	gap:12px 24px;margin-top:1.4em;padding-top:1.2em;border-top:1px solid var(--fhv-line)}
.fh-voices-status{margin:0;font-size:.95rem;font-weight:500}
.fh-voices-clear{font-weight:700;font-size:.9rem;text-decoration:underline;text-underline-offset:4px;
	display:inline-flex;align-items:center;min-height:44px}

/* Results, cards */
.fh-voices-results{padding:clamp(36px,5vw,64px) 0}
.fh-voices-preview-note{background:#FFF6E0;border:2px dashed #B7791F;border-radius:14px;padding:14px 18px;margin:0 0 1.8em;font-size:.92rem}
.fh-voices-grid,.fh-voices-rail{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:26px}
@media(min-width:620px){.fh-voices-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.fh-voices-grid,.fh-voices-rail{grid-template-columns:repeat(3,1fr)}}
.fh-voices-card{background:#fff;border:1px solid var(--fhv-line);border-radius:var(--fhv-radius);
	box-shadow:var(--fhv-shadow);overflow:hidden;display:flex;flex-direction:column;height:100%}
.fh-voices-card-media{position:relative;aspect-ratio:4/3;background:var(--fhv-ground2);border-bottom:1px solid var(--fhv-line)}
.fh-voices-card-img{width:100%;height:100%;object-fit:cover}
.fh-voices-badge{position:absolute;top:14px;left:14px;background:var(--fhv-indigo);font-weight:700;
	font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;padding:6px 13px;border-radius:40px}
.fh-voices-badge--video{background:var(--fhv-magenta)}
.fh-voices-badge--draft{left:auto;right:14px;background:#8A5A00}
.fh-voices-card-body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.fh-voices-card-kind{font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 .6em}
.fh-voices-card-name{font-weight:700;margin:0 0 .5em;font-size:clamp(1.1rem,1rem + .45vw,1.3rem)}
.fh-voices-card-quote{font-weight:700;font-size:1.02rem;line-height:1.4;margin:0 0 .8em}
.fh-voices-card-summary{font-size:.93rem;margin:0 0 1.2em}
.fh-voices-card-place{font-size:.82rem;margin:0 0 1.2em;display:inline-flex;align-items:center;gap:7px}
.fh-voices-card-place::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--fhv-teal);flex:0 0 7px}
.fh-voices-card-cta{margin:auto 0 0}
.fh-voices-card-cta a{font-weight:700;font-size:.95rem;text-decoration:underline;text-underline-offset:4px;
	display:inline-flex;align-items:center;gap:8px;min-height:44px}
.fh-voices-card-cta a::after{content:"\2192";text-decoration:none}

.fh-voices-more{text-align:center;margin-top:clamp(30px,4vw,48px)}
.fh-voices-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;
	padding:13px 36px;border-radius:40px;border:2px solid transparent;background:var(--fhv-magenta);
	font-weight:700;font-size:1rem;cursor:pointer}
.fh-voices-btn:hover{background:var(--fhv-magenta-deep)}
.fh-voices-more-note{font-size:.88rem;margin:1em 0 0}
.fh-voices-empty{background:#fff;border:1px solid var(--fhv-line);border-radius:var(--fhv-radius);
	padding:clamp(28px,4vw,48px);text-align:center;box-shadow:var(--fhv-shadow)}
.fh-voices-empty h2{margin:0 0 .5em;font-weight:700;font-size:clamp(1.15rem,1rem + .6vw,1.4rem)}
.fh-voices-empty p{max-width:52ch;margin-left:auto;margin-right:auto}
.fh-voices-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:0}

/* Related + share */
.fh-voice-related{background:var(--fhv-ground2);padding:clamp(40px,6vw,72px) 0;border-top:1px solid var(--fhv-line)}
.fh-voice-related h2{font-weight:900;margin:0 0 1em}
.fh-voice-share{background:var(--fhv-indigo);padding:clamp(44px,6vw,80px) 0}
.fh-voice-share *,.fh-voice-share *::before,.fh-voice-share *::after{box-sizing:border-box}
.fh-voice-share .fh-voice-shell{max-width:1120px;margin:0 auto;padding:0 20px}
.fh-voice-share-grid{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,52px);align-items:start}
@media(min-width:900px){.fh-voice-share-grid{grid-template-columns:.9fr 1.1fr}}
.fh-voice-share-intro h2{font-weight:900;margin:0 0 .5em}
.fh-voice-share-actions{margin-top:2em}
.fh-voice-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 32px;
	border-radius:40px;font-weight:700;text-decoration:none;border:2px solid transparent}
.fh-voice-btn--onDark{background:#fff;border-color:#fff}
.fh-voice-btn--onDark:hover{background:var(--fhv-teal);border-color:var(--fhv-teal)}
.fh-voice-btn--ghost{background:transparent;border-color:var(--fhv-indigo)}
.fh-voice-btn--ghost:hover{background:var(--fhv-indigo)}

/* Form */
.fh-voice-form-card{background:#fff;border-radius:var(--fhv-radius);padding:clamp(24px,4vw,44px);
	box-shadow:0 2px 6px rgba(26,20,69,.08),0 18px 44px rgba(26,20,69,.18)}
.fh-voice-form-card h3{font-weight:700;font-size:clamp(1.1rem,1rem + .5vw,1.3rem);line-height:1.25;margin:0 0 .5em}
.fhv-intro{font-size:.95rem;margin:0 0 1.6em}
.fhv-reassure{background:var(--fhv-ground2);border-left:4px solid var(--fhv-teal);border-radius:0 14px 14px 0;
	padding:16px 20px;margin:0 0 1.8em;font-size:.92rem}
.fhv-reassure p{margin:0}
.fhv-field{margin:0 0 1.3em}
.fhv-field label{display:block;font-weight:700;font-size:.92rem;margin:0 0 .45em}
.fhv-hint{display:block;font-weight:400;font-size:.84rem;margin-top:.2em}
.fhv-field input,.fhv-field select,.fhv-field textarea{width:100%;min-height:48px;padding:12px 16px;
	border:2px solid var(--fhv-line);border-radius:14px;background:var(--fhv-ivory);font-size:1rem;line-height:1.5;margin:0}
.fhv-field textarea{min-height:170px;resize:vertical}
.fhv-field input:focus-visible,.fhv-field select:focus-visible,.fhv-field textarea:focus-visible{
	outline:var(--fhv-focus);outline-offset:2px;border-color:var(--fhv-indigo-soft);background:#fff}
.fhv-field [aria-invalid="true"]{border-color:var(--fhv-magenta-deep)}
.fhv-check{display:flex;gap:14px;align-items:flex-start;margin:0 0 .6em}
.fhv-check input{width:26px;height:26px;min-height:26px;flex:0 0 26px;margin:3px 0 0;accent-color:var(--fhv-magenta)}
.fhv-check label{font-weight:400;font-size:.93rem;margin:0}
.fhv-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fhv-submit{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:13px 36px;
	margin-top:1em;border-radius:40px;border:2px solid transparent;background:var(--fhv-magenta);
	font-weight:700;font-size:1rem;cursor:pointer}
.fhv-submit:hover{background:var(--fhv-magenta-deep)}
.fhv-foot{font-size:.84rem;margin:1.4em 0 0}
.fhv-error{display:block;padding-top:6px;font-size:.86rem;font-weight:500}
.fhv-errors{background:#FCE4F1;border:2px solid var(--fhv-magenta);border-radius:14px;padding:16px 20px;margin:0 0 1.6em}
.fhv-errors-title{font-weight:700;margin:0 0 .4em}
.fhv-errors ul{margin:0;padding-left:1.2em}
.fhv-thanks h3{margin-top:0}

/* Inside the theme's own layout */
body.fh-voices-theme-layout article.type-fh_voice > header,
body.fh-voices-theme-layout .page-header,
body.fh-voices-theme-layout .entry-meta,
body.fh-voices-directory-page .page-header{display:none}
body.fh-voices-theme-layout .fh-voice,
body.fh-voices-directory-page .fh-voices-directory{
	width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:0;position:relative}
body.fh-voices-theme-layout,body.fh-voices-directory-page{overflow-x:hidden;overflow-x:clip}

@media(prefers-reduced-motion:reduce){
	.fh-voice *,.fh-voice *::before,.fh-voice *::after,.fh-voices-play{
		animation-duration:.01ms !important;animation-iteration-count:1 !important;
		transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* ==========================================================================
   GUARANTEE BLOCK — DO NOT DELETE, DO NOT REORDER
   Elementor's global kit styles headings, paragraphs and links with rules like
   `.elementor-kit-5 h1` and `.elementor-kit-5 a`, all (0,1,1). Several rules
   above are (0,1,1) too, so the winner would depend on which stylesheet loads
   last. Everything below carries a leading `body` to reach (0,1,2) or higher,
   so this plugin wins regardless of load order. Add new classes here as you
   create them, not afterwards.
   ========================================================================== */

/* Fonts */
body .fh-voice h1,body .fh-voice h2,body .fh-voice h3,body .fh-voice h4,
body .fh-voice-share h2,body .fh-voice-share h3,body .fh-voices-grid h3,body .fh-voices-rail h3,
body .fh-voice p.fh-voice-eyebrow,body .fh-voice .fh-voice-tags a,body .fh-voice p.fh-voices-legend,
body a.fh-voices-chip,body button.fh-voices-btn,body a.fh-voice-btn,body button.fhv-submit,
body .fh-voices-grid p.fh-voices-card-kind,body .fh-voices-grid p.fh-voices-card-quote,
body .fh-voices-rail p.fh-voices-card-kind,body .fh-voices-rail p.fh-voices-card-quote,
body .fh-voices-card-cta a,body .fh-voice-pull blockquote,body .fh-voices-badge,
body .fh-voices-transcript summary,body .fh-voices-video-label,body a.fh-voices-clear,
body .fh-voice-share .fhv-field label,body .fh-voice-form-card h3,body p.fhv-errors-title{
	font-family:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif}

body .fh-voice,body .fh-voice p,body .fh-voice li,body .fh-voice cite,body .fh-voice figcaption,
body .fh-voice-share p,body .fh-voices-grid p,body .fh-voices-rail p,
body .fh-voice-share input,body .fh-voice-share select,body .fh-voice-share textarea,
body .fh-voice-share .fhv-hint,body .fh-voice-share .fhv-check label{
	font-family:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif}

/* Hero — losing these makes text invisible on indigo */
body .fh-voice .fh-voice-hero .fh-voice-title{color:#fff}
body .fh-voice .fh-voice-hero .fh-voice-standfirst{color:var(--fhv-onDark)}
body .fh-voice .fh-voice-hero p.fh-voice-eyebrow,
body .fh-voice .fh-voice-hero .fh-voice-eyebrow a{color:var(--fhv-teal)}
body .fh-voice .fh-voice-hero .fh-voice-eyebrow a:hover{color:#fff}
body .fh-voice .fh-voice-hero .fh-voice-tags a{color:#fff}
body .fh-voice .fh-voice-hero .fh-voice-tags a:hover{color:var(--fhv-indigo)}

body .fh-voice .fh-voice-crumb a{color:var(--fhv-indigo)}
body .fh-voice .fh-voice-crumb a:hover{color:var(--fhv-magenta-deep)}
body .fh-voice .fh-voice-crumb li{color:var(--fhv-indigo-soft)}
body .fh-voice a.fh-voice-skip,body .fh-voice a.fh-voice-skip:hover{color:#fff}

body .fh-voice p.fh-voices-legend{color:var(--fhv-indigo-soft)}
body .fh-voices-filters a.fh-voices-chip{color:var(--fhv-indigo)}
body .fh-voices-filters a.fh-voices-chip[aria-pressed="true"],
body .fh-voices-filters a.fh-voices-chip[aria-pressed="true"]:hover{color:#fff}
body .fh-voice p.fh-voices-status{color:var(--fhv-indigo-deep)}
body .fh-voice a.fh-voices-clear{color:var(--fhv-magenta)}
body .fh-voice a.fh-voices-clear:hover{color:var(--fhv-magenta-deep)}
body .fh-voice p.fh-voices-preview-note{color:var(--fhv-indigo-deep)}

body .fh-voices-grid .fh-voices-card-name,body .fh-voices-rail .fh-voices-card-name{color:var(--fhv-indigo)}
body .fh-voices-grid p.fh-voices-card-kind,body .fh-voices-rail p.fh-voices-card-kind{color:var(--fhv-magenta)}
body .fh-voices-grid p.fh-voices-card-quote,body .fh-voices-rail p.fh-voices-card-quote{color:var(--fhv-indigo)}
body .fh-voices-grid p.fh-voices-card-summary,body .fh-voices-rail p.fh-voices-card-summary{color:var(--fhv-indigo-deep)}
body .fh-voices-grid p.fh-voices-card-place,body .fh-voices-rail p.fh-voices-card-place{color:var(--fhv-indigo-soft)}
body .fh-voices-grid .fh-voices-card-cta a,body .fh-voices-rail .fh-voices-card-cta a{color:var(--fhv-magenta)}
body .fh-voices-grid .fh-voices-card-cta a:hover,body .fh-voices-rail .fh-voices-card-cta a:hover{color:var(--fhv-magenta-deep)}
body .fh-voices-badge{color:#fff}

body .fh-voice button.fh-voices-btn,body .fh-voice button.fh-voices-btn:hover{color:#fff}
body .fh-voice a.fh-voice-btn--ghost{color:var(--fhv-indigo)}
body .fh-voice a.fh-voice-btn--ghost:hover{color:#fff}
body .fh-voice-share a.fh-voice-btn--onDark{color:var(--fhv-indigo)}
body .fh-voice-share a.fh-voice-btn--onDark:hover{color:var(--fhv-indigo-deep)}
body button.fh-voices-poster{color:#fff}
body .fh-voices-video-label{color:#fff}
body .fh-voices-transcript summary,body .fh-voices-transcript-body{color:var(--fhv-indigo-deep)}
body .fh-voices-transcript summary{color:var(--fhv-indigo)}

body .fh-voice .fh-voice-prose p,body .fh-voice .fh-voice-prose li{color:var(--fhv-indigo-deep)}
body .fh-voice .fh-voice-prose a{color:var(--fhv-magenta)}
body .fh-voice p.fh-voice-byline{color:var(--fhv-indigo-soft)}
body .fh-voice .fh-voice-pull blockquote{color:var(--fhv-indigo)}
body .fh-voice .fh-voice-pull cite{color:var(--fhv-indigo-soft)}
body .fh-voice .fh-voice-related h2,body .fh-voice .fh-voices-empty h2{color:var(--fhv-indigo)}
body .fh-voice .fh-voices-empty p{color:var(--fhv-indigo-deep)}

body .fh-voice-share .fh-voice-share-intro h2{color:#fff}
body .fh-voice-share .fh-voice-share-intro p{color:var(--fhv-onDark)}
body .fh-voice-share .fh-voice-form-card h3{color:var(--fhv-indigo)}
body .fh-voice-share .fh-voice-form-card p{color:var(--fhv-indigo-deep)}
body .fh-voice-share .fh-voice-form-card .fhv-field label{color:var(--fhv-indigo)}
body .fh-voice-share .fh-voice-form-card .fhv-hint,
body .fh-voice-share .fh-voice-form-card p.fhv-foot{color:var(--fhv-indigo-soft)}
body .fh-voice-share .fh-voice-form-card .fhv-check label{color:var(--fhv-indigo-deep)}
body .fh-voice-share .fh-voice-form-card .fhv-req{color:var(--fhv-magenta)}
body .fh-voice-share .fh-voice-form-card input,
body .fh-voice-share .fh-voice-form-card select,
body .fh-voice-share .fh-voice-form-card textarea{color:var(--fhv-indigo-deep)}
body .fh-voice-share .fh-voice-form-card button.fhv-submit,
body .fh-voice-share .fh-voice-form-card button.fhv-submit:hover{color:#fff}
body .fh-voice-share .fh-voice-form-card .fhv-error,
body .fh-voice-share .fh-voice-form-card p.fhv-errors-title{color:var(--fhv-magenta-deep)}
body .fh-voice-share .fh-voice-form-card a{color:var(--fhv-magenta)}
body .fh-voice-share .fh-voice-form-card a:hover{color:var(--fhv-magenta-deep)}

/* Contrast pairs verified against WCAG AA:
   #C4007A on #FFFFFF  6.48:1 | #FFFFFF on #C4007A  6.48:1
   #312B80 on #FBF9F6  11.9:1 | #FFFFFF on #312B80  11.6:1
   #EDEAF7 on #312B80   9.7:1 | #80BBB3 on #312B80   6.1:1
   #1A1445 on #FFFFFF  16.9:1 | #4A3FA0 on #F2EFEA   7.3:1
   Teal never carries body text. Re-verify if any token moves. */


/* ==========================================================================
   Theme-layout mode: suppress the theme's own rendering of the story.
   Themes print a post title, a date line and sometimes the featured image
   above the content. The story page supplies all three itself, so the
   duplicates come out.

   The explicit selectors cover the common markup. The :has() rule is the
   sweeper for everything else: inside the post container, hide any block that
   does NOT contain the plugin's own markup. Wrapped in @supports, so browsers
   without :has() simply ignore it and nothing breaks.
   ========================================================================== */

body.fh-voices-theme-layout article.type-fh_voice > header,
body.fh-voices-theme-layout .entry-header,
body.fh-voices-theme-layout .post-header,
body.fh-voices-theme-layout .entry-meta,
body.fh-voices-theme-layout .posted-on,
body.fh-voices-theme-layout .post-thumbnail,
body.fh-voices-theme-layout .post-date,
body.fh-voices-theme-layout .entry-title,
body.fh-voices-theme-layout .page-header{display:none !important}

@supports selector(:has(*)) {
	body.fh-voices-theme-layout main > *:not(:has(.fh-voice)),
	body.fh-voices-theme-layout article > *:not(:has(.fh-voice)),
	body.fh-voices-theme-layout .entry > *:not(:has(.fh-voice)),
	body.fh-voices-theme-layout .post > *:not(:has(.fh-voice)){display:none !important}
}
