/*
Theme Name: Working Minds Psychology
Theme URI: https://amplifiedmarketing.com.au/
Author: Amplified Marketing
Description: Amplified starter block theme. Colours and fonts come from site.json (npm run build). Design lives in theme.json and this file; page content lives in the editor.
Version: 0.1.0
Requires at least: 6.9
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: amp-theme
*/

/*
 * How this file works
 * - Colours are role tokens from site.json: base, surface, soft, primary, primary-dark, text.
 *   Never write a brand hex here. Shades are mixed from the roles below.
 * - Every class starts with amp-. Sections are .amp-section plus a background: .is-base,
 *   .is-surface, .is-soft or .is-dark.
 * - Per-client design changes go at the bottom, under "client skin".
 */

/* ---------- tokens mixed from the brand roles ---------- */
:root {
	--amp-base: var(--wp--preset--color--base);
	--amp-surface: var(--wp--preset--color--surface);
	--amp-soft: var(--wp--preset--color--soft);
	--amp-primary: var(--wp--preset--color--primary);
	--amp-primary-dark: var(--wp--preset--color--primary-dark);
	--amp-text: var(--wp--preset--color--text);
	--amp-line: color-mix(in srgb, var(--amp-text) 13%, var(--amp-base));
	--amp-muted: color-mix(in srgb, var(--amp-text) 74%, var(--amp-base));
	--amp-on-dark: color-mix(in srgb, var(--amp-base) 84%, var(--amp-primary-dark));
	--amp-section-y: clamp(3.5rem, 8vw, 5.25rem);
	--amp-wide: 1180px;
}

body { -webkit-font-smoothing: antialiased; }
strong, b { font-weight: 600; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
:where(.wp-site-blocks) :focus-visible { outline: 2px solid var(--amp-primary); outline-offset: 3px; }
img { height: auto; max-width: 100%; }

/* ---------- section shells ---------- */
.amp-section { padding-block: var(--amp-section-y); }
.amp-section.is-base { background: var(--amp-base); }
.amp-section.is-surface { background: var(--amp-surface); }
.amp-section.is-soft { background: var(--amp-soft); }
.amp-section.is-dark { background: var(--amp-primary-dark); color: var(--amp-on-dark); }
.amp-section.is-dark :where(h1, h2, h3, h4) { color: var(--amp-base); }
.amp-section.is-dark a:not(.wp-element-button) { color: var(--amp-soft); }
.amp-section > * + * { margin-block-start: 1.25rem; }
.amp-section > h2 + p { margin-block-start: 0.75rem; }
/* Sections and template sections sit flush against each other. */
.wp-block-post-content > .alignfull, main.wp-block-group > * + * { margin-block-start: 0 !important; }

/* ---------- text helpers ---------- */
.amp-measure { max-width: 68ch; }
.amp-section > .amp-measure { margin-inline-start: max(0px, calc((100% - var(--amp-wide)) / 2)) !important; margin-inline-end: auto !important; }
.amp-small { font-size: var(--wp--preset--font-size--small); color: var(--amp-muted); line-height: 1.7; }
.amp-lede { font-size: var(--wp--preset--font-size--large); line-height: 1.65; color: var(--amp-muted); }
.amp-eyebrow { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--amp-primary); margin-block-end: -0.5rem !important; }
.amp-arrow a, a.amp-arrow { font-weight: 600; text-decoration: none; }
.amp-arrow a::after { content: " \2192"; }
.amp-arrow a:hover { text-decoration: underline; }
.amp-placeholder { border: 2px dashed var(--amp-line); padding: 1.5rem; color: var(--amp-muted); font-size: var(--wp--preset--font-size--small); }

/* ---------- header ---------- */
.amp-utility { background: var(--amp-primary-dark); color: var(--amp-on-dark); font-size: 0.8125rem; padding-block: 0.5rem; }
.amp-utility p { margin: 0; text-align: right; }
.amp-utility a { color: var(--amp-base); text-decoration: none; }
.amp-utility a:hover { text-decoration: underline; }
.amp-header { background: var(--amp-base); border-bottom: 1px solid var(--amp-line); position: sticky; top: 0; z-index: 50; padding-block: 0.75rem; }
.amp-header__bar { gap: 1.5rem; }
.amp-brand { gap: 0.75rem; }
.amp-brand .wp-block-site-title { margin: 0; font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; font-weight: 600; }
.amp-brand .wp-block-site-title a { color: var(--amp-primary-dark); text-decoration: none; }
.amp-nav { font-size: 0.9375rem; gap: 1.5rem !important; }
.amp-nav a { color: var(--amp-text); text-decoration: none; }
.amp-nav a:hover { color: var(--amp-primary); }
@media (max-width: 781px) {
	.amp-utility p { text-align: center; }
	.amp-hide-sm, .amp-header__cta { display: none !important; }
}

/* ---------- hero ---------- */
.amp-hero .wp-block-columns { gap: clamp(2rem, 5vw, 3.5rem); }
.amp-hero h1 { margin-block: 0.75rem 1.25rem; }
.amp-hero .wp-block-image img, .amp-split .wp-block-image img { border-radius: 4px; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.amp-hero .wp-block-buttons, .amp-page-hero .wp-block-buttons { margin-block-start: 2rem !important; }
@media (max-width: 781px) { .amp-hero .wp-block-image img, .amp-split .wp-block-image img { aspect-ratio: 16 / 10; } }

/* ---------- trust bar ---------- */
.amp-trust { border-block: 1px solid var(--amp-line); padding-block: 0 !important; }
.amp-trust .wp-block-columns { gap: 0 !important; margin: 0; }
.amp-trust .wp-block-column { padding: 1.25rem 1.375rem; border-left: 1px solid var(--amp-line); }
.amp-trust .wp-block-column:last-child { border-right: 1px solid var(--amp-line); }
.amp-trust p { margin: 0; font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--amp-muted); }
.amp-trust p strong { color: var(--amp-primary-dark); }
@media (max-width: 781px) {
	.amp-trust .wp-block-column { border-left: 0; border-right: 0 !important; border-bottom: 1px solid var(--amp-line); }
	.amp-trust .wp-block-column:last-child { border-bottom: 0; }
}

/* ---------- card grids ---------- */
.amp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.amp-grid > * { margin: 0 !important; }
.amp-card { position: relative; background: var(--amp-surface); border: 1px solid var(--amp-line); border-radius: 4px; padding: 1.75rem; display: flex; flex-direction: column; gap: 0.625rem; transition: border-color 0.2s ease, background-color 0.2s ease; }
.is-surface .amp-card { background: var(--amp-base); }
.amp-card:hover { border-color: var(--amp-primary); }
.amp-card > * { margin: 0 !important; }
.amp-card h3 a { color: inherit; text-decoration: none; }
.amp-card h3 a::after { content: ""; position: absolute; inset: 0; }
.amp-card p { font-size: var(--wp--preset--font-size--small); color: var(--amp-muted); line-height: 1.7; }
.amp-card .amp-more { margin-top: auto !important; font-weight: 600; color: var(--amp-primary); }
.amp-card .amp-more::after { content: " \2192"; }
@media (max-width: 900px) { .amp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .amp-grid { grid-template-columns: 1fr; } }

/* ---------- split ---------- */
.amp-split .wp-block-columns { gap: clamp(2rem, 5vw, 3.5rem); }

/* ---------- steps ---------- */
.amp-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.25rem); }
.amp-steps > * { margin: 0 !important; }
.amp-step { background: var(--amp-surface); border-top: 3px solid var(--amp-primary); padding: 1.375rem; }
.amp-step > * { margin: 0 0 0.5rem !important; }
.amp-step .amp-num { font-family: var(--wp--preset--font-family--heading); font-size: 2rem; line-height: 1; color: var(--amp-primary); }
.amp-step p:not(.amp-num) { font-size: var(--wp--preset--font-size--small); color: var(--amp-muted); }
@media (max-width: 781px) { .amp-steps { grid-template-columns: 1fr; } }

/* ---------- team (query loop of practitioners) ---------- */
.amp-team .wp-block-post-template { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem 1.5rem; list-style: none; padding: 0; margin: 0; }
.amp-team .wp-block-post-template > li { margin: 0; }
.amp-team .wp-block-post-featured-image { width: 160px; height: 160px; margin: 0 0 0.875rem; }
.amp-team .wp-block-post-featured-image img { width: 160px !important; height: 160px !important; aspect-ratio: 1 !important; object-fit: cover !important; border-radius: 50%; }
.amp-team .wp-block-post-title { font-family: var(--wp--preset--font-family--body); font-size: 1rem; font-weight: 600; line-height: 1.4; margin: 0; }
.amp-team .wp-block-post-title a { color: var(--amp-primary-dark); text-decoration: none; }
.amp-team .wp-block-post-title a:hover { color: var(--amp-primary); text-decoration: underline; }
.amp-team .wp-block-post-excerpt { font-size: 0.875rem; color: var(--amp-muted); margin: 0.25rem 0 0; }
.amp-team .wp-block-post-excerpt__excerpt { margin: 0; }
@media (max-width: 900px) { .amp-team .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- locations ---------- */
.amp-location-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: clamp(1.25rem, 3vw, 2rem); }
.amp-location-grid > * { margin: 0 !important; }
.amp-location { background: var(--amp-base); border: 1px solid var(--amp-line); padding: 1.75rem; }
.amp-location > * { margin: 0 0 0.625rem !important; }
.amp-location iframe { width: 100%; height: 240px; border: 0; display: block; margin-block-end: 1rem; }

/* ---------- closing CTA ---------- */
.amp-cta { text-align: center; }
.amp-cta p { max-width: 62ch; margin-inline: auto; }
.amp-cta .amp-cta-buttons { justify-content: center; }

/* ---------- articles, FAQs, ticks ---------- */
.amp-article h2 { margin-block: 2.75rem 0.875rem; font-size: clamp(1.7rem, 3.4vw, 2.2rem); }
.amp-article h3 { margin-block: 2.25rem 0.5rem; }
.amp-article > h2:first-child, .amp-free > h2:first-child, .amp-article .wp-block-post-content > h2:first-child { margin-block-start: 0; }
.amp-free > * + *, .amp-article .wp-block-post-content > * + * { margin-block-start: 1.1rem; }
.amp-article .wp-block-post-content > h2:not(:first-child), .amp-free > h2:not(:first-child) { margin-block-start: 2.75rem; }
.amp-article .wp-block-post-content > h3:not(:first-child), .amp-free > h3:not(:first-child) { margin-block-start: 2.25rem; }
.amp-funding h2 { margin-block-start: 0 !important; }
.amp-ticks { list-style: none; padding: 0; margin-block: 1rem 1.5rem; }
.amp-ticks li { position: relative; padding: 0.45rem 0 0.45rem 1.75rem; border-bottom: 1px solid var(--amp-line); }
.amp-ticks li::before { content: ""; position: absolute; left: 0.25rem; top: 1.1rem; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--amp-soft); box-shadow: inset 0 0 0 2px var(--amp-primary); }
.wp-block-details { border-bottom: 1px solid var(--amp-line); padding-block: 1.125rem; margin-block: 0 !important; }
.amp-questions > .wp-block-details:first-child, h2 + .wp-block-details { border-top: 1px solid var(--amp-line); margin-block-start: 1.5rem !important; }
.wp-block-details summary { cursor: pointer; font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; color: var(--amp-primary-dark); list-style: none; position: relative; padding-right: 2rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 0.25rem; top: 0; font-family: var(--wp--preset--font-family--body); font-size: 1.5rem; line-height: 1.2; color: var(--amp-primary); }
.wp-block-details[open] summary::after { content: "\2212"; }
.wp-block-details > p { margin-block: 0.75rem 0; color: var(--amp-muted); }
.amp-article .wp-block-quote { border-left: 3px solid var(--amp-soft); padding: 0.25rem 0 0.25rem 1.5rem; margin-inline: 0; }
.amp-article .wp-block-quote p { font-family: var(--wp--preset--font-family--heading); font-size: 1.3rem; line-height: 1.5; color: var(--amp-primary-dark); }

/* ---------- inner page heads ---------- */
.amp-page-hero { padding-block: clamp(3rem, 7vw, 4.75rem) clamp(2.75rem, 6vw, 4rem); border-bottom: 1px solid var(--amp-line); }
.amp-page-hero > * { max-width: 46rem; margin-inline-start: max(0px, calc((100% - var(--amp-wide)) / 2)) !important; margin-inline-end: auto !important; }
.amp-page-hero h1 { margin-block: 0.75rem 1.25rem !important; }
.amp-page-hero .wp-block-post-excerpt__excerpt { margin: 0; }
.amp-page-head { background: var(--amp-surface); padding-block: clamp(3rem, 7vw, 4.5rem) clamp(2rem, 5vw, 3rem); border-bottom: 1px solid var(--amp-line); }
.amp-page-head h1 { margin: 0; }
.amp-prose { padding-block: clamp(2.5rem, 6vw, 4rem); }
.amp-prose h2 { margin-block: 2.5rem 0.75rem; }

/* ---------- location pages ---------- */
.amp-clinic .wp-block-columns { gap: clamp(2rem, 5vw, 3.5rem); }
.amp-clinic-card { background: var(--amp-surface); border: 1px solid var(--amp-line); padding: 1.75rem; }
.amp-clinic-card > * { margin: 0 0 0.75rem; }
.amp-clinic-card iframe { width: 100%; height: 260px; border: 0; display: block; margin-block-end: 1.25rem; }
.amp-clinic-card h2 { font-size: 1.375rem; }

/* ---------- practitioner bios ---------- */
.amp-person .wp-block-columns { gap: clamp(2rem, 5vw, 4rem); }
.amp-person .wp-block-post-featured-image img { border-radius: 50%; aspect-ratio: 1; object-fit: cover; max-width: 280px; }
.amp-person .amp-role { color: var(--amp-muted); font-size: var(--wp--preset--font-size--large); }
.amp-person .wp-block-post-excerpt__excerpt { margin: 0; }
.amp-person-cta { background: var(--amp-base); border-top: 3px solid var(--amp-primary); padding: 1.5rem; margin-block-start: 2rem !important; }
.amp-person-cta > * { margin: 0 0 0.75rem !important; }

/* ---------- embeds (booking, forms) ---------- */
.amp-embed iframe { width: 100%; min-height: 600px; border: 1px solid var(--amp-line); background: var(--amp-base); }

/* ---------- footer ---------- */
.amp-crisis { background: var(--amp-surface); border-top: 1px solid var(--amp-line); padding-block: 1.375rem; font-size: 0.875rem; line-height: 1.7; }
.amp-crisis p { margin: 0; }
.amp-crisis a { color: var(--amp-text); }
.amp-footer { background: var(--amp-primary-dark); color: var(--amp-on-dark); padding-block: 3.25rem 1.625rem; font-size: 0.9375rem; }
.amp-footer .wp-block-columns { gap: 2.25rem; }
.amp-footer h2 { font-family: var(--wp--preset--font-family--body); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--amp-base); margin: 0 0 0.75rem; }
.amp-footer .amp-footer__title { font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; letter-spacing: 0; text-transform: none; }
.amp-footer p { margin: 0 0 0.5rem; line-height: 1.8; }
.amp-footer a { color: var(--amp-base); text-decoration: none; }
.amp-footer a:hover { text-decoration: underline; }
.amp-linklist { list-style: none; padding: 0; margin: 0; line-height: 1.9; }
.amp-legal { border-top: 1px solid color-mix(in srgb, var(--amp-base) 18%, transparent); margin-block-start: 2.25rem !important; padding-top: 1.125rem; font-size: 0.8125rem; opacity: 0.8; }

/* ---------- client skin (per-client design changes go below this line) ---------- */

/* Coming-soon holding page (30 Oct 2026). The front page template has no header or footer while this is live;
   put them back (git: templates/front-page.html) when the full home page replaces it. */
.amp-soon { position: relative; isolation: isolate; overflow: hidden; display: grid; align-content: center; min-height: min(78svh, 46rem); text-align: center; }
.amp-soon::before, .amp-soon::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; aspect-ratio: 1; }
.amp-soon::before { width: min(52vw, 34rem); right: -12%; top: -24%; background: var(--amp-soft); }
.amp-soon::after { width: min(32vw, 20rem); left: -8%; bottom: -22%; background: color-mix(in srgb, var(--wp--preset--color--accent) 12%, var(--amp-base)); }
.amp-soon .wp-block-site-logo { margin-block: 0 1.75rem; }
.amp-soon .wp-block-site-logo img { height: auto; max-width: 100%; }
.amp-soon .amp-eyebrow { color: var(--wp--preset--color--accent); }
.amp-soon h1 { margin-block: 0.5rem 1.25rem; }
.amp-soon .wp-block-buttons { margin-block-start: 1.75rem; }
.amp-soon-help { text-align: center; padding-block: 2.25rem; }
.amp-soon-help p { margin: 0; line-height: 1.7; }
.amp-soon-help .amp-legal { border-top: 0; margin-block-start: 1.25rem !important; padding-top: 0; }
@media (max-width: 600px) { .amp-soon { min-height: 0; } }
