/**
 * Hafez design tokens
 * 
 * Written by the typography panel. Root 16px, viewport 320px–1200px.
 */

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-Black.woff2") format("woff2"),
		url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-ExtraBlack.woff2") format("woff2"),
		url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-Heavy.woff2") format("woff2");
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-DemiBold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-ExtraBold.woff2") format("woff2");
	font-weight: 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-Hairline.woff2") format("woff2"),
		url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-Thin.woff2") format("woff2");
	font-weight: 100;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-Light.woff2") format("woff2");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-UltraLight.woff2") format("woff2");
	font-weight: 200;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Dana";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/dana/DanaFaNum-fat.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "IRANSans";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/iransans/iransans.ttf") format("truetype");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "IRANYekan";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/iranyekan/iranyekanwebblackfanum.woff") format("woff"),
		url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/iranyekan/iranyekanwebextrablackfanum.woff") format("woff");
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "IRANYekan";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/iranyekan/iranyekanwebboldfanum.woff") format("woff");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "IRANYekan";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/iranyekan/iranyekanwebextraboldfanum.woff") format("woff");
	font-weight: 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "IRANYekan";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/iranyekan/iranyekanweblightfanum.woff") format("woff");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "IRANYekan";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/iranyekan/iranyekanwebmediumfanum.woff") format("woff");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "IRANYekan";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/iranyekan/iranyekanwebregularfanum.woff") format("woff");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "IRANYekan";
	src: url("https://kanacook.com/wp-content/plugins/hafez/assets/fonts/iranyekan/iranyekanwebthinfanum.woff") format("woff");
	font-weight: 100;
	font-style: normal;
	font-display: swap;
}

:root {
	--hafez-font: "IranSansX", sans-serif;
	--hafez-font-heading: var(--hafez-font);
	--hafez-font-body: var(--hafez-font);
	--hafez-lh: 1.7;
	--hafez-lh-heading: 1.25;
	--hafez-lh-body: 1.7;
	--hafez-fs-h1: clamp(1.75rem, calc(1.477rem + 1.364vw), 2.50rem);
	--hafez-fs-h2: clamp(1.50rem, calc(1.318rem + 0.909vw), 2.00rem);
	--hafez-fs-h3: clamp(1.25rem, calc(1.068rem + 0.909vw), 1.75rem);
	--hafez-fs-h4: clamp(1.125rem, calc(1.034rem + 0.455vw), 1.375rem);
	--hafez-fs-h5: clamp(1.063rem, calc(0.994rem + 0.341vw), 1.25rem);
	--hafez-fs-h6: clamp(1.00rem, calc(0.955rem + 0.227vw), 1.125rem);
	--hafez-fs-p: clamp(1.00rem, calc(0.955rem + 0.227vw), 1.125rem);
	--hafez-fs-body: var(--hafez-fs-p);
	--hafez-fs-heading-sm: var(--hafez-fs-h4);
	--hafez-color-elementor-primary: #57cdff;
	--hafez-color-elementor-secondary: #54595f;
	--hafez-color-elementor-text: #7a7a7a;
	--hafez-color-elementor-accent: #61ce70;
	--hafez-color-elementor-7a082d4: #2f2f2f;
	--hafez-color-elementor-e936184: #4a4a4f;
	--hafez-color-elementor-5cff019: #2f2f2f;
	--hafez-color-elementor-cbd32fa: #550e12;
	--hafez-color-elementor-15681e2: #d2b6a1;
	--hafez-color-elementor-15b9df7: #ffffff;
	--hafez-content-width: 1380px;
	--hafez-shadow: 0 8px 24px color-mix(in srgb, var(--hafez-color-shadow, #0f172a) 18%, transparent);
	font-size: 16px;
}

.hafez-color-elementor-primary { color: var(--hafez-color-elementor-primary); }
.hafez-bg-elementor-primary { background-color: var(--hafez-color-elementor-primary); }
.hafez-color-elementor-secondary { color: var(--hafez-color-elementor-secondary); }
.hafez-bg-elementor-secondary { background-color: var(--hafez-color-elementor-secondary); }
.hafez-color-elementor-text { color: var(--hafez-color-elementor-text); }
.hafez-bg-elementor-text { background-color: var(--hafez-color-elementor-text); }
.hafez-color-elementor-accent { color: var(--hafez-color-elementor-accent); }
.hafez-bg-elementor-accent { background-color: var(--hafez-color-elementor-accent); }
.hafez-color-elementor-7a082d4 { color: var(--hafez-color-elementor-7a082d4); }
.hafez-bg-elementor-7a082d4 { background-color: var(--hafez-color-elementor-7a082d4); }
.hafez-color-elementor-e936184 { color: var(--hafez-color-elementor-e936184); }
.hafez-bg-elementor-e936184 { background-color: var(--hafez-color-elementor-e936184); }
.hafez-color-elementor-5cff019 { color: var(--hafez-color-elementor-5cff019); }
.hafez-bg-elementor-5cff019 { background-color: var(--hafez-color-elementor-5cff019); }
.hafez-color-elementor-cbd32fa { color: var(--hafez-color-elementor-cbd32fa); }
.hafez-bg-elementor-cbd32fa { background-color: var(--hafez-color-elementor-cbd32fa); }
.hafez-color-elementor-15681e2 { color: var(--hafez-color-elementor-15681e2); }
.hafez-bg-elementor-15681e2 { background-color: var(--hafez-color-elementor-15681e2); }
.hafez-color-elementor-15b9df7 { color: var(--hafez-color-elementor-15b9df7); }
.hafez-bg-elementor-15b9df7 { background-color: var(--hafez-color-elementor-15b9df7); }

/* Strip Elementor / JetEngine / browser focus chrome (outline + glow). */
html body :is(a, button, input, textarea, select, summary, [tabindex], [contenteditable]):is(:focus, :focus-visible),
html body :is(.elementor, .elementor-widget, .elementor-button, .elementor-field, .elementor-field-textual):is(:focus, :focus-visible),
html body .elementor :is(a, button, input, textarea, select, .elementor-button, .elementor-field, .elementor-field-textual):is(:focus, :focus-visible),
html body [class*="elementor-kit-"] :is(a, button, input, textarea, select, .elementor-button, .elementor-field, .elementor-field-textual):is(:focus, :focus-visible),
html body [class*="elementor-kit-"] input:not([type="button"]):not([type="submit"]):is(:focus, :focus-visible),
html body [class*="elementor-kit-"] textarea:is(:focus, :focus-visible),
html body [class*="elementor-kit-"] select:is(:focus, :focus-visible),
html body :is(.jet-form-builder, .jet-engine, .jet-listing-grid, .jet-listing) :is(a, button, input, textarea, select, .jet-form-builder__field, .jet-form-builder__action-button):is(:focus, :focus-visible),
html body :is(.jet-form-builder__field, .jet-form-builder__action-button):is(:focus, :focus-visible),
html body *:is(:focus, :focus-visible) {
	outline: none !important;
	outline-width: 0 !important;
	outline-style: none !important;
	outline-color: transparent !important;
	outline-offset: 0 !important;
	box-shadow: none !important;
	-webkit-box-shadow: none !important;
}

html body button::-moz-focus-inner,
html body input::-moz-focus-inner {
	border: 0 !important;
	padding: 0;
}

/* Typography classes for Elementor — no raw HTML tag selectors. */

.hafez-h1,
.hafez-h1 .elementor-heading-title {
	font-family: var(--hafez-font);
	font-size: var(--hafez-fs-h1);
	font-weight: 600;
	line-height: 1.25;
	color: var(--hafez-color-text-heading, #0f172a);
}

.hafez-h2,
.hafez-h2 .elementor-heading-title {
	font-family: var(--hafez-font);
	font-size: var(--hafez-fs-h2);
	font-weight: 400;
	line-height: 1.25;
	color: var(--hafez-color-text-heading, #0f172a);
}

.hafez-h3,
.hafez-h3 .elementor-heading-title {
	font-family: var(--hafez-font);
	font-size: var(--hafez-fs-h3);
	font-weight: 700;
	line-height: 1.25;
	color: var(--hafez-color-text-heading, #0f172a);
}

.hafez-h4,
.hafez-h4 .elementor-heading-title {
	font-family: var(--hafez-font);
	font-size: var(--hafez-fs-h4);
	font-weight: 700;
	line-height: 1.25;
	color: var(--hafez-color-text-heading, #0f172a);
}

.hafez-h5,
.hafez-h5 .elementor-heading-title {
	font-family: var(--hafez-font);
	font-size: var(--hafez-fs-h5);
	font-weight: 700;
	line-height: 1.25;
	color: var(--hafez-color-text-heading, #0f172a);
}

.hafez-h6,
.hafez-h6 .elementor-heading-title {
	font-family: var(--hafez-font);
	font-size: var(--hafez-fs-h6);
	font-weight: 700;
	line-height: 1.25;
	color: var(--hafez-color-text-heading, #0f172a);
}

.hafez-p,
.hafez-p .elementor-heading-title,
.hafez-body,
.hafez-body .elementor-heading-title {
	font-family: var(--hafez-font);
	font-size: var(--hafez-fs-p);
	font-weight: 400;
	line-height: 1.7;
	color: var(--hafez-color-text-body, #475569);
}

.hafez-body {
	background-color: var(--hafez-color-bg, #ffffff);
}

.hafez-code {
	font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
	font-size: 0.875em;
}

.hafez-link {
	color: var(--hafez-color-link, #2563eb);
}

.hafez-link:hover,
.hafez-link:focus {
	color: var(--hafez-color-link-hover, #1d4ed8);
}

.hafez-focus:focus-visible {
	outline: 2px solid var(--hafez-color-focus, #2563eb) !important;
	outline-offset: 2px !important;
}

.hafez-surface {
	background-color: var(--hafez-color-surface, #f8fafc);
	border-color: var(--hafez-color-border, #e2e8f0);
	border-radius: var(--hafez-radius-outer, 24px);
	box-shadow: var(--hafez-shadow);
}

.hafez-text-subtitle {
	color: var(--hafez-color-text-subtitle, #334155);
}

.hafez-text-muted {
	color: var(--hafez-color-text-muted, #94a3b8);
}

.hafez-quote {
	margin: 1em 0;
	padding: 0.75em 1em;
	border-inline-start: 3px solid var(--hafez-color-primary, #2563eb);
	background: var(--hafez-color-surface, #f8fafc);
	border-radius: var(--hafez-radius-inner, 8px);
	color: var(--hafez-color-text-subtitle, #334155);
}

.hafez-quote > :last-child {
	margin-bottom: 0;
}

.hafez-list {
	margin: 0.75em 0 1em;
	padding-inline-start: 1.25em;
	font-size: var(--hafez-fs-body);
	line-height: var(--hafez-lh-body);
	color: var(--hafez-color-text-body, #475569);
}

.hafez-img,
.hafez-video {
	display: block;
	max-width: 100%;
	height: auto;
}

.hafez-audio {
	width: 100%;
}

.hafez-img-right {
	margin-inline-start: auto;
	margin-inline-end: 0;
	max-width: 50%;
}

.hafez-img-left {
	margin-inline-start: 0;
	margin-inline-end: auto;
	max-width: 50%;
}

.hafez-img-center {
	margin-inline: auto;
	max-width: 70%;
}

.hafez-img-wide {
	width: 100%;
	max-width: none;
}

.hafez-btn-primary {
	background-color: var(--hafez-color-btn-primary-bg, #2563eb);
	color: var(--hafez-color-btn-primary-text, #ffffff);
	border-radius: var(--hafez-radius-inner, 8px);
}

.hafez-btn-primary:hover,
.hafez-btn-primary:focus {
	background-color: var(--hafez-color-btn-primary-hover, #1d4ed8);
}

.hafez-btn-secondary {
	background-color: var(--hafez-color-btn-secondary-bg, #e2e8f0);
	color: var(--hafez-color-btn-secondary-text, #0f172a);
	border-radius: var(--hafez-radius-inner, 8px);
}

.hafez-btn-secondary:hover,
.hafez-btn-secondary:focus {
	background-color: var(--hafez-color-btn-secondary-hover, #cbd5e1);
}

.hafez-btn-action {
	background-color: var(--hafez-color-btn-action-bg, #ea580c);
	color: var(--hafez-color-btn-action-text, #ffffff);
	border-radius: var(--hafez-radius-inner, 8px);
}

.hafez-btn-action:hover,
.hafez-btn-action:focus {
	background-color: var(--hafez-color-btn-action-hover, #c2410c);
}

.hafez-alert-success {
	background-color: var(--hafez-color-success-bg, #dcfce7);
	color: var(--hafez-color-success-text, #166534);
	border-radius: var(--hafez-radius-inner, 8px);
}

.hafez-alert-warning {
	background-color: var(--hafez-color-warning-bg, #ffedd5);
	color: var(--hafez-color-warning-text, #9a3412);
	border-radius: var(--hafez-radius-inner, 8px);
}

.hafez-alert-danger {
	background-color: var(--hafez-color-danger-bg, #fee2e2);
	color: var(--hafez-color-danger-text, #991b1b);
	border-radius: var(--hafez-radius-inner, 8px);
}

/* WooCommerce notices → Hafez alert tokens (classic + blocks). */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.wc-block-components-notice-banner {
	padding: 16px !important;
	margin: 0 0 16px;
	border: 0;
	border-radius: var(--hafez-radius-inner, 8px);
	box-shadow: none;
	list-style: none outside;
	font-size: var(--hafez-fs-body);
	line-height: var(--hafez-lh-body);
	width: auto;
	word-wrap: break-word;
}

.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
	display: none !important;
	content: none !important;
}

.woocommerce-message,
.wc-block-components-notice-banner.is-success {
	background-color: var(--hafez-color-success-bg, #dcfce7) !important;
	color: var(--hafez-color-success-text, #166534) !important;
	border-color: var(--hafez-color-success-text, #166534);
}

.woocommerce-info,
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-warning {
	background-color: var(--hafez-color-warning-bg, #ffedd5) !important;
	color: var(--hafez-color-warning-text, #9a3412) !important;
	border-color: var(--hafez-color-warning-text, #9a3412);
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
	background-color: var(--hafez-color-danger-bg, #fee2e2) !important;
	color: var(--hafez-color-danger-text, #991b1b) !important;
	border-color: var(--hafez-color-danger-text, #991b1b);
}

.wc-block-components-notice-banner.is-success > svg {
	background-color: var(--hafez-color-success-text, #166534) !important;
	fill: #fff;
}

.wc-block-components-notice-banner.is-info > svg,
.wc-block-components-notice-banner.is-warning > svg {
	background-color: var(--hafez-color-warning-text, #9a3412) !important;
	fill: #fff;
}

.wc-block-components-notice-banner.is-error > svg {
	background-color: var(--hafez-color-danger-text, #991b1b) !important;
	fill: #fff;
}

.woocommerce-message a,
.woocommerce-error a,
.woocommerce-info a,
.wc-block-components-notice-banner a {
	color: inherit;
}
