/*
Theme Name: Just Flow
Theme URI: https://flow-coach.co.uk
Author: Derek Kirkup
Description: A warm, bright block theme for Just Flow – Emotional Flow Coaching. Includes the full homepage as editable block patterns, self-hosted Young Serif and Outfit fonts, and the Just Flow illustrations.
Version: 1.5.3
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: just-flow
Tags: full-site-editing, block-patterns, custom-colors, one-column
*/

/* ---------- Tokens ---------- */
:root {
	--jf-cream: var(--wp--preset--color--cream, #FFF5E8);
	--jf-ink: var(--wp--preset--color--ink, #2E1C14);
	--jf-body: var(--wp--preset--color--body, #6A4632);
	--jf-accent: var(--wp--preset--color--accent, #C4502C);
	--jf-accent-dark: var(--wp--preset--color--accent-dark, #8A2F16);
	--jf-peach: var(--wp--preset--color--peach, #FFD9BD);
	--jf-butter: var(--wp--preset--color--butter, #FFE7A8);
	--jf-apricot: var(--wp--preset--color--apricot, #FFC08F);
	--jf-leaf: var(--wp--preset--color--leaf, #4E7A26);
	--jf-line: var(--wp--preset--color--line, #F6DCC4);
	--jf-serif: var(--wp--preset--font-family--young-serif, 'Young Serif', Georgia, serif);
	--jf-sans: var(--wp--preset--font-family--outfit, Outfit, system-ui, sans-serif);
	--jf-radius: 40px;
	--jf-gutter: clamp(16px, 3.4vw, 48px);
	--jf-pad: clamp(28px, 5vw, 72px);
}

body { -webkit-font-smoothing: antialiased; }

/* Remove flow-layout margins inside our custom layouts */
.jf-wrap > *,
.jf-hero > *, .jf-panel > *, .jf-cols3 > *, .jf-process__grid > *, .jf-card > *,
.jf-coach > *, .jf-coach__text > *, .jf-dyk__grid > *, .jf-fact > *, .jf-fact__text > *,
.jf-journey__steps > *, .jf-step > *, .jf-arch > *, .jf-getstarted__text > *,
.jf-testimonial > *, .jf-testimonial__body > *, .jf-emotions > *, .jf-header > *, .jf-footer > *,
.jf-header-actions > *, .jf-footer__meta > *, .jf-hero__intro > *, .jf-hero__art > *,
.jf-statement > *, .jf-what > *, .jf-process > *, .jf-dyk > *, .jf-cta > *, .jf-blob > * {
	margin-block: 0;
}

.jf-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: var(--jf-gutter);
}

.jf-home { display: flex; flex-direction: column; }
.jf-center { text-align: center; }
figure.wp-block-image { margin: 0; }

/* Panels */
.jf-panel { border-radius: var(--jf-radius); padding: var(--jf-pad); box-sizing: border-box; }
.jf-panel + .jf-panel { margin-top: 20px !important; }
.jf-panel--peach { background: var(--jf-peach); }
.jf-panel--butter { background: var(--jf-butter); }
.jf-panel--white { background: #fff; border: 1px solid var(--jf-line); }
.jf-panel--accent { background: var(--jf-accent); color: #fff; }
.jf-panel--dark { background: var(--jf-ink); color: var(--jf-cream); }
.jf-panel--accent h2, .jf-panel--accent h3 { color: #fff; }
.jf-panel--dark h2, .jf-panel--dark h3 { color: var(--jf-cream); }

/* Text helpers */
.jf-lead { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.55; color: var(--jf-body); max-width: 520px; }
.jf-muted { color: var(--jf-body); }
.jf-eyebrow { font-size: 14px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--jf-accent); }
.jf-stars { font-size: 20px; letter-spacing: 0.22em; color: var(--jf-accent); line-height: 1; }
.jf-quote { font-family: var(--jf-serif); font-size: clamp(21px, 2.1vw, 28px); line-height: 1.5; color: inherit; }
.jf-cite { font-size: 15px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--jf-body); }

/* Buttons */
.wp-block-button .wp-block-button__link { transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	border: 1.5px solid currentColor;
	color: var(--jf-ink);
	padding: 16.5px 28.5px;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--jf-ink); color: #fff; border-color: var(--jf-ink); }
.jf-arrow .wp-block-button__link::after { content: "→"; margin-left: 12px; }
.jf-buttons { gap: 12px; }
.jf-btn-light .wp-block-button__link { background: var(--jf-cream); color: var(--jf-ink); }
.jf-btn-light .wp-block-button__link:hover { background: #fff; color: var(--jf-ink); }
.jf-panel--accent .is-style-outline > .wp-block-button__link,
.jf-panel--dark .is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.75); }
.jf-panel--accent .is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--jf-accent); border-color: #fff; }

/* ---------- Header ---------- */
.jf-header {
	box-sizing: border-box;
	max-width: calc(1440px - 2 * var(--jf-gutter));
	width: calc(100% - 2 * var(--jf-gutter));
	margin: 24px auto;
	min-height: 72px;
	padding: 10px 12px 10px 28px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--jf-line);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	position: relative;
	z-index: 10;
}
.jf-brand { display: flex; align-items: center; gap: 10px; }
.jf-brand::before { content: ""; width: 14px; height: 14px; border-radius: 50%; background: var(--jf-accent); flex-shrink: 0; }
.jf-site-title, .jf-site-title a { font-family: var(--jf-serif); font-size: 25px; font-weight: 400; color: var(--jf-ink); text-decoration: none; line-height: 1.2; }
.jf-nav { font-size: 16px; font-weight: 500; }
.jf-nav .wp-block-navigation__container { gap: 40px; }
.jf-nav a { color: var(--jf-ink); text-decoration: none; }
.jf-nav a:hover { color: var(--jf-accent); }
.jf-header-actions { display: flex; align-items: center; gap: 12px; }
.jf-social .wp-social-link { color: var(--jf-body); }
.jf-social.wp-block-social-links { gap: 2px; }
.jf-social .wp-social-link a { padding: 12px; }
.jf-header .wp-block-button__link { padding: 14px 22px; font-size: 15px; }

/* ---------- Hero ---------- */
.jf-hero { display: grid; grid-template-columns: 7fr 5fr; gap: 20px; }
.jf-hero__intro { display: flex; flex-direction: column; justify-content: center; gap: 28px; padding: clamp(36px, 5vw, 72px) clamp(28px, 4.5vw, 64px); }
.jf-hero__title { font-size: clamp(48px, 6.4vw, 92px); line-height: 1; letter-spacing: -0.02em; }
.jf-hero__intro .jf-buttons { margin-top: 8px; }
.jf-hero__art {
	position: relative;
	min-height: 520px;
	border-radius: var(--jf-radius);
	background: var(--jf-butter);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.jf-hero__art::before {
	content: ""; position: absolute; width: 420px; height: 400px;
	border-radius: 58% 42% 53% 47% / 45% 55% 45% 55%;
	background: var(--jf-apricot);
}
.jf-hero__art::after {
	content: ""; position: absolute; width: 150px; height: 150px; right: 40px; top: 40px;
	border-radius: 50%; background: var(--jf-leaf); opacity: .18;
}
.jf-hero__img { position: relative; z-index: 1; }
.jf-hero__img img { width: 300px; height: 410px; object-fit: contain; display: block; }

/* ---------- Power of emotions ---------- */
.jf-emotions { max-width: 780px; margin-inline: auto; width: 100%; padding: 104px 0 96px; display: flex; flex-direction: column; gap: 24px; }
.jf-emotions h2 { text-align: center; margin-bottom: 16px !important; }
.jf-emotions p { font-size: 19px; line-height: 1.75; color: var(--jf-body); }
.jf-wave { display: flex; justify-content: center; margin-top: 24px !important; color: var(--jf-accent); }
.jf-pullquote { font-family: var(--jf-serif); font-size: clamp(26px, 2.6vw, 36px) !important; line-height: 1.32 !important; color: var(--jf-accent) !important; text-align: center; }

/* ---------- Journey (three-part sequence) ---------- */
.jf-journey { position: relative; padding: 72px 64px 64px; }
.jf-journey__wave {
	position: absolute; left: 64px; right: 64px; top: 72px; width: calc(100% - 128px); height: 260px;
	color: var(--jf-accent); opacity: .7; pointer-events: none;
}
.jf-journey__steps { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.jf-journey__steps::before {
	content: ""; position: absolute; left: 16%; right: 16%; top: 303px; height: 2px;
	background: var(--jf-accent); opacity: .35;
}
.jf-step { display: flex; flex-direction: column; align-items: center; text-align: center; }
.jf-arch {
	width: 280px; max-width: 100%; height: 260px; box-sizing: border-box;
	border-radius: 140px 140px 28px 28px; background: var(--jf-cream);
	display: flex; align-items: flex-end; justify-content: center; padding: 0 20px 20px;
	position: relative;
}
.jf-arch img { display: block; object-fit: contain; }
.jf-arch--upset { padding-bottom: 34px; }
.jf-arch--upset img { width: 210px; height: 170px; }
.jf-arch--chide img { width: 170px; height: 205px; }
.jf-arch--alive { padding-bottom: 14px; }
.jf-arch--alive img { width: 140px; height: 228px; }
.jf-dot {
	display: block; width: 16px; height: 16px; border-radius: 50%; box-sizing: border-box;
	background: var(--jf-cream); border: 3px solid var(--jf-accent); margin: 36px 0 !important; position: relative;
}
.jf-step:last-child .jf-dot { background: var(--jf-accent); }
.jf-step h3 { font-size: 30px; line-height: 1.2; margin-bottom: 14px !important; }
.jf-step p { font-size: 17px; line-height: 1.65; color: var(--jf-body); }

/* ---------- Statement ---------- */
.jf-statement { display: flex; align-items: center; gap: 64px; padding: 80px 72px; }
.jf-statement h2 { flex: 1; font-size: clamp(26px, 2.8vw, 40px); line-height: 1.3; letter-spacing: 0; }
.jf-round-photo, .jf-pill-photo { flex-shrink: 0; }
.jf-round-photo img { width: 280px; height: 280px; max-width: none; aspect-ratio: 1 / 1; border-radius: 50%; object-fit: cover; display: block; }

/* ---------- Testimonials ---------- */
.jf-testimonial { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 24px; }
.jf-testimonial--plain { padding: 104px 0; }
.jf-testimonial--plain .jf-quote { max-width: 1080px; }
.jf-testimonial--butter { padding: 80px 120px; }
.jf-testimonial--butter .jf-quote { max-width: 1000px; font-size: clamp(21px, 2.1vw, 29px); }
.jf-testimonial--butter .jf-stars { color: var(--jf-leaf); }
.jf-pill-photo img { width: 220px; height: 150px; max-width: none; border-radius: 75px; object-fit: cover; display: block; }
.jf-john { flex-direction: row; text-align: left; align-items: center; gap: 64px; padding: 80px 72px; }
.jf-john .jf-testimonial__body { display: flex; flex-direction: column; gap: 20px; }
.jf-john .jf-stars { color: var(--jf-apricot); }
.jf-john .jf-quote { font-size: clamp(20px, 2vw, 27px); }
.jf-john .jf-cite { color: var(--jf-cream); }
.jf-john .jf-round-photo img { width: 260px; height: 260px; }

/* ---------- What is ---------- */
.jf-what { display: flex; flex-direction: column; gap: 48px; }
.jf-what h2 { max-width: 760px; font-size: clamp(36px, 3.9vw, 56px); line-height: 1.1; }
.jf-cols3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.jf-cols3 p { padding-top: 24px; border-top: 2px solid var(--jf-accent); font-size: 17px; line-height: 1.7; color: var(--jf-body); }
.jf-cols3 p:nth-child(2) { border-top-color: var(--jf-leaf); }
.jf-cols3 p:nth-child(3) { border-top-color: #F0C9A6; }

/* ---------- Process ---------- */
.jf-process { padding: 104px 0 56px; display: flex; flex-direction: column; gap: 48px; }
.jf-process__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.jf-card { border-radius: 32px; padding: 36px; display: flex; flex-direction: column; gap: 24px; }
.jf-card p { font-size: 19px; line-height: 1.55; }
.jf-card .jf-card__num {
	width: 72px; height: 72px; border-radius: 50%; background: var(--jf-cream);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--jf-serif); font-size: 30px; line-height: 1; color: var(--jf-accent);
}
.jf-card--peach { background: var(--jf-peach); }
.jf-card--butter { background: var(--jf-butter); }
.jf-card--butter .jf-card__num, .jf-card--leaf .jf-card__num { color: var(--jf-leaf); }
.jf-card--leaf { background: var(--jf-leaf); color: #fff; }
.jf-card--accent { background: var(--jf-accent); color: #fff; }

/* ---------- Coach ---------- */
.jf-coach { padding: 104px 0 20px; display: grid; grid-template-columns: 5fr 7fr; gap: 72px; align-items: start; }
.jf-coach__photo {
	height: 680px; border-radius: 280px 280px 36px 36px; background: var(--jf-apricot);
	display: flex; align-items: center; justify-content: center;
}
.jf-coach__photo figure { width: 78%; height: 84%; }
.jf-coach__photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 220px 220px 24px 24px; display: block; }
.jf-coach__text { display: flex; flex-direction: column; gap: 20px; font-size: 18px; line-height: 1.7; color: var(--jf-body); }
.jf-coach__text h2 { font-size: clamp(44px, 4.4vw, 64px); line-height: 1.05; margin: -8px 0 8px !important; }
.jf-coach__text h3 { font-size: 32px; line-height: 1.2; }

/* ---------- Get started ---------- */
.jf-getstarted { display: flex; align-items: center; justify-content: space-between; gap: 48px; padding: 56px 64px; }
.jf-getstarted__text { max-width: 640px; display: flex; flex-direction: column; gap: 12px; }
.jf-getstarted__text h3 { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.15; }
.jf-getstarted__text p { font-size: 18px; line-height: 1.6; color: var(--jf-body); }
.jf-getstarted .jf-buttons { flex-shrink: 0; flex-wrap: nowrap; }

/* ---------- Did you know ---------- */
.jf-dyk { padding: 104px 0 56px; display: flex; flex-direction: column; gap: 48px; }
.jf-dyk__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.jf-fact { border-radius: var(--jf-radius); padding: 48px; display: flex; gap: 32px; align-items: center; }
.jf-fact--peach { background: var(--jf-peach); }
.jf-fact--butter { background: var(--jf-butter); }
.jf-blob { width: 200px; height: 250px; flex-shrink: 0; position: relative; display: flex; align-items: center; justify-content: center; }
.jf-blob::before { content: ""; position: absolute; inset: 0; border-radius: 55% 45% 48% 52% / 50% 56% 44% 50%; background: var(--jf-cream); }
.jf-fact--butter .jf-blob::before { border-radius: 45% 55% 52% 48% / 56% 50% 50% 44%; }
.jf-blob figure { position: relative; z-index: 1; }
.jf-blob img { width: 140px; height: 226px; object-fit: contain; display: block; }
.jf-fact__text { display: flex; flex-direction: column; gap: 12px; }
.jf-fact__text h3 { font-size: 30px; line-height: 1.2; }
.jf-fact__text p { font-size: 17px; line-height: 1.65; color: var(--jf-body); }

/* ---------- Closing CTA ---------- */
.jf-cta { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; padding: clamp(48px, 6vw, 88px); }
.jf-cta h2 { font-size: clamp(36px, 4.4vw, 64px); line-height: 1.08; }
.jf-cta p { font-size: 20px; line-height: 1.6; color: rgba(255,255,255,.92); }
.jf-cta .jf-buttons { margin-top: 12px !important; justify-content: center; }

/* ---------- Footer ---------- */
.jf-footer {
	box-sizing: border-box; max-width: 1440px; margin-inline: auto; width: 100%;
	padding: 40px calc(var(--jf-gutter) + 8px);
	display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
	font-size: 14px; color: var(--jf-body);
}
.jf-footer__meta { display: flex; gap: 32px; align-items: center; flex-wrap: wrap; }
.jf-footer .jf-site-title, .jf-footer .jf-site-title a { font-size: 22px; }

/* ---------- Inner pages & blog ---------- */
.jf-page { padding-block: 64px 104px; }
.jf-page-head { border-radius: var(--jf-radius); background: var(--jf-peach); padding: var(--jf-pad); margin-bottom: 56px !important; }
.jf-page-head h1 { font-size: clamp(40px, 5vw, 72px); }
.jf-content { font-size: 18px; color: var(--jf-body); }
.jf-content h2, .jf-content h3 { color: var(--jf-ink); }
.jf-post-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; list-style: none; padding: 0; }
.jf-post-grid > li { margin: 0 !important; }
.jf-post-card { height: 100%; box-sizing: border-box; background: #fff; border: 1px solid var(--jf-line); border-radius: 32px; padding: 36px; display: flex; flex-direction: column; gap: 14px; }
.jf-post-card > * { margin: 0 !important; }
.jf-post-card .wp-block-post-title { font-size: 28px; line-height: 1.2; }
.jf-post-card .wp-block-post-title a { color: var(--jf-ink); text-decoration: none; }
.jf-post-card .wp-block-post-title a:hover { color: var(--jf-accent); }
.jf-post-card .wp-block-post-date { font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--jf-accent); }
.jf-post-card .wp-block-post-excerpt { color: var(--jf-body); font-size: 17px; }
.jf-post-card .wp-block-post-featured-image img { border-radius: 20px; }
.jf-pagination { margin-top: 48px !important; justify-content: center; }
.jf-single-meta { font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--jf-accent); }
.jf-featured img { border-radius: var(--jf-radius); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.jf-hero { grid-template-columns: 1fr; }
	.jf-hero__art { min-height: 440px; }
	.jf-process__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jf-dyk__grid { grid-template-columns: 1fr; }
	.jf-coach { grid-template-columns: 1fr; gap: 48px; }
	.jf-coach__photo { height: 560px; max-width: 460px; width: 100%; margin-inline: auto; }
	.jf-getstarted { flex-direction: column; align-items: flex-start; }
	.jf-testimonial--butter { padding: 64px 48px; }
}

@media (max-width: 900px) {
	.jf-header { border-radius: 36px; padding-left: 22px; }
	.jf-header-actions .wp-block-buttons, .jf-social { display: none; }
	.jf-journey { padding: 48px 28px; }
	.jf-journey__wave, .jf-journey__steps::before, .jf-dot { display: none; }
	.jf-journey__steps { grid-template-columns: 1fr; gap: 56px; }
	.jf-step h3 { margin-top: 28px !important; }
	.jf-statement { flex-direction: column-reverse; padding: 48px 32px; gap: 36px; text-align: center; }
	.jf-cols3 { grid-template-columns: 1fr; gap: 28px; }
	.jf-john { flex-direction: column; text-align: center; padding: 48px 28px; gap: 36px; }
	.jf-emotions { padding: 72px 0 64px; }
	.jf-testimonial--plain { padding: 72px 0; }
	.jf-process, .jf-dyk { padding-top: 72px; }
	.jf-coach { padding-top: 72px; }
}

@media (max-width: 640px) {
	:root { --jf-radius: 28px; }
	.jf-hero__art { min-height: 380px; }
	.jf-hero__art::before { width: 300px; height: 290px; }
	.jf-hero__img img { width: 220px; height: 300px; }
	.jf-process__grid { grid-template-columns: 1fr; }
	.jf-fact { flex-direction: column; text-align: center; padding: 36px 28px; }
	.jf-round-photo img { width: 220px; height: 220px; }
	.jf-john .jf-round-photo img { width: 200px; height: 200px; }
	.jf-coach__photo { height: 440px; }
	.jf-getstarted { padding: 36px 28px; }
	.jf-getstarted .jf-buttons { flex-wrap: wrap; }
	.jf-testimonial--butter { padding: 48px 24px; }
	.jf-footer { flex-direction: column; align-items: flex-start; }
}

/* Inner page helpers */
.jf-page-head > * { margin-block: 0; }
.jf-page-head { display: flex; flex-direction: column; gap: 12px; }
.jf-page .jf-getstarted { margin-top: 72px !important; }
.jf-page .jf-featured { margin-bottom: 56px !important; }

/* ---------- Contact page ---------- */
.jf-contact { display: flex; flex-direction: column; }
.jf-contact > * { margin-block: 0; }
.jf-hero__img--dance img { width: 240px; height: 400px; }

/* The form card holds the page's own content (its heading, text and form). */
.jf-contact-form__content { font-size: 18px; max-width: none; }
.jf-contact-form__content > * { max-width: none !important; margin-inline: 0 !important; }
.jf-contact-form__content > :first-child { margin-top: 0; }
.jf-contact-form__content h1, .jf-contact-form__content h2 { font-size: clamp(34px, 3.4vw, 48px); line-height: 1.1; margin-bottom: 16px; }
.jf-contact-form label { display: block; font-size: 15px; font-weight: 600; color: var(--jf-ink); margin-bottom: 8px; }
.jf-contact-form input[type="text"], .jf-contact-form input[type="email"], .jf-contact-form input[type="tel"],
.jf-contact-form input[type="url"], .jf-contact-form input[type="number"], .jf-contact-form select, .jf-contact-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 17px; color: var(--jf-ink);
	background: var(--jf-cream); border: 1.5px solid var(--jf-line); border-radius: 18px;
	padding: 15px 18px; transition: border-color .2s ease, box-shadow .2s ease;
}
.jf-contact-form textarea { min-height: 220px; resize: vertical; }
.jf-contact-form input:focus, .jf-contact-form select:focus, .jf-contact-form textarea:focus {
	outline: none; border-color: var(--jf-accent); box-shadow: 0 0 0 4px rgba(196, 80, 44, .15);
}
.jf-contact-form input[type="checkbox"], .jf-contact-form input[type="radio"] { width: 20px; height: 20px; accent-color: var(--jf-accent); vertical-align: -4px; margin-right: 10px; }
.jf-contact-form input[type="checkbox"] + label, .jf-contact-form label:has(input[type="checkbox"]) { display: inline; font-weight: 400; font-size: 15px; color: var(--jf-body); }
.jf-contact-form input[type="submit"], .jf-contact-form button[type="submit"], .jf-contact-form .wp-block-button__link, .jf-contact-form .wpforms-submit {
	appearance: none; cursor: pointer; font-family: var(--jf-sans); font-size: 17px; font-weight: 500; line-height: 1.2;
	background: var(--jf-accent); color: #fff; border: 0; border-radius: 999px; padding: 18px 34px; transition: background-color .2s ease;
}
.jf-contact-form input[type="submit"]:hover, .jf-contact-form button[type="submit"]:hover, .jf-contact-form .wpforms-submit:hover { background: var(--jf-accent-dark); }

@media (max-width: 1100px) {
	}
@media (max-width: 640px) {
		.jf-hero__img--dance img { width: 190px; height: 310px; }
	}
.jf-site-title, .jf-site-title a { white-space: nowrap; }
.jf-contact-form input[type="checkbox"] + label, .jf-contact-form label:has(input[type="checkbox"]) { line-height: 1.5; }
@media (max-width: 640px) {
	.jf-contact-hero .jf-hero__art { min-height: 300px; }
	.jf-contact-hero .jf-hero__art::before { width: 240px; height: 230px; }
	.jf-hero__img--dance img { width: 150px; height: 250px; }
}

/* Contact: two choices – say hello, or book straight away */
.jf-choices {
	margin-top: 20px !important; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	gap: 0; align-items: stretch; padding: clamp(20px, 2.4vw, 32px);
}
.jf-choices > *, .jf-choice > * { margin-block: 0; }
.jf-choice {
	background: #fff; border-radius: 32px; padding: clamp(32px, 4vw, 56px);
	display: flex; flex-direction: column; gap: 14px; box-sizing: border-box;
}
.jf-choice__icon {
	width: 64px; height: 64px; border-radius: 50%; background: var(--jf-peach); color: var(--jf-accent);
	display: flex; align-items: center; justify-content: center; margin-bottom: 6px !important;
}
.jf-choice .jf-eyebrow { margin-bottom: -4px !important; }
.jf-choice h1, .jf-choice h2, .jf-choice__content h2 { font-size: clamp(32px, 3.2vw, 44px); line-height: 1.1; }
.jf-choice .jf-contact-form__content h1, .jf-choice .jf-contact-form__content h2 { margin: 0 0 12px; }
.jf-choice__or { display: flex; align-items: center; justify-content: center; width: 72px; position: relative; }
.jf-choice__or::before { content: ""; position: absolute; top: 40px; bottom: 40px; left: 50%; border-left: 2px dashed var(--jf-accent); opacity: .35; }
.jf-choice__or span {
	position: relative; width: 56px; height: 56px; border-radius: 50%; background: var(--jf-accent); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--jf-serif); font-size: 21px; line-height: 1; padding-bottom: 3px; box-sizing: border-box;
}
@media (max-width: 1000px) {
	.jf-choices { grid-template-columns: 1fr; }
	.jf-choice__or { width: auto; height: 72px; }
	.jf-choice__or::before { top: 0; bottom: 0; }
}
.jf-contact-form p:has(input[type="checkbox"]), .jf-contact-form label:has(input[type="checkbox"]) { line-height: 1.5; }
@media (max-width: 640px) {
	.jf-choice .wp-block-button__link { padding: 16px 24px; font-size: 16px; }
	.jf-choice .jf-arrow .wp-block-button__link::after { margin-left: 8px; }
}

/* Contact cards share one structure: icon, label, heading, line of text, then the action */
.jf-choice > p:not(.jf-eyebrow):not(.jf-choice__small) { font-size: 18px; line-height: 1.6; color: var(--jf-body); }
.jf-choice h2 { margin-bottom: 2px !important; }
.jf-choice .jf-contact-form__content { margin-top: 14px !important; }
.jf-choice .jf-contact-form__content > :first-child { margin-top: 0 !important; }
.jf-calendly {
	margin-top: 14px !important; min-width: 280px; height: 640px; flex-grow: 1;
	border-radius: 20px; overflow: hidden; border: 1.5px solid var(--jf-line); background: var(--jf-cream);
}
.jf-choice__small { font-size: 14px; color: var(--jf-body); }
@media (max-width: 640px) {
	.jf-calendly { height: 1040px; margin-inline: -12px !important; }
}

/* Quotes and statement without photos */
.jf-statement { justify-content: center; text-align: center; }
.jf-statement h2 { flex: 0 1 auto; max-width: 1040px; margin-inline: auto !important; }
.jf-john { flex-direction: column; text-align: center; }
.jf-john .jf-testimonial__body { align-items: center; max-width: 1000px; }

/* Contact form built with Otter Blocks: neutralise the old orange section and match the theme */
.jf-contact-form .wp-block-themeisle-blocks-advanced-columns {
	--background: transparent !important; background: none !important;
	padding: 0 !important; margin: 0 !important; min-height: 0 !important; width: 100% !important; max-width: none !important;
}
.jf-contact-form .wp-block-themeisle-blocks-advanced-columns-overlay,
.jf-contact-form .wp-block-themeisle-blocks-advanced-column-overlay { display: none !important; }
.jf-contact-form .wp-block-themeisle-blocks-advanced-columns > .innerblocks-wrap { max-width: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
.jf-contact-form .wp-block-themeisle-blocks-advanced-column { padding: 0 !important; margin: 0 !important; flex-basis: 100% !important; }
.jf-contact-form .wp-block-themeisle-blocks-advanced-column > .wp-block-group { gap: 0; }
.jf-contact-form .wp-block-themeisle-blocks-form {
	--submit-msg-color: var(--jf-leaf) !important; --submit-error-color: var(--jf-accent-dark) !important;
	--label-color: var(--jf-ink); --input-border-color: var(--jf-line); --input-border-radius: 18px; --input-bg-color: var(--jf-cream);
}
.jf-contact-form .otter-form__container { display: flex; flex-direction: column; gap: 20px; }
.jf-contact-form .otter-form__container > * { margin: 0 !important; width: 100% !important; }
.jf-contact-form .otter-form-input-label, .jf-contact-form .otter-form-textarea-label {
	display: block; font-size: 15px !important; font-weight: 600 !important; color: var(--jf-ink) !important; margin: 0 0 8px !important;
}
.jf-contact-form .otter-form-input-label .required { color: var(--jf-accent); margin-left: 2px; }
.jf-contact-form .wp-block-themeisle-blocks-form .otter-form-input,
.jf-contact-form .wp-block-themeisle-blocks-form .otter-form-textarea-input {
	width: 100% !important; box-sizing: border-box; font: inherit !important; font-size: 17px !important; color: var(--jf-ink) !important;
	background: var(--jf-cream) !important; border: 1.5px solid var(--jf-line) !important; border-radius: 18px !important;
	padding: 15px 18px !important; box-shadow: none !important; transition: border-color .2s ease, box-shadow .2s ease;
}
.jf-contact-form .wp-block-themeisle-blocks-form .otter-form-textarea-input { min-height: 200px; resize: vertical; }
.jf-contact-form .wp-block-themeisle-blocks-form .otter-form-input:focus,
.jf-contact-form .wp-block-themeisle-blocks-form .otter-form-textarea-input:focus {
	outline: none !important; border-color: var(--jf-accent) !important; box-shadow: 0 0 0 4px rgba(196, 80, 44, .15) !important;
}
.jf-contact-form .otter-form__container > p { font-size: 14px !important; line-height: 1.55; color: var(--jf-body) !important; }
.jf-contact-form .wp-block-themeisle-blocks-form .wp-block-button { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.jf-contact-form .wp-block-themeisle-blocks-form .wp-block-button__link {
	background: var(--jf-accent) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
	padding: 18px 34px !important; font-family: var(--jf-sans) !important; font-size: 17px !important; font-weight: 500 !important; cursor: pointer;
}
.jf-contact-form .wp-block-themeisle-blocks-form .wp-block-button__link:hover { background: var(--jf-accent-dark) !important; }
.jf-contact-form .o-form-server-response { font-size: 15px; }

/* Booking on phones: Calendly needs 320px+, so show a button that opens the calendar instead */
.jf-cal-mobile { display: none !important; }
@media (max-width: 560px) {
	.jf-calendly, .jf-choice__small { display: none !important; }
	.jf-cal-mobile { display: flex !important; margin-top: 10px !important; }
}
