/* Responsive rules for catalog-first theme sections and WooCommerce views. */
@keyframes psdv-mobile-menu-in {
	from {
		opacity: 0;
		transform: translateY(-8px) scale(0.98);
	}

	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@media (max-width: 1360px) {
	.site-header__inner {
		gap: 14px;
	}

	.site-nav__menu {
		gap: 14px;
	}

	.site-nav a {
		font-size: 14px;
	}

	.site-brand {
		min-width: 190px;
	}

	.site-brand__logo {
		width: min(100%, 260px);
	}

	.site-brand__title {
		font-size: 28px;
	}

	.site-header__actions {
		grid-auto-columns: minmax(76px, 84px);
		gap: 2px;
	}

	.site-header__actions .header-icon-link {
		padding: 8px 6px;
	}
}

@media (max-width: 1200px) {
	.psdv-product-hero,
	.psdv-product-details {
		grid-template-columns: 1fr;
	}

	.psdv-product-summary-specs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0 28px;
	}

	.psdv-product-media__main {
		min-height: 520px;
	}

	.psdv-product-service-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.psdv-product-page .related.products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-hero__inner {
		grid-template-columns: minmax(330px, 1fr) minmax(400px, 460px);
		gap: 28px;
	}

	.home-hero__photo {
		background-position: 60% 50%;
	}

	.catalog-category-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.catalog-benefits {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.catalog-product-row {
		grid-auto-columns: 212px;
	}

	.site-footer__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1142px) {
	.psdv-container,
	.catalog-container,
	.site-header__catalog-nav {
		width: min(100% - 32px, 1520px);
	}

	.site-header,
	.site-header__inner {
		overflow: visible;
	}

	.home-hero__inner {
		padding-left: 16px;
		padding-right: 16px;
	}

	.site-header__inner {
		position: relative;
		display: grid;
		grid-template-columns: minmax(0, 1fr) 34px 34px 34px;
		align-items: center;
		gap: 10px;
		min-height: 68px;
		padding: 0;
	}

	.site-brand {
		min-width: 0;
		max-width: none;
	}

	.site-brand__logo {
		width: min(100%, 220px);
		max-height: 56px;
	}

	.site-brand .custom-logo,
	.site-brand .custom-logo-link img {
		max-width: 58px;
		height: 56px;
		max-height: 56px;
	}

	.site-brand__title {
		font-size: 25px;
	}

	.site-brand__tagline {
		font-size: 12px;
	}

	.site-menu-toggle {
		display: grid;
		align-content: center;
		place-items: center;
		gap: 3px;
		justify-self: end;
		grid-column: 4;
		width: 34px;
		height: 34px;
		padding: 0;
		border: 1px solid rgba(200, 155, 91, 0.38);
		border-radius: 7px;
		background: rgba(255, 255, 255, 0.08);
		color: #f5f1ea;
		cursor: pointer;
		appearance: none;
	}

	.site-header__mobile-search {
		display: grid;
		place-items: center;
		justify-self: end;
		grid-column: 2;
		width: 34px;
		height: 34px;
		padding: 0;
		border: 1px solid rgba(200, 155, 91, 0.38);
		border-radius: 7px;
		background: rgba(255, 255, 255, 0.08);
		color: #f5f1ea;
		cursor: pointer;
		appearance: none;
	}

	.site-header__mobile-search .header-icon {
		width: 18px;
		height: 18px;
		color: currentColor;
	}

	.site-header__mobile-cart {
		position: relative;
		display: grid;
		place-items: center;
		justify-self: end;
		grid-column: 3;
		width: 34px;
		height: 34px;
		padding: 0;
		border: 1px solid rgba(200, 155, 91, 0.38);
		border-radius: 7px;
		background: rgba(255, 255, 255, 0.08);
		color: #f5f1ea;
		text-decoration: none;
	}

	.site-header__mobile-cart .header-icon {
		width: 18px;
		height: 18px;
		color: currentColor;
	}

	.site-header__mobile-cart .psdv-cart-count {
		position: absolute;
		top: -6px;
		right: -6px;
		display: inline-grid;
		place-items: center;
		min-width: 16px;
		height: 16px;
		padding: 0 3px;
		border-radius: 999px;
		background: #c89b5b;
		color: #1e1b18;
		font-size: 10px;
		font-weight: 500;
		line-height: 1;
	}

	.site-menu-toggle span {
		display: block;
		width: 16px;
		height: 2px;
		border-radius: 999px;
		background: currentColor;
		transition: transform 0.18s ease, opacity 0.18s ease;
	}

	.site-header.is-menu-open .site-menu-toggle span:first-child {
		transform: translateY(5px) rotate(45deg);
	}

	.site-header.is-menu-open .site-menu-toggle span:nth-child(2) {
		opacity: 0;
	}

	.site-header.is-menu-open .site-menu-toggle span:last-child {
		transform: translateY(-5px) rotate(-45deg);
	}

	.site-mobile-menu-panel {
		position: fixed;
		top: 68px;
		left: 0;
		right: 0;
		z-index: 60;
		grid-column: 1 / -1;
		justify-self: stretch;
		display: none;
		box-sizing: border-box;
		width: 100vw;
		max-width: none;
		max-height: calc(100dvh - 68px);
		margin-top: 0;
		padding: 0 16px 12px;
		overflow-y: auto;
		border: 1px solid rgba(200, 155, 91, 0.32);
		border-right: 0;
		border-left: 0;
		border-radius: 0;
		background: rgba(80, 7, 10, 0.98);
		box-shadow: 0 22px 36px rgba(31, 4, 5, 0.24);
		transform-origin: top center;
	}

	body.admin-bar .site-mobile-menu-panel {
		top: calc(68px + var(--wp-admin--admin-bar--height, 32px));
		max-height: calc(100dvh - 68px - var(--wp-admin--admin-bar--height, 32px));
	}

	.site-header.is-menu-open .site-mobile-menu-panel {
		display: block;
		animation: psdv-mobile-menu-in 0.18s ease both;
	}

	.site-nav,
	.site-header__actions {
		width: 100%;
	}

	.site-nav {
		padding-top: 0;
		border-top: 0;
	}

	.site-nav__menu {
		display: grid;
		width: 100%;
		gap: 0;
		justify-content: stretch;
	}

	.site-nav__menu .menu-item-has-children {
		display: block;
		padding-right: 0;
	}

	.site-nav__menu > .menu-item-has-children::before {
		display: none;
	}

	.site-nav__menu a {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 42px;
		padding: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
		font-size: 16px;
		line-height: 1.2;
		text-align: center;
	}

	.site-nav__menu .sub-menu,
	.psdv-submenu-toggle {
		display: none;
	}

	.site-header__actions {
		display: grid;
		grid-auto-flow: row;
		grid-auto-columns: auto;
		grid-template-columns: 1fr;
		justify-content: stretch;
		gap: 0;
		padding-top: 0;
		padding-right: 0;
		padding-bottom: 12px;
		padding-left: 0;
		overflow: visible;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.site-header__actions .header-icon {
		display: none;
	}

	.site-header__actions .header-icon-link {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-width: 0;
		min-height: 42px;
		padding: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
		color: #f3eadf;
		font-family: var(--psdv-heading-font);
		font-size: 16px;
		font-weight: 400;
		line-height: 1.2;
		text-align: center;
		text-transform: uppercase;
	}

	.site-header__actions .header-icon-link.header-search-trigger,
	.site-header__actions .header-icon-link.cart-link {
		display: none;
	}

	.site-header__actions .psdv-cart-count,
	.site-header__actions .psdv-favorite-count {
		display: none;
	}

	.section-heading,
	.catalog-top,
	.catalog-section-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.site-footer__highlights {
		gap: 8px;
	}

	.home-hero h1 {
		font-size: 44px;
	}

	.home-hero__inner {
		grid-template-columns: 1fr;
		align-items: start;
		gap: 16px;
		min-height: auto;
		padding: 20px 16px;
		background-position: 62% 50%;
	}

	.home-hero__content {
		max-width: 660px;
		padding-left: 0;
	}

	.home-hero p {
		margin-top: 14px;
	}

	.home-hero__actions {
		justify-content: flex-start;
		margin-top: 20px;
		margin-right: 0;
		margin-left: 0;
	}

	.home-hero__inner::before {
		position: absolute;
		inset: 0;
		z-index: 1;
		background:
			linear-gradient(90deg, rgba(34, 14, 12, 0.38), rgba(34, 14, 12, 0.12)),
			rgba(20, 10, 8, 0.03);
		content: '';
		pointer-events: none;
	}

	.home-hero__photo {
		background-position: 62% 50%;
	}

	.home-hero__photo--sharp {
		clip-path: inset(14px 0 14px 28%);
	}

	.home-hero__shade {
		background:
			radial-gradient(ellipse at 5% 0%, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.92) 22%, rgba(255, 255, 255, 0) 46%),
			linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.92) 44%, rgba(255, 255, 255, 0.46) 68%, rgba(255, 255, 255, 0) 90%),
			linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0) 26%, rgba(255, 255, 255, 0) 74%, rgba(255, 255, 255, 0.46) 100%);
	}

	.catalog-product-row {
		grid-auto-columns: 204px;
	}

	.catalog-section-actions {
		margin-left: 0;
		align-self: stretch;
		justify-content: flex-start;
		gap: 5px;
	}

	.catalog-section-arrow {
		width: 30px;
		height: 30px;
	}

	.catalog-section-arrow::before {
		width: 8px;
		height: 8px;
		border-width: 1.5px 0 0 1.5px;
	}

	.category-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.home-hero__video {
		object-position: 62% 50%;
	}

	.psdv-product-page {
		padding: 28px 0 44px;
	}

	.psdv-product-media,
	.psdv-product-summary,
	.psdv-product-panel,
	.psdv-product-page .related.products {
		border-radius: 14px;
	}

	.psdv-product-media,
	.psdv-product-summary,
	.psdv-product-panel,
	.psdv-product-page .related.products {
		padding: 20px;
	}

	.psdv-product-media {
		grid-template-columns: 1fr;
		padding: 0;
	}

	.psdv-product-media__main {
		order: 1;
	}

	.psdv-product-thumbs {
		order: 2;
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.psdv-product-thumbs button {
		width: auto;
		height: auto;
		aspect-ratio: 1;
	}

	.psdv-product-actions form.cart {
		grid-template-columns: 1fr;
	}

	.psdv-product-media__main {
		min-height: 360px;
	}

	.psdv-product-media__main .psdv-product-image {
		width: 100%;
		height: 100%;
	}

	.psdv-product-summary h1 {
		font-size: 30px;
	}

	.psdv-product-summary-top {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.psdv-product-summary-actions {
		justify-content: flex-start;
		width: 100%;
	}

	.psdv-product-price {
		font-size: 36px;
	}

	.psdv-product-summary-specs,
	.psdv-product-actions,
	.psdv-product-service-strip {
		grid-template-columns: 1fr;
	}

	.psdv-product-summary-specs div {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.psdv-product-specs div {
		grid-template-columns: 1fr;
		gap: 6px;
	}

	.psdv-product-page .related.products ul.products {
		grid-template-columns: 1fr;
	}

	.psdv-product-page ul.products li.product {
		grid-template-rows: 1fr auto;
		min-height: auto;
	}

	.psdv-product-page ul.products li.product a img {
		height: clamp(240px, 72vw, 340px);
	}

	.psdv-product-page .woocommerce-message,
	.psdv-product-page .woocommerce-info,
	.psdv-product-page .woocommerce-error {
		align-items: stretch;
		flex-direction: column;
	}

	.coin-lightbox {
		padding: 18px;
	}

	.coin-lightbox__dialog {
		width: fit-content;
		max-width: calc(100vw - 24px);
		max-height: calc(100vh - 24px);
		padding: 20px 14px 16px;
	}

	.coin-lightbox__image {
		max-width: min(96vw, 638px);
		max-height: min(68vh, 605px);
	}

	.coin-lightbox.is-open.is-zoomed .coin-lightbox__image {
		transform: scale(1.55);
	}

	.coin-lightbox__zoom {
		right: 56px;
	}

	.coin-lightbox__thumbs {
		margin-top: 14px;
	}

	.coin-lightbox__thumbs button {
		min-height: 32px;
		padding-inline: 12px;
		font-size: 12px;
	}

	.home-hero {
		padding-top: 0;
	}

	.home-hero__inner {
		padding: 28px 12px;
	}

	.home-hero h1 {
		font-size: 45px;
	}

	.home-hero p {
		font-size: 16px;
	}

	.home-hero__actions .button {
		min-width: 0;
	}

	.catalog-category-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.catalog-product-row {
		grid-auto-columns: 196px;
	}

	.story-categories__grid {
		grid-template-columns: 1fr;
	}

	.story-categories__head h2 {
		font-size: 38px;
	}

	.story-category-card__body h3 {
		font-size: 24px;
	}

	.story-category-card__body p,
	.story-category-card__link {
		font-size: 16px;
	}

	.catalog-benefits {
		grid-template-columns: 1fr;
		padding: 22px;
	}

	.catalog-coin-card {
		grid-template-rows: auto 1fr;
		min-height: 448px;
	}

	.catalog-coin-image {
		min-height: 0;
	}

	.catalog-coin-image img {
		height: 100%;
	}
}

@media (max-width: 620px) {
	body {
		font-size: 15px;
	}

	.psdv-container,
	.catalog-container,
	.site-header__catalog-nav {
		width: min(100% - 24px, 1520px);
	}

	.site-brand__title {
		font-size: 22px;
	}

	.site-brand__logo {
		width: min(100%, 176px);
		max-height: 46px;
	}

	.site-footer__logo {
		width: min(100%, 186px);
		margin-left: auto;
		margin-right: 0;
	}

	.site-footer__inner {
		grid-template-columns: 1fr;
		justify-items: stretch;
		gap: 14px;
		padding-block: 26px 22px;
	}

	.site-footer__brand {
		max-width: none;
		display: grid;
		gap: 12px;
		justify-items: center;
		padding: 0 8px 4px;
	}

	.site-footer__brand-link {
		display: block;
		width: 100%;
		margin-left: 0;
	}

	.site-footer__description {
		max-width: 320px;
		text-align: center;
	}

	.site-footer__column {
		width: 100%;
		padding: 16px 16px 14px;
		border: 1px solid rgba(243, 234, 223, 0.12);
		border-radius: 12px;
		background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03));
		box-shadow: 0 12px 28px rgba(18, 2, 3, 0.16);
		text-align: center;
	}

	.site-footer__column strong {
		display: block;
		margin-bottom: 12px;
		text-align: center;
	}

	.site-footer__list {
		gap: 0;
	}

	.site-footer__list li {
		position: relative;
		padding: 0;
		border-bottom: 0;
	}

	.site-footer__list li::after {
		display: none;
	}

	.site-footer__list li + li {
		margin-top: 10px;
		padding-top: 10px;
	}

	.site-footer__list li + li::before {
		position: absolute;
		top: 0;
		left: 50%;
		width: 80%;
		height: 1px;
		background: rgba(243, 234, 223, 0.18);
		content: '';
		transform: translateX(-50%);
	}

	.site-footer__list a,
	.site-footer__list p {
		text-align: center;
	}

	.site-footer__list,
	.site-footer__list li {
		text-align: center;
	}

	.site-footer__list span {
		display: block;
		text-align: center;
	}

	.site-footer__bottom {
		align-items: center;
		flex-direction: column;
		gap: 14px;
		padding: 18px 0 24px;
		text-align: center;
	}

	.site-footer__copyright,
	.site-footer__legal {
		text-align: center;
	}

	.site-footer__legal {
		justify-content: center;
		gap: 10px 18px;
	}

	.site-footer__highlights li {
		width: 100%;
		justify-content: center;
		text-align: center;
	}

	.site-header__actions {
		gap: 8px;
	}

	.site-header.is-menu-open .site-header__actions {
		gap: 0;
	}

	.site-header__actions .header-icon-link {
		min-width: 58px;
		flex: 1;
	}

	.site-header.is-menu-open .site-header__actions .header-icon-link {
		flex: none;
		min-width: 0;
	}

	.header-cta {
		width: 100%;
	}

	.catalog-nav-link {
		min-height: 34px;
		padding: 8px 12px;
		font-size: 13px;
	}

	.button {
		width: 100%;
	}

	.home-hero__actions {
		justify-content: flex-start;
		width: 100%;
		margin-right: 0;
		margin-left: 0;
	}

	.home-hero__actions .button {
		width: min(100%, 238px);
		min-height: 48px;
		padding: 10px 18px;
	}

	.home-hero__actions .button-primary > span {
		font-size: 15px;
	}

	.home-hero__actions .button-primary--seal .coin-icon {
		width: 28px;
		height: 28px;
		padding: 6px;
		transform: translateX(8px);
	}

	.home-hero h1 {
		font-size: 38px;
	}

	.catalog-category-grid {
		grid-template-columns: 1fr;
	}

	.catalog-top h2,
	.catalog-section-head h2 {
		font-size: 28px;
	}

	.catalog-product-row {
		grid-auto-columns: calc((100% - 8px) / 2);
	}

	.catalog-coin-card {
		grid-template-columns: none;
		grid-template-rows: auto 1fr;
		min-height: 412px;
	}

	.catalog-coin-image {
		min-height: 0;
	}

	.catalog-coin-image img {
		height: 100%;
	}

	.coin-info {
		padding: 16px;
	}

	.coin-info h3 {
		font-size: 15px;
	}

	.coin-meta {
		font-size: 14px;
	}

	.coin-price {
		font-size: 20px;
	}

	.category-grid {
		grid-template-columns: 1fr;
	}

	.header-search-modal {
		padding: 16px;
	}

	.header-search-modal__dialog {
		padding: 30px 14px 14px;
		border-radius: 18px;
	}

	.header-search-form {
		grid-template-columns: 1fr;
	}

	.header-search-form__submit {
		width: 100%;
	}
}
