/* Persia Builder — front end. Built on the design system (tokens.css + components.css);
   only builder-specific layout and widgets live here. */

.pb-content {
	--pb-shadow-soft: var(--shadow-sm);
	--pb-shadow-medium: var(--shadow-md);
	--pb-shadow-strong: var(--shadow-xl);
	overflow-x: clip;
}

.pb-content *,
.pb-content *::before,
.pb-content *::after {
	box-sizing: border-box;
}

/* ---------- Layout ---------- */

.pb-content {
	--pb-section-space: var(--space-5);
}

@media (max-width: 1024px) {
	.pb-content {
		--pb-section-space: var(--space-4);
	}
}

.pb-section {
	position: relative;
	display: flex;
	padding-block: var(--pb-section-space);
	flex-direction: column;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

.pb-section::before {
	content: "";
	position: absolute;
	inset: 0;
	opacity: 0.5;
	pointer-events: none;
}

.pb-section__inner {
	--pb-gap: 24px;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: var(--pb-gap);
	width: 100%;
}

.pb-section--boxed > .pb-section__inner {
	width: min(var(--pb-width, 1120px), 100% - 40px);
	margin-inline: auto;
}

.pb-column {
	position: relative;
	display: flex;
	flex: 1 1 0;
	min-width: 0;
}

.pb-column__inner {
	--pb-space: 20px;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-width: 0;
}

.pb-column__inner > .pb-el + .pb-el {
	margin-top: var(--pb-space);
}

.pb-widget {
	min-width: 0;
}

/* Theme blocks carry their own page margins; inside a section the section padding sets the rhythm. */
.pb-widget > :first-child,
.pb-widget > .pb-widget__html > :first-child,
.pb-widget .persia-cats > :first-child {
	margin-top: 0;
}

.pb-widget > :last-child,
.pb-widget > .pb-widget__html > :last-child {
	margin-bottom: 0;
}

/* News set to "match the next column": on side-by-side columns it takes no height of its own. */
@media (min-width: 768px) {
	.pb-column__inner:has(> .pb-widget:only-child .pb-news-fit) {
		position: relative;
		min-height: 160px;
	}

	.pb-column__inner > .pb-widget:only-child:has(.pb-news-fit) {
		position: absolute;
		inset: 0;
	}

	.pb-widget:only-child .pb-news-fit,
	.pb-widget:only-child .pb-news-fit > .persia-news,
	.pb-editing .pb-widget:only-child > .pb-widget__html:has(.pb-news-fit) {
		height: 100%;
		max-height: none;
	}

	.pb-news-fit .persia-news__items {
		flex: 1 1 auto;
		min-height: 0;
	}
}

@media (max-width: 767px) {
	.pb-column {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.pb-section--reverse-mobile > .pb-section__inner {
		flex-direction: column-reverse;
	}
}

@media (min-width: 1025px) {
	body:not(.pb-editing) .pb-hide-desktop {
		display: none !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	body:not(.pb-editing) .pb-hide-tablet {
		display: none !important;
	}
}

@media (max-width: 767px) {
	body:not(.pb-editing) .pb-hide-mobile {
		display: none !important;
	}
}

/* ---------- Entrance animations ---------- */

.pb-anim {
	transition: opacity var(--dur-slower) var(--ease-out), transform var(--dur-slower) var(--ease-out);
}

.js-pb .pb-anim:not(.is-in) {
	opacity: 0;
}

.js-pb .pb-anim--fade-up:not(.is-in) {
	transform: translateY(28px);
}

.js-pb .pb-anim--fade-left:not(.is-in) {
	transform: translateX(28px);
}

.js-pb .pb-anim--zoom:not(.is-in) {
	transform: scale(0.94);
}

@media (prefers-reduced-motion: reduce) {
	.pb-anim {
		transition: none;
	}

	.js-pb .pb-anim:not(.is-in) {
		opacity: 1;
		transform: none;
	}
}

.pb-error {
	padding: var(--space-3) var(--space-3-5);
	border: 1px dashed var(--color-danger);
	border-radius: var(--radius-sm);
	color: var(--color-danger);
	font-size: var(--fs-sm);
}

.pb-icon {
	display: inline-block;
	flex: none;
	vertical-align: middle;
}

/* ---------- Text ---------- */

.pb-text {
	color: var(--color-text);
	line-height: var(--lh-loose);
}

.pb-text > :first-child {
	margin-top: 0;
}

.pb-text > :last-child {
	margin-bottom: 0;
}

.pb-text a {
	color: var(--color-primary);
}

.pb-text ul,
.pb-text ol {
	padding-left: 1.4em;
}

/* ---------- Image ---------- */

.pb-image {
	margin: 0;
}

.pb-image__frame {
	display: inline-block;
	max-width: 100%;
	overflow: hidden;
	border-radius: var(--radius-md);
	vertical-align: top;
}

.pb-image img {
	display: block;
	max-width: 100%;
	height: auto;
	transition: transform var(--dur-slower) var(--ease-out);
}

.pb-image figcaption {
	margin-top: var(--space-2);
	color: var(--color-text-muted);
	font-size: var(--fs-sm);
}

.pb-image--zoom .pb-image__frame:hover img {
	transform: scale(1.05);
}

.pb-image--lift .pb-image__frame {
	transition: transform var(--dur-slow), box-shadow var(--dur-slow);
}

.pb-image--lift .pb-image__frame:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
}

/* ---------- Spacer / divider ---------- */

.pb-spacer {
	height: 40px;
}

.pb-divider {
	--pb-divider-color: var(--color-border);
	--pb-divider-weight: 1px;
	--pb-divider-style: solid;
	display: flex;
	align-items: center;
	gap: var(--space-3-5);
	width: 100%;
	padding-block: var(--space-2-5);
}

.pb-divider--center {
	margin-inline: auto;
}

.pb-divider--right {
	margin-left: auto;
}

.pb-divider__line {
	flex: 1;
	border-top: var(--pb-divider-weight) var(--pb-divider-style) var(--pb-divider-color);
}

.pb-divider__mid {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--color-primary);
	font-size: var(--fs-sm);
	letter-spacing: var(--tracking-wide);
}

.pb-divider--left .pb-divider__mid + .pb-divider__line,
.pb-divider--right .pb-divider__line:first-child {
	flex: 6;
}

/* ---------- Icon list ---------- */

.pb-icon-list {
	--pb-list-gap: 12px;
	display: flex;
	flex-direction: column;
	gap: var(--pb-list-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pb-icon-list--inline {
	flex-direction: row;
	flex-wrap: wrap;
	column-gap: calc(var(--pb-list-gap) * 2);
}

.pb-icon-list li > a,
.pb-icon-list li {
	display: flex;
	align-items: flex-start;
	gap: var(--space-2-5);
	color: inherit;
	text-decoration: none;
}

.pb-icon-list li > a {
	display: contents;
}

.pb-icon-list li > a:hover .pb-icon-list__text {
	color: var(--color-primary);
}

.pb-icon-list--divided li + li {
	padding-top: var(--pb-list-gap);
	border-top: 1px solid var(--color-border);
}

.pb-icon-list--divided {
	gap: var(--pb-list-gap);
}

.pb-icon-list__icon {
	display: inline-flex;
	flex: none;
	margin-top: 0.2em;
	color: var(--color-primary);
}

.pb-icon-list__text {
	color: var(--color-text);
	line-height: var(--lh-relaxed);
	transition: color var(--dur-base);
}

/* ---------- Video ---------- */

.pb-video {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--radius-md);
	background: var(--black);
}

.pb-video iframe,
.pb-video video,
.pb-video > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
}

.pb-video--facade {
	cursor: pointer;
}

.pb-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	padding: 0 0 0 var(--space-1);
	border: 0;
	border-radius: var(--radius-round);
	background: var(--color-surface-glass);
	color: var(--color-primary);
	transform: translate(-50%, -50%);
	box-shadow: var(--shadow-lg);
	transition: transform var(--dur-base);
	cursor: pointer;
}

.pb-video--facade:hover .pb-video__play {
	transform: translate(-50%, -50%) scale(1.08);
}

.pb-html > :first-child,
.pb-shortcode > :first-child {
	margin-top: 0;
}

.pb-text table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	border-top: 1px solid var(--color-border);
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
}

.pb-text th,
.pb-text td {
	padding: var(--space-4) 18px;
	border-bottom: 1px solid var(--color-border);
	text-align: left;
	vertical-align: top;
}

.pb-text th {
	width: 28%;
	background: var(--color-primary-soft);
	color: var(--color-text);
	font-weight: var(--fw-bold);
	white-space: nowrap;
}

@media (max-width: 600px) {
	.pb-text tr,
	.pb-text th,
	.pb-text td {
		display: block;
		width: auto;
	}

	.pb-text th {
		padding-bottom: var(--space-2);
		border-bottom: 0;
	}

	.pb-text td {
		padding-top: var(--space-2);
	}
}

/* ---------- Tabbed products ---------- */

.pb-ptabs {
	--pb-ptabs-cols: 4;
}

.pb-ptabs__head {
	margin-bottom: var(--space-4);
}

.pb-ptabs .persia-carousel {
	--persia-cols: var(--pb-ptabs-cols);
}

.pb-ptabs .pb-ptabs__pane[hidden] {
	display: none;
}

.pb-ptabs__more {
	order: 1;
	margin: var(--space-6) 0 0;
	text-align: center;
}

.pb-ptabs__empty {
	margin: 0;
	padding: var(--space-8) 0;
	color: var(--color-text-muted);
	text-align: center;
}

@media (max-width: 767px) {
	.pb-ptabs {
		--pb-ptabs-cols: 2;
	}
}

/* ---------- FAQ (c-accordion with Q / A marks) ---------- */

.pb-faq {
	--pb-faq-accent: var(--color-primary);
}

.pb-faq__mark {
	display: grid;
	flex: none;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: var(--radius-round);
	background: var(--pb-faq-accent);
	color: var(--color-on-primary);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
}

.pb-faq__mark--a {
	background: var(--color-primary-soft);
	color: var(--pb-faq-accent);
}

.pb-faq__a {
	display: flex;
	gap: var(--space-3-5);
}

.pb-faq__a > div > :first-child {
	margin-top: var(--space-1);
}

.pb-faq__a > div > :last-child {
	margin-bottom: 0;
}

/* ---------- Features ---------- */

.pb-features {
	--pb-features-cols: 3;
	--pb-feature-icon: 56px;
	display: grid;
	grid-template-columns: repeat(var(--pb-features-cols), minmax(0, 1fr));
	gap: var(--space-5);
}

.pb-feature {
	display: grid;
	overflow: visible;
	align-content: start;
	justify-items: center;
	gap: var(--space-3-5);
	color: inherit;
	text-align: center;
	text-decoration: none;
}

.pb-features--card .pb-feature {
	padding: var(--space-7) var(--space-6);
}

.pb-features--text-left .pb-feature {
	justify-items: start;
	text-align: left;
}

.pb-features--left .pb-feature {
	grid-template-columns: auto minmax(0, 1fr);
	justify-items: start;
	align-items: start;
	text-align: left;
}

.pb-feature__icon {
	display: grid;
	place-items: center;
	width: var(--pb-feature-icon);
	height: var(--pb-feature-icon);
	border-radius: var(--radius-round);
	background: var(--color-primary-soft);
	color: var(--color-primary);
}

.pb-feature__icon .pb-icon {
	width: 50%;
	height: 50%;
}

.pb-feature__icon.is-image {
	background: none;
}

.pb-feature__icon.is-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.pb-feature__title {
	margin: 0;
	font-size: var(--fs-lg);
	line-height: var(--lh-normal);
}

.pb-feature__text {
	margin: var(--space-1-5) 0 0;
	color: var(--color-text-muted);
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
}

@media (max-width: 767px) {
	.pb-features {
		--pb-features-cols: 1;
	}
}

/* ---------- Testimonials ---------- */

.pb-reviews {
	--pb-reviews-cols: 3;
	display: grid;
	grid-template-columns: repeat(var(--pb-reviews-cols), minmax(0, 1fr));
	gap: var(--space-5);
}

.pb-review {
	display: flex;
	flex-direction: column;
	gap: var(--space-3-5);
	margin: 0;
	padding: 26px var(--space-6);
}

.pb-review__stars {
	font-size: var(--fs-md);
}

.pb-review__text {
	flex: 1;
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--color-text);
	font-size: var(--fs-md);
	font-style: normal;
	line-height: var(--lh-loose);
}

.pb-review__author {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding-top: var(--space-3-5);
	border-top: 1px solid var(--color-border);
}

.pb-review__photo {
	width: 44px;
	height: 44px;
	border-radius: var(--radius-round);
	object-fit: cover;
}

.pb-review__who {
	display: grid;
	font-size: var(--fs-md);
}

.pb-review__who span {
	color: var(--color-text-muted);
	font-size: var(--fs-xs);
}

@media (max-width: 767px) {
	.pb-reviews {
		--pb-reviews-cols: 1;
	}

	.pb-reviews--scroll {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 82%;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.pb-reviews--scroll .pb-review {
		scroll-snap-align: start;
	}
}

/* ---------- Map and contact ---------- */

.pb-contact {
	display: grid;
	gap: var(--space-6);
}

.pb-contact__info {
	padding: clamp(24px, 4vw, var(--space-10));
	border-radius: var(--radius-lg);
	background: var(--color-primary-soft);
}

.pb-contact__title {
	margin: 0 0 var(--space-2);
	font-size: var(--fs-2xl);
}

.pb-contact__text {
	margin: 0 0 var(--space-5);
	color: var(--color-text-muted);
	line-height: var(--lh-loose);
}

.pb-contact__list {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pb-contact__list li {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
	line-height: var(--lh-normal);
}

.pb-contact__list .pb-icon {
	flex: none;
	margin-top: var(--space-0-5);
	color: var(--color-primary);
}

.pb-contact__list small {
	display: block;
	color: var(--color-text-muted);
	font-size: var(--fs-xs);
}

.pb-contact__list a {
	color: inherit;
	font-weight: var(--fw-bold);
}

.pb-contact__form {
	margin-top: var(--space-6);
}

.pb-contact__map {
	position: relative;
	min-height: 360px;
	border-radius: var(--radius-lg);
	background: var(--color-border);
	overflow: hidden;
}

.pb-contact__map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

body.pb-editing .pb-contact__map iframe {
	pointer-events: none;
}

@media (min-width: 900px) {
	.pb-contact--map-left:not(.has-no-map),
	.pb-contact--map-right:not(.has-no-map) {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	}

	.pb-contact--map-left:not(.has-no-map) {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	}
}

/* ---------- Countdown ---------- */

.pb-countdown {
	--pb-cd-bg: var(--color-primary);
	--pb-cd-fg: var(--gray-0);
	--pb-cd-size: 36px;
	display: grid;
	justify-items: center;
	gap: var(--space-4);
	text-align: center;
}

.pb-countdown__title {
	margin: 0;
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
}

.pb-countdown__timer {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-2-5);
}

.pb-countdown__cell {
	display: grid;
	justify-items: center;
	gap: var(--space-1);
	min-width: calc(var(--pb-cd-size) * 2);
	padding: var(--space-3-5) var(--space-2-5) var(--space-2-5);
	border-radius: var(--radius-md);
	background: var(--pb-cd-bg);
	color: var(--pb-cd-fg);
}

.pb-countdown__num {
	font-size: var(--pb-cd-size);
	font-weight: var(--fw-bold);
	font-variant-numeric: tabular-nums;
	line-height: var(--lh-none);
}

.pb-countdown__label {
	font-size: var(--fs-xs);
	opacity: 0.85;
}

.pb-countdown__expired {
	margin: 0;
	color: var(--color-text-muted);
	font-weight: var(--fw-bold);
}

.pb-countdown.is-expired .pb-countdown__timer {
	opacity: 0.4;
}

/* ---------- Related products ---------- */

.pb-related {
	display: grid;
	gap: var(--space-5);
}

.pb-related__title {
	margin: 0;
	text-align: center;
	font-size: var(--fs-xl);
}

.pb-related__empty {
	margin: 0;
	padding: var(--space-6);
	border: 1px dashed var(--color-border);
	border-radius: var(--radius-md);
	color: var(--color-text-muted);
	text-align: center;
}

@media (min-width: 960px) {
	.pb-related .woocommerce ul.products {
		grid-template-columns: repeat(var(--pb-related-cols, 4), minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.pb-features,
	.pb-reviews {
		gap: var(--space-3-5);
	}
}
