/* Scoped to the shortcode output. Elementor remains responsible for header and footer. */
.z10-project {
	--z10-ink: #11110f;
	--z10-ivory: #f3f1eb;
	--z10-paper: #faf9f6;
	--z10-stone: #9d998c;
	--z10-green: #3f493f;
	--z10-line: rgba(17, 17, 15, .18);
	--z10-project-gutter: clamp(18px, 5.2vw, 88px);
	--z10-project-serif: "The Seasons Light", "The Seasons", Georgia, serif;
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	margin: 0 0 0 -50vw;
	color: var(--z10-ink);
	background: var(--z10-paper);
	font-family: inherit;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	isolation: isolate;
}
.z10-project *, .z10-project *::before, .z10-project *::after { box-sizing: border-box; }
.z10-project img { display: block; max-width: 100%; }
.z10-project a { color: inherit; }
.z10-project__eyebrow { display: block; font-size: .66rem; font-weight: 400; line-height: 1.45; letter-spacing: .15em; text-transform: uppercase; }
.z10-project__hero { position: relative; display: grid; min-height: 90vh; min-height: 90svh; place-items: center; overflow: hidden; background: #292a26; color: #fff; }
.z10-project__hero-image, .z10-project__hero-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.z10-project__hero > .z10-project__hero-image,
.z10-project__next > .z10-project__next-image {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100% !important;
	min-height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center center !important;
}
.z10-project__hero-image { object-fit: cover; object-position: center; }
.z10-project__hero-overlay { background: linear-gradient(180deg, rgba(0,0,0,.30), rgba(0,0,0,.12) 45%, rgba(0,0,0,.38)); pointer-events: none; }
.z10-project__hero-copy { position: relative; z-index: 1; max-width: 90%; padding: 5rem 0 2rem; text-align: center; }
.z10-project__hero-copy .z10-project__eyebrow { margin-bottom: 1.15rem; color: rgba(255,255,255,.85); }
.z10-project__hero h1 { margin: 0; color: #fff; font-family: var(--z10-project-serif); font-size: clamp(3rem, 6vw, 6.5rem); font-weight: 300; line-height: .98; letter-spacing: -.035em; }
.z10-project__scroll { position: absolute; z-index: 1; bottom: 1.7rem; left: 50%; display: grid; width: 44px; height: 44px; place-items: center; transform: translateX(-50%); text-decoration: none; }
.z10-project__scroll span { width: 1px; height: 27px; background: rgba(255,255,255,.75); }
.z10-project__scroll::after { position: absolute; bottom: 8px; width: 7px; height: 7px; border-right: 1px solid #fff; border-bottom: 1px solid #fff; content: ""; transform: rotate(45deg); }
.z10-project__intro { padding: clamp(68px, 9vw, 146px) var(--z10-project-gutter) clamp(62px, 8vw, 128px); background: var(--z10-ivory); }
.z10-project__intro-top { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--z10-line); }
.z10-project__intro-grid { display: grid; grid-template-columns: minmax(210px, .62fr) minmax(0, 1.4fr); gap: clamp(42px, 9vw, 150px); max-width: 1600px; margin: 0 auto; padding: clamp(48px, 7.5vw, 122px) 0; }
.z10-project__intro-grid:not(.has-meta), .z10-project__intro-grid:not(.has-description) { grid-template-columns: minmax(0, 1fr); }
.z10-project__meta { display: grid; align-content: start; gap: 2rem; margin: 0; }
.z10-project__meta-item { padding-top: .8rem; border-top: 1px solid var(--z10-line); }
.z10-project__meta-item dt { color: #696a64; }
.z10-project__meta-item dd { margin: .55rem 0 0; font-size: .95rem; line-height: 1.65; }
.z10-project__description { max-width: 850px; }
.z10-project__description > .z10-project__eyebrow { margin-bottom: 1rem; color: #696a64; }
.z10-project__description p { margin: 0; color: #373833; font-size: clamp(1.05rem, 1.55vw, 1.42rem); line-height: 1.8; }
.z10-project__description p + p { margin-top: 1.1em; }
.z10-project__before, .z10-project__renders { padding: clamp(68px, 9vw, 142px) var(--z10-project-gutter); }
.z10-project__section-heading { max-width: 1760px; margin: 0 auto clamp(30px, 4.5vw, 72px); }
.z10-project__section-heading h2, .z10-project__final-heading h2 { margin: .65rem 0 0; font-family: var(--z10-project-serif); font-size: clamp(2rem, 3.5vw, 4rem); font-weight: 300; line-height: 1; letter-spacing: -.025em; }
.z10-project__before-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(40px, .15fr); align-items: end; gap: clamp(18px, 4vw, 64px); max-width: 1760px; margin: 0 auto; }
.z10-project__before-figure { width: min(78%, 1190px); margin: 0; }
.z10-project__image-link { display: block; overflow: hidden; background: #e7e5df; cursor: zoom-in; }
.z10-project__image { width: 100%; height: auto; object-fit: cover; transition: transform .65s cubic-bezier(.2,.65,.25,1); }
.z10-project__image-link:hover .z10-project__image { transform: scale(1.015); }
.z10-project__before-figure .z10-project__image { aspect-ratio: 1.48 / 1; }
.z10-project__before-figure figcaption, .z10-project__figure figcaption { display: flex; justify-content: space-between; gap: 1rem; margin-top: .75rem; color: #686962; font-size: .58rem; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; }
.z10-project__side-index { padding-bottom: 1.4rem; color: var(--z10-stone); font-family: var(--z10-project-serif); font-size: clamp(2rem, 4vw, 4rem); line-height: 1; }
.z10-project__renders { background: var(--z10-ivory); }
.z10-project__gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; gap: clamp(12px, 1.35vw, 22px); max-width: 1760px; margin: 0 auto; }
.z10-project__figure { min-width: 0; margin: 0; }
.z10-project__figure .z10-project__image-link { width: 100%; }
.z10-project__figure--panorama, .z10-project__figure--wide, .z10-project__figure--feature { grid-column: 1 / -1; }
.z10-project__figure--landscape { grid-column: span 7; }
.z10-project__figure--portrait { grid-column: span 5; }
.z10-project__figure--panorama .z10-project__image { aspect-ratio: 1.82 / 1; }
.z10-project__figure--wide .z10-project__image { aspect-ratio: 1.65 / 1; }
.z10-project__figure--feature .z10-project__image { aspect-ratio: 1.78 / 1; }
.z10-project__figure--landscape .z10-project__image { aspect-ratio: 1.25 / 1; }
.z10-project__figure--portrait .z10-project__image { aspect-ratio: .82 / 1; }
.z10-project__gallery--renders .z10-project__figure:nth-child(4n+2) { margin-top: clamp(0px, 4vw, 62px); }
.z10-project__gallery--final .z10-project__figure--landscape { grid-column: span 5; }
.z10-project__gallery--final .z10-project__figure--portrait { grid-column: span 7; }
.z10-project__gallery--final .z10-project__figure:nth-child(4n+2) { margin-top: clamp(0px, 5vw, 76px); }
.z10-project__final { padding: clamp(68px, 9vw, 144px) 0; background: var(--z10-paper); }
.z10-project__final-heading { padding: 0 var(--z10-project-gutter) clamp(32px, 5vw, 80px); }
.z10-project__final-heading h2 { font-size: clamp(2.4rem, 4.4vw, 5rem); }
.z10-project__gallery--final { padding-inline: var(--z10-project-gutter); }
.z10-project__credits { display: grid; grid-template-columns: minmax(200px, .75fr) minmax(0, 1.25fr); gap: clamp(38px, 9vw, 140px); padding: clamp(62px, 8vw, 128px) var(--z10-project-gutter); background: var(--z10-green); color: var(--z10-paper); }
.z10-project__credits-heading h2 { margin: .8rem 0 0; font-family: var(--z10-project-serif); font-size: clamp(2rem, 3.5vw, 4rem); font-weight: 300; line-height: 1; }
.z10-project__credits-list { align-self: center; }
.z10-project__credit { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(0, 1fr) 32px; align-items: center; gap: 1rem; padding: 1.25rem 0; border-top: 1px solid rgba(250,249,246,.28); }
.z10-project__credit:last-child { border-bottom: 1px solid rgba(250,249,246,.28); }
.z10-project__credit .z10-project__eyebrow { color: rgba(250,249,246,.68); font-size: .6rem; }
.z10-project__credit p { margin: 0; font-size: .95rem; }
.z10-project__credit-number { color: rgba(250,249,246,.6); font-family: var(--z10-project-serif); font-size: 1.15rem; text-align: right; }
.z10-project__next { position: relative; display: flex; min-height: clamp(430px, 65vw, 820px); align-items: center; overflow: hidden; background: #292a26; color: #fff; text-decoration: none; }
.z10-project__next-image, .z10-project__next-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.z10-project__next-image { object-fit: cover; object-position: center; transition: transform .9s cubic-bezier(.2,.65,.25,1); }
.z10-project__next:hover .z10-project__next-image { transform: scale(1.02); }
.z10-project__next-overlay { background: linear-gradient(90deg, rgba(0,0,0,.52), rgba(0,0,0,.08) 78%), linear-gradient(0deg, rgba(0,0,0,.28), transparent 52%); }
.z10-project__next-copy { position: relative; z-index: 1; display: grid; gap: 1rem; padding: 4rem var(--z10-project-gutter); }
.z10-project__next-copy .z10-project__eyebrow { color: rgba(255,255,255,.78); }
.z10-project__next-copy strong { max-width: 85vw; overflow-wrap: anywhere; font-family: var(--z10-project-serif); font-size: clamp(2.8rem, 6vw, 6.5rem); font-weight: 300; line-height: 1; letter-spacing: -.035em; }
.z10-project__next-link { margin-top: .75rem; font-size: .65rem; letter-spacing: .13em; }
.z10-project__next-link i { display: inline-block; margin-left: .65rem; font-size: 1rem; font-style: normal; transition: transform .2s ease; }
.z10-project__next:hover .z10-project__next-link i { transform: translate(3px, -3px); }
/* Keep the next-project link white even when the theme applies a global blue hover color. */
.z10-project a.z10-project__next:link,
.z10-project a.z10-project__next:visited,
.z10-project a.z10-project__next:hover,
.z10-project a.z10-project__next:focus,
.z10-project a.z10-project__next:active,
.z10-project a.z10-project__next:hover *,
.z10-project a.z10-project__next:focus *,
.z10-project a.z10-project__next:active * {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	text-decoration: none !important;
}
.z10-project__cta { display: grid; min-height: 440px; place-items: center; padding: clamp(60px, 8vw, 120px) var(--z10-project-gutter); background: var(--z10-green); color: var(--z10-paper); text-align: center; }
.z10-project__cta-copy { max-width: 660px; }
.z10-project__cta-copy .z10-project__eyebrow { color: rgba(250,249,246,.68); }
.z10-project__cta h2 { margin: 1.1rem 0; font-family: var(--z10-project-serif); font-size: clamp(2.8rem, 5.2vw, 5.6rem); font-weight: 300; line-height: 1; letter-spacing: -.035em; }
.z10-project__cta p { max-width: 440px; margin: 0 auto 1.8rem; color: rgba(250,249,246,.82); font-size: .95rem; line-height: 1.8; }
.z10-project__cta-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 1rem; padding: .8rem 1.35rem; border: 1px solid rgba(250,249,246,.52); color: var(--z10-paper); font-size: .65rem; font-weight: 400; letter-spacing: .1em; text-decoration: none; transition: opacity .2s ease, transform .25s ease, border-color .2s ease; }
.z10-project__cta-button:hover { opacity: .8; transform: translateY(-2px); border-color: rgba(250,249,246,.9); }
.z10-project__cta-button:focus-visible { outline: 2px solid var(--z10-paper); outline-offset: 4px; }
.z10-project__cta-arrow { display: inline-block; font-family: Arial, sans-serif; letter-spacing: 0; transition: transform .25s ease; }
.z10-project__cta-button:hover .z10-project__cta-arrow { transform: translateX(4px); }
.z10-project__lightbox { position: fixed; inset: 0; z-index: 999999; display: none; align-items: center; justify-content: center; padding: clamp(54px, 7vw, 96px); background: rgba(9,10,9,.96); color: #f8f8f4; }
.z10-project__lightbox.is-open { display: flex; }
.z10-project__lightbox-figure { display: grid; max-width: 100%; max-height: 100%; justify-items: center; gap: .8rem; margin: 0; }
.z10-project__lightbox-figure img { display: block; width: auto; height: auto; max-width: min(100%, 1600px); max-height: calc(100vh - 140px); object-fit: contain; }
.z10-project__lightbox-figure figcaption { color: rgba(248,248,244,.74); font-size: .65rem; text-align: center; }
.z10-project__lightbox button { position: absolute; display: grid; min-width: 48px; min-height: 48px; place-items: center; border: 0; background: transparent; color: inherit; font-family: inherit; font-size: 2rem; font-weight: 300; line-height: 1; cursor: pointer; }
.z10-project__lightbox-close { top: 16px; right: 22px; font-size: 2.4rem !important; }
.z10-project__lightbox-prev { top: 50%; left: 12px; transform: translateY(-50%); }
.z10-project__lightbox-next { top: 50%; right: 12px; transform: translateY(-50%); }
.z10-project__lightbox-count { position: absolute; right: 24px; bottom: 18px; color: rgba(248,248,244,.72); font-size: .68rem; letter-spacing: .12em; }
.z10-project__lightbox button:disabled { opacity: .28; cursor: default; }
.z10-project__lightbox button[hidden] { display: none; }
.z10-project :focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.z10-project [id^="z10-project-"] { scroll-margin-top: 16px; }
.z10-project.z10-js .z10-project__section-heading, .z10-project.z10-js .z10-project__final-heading, .z10-project.z10-js .z10-project__credits-heading, .z10-project.z10-js .z10-project__meta-item, .z10-project.z10-js .z10-project__description, .z10-project.z10-js .z10-project__figure, .z10-project.z10-js .z10-project__credit, .z10-project.z10-js .z10-project__cta-copy { opacity: 0; transform: translateY(14px); transition: opacity .65s ease, transform .65s ease; }
.z10-project.z10-js .is-visible { opacity: 1; transform: none; }

/* Optional Elementor header setup: use body.z10-project-single to configure its transparent-over-hero state. */
@media (min-width: 1600px) {
	.z10-project__intro-grid { padding-block: 132px; }
}
@media (max-width: 1023px) {
	.z10-project__hero { min-height: 86vh; min-height: 86svh; }
	.z10-project__intro-grid { grid-template-columns: minmax(175px, .65fr) minmax(0, 1.35fr); gap: clamp(30px, 5vw, 64px); }
	.z10-project__before-figure { width: 86%; }
	.z10-project__credits { grid-template-columns: minmax(170px, .7fr) minmax(0, 1.3fr); gap: 40px; }
}
@media (max-width: 767px) {
	.z10-project { --z10-project-gutter: clamp(18px, 5vw, 24px); }
	.z10-project__hero { min-height: 84vh; min-height: 84svh; }
	.z10-project__hero-copy { max-width: calc(100% - 36px); padding-top: 3rem; }
	.z10-project__hero h1 { font-size: clamp(3rem, 11vw, 5rem); overflow-wrap: anywhere; }
	.z10-project__intro { padding-block: 64px 60px; }
	.z10-project__intro-grid { grid-template-columns: 1fr; gap: 42px; padding-block: 44px; }
	.z10-project__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
	.z10-project__meta-item:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.z10-project__meta-item dd { font-size: .88rem; }
	.z10-project__description p { font-size: 1rem; line-height: 1.78; }
	.z10-project__before, .z10-project__renders { padding-block: 64px; }
	.z10-project__section-heading { margin-bottom: 28px; }
	.z10-project__before-layout { grid-template-columns: 1fr; gap: 12px; }
	.z10-project__before-figure { width: 100%; }
	.z10-project__before-figure .z10-project__image { aspect-ratio: 1.08 / 1; }
	.z10-project__side-index { display: none; }
	.z10-project__gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 10px; }
	.z10-project__figure--panorama, .z10-project__figure--wide, .z10-project__figure--feature { grid-column: 1 / -1; }
	.z10-project__figure--landscape, .z10-project__gallery--final .z10-project__figure--landscape { grid-column: span 1; }
	.z10-project__figure--portrait, .z10-project__gallery--final .z10-project__figure--portrait { grid-column: span 1; }
	.z10-project__figure--panorama .z10-project__image { aspect-ratio: 1.2 / 1; }
	.z10-project__figure--wide .z10-project__image, .z10-project__figure--feature .z10-project__image { aspect-ratio: 1.15 / 1; }
	.z10-project__figure--landscape .z10-project__image { aspect-ratio: .92 / 1; }
	.z10-project__figure--portrait .z10-project__image { aspect-ratio: .78 / 1; }
	.z10-project__gallery--renders .z10-project__figure:nth-child(4n+2), .z10-project__gallery--final .z10-project__figure:nth-child(4n+2) { margin-top: 20px; }
	.z10-project__figure figcaption, .z10-project__before-figure figcaption { display: grid; gap: .15rem; font-size: .5rem; letter-spacing: .07em; }
	.z10-project__final { padding-block: 64px; }
	.z10-project__final-heading { padding-bottom: 30px; }
	.z10-project__credits { grid-template-columns: 1fr; gap: 34px; padding-block: 60px; }
	.z10-project__credit { grid-template-columns: minmax(0, 1fr) 30px; gap: .4rem 1rem; padding-block: 1rem; }
	.z10-project__credit .z10-project__eyebrow { grid-column: 1 / -1; }
	.z10-project__credit p { font-size: .9rem; }
	.z10-project__next { min-height: 70svh; }
	.z10-project__next-copy { gap: .8rem; }
	.z10-project__next-copy strong { font-size: clamp(2.8rem, 10vw, 4.6rem); }
	.z10-project__cta { min-height: 400px; }
	.z10-project__cta p { font-size: .88rem; }
	.z10-project__lightbox { padding: 60px 12px 48px; }
	.z10-project__lightbox-figure img { max-width: calc(100vw - 24px); max-height: calc(100svh - 120px); }
	.z10-project__lightbox-prev { left: 0; }
	.z10-project__lightbox-next { right: 0; }
}
@media (max-width: 380px) {
	.z10-project__intro-top { font-size: .58rem; }
	.z10-project__eyebrow { font-size: .6rem; }
	.z10-project__meta { grid-template-columns: 1fr 1fr; }
	.z10-project__lightbox button { min-width: 44px; min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
	.z10-project *, .z10-project *::before, .z10-project *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
