.modern-lihat-foto {
	--foto-detail-primary: #0ab7a3;
	--foto-detail-primary-dark: #078f84;

	--foto-detail-primary-soft: rgba(10, 183, 163, 0.08);

	--foto-detail-text: #123f55;
	--foto-detail-text-soft: #6f7c7e;

	--foto-detail-border: #e5eeeb;

	--foto-detail-white: #ffffff;

	padding: 55px 0 85px;

	background: linear-gradient(180deg, #ffffff 0%, #f8fbfa 100%);
}

/* =========================================================
   LAYOUT
========================================================= */

.foto-detail-layout {
	display: grid;

	grid-template-columns:
		minmax(0, 2fr)
		minmax(280px, 1fr);

	gap: 42px;

	align-items: start;
}

/* =========================================================
   MAIN
========================================================= */

.foto-detail-main {
	min-width: 0;
}

/* =========================================================
   HEADER
========================================================= */

.foto-detail-header {
	margin-bottom: 24px;
}

/* =========================================================
   DATE
========================================================= */

.foto-detail-date {
	display: flex;

	align-items: center;

	gap: 7px;

	margin-bottom: 10px;

	color: #8a9695;

	font-size: 12px;

	line-height: 1.5;
}

.foto-detail-date i {
	color: var(--foto-detail-primary);

	font-size: 11px;
}

/* =========================================================
   TITLE
========================================================= */

.foto-detail-title {
	margin: 0;

	color: var(--foto-detail-text);

	font-size: 32px;

	line-height: 1.25;

	font-weight: 800;

	letter-spacing: -0.7px;
}

/* =========================================================
   SHARE
========================================================= */

.foto-share {
	display: flex;

	align-items: center;

	gap: 13px;

	margin-top: 18px;
}

.foto-share-label {
	color: var(--foto-detail-text-soft);

	font-size: 11px;

	font-weight: 700;

	letter-spacing: 0.5px;

	text-transform: uppercase;
}

.foto-share-buttons {
	display: flex;

	align-items: center;

	gap: 7px;
}

/* =========================================================
   SHARE BUTTON
========================================================= */

.foto-share-button {
	width: 34px;
	height: 34px;

	display: inline-flex;

	align-items: center;
	justify-content: center;

	border: 1px solid var(--foto-detail-border);

	border-radius: 50%;

	background: #ffffff;

	color: #75817f;

	font-size: 13px;

	text-decoration: none;

	transition:
		transform 0.25s ease,
		color 0.25s ease,
		background-color 0.25s ease,
		border-color 0.25s ease,
		box-shadow 0.25s ease;
}

.foto-share-button:hover {
	transform: translateY(-3px);

	color: #ffffff;

	text-decoration: none;

	border-color: transparent;

	box-shadow: 0 7px 16px rgba(30, 65, 59, 0.13);
}

.foto-share-button.facebook:hover {
	background: #1877f2;
}

.foto-share-button.twitter:hover {
	background: #1d9bf0;
}

.foto-share-button.whatsapp:hover {
	background: #25d366;
}

/* =========================================================
   PHOTO VIEWER
========================================================= */

.foto-viewer-card {
	padding: 9px;

	border: 1px solid var(--foto-detail-border);

	border-radius: 22px;

	background: #ffffff;

	box-shadow: 0 15px 40px rgba(31, 62, 57, 0.08);

	transition:
		transform 0.35s ease,
		box-shadow 0.35s ease;
}

.foto-viewer-card:hover {
	transform: translateY(-3px);

	box-shadow: 0 20px 48px rgba(31, 62, 57, 0.12);
}

/* =========================================================
   OWL VIEWER
========================================================= */

.foto-viewer {
	position: relative;

	overflow: hidden;

	border-radius: 15px;

	background: #edf3f1;
}

/* =========================================================
   SLIDE
========================================================= */

.foto-slide {
	position: relative;

	width: 100%;

	aspect-ratio: 16 / 10;

	overflow: hidden;

	background: #edf3f1;
}

/* =========================================================
   IMAGE
========================================================= */

.foto-slide img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: contain;

	background: #f0f4f3;

	transition: transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.foto-slide:hover img {
	transform: scale(1.025);
}

/* =========================================================
   OWL NAVIGATION
========================================================= */

.foto-viewer .owl-nav {
	margin: 0 !important;
}

.foto-viewer .owl-prev,
.foto-viewer .owl-next {
	position: absolute;

	top: 50%;

	width: 38px;
	height: 38px;

	display: flex !important;

	align-items: center;
	justify-content: center;

	margin: 0 !important;

	transform: translateY(-50%);

	border: 1px solid rgba(255, 255, 255, 0.55) !important;

	border-radius: 50% !important;

	background: rgba(18, 63, 85, 0.72) !important;

	color: #ffffff !important;

	font-size: 13px !important;

	line-height: 1;

	box-shadow: 0 7px 18px rgba(0, 0, 0, 0.12);

	opacity: 0;

	transition:
		opacity 0.3s ease,
		transform 0.25s ease,
		background-color 0.25s ease;
}

.foto-viewer:hover .owl-prev,
.foto-viewer:hover .owl-next {
	opacity: 1;
}

.foto-viewer .owl-prev {
	left: 16px;
}

.foto-viewer .owl-next {
	right: 16px;
}

.foto-viewer .owl-prev:hover,
.foto-viewer .owl-next:hover {
	background: var(--foto-detail-primary) !important;

	transform: translateY(-50%) scale(1.08);
}

/* =========================================================
   OWL DOTS
========================================================= */

.foto-viewer .owl-dots {
	position: absolute;

	left: 0;
	right: 0;

	bottom: 16px;

	display: flex;

	align-items: center;
	justify-content: center;

	gap: 5px;

	margin: 0 !important;
}

.foto-viewer .owl-dot span {
	width: 7px !important;
	height: 7px !important;

	margin: 0 3px !important;

	border-radius: 20px !important;

	background: rgba(255, 255, 255, 0.65) !important;

	transition:
		width 0.3s ease,
		background-color 0.3s ease;
}

.foto-viewer .owl-dot.active span {
	width: 24px !important;

	background: var(--foto-detail-primary) !important;
}

.foto-viewer .owl-dot:hover span {
	background: #ffffff !important;
}

/* =========================================================
   PHOTO META
========================================================= */

.foto-detail-meta {
	display: flex;

	align-items: center;

	gap: 15px;

	margin-top: 15px;

	padding: 13px 3px;

	border-bottom: 1px solid var(--foto-detail-border);
}

.foto-meta-item {
	display: flex;

	align-items: center;

	gap: 7px;

	color: #8a9695;

	font-size: 11px;
}

.foto-meta-item i {
	color: var(--foto-detail-primary);

	font-size: 11px;
}

.foto-meta-divider {
	width: 1px;

	height: 14px;

	background: #dfe8e5;
}

/* =========================================================
   CONTENT
========================================================= */

.foto-content {
	margin-top: 30px;

	padding: 28px 30px;

	border: 1px solid var(--foto-detail-border);

	border-radius: 18px;

	background: #ffffff;

	box-shadow: 0 8px 25px rgba(31, 62, 57, 0.035);
}

/* =========================================================
   CONTENT HEADING
========================================================= */

.foto-content-heading {
	display: flex;

	align-items: center;

	gap: 10px;

	margin-bottom: 18px;
}

.foto-content-heading span {
	width: 28px;

	height: 4px;

	border-radius: 10px;

	background: var(--foto-detail-primary);
}

.foto-content-heading h3 {
	margin: 0;

	color: var(--foto-detail-text);

	font-size: 18px;

	font-weight: 800;
}

/* =========================================================
   CONTENT BODY
========================================================= */

.foto-content-body {
	color: #687570;

	font-size: 14px;

	line-height: 1.9;
}

.foto-content-body p {
	margin-bottom: 16px;
}

.foto-content-body h1,
.foto-content-body h2,
.foto-content-body h3,
.foto-content-body h4,
.foto-content-body h5,
.foto-content-body h6 {
	margin-top: 24px;

	margin-bottom: 10px;

	color: var(--foto-detail-text);

	line-height: 1.4;
}

.foto-content-body a {
	color: var(--foto-detail-primary);

	text-decoration: none;
}

.foto-content-body a:hover {
	color: var(--foto-detail-primary-dark);

	text-decoration: underline;
}

.foto-content-body img {
	max-width: 100%;

	height: auto;

	margin: 12px 0;

	border-radius: 12px;
}

.foto-content-body ul,
.foto-content-body ol {
	padding-left: 22px;

	margin-bottom: 18px;
}

.foto-content-body ol li {
	margin-bottom: 7px;

	color: #687570;

	font-family: inherit;

	line-height: 1.7;
}

/* =========================================================
   BACK BUTTON
========================================================= */

.foto-back-wrapper {
	margin-top: 28px;
}

.foto-back {
	display: inline-flex;

	align-items: center;

	gap: 8px;

	color: var(--foto-detail-primary);

	font-size: 11px;

	font-weight: 800;

	letter-spacing: 0.3px;

	text-transform: uppercase;

	text-decoration: none;

	transition:
		color 0.25s ease,
		transform 0.25s ease;
}

.foto-back:hover {
	color: var(--foto-detail-primary-dark);

	text-decoration: none;

	transform: translateX(-3px);
}

/* =========================================================
   SIDEBAR
========================================================= */

.foto-detail-sidebar {
	position: sticky;

	top: 25px;

	min-width: 0;
}

/* =========================================================
   SIDEBAR HEADING
========================================================= */

.foto-sidebar-heading {
	margin-bottom: 20px;
}

.foto-sidebar-eyebrow {
	margin-bottom: 7px;

	color: var(--foto-detail-primary);

	font-size: 10px;

	font-weight: 800;

	letter-spacing: 1.4px;

	text-transform: uppercase;
}

.foto-sidebar-heading h3 {
	margin: 0 0 7px;

	color: var(--foto-detail-text);

	font-size: 23px;

	line-height: 1.2;

	font-weight: 800;

	letter-spacing: -0.4px;
}

.foto-sidebar-heading h3 span {
	color: var(--foto-detail-primary);
}

.foto-sidebar-heading p {
	margin: 0;

	color: var(--foto-detail-text-soft);

	font-size: 12px;

	line-height: 1.7;
}

/* =========================================================
   OTHER FOTO LIST
========================================================= */

.foto-other-list {
	display: flex;

	flex-direction: column;

	gap: 15px;
}

/* =========================================================
   OTHER FOTO CARD
========================================================= */

.foto-other-card {
	display: grid;

	grid-template-columns:
		135px
		minmax(0, 1fr);

	gap: 13px;

	padding: 9px;

	border: 1px solid var(--foto-detail-border);

	border-radius: 15px;

	background: #ffffff;

	color: inherit;

	text-decoration: none;

	box-shadow: 0 7px 20px rgba(31, 62, 57, 0.045);

	transition:
		transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1),
		box-shadow 0.35s ease,
		border-color 0.35s ease;
}

/* =========================================================
   SIDEBAR PARALLAX
========================================================= */

.foto-other-card:nth-child(odd) {
	transform: rotate(-0.8deg) translateX(-2px);
}

.foto-other-card:nth-child(even) {
	transform: rotate(0.8deg) translateX(2px);
}

.foto-other-card:hover {
	z-index: 2;

	transform: translateY(-5px) rotate(0deg) scale(1.015);

	border-color: rgba(10, 183, 163, 0.22);

	box-shadow: 0 15px 30px rgba(31, 62, 57, 0.1);

	color: inherit;

	text-decoration: none;
}

/* =========================================================
   OTHER PHOTO THUMBNAIL
========================================================= */

.foto-other-thumbnail {
	position: relative;

	aspect-ratio: 16 / 10;

	overflow: hidden;

	border-radius: 10px;

	background: #edf3f1;
}

.foto-other-thumbnail img {
	display: block;

	width: 100%;

	height: 100%;

	object-fit: cover;

	transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.foto-other-card:hover .foto-other-thumbnail img {
	transform: scale(1.08);
}

/* =========================================================
   OTHER PHOTO VIEW
========================================================= */

.foto-other-view {
	position: absolute;

	left: 50%;

	top: 50%;

	width: 30px;

	height: 30px;

	display: flex;

	align-items: center;

	justify-content: center;

	transform: translate(-50%, -50%);

	border-radius: 50%;

	background: rgba(255, 255, 255, 0.92);

	color: var(--foto-detail-primary);

	font-size: 10px;

	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12);

	transition:
		transform 0.3s ease,
		background-color 0.3s ease;
}

.foto-other-card:hover .foto-other-view {
	transform: translate(-50%, -50%) scale(1.12);

	background: #ffffff;
}

/* =========================================================
   OTHER PHOTO CONTENT
========================================================= */

.foto-other-content {
	min-width: 0;

	padding: 2px 3px 2px 0;
}

/* =========================================================
   OTHER PHOTO DATE
========================================================= */

.foto-other-date {
	display: flex;

	align-items: center;

	gap: 5px;

	margin-bottom: 5px;

	color: #929d9e;

	font-size: 9px;

	line-height: 1.4;
}

.foto-other-date i {
	color: var(--foto-detail-primary);

	font-size: 9px;
}

/* =========================================================
   OTHER PHOTO TITLE
========================================================= */

.foto-other-content h4 {
	display: -webkit-box;

	overflow: hidden;

	margin: 0;

	color: var(--foto-detail-text);

	font-size: 12px;

	line-height: 1.45;

	font-weight: 700;

	-webkit-line-clamp: 3;

	-webkit-box-orient: vertical;
}

/* =========================================================
   OTHER PHOTO LINK
========================================================= */

.foto-other-link {
	display: inline-flex;

	align-items: center;

	gap: 5px;

	margin-top: 8px;

	color: var(--foto-detail-primary);

	font-size: 9px;

	font-weight: 800;

	text-transform: uppercase;
}

.foto-other-link i {
	font-size: 8px;

	transition: transform 0.25s ease;
}

.foto-other-card:hover .foto-other-link i {
	transform: translateX(3px);
}

/* =========================================================
   SIDEBAR EMPTY
========================================================= */

.foto-sidebar-empty {
	padding: 30px 20px;

	text-align: center;

	border: 1px solid var(--foto-detail-border);

	border-radius: 15px;

	background: #ffffff;

	color: #8a9695;
}

.foto-sidebar-empty i {
	margin-bottom: 8px;

	color: var(--foto-detail-primary);

	font-size: 24px;
}

.foto-sidebar-empty p {
	margin: 0;

	font-size: 11px;
}

/* =========================================================
   DETAIL EMPTY
========================================================= */

.foto-detail-empty {
	grid-column: 1 / -1;

	max-width: 650px;

	margin: 20px auto;

	padding: 65px 30px;

	text-align: center;

	border: 1px solid var(--foto-detail-border);

	border-radius: 22px;

	background: #ffffff;

	box-shadow: 0 15px 40px rgba(31, 62, 57, 0.05);
}

.foto-detail-empty-icon {
	width: 78px;

	height: 78px;

	display: flex;

	align-items: center;

	justify-content: center;

	margin: 0 auto;

	border-radius: 50%;

	background: var(--foto-detail-primary-soft);

	color: var(--foto-detail-primary);

	font-size: 30px;
}

.foto-detail-empty > span {
	display: block;

	margin-top: 20px;

	color: var(--foto-detail-primary);

	font-size: 10px;

	font-weight: 800;

	letter-spacing: 1.5px;
}

.foto-detail-empty h2 {
	margin: 7px 0 8px;

	color: var(--foto-detail-text);

	font-size: 26px;

	font-weight: 800;
}

.foto-detail-empty p {
	max-width: 450px;

	margin: 0 auto;

	color: var(--foto-detail-text-soft);

	font-size: 14px;

	line-height: 1.7;
}

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1199px) {
	.foto-detail-layout {
		grid-template-columns:
			minmax(0, 1.7fr)
			minmax(260px, 1fr);

		gap: 30px;
	}

	.foto-detail-title {
		font-size: 29px;
	}

	.foto-other-card {
		grid-template-columns:
			115px
			minmax(0, 1fr);

		gap: 10px;
	}

	.foto-other-content h4 {
		font-size: 11px;
	}
}

/* =========================================================
   TABLET SMALL
========================================================= */

@media (max-width: 991px) {
	.modern-lihat-foto {
		padding: 45px 0 65px;
	}

	.foto-detail-layout {
		grid-template-columns: 1fr;

		gap: 45px;
	}

	.foto-detail-sidebar {
		position: static;
	}

	.foto-other-list {
		display: grid;

		grid-template-columns: repeat(2, minmax(0, 1fr));

		gap: 15px;
	}

	.foto-other-card {
		grid-template-columns:
			120px
			minmax(0, 1fr);
	}
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
	.modern-lihat-foto {
		padding: 35px 0 55px;
	}

	.foto-detail-title {
		font-size: 25px;

		line-height: 1.3;
	}

	.foto-share {
		flex-wrap: wrap;
	}

	.foto-viewer-card {
		padding: 6px;

		border-radius: 17px;
	}

	.foto-viewer {
		border-radius: 12px;
	}

	.foto-slide {
		aspect-ratio: 4 / 3;
	}

	.foto-viewer .owl-prev,
	.foto-viewer .owl-next {
		width: 34px;

		height: 34px;

		font-size: 11px !important;
	}

	.foto-viewer .owl-prev {
		left: 10px;
	}

	.foto-viewer .owl-next {
		right: 10px;
	}

	.foto-content {
		padding: 22px 20px;
	}

	.foto-content-body {
		font-size: 13px;

		line-height: 1.8;
	}

	.foto-other-list {
		grid-template-columns: 1fr;
	}

	.foto-other-card:nth-child(odd),
	.foto-other-card:nth-child(even) {
		transform: rotate(0deg) translateX(0);
	}

	.foto-other-card:hover {
		transform: translateY(-4px) scale(1.01);
	}
}

/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {
	.foto-detail-title {
		font-size: 22px;
	}

	.foto-share-label {
		width: 100%;
	}

	.foto-detail-meta {
		gap: 10px;
	}

	.foto-meta-item {
		font-size: 10px;
	}

	.foto-content {
		padding: 20px 17px;
	}

	.foto-other-card {
		grid-template-columns:
			110px
			minmax(0, 1fr);
	}

	.foto-detail-empty {
		padding: 45px 20px;
	}
}

/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {
	.foto-viewer-card,
	.foto-slide img,
	.foto-share-button,
	.foto-back,
	.foto-other-card,
	.foto-other-thumbnail img,
	.foto-other-view,
	.foto-other-link i {
		transition: none;
	}
}
