/**
 * VishaPet responsive overrides — mobile-first polish.
 */

/* --- Global --- */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

.admin-bar .vp-site {
  scroll-padding-top: calc(46px + 56px);
}

@media (min-width: 783px) {
  .admin-bar .vp-site {
    scroll-padding-top: calc(32px + 64px);
  }
}

img,
video,
iframe,
svg,
canvas {
	max-width: 100%;
	height: auto;
}

.vp-page__content,
.vp-single__content,
.elementor-widget-wrap {
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* --- Elementor canvas --- */
.elementor-section.elementor-section-boxed > .elementor-container {
	width: 100%;
	max-width: 100%;
	padding-left: clamp(0.75rem, 3vw, 1.5rem);
	padding-right: clamp(0.75rem, 3vw, 1.5rem);
	box-sizing: border-box;
}

.elementor-section.elementor-section-full_width .elementor-widget-wrap {
	padding-left: clamp(0.5rem, 2vw, 1rem);
	padding-right: clamp(0.5rem, 2vw, 1rem);
	box-sizing: border-box;
}

@media (max-width: 767px) {
	.elementor-section.elementor-section-boxed > .elementor-container,
	.elementor-section.elementor-section-full_width .elementor-widget-wrap {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

/* --- Tablet: 768px – 1023px --- */
@media (min-width: 768px) and (max-width: 1023px) {
	.vp-container {
		padding: 0 1.25rem;
	}

	.vp-content-area {
		padding: 1.75rem 0 2.5rem;
	}

	.vp-hero {
		gap: 2.5rem;
	}

	.vp-features__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vp-categories__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}

	.vp-products .vp-product-card,
	.vp-categories__card {
		border-radius: 1.5rem;
	}

	.vp-promo {
		flex-direction: row;
		text-align: right;
		padding: 2rem 1.5rem;
	}

	.vp-diet__grid {
		grid-template-columns: 1fr;
	}
}

/* --- Mobile decor (match artifact) --- */
@media (max-width: 639px) {
	.vp-decor__item--3,
	.vp-decor__item--4,
	.vp-decor__item--6 {
		display: none !important;
	}

	.vp-decor__item--1 {
		font-size: 1.75rem;
		top: 9rem;
	}

	.vp-decor__item--2 {
		font-size: 2rem;
		top: 24rem;
	}
}

/* --- Hero & sections --- */
@media (max-width: 639px) {
	.vp-hero {
		margin-bottom: 2.5rem;
		gap: 1.5rem;
	}

	.vp-hero__stamp {
		width: 4rem;
		height: 4rem;
		font-size: 0.65rem;
		top: -0.5rem;
		right: -0.5rem;
		border-width: 3px;
	}

	.vp-hero__glow,
	.vp-hero__img {
		border-radius: 2rem;
	}

	.vp-hero__img {
		border-width: 4px;
	}

	.vp-hero__btn {
		width: 100%;
		justify-content: center;
		box-sizing: border-box;
	}

	.vp-hero__desc {
		font-size: 1rem;
		margin-bottom: 1.25rem;
	}

	.vp-features,
	.vp-categories,
	.vp-products,
	.vp-promo,
	.vp-diet {
		margin-bottom: 2.5rem;
	}

	.vp-section-title {
		font-size: 1.35rem;
		margin-bottom: 1.25rem;
		gap: 0.5rem;
	}

	.vp-features__card {
		padding: 1rem;
	}

	.vp-categories__grid {
		gap: 0.75rem;
	}

	.vp-categories__card {
		padding: 0.75rem;
		border-radius: 1.25rem;
	}

	.vp-categories__card h3 {
		font-size: 0.9rem;
	}

	.vp-product-card {
		padding: 0.75rem;
	}

	.vp-product-card h4 {
		font-size: 0.85rem;
	}

	.vp-promo {
		padding: 1.5rem 1rem;
		gap: 1rem;
	}

	.vp-promo__media {
		width: min(var(--vp-promo-media-size, 120px), 36vw);
		height: min(var(--vp-promo-media-size, 120px), 36vw);
	}

	.vp-promo__emoji {
		font-size: clamp(2.25rem, 10vw, 3rem);
	}

	.vp-diet {
		padding: 1rem;
		border-radius: 1.5rem;
	}

	.vp-diet__form {
		padding: 1rem;
	}

	.vp-diet__types {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.35rem;
	}

	.vp-diet__types label {
		font-size: 0.65rem;
		padding: 0.45rem 0.25rem;
	}

	.vp-diet__row {
		grid-template-columns: 1fr;
	}

	.vp-diet__output-head {
		flex-direction: column;
		align-items: stretch;
	}

	.vp-diet__result {
		min-height: 14rem;
		padding: 1rem;
	}
}

/* --- Chat --- */
@media (max-width: 639px) {
	.vp-chat {
		left: 0.75rem;
		bottom: 0.75rem;
	}

	html[dir="ltr"] .vp-chat {
		left: auto;
		right: 0.75rem;
	}

	.vp-chat__window:not([hidden]) {
		left: 0;
		width: min(calc(100vw - 1.5rem), 24rem);
		height: min(72vh, 28rem);
	}

	html[dir="ltr"] .vp-chat__window:not([hidden]) {
		left: auto;
		right: 0;
	}

	.vp-chat__toggle {
		min-height: 2.85rem;
		padding-inline: 0.75rem 0.55rem;
		font-size: 0.8rem;
	}
}

/* --- Hero slider --- */
@media (max-width: 639px) {
	.pshs {
		padding: 1rem 0.75rem 2rem;
	}

	.pshs__nav {
		width: 36px;
		height: 36px;
	}

	.pshs__nav--prev {
		left: 0;
	}

	.pshs__nav--next {
		right: 0;
	}

	.pshs__media {
		padding: 0 0.5rem;
	}
}

/* --- WooCommerce --- */
.woocommerce table.shop_table {
	display: block;
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.woocommerce .col2-set,
.woocommerce-page .col2-set {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 768px) {
	/* Two columns for account addresses etc. — NOT checkout
	   (billing + order notes must stack under each other). */
	.woocommerce .col2-set:not(#customer_details):not(.vp-checkout__customer),
	.woocommerce-page .col2-set:not(#customer_details):not(.vp-checkout__customer) {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce ul.products {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr));
	gap: 0.75rem;
}

@media (min-width: 480px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
		gap: 1rem;
	}
}

@media (min-width: 768px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
		gap: 1.25rem;
	}
}

@media (max-width: 639px) {
	.vp-woo-wrap {
		padding-block: 1.25rem 2.5rem;
	}

	.vp-container.vp-single-product {
		max-width: min(100% - 1.75rem, var(--vp-container, 1152px));
		padding-inline: 1rem;
		padding-block: 1.25rem 2.5rem;
	}

	.vp-woo-header {
		margin-bottom: 1.25rem;
	}

	.vp-woo-header .vp-section-title,
	.vp-product-hero__summary .product_title {
		font-size: 1.65rem;
	}

	.woocommerce ul.products li.product {
		padding: 0.75rem;
		border-radius: 1.25rem;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.85rem;
	}

	.vp-product-hero__summary .quantity input.qty {
		max-width: none;
	}

	.woocommerce-cart .quantity .qty,
	.woocommerce-checkout .quantity .qty {
		max-width: 4rem;
	}

	.woocommerce-cart .cart-collaterals,
	.woocommerce-checkout .woocommerce-checkout-review-order {
		margin-top: 1.5rem;
	}
}

/* --- Page templates --- */
@media (max-width: 639px) {
	.vp-container {
		padding: 0 0.875rem;
	}

	.vp-content-area {
		padding: 1.25rem 0 2rem;
	}

	.vp-page__title,
	.vp-single__title {
		font-size: 1.5rem;
		margin-bottom: 1rem;
	}
}

/* --- Footer --- */
@media (max-width: 639px) {
	.vfb-container {
		padding: 0 1rem;
	}

	.vfb-newsletter__form {
		max-width: 100%;
	}

	.vfb-copyright__links {
		flex-wrap: wrap;
		justify-content: center;
	}
}

@media (min-width: 640px) and (max-width: 1023px) {
	.vfb-row__grid {
		gap: 2rem;
	}
}

/* --- Header builder (extra) --- */
@media (max-width: 767px) {
	.vhb-header + .vp-content-area,
	.vhb-header ~ main .vp-content-area {
		padding-top: 1rem;
	}
}

@media (min-width: 768px) and (max-width: 1279px) {
	.vhb-special {
		display: none;
	}
}

/* --- Fallback header --- */
@media (max-width: 767px) {
	.vp-fallback-header .vp-container {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0.75rem;
	}

	.vp-fallback-header nav ul {
		display: flex;
		flex-wrap: wrap;
		gap: 0.5rem 1rem;
		padding: 0;
		margin: 0;
		list-style: none;
	}
}

/* --- Archive hero / shop / blog --- */
@media (max-width: 767px) {
	.vp-archive-hero__badge {
		width: 4.5rem;
		height: 4.5rem;
	}

	.vp-archive-hero__badge-num {
		font-size: 0.95rem;
	}

	.vp-archive-hero__stats li {
		font-size: 0.68rem;
		padding: 0.35rem 0.6rem;
	}

	.vp-shop-trust {
		padding-bottom: 1rem;
	}

	.vp-shop-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.vp-shop-toolbar .woocommerce-ordering,
	.vp-shop-toolbar .woocommerce-ordering select {
		width: 100%;
	}

	.vp-single-product-wrap {
		padding-bottom: calc(4.5rem + env(safe-area-inset-bottom));
	}

	.vp-product-sticky-bar {
		padding-bottom: calc(0.65rem + env(safe-area-inset-bottom));
	}

	.vp-blog-grid .vp-blog-card:first-child {
		flex-direction: column;
	}

	.vp-blog-card__title {
		font-size: 0.92rem;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.vp-archive-hero__inner {
		grid-template-columns: 1fr;
	}

	.vp-archive-hero__media {
		max-width: 20rem;
		margin-inline: auto;
	}

	.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.vp-blog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
