/* Marc Graham Author — component styles (tokens come from theme.json) */

:root {
	--mg-radius: 6px;
	--mg-border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	--mg-shadow: 0 1px 2px rgba(28, 34, 48, .05), 0 8px 24px -12px rgba(28, 34, 48, .18);
	/* Original azulejo-inspired tile (not a reproduction of any historic pattern) */
	--mg-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' fill='%23F7F3EA'/%3E%3Cg fill='none' stroke='%231E4F8F' stroke-width='2'%3E%3Cpath d='M32 6 L40 24 L58 32 L40 40 L32 58 L24 40 L6 32 L24 24 Z'/%3E%3Ccircle cx='32' cy='32' r='6'/%3E%3Cpath d='M0 0 Q16 8 0 16 M64 0 Q48 8 64 16 M0 64 Q16 56 0 48 M64 64 Q48 56 64 48'/%3E%3C/g%3E%3Cg fill='%231E4F8F'%3E%3Ccircle cx='32' cy='32' r='2'/%3E%3Ccircle cx='0' cy='32' r='3'/%3E%3Ccircle cx='64' cy='32' r='3'/%3E%3Ccircle cx='32' cy='0' r='3'/%3E%3Ccircle cx='32' cy='64' r='3'/%3E%3C/g%3E%3C/svg%3E");
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { height: auto; }

/* Skip link visible on focus */
.skip-link:focus { background: var(--wp--preset--color--surface); padding: .5rem 1rem; z-index: 1000; }

/* ---------- Header ---------- */
.mg-header { border-bottom: var(--mg-border); background: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent); backdrop-filter: saturate(1.2) blur(8px); }
.mg-header .wp-block-site-tagline { margin: 0; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.mg-header .wp-block-navigation .wp-block-navigation-item.mg-nav-cta a {
	background: var(--wp--preset--color--terracotta); color: var(--wp--preset--color--surface);
	padding: .5rem .95rem; border-radius: 4px; text-decoration: none; font-weight: 600;
}
.mg-header .wp-block-navigation .wp-block-navigation-item.mg-nav-cta a:hover { background: #8d3f1d; text-decoration: none; }

/* ---------- Decorative tile band ---------- */
.mg-tile-band { height: 18px; background-image: var(--mg-tile); background-size: 36px 36px; opacity: .9; margin: 0 !important; }
.mg-tile-edge { position: relative; }
.mg-tile-edge::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 14px; background-image: var(--mg-tile); background-size: 28px 28px; border-radius: var(--mg-radius) 0 0 var(--mg-radius); }

/* ---------- Typography helpers ---------- */
.mg-eyebrow { font-family: var(--wp--preset--font-family--body); font-size: .8125rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--terracotta); margin-bottom: .25rem; }
.mg-eyebrow.is-blue { color: var(--wp--preset--color--azulejo); }
.mg-lede { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--muted); line-height: 1.5; }
.mg-fineprint { font-size: .8125rem; color: var(--wp--preset--color--muted); }
.mg-edit-note { background: #FFF4D6; border: 1px dashed var(--wp--preset--color--gold); padding: .15rem .4rem; border-radius: 3px; font-size: .85em; }

/* ---------- Cards / doors ---------- */
.mg-card { background: var(--wp--preset--color--surface); border: var(--mg-border); border-radius: var(--mg-radius); box-shadow: var(--mg-shadow); }
.mg-door { height: 100%; display: flex; flex-direction: column; transition: transform .15s ease, box-shadow .15s ease; }
.mg-door:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(28,34,48,.06), 0 16px 32px -16px rgba(28,34,48,.28); }
.mg-door > .wp-block-buttons { margin-top: auto; }
.mg-door h3 { margin-top: .25rem; }
.wp-block-columns.mg-equal > .wp-block-column { display: flex; }
.wp-block-columns.mg-equal > .wp-block-column > * { flex: 1; }

/* ---------- Buttons ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link { border: 2px solid currentColor; background: transparent; color: var(--wp--preset--color--azulejo); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--azulejo); color: var(--wp--preset--color--surface); }
.wp-block-button.mg-btn-warm > .wp-block-button__link { background: var(--wp--preset--color--terracotta); }
.wp-block-button.mg-btn-warm > .wp-block-button__link:hover { background: #8d3f1d; }
.has-azulejo-deep-background-color .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--surface); }
.has-azulejo-deep-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--azulejo-deep); }

/* ---------- Signup form ---------- */
.mg-signup { display: grid; gap: .75rem; max-width: 560px; }
.mg-signup__row { display: flex; flex-wrap: wrap; gap: .6rem; }
.mg-signup input[type="email"], .mg-signup input[type="text"] {
	flex: 1 1 200px; min-width: 0; font: inherit; font-size: 1rem; padding: .8rem 1rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 4px; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast);
}
.mg-signup input:focus { outline: 2px solid var(--wp--preset--color--azulejo); outline-offset: 1px; border-color: transparent; }
.mg-signup button {
	font: inherit; font-weight: 600; font-size: 1rem; cursor: pointer; border: 0; border-radius: 4px;
	padding: .8rem 1.4rem; background: var(--wp--preset--color--azulejo); color: var(--wp--preset--color--surface);
}
.mg-signup button:hover { background: var(--wp--preset--color--azulejo-deep); }
.mg-signup.is-warm button { background: var(--wp--preset--color--terracotta); }
.mg-signup.is-warm button:hover { background: #8d3f1d; }
.mg-signup__consent { font-size: .8125rem; color: var(--wp--preset--color--muted); margin: 0; line-height: 1.45; }
.mg-signup__consent a { color: inherit; }
.mg-signup__hp { position: absolute !important; left: -9999px !important; }
.mg-signup__notice { background: #FFF4D6; border: 1px dashed var(--wp--preset--color--gold); padding: .75rem 1rem; border-radius: 4px; font-size: .9rem; }
.has-azulejo-deep-background-color .mg-signup__consent, .has-contrast-background-color .mg-signup__consent { color: color-mix(in srgb, var(--wp--preset--color--surface) 75%, transparent); }
.has-azulejo-deep-background-color .mg-signup button { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--contrast); }
.has-azulejo-deep-background-color .mg-signup button:hover { background: #e0ae45; }

/* ---------- Books ---------- */
.mg-shelf { margin-block: var(--wp--preset--spacing--40); }
.mg-series { margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); }
.mg-series__head { display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap; border-bottom: var(--mg-border); padding-bottom: .5rem; margin-bottom: 1.25rem; }
.mg-series__head h3 { margin: 0; }
.mg-series__head p { margin: 0; color: var(--wp--preset--color--muted); font-size: .95rem; }
.mg-book-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: clamp(1rem, 3vw, 2rem); list-style: none; padding: 0; margin: 0; }
.mg-book-card { display: flex; flex-direction: column; gap: .5rem; }
.mg-book-card a { text-decoration: none; color: inherit; }
.mg-book-card__cover { aspect-ratio: 2 / 3; border-radius: 3px; overflow: hidden; box-shadow: 0 2px 4px rgba(28,34,48,.1), 0 14px 28px -14px rgba(28,34,48,.45); transition: transform .15s ease; background: var(--wp--preset--color--sand); }
.mg-book-card a:hover .mg-book-card__cover { transform: translateY(-3px); }
.mg-book-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mg-book-card__title { font-family: var(--wp--preset--font-family--display); font-size: 1.125rem; font-weight: 600; line-height: 1.25; margin: .35rem 0 0; }
.mg-book-card__meta { font-size: .875rem; color: var(--wp--preset--color--muted); margin: 0; }
.mg-badge { display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: .2rem .5rem; border-radius: 3px; background: var(--wp--preset--color--terracotta); color: var(--wp--preset--color--surface); }
.mg-badge.is-soon { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--contrast); }

/* Typographic fallback cover when no featured image is set */
.mg-cover-fallback { width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: 12% 10%; box-sizing: border-box; color: var(--wp--preset--color--surface); background: var(--wp--preset--color--azulejo-deep); position: relative; text-align: center; }
.mg-cover-fallback::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 22%; background-image: var(--mg-tile); background-size: 30px 30px; opacity: .9; }
.mg-cover-fallback.tone-1 { background: #5B2A1A; }
.mg-cover-fallback.tone-2 { background: #243B2F; }
.mg-cover-fallback.tone-3 { background: #3B2F52; }
.mg-cover-fallback.tone-4 { background: #1C2230; }
.mg-cover-fallback__title { font-family: var(--wp--preset--font-family--display); font-size: clamp(1rem, 2.2vw, 1.5rem); line-height: 1.1; font-weight: 600; }
.mg-cover-fallback__author { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; opacity: .85; margin-bottom: 26%; position: relative; z-index: 1; }

/* Single book */
.mg-book-hero__cover .mg-book-card__cover { max-width: 340px; }
.mg-book-meta { display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1rem; font-size: .9375rem; margin: 1.5rem 0; padding: 1rem 0; border-block: var(--mg-border); }
.mg-book-meta dt { color: var(--wp--preset--color--muted); }
.mg-book-meta dd { margin: 0; }
.mg-buy { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; padding: 0; list-style: none; }
.mg-buy a { display: inline-block; padding: .6rem 1rem; border-radius: 4px; text-decoration: none; font-weight: 600; font-size: .9375rem; border: 2px solid var(--wp--preset--color--azulejo); color: var(--wp--preset--color--azulejo); }
.mg-buy li:first-child a { background: var(--wp--preset--color--azulejo); color: var(--wp--preset--color--surface); }
.mg-buy a:hover { background: var(--wp--preset--color--azulejo-deep); border-color: var(--wp--preset--color--azulejo-deep); color: var(--wp--preset--color--surface); }
.mg-series-nav { font-size: .9375rem; color: var(--wp--preset--color--muted); }

/* ---------- Child-page / resource cards ---------- */
.mg-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; list-style: none; padding: 0; margin: 0; }
.mg-cards li { background: var(--wp--preset--color--surface); border: var(--mg-border); border-radius: var(--mg-radius); overflow: hidden; display: flex; flex-direction: column; }
.mg-cards img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.mg-cards__body { padding: 1rem 1.25rem 1.25rem; }
.mg-cards h3 { font-size: 1.125rem; margin: 0 0 .35rem; }
.mg-cards h3 a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.mg-cards h3 a:hover { text-decoration: underline; }
.mg-cards p { margin: 0; font-size: .9375rem; color: var(--wp--preset--color--muted); }

/* Resource page gated box */
.mg-resource-box { border: 2px solid var(--wp--preset--color--azulejo); }

/* ---------- Footer ---------- */
.mg-footer a { color: inherit; }
.mg-footer .wp-block-navigation a { text-decoration: none; }
.mg-footer .wp-block-navigation a:hover { text-decoration: underline; }

/* ---------- Responsive ---------- */
@media (max-width: 781px) {
	.mg-hide-mobile { display: none !important; }
	.mg-book-meta { grid-template-columns: 1fr; }
	.mg-book-meta dt { margin-top: .5rem; }
}

/* ---------- Block style variations & colour contexts ---------- */
.is-style-mg-card { background: var(--wp--preset--color--surface); border: var(--mg-border); border-radius: var(--mg-radius); box-shadow: var(--mg-shadow); }
.wp-block-button.is-style-mg-warm > .wp-block-button__link { background: var(--wp--preset--color--terracotta); color: var(--wp--preset--color--surface); }
.wp-block-button.is-style-mg-warm > .wp-block-button__link:hover { background: #8d3f1d; }
.has-text-color :where(h1, h2, h3, h4, h5, h6) { color: inherit; }
.has-azulejo-deep-background-color .mg-eyebrow, .has-contrast-background-color .mg-eyebrow { color: var(--wp--preset--color--gold); }
.mg-tile-edge { padding-left: calc(var(--wp--preset--spacing--40) + 14px) !important; }
.mg-author-photo img, .mg-magnet-cover img { border-radius: var(--mg-radius); box-shadow: var(--mg-shadow); }
.mg-magnet-cover { max-width: 360px; margin-inline: auto; }
.wp-block-columns { gap: var(--wp--preset--spacing--40); }
.wp-block-columns .wp-block-column > .wp-block-image:only-child { margin: 0; }
mark.mg-edit-note { color: #5b4300; }
.mg-author-photo { max-width: 420px; margin-inline-start: auto !important; }
.alignfull + .alignfull { margin-block-start: 0 !important; }
.wp-site-blocks > footer { margin-block-start: 0 !important; }
.wp-site-blocks > main + * { margin-block-start: var(--wp--preset--spacing--50); }
.mg-door > :first-child { margin-top: 0; }
.wp-site-blocks > header:has(.mg-header) { position: sticky; top: 0; z-index: 50; }
.admin-bar .wp-site-blocks > header:has(.mg-header) { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) {
	.mg-book-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.mg-cover-fallback__title { font-size: 1rem; }
	.mg-author-photo { max-width: 280px; margin-inline: auto !important; }
	.mg-magnet-cover { max-width: 220px; }
	.mg-book-hero__cover .mg-book-card__cover { max-width: 240px; margin-inline: auto; }
}

/* ---------- v2: Journal, notify, gold button, submenu, praise ---------- */
.wp-block-button.mg-btn-gold > .wp-block-button__link { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--contrast); }
.wp-block-button.mg-btn-gold > .wp-block-button__link:hover { background: #e0ae45; }

.mg-signup__status { margin: 0; padding: .6rem .85rem; border-radius: 4px; font-size: .9375rem; }
.mg-signup__status.is-ok { background: #E6F2E8; color: #1F5130; }
.mg-signup__status.is-error { background: #FBE9E4; color: #7A2E14; }
.has-azulejo-deep-background-color .mg-signup__status.is-ok { background: rgba(255,255,255,.12); color: var(--wp--preset--color--surface); }

.mg-notify { margin: 1.25rem 0; padding: 1rem 1.25rem; border: var(--mg-border); border-left: 4px solid var(--wp--preset--color--gold); border-radius: var(--mg-radius); background: var(--wp--preset--color--surface); }
.mg-notify p { margin-top: 0; }

.mg-book-gallery { margin-top: var(--wp--preset--spacing--40); }
.mg-book-gallery img { border-radius: var(--mg-radius); box-shadow: 0 2px 4px rgba(28,34,48,.08), 0 14px 28px -18px rgba(28,34,48,.4); }

.mg-praise { margin-top: var(--wp--preset--spacing--50); }
.mg-praise .wp-block-quote { margin: 0 0 1.25rem; }
.mg-praise .wp-block-quote cite { display: block; margin-top: .4rem; font-size: .875rem; font-style: normal; color: var(--wp--preset--color--muted); }
@media (min-width: 900px) { .mg-praise { columns: 2; column-gap: 2.5rem; } .mg-praise h2 { column-span: all; } .mg-praise .wp-block-quote { break-inside: avoid; } }

.mg-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 var(--wp--preset--spacing--40); }
.mg-chips a { display: inline-block; padding: .35rem .85rem; border: 1px solid var(--wp--preset--color--sand); border-radius: 999px; background: var(--wp--preset--color--surface); font-size: .875rem; font-weight: 600; text-decoration: none; color: var(--wp--preset--color--contrast); }
.mg-chips a:hover { border-color: var(--wp--preset--color--azulejo); color: var(--wp--preset--color--azulejo); }
.mg-chips a[aria-current="page"] { background: var(--wp--preset--color--azulejo); border-color: var(--wp--preset--color--azulejo); color: var(--wp--preset--color--surface); }

.mg-journal-grid { gap: 2rem 1.5rem !important; }
.mg-journal-card .wp-block-post-featured-image img { border-radius: var(--mg-radius); }
.mg-journal-card .wp-block-post-title { margin: 0; line-height: 1.25; }
.mg-journal-card .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.mg-journal-card .wp-block-post-title a:hover { text-decoration: underline; }
.mg-journal-card .wp-block-post-excerpt { margin: 0; color: var(--wp--preset--color--muted); }
.mg-journal-card .wp-block-post-excerpt__more-text { display: none; }
.wp-block-post-terms.mg-eyebrow a { text-decoration: none; color: inherit; }
.mg-post-cards .mg-eyebrow { margin: 0 0 .25rem; }
.mg-journal-latest > h2 { margin-top: .25rem; }
.mg-journal-latest .wp-block-buttons { margin-top: 1.25rem; }
.mg-post-nav { margin-top: var(--wp--preset--spacing--40); font-size: .9375rem; }

/* Non-Fiction submenu */
.mg-header .wp-block-navigation__submenu-container { border: var(--mg-border) !important; border-radius: var(--mg-radius); padding: .4rem 0; background: var(--wp--preset--color--surface) !important; box-shadow: 0 10px 30px -12px rgba(28,34,48,.3); min-width: 220px !important; }
.mg-header .wp-block-navigation__submenu-container a { padding: .45rem 1rem !important; }
.mg-book-gallery { max-width: 600px; }
.mg-content-note { margin: -.25rem 0 1rem; }
