/*!
Theme Name: hirasfashion-crestsync
Theme URI: http://underscores.me/
Author: crestsync
Author URI: https://crestsync.com/
Description: CrestSync is a modern digital product development company that blends technology, creativity, and strategy to build innovative, scalable, and performance-driven solutions. We specialize in AI automations, custom software products, and intelligent workflows that help companies streamline operations and stand out in competitive markets.
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: hirasfashion-crestsync
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

hirasfashion-crestsync is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
/*--------------------------------------------------------------
# WooCommerce ↔ template glue (cart / checkout overrides)
--------------------------------------------------------------*/
.box-order-summary .total-row {
	margin-bottom: 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line);
}
.list-total .total-row:not(:last-child),
.list-total .ship {
	margin-bottom: 16px;
}
.list-total .ship {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}
.box-your-order .ship-item {
	display: flex;
	align-items: center;
	gap: 8px;
}
.ship-item label {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	flex-grow: 1;
	cursor: pointer;
}
.box-your-order .last-total {
	display: flex;
	justify-content: space-between;
}
.tf-table-page-cart .variation {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0 6px;
	margin: 4px 0;
}
.tf-table-page-cart .variation dd,
.tf-table-page-cart .variation p {
	margin: 0;
}

/* Checkout fields (WooCommerce .form-row markup). */
.woocommerce-checkout .form-row {
	margin: 0 0 16px;
}
.woocommerce-checkout .form-row label {
	display: block;
	margin-bottom: 6px;
	font-weight: 500;
}
.woocommerce-checkout .form-row .required {
	color: var(--primary);
	text-decoration: none;
}
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
	font-size: 20px;
	margin-bottom: 16px;
}
@media (min-width: 768px) {
	.woocommerce-checkout .form-row-first,
	.woocommerce-checkout .form-row-last {
		width: calc(50% - 8px);
		float: left;
	}
	.woocommerce-checkout .form-row-last {
		margin-left: 16px;
	}
	.woocommerce-checkout .form-row-wide {
		clear: both;
	}
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::after,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper::after {
	content: "";
	display: table;
	clear: both;
}

/* Payment methods. */
.wc_payment_methods {
	list-style: none;
	margin: 24px 0;
	padding: 0;
	display: grid;
	gap: 12px;
}
.wc_payment_methods .payment_check {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}
.wc_payment_methods .payment_box {
	margin-top: 12px;
}
.woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 16px;
}

/*--------------------------------------------------------------
# Shop / category pages
--------------------------------------------------------------*/
/* Cap the chosen column count on smaller screens (template did this in shop.js). */
@media (max-width: 1199px) {
	.wrapper-shop.tf-col-4,
	.wrapper-shop.tf-col-5,
	.wrapper-shop.tf-col-6 {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media (max-width: 767px) {
	.wrapper-shop.tf-grid-layout:not(.tf-col-1) {
		grid-template-columns: repeat(2, 1fr);
	}
}
.tf-dropdown-sort .select-item.active {
	font-weight: 600;
}
.meta-filter-shop #applied-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.woocommerce-result-count {
	margin: 0;
}
.canvas-filter .price-val::-webkit-inner-spin-button {
	-webkit-appearance: none;
}

/*--------------------------------------------------------------
# Single product
--------------------------------------------------------------*/
/* Text options (Fit, Waist…) don't fit the 44px size squares. */
.tf-product-info-wrap .variant-size .size-btn.hf-text-btn {
	width: auto;
	padding: 0 16px;
}
.tf-product-info-wrap .variant-color .color-btn:not(.style-image) .check-color {
	display: block;
}
.tf-product-info-wrap .hf-swatch.disabled {
	opacity: 0.3;
	cursor: not-allowed;
}
.tf-product-variant .variations {
	display: grid;
	gap: 20px;
	margin-bottom: 20px;
}
.tf-product-variant .reset_variations {
	justify-self: start;
}
/* Price is shown in the big price line at the top instead. */
.single_variation .woocommerce-variation-price {
	display: none;
}
.single_variation .stock,
.tf-product-info-list > .stock {
	margin-bottom: 12px;
	font-weight: 500;
}
.single_variation .out-of-stock,
.tf-product-info-list > .out-of-stock {
	color: var(--primary);
}
.hf-buy-now:disabled,
.single_add_to_cart_button.disabled {
	opacity: 0.5;
	cursor: not-allowed;
}
.product-infor-price {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.product-infor-price del {
	font-size: 16px;
	color: var(--text-3);
}
/* WooCommerce "Specifications" table. */
.woocommerce-product-attributes {
	width: 100%;
}
.woocommerce-product-attributes th,
.woocommerce-product-attributes td {
	padding: 8px 0;
	border-bottom: 1px solid var(--line);
	vertical-align: top;
}
.woocommerce-product-attributes th {
	width: 40%;
	font-weight: 500;
}
.woocommerce-product-attributes td p {
	margin: 0;
}
/* Reviews list + form. */
.product-desc_review .commentlist {
	list-style: none;
	padding: 0;
	margin: 24px 0;
}
.product-desc_review .comment-form-rating .stars a {
	color: var(--yellow, #f5a623);
}
.product-desc_review #review_form_wrapper {
	margin-top: 24px;
}

/*--------------------------------------------------------------
# My Account / login / notices
--------------------------------------------------------------*/
.woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}
.woocommerce-address-fields__field-wrapper .form-row-wide {
	grid-column: 1 / -1;
}
@media (max-width: 575px) {
	.woocommerce-address-fields__field-wrapper {
		grid-template-columns: 1fr;
	}
}
.woocommerce-address-fields .form-row {
	margin: 0 0 16px;
}
.woocommerce-address-fields .form-row label {
	display: block;
	margin-bottom: 6px;
	font-weight: 500;
}
.woocommerce-address-fields .required {
	color: var(--primary);
	text-decoration: none;
}
.my-account-nav .link-account.active {
	color: var(--primary);
}
.modal-order_detail .box-info h6 {
	font-weight: 400;
	line-height: 1.6;
}

/* WooCommerce notices (added to cart, errors, info). */
.woocommerce-notices-wrapper:empty {
	display: none;
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	list-style: none;
	margin: 0 0 24px;
	padding: 14px 20px;
	border-radius: 8px;
	border-left: 4px solid var(--text);
	background: var(--bg-2, #f5f5f5);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.woocommerce-error {
	border-left-color: var(--primary);
	display: block;
}
.woocommerce-message .button,
.woocommerce-info .button {
	font-weight: 600;
	text-decoration: underline;
}

/*--------------------------------------------------------------
# WhatsApp chat button (Theme Settings → Contact Details)
--------------------------------------------------------------*/
.hf-whatsapp {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 99;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #25d366;
	color: #fff;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
	transition: transform 0.2s ease;
}
.hf-whatsapp:hover {
	color: #fff;
	transform: scale(1.06);
}
@media (max-width: 1199px) {
	/* Sit above the mobile bottom toolbar. */
	.hf-whatsapp {
		bottom: 80px;
	}
}

/*--------------------------------------------------------------
# Product reviews (woocommerce/single-product-reviews.php)
--------------------------------------------------------------*/
.hf-reviews {
	display: grid;
	gap: 32px;
	margin-top: 32px;
}
.hf-reviews__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-bottom: 16px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--line);
}
.hf-reviews__items {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hf-reviews__items > li {
	padding: 24px 0;
	border-bottom: 1px solid var(--line);
}
.hf-reviews__items .comment_info {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}
.hf-reviews__items .info_image img {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
}
.hf-reviews__items .author__name {
	margin-bottom: 2px;
}
.hf-reviews__items .comment_text p {
	margin: 0;
}
.hf-reviews__items .star-wrap {
	color: var(--yellow);
	gap: 2px;
}
.hf-reviews__empty {
	text-align: center;
	padding: 40px 20px;
	border: 1px dashed var(--line);
	border-radius: 12px;
	background: var(--bg-2);
}
.hf-reviews__empty-stars {
	display: inline-flex;
	gap: 4px;
	font-size: 22px;
	color: var(--text-3);
	margin-bottom: 12px;
}
.hf-reviews__form {
	padding: 32px;
	border-radius: 12px;
	background: var(--bg-2);
}
@media (max-width: 575px) {
	.hf-reviews__form {
		padding: 20px;
	}
}
.hf-reviews__form textarea,
.hf-reviews__form input[type="text"],
.hf-reviews__form input[type="email"] {
	background: var(--white);
}
.hf-reviews__form .comment-form-cookies-consent {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 20px;
	color: var(--text-2);
}
.hf-reviews__form .form-submit {
	margin: 0;
}
.hf-reviews__pages ul {
	display: flex;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 20px 0 0;
}
/* Clickable rating stars (WooCommerce builds p.stars from the rating select). */
.hf-reviews p.stars {
	margin: 0;
	font-size: 24px;
}
.hf-reviews p.stars a {
	margin-right: 4px;
}
.hf-reviews p.stars a::before,
.hf-reviews p.stars a:hover ~ a::before,
.hf-reviews p.stars.selected a.active ~ a::before {
	color: var(--text-3);
	opacity: 1;
}
.hf-reviews p.stars:hover a::before,
.hf-reviews p.stars.selected a.active::before,
.hf-reviews p.stars.selected a:not(.active)::before {
	color: var(--yellow);
	opacity: 1;
}

/*--------------------------------------------------------------
# Blog, single post, search, comments
--------------------------------------------------------------*/
.article-blog .blog-image img {
	width: 100%;
	aspect-ratio: 450 / 307;
	object-fit: cover;
}
.section-blog-single .blog-image img {
	width: 100%;
	max-height: 600px;
	object-fit: cover;
}
.article-blog .entry-title {
	margin-bottom: 8px;
}
.hf-empty {
	padding: 60px 20px;
	border: 1px dashed var(--line);
	border-radius: 12px;
}
/* Post body typography (editor content). */
.hf-post-content,
.hf-page-content {
	font-size: 16px;
	line-height: 28px;
	color: var(--text);
}
.hf-post-content > * + *,
.hf-page-content > * + * {
	margin-top: 16px;
}
.hf-post-content h2,
.hf-post-content h3,
.hf-page-content h2,
.hf-page-content h3 {
	margin-top: 32px;
}
.hf-post-content ul,
.hf-post-content ol,
.hf-page-content ul,
.hf-page-content ol {
	padding-left: 20px;
}
.hf-post-content li,
.hf-page-content li {
	list-style: disc;
	margin-bottom: 8px;
}
.hf-post-content ol li,
.hf-page-content ol li {
	list-style: decimal;
}
.hf-post-content blockquote,
.hf-page-content blockquote {
	margin: 32px 0;
	padding: 24px 28px;
	border-left: 4px solid var(--primary);
	background: var(--bg-2);
	border-radius: 0 12px 12px 0;
	font-size: 20px;
	line-height: 30px;
	font-weight: 500;
}
.hf-post-content img,
.hf-page-content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
}
.hf-post-content a,
.hf-page-content a {
	text-decoration: underline;
}
.hf-post-content .wp-block-image figcaption {
	font-size: 14px;
	color: var(--text-2);
	text-align: center;
}
/* Comments */
.hf-comments {
	margin-top: 48px;
}
.hf-comments .comment-list,
.hf-comments .comment-list .children {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hf-comments .comment-list .children {
	margin-left: 40px;
}
.hf-comments .box-comment {
	padding: 24px 0;
	border-bottom: 1px solid var(--line);
}
.hf-comments .comment_info {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}
.hf-comments .info_image img {
	width: 48px;
	height: 48px;
	border-radius: 50%;
}
.hf-comments .comment_text p {
	margin: 0;
}
.hf-comments .wg-leave-comment {
	margin-top: 40px;
}
.hf-comments .comment-reply-title small {
	font-size: 14px;
	margin-left: 8px;
}
.hf-comments .form-submit {
	margin: 0;
}

/* Logo width */
a.logo-site {
	width: 166px;
}

/* Invoice print view */
.hf-invoice-logo {
	max-height: 48px;
	width: auto;
}
@media print {
	.hf-no-print,
	.hf-whatsapp,
	.pop-notice-sale,
	#goTop {
		display: none !important;
	}
	.wrapper-invoice .s-invoice {
		padding: 0;
	}
}

/* Wishlist heart: saved = filled brand-colour circle. */
.box-icon.hf-wish.active {
	background: var(--primary);
	border-color: var(--primary);
	color: var(--white);
}
.product-extra-icon.hf-wish.active,
.product-extra-icon.hf-wish.active .icon {
	color: var(--primary);
}
.nav-icon-item .hf-wish-count {
	background: var(--primary);
}

/*--------------------------------------------------------------
# Sticky add-to-cart bar (template-parts/product-sticky-atc.php)
--------------------------------------------------------------*/
/* Sale prices: no underline on the new price (browser default for <ins>). */
ins {
	text-decoration: none;
}
.price__prd del {
	color: var(--text-3);
	font-weight: 400;
	margin-right: 4px;
}
.hf-sticky-form {
	display: flex;
	align-items: center;
	gap: 16px;
}
.hf-sticky-variants {
	align-items: center;
	gap: 16px;
}
.hf-sticky-form .tf-sticky-atc-variant-price,
.hf-sticky-form .tf-product-info-quantity {
	display: flex;
	align-items: center;
	gap: 8px;
}
.hf-sticky-form .tf-select select {
	min-width: 120px;
}
.hf-sticky-form .wg-quantity.style-2 {
	min-width: 120px;
	padding-top: 8px;
	padding-bottom: 8px;
}
@media (max-width: 767px) {
	.hf-sticky-form .btn-add-to-cart {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* Order timeline: connecting line coloured up to the current step. */
.box-timeline-order .line-time.active {
	background: var(--primary);
}

/* Light swatch colours (white, cream…) need an outline to be visible. */
.product-color_list .swatch-value,
.group-check-color .field-color .color {
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
}

/* Home slider: mobile image (ACF "Mobile image") shown whole on phones instead of cropped. */
.sld_image picture {
	display: block;
	height: 100%;
}
@media (max-width: 767px) {
	.tf-slideshow .slideshow-wrap.hf-has-mobile {
		height: auto;
	}
	.slideshow-wrap.hf-has-mobile .sld_image img {
		height: auto;
	}
}

/* Home slider: whole-slide link (ACF "Image link"). */
.slideshow-wrap {
	position: relative;
}
.hf-slide-link {
	position: absolute;
	inset: 0;
	z-index: 2;
}
.slideshow-wrap .sld_content {
	pointer-events: none; /* Clicks on empty areas reach the slide link… */
}
.slideshow-wrap .sld_content a {
	pointer-events: auto; /* …while the slide button still works. */
	position: relative;
	z-index: 3;
}

/* Category circles (home "Shop By Categories", shop/category slider): square crop so the
   round frame shows a circle, not a tall oval from portrait product-size images. */
.category-v01 .cate-image img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
