/*=========================================================
  HOME PORTFOLIO
=========================================================*/

.home-portfolio {
    width: 100%;
    padding:
calc(var(--section-padding-top) + var(--space-2xl))
        calc(var(--section-padding-bottom) + var(--space-2xl));
    overflow: visible;
    position: relative;
}


/*=========================================================
  2 × 2 GRID
=========================================================*/

.home-portfolio-grid {
    width: 100%;
        width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 var(--space-lg);
    box-sizing: border-box;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto auto;
    gap: var(--space-md);
    position: relative;
    z-index: 1;
    align-items: start;
}


/*=========================================================
  ALL CELLS
=========================================================*/

.home-portfolio-cell {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}


/*=========================================================
  TOP LEFT — CONTENT
=========================================================*/

.home-portfolio-content-cell {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: right;
    position: relative;
    z-index: 4;
}

.home-portfolio-content {
    width: 100%;
}


/*=========================================================
  TOP RIGHT — FEATURED IMAGE
=========================================================*/

.home-portfolio-featured {
    grid-column: 2;
    grid-row: 1;
    aspect-ratio: 7 / 5;
    overflow: hidden;
    border-radius: var(--radius-md);
    position: relative;
    z-index: 2;
}


/*=========================================================
  BOTTOM LEFT
=========================================================*/

.home-portfolio-item-left {
    grid-column: 2;
    grid-row: 2;
    aspect-ratio: 7 / 5;
    overflow: hidden;
    border-radius: var(--radius-md);
    position: relative;
    z-index: 2;
}


/*=========================================================
  BOTTOM RIGHT
=========================================================*/

.home-portfolio-item-right {
    grid-column: 1;
    grid-row: 2;
    aspect-ratio: 7 / 5;
    overflow: hidden;
    border-radius: var(--radius-md);
    position: relative;
    z-index: 2;
}


/*=========================================================
  IMAGE
=========================================================*/

.home-portfolio-image {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.home-portfolio-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.home-portfolio-image:hover img {
    transform: scale(1.04);
}


/*=========================================================
  EYEBROW
=========================================================*/

.home-portfolio-eyebrow {
    display: block;
    margin-bottom: var(--space-sm);
    color: var(--color-gray-dark);
    font-size: var(--fs-small);
    font-weight: 700;
}


/*=========================================================
  TITLE
=========================================================*/

.home-portfolio-title {
    margin: 0 0 var(--space-md);
    color: var(--color-primary);
    font-size: var(--fs-h2);
    line-height: 1.4;
}


/*=========================================================
  PORTFOLIO DESCRIPTION
=========================================================*/

.home-portfolio-description {
    margin: 0 0 var(--space-lg);
    color: var(--color-text);
    font-size: var(--fs-body);
    line-height: 2;
    text-align: justify !important;
}


/*=========================================================
  PORTFOLIO BUTTON
=========================================================*/

.home-portfolio-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 36px;
    margin: 0 auto;
    align-self: center;
    padding: 0 var(--space-lg);
    border: 2px solid var(--color-orange);
    border-radius: var(--radius-sm);
    background: var(--color-orange);
    color: var(--color-white);
    font-size: var(--fs-small);
    font-weight: 700;
    text-decoration: none !important;
    transition: var(--transition);
}

.home-portfolio-button:hover {
    background: var(--color-white);
    color: var(--color-orange);
    border-color: var(--color-orange);
    text-decoration: none !important;
}


/*=========================================================
  DOTS
=========================================================*/

.home-portfolio-dots {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin-top: var(--space-lg);
    margin-bottom: var(--space-xl);
    position: relative;
    z-index: 4;
}

.home-portfolio-dot {
    display: block;
    width: 12px;
    height: 12px;
    min-width: 12px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 50%;
    background: var(--color-gray-light);
    opacity: 0.55;
    cursor: pointer;
    transition: var(--transition);
    appearance: none;
    -webkit-appearance: none;
}

.home-portfolio-dot.is-active {
    background: var(--color-orange);
    opacity: 1;
}

.home-portfolio-dot:hover {
    opacity: 1;
}


/*=========================================================
  ANIMATION LAYER
=========================================================*/

.home-portfolio-animation-layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
}

.home-portfolio-clone {
    position: absolute;
    display: block;
    object-fit: cover;
    border-radius: var(--radius-md);
    will-change: transform, opacity;
    transition:
        transform 800ms cubic-bezier(0.22, 1, 0.36, 1),
        opacity 800ms ease;
}


/* Live images hidden during desktop animation */
@media (min-width: 768px) {
    .home-portfolio.is-animating .home-portfolio-image img {
        opacity: 0;
    }
}


/*=========================================================
  TABLET
=========================================================*/

@media (max-width: 991px) {
    .home-portfolio-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/*=========================================================
  MOBILE
=========================================================*/

@media (max-width: 767px) {

    .home-portfolio {
        padding:
            var(--space-xl)
            0
            var(--space-2xl);
    }
.home-portfolio-content{
    padding-left:var(--space-md);
    padding-right:var(--space-md);
    box-sizing:border-box;
}
.home-portfolio-grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);

    padding-left: var(--space-md);
    padding-right: var(--space-md);

    box-sizing: border-box;
}

    .home-portfolio-content-cell {
        order: 1;
        text-align: justify;
    }

    .home-portfolio-featured {
        order: 2;
        aspect-ratio: 16 / 9;
    }

    .home-portfolio-item-left,
    .home-portfolio-item-right {
        display: none;
    }

    .home-portfolio-button {
        align-self: center;
        margin-top: var(--space-md);
    }

 .home-portfolio-dots {
        order: 3;
        margin-top: var(--space-md);
        margin-bottom: var(--space-2xl);
        gap: 14px;
    }

    .home-portfolio-dot {
        width: 12px;
        height: 12px;
        min-width: 12px;
        padding: 0;
        margin: 0;
        border: 0;
        border-radius: 50%;
        background: var(--color-gray-light);
        opacity: 0.55;
        cursor: pointer;
        transition: var(--transition);
        appearance: none;
        -webkit-appearance: none;
    }

    .home-portfolio-dot.is-active {
        background: var(--color-orange);
        opacity: 1;
    }

    .home-portfolio-animation-layer {
        display: none;
    }
    .home-portfolio-featured {
    touch-action: pan-y;
}
}
/* Shared corner radius for portfolio text buttons */

.portfolio-archive,
.portfolio-taxonomy,
.fz-brand-case {
	--portfolio-button-radius: var(--radius-sm, 6px);
}

.portfolio-archive .portfolio-archive__switch,
.portfolio-archive .portfolio-archive__more,
.portfolio-taxonomy .portfolio-taxonomy__switcher button,
.portfolio-taxonomy .portfolio-taxonomy__load-more,
.fz-brand-case .fz-brand-case__story a {
	border-radius: var(--portfolio-button-radius) !important;
}
/* Home portfolio — top spacing */
.home-portfolio {
	padding-top:
		calc(var(--section-padding-top, 0px) + var(--space-3xl))
		!important;
}

@media (max-width: 767px) {
	.home-portfolio {
		padding-top: var(--space-3xl) !important;
	}
}
/* Portfolio dots — larger click targets */

.home-portfolio .home-portfolio-dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;

	flex: 0 0 44px;

	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-sizing: border-box;

	background: transparent;
	opacity: 1;
	cursor: pointer;
}

.home-portfolio .home-portfolio-dot::before {
	content: "";
	display: block;

	width: 12px;
	height: 12px;
	border-radius: 50%;

	background: var(--color-gray-light);
	opacity: .55;

	transition:
		background-color .2s ease,
		opacity .2s ease;
}

.home-portfolio .home-portfolio-dot.is-active,
.home-portfolio .home-portfolio-dot:hover {
	background: transparent;
	opacity: 1;
}

.home-portfolio .home-portfolio-dot.is-active::before {
	background: var(--color-orange);
	opacity: 1;
}

.home-portfolio .home-portfolio-dot:hover::before {
	opacity: 1;
}

.home-portfolio .home-portfolio-dot:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: -4px;
	border-radius: var(--radius-sm);
}

.home-portfolio .home-portfolio-dots {
	gap: 0;
}
.home-portfolio .home-portfolio-dot {
	width: 28px;
	height: 28px;
	min-width: 28px;
	min-height: 28px;
	flex: 0 0 28px;
}

.home-portfolio .home-portfolio-dots {
	gap: 0;
}
/* Main portfolio page — introduction width */

.portfolio-archive .portfolio-archive__intro-text {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	box-sizing: border-box;
}
/* Expanded portfolio — existing brand destination */

.portfolio-taxonomy .portfolio-taxonomy__brand-actions {
	grid-column: 1 / -1;

	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--space-md);

	width: 100%;
	margin-block-start: var(--space-md);
}

.portfolio-taxonomy .portfolio-taxonomy__brand-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: auto;
	max-width: 100%;
	padding: var(--space-sm) var(--space-lg);
	box-sizing: border-box;

	border: 2px solid var(--color-orange);
	border-radius: var(--radius-sm);
	background-color: var(--color-orange);
	color: var(--color-white);

	font-size: var(--fs-small);
	font-weight: 700;
	text-align: center;
	text-decoration: none;

	transition:
		background-color var(--transition),
		color var(--transition);
}

.portfolio-taxonomy .portfolio-taxonomy__brand-link:hover {
	background-color: var(--color-white);
	color: var(--color-orange);
}

.portfolio-taxonomy .portfolio-taxonomy__brand-link:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 4px;
}
/* Place the brand button below both image columns. */

.portfolio-taxonomy .portfolio-taxonomy__feature > .portfolio-taxonomy__brand-actions {
	grid-column: 1 / -1;
	grid-row: 2;
	margin-block-start: var(--space-lg);
}
/* Brand gallery fallback */

.fz-brand-case.fz-brand-case--gallery {
	padding-block: var(--space-2xl);
}

.fz-brand-case--gallery .fz-brand-gallery-title {
	margin-block: 0 var(--space-xl);
	color: var(--color-primary);
	font-size: var(--fs-h1);
	text-align: start;
}
/* ==========================================
   SIMPLE BRAND GALLERY
========================================== */

.fz-brand-gallery {
	padding-block: var(--space-2xl);
}

.fz-brand-gallery__container {
	width: 100%;
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: var(--space-lg);
	box-sizing: border-box;
}

.fz-brand-gallery .fz-brand-gallery__header {
	margin-block-end: var(--space-xl);
}

.fz-brand-gallery .fz-brand-gallery__title {
	margin: 0;
	color: var(--color-primary);
	font-size: var(--fs-h1);
	text-align: start;
}

.fz-brand-gallery .fz-brand-gallery__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-md);
}

.fz-brand-gallery .fz-brand-gallery__item {
	min-width: 0;
	margin: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--radius-sm);
}

.fz-brand-gallery .fz-brand-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

@media (max-width: 991px) {
	.fz-brand-gallery .fz-brand-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.fz-brand-gallery__container {
		padding-inline: var(--space-md);
	}

	.fz-brand-gallery .fz-brand-gallery__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}
.fz-brand-gallery .portfolio-taxonomy__feature-list {
	margin-block-end: var(--space-2xl);
}

.fz-brand-gallery .fz-brand-gallery__item {
	aspect-ratio: 1 / 1;
}

.fz-brand-gallery .fz-brand-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Full-width landscape images within the brand gallery. */

.fz-brand-gallery__grid > .fz-brand-gallery__item--wide {
	grid-column: 1 / -1;
	aspect-ratio: auto;
}

.fz-brand-gallery__grid > .fz-brand-gallery__item--wide img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}