/* ==========================================================================
   Moulin Peinture — front-end styles
   Ported 1:1 from the Base44 / Tailwind project. Breakpoints: sm 640px, md 768px.
   Every widget root carries .mp-w ; all classes are prefixed mp- so they never
   collide with Elementor or plugins.
   ========================================================================== */

@font-face {
	font-family: "Inter Variable";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("../fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Inter Variable";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Alias so "Inter" chosen in Elementor typography also uses the local file */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("../fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--mp-black: #000000;
	--mp-ink: #0a0a0a;
	--mp-green: #193225;
	--mp-gray: #737373;
	--mp-gray-dark: #525252;
	--mp-gray-light: #9a9a9a;
	--mp-soft: #fafafa;
	--mp-line: rgba(0, 0, 0, 0.1);
	--mp-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--mp-font: "Inter Variable", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--mp-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	--mp-gutter: 20px;
	--mp-max: 1400px;
	--mp-adminbar: var(--wp-admin--admin-bar--height, 0px);
}
@media (min-width: 768px) {
	:root { --mp-gutter: 32px; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
body.mp-body {
	margin: 0;
	background: #fff;
	color: #000;
	font-family: var(--mp-font);
	font-size: 16px;
	line-height: 1.5;
	font-feature-settings: "ss01", "cv01", "cv11";
}
:where(body.mp-body) img { max-width: 100%; height: auto; }
::selection { background: #000; color: #fff; }

html.cursor-none, html.cursor-none * { cursor: none !important; }

.mp-skip-link {
	position: absolute; left: -9999px; top: 8px; z-index: 10000;
	background: #000; color: #fff; padding: 10px 14px; font: 600 13px/1 var(--mp-font);
}
.mp-skip-link:focus { left: 8px; }

/* Mini reset inside our widgets (mirrors Tailwind preflight) — zero specificity via :where() */
:where(.mp-w) h1, :where(.mp-w) h2, :where(.mp-w) h3, :where(.mp-w) h4, :where(.mp-w) h5, :where(.mp-w) h6 { margin: 0; font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; text-transform: none; font-family: inherit; }
:where(.mp-w) p, :where(.mp-w) figure, :where(.mp-w) blockquote, :where(.mp-w) address { margin: 0; }
:where(.mp-w) ul, :where(.mp-w) ol { list-style: none; margin: 0; padding: 0; }
:where(.mp-w) a, :where(.mp-w) a:hover, :where(.mp-w) a:visited { color: inherit; text-decoration: none; }
:where(.mp-w) button, :where(.mp-w) button:hover, :where(.mp-w) button:focus { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; text-transform: inherit; letter-spacing: inherit; border-radius: 0; box-shadow: none; }
:where(.mp-w) img, :where(.mp-w) video { display: block; max-width: 100%; }
.mp-w { font-family: var(--mp-font); line-height: 1.5; }
.mp-section, .mp-hero { color: #000; }
.mp-hero { color: #fff; }

/* Neutralise Elementor spacing around our widgets */
.elementor-widget[class*="elementor-widget-mp-"] { margin-bottom: 0 !important; }
.elementor-widget[class*="elementor-widget-mp-"] > .elementor-widget-container { margin: 0; padding: 0; }
.e-con:has(> .elementor-widget[class*="elementor-widget-mp-"]:only-child),
.e-con > .e-con-inner:has(> .elementor-widget[class*="elementor-widget-mp-"]:only-child) { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; }

/* ---------- Typographic helpers ---------- */
.mp-meta { font-family: var(--mp-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; }
.mp-meta-sm { font-family: var(--mp-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; }
.mp-bold { font-weight: 700; }
.mp-gray { color: var(--mp-gray); }
.mp-gray-dark { color: var(--mp-gray-dark); }
.mp-display { font-weight: 800; letter-spacing: -0.05em; line-height: 0.85; }
.mp-h { font-weight: 800; letter-spacing: -0.04em; line-height: 0.9; }
.mp-h-xl { font-size: 36px; }
@media (min-width: 768px) { .mp-h-xl { font-size: 72px; } }
.mp-block { display: block; }

/* ---------- Layout ---------- */
.mp-section { padding-left: var(--mp-gutter); padding-right: var(--mp-gutter); position: relative; }
.mp-container { max-width: var(--mp-max); margin-left: auto; margin-right: auto; }
.mp-border-top { border-top: 1px solid var(--mp-line); }

/* ---------- Arrow link ---------- */
.mp-arrow { display: inline-flex; align-items: center; gap: 12px; font-family: var(--mp-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; }
.mp-arrow--lg { font-size: 18px; line-height: 28px; }
.mp-arrow__icon { display: inline-block; transition: transform 0.5s var(--mp-ease); }
.mp-arrow:hover .mp-arrow__icon, .mp-arrow:focus-visible .mp-arrow__icon { transform: translateX(8px); }
.mp-arrow[disabled] { opacity: 0.5; pointer-events: none; }

/* ---------- Editorial image (grayscale → colour on hover) ---------- */
.mp-img { display: block; width: 100%; height: 100%; overflow: hidden; }
.mp-w .mp-img img, .mp-w .mp-img video, .mp-img img { display: block; width: 100%; height: 100%; object-fit: cover; max-width: none; border-radius: 0; }
.mp-img--gray img { filter: grayscale(100%); transition: filter 700ms var(--mp-ease), transform 700ms var(--mp-ease); }
.mp-hover:hover .mp-img--gray img, .mp-img--gray:hover img { filter: grayscale(0); transform: scale(1.05); }
.mp-img--zoom img { transition: transform 700ms var(--mp-ease); }
.mp-hover:hover .mp-img--zoom img { transform: scale(1.05); }

/* ---------- Reveal animations ---------- */
.mp-anim .mp-reveal { opacity: 0; transform: translateY(var(--y, 40px)); transition: opacity 0.9s var(--mp-ease) var(--d, 0s), transform 0.9s var(--mp-ease) var(--d, 0s); }
.mp-anim .mp-reveal.is-in { opacity: 1; transform: none; }
.mp-lines { display: block; }
.mp-line { display: block; overflow: hidden; }
.mp-line > span { display: block; }
.mp-anim .mp-lines .mp-line > span { transform: translateY(110%); transition: transform 1s var(--mp-ease) var(--d, 0s); }
.mp-anim .mp-lines.is-in .mp-line > span { transform: none; }

/* ==========================================================================
   HEADER
   ========================================================================== */
.mp-header {
	position: fixed; top: var(--mp-adminbar); left: 0; right: 0; z-index: 100;
	user-select: none; -webkit-user-select: none;
	transition: transform 0.5s var(--mp-ease), background-color 0.5s var(--mp-ease), box-shadow 0.5s var(--mp-ease);
	background: transparent; color: #fff; font-family: var(--mp-font);
}
.mp-header.is-blend:not(.is-scrolled) { mix-blend-mode: difference; }
.mp-header.is-scrolled { background: var(--mp-header-bg, #fff); color: var(--mp-header-color, var(--mp-ink)); box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08); }
.mp-header.is-hidden { transform: translateY(calc(-100% - var(--mp-adminbar))); }
.mp-header__inner { display: flex; align-items: flex-start; justify-content: space-between; padding: 20px var(--mp-gutter); }
.mp-header__logo { display: block; line-height: 0.82; color: inherit; }
.mp-header__logo span { display: block; font-weight: 800; letter-spacing: -0.05em; font-size: 15px; }
.mp-header__logo img { display: block; max-height: 44px; width: auto; }
@media (min-width: 768px) { .mp-header__logo span { font-size: 17px; } }
.mp-header__nav { display: none; align-items: center; gap: 28px; padding-top: 4px; }
@media (min-width: 768px) { .mp-header__nav { display: flex; } }
.mp-navlink { position: relative; display: inline-block; color: inherit; }
.mp-navlink__label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 500; }
.mp-navlink--cta .mp-navlink__label { font-weight: 700; }
.mp-navlink__bar { position: absolute; bottom: -4px; left: 0; height: 1px; width: 0; background: currentColor; transition: width 0.5s var(--mp-ease), transform 0.5s var(--mp-ease); }
.mp-navlink:hover .mp-navlink__bar, .mp-navlink.is-active .mp-navlink__bar { width: 100%; }
.mp-navlink--cta .mp-navlink__bar { width: 100%; transform: scaleX(0); transform-origin: left; }
.mp-navlink--cta:hover .mp-navlink__bar { transform: scaleX(1); }
.mp-header__toggle { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; font-size: 30px; line-height: 1; font-weight: 300; color: inherit; }
@media (min-width: 768px) { .mp-header__toggle { display: none; } }

/* Mobile menu overlay */
.mp-menu {
	position: fixed; inset: 0; top: var(--mp-adminbar); z-index: 120; background: var(--mp-menu-bg, #000); color: #fff;
	display: flex; flex-direction: column; font-family: var(--mp-font);
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity 0.4s var(--mp-ease), visibility 0s linear 0.4s;
}
.mp-menu.is-open { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity 0.4s var(--mp-ease), visibility 0s; }
.mp-menu__top { display: flex; align-items: center; justify-content: space-between; padding: 20px; }
.mp-menu__brand { font-weight: 800; letter-spacing: -0.05em; font-size: 16px; }
.mp-menu__nav { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 0 24px; gap: 4px; }
.mp-menu__item { overflow: hidden; }
.mp-menu__link { display: block; font-weight: 800; letter-spacing: -0.04em; font-size: 48px; line-height: 0.95; text-transform: uppercase; transform: translateY(110%); transition: transform 0.7s var(--mp-ease); }
@media (min-width: 640px) { .mp-menu__link { font-size: 60px; } }
.mp-menu.is-open .mp-menu__link { transform: none; transition-delay: var(--d, 0s); }
.mp-menu__bottom { padding: 0 24px 40px; }
.mp-menu__cta { display: inline-block; font-size: 14px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; }
body.mp-menu-open { overflow: hidden; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.mp-footer { background: var(--mp-green); color: #fff; padding: 80px var(--mp-gutter) 32px; }
@media (min-width: 768px) { .mp-footer { padding-top: 128px; } }
.mp-footer__title { font-weight: 800; letter-spacing: -0.05em; line-height: 0.82; font-size: 20vw; }
@media (min-width: 768px) { .mp-footer__title { font-size: 13rem; } }
.mp-footer__tagline { margin-top: 24px; color: rgba(255, 255, 255, 0.5); }
.mp-footer__grid { display: grid; grid-template-columns: 1fr; gap: 40px; margin-top: 64px; border-top: 1px solid rgba(255, 255, 255, 0.1); padding-top: 40px; }
@media (min-width: 768px) { .mp-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mp-footer__label { color: rgba(255, 255, 255, 0.4); margin-bottom: 20px; }
.mp-footer__list li + li { margin-top: 8px; }
.mp-footer__list, .mp-footer__address { font-size: 14px; line-height: 20px; }
.mp-footer__list--nav { font-size: 16px; line-height: 24px; }
.mp-footer__list--nav a { font-size: 14px; line-height: 20px; }
.mp-footer__address { line-height: 1.625; }
.mp-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.mp-footer__bottom { margin-top: 64px; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; color: rgba(255, 255, 255, 0.4); }
@media (min-width: 640px) { .mp-footer__bottom { flex-direction: row; } }

.mp-mobilebar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 110; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--mp-line); background: #fff; }
.mp-mobilebar a { padding: 16px 0; text-align: center; font-weight: 700; color: #000; }
.mp-mobilebar a + a { background: #000; color: #fff; }
.mp-mobilebar-spacer { height: 56px; }
@media (min-width: 768px) { .mp-mobilebar, .mp-mobilebar-spacer { display: none; } }

/* ==========================================================================
   HERO
   ========================================================================== */
.mp-hero { position: relative; height: 92vh; min-height: 620px; width: 100%; overflow: hidden; background: #000; color: #fff; }
.mp-hero__media { position: absolute; inset: 0; }
.mp-w .mp-hero__media video, .mp-w .mp-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; }
.mp-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, var(--ov-top, 0.35)), rgba(0, 0, 0, var(--ov-mid, 0)), rgba(0, 0, 0, var(--ov-bottom, 0.45))); }
.mp-hero__content { position: relative; z-index: 10; height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: 112px var(--mp-gutter) 40px; }
@media (min-width: 768px) { .mp-hero__content { padding-bottom: 48px; } }
.mp-hero__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.mp-hero__eyebrow { color: rgba(255, 255, 255, 0.8); }
.mp-hero__label { color: rgba(255, 255, 255, 0.7); display: none; }
@media (min-width: 640px) { .mp-hero__label { display: block; } }
.mp-hero__title { font-weight: 800; letter-spacing: -0.05em; line-height: 0.82; font-size: 19vw; }
@media (min-width: 768px) { .mp-hero__title { font-size: 12rem; } }
.mp-hero__bottom { margin-top: 24px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
@media (min-width: 768px) { .mp-hero__bottom { margin-top: 32px; flex-direction: row; align-items: flex-end; } }
.mp-hero__tagline { font-weight: 800; letter-spacing: -0.04em; line-height: 0.9; font-size: 24px; }
@media (min-width: 768px) { .mp-hero__tagline { font-size: 36px; } }

/* ==========================================================================
   PAGE TITLE
   ========================================================================== */
.mp-ptitle { padding-top: 144px; padding-bottom: 64px; }
@media (min-width: 768px) { .mp-ptitle { padding-top: 192px; padding-bottom: 96px; } }
.mp-ptitle__title { font-weight: 800; letter-spacing: -0.05em; line-height: 0.85; font-size: var(--fs, 15vw); }
@media (min-width: 768px) { .mp-ptitle__title { font-size: var(--fs-md, 10rem); } }
.mp-ptitle__sub { margin-top: 32px; color: var(--mp-gray); }

/* ==========================================================================
   INTRO
   ========================================================================== */
.mp-intro { padding-top: 112px; padding-bottom: 112px; }
@media (min-width: 768px) { .mp-intro { padding-top: 176px; padding-bottom: 176px; } }
.mp-intro__inner { max-width: 1100px; margin: 0 auto; text-align: center; }
.mp-intro__title { font-weight: 800; letter-spacing: -0.04em; line-height: 0.95; font-size: 30px; }
@media (min-width: 768px) { .mp-intro__title { font-size: 48px; } }
.mp-intro__text { margin: 40px auto 0; font-size: 16px; color: var(--mp-gray-dark); max-width: 60ch; line-height: 1.625; }
@media (min-width: 768px) { .mp-intro__text { margin-top: 56px; font-size: 18px; } }
.mp-intro--left .mp-intro__inner { text-align: left; margin-left: 0; }
.mp-intro--left .mp-intro__text { margin-left: 0; }

/* ==========================================================================
   MARQUEE
   ========================================================================== */
.mp-marquee { overflow: hidden; border-top: 1px solid var(--mp-line); border-bottom: 1px solid var(--mp-line); padding: 20px 0; }
.mp-marquee__track { display: flex; width: max-content; white-space: nowrap; animation: mp-marquee var(--speed, 30s) linear infinite; will-change: transform; }
.mp-marquee--pause:hover .mp-marquee__track { animation-play-state: paused; }
.mp-marquee__item { margin: 0 32px; font-size: 14px; line-height: 20px; text-transform: uppercase; letter-spacing: 0.15em; font-weight: 500; color: rgba(0, 0, 0, 0.7); display: flex; align-items: center; gap: 32px; }
.mp-marquee__sep { color: rgba(0, 0, 0, 0.25); }
@keyframes mp-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ==========================================================================
   SERVICES LIST (home — liquid paint rows)
   ========================================================================== */
.mp-services { padding-top: 80px; padding-bottom: 80px; }
@media (min-width: 768px) { .mp-services { padding-top: 128px; padding-bottom: 128px; } }
.mp-services__label { margin-bottom: 40px; }
@media (min-width: 768px) { .mp-services__label { margin-bottom: 56px; } }
.mp-srow { position: relative; display: block; border-top: 1px solid var(--mp-line); overflow: hidden; color: #000; }
.mp-srow:last-child { border-bottom: 1px solid var(--mp-line); }
.mp-srow__paint { pointer-events: none; position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.mp-srow__front { position: absolute; top: 0; bottom: 0; width: 58%; transition: transform 2000ms var(--mp-ease); }
.mp-srow__front--l { left: 0; transform: translateX(-104%); }
.mp-srow__front--r { right: 0; transform: translateX(104%); }
.mp-srow:hover .mp-srow__front, .mp-srow:focus-visible .mp-srow__front { transform: translateX(0); }
.mp-srow:hover .mp-srow__front--r { transition-delay: 90ms; }
.mp-wave { position: absolute; left: 0; right: 0; top: -100%; height: 200%; -webkit-mask: var(--wave) 0 0 / 100% 50% repeat-y; mask: var(--wave) 0 0 / 100% 50% repeat-y; }
.mp-wave-r { transform: scaleX(-1); filter: brightness(1.09); }
@keyframes mp-wave-down { from { translate: 0 0; } to { translate: 0 50%; } }
@keyframes mp-wave-up { from { translate: 0 50%; } to { translate: 0 0; } }
.mp-srow:hover .mp-wave-l { animation: mp-wave-down 9s linear infinite; }
.mp-srow:hover .mp-wave-r { animation: mp-wave-up 7s linear infinite; }
.mp-srow__arrow { position: absolute; z-index: 20; right: var(--mp-gutter); top: 32px; font-size: 20px; line-height: 28px; opacity: 0; transition: opacity 0.5s, color 0.5s; }
@media (min-width: 768px) { .mp-srow__arrow { top: 48px; } }
.mp-srow:hover .mp-srow__arrow { opacity: 1; color: #fff; }
.mp-srow__grid { position: relative; z-index: 10; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; gap: 16px; padding: 32px 0; }
@media (min-width: 768px) { .mp-srow__grid { padding: 56px 0; } }
.mp-srow__num { grid-column: span 2 / span 2; color: var(--mp-gray); transition: transform 0.7s var(--mp-ease), color 0.7s var(--mp-ease); }
.mp-srow__main { grid-column: span 10 / span 10; }
@media (min-width: 768px) { .mp-srow__num { grid-column: span 1 / span 1; } .mp-srow__main { grid-column: span 7 / span 7; } }
.mp-srow:hover .mp-srow__num { transform: translateX(8px); color: rgba(255, 255, 255, 0.75); }
.mp-srow__title { font-weight: 800; letter-spacing: -0.04em; line-height: 0.9; font-size: 30px; transition: transform 0.7s var(--mp-ease), color 0.7s var(--mp-ease); }
@media (min-width: 768px) { .mp-srow__title { font-size: 60px; } }
.mp-srow:hover .mp-srow__title { transform: translateX(16px); color: #fff; }
.mp-srow__desc { margin-top: 12px; font-size: 14px; line-height: 20px; color: var(--mp-gray-dark); max-width: 28rem; opacity: 0; transform: translateY(-4px); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.mp-srow:hover .mp-srow__desc { opacity: 1; transform: none; color: rgba(255, 255, 255, 0.8); }
.mp-srow__thumbcol { display: none; grid-column: span 4 / span 4; height: 176px; position: relative; }
@media (min-width: 768px) { .mp-srow__thumbcol { display: block; } }
.mp-srow__thumb { position: absolute; right: 0; top: 50%; width: 192px; height: 176px; overflow: hidden; opacity: 0; transform: translateY(-50%) scale(0.95); transition: all 0.7s var(--mp-ease); }
.mp-srow:hover .mp-srow__thumb { opacity: 1; transform: translateY(-50%) scale(1); transition-delay: 200ms; }

/* ==========================================================================
   NUANCES
   ========================================================================== */
.mp-nuances { padding-top: 96px; padding-bottom: 96px; background: var(--mp-soft); }
@media (min-width: 768px) { .mp-nuances { padding-top: 144px; padding-bottom: 144px; } }
.mp-nuances__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 20px; row-gap: 48px; align-items: center; }
.mp-nuances__left { grid-column: span 12 / span 12; min-width: 0; }
.mp-nuances__right { grid-column: span 12 / span 12; min-width: 0; }
@media (min-width: 768px) { .mp-nuances__left { grid-column: span 5 / span 5; } .mp-nuances__right { grid-column: 7 / span 6; } }
.mp-nuances__label { margin-bottom: 8px; }
.mp-nuances__title { font-weight: 800; letter-spacing: -0.04em; line-height: 0.9; font-size: 30px; }
@media (min-width: 768px) { .mp-nuances__title { font-size: 48px; } }
.mp-nuances__hl { position: relative; display: inline-block; white-space: nowrap; }
.mp-nuances__ul { position: absolute; left: -0.04em; right: -0.04em; bottom: -0.16em; height: 0.13em; transition: background-color 0.7s var(--mp-ease); }
.mp-nuances__text { margin-top: 40px; font-size: 16px; color: var(--mp-gray-dark); line-height: 1.625; max-width: 46ch; }
@media (min-width: 768px) { .mp-nuances__text { margin-top: 56px; font-size: 18px; } }
.mp-swatches { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 10px; }
.mp-swatch { width: 48px; height: 48px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08) !important; outline: 1px solid transparent; outline-offset: 4px; transition: all 0.5s var(--mp-ease); }
@media (min-width: 768px) { .mp-swatch { width: 56px; height: 56px; } }
.mp-swatch:hover { transform: translateY(-3px); }
.mp-swatch[aria-checked="true"] { outline-color: #000; }
.mp-swatch:focus-visible { outline-width: 2px; outline-color: #000; }
.mp-nuances__info { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; }
.mp-nuances__cta { margin-top: 40px; }
.mp-card { position: relative; max-width: 640px; margin: 0 auto; }
.mp-card__shadow { position: absolute; inset: 0; background: #ececec; border-top-left-radius: 80px; transform: translate(14px, 14px); }
.mp-card__face { position: relative; aspect-ratio: 5 / 4; overflow: hidden; border-top-left-radius: 80px; }
@media (min-width: 768px) {
	.mp-card__shadow { transform: translate(18px, 18px) rotate(-1.5deg); }
	.mp-card__face { transform: rotate(-1.5deg); }
}
.mp-card__paint { position: absolute; inset: 0; }
.mp-card__paint.is-anim { animation: mp-roll 0.9s var(--mp-ease) both; }
@keyframes mp-roll { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
.mp-card__content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 28px 24px 24px 32px; color: #fff; transition: color 0.5s; }
@media (min-width: 768px) { .mp-card__content { padding: 36px 36px 32px 44px; } }
.mp-card.is-light .mp-card__content { color: rgba(0, 0, 0, 0.85); }
.mp-card__top { display: flex; justify-content: space-between; gap: 12px; opacity: 0.8; padding-left: 36px; }
.mp-card__body { transition: opacity 0.5s var(--mp-ease), transform 0.5s var(--mp-ease); }
.mp-card__body.is-out { opacity: 0; transform: translateY(12px); }
.mp-card__name { font-weight: 800; letter-spacing: -0.04em; line-height: 0.9; text-transform: uppercase; font-size: clamp(30px, 7vw, 64px); }
.mp-card__desc { margin-top: 14px; font-size: 14px; line-height: 1.625; max-width: 34ch; opacity: 0.85; }
@media (min-width: 768px) { .mp-card__desc { font-size: 15px; } }
.mp-card__foot { border-top: 1px solid currentColor; padding-top: 14px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.mp-card__foot span { opacity: 0.8; }
.mp-nuances__note { margin-top: 32px; text-align: center; }

/* ==========================================================================
   GALLERY (editorial grid)
   ========================================================================== */
.mp-gallery { padding-bottom: 96px; }
@media (min-width: 768px) { .mp-gallery { padding-bottom: 144px; } }
.mp-gallery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap, 12px); }
@media (min-width: 768px) { .mp-gallery__grid { gap: var(--gap-md, 20px); } }
.mp-gallery__item { position: relative; overflow: hidden; grid-column: var(--col, span 12 / span 12); height: var(--h, 60vw); }
@media (min-width: 768px) { .mp-gallery__item { grid-column: var(--col-md, span 12 / span 12); height: var(--h-md, 60vh); } }
.mp-gallery__cap { position: absolute; bottom: 16px; left: 16px; color: rgba(255, 255, 255, 0); transition: color 0.5s; mix-blend-mode: difference; }
.mp-gallery__item:hover .mp-gallery__cap { color: rgba(255, 255, 255, 0.9); }
.mp-gallery__more { margin-top: 40px; }
@media (min-width: 768px) { .mp-gallery__more { margin-top: 48px; } }

/* ==========================================================================
   SECTION HEADER / CTA / LIST / LEAD / TIMELINE / IMAGE
   ========================================================================== */
.mp-shead-wrap { padding-top: 80px; padding-bottom: 40px; }
@media (min-width: 768px) { .mp-shead-wrap { padding-top: 128px; padding-bottom: 56px; } }
.mp-shead { display: flex; flex-direction: column; justify-content: space-between; gap: 16px; }
@media (min-width: 768px) { .mp-shead { flex-direction: row; align-items: flex-end; } }
.mp-shead__text { font-size: 14px; line-height: 20px; color: var(--mp-gray-dark); max-width: 24rem; }

.mp-cta { padding-top: 112px; padding-bottom: 112px; }
@media (min-width: 768px) { .mp-cta { padding-top: 160px; padding-bottom: 160px; } }
.mp-cta__inner { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
@media (min-width: 768px) { .mp-cta__inner { flex-direction: row; align-items: flex-end; } }

.mp-list { padding-top: 64px; padding-bottom: 64px; }
@media (min-width: 768px) { .mp-list { padding-top: 96px; padding-bottom: 96px; } }
.mp-list__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.mp-list__items { display: grid; grid-template-columns: 1fr; column-gap: 40px; row-gap: 12px; font-size: 14px; line-height: 20px; color: var(--mp-gray-dark); }
@media (min-width: 640px) { .mp-list__items { grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); } }
@media (min-width: 768px) { .mp-list__grid { grid-template-columns: 3fr 9fr; } }
.mp-list__items li { border-bottom: 1px solid rgba(0, 0, 0, 0.05); padding-bottom: 10px; }

.mp-sblock { padding-top: 64px; padding-bottom: 64px; }
@media (min-width: 768px) { .mp-sblock { padding-top: 96px; padding-bottom: 96px; } }
.mp-sblock__grid { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: center; }
@media (min-width: 768px) { .mp-sblock__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 48px; } }
.mp-sblock__media { overflow: hidden; height: var(--h, 58vw); }
@media (min-width: 768px) {
	.mp-sblock__media { grid-column: span 7 / span 7; height: var(--h-md, 72vh); order: 1; }
	.mp-sblock__text { grid-column: span 5 / span 5; order: 2; }
	.mp-sblock--flip .mp-sblock__media { order: 2; }
	.mp-sblock--flip .mp-sblock__text { order: 1; }
}
.mp-sblock__title { margin-top: 16px; font-weight: 800; letter-spacing: -0.04em; line-height: 0.9; font-size: 36px; }
@media (min-width: 768px) { .mp-sblock__title { font-size: 60px; } }
.mp-sblock__desc { margin-top: 24px; font-size: 16px; color: var(--mp-gray-dark); line-height: 1.625; max-width: 28rem; }
@media (min-width: 768px) { .mp-sblock__desc { font-size: 18px; } }
.mp-sblock__tags { margin-top: 32px; display: flex; flex-wrap: wrap; column-gap: 24px; row-gap: 8px; color: var(--mp-gray); }

.mp-lead { padding-top: 80px; padding-bottom: 80px; }
@media (min-width: 768px) { .mp-lead { padding-top: 128px; padding-bottom: 128px; } }
.mp-lead__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 768px) { .mp-lead__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .mp-lead__text { grid-column: var(--col-md, 6 / span 7); } }
.mp-lead__text { font-size: 20px; line-height: 1.625; font-weight: 500; letter-spacing: -0.02em; }
@media (min-width: 768px) { .mp-lead__text { font-size: 30px; } }
.mp-lead__text p + p { margin-top: 1em; }

.mp-image { padding-bottom: 80px; }
@media (min-width: 768px) { .mp-image { padding-bottom: 128px; } }
.mp-image__frame { overflow: hidden; height: var(--h, 50vw); }
@media (min-width: 768px) { .mp-image__frame { height: var(--h-md, 72vh); } }

.mp-timeline { padding-top: 48px; padding-bottom: 48px; }
@media (min-width: 768px) { .mp-timeline { padding-top: 80px; padding-bottom: 80px; } }
.mp-timeline__row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; padding: 40px 0; }
@media (min-width: 768px) { .mp-timeline__row { padding: 64px 0; } }
.mp-timeline__row:not(:last-child) { border-bottom: 1px solid var(--mp-line); }
.mp-timeline__year { grid-column: span 4 / span 4; font-weight: 800; letter-spacing: -0.04em; line-height: 0.9; font-size: 36px; }
.mp-timeline__text { grid-column: span 8 / span 8; align-self: center; color: var(--mp-gray-dark); }
@media (min-width: 768px) { .mp-timeline__year { grid-column: span 2 / span 2; font-size: 72px; } .mp-timeline__text { grid-column: span 10 / span 10; } }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.mp-contact { padding-top: 64px; padding-bottom: 96px; }
@media (min-width: 768px) { .mp-contact { padding-top: 96px; padding-bottom: 160px; } }
.mp-contact__grid { display: grid; grid-template-columns: 1fr; gap: 40px; }
@media (min-width: 768px) { .mp-contact__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 64px; } .mp-contact__form { grid-column: span 7 / span 7; } .mp-contact__info { grid-column: span 5 / span 5; padding-left: 32px; border-left: 1px solid var(--mp-line); } .mp-contact--noinfo .mp-contact__form { grid-column: span 12 / span 12; } }
.mp-form { display: flex; flex-direction: column; gap: 32px; }
.mp-form__row { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 640px) { .mp-form__row { grid-template-columns: 1fr 1fr; } }
.mp-form__label { display: block; margin-bottom: 4px; color: var(--mp-gray); }
.mp-form__input,
.mp-w .mp-form__input {
	display: block; width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.2); border-radius: 0;
	padding: 12px 0; font: inherit; font-size: 16px; line-height: 24px; color: #000; box-shadow: none; outline: none;
	transition: border-color 0.3s; -webkit-appearance: none; appearance: none; min-height: 0;
}
.mp-form__input:focus { border-bottom-color: #000; outline: none; box-shadow: none; }
.mp-form__input::placeholder { color: var(--mp-gray-light); }
.mp-w select.mp-form__input, select.mp-form__input { 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='%23000' stroke-width='1.2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 2px center; padding-right: 24px; }
textarea.mp-form__input { resize: vertical; }
.mp-form__hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.mp-form__fallback { border-top: 1px solid var(--mp-line); padding-top: 32px; }
.mp-form__fallback p.mp-form__fb-text { font-size: 16px; color: var(--mp-gray-dark); max-width: 28rem; margin-bottom: 20px; }
.mp-form__fallback .mp-meta { margin-bottom: 12px; color: var(--mp-gray); }
.mp-form__success { border-top: 1px solid var(--mp-line); padding-top: 40px; }
.mp-form__success-title { font-weight: 800; letter-spacing: -0.04em; line-height: 0.95; font-size: 30px; }
@media (min-width: 768px) { .mp-form__success-title { font-size: 48px; } }
.mp-form__again { margin-top: 32px; font-weight: 700; text-decoration: underline !important; text-underline-offset: 4px; }
.mp-form [hidden], .mp-contact [hidden] { display: none !important; }
.mp-info__company { margin-bottom: 20px; color: var(--mp-gray); }
.mp-info__address { font-style: normal; font-size: 16px; line-height: 1.625; color: #000; }
.mp-info__links { margin-top: 32px; font-size: 16px; }
.mp-info__links p + p { margin-top: 8px; }
.mp-info__links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.mp-info__route { margin-top: 40px; }

/* ==========================================================================
   PAGE TRANSITION CURTAIN
   ========================================================================== */
.mp-curtain { display: none; position: fixed; inset: 0; background: #000; pointer-events: none; z-index: 90; transform-origin: top; transform: scaleY(0); }
html.mp-pt .mp-curtain { display: block; animation: mp-curtain-out 0.45s var(--mp-ease) both; }
html.mp-pt .mp-curtain.is-leaving { animation: mp-curtain-in 0.45s var(--mp-ease) both; }
@keyframes mp-curtain-out { from { transform: scaleY(1); } to { transform: scaleY(0); } }
@keyframes mp-curtain-in { from { transform: scaleY(0); } to { transform: scaleY(1); } }
html.mp-pt #mp-main { animation: mp-page-in 0.6s var(--mp-ease) 0.18s both; }
@keyframes mp-page-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* ==========================================================================
   Generic WordPress content (posts, non-Elementor pages)
   ========================================================================== */
.mp-content { padding: 144px var(--mp-gutter) 96px; }
@media (min-width: 768px) { .mp-content { padding-top: 192px; padding-bottom: 160px; } }
.mp-content__inner { max-width: 760px; margin: 0 auto; }
.mp-content__title { font-weight: 800; letter-spacing: -0.05em; line-height: 0.9; font-size: clamp(40px, 9vw, 96px); margin: 0 0 40px; }
.mp-content__meta { margin-bottom: 24px; color: var(--mp-gray); }
.mp-content .entry-content { font-size: 18px; line-height: 1.7; color: #1a1a1a; }
.mp-content .entry-content a { color: #000; text-decoration: underline; text-underline-offset: 3px; }
.mp-content .entry-content h2, .mp-content .entry-content h3 { font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; margin: 1.6em 0 0.6em; }
.mp-postlist { list-style: none; margin: 0; padding: 0; }
.mp-postlist li { border-top: 1px solid var(--mp-line); padding: 32px 0; }
.mp-postlist h2 { margin: 8px 0 12px; font-weight: 800; letter-spacing: -0.04em; line-height: 0.95; font-size: 36px; }
.mp-postlist a { color: inherit; text-decoration: none; }
.mp-404 { min-height: 70vh; display: flex; flex-direction: column; justify-content: flex-end; }
#mp-main { overflow-x: clip; }

/* ==========================================================================
   Elementor editor helpers
   ========================================================================== */
.elementor-editor-active .mp-reveal, .elementor-editor-preview .mp-reveal { opacity: 1 !important; transform: none !important; }
.elementor-editor-active .mp-line > span { transform: none !important; }
/* Header/Footer templates being edited: show the header in-flow on a dark strip */
body.elementor-editor-active.mp-is-template .mp-header { position: relative; top: 0; mix-blend-mode: normal; background: #111; }

@media (prefers-reduced-motion: reduce) {
	.mp-marquee__track { animation: none; }
	.mp-img--gray img { transition: none; }
	.mp-wave { animation: none !important; }
	html.mp-pt .mp-curtain, html.mp-pt #mp-main { animation: none; display: none; }
	html.mp-pt #mp-main { display: block; }
}

/* ==========================================================================
   Tailwind parity: in the original, responsive font-size classes (md:text-5xl …)
   also reset line-height on desktop. Reproduced here so the rhythm is identical.
   ========================================================================== */
@media (min-width: 640px) {
	.mp-menu__link { line-height: 1; }
}
@media (min-width: 768px) {
	.mp-hero__tagline { line-height: 40px; }
	.mp-intro__title, .mp-h-xl, .mp-srow__title, .mp-nuances__title, .mp-sblock__title, .mp-timeline__year, .mp-form__success-title { line-height: 1; }
	.mp-intro__text, .mp-nuances__text, .mp-sblock__desc { line-height: 28px; }
	.mp-lead__text { line-height: 36px; }
}
