/* ==========================================================================
   MC Aesthetic — design system
   Tokens, typography, layout primitives and components for the Blocksy
   child theme + Elementor. Documentation: DESIGN-SYSTEM.md
   Everything is scoped to body.mc-ds so it can be switched off with ?mc-ds=off.
   ========================================================================== */

/* -------------------------------------------------------------------------
   1. Fonts (self-hosted, SIL Open Font License — see assets/fonts/OFL-*.txt)
   ------------------------------------------------------------------------- */

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond-latin-500.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond-latin-600.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-latin-wght.woff2") format("woff2");
	font-weight: 400 600;
	font-style: normal;
	font-display: swap;
}

/* -------------------------------------------------------------------------
   2. Tokens
   ------------------------------------------------------------------------- */

:root {
	/* Colour */
	--mc-charcoal: #111112;
	--mc-charcoal-2: #1b1b1d;
	--mc-ivory: #f5f1eb;
	--mc-white: #ffffff;
	--mc-gold: #bfa16a;
	--mc-gold-hover: #d2b886;
	--mc-gold-deep: #7a6232; /* small gold text on light surfaces: 5.1:1 on ivory */
	--mc-ink: #242321;
	--mc-ink-2: #655d55;
	--mc-on-dark: #f5f1eb;
	--mc-on-dark-2: #bdb7af;
	--mc-line-light: rgba(36, 35, 33, 0.16);
	--mc-line-dark: rgba(245, 241, 235, 0.16);
	--mc-error: #a3352b;
	--mc-error-on-dark: #f0a49b;
	--mc-success: #3f6b4a;

	/* Type */
	--mc-serif: "Cormorant Garamond", "Cormorant", Garamond, "Times New Roman", serif;
	--mc-sans: "Manrope", "Helvetica Neue", Arial, system-ui, sans-serif;
	--mc-fs-hero: clamp(2.75rem, 1.6rem + 4.2vw, 5.25rem);       /* 44 → 84 */
	--mc-fs-h1: clamp(2.5rem, 1.7rem + 3.2vw, 4.25rem);          /* 40 → 68 */
	--mc-fs-h2: clamp(2rem, 1.45rem + 1.9vw, 3.125rem);          /* 32 → 50 */
	--mc-fs-h3: clamp(1.5rem, 1.3rem + 0.7vw, 1.875rem);         /* 24 → 30 */
	--mc-fs-h4: clamp(1.0625rem, 1rem + 0.2vw, 1.1875rem);       /* 17 → 19 */
	--mc-fs-lead: clamp(1.125rem, 1rem + 0.45vw, 1.3125rem);     /* 18 → 21 */
	--mc-fs-body: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);       /* 16 → 18 */
	--mc-fs-small: 0.9375rem;                                    /* 15 */
	--mc-fs-label: 0.75rem;                                      /* 12 */
	--mc-lh-body: 1.65;
	--mc-measure: 62ch;

	/* Space (base scale 8 · 16 · 24 · 32 · 48 · 64 · 96) */
	--mc-s1: 8px;
	--mc-s2: 16px;
	--mc-s3: 24px;
	--mc-s4: 32px;
	--mc-s5: 48px;
	--mc-s6: 64px;
	--mc-s7: 96px;
	--mc-gutter: clamp(1.25rem, 0.25rem + 4vw, 4rem);            /* 20 → 32 → 62 */
	--mc-section: clamp(3.5rem, 2rem + 6vw, 7.5rem);             /* 56 → 120 */
	--mc-content: 1200px;
	--mc-grid-gap: clamp(1rem, 0.5rem + 1.6vw, 2rem);            /* 16 → 32 */
	--mc-split-gap: clamp(2rem, 1rem + 5vw, 6rem);               /* 32 → 96 */

	/* Shape + motion */
	--mc-radius: 6px;
	--mc-radius-sm: 4px;
	--mc-control-h: 50px;
	--mc-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--mc-fast: 200ms;
}

/* -------------------------------------------------------------------------
   3. Base
   ------------------------------------------------------------------------- */

/* In-page links (#faq, #microblading…) land clear of the sticky header */
html {
	scroll-padding-top: 100px;
}

body.mc-ds {
	background: var(--mc-ivory);
	color: var(--mc-ink);
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-body);
	font-weight: 400;
	line-height: var(--mc-lh-body);
	letter-spacing: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;

	/* Blocksy variables, so theme-generated parts follow the system */
	--theme-font-family: var(--mc-sans);
	--theme-text-color: var(--mc-ink);
	--theme-headings-color: var(--mc-ink);
	--theme-link-initial-color: var(--mc-ink);
	--theme-link-hover-color: var(--mc-gold-deep);
	--theme-border-color: var(--mc-line-light);
	--theme-button-min-height: var(--mc-control-h);
	--theme-content-spacing: 0;
}

.mc-ds #main-container,
.mc-ds .site-main {
	background: var(--mc-ivory);
}

.mc-ds :where(h1, h2, h3, h4, h5, h6, .elementor-heading-title) {
	font-family: var(--mc-serif);
	font-weight: 500;
	color: inherit;
	letter-spacing: 0;
	text-transform: none;
	margin: 0;
}

.mc-ds :where(h1) { font-size: var(--mc-fs-h1); line-height: 1.06; }
.mc-ds :where(h2) { font-size: var(--mc-fs-h2); line-height: 1.12; }
.mc-ds :where(h3) { font-size: var(--mc-fs-h3); line-height: 1.2; }
.mc-ds :where(h4, h5, h6) {
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-h4);
	font-weight: 600;
	line-height: 1.4;
}

/* Elementor heading widgets: size follows the HTML tag, never the widget field */
.mc-ds .elementor-widget-heading h1.elementor-heading-title { font-size: var(--mc-fs-h1); line-height: 1.06; }
.mc-ds .elementor-widget-heading h2.elementor-heading-title { font-size: var(--mc-fs-h2); line-height: 1.12; }
.mc-ds .elementor-widget-heading h3.elementor-heading-title { font-size: var(--mc-fs-h3); line-height: 1.2; }
.mc-ds .elementor-widget-heading :is(h4, h5, h6).elementor-heading-title {
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-h4);
	font-weight: 600;
	line-height: 1.4;
}

.mc-ds .elementor-widget-heading .elementor-heading-title,
.mc-ds .elementor-widget-text-editor {
	color: inherit;
	font-family: inherit;
}

.mc-ds .elementor-widget-heading .elementor-heading-title {
	font-family: var(--mc-serif);
	margin: 0;
	padding: 0;
}

.mc-ds .elementor-widget-text-editor {
	font-size: var(--mc-fs-body);
	line-height: var(--mc-lh-body);
	max-width: var(--mc-measure);
}

.mc-ds .elementor-widget-text-editor > :is(p, ul, ol):last-child,
.mc-ds .elementor-widget-text-editor > .elementor-widget-container > :is(p, ul, ol):last-child {
	margin-bottom: 0;
}

.mc-ds .elementor-widget-text-editor p { margin: 0 0 1em; }

.mc-ds .elementor-widget-text-editor :is(ul, ol) {
	margin: 0 0 1em;
	padding-left: 1.2em;
}

.mc-ds .elementor-widget-text-editor li + li { margin-top: 0.4em; }

.mc-ds strong { font-weight: 600; }

/* Inline links */
.mc-ds .elementor-widget-text-editor a,
.mc-ds .mc-link,
.mc-ds .entry-content :not(.elementor) a:not(.wp-element-button, .elementor-button, .ct-button) {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
	text-decoration-color: var(--mc-gold);
	transition: text-decoration-color var(--mc-fast) var(--mc-ease), color var(--mc-fast) var(--mc-ease);
}

.mc-ds .elementor-widget-text-editor a:hover,
.mc-ds .mc-link:hover,
.mc-ds .entry-content :not(.elementor) a:not(.wp-element-button, .elementor-button, .ct-button):hover {
	text-decoration-color: currentColor;
}

/* Visible keyboard focus everywhere */
.mc-ds :focus-visible {
	outline: 2px solid var(--mc-ink);
	outline-offset: 3px;
	border-radius: 2px;
}

.mc-ds :is(.mc-surface-charcoal, .mc-surface-charcoal-2, #header, #offcanvas, #footer, .mc-lightbox) :focus-visible {
	outline-color: var(--mc-gold);
}

.mc-ds ::selection {
	background: var(--mc-gold);
	color: var(--mc-charcoal);
}

.mc-ds img { max-width: 100%; height: auto; }

/* Skip link (Blocksy) */
.mc-ds .skip-link:focus {
	background: var(--mc-gold);
	color: var(--mc-charcoal);
	font: 600 15px/1 var(--mc-sans);
	padding: 16px 20px;
	border-radius: var(--mc-radius-sm);
	z-index: 100000;
}

/* -------------------------------------------------------------------------
   4. Layout primitives
   ------------------------------------------------------------------------- */

/* Elementor containers: the system owns padding and gaps */
.mc-ds .elementor .e-con {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--margin-top: 0px;
	--margin-bottom: 0px;
	--row-gap: var(--mc-s3);
	--column-gap: var(--mc-s3);
	--gap: var(--mc-s3);
}

.mc-ds .elementor .e-con > .elementor-widget,
.mc-ds .elementor .e-con > .e-con {
	margin-block: 0;
}

/* Section: a full-width band */
.mc-ds .elementor .mc-section {
	--padding-top: var(--mc-section);
	--padding-bottom: var(--mc-section);
	--padding-left: var(--mc-gutter);
	--padding-right: var(--mc-gutter);
	padding: var(--mc-section) var(--mc-gutter);
	position: relative;
}

.mc-ds .elementor .mc-section.mc-section--tight {
	--padding-top: calc(var(--mc-section) * 0.6);
	--padding-bottom: calc(var(--mc-section) * 0.6);
	padding-block: calc(var(--mc-section) * 0.6);
}

.mc-ds .elementor .mc-section.mc-section--flush-top {
	--padding-top: 0px;
	padding-top: 0;
}

/* Wrap: content column, max 1200px */
.mc-ds .elementor .mc-wrap {
	width: 100%;
	max-width: var(--mc-content);
	margin-inline: auto;
	--row-gap: var(--mc-s5);
	gap: var(--mc-s5);
}

.mc-ds .elementor .mc-wrap.mc-wrap--narrow { max-width: 820px; }

/* Stack: vertical rhythm for text blocks */
.mc-ds .elementor .mc-stack {
	--row-gap: var(--mc-s3);
	gap: var(--mc-s3);
	flex-direction: column;
	--flex-direction: column;
	min-width: 0;
}

.mc-ds .elementor .mc-stack > .mc-eyebrow { margin-bottom: calc(var(--mc-s1) * -1); }

/* Split: image + text in two aligned columns */
.mc-ds .elementor .mc-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--mc-s5);
	align-items: center;
}

@media (max-width: 767px) {
	.mc-ds .elementor .mc-split > .mc-frame { max-width: 520px; }
}

@media (min-width: 768px) {
	.mc-ds .elementor .mc-split {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		gap: var(--mc-split-gap);
	}

	.mc-ds .elementor .mc-split.mc-split--text-first {
		grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	}

	.mc-ds .elementor .mc-split.mc-split--even {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.mc-ds .elementor .mc-split.mc-split--top { align-items: start; }
}

/* Grid: equal columns (galleries, cards)
   mc-grid          gallery: 2 → 3 columns
   mc-grid--4       gallery: 2 → 4 columns
   mc-grid--cards   text cards: 1 → 2 → 3 columns (with --4 / --2 modifiers) */
.mc-ds .elementor .mc-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--mc-grid-gap);
	align-items: start;
}

.mc-ds .elementor .mc-grid > * { width: auto; --width: auto; }

.mc-ds .elementor .mc-grid.mc-grid--cards {
	grid-template-columns: minmax(0, 1fr);
	gap: var(--mc-s4) var(--mc-grid-gap);
}

@media (min-width: 700px) {
	.mc-ds .elementor .mc-grid.mc-grid--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.mc-ds .elementor .mc-grid,
	.mc-ds .elementor .mc-grid.mc-grid--cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	.mc-ds .elementor .mc-grid.mc-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.mc-ds .elementor .mc-grid.mc-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Row of actions (buttons / links) */
.mc-ds .elementor .mc-actions {
	flex-direction: row;
	--flex-direction: row;
	flex-wrap: wrap;
	--flex-wrap: wrap;
	align-items: center;
	--align-items: center;
	gap: var(--mc-s2);
	--row-gap: var(--mc-s2);
	--column-gap: var(--mc-s2);
	margin-top: var(--mc-s1);
}

.mc-ds .elementor .mc-actions > .elementor-widget { width: auto; }

/* Elementor gives child containers --width:100%; layout primitives size their own children */
.mc-ds .elementor :is(.mc-split, .mc-headline-row, .mc-timeline-item) > .e-con { --width: auto; width: auto; }

/* Header row: intro on the left, link on the right */
.mc-ds .elementor .mc-headline-row {
	flex-direction: column;
	--flex-direction: column;
	gap: var(--mc-s3);
}

@media (min-width: 900px) {
	.mc-ds .elementor .mc-headline-row {
		flex-direction: row;
		--flex-direction: row;
		justify-content: space-between;
		align-items: flex-end;
	}

	.mc-ds .elementor .mc-headline-row > .mc-intro { max-width: 640px; flex: 1 1 auto; }
	.mc-ds .elementor .mc-headline-row > .mc-actions { flex: 0 0 auto; margin: 0; }
}

/* Centered */
.mc-ds .elementor .mc-center {
	text-align: center;
	align-items: center;
	--align-items: center;
}

.mc-ds .elementor .mc-center .elementor-widget-text-editor { margin-inline: auto; }
.mc-ds .elementor .mc-center.mc-actions,
.mc-ds .elementor .mc-center .mc-actions { justify-content: center; --justify-content: center; }

/* -------------------------------------------------------------------------
   5. Surfaces
   ------------------------------------------------------------------------- */

.mc-ds .elementor .mc-surface-ivory { background-color: var(--mc-ivory); color: var(--mc-ink); }
.mc-ds .elementor .mc-surface-white { background-color: var(--mc-white); color: var(--mc-ink); }

.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) {
	color: var(--mc-on-dark);
}

.mc-ds .elementor .mc-surface-charcoal { background-color: var(--mc-charcoal); }
.mc-ds .elementor .mc-surface-charcoal-2 { background-color: var(--mc-charcoal-2); }

.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .elementor-widget-text-editor {
	color: var(--mc-on-dark-2);
}

.mc-ds .elementor .mc-hairline { border-top: 1px solid var(--mc-line-light); }

/* -------------------------------------------------------------------------
   6. Text components
   ------------------------------------------------------------------------- */

/* Eyebrow: short uppercase label above a heading */
.mc-ds .elementor .mc-eyebrow .elementor-heading-title,
.mc-ds .mc-eyebrow-text {
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-label);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--mc-gold-deep);
}

.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-eyebrow .elementor-heading-title {
	color: var(--mc-gold);
}

/* Lead paragraph */
.mc-ds .elementor .mc-lead,
.mc-ds .elementor .mc-lead p {
	font-size: var(--mc-fs-lead);
	line-height: 1.55;
	color: inherit;
}

.mc-ds .elementor :is(.mc-surface-ivory, .mc-surface-white) .mc-lead { color: var(--mc-ink); }
.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-lead { color: var(--mc-on-dark); }

/* Secondary / muted text */
.mc-ds .elementor .mc-muted { color: var(--mc-ink-2); }
.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-muted { color: var(--mc-on-dark-2); }

.mc-ds .elementor .mc-small { font-size: var(--mc-fs-small); }

/* Section intro: eyebrow + title + optional text */
.mc-ds .elementor .mc-intro {
	--row-gap: var(--mc-s3);
	gap: var(--mc-s3);
	max-width: 720px;
}

.mc-ds .elementor .mc-intro > .mc-eyebrow { margin-bottom: calc(var(--mc-s1) * -1); }
.mc-ds .elementor .mc-intro.mc-center { margin-inline: auto; }

/* -------------------------------------------------------------------------
   7. Buttons and links
   ------------------------------------------------------------------------- */

.mc-ds .elementor-button,
.mc-ds .ct-button,
.mc-ds .wp-element-button,
.mc-ds button.wpforms-submit,
.mc-ds .wpforms-container .wpforms-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: var(--mc-control-h);
	padding: 0 28px;
	border: 1px solid var(--mc-gold);
	border-radius: var(--mc-radius-sm);
	background-color: var(--mc-gold);
	color: var(--mc-charcoal);
	font-family: var(--mc-sans);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: none;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition: background-color var(--mc-fast) var(--mc-ease), border-color var(--mc-fast) var(--mc-ease), color var(--mc-fast) var(--mc-ease);
}

.mc-ds .elementor-button:hover,
.mc-ds .elementor-button:focus-visible,
.mc-ds .ct-button:hover,
.mc-ds .wp-element-button:hover,
.mc-ds .wpforms-container .wpforms-submit:hover {
	background-color: var(--mc-gold-hover);
	border-color: var(--mc-gold-hover);
	color: var(--mc-charcoal);
}

.mc-ds .elementor-button .elementor-button-text { line-height: 1.2; }

/* Secondary: outline that reads on any surface */
.mc-ds .mc-btn-secondary .elementor-button {
	background-color: transparent;
	border-color: currentColor;
	color: var(--mc-ink);
}

.mc-ds .mc-btn-secondary .elementor-button:hover,
.mc-ds .mc-btn-secondary .elementor-button:focus-visible {
	background-color: var(--mc-ink);
	border-color: var(--mc-ink);
	color: var(--mc-ivory);
}

.mc-ds :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-btn-secondary .elementor-button {
	color: var(--mc-on-dark);
	border-color: rgba(245, 241, 235, 0.55);
}

.mc-ds :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-btn-secondary .elementor-button:hover,
.mc-ds :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-btn-secondary .elementor-button:focus-visible {
	background-color: var(--mc-ivory);
	border-color: var(--mc-ivory);
	color: var(--mc-charcoal);
}

/* Text link with a small arrow */
.mc-ds .mc-btn-link .elementor-button,
.mc-ds a.mc-arrow-link {
	min-height: 44px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--mc-ink);
	font-weight: 600;
	letter-spacing: 0.01em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.35em;
	text-decoration-color: var(--mc-gold);
}

.mc-ds .mc-btn-link .elementor-button .elementor-button-text::after,
.mc-ds a.mc-arrow-link::after {
	content: "→";
	display: inline-block;
	margin-left: 0.5em;
	text-decoration: none;
	transition: transform var(--mc-fast) var(--mc-ease);
}

.mc-ds .mc-btn-link .elementor-button:hover,
.mc-ds a.mc-arrow-link:hover {
	background: none;
	color: var(--mc-ink);
	text-decoration-color: currentColor;
}

.mc-ds .mc-btn-link .elementor-button:hover .elementor-button-text::after,
.mc-ds a.mc-arrow-link:hover::after {
	transform: translateX(3px);
}

.mc-ds :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-btn-link .elementor-button,
.mc-ds :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-btn-link .elementor-button:hover {
	color: var(--mc-on-dark);
}

@media (max-width: 479px) {
	.mc-ds .elementor .mc-actions > .elementor-widget-button:not(.mc-btn-link) { width: 100%; }
	.mc-ds .elementor .mc-actions > .elementor-widget-button:not(.mc-btn-link) .elementor-button { width: 100%; }
}

/* -------------------------------------------------------------------------
   8. Images
   ------------------------------------------------------------------------- */

.mc-ds .elementor .mc-frame { width: 100%; }

.mc-ds .elementor .mc-frame :is(figure, a) { display: block; margin: 0; }

.mc-ds .elementor .mc-frame img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: var(--mc-ratio, 4 / 5);
	object-fit: cover;
	object-position: var(--mc-focus, 50% 30%);
	border-radius: var(--mc-radius);
	background-color: var(--mc-charcoal-2);
}

.mc-ds .elementor .mc-frame--landscape { --mc-ratio: 3 / 2; }
.mc-ds .elementor .mc-frame--tall { --mc-ratio: 2 / 3; }
.mc-ds .elementor .mc-frame--square { --mc-ratio: 1 / 1; }
.mc-ds .elementor .mc-focus-left { --mc-focus: 22% 40%; }

/* Portfolio tile: image-led, quiet caption */
.mc-ds .elementor .mc-tile figure { display: block; margin: 0; }

.mc-ds .elementor .mc-tile a {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: var(--mc-radius);
	cursor: zoom-in;
}

.mc-ds .elementor .mc-tile img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: var(--mc-focus, 50% 50%);
	border-radius: var(--mc-radius);
	background-color: var(--mc-charcoal-2);
	transition: transform 400ms var(--mc-ease), opacity var(--mc-fast) var(--mc-ease);
}

.mc-ds .elementor .mc-tile a:hover img { transform: scale(1.025); }

.mc-ds .elementor .mc-tile figcaption,
.mc-ds .elementor .mc-tile .widget-image-caption {
	margin: 12px 0 0;
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-small);
	line-height: 1.45;
	text-align: left;
	color: var(--mc-ink-2);
}

.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-tile figcaption {
	color: var(--mc-on-dark-2);
}

/* -------------------------------------------------------------------------
   9. Home hero
   ------------------------------------------------------------------------- */

.mc-ds .elementor .mc-hero {
	--padding-top: clamp(2.5rem, 1rem + 5vw, 6rem);
	--padding-bottom: clamp(3.5rem, 1.5rem + 6vw, 7.5rem);
	padding: clamp(2.5rem, 1rem + 5vw, 6rem) var(--mc-gutter) clamp(3.5rem, 1.5rem + 6vw, 7.5rem);
	background-color: var(--mc-charcoal);
	background-image: radial-gradient(120% 90% at 78% 30%, #1d1c1d 0%, var(--mc-charcoal) 62%);
	color: var(--mc-on-dark);
	overflow: hidden;
}

.mc-ds .elementor .mc-hero .mc-split { gap: clamp(2.5rem, 1rem + 6vw, 7rem); }

@media (min-width: 768px) {
	.mc-ds .elementor .mc-hero .mc-split { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}

.mc-ds .elementor .mc-hero__name .elementor-heading-title {
	font-family: var(--mc-sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--mc-gold);
}

.mc-ds .elementor .mc-hero h1.elementor-heading-title {
	font-size: var(--mc-fs-hero);
	font-weight: 500;
	line-height: 1.02;
	color: var(--mc-on-dark);
	text-wrap: balance;
}

.mc-ds .elementor .mc-hero .mc-lead { max-width: 34em; color: var(--mc-on-dark-2); }
.mc-ds .elementor .mc-hero .mc-lead p { color: var(--mc-on-dark-2); }

.mc-ds .elementor .mc-hero .mc-actions { margin-top: var(--mc-s2); }

/* Portrait: a clean rectangular frame, clearly separated from the text */
.mc-ds .elementor .mc-hero__portrait {
	width: 100%;
	max-width: 500px;
	justify-self: center;
}

.mc-ds .elementor .mc-hero__portrait img {
	--mc-ratio: 4 / 5;
	--mc-focus: 50% 25%;
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.6);
}

@media (min-width: 768px) {
	.mc-ds .elementor .mc-hero__portrait { justify-self: end; }
}

@media (max-width: 767px) {
	.mc-ds .elementor .mc-hero__portrait { max-width: 440px; justify-self: start; }
}

/* -------------------------------------------------------------------------
   10. Inner-page header
   ------------------------------------------------------------------------- */

.mc-ds .elementor .mc-page-hero {
	--padding-top: clamp(3.5rem, 2rem + 5vw, 7rem);
	--padding-bottom: clamp(3rem, 1.5rem + 4vw, 6rem);
	padding: clamp(3.5rem, 2rem + 5vw, 7rem) var(--mc-gutter) clamp(3rem, 1.5rem + 4vw, 6rem);
	background-color: var(--mc-charcoal);
	color: var(--mc-on-dark);
}

.mc-ds .elementor .mc-page-hero .mc-intro { max-width: 760px; }
.mc-ds .elementor .mc-page-hero .mc-lead { color: var(--mc-on-dark-2); }

/* -------------------------------------------------------------------------
   11. Services, steps, credentials
   ------------------------------------------------------------------------- */

/* Service summary: hairline, small index, title, text */
.mc-ds .elementor .mc-service {
	--row-gap: var(--mc-s2);
	gap: var(--mc-s2);
	padding-top: var(--mc-s3);
	border-top: 1px solid var(--mc-line-light);
}

.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-service { border-top-color: var(--mc-line-dark); }

.mc-ds .elementor .mc-service .mc-index .elementor-heading-title {
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-label);
	font-weight: 600;
	letter-spacing: 0.16em;
	color: var(--mc-gold-deep);
}

.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-service .mc-index .elementor-heading-title { color: var(--mc-gold); }

.mc-ds .elementor .mc-service .elementor-widget-text-editor { color: var(--mc-ink-2); }
.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-service .elementor-widget-text-editor { color: var(--mc-on-dark-2); }

/* Detailed service row on the PMU page */
.mc-ds .elementor .mc-service-row + .mc-service-row {
	padding-top: var(--mc-s6);
	border-top: 1px solid var(--mc-line-light);
}

.mc-ds .elementor .mc-service-row .mc-frame { max-width: 460px; }

@media (min-width: 768px) {
	.mc-ds .elementor .mc-service-row.mc-split { grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); }
}

.mc-ds .elementor .mc-facts {
	font-size: var(--mc-fs-small);
	color: var(--mc-ink-2);
}

.mc-ds .elementor .mc-facts ul {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--mc-line-light);
}

.mc-ds .elementor .mc-facts li {
	margin: 0;
	padding: 12px 0;
	border-bottom: 1px solid var(--mc-line-light);
}

.mc-ds .elementor .mc-facts li strong { color: var(--mc-ink); font-weight: 600; }

/* Numbered steps */
.mc-ds .elementor .mc-step {
	--row-gap: var(--mc-s2);
	gap: var(--mc-s2);
	padding-top: var(--mc-s3);
	border-top: 1px solid var(--mc-gold);
}

/* Credentials list */
.mc-ds .elementor .mc-credential {
	--row-gap: var(--mc-s1);
	gap: var(--mc-s1);
	padding-top: var(--mc-s3);
	border-top: 1px solid var(--mc-line-light);
}

.mc-ds .elementor :is(.mc-surface-charcoal, .mc-surface-charcoal-2, .mc-hero) .mc-credential { border-top-color: var(--mc-line-dark); }

/* Timeline (About) */
.mc-ds .elementor .mc-timeline-item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--mc-s1);
	padding: var(--mc-s3) 0;
	border-top: 1px solid var(--mc-line-light);
}

@media (min-width: 768px) {
	.mc-ds .elementor .mc-timeline-item {
		grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
		gap: var(--mc-s4);
	}
}

/* -------------------------------------------------------------------------
   12. FAQ (Elementor nested accordion)
   ------------------------------------------------------------------------- */

.mc-ds .elementor .mc-faq {
	--n-accordion-title-justify-content: space-between;
	--n-accordion-title-flex-grow: 1;
	--n-accordion-title-icon-order: 2;
	--n-accordion-item-title-distance-from-content: 0px;
	--n-accordion-item-title-space-between: 0px;
}

.mc-ds .elementor .mc-faq .e-n-accordion-item {
	border-bottom: 1px solid var(--mc-line-light);
}

.mc-ds .elementor .mc-faq .e-n-accordion-item-title-header { flex: 1 1 auto; text-align: left; }

.mc-ds .elementor .mc-faq .e-n-accordion-item:first-child { border-top: 1px solid var(--mc-line-light); }

.mc-ds .elementor .mc-faq .e-n-accordion-item-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mc-s3);
	min-height: 64px;
	padding: 20px 0;
	border: 0;
	background: none;
	color: var(--mc-ink);
	cursor: pointer;
	list-style: none;
}

.mc-ds .elementor .mc-faq .e-n-accordion-item-title::-webkit-details-marker { display: none; }

.mc-ds .elementor .mc-faq .e-n-accordion-item-title-text {
	font-family: var(--mc-serif);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--mc-ink);
}

.mc-ds .elementor .mc-faq .e-n-accordion-item-title-icon {
	flex: 0 0 auto;
	color: var(--mc-gold-deep);
}

.mc-ds .elementor .mc-faq .e-n-accordion-item-title-icon svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.mc-ds .elementor .mc-faq .e-n-accordion-item > .e-con,
.mc-ds .elementor .mc-faq .e-n-accordion-item > [role="region"] {
	padding: 0 0 var(--mc-s3);
	border: 0;
	background: none;
}

.mc-ds .elementor .mc-faq .e-n-accordion-item .elementor-widget-text-editor { color: var(--mc-ink-2); }

/* -------------------------------------------------------------------------
   13. Contact + forms (WPForms)
   ------------------------------------------------------------------------- */

.mc-ds .elementor .mc-contact-list ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--mc-line-light);
}

.mc-ds .elementor .mc-contact-list li {
	display: grid;
	gap: 2px;
	margin: 0;
	padding: 18px 0;
	border-bottom: 1px solid var(--mc-line-light);
}

.mc-ds .elementor .mc-contact-list li span {
	font-size: var(--mc-fs-label);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--mc-gold-deep);
}

.mc-ds .elementor .mc-contact-list a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-size: var(--mc-fs-lead);
}

.mc-ds .elementor .mc-form-card {
	padding: clamp(24px, 4vw, 48px);
	background: var(--mc-white);
	border: 1px solid var(--mc-line-light);
	border-radius: var(--mc-radius);
}

.mc-ds .wpforms-container {
	margin: 0;
	font-family: var(--mc-sans);
}

.mc-ds .wpforms-container .wpforms-field {
	padding: 0 0 var(--mc-s3);
	margin: 0;
}

.mc-ds .wpforms-container .wpforms-field-label,
.mc-ds .wpforms-container .wpforms-field-label-inline {
	display: block;
	margin: 0 0 8px;
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-small);
	font-weight: 600;
	line-height: 1.4;
	color: var(--mc-ink);
}

.mc-ds .wpforms-container .wpforms-required-label {
	color: var(--mc-ink-2);
	font-weight: 400;
}

.mc-ds .wpforms-container .wpforms-field-description {
	margin-top: 6px;
	font-size: 0.875rem;
	color: var(--mc-ink-2);
}

.mc-ds .wpforms-container :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea),
.mc-ds .wpforms-container .wpforms-field input.wpforms-field-large,
.mc-ds .wpforms-container .wpforms-field select.wpforms-field-large,
.mc-ds .wpforms-container .wpforms-field textarea.wpforms-field-large {
	width: 100%;
	max-width: 100%;
	min-height: var(--mc-control-h);
	height: auto;
	padding: 12px 16px;
	border: 1px solid #8f877e; /* 3.3:1 against white — visible field boundary */
	border-radius: var(--mc-radius-sm);
	background-color: var(--mc-white);
	color: var(--mc-ink);
	font-family: var(--mc-sans);
	font-size: 1rem;
	line-height: 1.5;
	box-shadow: none;
	transition: border-color var(--mc-fast) var(--mc-ease), box-shadow var(--mc-fast) var(--mc-ease);
}

.mc-ds .wpforms-container .wpforms-field textarea.wpforms-field-large,
.mc-ds .wpforms-container textarea { min-height: 160px; resize: vertical; }

.mc-ds .wpforms-container select {
	appearance: none;
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23242321' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}

.mc-ds .wpforms-container :is(input, select, textarea):hover { border-color: var(--mc-ink-2); }

.mc-ds .wpforms-container :is(input, select, textarea):focus,
.mc-ds .wpforms-container :is(input, select, textarea):focus-visible {
	outline: none;
	border-color: var(--mc-ink);
	box-shadow: 0 0 0 3px rgba(191, 161, 106, 0.55);
}

/* Error state */
.mc-ds .wpforms-container .wpforms-field :is(input, select, textarea).wpforms-error,
.mc-ds .wpforms-container .wpforms-has-error :is(input, select, textarea) {
	border-color: var(--mc-error);
	box-shadow: 0 0 0 1px var(--mc-error);
}

.mc-ds .wpforms-container :is(label.wpforms-error, em.wpforms-error),
.mc-ds .wpforms-container .wpforms-error-container,
.mc-ds .wpforms-container .wpforms-error-alert {
	display: block;
	margin-top: 8px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--mc-error);
	font-family: var(--mc-sans);
	font-size: 0.875rem;
	font-style: normal;
	font-weight: 600;
	line-height: 1.4;
}

.mc-ds .wpforms-container .wpforms-error-container { margin: 0 0 var(--mc-s3); }

.mc-ds .wpforms-container .wpforms-submit-container {
	margin: var(--mc-s1) 0 0;
	padding: 0;
}

.mc-ds .wpforms-container .wpforms-submit { width: 100%; }

@media (min-width: 600px) {
	.mc-ds .wpforms-container .wpforms-submit { width: auto; min-width: 200px; }
}

.mc-ds .wpforms-container .wpforms-submit-spinner { margin-left: 12px; }

/* Success state */
.mc-ds .wpforms-confirmation-container,
.mc-ds .wpforms-confirmation-container-full,
.mc-ds div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
	margin: 0;
	padding: 20px 24px;
	border: 1px solid var(--mc-success);
	border-left-width: 4px;
	border-radius: var(--mc-radius-sm);
	background: #f1f6f1;
	color: var(--mc-ink);
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-body);
}

.mc-ds :is(.wpforms-confirmation-container, .wpforms-confirmation-container-full) p:last-child { margin-bottom: 0; }

/* -------------------------------------------------------------------------
   14. Header (Blocksy header builder)
   ------------------------------------------------------------------------- */

.mc-ds #header {
	--theme-font-family: var(--mc-sans);
	background: var(--mc-charcoal);
	border-bottom: 1px solid rgba(245, 241, 235, 0.08);
}

.mc-ds #header [data-row] {
	background: var(--mc-charcoal);
	--height: 84px;
}

.mc-ds #header [data-row] > .ct-container,
.mc-ds #header [data-row] > div {
	max-width: calc(var(--mc-content) + var(--mc-gutter) * 2);
	padding-inline: var(--mc-gutter);
	width: 100%;
	margin-inline: auto;
}

@media (max-width: 999px) {
	.mc-ds #header [data-row] { --height: 72px; }
}

.mc-ds #header .site-logo-container {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

.mc-ds #header .site-logo-container img,
.mc-ds #header .site-logo-container svg {
	height: 46px;
	max-height: 46px;
	width: auto;
}

@media (max-width: 999px) {
	.mc-ds #header .site-logo-container img { height: 40px; max-height: 40px; }
}

.mc-ds #header .ct-menu-link,
.mc-ds #header [class*="header-menu"] .menu > li > a {
	--menu-item-padding: 0;
	font-family: var(--mc-sans);
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: none;
	color: var(--mc-on-dark);
	min-height: 44px;
	padding-inline: 0;
	transition: color var(--mc-fast) var(--mc-ease);
}

.mc-ds #header [class*="header-menu"] .menu {
	gap: clamp(20px, 2.6vw, 40px);
}

.mc-ds #header [class*="header-menu"] .menu > li { margin: 0; }

.mc-ds #header [class*="header-menu"] .menu > li > a {
	position: relative;
	color: var(--mc-on-dark);
}

.mc-ds #header [class*="header-menu"] .menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 8px;
	height: 1px;
	background: var(--mc-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--mc-fast) var(--mc-ease);
}

.mc-ds #header [class*="header-menu"] .menu > li > a:hover,
.mc-ds #header [class*="header-menu"] .menu > li.current-menu-item > a,
.mc-ds #header [class*="header-menu"] .menu > li.current-menu-ancestor > a {
	color: var(--mc-white);
}

.mc-ds #header [class*="header-menu"] .menu > li > a:hover::after,
.mc-ds #header [class*="header-menu"] .menu > li.current-menu-item > a::after,
.mc-ds #header [class*="header-menu"] .menu > li.current-menu-ancestor > a::after {
	transform: scaleX(1);
}

/* Blocksy's own hover indicator is replaced by the line above */
.mc-ds #header [class*="header-menu"][data-menu*="type-2"] .menu > li > a::before,
.mc-ds #header [class*="header-menu"] .menu > li > .ct-menu-link::before { display: none; }

.mc-ds #header .ct-header-cta .ct-button {
	min-height: 44px;
	padding: 0 22px;
	font-size: 0.875rem;
}

.mc-ds #header .ct-header-trigger {
	--theme-icon-color: var(--mc-on-dark);
	--theme-icon-hover-color: var(--mc-gold);
	color: var(--mc-on-dark);
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Off-canvas (mobile) menu */
.mc-ds #offcanvas,
.mc-ds #offcanvas :is(.ct-panel-inner, .ct-panel-content) {
	background-color: var(--mc-charcoal);
}

.mc-ds #offcanvas .ct-panel-content-inner {
	align-items: flex-start;
	padding-inline: var(--mc-gutter);
	gap: var(--mc-s4);
}

.mc-ds #offcanvas .ct-toggle-close {
	--theme-icon-color: var(--mc-on-dark);
	min-width: 44px;
	min-height: 44px;
	color: var(--mc-on-dark);
}

.mc-ds #offcanvas .mobile-menu { width: 100%; margin: 0; }

.mc-ds #offcanvas .mobile-menu ul { width: 100%; }

.mc-ds #offcanvas .mobile-menu li { border-bottom: 1px solid var(--mc-line-dark); }

.mc-ds #offcanvas .mobile-menu li:first-child { border-top: 1px solid var(--mc-line-dark); }

.mc-ds #offcanvas .mobile-menu a,
.mc-ds #offcanvas .mobile-menu .ct-menu-link {
	display: flex;
	align-items: center;
	min-height: 60px;
	padding: 8px 0;
	font-family: var(--mc-serif);
	font-size: 1.75rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--mc-on-dark);
}

.mc-ds #offcanvas .mobile-menu .current-menu-item > a,
.mc-ds #offcanvas .mobile-menu a:hover { color: var(--mc-gold); }

.mc-ds #offcanvas .ct-header-cta { width: 100%; }

.mc-ds #offcanvas .ct-header-cta .ct-button { width: 100%; }

/* -------------------------------------------------------------------------
   15. Footer (Blocksy footer builder + block widgets)
   ------------------------------------------------------------------------- */

.mc-ds #footer {
	background: var(--mc-charcoal);
	color: var(--mc-on-dark-2);
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-small);
	line-height: 1.6;
}

.mc-ds #footer [data-row] {
	background: var(--mc-charcoal);
}

.mc-ds #footer [data-row] > .ct-container {
	max-width: calc(var(--mc-content) + var(--mc-gutter) * 2);
	padding-inline: var(--mc-gutter);
	width: 100%;
	margin-inline: auto;
}

.mc-ds #footer [data-row="middle"] > .ct-container {
	--container-spacing: clamp(56px, 6vw, 88px);
	padding-block: clamp(56px, 6vw, 88px);
}

.mc-ds #footer [data-row="middle"] .ct-container {
	gap: clamp(32px, 4vw, 64px);
}

.mc-ds #footer [data-row="bottom"] > .ct-container {
	--container-spacing: 0px;
	padding-block: 0 24px;
	justify-content: flex-start;
}

.mc-ds #footer [data-row="bottom"] [data-column] {
	justify-content: flex-start;
	width: 100%;
	padding-top: 24px;
	border-top: 1px solid var(--mc-line-dark);
}

.mc-ds #footer .ct-widget { color: var(--mc-on-dark-2); margin: 0; }

.mc-ds #footer .ct-widget + .ct-widget { margin-top: var(--mc-s3); }

.mc-ds #footer .mc-footer__title,
.mc-ds #footer .widget-title {
	margin: 0 0 16px;
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-label);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--mc-gold);
}

.mc-ds #footer .mc-footer__logo img { width: 132px; height: auto; }

.mc-ds #footer .mc-footer__statement {
	max-width: 34ch;
	margin: 20px 0 0;
	color: var(--mc-on-dark-2);
}

.mc-ds #footer .mc-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mc-ds #footer .mc-footer__links li { margin: 0; line-height: 1.2; }

.mc-ds #footer a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--mc-on-dark);
	text-decoration: none;
	transition: color var(--mc-fast) var(--mc-ease);
}

.mc-ds #footer a:hover { color: var(--mc-gold); }

.mc-ds #footer .ct-footer-copyright {
	text-align: left;
	font-size: 0.875rem;
	color: var(--mc-on-dark-2);
}

.mc-ds #footer .ct-footer-copyright a {
	min-height: 44px;
	text-decoration: underline;
	text-underline-offset: 0.25em;
	text-decoration-color: var(--mc-line-dark);
}

@media (max-width: 689px) {
	.mc-ds #footer [data-row="middle"] [data-column] { text-align: left; justify-content: flex-start; align-items: flex-start; }
	.mc-ds #footer [data-row="middle"] .ct-widget { text-align: left; }
}

/* -------------------------------------------------------------------------
   16. Plain WordPress pages (privacy policy, 404, search)
   ------------------------------------------------------------------------- */

.mc-ds .hero-section .page-title,
.mc-ds .entry-header .page-title {
	font-family: var(--mc-serif);
	font-size: var(--mc-fs-h1);
	font-weight: 500;
	line-height: 1.06;
	color: var(--mc-ink);
}

.mc-ds .entry-content {
	font-size: var(--mc-fs-body);
	line-height: var(--mc-lh-body);
	color: var(--mc-ink);
}

.mc-ds .entry-content :is(h2) { font-size: var(--mc-fs-h3); margin: 1.8em 0 0.5em; }
.mc-ds .entry-content :is(h3) { font-size: var(--mc-fs-h4); margin: 1.6em 0 0.4em; }

/* Legal page body (Elementor) */
.mc-ds .elementor .mc-prose .elementor-widget-text-editor h2 {
	font-size: var(--mc-fs-h3);
	margin: 1.8em 0 0.5em;
}

.mc-ds .elementor .mc-prose .elementor-widget-text-editor h2:first-child { margin-top: 0; }

/* -------------------------------------------------------------------------
   17. Lightbox (assets/js/mc.js)
   ------------------------------------------------------------------------- */

.mc-lightbox {
	width: 100vw;
	max-width: 100vw;
	height: 100vh;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(17, 17, 18, 0.96);
	color: var(--mc-on-dark);
}

.mc-lightbox::backdrop { background: rgba(17, 17, 18, 0.9); }

.mc-lightbox__figure {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	height: 100%;
	margin: 0;
	padding: 72px 72px 32px;
}

.mc-lightbox__img {
	max-width: 100%;
	max-height: calc(100% - 48px);
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: var(--mc-radius-sm);
}

.mc-lightbox__caption {
	font-family: var(--mc-sans);
	font-size: var(--mc-fs-small);
	color: var(--mc-on-dark-2);
	text-align: center;
}

/* Scoped under .mc-ds .mc-lightbox to win over Elementor's kit-wide button styles */
.mc-ds .mc-lightbox .mc-lightbox__btn {
	position: absolute;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid var(--mc-line-dark);
	border-radius: 50%;
	background: rgba(17, 17, 18, 0.6);
	color: var(--mc-on-dark);
	font: 400 22px/1 var(--mc-sans);
	cursor: pointer;
	transition: border-color var(--mc-fast) var(--mc-ease), color var(--mc-fast) var(--mc-ease);
}

.mc-ds .mc-lightbox .mc-lightbox__btn svg {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
}

.mc-ds .mc-lightbox .mc-lightbox__btn:hover,
.mc-ds .mc-lightbox .mc-lightbox__btn:focus {
	background: rgba(17, 17, 18, 0.6);
	border-color: var(--mc-gold);
	color: var(--mc-gold);
}
.mc-ds .mc-lightbox .mc-lightbox__btn:focus-visible { outline: 2px solid var(--mc-gold); outline-offset: 3px; }
.mc-ds .mc-lightbox .mc-lightbox__close { top: 16px; right: 16px; }
.mc-ds .mc-lightbox .mc-lightbox__prev { left: 16px; top: 50%; transform: translateY(-50%); }
.mc-ds .mc-lightbox .mc-lightbox__next { right: 16px; top: 50%; transform: translateY(-50%); }

.mc-lightbox__count {
	position: absolute;
	top: 28px;
	left: 24px;
	font: 600 12px/1 var(--mc-sans);
	letter-spacing: 0.16em;
	color: var(--mc-on-dark-2);
}

@media (max-width: 599px) {
	.mc-lightbox__figure { padding: 72px 12px 96px; }
	.mc-ds .mc-lightbox .mc-lightbox__prev,
	.mc-ds .mc-lightbox .mc-lightbox__next { top: auto; bottom: 24px; transform: none; }
	.mc-ds .mc-lightbox .mc-lightbox__prev { left: calc(50% - 60px); }
	.mc-ds .mc-lightbox .mc-lightbox__next { right: calc(50% - 60px); }
}

/* -------------------------------------------------------------------------
   18. Motion
   Content is visible by default; mc.js adds html.mc-motion only when the
   visitor has not asked for reduced motion and the script has loaded.
   ------------------------------------------------------------------------- */

html.mc-motion .mc-ds .mc-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 420ms var(--mc-ease), transform 420ms var(--mc-ease);
}

html.mc-motion .mc-ds .mc-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.mc-ds *,
	.mc-ds *::before,
	.mc-ds *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.mc-ds .elementor .mc-tile a:hover img { transform: none; }
}

/* -------------------------------------------------------------------------
   19. Housekeeping
   ------------------------------------------------------------------------- */

/* Never allow sideways scrolling */
.mc-ds #main-container { overflow-x: clip; }

/* Blocksy back-to-top button */
.mc-ds .ct-back-to-top {
	--theme-icon-color: var(--mc-charcoal);
	background: var(--mc-gold);
	border-radius: var(--mc-radius-sm);
	min-width: 44px;
	min-height: 44px;
}
