/* ==========================================================================
   ATELIER — front-end styles
   A hand-authored port of the original Tailwind design. Colours, fonts and
   custom props come from theme.json (the --wp--preset--* / --wp--custom--*
   variables), so the style variations in /styles re-skin everything here.
   ========================================================================== */

:root {
	--paper: var(--wp--preset--color--paper, #faf8f2);
	--paper-raised: var(--wp--preset--color--paper-raised, #fff);
	--paper-sunken: var(--wp--preset--color--paper-sunken, #f1ede3);
	--ink: var(--wp--preset--color--ink, #1c1a16);
	--ink-muted: var(--wp--preset--color--ink-muted, #5a5448);
	--ink-faint: var(--wp--preset--color--ink-faint, #8c8576);
	--line: var(--wp--preset--color--line, #ded6c7);
	--line-strong: var(--wp--preset--color--line-strong, #cabfac);
	--clay: var(--wp--preset--color--clay, #ae5130);
	--clay-strong: var(--wp--preset--color--clay-strong, #8f3f20);
	--clay-soft: var(--wp--preset--color--clay-soft, #c97a57);
	--noir: var(--wp--preset--color--noir, #15120e);
	--noir-raised: var(--wp--preset--color--noir-raised, #211c16);

	--font-sans: var(--wp--preset--font-family--sans, ui-sans-serif, system-ui, sans-serif);
	--font-display: var(--wp--preset--font-family--display, ui-serif, Georgia, serif);

	--ease-expo: var(--wp--custom--ease--out-expo, cubic-bezier(0.16, 1, 0.3, 1));
	--radius: var(--wp--custom--radius--card, 3px);

	--container: 1280px;
	--gutter: clamp(1.25rem, 5vw, 2.5rem);
	--header-h: 4.5rem;
}

/* --------------------------------------------------------------- Base */
html { scroll-behavior: smooth; scroll-padding-top: 6.5rem; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-sans);
	font-feature-settings: "kern", "liga";
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	line-height: 1.6;
}
* { box-sizing: border-box; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }

h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.05; margin: 0; }

::selection { background: var(--clay); color: var(--paper); }
:focus-visible { outline: 2px solid var(--clay); outline-offset: 3px; border-radius: 1px; }

/* Subtle film grain across the whole site. */
body::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 30;
	pointer-events: none;
	opacity: 0.05;
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 180px 180px;
}

/* --------------------------------------------------------- Primitives */
.atelier-container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }

.atelier-eyebrow {
	font-size: var(--wp--preset--font-size--eyebrow, 0.74rem);
	line-height: 1.1;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--ink-faint);
	margin: 0;
}
.atelier-text-clay { color: var(--clay); }
.atelier-text-clay-soft { color: var(--clay-soft); }

.atelier-section-title {
	font-size: var(--wp--preset--font-size--display, clamp(2.6rem, 5.5vw + 0.5rem, 5.5rem));
	line-height: 0.98;
	letter-spacing: -0.025em;
	text-wrap: balance;
}

.atelier-anchor { position: absolute; top: 0; left: 0; }

.atelier-link-underline {
	display: inline-block;
	text-decoration: none;
	background-image: linear-gradient(var(--clay), var(--clay));
	background-size: 0% 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.4s var(--ease-expo);
	border: 0;
	padding: 0;
	cursor: pointer;
	font: inherit;
	color: inherit;
}
.atelier-link-underline:hover, .atelier-link-underline:focus-visible { background-size: 100% 1px; }

/* Buttons */
.atelier-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: var(--radius);
	padding: 0.75rem 1.5rem;
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background-color 0.3s var(--ease-expo), color 0.3s var(--ease-expo), border-color 0.3s var(--ease-expo);
	cursor: pointer;
}
.atelier-btn--primary { background: var(--clay); color: var(--paper); }
.atelier-btn--primary:hover { background: var(--clay-strong); }
.atelier-btn--on-dark { border-color: color-mix(in srgb, var(--paper) 40%, transparent); color: var(--paper); }
.atelier-btn--on-dark:hover { background: var(--paper); color: var(--ink); }

.atelier-cv-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	border-radius: var(--radius);
	padding: 0.75rem 1.5rem;
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	border: 1px solid;
	transition: background-color 0.3s var(--ease-expo), color 0.3s var(--ease-expo), border-color 0.3s var(--ease-expo);
}
.atelier-cv-btn.is-compact { padding: 0.5rem 1rem; }
.atelier-cv-btn--light { border-color: color-mix(in srgb, var(--ink) 25%, transparent); color: var(--ink); }
.atelier-cv-btn--light:hover { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.atelier-cv-btn--dark { border-color: color-mix(in srgb, var(--paper) 40%, transparent); color: var(--paper); }
.atelier-cv-btn--dark:hover { background: var(--paper); color: var(--ink); }
.atelier-cv-btn__icon { transition: transform 0.3s var(--ease-expo); }
.atelier-cv-btn:hover .atelier-cv-btn__icon { transform: translateY(2px); }

.atelier-inline-links { list-style: none; display: flex; gap: 1.5rem; margin: 0; padding: 0; }
.atelier-inline-links a { text-decoration: none; color: var(--ink-muted); }
.atelier-inline-links a:hover { color: var(--ink); }

/* ============================================================== HEADER */
.atelier-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 50;
	color: var(--paper);
	border-bottom: 1px solid transparent;
	transition: background-color 0.5s var(--ease-expo), color 0.5s var(--ease-expo), border-color 0.5s var(--ease-expo);
}
.atelier-header.is-scrolled {
	background: color-mix(in srgb, var(--paper) 82%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom-color: var(--line);
	color: var(--ink);
}
.atelier-header__bar { display: flex; align-items: center; justify-content: space-between; padding-block: 1rem; }
.atelier-header__brand { font-family: var(--font-display); font-size: 1.125rem; letter-spacing: -0.02em; text-decoration: none; color: inherit; }
.atelier-header__desktop { display: none; align-items: center; gap: 2.25rem; }
.atelier-header__links { list-style: none; display: flex; align-items: center; gap: 1.75rem; margin: 0; padding: 0; font-size: 0.875rem; }
.atelier-header__link { position: relative; display: inline-block; padding-block: 0.25rem; text-decoration: none; color: inherit; opacity: 0.72; transition: opacity 0.3s; }
.atelier-header__link:hover, .atelier-header__link.is-active { opacity: 1; }
.atelier-header__link::after {
	content: "";
	position: absolute;
	left: 0; bottom: -2px;
	height: 1px; width: 100%;
	background: var(--clay);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--ease-expo);
}
.atelier-header__link:hover::after, .atelier-header__link.is-active::after { transform: scaleX(1); }
.atelier-header__cv {
	display: inline-flex; align-items: center; gap: 0.5rem;
	border: 1px solid color-mix(in srgb, currentColor 35%, transparent);
	border-radius: var(--radius);
	padding: 0.45rem 0.9rem;
	font-size: 0.8rem; font-weight: 500; text-decoration: none; color: inherit;
	transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}
.atelier-header__cv:hover { border-color: currentColor; }
.atelier-header__toggle { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; margin-right: -0.5rem; background: none; border: 0; color: inherit; cursor: pointer; }
.atelier-header__icon--close { display: none; }
.atelier-header.is-open { color: var(--ink); }
.atelier-header.is-open .atelier-header__icon--menu { display: none; }
.atelier-header.is-open .atelier-header__icon--close { display: block; }

.atelier-header__drawer {
	position: fixed; inset: 0; z-index: 40;
	background: var(--paper); color: var(--ink);
	display: flex; flex-direction: column; justify-content: space-between;
	padding: 7rem var(--gutter) 3rem;
}
.atelier-header__drawer[hidden] { display: none; }
.atelier-header__drawer-links { list-style: none; margin: 0; padding: 0; }
.atelier-header__drawer-links a { display: block; padding-block: 0.5rem; font-family: var(--font-display); font-size: clamp(2rem, 9vw, 2.6rem); letter-spacing: -0.02em; text-decoration: none; color: inherit; }
.atelier-header__drawer-foot { display: flex; flex-direction: column; gap: 2rem; }
.atelier-header__drawer-foot .atelier-cv-btn { width: 100%; justify-content: center; }
.atelier-header__drawer-meta { display: flex; align-items: center; justify-content: space-between; }

@media (min-width: 768px) {
	.atelier-header__desktop { display: flex; }
	.atelier-header__toggle { display: none; }
	.atelier-header__drawer { display: none; }
}

/* ================================================================ HERO */
.atelier-hero {
	position: relative;
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
	background: var(--noir);
	color: var(--paper);
}
.atelier-hero__bg { position: absolute; inset: 0; }
.atelier-hero__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.atelier-hero__video { position: absolute; inset: 0; opacity: 0; transition: opacity 1s var(--ease-expo); }
.atelier-hero__video.is-on { opacity: 0.9; }
.atelier-hero__video iframe {
	position: absolute; top: 50%; left: 50%;
	width: 177.78vh; min-width: 100%;
	height: 56.25vw; min-height: 100%;
	transform: translate(-50%, -50%);
	border: 0; pointer-events: none;
}
.atelier-hero__scrim { position: absolute; inset: 0; background: color-mix(in srgb, var(--noir) 50%, transparent); }
.atelier-hero__scrim--left { background: linear-gradient(to right, color-mix(in srgb, var(--noir) 90%, transparent), color-mix(in srgb, var(--noir) 45%, transparent) 50%, color-mix(in srgb, var(--noir) 25%, transparent)); }
.atelier-hero__scrim--bottom { background: linear-gradient(to top, var(--noir), color-mix(in srgb, var(--noir) 15%, transparent) 50%, transparent); }

.atelier-hero__inner { position: relative; z-index: 10; padding-block: 8rem; }
.atelier-hero__eyebrow { color: var(--clay-soft); }
.atelier-hero__title {
	margin-top: 1.75rem;
	max-width: 64rem;
	font-family: var(--font-display);
	font-size: var(--wp--preset--font-size--hero, clamp(3rem, 9vw, 8.5rem));
	line-height: 0.9;
	letter-spacing: -0.035em;
}
.atelier-hero__title-line { display: block; }
.atelier-hero__subtitle { margin-top: 2rem; max-width: 36rem; font-size: 1.125rem; line-height: 1.7; color: color-mix(in srgb, var(--paper) 75%, transparent); }
.atelier-hero__actions { margin-top: 2.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.atelier-hero__cue { position: absolute; inset: auto 0 2rem 0; z-index: 10; margin-inline: auto; width: fit-content; display: flex; flex-direction: column; align-items: center; gap: 0.5rem; color: color-mix(in srgb, var(--paper) 60%, transparent); text-decoration: none; transition: color 0.3s; }
.atelier-hero__cue:hover { color: var(--paper); }
.atelier-hero__cue svg { animation: atelier-bob 1.8s ease-in-out infinite; }
@keyframes atelier-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

/* ================================================================ WORK */
.atelier-work { background: var(--paper); padding-block: clamp(6rem, 12vw, 8rem); scroll-margin-top: 6rem; }
.atelier-work__head { display: flex; flex-direction: column; gap: 2.5rem; }
.atelier-work__intro { max-width: 42rem; }
.atelier-work__intro .atelier-section-title { margin-top: 1.25rem; }
.atelier-work__lead { margin-top: 1.25rem; color: var(--ink-muted); }
.atelier-work__filters { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.atelier-pill {
	border-radius: 999px;
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
	font-family: var(--font-sans);
	border: 1px solid var(--line);
	background: transparent;
	color: var(--ink-muted);
	cursor: pointer;
	transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}
.atelier-pill:hover { border-color: var(--ink); color: var(--ink); }
.atelier-pill.is-active { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.atelier-work__groups { margin-top: 4rem; display: flex; flex-direction: column; gap: 5rem; }
.atelier-work__group[hidden] { display: none; }
.atelier-work__group-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.25rem 1.5rem; border-bottom: 1px solid var(--line); padding-bottom: 1rem; margin-bottom: 2rem; }
.atelier-work__group-head[hidden] { display: none; }
.atelier-work__group-title { font-size: 1.5rem; letter-spacing: -0.01em; }
.atelier-work__group-blurb { font-size: 0.875rem; color: var(--ink-faint); }
.atelier-work__empty { display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px dashed var(--line-strong); border-radius: var(--radius); padding: 4rem 1.5rem; text-align: center; }
.atelier-work__empty-title { font-family: var(--font-display); font-size: 1.25rem; margin: 0; }
.atelier-work__empty-text { margin-top: 0.5rem; max-width: 24rem; font-size: 0.875rem; color: var(--ink-faint); }

/* Masonry grid */
.atelier-grid { columns: 1; column-gap: 1.5rem; }
@media (min-width: 640px) { .atelier-grid { columns: 2; } }
@media (min-width: 1024px) { .atelier-grid { columns: 3; } }

.atelier-card {
	display: block;
	width: 100%;
	margin: 0 0 2rem;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	cursor: pointer;
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	font: inherit;
	color: inherit;
}
.atelier-card__media {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	border-radius: var(--radius);
	background: var(--paper-sunken);
	box-shadow: inset 0 0 0 1px var(--line);
}
.atelier-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--ease-expo); }
.atelier-card:hover .atelier-card__img { transform: scale(1.04); }
.atelier-card__play {
	position: absolute; inset: 0; margin: auto;
	width: 3.5rem; height: 3.5rem;
	display: flex; align-items: center; justify-content: center;
	background: color-mix(in srgb, var(--paper) 90%, transparent);
	color: var(--ink);
	border-radius: 999px;
	opacity: 0; transform: scale(0.9);
	transition: opacity 0.3s, transform 0.3s;
}
.atelier-card__play svg { width: 1.25rem; height: 1.25rem; }
.atelier-card.is-video:hover .atelier-card__media::after { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--noir) 25%, transparent); }
.atelier-card:hover .atelier-card__play { opacity: 1; transform: scale(1); }
.atelier-card__meta { margin-top: 1rem; display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.atelier-card__title { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.15; transition: color 0.3s; }
.atelier-card:hover .atelier-card__title { color: var(--clay); }
.atelier-card__year { flex-shrink: 0; }
.atelier-card__excerpt { margin: 0.4rem 0 0; font-size: 0.875rem; line-height: 1.55; color: var(--ink-muted); }

/* Pending poster */
.atelier-pending { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; background: var(--noir); color: var(--paper); }
.atelier-pending::before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, var(--noir-raised), var(--noir)); }
.atelier-pending__inner { position: relative; display: flex; flex-direction: column; align-items: center; gap: 0.75rem; padding: 2rem 1.5rem; text-align: center; }
.atelier-pending__icon { display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border: 1px solid color-mix(in srgb, var(--paper) 25%, transparent); border-radius: 999px; }
.atelier-pending__icon svg { width: 1rem; height: 1rem; color: color-mix(in srgb, var(--paper) 80%, transparent); }
.atelier-pending__title { font-family: var(--font-display); font-size: 1.125rem; line-height: 1.15; max-width: 18ch; color: color-mix(in srgb, var(--paper) 90%, transparent); margin: 0; }
.atelier-pending__tag { color: var(--clay-soft); }

/* Lightbox */
.atelier-lightbox { display: none; position: fixed; inset: 0; z-index: 100; background: color-mix(in srgb, var(--noir) 85%, transparent); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.atelier-lightbox.is-open { display: block; }
.atelier-lightbox__scroll { position: absolute; inset: 0; overflow-y: auto; display: flex; align-items: center; justify-content: center; padding: 1rem; }
@media (min-width: 640px) { .atelier-lightbox__scroll { padding: 2rem; } }
.atelier-lightbox__panel { position: relative; width: 100%; max-width: 56rem; background: var(--paper); border-radius: var(--radius); overflow: hidden; box-shadow: 0 30px 60px -15px rgba(0,0,0,0.5); }
.atelier-lightbox__close { position: absolute; top: 0.75rem; right: 0.75rem; z-index: 10; width: 2.75rem; height: 2.75rem; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--paper) 85%, transparent); color: var(--ink); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); cursor: pointer; transition: background-color 0.3s; }
.atelier-lightbox__close:hover { background: var(--paper-sunken); }
.atelier-lightbox__video { aspect-ratio: 16 / 9; width: 100%; background: var(--noir); position: relative; }
.atelier-lightbox__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.atelier-lightbox__images { background: var(--noir); }
.atelier-lightbox__image { position: relative; margin: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 1rem; }
@media (min-width: 640px) { .atelier-lightbox__image { padding: 2rem; } }
.atelier-lightbox__image-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.1); filter: blur(28px); opacity: 0.4; }
.atelier-lightbox__image::after { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--noir) 40%, transparent); }
.atelier-lightbox__image img { position: relative; z-index: 1; max-height: 78vh; width: auto; max-width: 100%; object-fit: contain; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.6); }
.atelier-lightbox__body { padding: 1.5rem; }
@media (min-width: 640px) { .atelier-lightbox__body { padding: 2.25rem; } }
.atelier-lightbox__title { margin-top: 0.75rem; font-size: clamp(1.6rem, 4vw, 2.25rem); line-height: 1.1; }
.atelier-lightbox__badge { display: inline-flex; margin-top: 1rem; border-radius: 999px; background: var(--paper-sunken); padding: 0.25rem 0.75rem; font-size: 0.75rem; color: var(--ink-muted); }
.atelier-lightbox__desc { margin-top: 1.25rem; max-width: 44rem; line-height: 1.7; color: var(--ink-muted); }
.atelier-lightbox__details { margin-top: 2rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1.5rem; border-top: 1px solid var(--line); padding-top: 1.5rem; }
@media (min-width: 640px) { .atelier-lightbox__details { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.atelier-lightbox__details dt { margin: 0; }
.atelier-lightbox__details dd { margin: 0.35rem 0 0; font-size: 0.875rem; color: var(--ink); }
.atelier-lightbox__links { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: 1rem; }
.atelier-lightbox__links a { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.875rem; font-weight: 500; }

/* =============================================================== ABOUT */
.atelier-about { background: var(--paper-sunken); padding-block: clamp(6rem, 12vw, 8rem); scroll-margin-top: 6rem; }
.atelier-about__grid { margin-top: 2.5rem; display: grid; gap: 3rem; }
@media (min-width: 1024px) { .atelier-about__grid { grid-template-columns: 0.8fr 1.2fr; gap: 4rem; } }
.atelier-about__portrait { position: relative; margin-inline: auto; aspect-ratio: 4 / 5; width: 100%; max-width: 24rem; overflow: hidden; border-radius: var(--radius); background: linear-gradient(to bottom, var(--noir-raised), var(--noir)); }
@media (min-width: 1024px) { .atelier-about__portrait { margin-inline: 0; max-width: none; } }
.atelier-about__portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.atelier-about__copy { max-width: 42rem; }
.atelier-about__paragraphs { margin-top: 1.75rem; display: flex; flex-direction: column; gap: 1.25rem; line-height: 1.7; color: var(--ink-muted); }
.atelier-about__paragraphs p { margin: 0; }
.atelier-about__facts { margin: 2.5rem 0 0; display: grid; grid-template-columns: 1fr; gap: 2rem 1.5rem; border-top: 1px solid var(--line); padding-top: 2rem; }
@media (min-width: 640px) { .atelier-about__facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.atelier-about__fact { margin: 0; }
.atelier-about__fact-value { font-family: var(--font-display); font-size: 2.25rem; line-height: 1; color: var(--clay); }
.atelier-about__fact-label { margin: 0.75rem 0 0; font-size: 0.875rem; line-height: 1.4; color: var(--ink-muted); }
.atelier-about__tools { margin-top: 2.5rem; }
.atelier-about__tools ul { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.atelier-about__tools li { border: 1px solid var(--line); border-radius: 999px; padding: 0.25rem 0.75rem; font-size: 0.875rem; color: var(--ink-muted); }
.atelier-about__cv { margin-top: 2.5rem; }

/* ============================================================= CONTACT */
.atelier-contact { background: var(--paper); padding-block: clamp(6rem, 12vw, 8rem); scroll-margin-top: 6rem; }
.atelier-contact__grid { margin-top: 2.5rem; display: grid; gap: 3.5rem; }
@media (min-width: 1024px) { .atelier-contact__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5rem; } }
.atelier-contact__blurb { margin-top: 1.5rem; max-width: 28rem; font-size: 1.125rem; line-height: 1.7; color: var(--ink-muted); }
.atelier-contact__email { margin-top: 2rem; font-family: var(--font-display); font-size: clamp(1.5rem, 4vw, 1.875rem); letter-spacing: -0.02em; }
.atelier-contact__phone { margin: 0.75rem 0 0; color: var(--ink-muted); }
.atelier-contact__loc { margin: 0.25rem 0 0; color: var(--ink-faint); }
.atelier-contact__socials { list-style: none; margin: 2rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 1.5rem; font-size: 0.875rem; }
.atelier-contact__social { display: inline-flex; align-items: center; gap: 0.25rem; text-decoration: none; color: var(--ink); transition: color 0.3s; }
.atelier-contact__social:hover { color: var(--clay); }

.atelier-form { border: 1px solid var(--line); background: var(--paper-raised); border-radius: var(--radius); padding: 1.5rem; }
@media (min-width: 640px) { .atelier-form { padding: 2rem; } }
.atelier-form[hidden] { display: none; }
.atelier-form__hp { position: absolute; left: -9999px; width: 0; height: 0; }
.atelier-form__field { margin-bottom: 1.25rem; }
.atelier-form__field label { display: block; margin-bottom: 0.5rem; }
.atelier-form input, .atelier-form textarea {
	width: 100%;
	border: 1px solid var(--line);
	background: var(--paper);
	border-radius: var(--radius);
	padding: 0.75rem 1rem;
	color: var(--ink);
	font: inherit;
	transition: border-color 0.3s;
}
.atelier-form input::placeholder, .atelier-form textarea::placeholder { color: var(--ink-faint); }
.atelier-form input:focus, .atelier-form textarea:focus { outline: none; border-color: var(--ink); }
.atelier-form textarea { resize: vertical; }
.atelier-form__error { margin: 1rem 0 0; font-size: 0.875rem; color: var(--clay); }
.atelier-form__error:empty { display: none; margin: 0; }
.atelier-form__submit {
	margin-top: 1.5rem;
	width: 100%;
	display: flex; align-items: center; justify-content: center;
	border: 0; border-radius: var(--radius);
	background: var(--clay); color: var(--paper);
	padding: 0.85rem 1.5rem;
	font: inherit; font-size: 0.875rem; font-weight: 500;
	cursor: pointer;
	transition: background-color 0.3s;
}
.atelier-form__submit:hover { background: var(--clay-strong); }
.atelier-form__submit:disabled { opacity: 0.6; cursor: not-allowed; }
.atelier-form__note { margin: 1rem 0 0; font-size: 0.75rem; color: var(--ink-faint); }
.atelier-form__success { display: none; flex-direction: column; align-items: flex-start; justify-content: center; border: 1px solid var(--line); background: var(--paper-raised); border-radius: var(--radius); padding: 2rem; min-height: 16rem; }
.atelier-form__success.is-shown { display: flex; }
.atelier-form__success-title { font-family: var(--font-display); font-size: 1.5rem; margin: 0; }
.atelier-form__success-text { margin: 0.75rem 0 0; color: var(--ink-muted); }
.atelier-form__success button { margin-top: 1.5rem; font-size: 0.875rem; }

/* ============================================================== FOOTER */
.atelier-footer { background: var(--noir); color: var(--paper); }
.atelier-footer .atelier-container { padding-block: clamp(4rem, 8vw, 5rem); }
.atelier-footer__top { display: flex; flex-direction: column; justify-content: space-between; gap: 3rem; }
@media (min-width: 768px) { .atelier-footer__top { flex-direction: row; align-items: flex-end; } }
.atelier-footer__email { margin-top: 1.25rem; font-family: var(--font-display); font-size: clamp(1.5rem, 4vw, 1.875rem); letter-spacing: -0.02em; }
.atelier-footer__loc { margin: 0.75rem 0 0; color: color-mix(in srgb, var(--paper) 55%, transparent); }
.atelier-footer__links { display: flex; flex-direction: column; gap: 1.25rem; }
@media (min-width: 768px) { .atelier-footer__links { align-items: flex-end; } }
.atelier-footer__socials { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.5rem; font-size: 0.875rem; }
.atelier-footer__social { text-decoration: none; color: color-mix(in srgb, var(--paper) 70%, transparent); transition: color 0.3s; }
.atelier-footer__social:hover { color: var(--paper); }
.atelier-footer__top-link { font-size: 0.875rem; text-decoration: none; color: color-mix(in srgb, var(--paper) 55%, transparent); transition: color 0.3s; }
.atelier-footer__top-link:hover { color: var(--paper); }
.atelier-footer__bottom { margin-top: 4rem; display: flex; flex-direction: column; gap: 0.5rem; border-top: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); padding-top: 2rem; font-size: 0.875rem; color: color-mix(in srgb, var(--paper) 45%, transparent); }
@media (min-width: 640px) { .atelier-footer__bottom { flex-direction: row; justify-content: space-between; } }
.atelier-footer__bottom p { margin: 0; }

/* ===================================================== Inner page gutters */
main.wp-block-group { padding-inline: var(--gutter); }
main.wp-block-group:has(.atelier-work), main.wp-block-group:has(.atelier-hero) { padding-inline: 0; }

/* ====================================================== Reduced motion */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
	.atelier-hero__cue svg { animation: none; }
}
