/* ==========================================================================
   Franco Monti — main stylesheet
   Colours and type taken from the original 2015 site (Richer child theme):
   black page, concrete-texture header, Lato, red accent #d2381a.
   ========================================================================== */

@font-face { font-family: "Lato"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/lato-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/lato-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Lato"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/lato-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/lato-latin-700-normal.woff2") format("woff2"); }

:root {
	--fm-bg: #000;
	--fm-text: #dfdede;
	--fm-text-soft: #bcb9b9;
	--fm-heading: #fff;
	--fm-accent: #d2381a;
	--fm-accent-hover: #e0582f; /* slightly lighter than the original #d16304 for contrast on black */
	--fm-footer-bg: #191919;
	--fm-footer-text: #c6c1c0;
	--fm-panel: #fff;
	--fm-panel-text: #111;
	--fm-container: 1196px;
	--fm-gutter: clamp(16px, 4vw, 32px);
	--fm-header-h: 88px;
	--fm-font: "Lato", "Helvetica Neue", Arial, sans-serif;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; overflow-x: clip; }
body {
	margin: 0;
	background: var(--fm-bg);
	color: var(--fm-text);
	font-family: var(--fm-font);
	font-size: 15px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	/* Short pages: keep the footer at the bottom of the screen */
	min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column;
}
.fm-main { flex: 1 0 auto; }
img, video, iframe { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--fm-accent); text-decoration: none; transition: color .2s ease; }
a:hover, a:focus-visible { color: var(--fm-accent-hover); }
:focus-visible { outline: 2px solid var(--fm-accent); outline-offset: 2px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--fm-font); font-weight: 400; line-height: 1.3; color: var(--fm-heading); margin: 1.6em 0 .6em; }
h1 { font-size: clamp(26px, 4vw, 34px); text-transform: uppercase; letter-spacing: .04em; }
h2 { font-size: clamp(22px, 3vw, 28px); text-transform: uppercase; letter-spacing: .03em; }
h3 { font-size: clamp(18px, 2.4vw, 23px); text-transform: uppercase; letter-spacing: .03em; }
h4 { font-size: 18px; color: var(--fm-text-soft); }
h5, h6 { font-size: 15px; }
h6 { text-transform: none; }
p { margin: 0 0 1.1em; }
hr { border: 0; border-top: 1px solid rgba(255,255,255,.15); margin: 2em 0; }
.screen-reader-text, .fm-skip:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.fm-skip:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; background: #fff; color: #000; padding: 8px 14px; }

.fm-container { width: 100%; max-width: var(--fm-container); margin: 0 auto; padding: 0 var(--fm-gutter); }
.fm-main { min-height: 60vh; }
.fm-page-title {
	max-width: var(--fm-container);
	margin: 0 auto;
	padding: clamp(28px, 5vw, 48px) var(--fm-gutter) clamp(16px, 3vw, 28px);
	color: var(--fm-accent);
	font-size: clamp(24px, 4vw, 34px);
}

/* ---------- Header ---------- */
.fm-header {
	position: relative;
	z-index: 50;
	background: #111 var(--fm-header-texture) center / cover no-repeat;
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.fm-header__inner {
	max-width: var(--fm-container);
	margin: 0 auto;
	padding: 0 var(--fm-gutter);
	min-height: var(--fm-header-h);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.fm-logo { display: block; flex: none; padding: 8px 0; }
.fm-logo img { width: 72px; height: auto; }

.fm-nav { display: flex; align-items: center; gap: 28px; }
.fm-menu, .fm-nav > div > ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 25px; }
.fm-menu a, .fm-nav > div > ul a {
	display: block;
	color: #fff;
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 8px 0;
	border-bottom: 2px solid transparent;
}
.fm-menu a:hover, .fm-menu a:focus-visible,
.fm-menu .current-menu-item > a, .fm-menu .current_page_item > a,
.fm-menu .current-menu-ancestor > a, .fm-menu .current_page_parent > a { color: var(--fm-accent); }
.fm-menu .sub-menu { display: none; }

.fm-lang { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; }
.fm-lang a { display: block; padding: 6px 7px; font-size: 12px; letter-spacing: .08em; color: #9a9a9a; }
.fm-lang a:hover, .fm-lang a.is-current { color: #fff; }
.fm-lang a.is-current { box-shadow: inset 0 -2px 0 var(--fm-accent); }

.fm-social { display: flex; gap: 14px; align-items: center; }
.fm-social a { color: #fff; display: inline-flex; padding: 4px; }
.fm-social a:hover { color: var(--fm-accent); }

.fm-menu-toggle { display: none; }

/* Mobile / tablet navigation */
@media (max-width: 1023px) {
	:root { --fm-header-h: 72px; }
	.fm-logo img { width: 56px; }
	.fm-menu-toggle {
		display: inline-flex; align-items: center; gap: 10px;
		background: none; border: 0; color: #fff; cursor: pointer;
		font: 13px/1 var(--fm-font); letter-spacing: .1em; text-transform: uppercase;
		padding: 12px 0 12px 12px; min-height: 44px;
	}
	.fm-menu-toggle__bars, .fm-menu-toggle__bars::before, .fm-menu-toggle__bars::after {
		display: block; width: 22px; height: 2px; background: currentColor; position: relative; transition: transform .25s ease, background .25s ease;
	}
	.fm-menu-toggle__bars::before, .fm-menu-toggle__bars::after { content: ""; position: absolute; left: 0; }
	.fm-menu-toggle__bars::before { top: -7px; }
	.fm-menu-toggle__bars::after { top: 7px; }
	.fm-menu-toggle[aria-expanded="true"] .fm-menu-toggle__bars { background: transparent; }
	.fm-menu-toggle[aria-expanded="true"] .fm-menu-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
	.fm-menu-toggle[aria-expanded="true"] .fm-menu-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

	.fm-nav {
		position: fixed; inset: var(--fm-header-h) 0 0 0;
		background: #000;
		flex-direction: column; align-items: flex-start; justify-content: flex-start;
		gap: 28px; padding: 28px var(--fm-gutter) 40px;
		overflow-y: auto;
		opacity: 0; visibility: hidden; transform: translateY(-8px);
		transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
	}
	.fm-nav.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .2s ease, transform .2s ease; }
	.fm-menu, .fm-nav > div > ul { flex-direction: column; gap: 0; width: 100%; }
	.fm-menu li { border-bottom: 1px solid rgba(255,255,255,.1); }
	.fm-menu a { font-size: 17px; padding: 14px 0; }
	.fm-lang a { font-size: 14px; padding: 10px 12px 10px 0; }
	body.fm-nav-open { overflow: hidden; }
}

/* ---------- Home slideshow ---------- */
.fm-hero { position: relative; background: #000; overflow: hidden; }
.fm-hero__track { position: relative; aspect-ratio: 1902 / 793; }
.fm-hero__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.2s ease; }
.fm-hero__slide.is-active { opacity: 1; z-index: 1; }
.fm-hero__slide img { width: 100%; height: 100%; object-fit: cover; }
.fm-hero__arrow {
	position: absolute; top: 50%; z-index: 3; transform: translateY(-50%);
	width: 44px; height: 44px; border: 0; border-radius: 50%;
	background: rgba(0,0,0,.35); cursor: pointer; opacity: 0; transition: opacity .2s ease, background .2s ease;
}
.fm-hero:hover .fm-hero__arrow, .fm-hero__arrow:focus-visible { opacity: 1; }
.fm-hero__arrow:hover { background: var(--fm-accent); }
.fm-hero__arrow::before {
	content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px;
	border-top: 2px solid #fff; border-right: 2px solid #fff;
}
.fm-hero__arrow--prev { left: 16px; }
.fm-hero__arrow--prev::before { transform: translate(-30%, -50%) rotate(-135deg); }
.fm-hero__arrow--next { right: 16px; }
.fm-hero__arrow--next::before { transform: translate(-70%, -50%) rotate(45deg); }
.fm-hero__dots { position: absolute; z-index: 3; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 4px; }
.fm-hero__dots button { width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.fm-hero__dots button::after { content: ""; position: absolute; inset: 9px; border-radius: 50%; background: rgba(255,255,255,.5); transition: background .2s; }
.fm-hero__dots button[aria-selected="true"]::after { background: var(--fm-accent); }

@media (max-width: 767px) {
	/* Phones: the whole photograph, as on a computer (no cropping) */
	.fm-hero__arrow { display: none; }
	.fm-hero__dots { bottom: 2px; }
	.fm-hero__dots button { width: 18px; height: 18px; }
	.fm-hero__dots button::after { inset: 6px; }
}
@media (prefers-reduced-motion: reduce) {
	.fm-hero__slide { transition: none; }
}

.fm-home-content { padding-top: 40px; padding-bottom: 40px; }

/* ---------- Portfolio grid ---------- */
.fm-portfolio .fm-page-title { padding-bottom: 20px; }
.fm-page .fm-page-title { max-width: 860px; }
.fm-grid {
	list-style: none; margin: 0 auto; padding: 0;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 0;
	max-width: 1920px;
}
.fm-grid__item { margin: 0; }
.fm-grid__link { position: relative; display: block; overflow: hidden; background: #111; aspect-ratio: 382 / 277; }
.fm-grid__link img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, opacity .3s ease; }
.fm-grid__caption {
	position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end;
	padding: 14px 16px;
	background: linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,0) 60%);
	color: #fff; opacity: 0; transition: opacity .3s ease;
}
.fm-grid__title { font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
.fm-grid__year { font-size: 12px; color: #ccc; }
.fm-grid__link:hover img, .fm-grid__link:focus-visible img { transform: scale(1.04); }
.fm-grid__link:hover .fm-grid__caption, .fm-grid__link:focus-visible .fm-grid__caption { opacity: 1; }

@media (max-width: 1199px) { .fm-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) {
	.fm-grid { grid-template-columns: repeat(2, 1fr); gap: 2px; }
	/* No hover on touch screens: show the title under each photo instead */
	.fm-grid__caption { opacity: 1; position: static; background: #000; padding: 8px 10px 14px; }
	.fm-grid__link { aspect-ratio: auto; }
	.fm-grid__link img { aspect-ratio: 382 / 277; height: auto; }
	.fm-grid__title { font-size: 12px; }
}
@media (max-width: 339px) { .fm-grid { grid-template-columns: 1fr; } }

/* ---------- Single work ---------- */
.fm-obra { max-width: var(--fm-container); margin: 0 auto; padding: clamp(16px, 3vw, 40px) var(--fm-gutter) 0; }
.fm-obra__panel {
	background: var(--fm-panel); color: var(--fm-panel-text);
	display: grid; grid-template-columns: minmax(0, 3fr) minmax(260px, 2fr);
	align-items: center;
}
.fm-obra__media { margin: 0; background: #fff; padding: clamp(12px, 3vw, 40px); }
.fm-obra__media img { margin: 0 auto; max-height: 78vh; width: auto; object-fit: contain; }
.fm-zoom { display: block; cursor: zoom-in; }
.fm-obra__info { padding: clamp(20px, 3vw, 44px); }
.fm-obra__title { color: var(--fm-accent); margin: 0 0 18px; font-size: clamp(22px, 3vw, 28px); }
.fm-sheet { margin: 0 0 18px; font-size: 14px; }
.fm-sheet__row { padding: 7px 0; border-bottom: 1px solid #e6e6e6; display: grid; grid-template-columns: 1fr; }
.fm-sheet dt { color: #777; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.fm-sheet dd { margin: 0; color: #111; }
.fm-obra__text { color: #222; font-size: 14px; }
.fm-obra__text p { color: #222; }
.fm-obra__credit { color: #888; font-size: 12px; margin: 14px 0 0; }

.fm-obra__nav {
	display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: center;
	padding: 22px 0 10px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase;
}
.fm-obra__nav a { color: #fff; display: inline-block; padding: 8px 0; }
/* Previous/next sculpture: fixed at mid-height on the screen edges, always within reach without scrolling.
   Same round button and chevron as the home-page slideshow. */
.fm-obra__nav a.fm-obra__arrow {
	position: fixed; top: 50%; z-index: 40; transform: translateY(-50%);
	width: 44px; height: 44px; padding: 0; border-radius: 50%;
	background: rgba(0,0,0,.35); transition: background-color .2s ease;
}
.fm-obra__nav a.fm-obra__arrow > span { display: none; }
.fm-obra__nav a.fm-obra__arrow::before {
	content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px;
	border-top: 2px solid #fff; border-right: 2px solid #fff;
}
.fm-obra__nav-prev .fm-obra__arrow::before { transform: translate(-30%, -50%) rotate(-135deg); }
.fm-obra__nav-next .fm-obra__arrow::before { transform: translate(-70%, -50%) rotate(45deg); }
.fm-obra__nav-prev .fm-obra__arrow { left: max(12px, calc((100vw - var(--fm-container)) / 4 - 22px)); }
.fm-obra__nav-next .fm-obra__arrow { right: max(12px, calc((100vw - var(--fm-container)) / 4 - 22px)); }
.fm-obra__nav a.fm-obra__arrow:hover, .fm-obra__nav a.fm-obra__arrow:focus-visible { background: var(--fm-accent); }
.fm-obra__nav a:hover { color: var(--fm-accent); }
.fm-obra__nav-next { text-align: right; }
.fm-obra__nav-all { color: var(--fm-text-soft) !important; }

@media (max-width: 899px) {
	.fm-obra { padding-left: 0; padding-right: 0; padding-top: 0; }
	.fm-obra__panel { grid-template-columns: 1fr; }
	.fm-obra__media { padding: 0; }
	.fm-obra__media img { max-height: none; width: 100%; }
	.fm-obra__nav { padding-left: var(--fm-gutter); padding-right: var(--fm-gutter); }
	.fm-obra__nav a.fm-obra__arrow { width: 40px; height: 40px; }
	.fm-obra__nav-prev .fm-obra__arrow { left: 6px; }
	.fm-obra__nav-next .fm-obra__arrow { right: 6px; }
}

/* ---------- Lightbox ---------- */
.fm-lightbox {
	position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.94);
	display: flex; align-items: center; justify-content: center;
	touch-action: pinch-zoom;
}
.fm-lightbox[hidden] { display: none; }
.fm-lightbox img { max-width: 96vw; max-height: 92vh; width: auto; height: auto; }
.fm-lightbox__close {
	position: absolute; top: 10px; right: 10px; width: 48px; height: 48px;
	background: none; border: 0; color: #fff; font-size: 34px; line-height: 1; cursor: pointer;
}
.fm-lightbox__close:hover { color: var(--fm-accent); }

/* ---------- Page content ---------- */
.fm-page .fm-content { padding-bottom: 56px; }
.fm-content { max-width: 860px; }
.fm-content p, .fm-content li { color: var(--fm-text); }
.fm-content blockquote { margin: 1.6em 0; padding: 0 0 0 20px; border-left: 2px solid var(--fm-accent); font-style: italic; }
.fm-content .alignwide { max-width: var(--fm-container); }
.fm-content .alignfull { max-width: none; width: 100vw; margin-left: calc(50% - 50vw); }
.fm-content figure { margin: 1.5em 0; }
.fm-content figcaption { font-size: 12px; color: #999; margin-top: 6px; }
.fm-content .wp-block-gallery { gap: 6px; }
.fm-content table { width: 100%; border-collapse: collapse; }
.fm-content td, .fm-content th { padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,.12); text-align: left; vertical-align: top; }
.fm-content .wp-block-file a:not(.wp-block-file__button) { color: var(--fm-accent); }
.fm-content .wp-block-button__link { background: var(--fm-accent); color: #fff; border-radius: 0; text-transform: uppercase; letter-spacing: .08em; font-size: 13px; }

/* Exhibition list: invitation image + text side by side, stacked on phones */
.fm-content .wp-block-media-text { margin: 0 0 28px; gap: 0; }
@media (max-width: 600px) { .fm-content .wp-block-media-text { grid-template-columns: 1fr !important; } }

/* ---------- Forms (contact, private area) — original red panel ---------- */
.wpcf7 form, .fm-content .post-password-form {
	background: rgba(210, 56, 26, .78);
	padding: clamp(20px, 4vw, 44px);
	max-width: 720px;
	margin: 0 auto;
	color: #fff;
}
.wpcf7 label, .post-password-form label { display: block; font-size: 13px; letter-spacing: .04em; color: #fff; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea,
.post-password-form input[type="password"] {
	width: 100%; margin-top: 6px; padding: 11px 12px;
	background: #ececec; border: 2px solid #7b0e0e; color: #000;
	font: 16px/1.4 var(--fm-font); /* 16px stops iOS from zooming on focus */
	border-radius: 0;
}
.wpcf7 textarea { min-height: 160px; }
.wpcf7 input[type="submit"], .post-password-form input[type="submit"] {
	margin-top: 14px; padding: 12px 30px; border: 0; border-radius: 0;
	background: #000; color: #fff; cursor: pointer;
	font: 13px/1 var(--fm-font); letter-spacing: .12em; text-transform: uppercase;
}
.wpcf7 input[type="submit"]:hover, .post-password-form input[type="submit"]:hover { background: #7b0e0e; }

/* ---------- Footer ---------- */
.fm-footer { background: var(--fm-footer-bg); color: var(--fm-footer-text); font-size: 13px; margin-top: 40px; }
.home .fm-footer { margin-top: 0; }
.fm-footer__inner {
	max-width: var(--fm-container); margin: 0 auto; padding: 18px var(--fm-gutter);
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 28px;
}
.fm-footer__copy { margin: 0; }
.fm-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; }
.fm-footer__menu li + li::before { content: "|"; color: #555; margin: 0 10px; }
.fm-footer__menu a { color: #f7f7f7; }
.fm-footer__menu a:hover { color: #bf513b; }
.fm-footer__nav { margin-left: auto; }
.fm-social--footer a { color: #f7f7f7; }
.fm-footer__menu li.fm-footer__social-item { display: none; }
.fm-footer__menu li.fm-footer__social-item::before { content: none; }
.fm-social--inline { display: inline-flex; }
.fm-social--inline a { color: #f7f7f7; display: inline-flex; }
@media (max-width: 767px) {
	.fm-footer__inner { flex-direction: column; align-items: flex-start; padding-top: 24px; padding-bottom: 28px; }
	.fm-footer__nav { margin-left: 0; }
	/* Phones: Instagram icon at the end of the links instead of on its own line */
	.fm-footer__menu { align-items: center; gap: 10px 20px; }
	.fm-footer__menu li + li::before { content: none; } /* no stray "|" when the links wrap */
	.fm-footer__menu li.fm-footer__social-item { display: inline-flex; }
	.fm-social--footer { display: none; }
}
.fm-social--nav { display: none; }
@media (max-width: 1023px) { .fm-social--nav { display: flex; } }

/* ---------- Gallery viewer arrows ---------- */
.fm-lightbox__nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 52px; height: 52px; border: 0; border-radius: 50%;
	background: rgba(255,255,255,.08); cursor: pointer;
}
.fm-lightbox__nav:hover { background: var(--fm-accent); }
.fm-lightbox__nav::before {
	content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 12px;
	border-top: 2px solid #fff; border-right: 2px solid #fff; pointer-events: none;
}
.fm-lightbox__nav--prev { left: 12px; }
.fm-lightbox__nav--prev::before { transform: translate(-30%, -50%) rotate(-135deg); }
.fm-lightbox__nav--next { right: 12px; }
.fm-lightbox__nav--next::before { transform: translate(-70%, -50%) rotate(45deg); }
.fm-lightbox.is-single .fm-lightbox__nav { display: none; }
@media (max-width: 767px) { .fm-lightbox__nav { display: none; } } /* swipe instead */

/* ---------- Buttons ---------- */
.fm-button {
	display: inline-block; padding: 12px 26px; border: 1px solid var(--fm-accent);
	color: #fff; font-size: 13px; letter-spacing: .12em; text-transform: uppercase;
}
.fm-button:hover { background: var(--fm-accent); color: #fff; }

/* ---------- Instagram (home) ---------- */
.fm-insta { width: 100%; max-width: var(--fm-container); margin: 0 auto; padding: 22px var(--fm-gutter) clamp(32px, 4vw, 48px); box-sizing: border-box; }
.fm-insta__head { display: flex; justify-content: flex-start; margin-bottom: 10px; } /* lined up with the logo */
.fm-insta--line .fm-insta__head { margin-bottom: 0; }
.fm-insta--below .fm-insta__head { margin: 10px 0 0; }
.fm-insta__handle { display: inline-flex; align-items: center; gap: 8px; color: #8a8a8a; font-size: 13px; letter-spacing: .06em; text-decoration: none; }
.fm-insta__handle svg { flex: none; }
.fm-insta__handle:hover, .fm-insta__handle:focus-visible { color: var(--fm-accent); }
/* Instagram feed plugin: one quiet row, no header or buttons. */
.fm-insta__feed #sb_instagram { padding: 0 !important; width: 100% !important; }
.fm-insta__feed .sb_instagram_header, .fm-insta__feed #sbi_load, .fm-insta__feed .sbi_follow_btn { display: none !important; }
.fm-insta__feed #sbi_images { padding: 0 !important; }
.fm-insta__feed .sbi_item { opacity: .85; transition: opacity .2s; }
.fm-insta__feed .sbi_item:hover { opacity: 1; }
@media (max-width: 767px) {
	/* Phones: 4 small squares in one row, so they stay lighter than the slideshow */
	.fm-insta { padding-top: 16px; }
	.fm-insta__head { margin-bottom: 8px; }
	.fm-insta--below .fm-insta__head { margin: 8px 0 0; }
	.fm-insta__handle { font-size: 12px; }
	.fm-insta__feed #sb_instagram #sbi_images { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 5px !important; }
	.fm-insta__feed #sb_instagram #sbi_images .sbi_item { width: auto !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
	.fm-insta__feed #sbi_images .sbi_item:nth-child(n+5) { display: none !important; }
}
.fm-obra__insta { margin: 16px 0 0; font-size: 13px; }
.fm-obra__insta a { color: var(--fm-accent); }

/* ---------- Exhibitions list ---------- */
.fm-expos { max-width: var(--fm-container); margin: 0 auto; padding-bottom: 32px; }
.fm-expos .fm-page-title { padding-left: var(--fm-gutter); padding-right: var(--fm-gutter); }
.fm-expo-list {
	list-style: none; margin: 0; padding: 0 var(--fm-gutter);
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px;
}
.fm-expo-list--now { grid-template-columns: 1fr; margin-bottom: 48px; }
.fm-expo { margin: 0; }
.fm-expo__img { display: block; background: #111; overflow: hidden; }
.fm-expo__img img { width: 100%; aspect-ratio: 329 / 190; object-fit: cover; transition: transform .5s ease; }
a.fm-expo__img:hover img { transform: scale(1.03); }
.fm-expo__body { padding-top: 14px; }
.fm-expo__badge {
	display: inline-block; margin-bottom: 8px; padding: 3px 9px;
	background: var(--fm-accent); color: #fff; font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
}
.fm-expo__venue { margin: 0; font-size: 16px; font-weight: 700; text-transform: none; letter-spacing: .02em; color: #fff; }
.fm-expo__venue a { color: #fff; }
.fm-expo__venue a:hover { color: var(--fm-accent); }
.fm-expo__show { margin: 2px 0 0; font-style: italic; color: var(--fm-text); }
.fm-expo__where { margin: 2px 0 8px; color: var(--fm-text-soft); font-size: 14px; }
.fm-expo__links { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.fm-expo__links li { padding: 3px 0; }
.fm-expo__links a { color: var(--fm-accent); }
.fm-expo__size { color: #8a8a8a; font-size: 11px; letter-spacing: .04em; }

/* Featured (current / upcoming) */
.fm-expo--featured { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center; border: 1px solid rgba(210,56,26,.6); padding: 24px; }
.fm-expo--featured .fm-expo__venue { font-size: clamp(20px, 2.6vw, 26px); }
.fm-expo--featured .fm-expo__body { padding-top: 0; }

@media (max-width: 1023px) { .fm-expo-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	.fm-expo-list { grid-template-columns: 1fr; gap: 32px; }
	.fm-expo--featured { grid-template-columns: 1fr; gap: 0; padding: 0 0 18px; border: 0; border-bottom: 2px solid var(--fm-accent); }
	.fm-expo--featured .fm-expo__body { padding-top: 14px; }
	.fm-expo__links li { padding: 6px 0; } /* bigger tap targets */
}

/* ---------- Single exhibition ---------- */
.fm-expo-single__head { max-width: 860px; margin: 0 auto; padding: 0 0 8px; }
.fm-expo-single__head .fm-page-title { padding-bottom: 6px; }
.fm-expo-single__head .fm-expo__badge { margin: clamp(28px, 5vw, 48px) var(--fm-gutter) -20px; }
.fm-expo-single__show, .fm-expo-single__where { margin: 0; padding: 0 var(--fm-gutter); }
.fm-expo-single__show { font-style: italic; font-size: 18px; color: #fff; }
.fm-expo-single__where { color: var(--fm-text-soft); }
.fm-expo-single__text { margin: 24px 0; }
.fm-expo-single__video { margin: 28px 0; }
.fm-expo-single__video .wp-video, .fm-expo-single__video video, .fm-expo-single__video iframe { width: 100% !important; max-width: 100%; }
.fm-expo-single__video iframe { aspect-ratio: 16 / 9; height: auto; }
.fm-expo-single__back { margin-top: 32px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.fm-expo__links--single { margin-top: 24px; font-size: 14px; }

/* Classic [gallery] markup */
.fm-content .gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 28px 0; }
.fm-content .gallery .gallery-item { margin: 0; width: auto !important; }
.fm-content .gallery .gallery-icon a { display: block; overflow: hidden; cursor: zoom-in; }
.fm-content .gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; border: 0 !important; transition: opacity .2s; }
.fm-content .gallery a:hover img { opacity: .85; }
.fm-content .gallery br { display: none; }
@media (max-width: 767px) { .fm-content .gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; } }

/* ---------- Migrated page content ---------- */
.fm-center { text-align: center; }
.fm-figure { margin: 1.4em 0; }
.fm-content mark.fm-highlight { background: none; color: #fff; border: 1px solid var(--fm-accent); padding: 2px 6px; }
.fm-content img.alignleft { float: left; margin: 4px 28px 16px 0; max-width: 45%; }
.fm-content img.alignright { float: right; margin: 4px 0 16px 28px; max-width: 45%; }
.fm-content::after { content: ""; display: table; clear: both; }
@media (max-width: 600px) { .fm-content img.alignleft, .fm-content img.alignright { float: none; max-width: 100%; margin: 0 0 18px; } }

/* Bibliography: press lists by period, open and close like the original */
.fm-toggle { border-bottom: 1px solid rgba(255,255,255,.14); }
.fm-toggle summary {
	cursor: pointer; list-style: none; padding: 14px 32px 14px 0; position: relative;
	font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: #fff;
}
.fm-toggle summary::-webkit-details-marker { display: none; }
.fm-toggle summary::after { content: "+"; position: absolute; right: 4px; top: 10px; font-size: 20px; color: var(--fm-accent); }
.fm-toggle[open] summary::after { content: "−"; }
.fm-toggle ul { margin: 0 0 18px; padding-left: 20px; }
.fm-toggle li { padding: 3px 0; }

/* About the artist: the photograph as wide as the site (1196 px), his words underneath,
   then the essay in a grey box. Same layout on every screen size. */
.fm-page .fm-content .fm-about-photo,
.fm-page .fm-content .fm-about-words,
.fm-page .fm-content .fm-about-essay {
	--fm-about-w: min(var(--fm-container), calc(100vw - 2 * var(--fm-gutter) - 16px));
	width: var(--fm-about-w); max-width: none;
	margin-left: calc((100% - var(--fm-about-w)) / 2) !important;
}
.fm-page .fm-content .fm-about-photo { margin-top: 0; margin-bottom: clamp(28px, 4vw, 44px); }
.fm-page .fm-content .fm-about-photo img { display: block; width: 100%; height: auto; }
/* His words: same width and same inner margins as the grey essay box below */
.fm-page .fm-content .fm-about-words { padding: 0 clamp(24px, 4vw, 50px); box-sizing: border-box; }
.fm-page .fm-content .fm-about-words p {
	max-width: none; color: #fff; font-size: 16px; line-height: 1.75; margin: 0 0 18px; text-align: justify;
}
.fm-page .fm-content .fm-about-words p:last-child { font-style: italic; color: #bbb; margin-bottom: 0; }
.fm-page .fm-content .fm-about-essay {
	margin-top: clamp(36px, 5vw, 56px) !important; margin-bottom: 40px !important; margin-right: 0 !important;
	padding: clamp(24px, 4vw, 50px) !important; border: 0 !important; font-style: normal !important;
	background: #bdbdbd; /* light-grey band, lighter than the original so the text reads easily */
	opacity: 1 !important; color: #111 !important;
}
.fm-page .fm-content .fm-about-essay p * { color: inherit !important; }
.fm-page .fm-content .fm-about-essay p { color: #111 !important; font-size: 16px; line-height: 1.75; text-align: justify; } /* same size as his words above */
.fm-page .fm-content .fm-about-essay p.fm-credit { font-size: 14px; color: #2b2b2b !important; }
/* Text after the grey box (video caption): same width, margins and size */
.fm-page .fm-content .fm-about-essay ~ p {
	--fm-about-w: min(var(--fm-container), calc(100vw - 2 * var(--fm-gutter) - 16px));
	width: var(--fm-about-w); max-width: none; box-sizing: border-box;
	margin-left: calc((100% - var(--fm-about-w)) / 2) !important;
	padding: 0 clamp(24px, 4vw, 50px); font-size: 16px; line-height: 1.75; color: #fff;
}
.fm-page .fm-content .fm-about-essay p.fm-credit { text-align: right; }
.fm-page:has(.fm-about-photo) .fm-page-title { max-width: calc(var(--fm-container) + 2 * var(--fm-gutter)); } /* title lines up with the photograph */
@media (max-width: 899px) {
	.fm-page .fm-content .fm-about-photo,
	.fm-page .fm-content .fm-about-words,
	.fm-page .fm-content .fm-about-essay { --fm-about-w: 100%; }
	.fm-page .fm-content .fm-about-words p { font-size: 15px; line-height: 1.65; }
	.fm-page .fm-content .fm-about-essay p, .fm-page .fm-content .fm-about-essay ~ p { font-size: 15px; line-height: 1.65; }
	.fm-page .fm-content .fm-about-essay ~ p { --fm-about-w: 100%; padding: 0; }
}
@media (max-width: 767px) {
	.fm-page .fm-content .fm-about-essay p:not(.fm-credit), .fm-page .fm-content .fm-about-words p { text-align: left !important; } /* no gappy justified lines on phones */
}

/* Click-to-reveal email */
.fm-email__btn { background: none; border: 0; padding: 0; font: inherit; color: var(--fm-accent); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fm-email__btn:hover, .fm-email__btn:focus-visible { color: #fff; }
.fm-contact-email { margin-top: 28px; }

/* Privacy notice and tick box in the contact form */
.fm-form-privacy { font-size: 12px; line-height: 1.5; opacity: .9; margin: 18px 0 8px; }
.fm-form-privacy a { color: inherit; text-decoration: underline; }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-acceptance label { display: inline-flex; gap: 8px; align-items: flex-start; font-size: 13px; cursor: pointer; }
.wpcf7 .wpcf7-acceptance input { margin-top: 3px; }

/* Cookie policy table */
.fm-cookie-table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 14px; }
.fm-cookie-table th, .fm-cookie-table td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid #333; }
.fm-cookie-table th { color: #fff; font-weight: 700; }
.fm-cookie-table code { font-size: 13px; color: #fff; white-space: nowrap; }
@media (max-width: 600px) {
	.fm-cookie-table thead { display: none; }
	.fm-cookie-table tr { display: block; padding: 10px 0; border-bottom: 1px solid #333; }
	.fm-cookie-table td { display: block; padding: 2px 0; border: 0; }
}

/* Site map */
.fm-sitemap ul { padding-left: 20px; }
.fm-sitemap li { padding: 3px 0; }

