/*
Theme Name: Jason Messina
Author: Jason Messina
Description: Bold cream-and-cobalt block theme for jasonmessina.com. Author hub with a swappable monthly spotlight, series pages, blog, speaking page and a free-stories signup on every page.
Version: 1.0.2
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jasonmessina
*/

:root {
	--jm-paper: #f4f1ea;
	--jm-paper-2: #e9e4d8;
	--jm-ink: #141311;
	--jm-body: #3b3934;
	--jm-blue: #2a44d4;
	--jm-blue-lt: #8ea0ff;
	--jm-dim: #8a887f;
	--jm-ow-black: #0b0b0a;
	--jm-ow-green: #4dff6a;
	--jm-display: Anton, Impact, "Arial Narrow", sans-serif;
	--jm-mono: "Courier Prime", "Courier New", monospace;
	--jm-serif: Spectral, Georgia, serif;
	--jm-pad: 56px;
	--jm-rule: 2px solid var(--jm-ink);
}

/* ---------- Base ---------- */
body { margin: 0; background: var(--jm-paper); color: var(--jm-ink); font-family: var(--jm-serif); -webkit-font-smoothing: antialiased; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * , .jm-main > * { margin-block-start: 0; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--jm-blue); }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { font-family: var(--jm-display); font-weight: 400; text-transform: uppercase; line-height: 1; letter-spacing: .01em; margin: 0; }
h1 em, h2 em, h3 em { font-style: normal; color: var(--jm-blue); }
p { margin: 0; }
.jm-eyebrow { font-family: var(--jm-mono); font-weight: 700; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: var(--jm-blue); }
.jm-lede { font-size: 20px; line-height: 1.6; color: var(--jm-body); text-wrap: pretty; }

/* ---------- Buttons ---------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.wp-block-button__link, .wp-element-button {
	display: inline-block; background: var(--jm-ink); color: var(--jm-paper); border: 2px solid var(--jm-ink); border-radius: 0;
	padding: 18px 28px; font-family: var(--jm-mono); font-weight: 700; font-size: 14px; line-height: 1.2; letter-spacing: .16em; text-transform: uppercase; text-decoration: none;
}
.wp-block-button__link:hover, .wp-element-button:hover { background: var(--jm-blue); border-color: var(--jm-blue); color: var(--jm-paper); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--jm-ink); border-color: var(--jm-ink); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--jm-ink); color: var(--jm-paper); }
.wp-block-button.is-style-jm-blue .wp-block-button__link { background: var(--jm-blue); border-color: var(--jm-blue); color: var(--jm-paper); }
.wp-block-button.is-style-jm-blue .wp-block-button__link:hover { background: var(--jm-ink); border-color: var(--jm-ink); }
.wp-block-button.is-style-jm-paper .wp-block-button__link { background: var(--jm-paper); border-color: var(--jm-paper); color: var(--jm-ink); }
.wp-block-button.is-style-jm-paper .wp-block-button__link:hover { background: var(--jm-ink); border-color: var(--jm-ink); color: var(--jm-paper); }
.wp-block-button.is-style-jm-link .wp-block-button__link { background: none; border: 0; border-bottom: 2px solid var(--jm-blue); padding: 0 0 6px; font-size: 13px; color: inherit; }
.wp-block-button.is-style-jm-link .wp-block-button__link:hover { color: var(--jm-blue); background: none; }

/* ---------- Header ---------- */
.jm-header { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 26px var(--jm-pad); border-bottom: var(--jm-rule); background: var(--jm-paper); }
.jm-header .wp-block-site-title { margin: 0; font-family: var(--jm-display); font-size: 32px; line-height: 1; text-transform: uppercase; }
.jm-header-right { display: flex; align-items: center; gap: 36px; }
.jm-nav { font-family: var(--jm-mono); font-weight: 700; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; }
.jm-nav .wp-block-navigation__container { gap: 36px; }
.jm-nav .current-menu-item > a, .jm-nav a[aria-current="page"] { color: var(--jm-blue); border-bottom: 2px solid var(--jm-blue); padding-bottom: 4px; }
.jm-header .wp-block-button__link { background: var(--jm-blue); border-color: var(--jm-blue); padding: 12px 20px; font-size: 13px; letter-spacing: .14em; }
.jm-header .wp-block-button__link:hover { background: var(--jm-ink); border-color: var(--jm-ink); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--jm-paper) !important; color: var(--jm-ink) !important; font-family: var(--jm-display); font-size: 36px; }

/* ---------- Announcement bar ---------- */
.jm-bar { background: var(--jm-ink); color: var(--jm-paper); padding: 12px var(--jm-pad); text-align: center; font-family: var(--jm-mono); font-weight: 700; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; }
.jm-bar a { color: var(--jm-blue-lt); }

/* ---------- Hero ---------- */
.jm-hero { padding: 88px var(--jm-pad) 72px; display: flex; flex-direction: column; gap: 48px; border-bottom: var(--jm-rule); }
.jm-hero-top { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 40px; align-items: end; }
.jm-hero h1 { font-size: clamp(56px, 9.5vw, 136px); line-height: .94; letter-spacing: .015em; }
.jm-hero h1 em { white-space: nowrap; }
.jm-portrait { margin: 0; }
.jm-portrait img { display: block; width: 400px; height: 400px; object-fit: cover; object-position: center 20%; border: 3px solid var(--jm-ink); box-shadow: 10px 10px 0 var(--jm-blue); box-sizing: border-box; }
.jm-hero-bottom { display: flex; justify-content: space-between; align-items: center; gap: 48px; padding-top: 32px; border-top: var(--jm-rule); }
.jm-hero-bottom p { max-width: 620px; font-size: 22px; line-height: 1.5; text-wrap: pretty; }
.jm-hero-bottom .wp-block-buttons { flex-shrink: 0; }

/* ---------- Spotlight ---------- */
.jm-spotlight { background: var(--jm-ink); color: var(--jm-paper); padding: 24px; }
.jm-spot-when { display: flex; align-items: center; gap: 16px; padding: 16px 32px 28px; font-family: var(--jm-display); font-size: 40px; line-height: 1; text-transform: uppercase; }
.jm-spot-when::before { content: ""; width: 14px; height: 14px; background: var(--jm-blue); flex-shrink: 0; }
.jm-spot-card { border: 2px solid var(--jm-blue); padding: 64px; display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 64px; align-items: center; }
.jm-spot-text { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.jm-spot-text .jm-eyebrow { color: var(--jm-blue-lt); letter-spacing: .24em; }
.jm-spot-text h2 { font-size: clamp(64px, 10vw, 132px); line-height: .9; }
.jm-spot-text p:not(.jm-eyebrow) { max-width: 640px; font-size: 20px; line-height: 1.6; color: #d9d6cd; text-wrap: pretty; }
.jm-spot-cover { margin: 0; }
.jm-spot-cover img { display: block; width: 260px; height: 390px; object-fit: cover; box-shadow: 12px 12px 0 var(--jm-blue); }
.jm-spot--ow h2 { color: var(--jm-ow-green); }
.jm-spot--ow .wp-block-button__link { background: var(--jm-ow-green); border-color: var(--jm-ow-green); color: var(--jm-ow-black); }
.jm-spot--ow .wp-block-button__link:hover { background: var(--jm-paper); border-color: var(--jm-paper); color: var(--jm-ink); }
.jm-spotlight .wp-block-button:not(.jm-spot--ow *) .wp-block-button__link { background: var(--jm-paper); border-color: var(--jm-paper); color: var(--jm-ink); }

/* ---------- Placeholder (image to replace) ---------- */
.jm-ph { display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px; box-sizing: border-box; background: repeating-linear-gradient(135deg, #e3ded2 0 10px, #ebe6db 10px 20px); border: 1px dashed #b8b3a7; font-family: var(--jm-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--jm-dim); }
.jm-spotlight .jm-ph { background: repeating-linear-gradient(135deg, #1b1b19 0 10px, #222220 10px 20px); border-color: #3a3a36; }

/* ---------- Read / Watch ---------- */
.jm-rw { padding: 112px var(--jm-pad); display: flex; flex-direction: column; gap: 48px; border-bottom: var(--jm-rule); }
.jm-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.jm-head h2 { font-size: clamp(56px, 7.5vw, 96px); line-height: .95; }
.jm-rw-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.jm-card { border: var(--jm-rule); display: flex; flex-direction: column; }
.jm-card-bar { background: var(--jm-ink); color: var(--jm-paper); padding: 16px 28px; font-family: var(--jm-mono); font-weight: 700; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; }
.jm-card-body { padding: 40px 28px; display: flex; flex-direction: column; gap: 20px; flex: 1; align-items: flex-start; }
.jm-card-body h3 { font-size: clamp(40px, 4.6vw, 60px); line-height: .98; }
.jm-card-body .jm-lede { font-size: 20px; }
a.jm-card-body:hover h3 { color: var(--jm-blue); }
.jm-card-body .jm-more { margin-top: auto; font-family: var(--jm-mono); font-weight: 700; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; border-bottom: 2px solid var(--jm-blue); padding-bottom: 6px; }
.jm-card--video { background: var(--jm-ink); color: var(--jm-paper); }
.jm-card--video .wp-block-embed, .jm-card--video .wp-block-image, .jm-card--video .jm-ph { color: #8a887f; background: repeating-linear-gradient(135deg, #1b1b19 0 10px, #222220 10px 20px); border-color: #3a3a36; }
.jm-card--video .jm-ph-x { margin: 0; aspect-ratio: 16 / 9; width: 100%; }
.jm-card--video .wp-block-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jm-card--video .wp-block-embed__wrapper iframe { width: 100%; height: 100%; aspect-ratio: 16 / 9; }
.jm-card--video .jm-card-body { padding: 24px 28px 28px; gap: 8px; }
.jm-card--video h3 { font-size: 36px; }
.jm-card--video .jm-lede { color: #b8b5ad; font-size: 17px; }

/* ---------- Worlds ---------- */
.jm-worlds { padding: 112px var(--jm-pad); display: flex; flex-direction: column; gap: 56px; }
.jm-worlds-head { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: end; }
.jm-worlds-head h2 { font-size: clamp(56px, 7.5vw, 96px); line-height: .95; }
.jm-worlds-head p { font-size: 20px; line-height: 1.6; text-wrap: pretty; }
.jm-list { border-top: var(--jm-rule); }
.jm-row { display: grid; grid-template-columns: 72px 5fr 6fr 40px; gap: 32px; align-items: center; padding: 30px 0; border-bottom: var(--jm-rule); }
.jm-row { position: relative; }
.jm-row:hover { background: var(--jm-paper-2); }
.jm-row-name a::after { content: ""; position: absolute; inset: 0; }
.jm-row:hover .jm-row-name a { color: var(--jm-blue); }
.jm-row-n { font-family: var(--jm-mono); font-weight: 700; font-size: 14px; letter-spacing: .1em; color: var(--jm-blue); }
.jm-row-name { font-family: var(--jm-display); font-size: 44px; line-height: 1; text-transform: uppercase; }
.jm-row-desc { font-size: 18px; line-height: 1.55; color: var(--jm-body); text-wrap: pretty; }
.jm-row-arrow { font-family: var(--jm-display); font-size: 32px; color: var(--jm-blue); }

/* ---------- Stage ---------- */
.jm-stage { background: var(--jm-blue); color: var(--jm-paper); display: grid; grid-template-columns: 5fr 7fr; border-top: var(--jm-rule); }
.jm-stage-media { position: relative; border-right: var(--jm-rule); overflow: hidden; min-height: 420px; }
.jm-stage-media img { position: absolute; left: 0; width: 100%; object-fit: cover; display: block; }
.jm-stage-media .jm-mic { top: 0; height: 62%; object-position: center 30%; border-bottom: var(--jm-rule); box-sizing: border-box; }
.jm-stage-media .jm-cards { bottom: 0; height: 38%; }
.jm-stage-text { padding: 80px 64px; display: flex; flex-direction: column; gap: 28px; justify-content: center; align-items: flex-start; }
.jm-stage-text .jm-eyebrow { color: var(--jm-paper); }
.jm-stage-text h2 { font-size: clamp(56px, 7.5vw, 96px); line-height: 1.02; letter-spacing: .02em; }
.jm-stage-text > p { max-width: 560px; font-size: 20px; line-height: 1.6; text-wrap: pretty; }
.jm-duo { display: grid; grid-template-columns: 1fr 1fr; border-top: 2px solid var(--jm-paper); width: 100%; }
.jm-duo > * { padding: 22px 24px 0 0; display: flex; flex-direction: column; gap: 8px; }
.jm-duo > * + * { padding: 22px 0 0 24px; border-left: 2px solid var(--jm-paper); }
.jm-duo h3 { font-size: 30px; }
.jm-duo p { font-size: 17px; line-height: 1.5; }

/* ---------- Page heads ---------- */
.jm-pagehead { padding: 96px var(--jm-pad) 72px; display: flex; flex-direction: column; gap: 28px; border-bottom: var(--jm-rule); }
.jm-pagehead h1, .jm-pagehead .wp-block-post-title, .jm-pagehead .wp-block-query-title { font-size: clamp(56px, 9.5vw, 120px); line-height: 1.02; letter-spacing: .02em; max-width: 1060px; }
.jm-meta { display: flex; flex-wrap: wrap; gap: 24px; font-family: var(--jm-mono); font-weight: 700; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; }
.jm-meta a { color: var(--jm-blue); }
.jm-pagehead--blue { background: var(--jm-blue); color: var(--jm-paper); }
.jm-pagehead--blue h1 { font-size: clamp(64px, 11.5vw, 150px); }
.jm-pagehead--blue p:not(.jm-meta) { max-width: 680px; font-size: 22px; line-height: 1.55; text-wrap: pretty; }
.jm-pagehead--blue a { color: var(--jm-paper); }

/* ---------- Article ---------- */
.jm-article { padding: 80px var(--jm-pad) 112px; display: grid; grid-template-columns: 220px minmax(0, 680px); gap: 96px; }
.jm-aside { font-family: var(--jm-mono); font-weight: 700; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; display: flex; flex-direction: column; gap: 16px; }
.jm-aside .wp-block-post-terms a { color: var(--jm-ink); }
.jm-aside-label { color: var(--jm-blue); }
.jm-prose { font-size: 22px; line-height: 1.6; }
.jm-prose > * + * { margin-top: 26px; }
.jm-prose > p:first-child { font-family: var(--jm-display); font-size: 36px; line-height: 1.1; text-transform: uppercase; }
.jm-prose h2 { font-size: 48px; margin-top: 56px; }
.jm-prose h3 { font-size: 32px; margin-top: 40px; }
.jm-prose a { color: var(--jm-blue); border-bottom: 1px solid var(--jm-blue); }
.jm-prose blockquote { margin: 40px 0; padding: 0 0 0 28px; border-left: 4px solid var(--jm-blue); font-style: italic; }
.jm-prose img { display: block; }
.jm-postnav { grid-column: 2; margin-top: 32px; padding-top: 28px; border-top: var(--jm-rule); display: grid; grid-template-columns: 1fr 1fr; gap: 32px; font-family: var(--jm-mono); font-weight: 700; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.jm-postnav .post-navigation-link-next { text-align: right; }
.jm-postnav a { font-family: var(--jm-display); font-weight: 400; font-size: 24px; letter-spacing: 0; display: block; margin-top: 6px; }
.jm-postnav .wp-block-post-navigation-link__label { color: var(--jm-blue); display: block; }

/* ---------- Blog index ---------- */
.jm-posts { padding: 56px var(--jm-pad) 112px; }
.jm-posts .wp-block-post-template { list-style: none; margin: 0; padding: 0; border-top: var(--jm-rule); }
.jm-posts .wp-block-post { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 8px 48px; padding: 36px 0; border-bottom: var(--jm-rule); margin: 0; }
.jm-posts .wp-block-post-date { grid-row: span 2; font-family: var(--jm-mono); font-weight: 700; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--jm-blue); padding-top: 10px; }
.jm-posts .wp-block-post-title { font-size: clamp(32px, 4vw, 48px); line-height: 1; }
.jm-posts .wp-block-post-excerpt { font-size: 19px; line-height: 1.55; color: var(--jm-body); }
.jm-posts .wp-block-post-excerpt__more-text { display: none; }
.jm-posts .wp-block-query-pagination { margin-top: 40px; font-family: var(--jm-mono); font-weight: 700; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; }

/* ---------- Series page ---------- */
.jm-books { padding: 96px var(--jm-pad) 112px; display: flex; flex-direction: column; gap: 48px; }
.jm-books h2 { font-size: 64px; }
.jm-book-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.jm-book { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.jm-book .wp-block-image, .jm-book .jm-ph { margin: 0; width: 100%; aspect-ratio: 2 / 3; }
.jm-book img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; display: block; border: var(--jm-rule); box-sizing: border-box; }
.jm-book h3 { font-size: 28px; }
.jm-book .wp-block-button__link { padding: 12px 20px; font-size: 12px; }

/* ---------- Speaking page ---------- */
.jm-stagehero { position: relative; min-height: 620px; background: var(--jm-ink); color: var(--jm-paper); display: flex; align-items: flex-end; border-bottom: var(--jm-rule); overflow: hidden; }
.jm-stagehero.wp-block-cover { padding: 0; }
.jm-stagehero .wp-block-cover__background { background: linear-gradient(90deg, rgba(20,19,17,.92) 0%, rgba(20,19,17,.6) 50%, rgba(20,19,17,0) 80%) !important; opacity: 1 !important; }
.jm-stagehero .wp-block-cover__image-background { object-position: center 35%; }
.jm-stagehero .wp-block-cover__inner-container { width: 100%; padding: 96px var(--jm-pad); box-sizing: border-box; display: flex; flex-direction: column; gap: 28px; }
.jm-stagehero .jm-eyebrow { color: var(--jm-blue-lt); }
.jm-stagehero h1 { font-size: clamp(64px, 11.5vw, 150px); line-height: 1.02; letter-spacing: .02em; }
.jm-offer { display: grid; grid-template-columns: 1fr 1fr; border-bottom: var(--jm-rule); }
.jm-offer > * { padding: 80px var(--jm-pad); display: flex; flex-direction: column; gap: 18px; }
.jm-offer > * + * { border-left: var(--jm-rule); }
.jm-offer h2 { font-size: 64px; }
.jm-book-jason { display: grid; grid-template-columns: 5fr 7fr; border-bottom: var(--jm-rule); }
.jm-book-jason > .wp-block-image { margin: 0; border-right: var(--jm-rule); }
.jm-book-jason > .wp-block-image img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; display: block; }
.jm-book-form { background: var(--jm-blue); color: var(--jm-paper); padding: 80px var(--jm-pad); display: flex; flex-direction: column; gap: 24px; }
.jm-book-form h2 { font-size: 72px; }
.jm-inquiry { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.jm-inquiry input, .jm-inquiry textarea { background: var(--jm-paper); border: 0; padding: 18px; font-family: var(--jm-serif); font-size: 17px; color: var(--jm-ink); outline: none; border-radius: 0; }
.jm-inquiry textarea { grid-column: span 2; min-height: 120px; resize: vertical; }
.jm-inquiry button { justify-self: start; background: var(--jm-ink); color: var(--jm-paper); border: 0; padding: 20px 30px; font-family: var(--jm-mono); font-weight: 700; font-size: 14px; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; }
.jm-inquiry button:hover { background: var(--jm-paper); color: var(--jm-ink); }
.jm-inquiry-msg { grid-column: span 2; font-family: var(--jm-mono); font-weight: 700; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; }

/* ---------- Signup blade + footer ---------- */
.jm-signup { background: var(--jm-ink); color: var(--jm-paper); padding: 96px var(--jm-pad); display: grid; grid-template-columns: 7fr 5fr; gap: 72px; align-items: end; }
.jm-signup > * { display: flex; flex-direction: column; gap: 20px; }
.jm-signup .jm-eyebrow { color: var(--jm-blue-lt); }
.jm-signup h2 { font-size: clamp(52px, 6.6vw, 84px); line-height: .96; }
.jm-signup h2 em { color: var(--jm-blue-lt); }
.jm-signup p { font-size: 19px; line-height: 1.55; color: #d9d6cd; }
.jm-form { display: flex; background: var(--jm-paper); margin: 0; }
.jm-form input[type="email"] { flex: 1; min-width: 0; background: transparent; border: 0; outline: none; color: var(--jm-ink); font-family: var(--jm-serif); font-size: 18px; padding: 20px; }
.jm-form button { background: var(--jm-blue); border: 0; color: var(--jm-paper); font-family: var(--jm-mono); font-weight: 700; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; padding: 0 24px; }
.jm-form button:hover { background: var(--jm-blue-lt); color: var(--jm-ink); }
.jm-form-note { margin-top: 10px; font-family: var(--jm-mono); font-size: 12px; color: #ff9a7a; }
.jm-footer { background: var(--jm-ink); color: var(--jm-paper); padding: 0 var(--jm-pad) 40px; display: flex; flex-direction: column; gap: 48px; }
.jm-footer-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; padding-top: 56px; border-top: 1px solid #34332f; }
.jm-footer-name { font-family: var(--jm-display); font-size: 64px; line-height: .9; text-transform: uppercase; }
.jm-footer-name em { font-style: normal; color: var(--jm-blue-lt); }
.jm-footer a:hover { color: var(--jm-blue-lt); }
.jm-footer .jm-nav .current-menu-item > a, .jm-footer .jm-nav a[aria-current="page"] { color: var(--jm-blue-lt); border: 0; }
.jm-copy { display: flex; justify-content: space-between; font-family: var(--jm-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--jm-dim); }

/* ---------- 404 ---------- */
.jm-404 { padding: 140px var(--jm-pad); display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.jm-404 h1 { font-size: clamp(72px, 12vw, 160px); }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
	:root { --jm-pad: 28px; }
	.jm-header { flex-wrap: wrap; }
	.jm-hero-top, .jm-spot-card, .jm-rw-grid, .jm-worlds-head, .jm-stage, .jm-signup, .jm-article, .jm-offer, .jm-book-jason { grid-template-columns: 1fr; }
	.jm-portrait img { width: 100%; max-width: 400px; height: auto; aspect-ratio: 1; }
	.jm-hero-bottom { flex-direction: column; align-items: flex-start; }
	.jm-spot-card { padding: 36px 28px; gap: 40px; }
	.jm-row { grid-template-columns: 40px 1fr; gap: 12px 20px; }
	.jm-row-desc { grid-column: 2; }
	.jm-row-arrow { display: none; }
	.jm-stage-media { min-height: 520px; border-right: 0; border-bottom: var(--jm-rule); }
	.jm-stage-text { padding: 56px var(--jm-pad); }
	.jm-article { gap: 32px; }
	.jm-postnav { grid-column: 1; }
	.jm-posts .wp-block-post { grid-template-columns: 1fr; }
	.jm-book-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jm-offer > * + * { border-left: 0; border-top: var(--jm-rule); }
	.jm-book-jason > .wp-block-image { border-right: 0; border-bottom: var(--jm-rule); }
	.jm-inquiry { grid-template-columns: 1fr; }
	.jm-inquiry textarea { grid-column: auto; }
}
