/* ==========================================================================
   FARNIKWEB — Typography & spacing refinements
   Loaded last to keep type scale consistent across public templates.
   ========================================================================== */

body,
button,
input,
textarea,
select {
	font-family: "Vazirmatn", sans-serif;
}

body {
	font-size: 15px;
}

[dir="ltr"],
.fw-latin,
.fw-latin-heading,
.fw-latin-small {
	font-family: "Poppins", sans-serif;
}

.fw-main h1,
.fw-main h2,
.fw-main h3 {
	text-wrap: balance;
}

.fw-main p {
	text-wrap: pretty;
}


/* Home */

.fw-hero__title {
	font-size: clamp(38px, 4vw, 50px);
	line-height: 1.45;
}

.fw-intro__title,
.fw-services__title,
.fw-portfolio__title,
.fw-process__title,
.fw-why__title {
	font-size: clamp(28px, 2.6vw, 36px);
	line-height: 1.55;
}

.fw-final-cta__title {
	font-size: clamp(29px, 2.7vw, 37px);
	line-height: 1.55;
}


/* Contact */

.fw-contact__hero {
	padding: 72px 0 52px;
}

.fw-contact__hero-inner {
	max-width: 820px;
}

.fw-contact__title {
	max-width: 780px;
	font-size: clamp(32px, 3.2vw, 44px);
	line-height: 1.5;
}

.fw-contact__lead {
	max-width: 690px;
	margin-top: 18px;
	font-size: 15px;
	line-height: 2;
}

.fw-contact__methods {
	padding: 30px 0 82px;
}

.fw-contact-card {
	min-height: 340px;
	padding: 27px;
}

.fw-contact-card h2 {
	font-size: 21px;
}

.fw-contact-card p {
	font-size: 14px;
}

.fw-contact-card__value {
	font-size: 16px;
}


/* Start project */

.fw-start-project__hero {
	padding: 72px 0 36px;
}

.fw-start-project__hero-inner {
	max-width: 900px;
}

.fw-start-project__title {
	max-width: 880px;
	font-size: clamp(32px, 3.6vw, 46px);
	line-height: 1.48;
}

.fw-start-project__lead {
	max-width: 680px;
	margin-top: 18px;
	font-size: 15px;
	line-height: 1.95;
}

.fw-start-project__choices {
	padding: 30px 0 78px;
}

.fw-start-project-choice {
	min-height: 292px;
	padding: 27px;
}

.fw-start-project-choice__number {
	margin-bottom: 24px;
}

.fw-start-project-choice__label {
	font-size: 12px;
}

.fw-start-project-choice__title {
	font-size: 19px;
	line-height: 1.7;
}

.fw-start-project-choice__description {
	font-size: 14px;
	line-height: 1.9;
}

.fw-start-project-choice__action {
	padding-top: 22px;
	font-size: 13px;
}

.fw-start-project__services-header h2 {
	font-size: clamp(27px, 3vw, 36px);
}


/* Blog index and articles */

.fw-blog-hero {
	padding: 70px 0 66px;
	background: linear-gradient(180deg, #faf9f6 0%, #ffffff 100%);
}

.fw-blog-hero__content {
	max-width: 780px;
}

.fw-blog-hero h1 {
	font-size: clamp(34px, 4vw, 48px);
	line-height: 1.48;
	letter-spacing: -.03em;
}

.fw-blog-hero__content > p:last-child {
	max-width: 690px;
	margin-top: 18px;
	font-size: 15px;
	line-height: 2;
}

.fw-blog-latest {
	padding: 76px 0 90px;
}

.fw-blog-section-head {
	margin-bottom: 34px;
}

.fw-blog-section-head h2,
.fw-blog-topics h2,
.fw-blog-cta h2 {
	font-size: clamp(27px, 3vw, 36px);
	line-height: 1.55;
}

.fw-blog-card h3 {
	font-size: 19px;
}

.fw-blog-card--featured h3 {
	font-size: clamp(25px, 2.5vw, 33px);
}

.fw-blog-card p {
	font-size: 14px;
}

.fw-article h1 {
	font-size: clamp(34px, 4.5vw, 52px);
	line-height: 1.48;
}

.fw-article__lead,
.fw-article__content {
	font-size: 16px;
}

.fw-article__content h2 {
	font-size: 27px;
}

.fw-article__content h3 {
	font-size: 21px;
}


/* About */

.fw-about__hero {
	padding: 76px 0 84px;
}

.fw-about__hero-grid {
	gap: 60px;
}

.fw-about__title {
	max-width: 760px;
	font-size: clamp(36px, 4vw, 50px);
	line-height: 1.5;
}

.fw-about__lead {
	margin-top: 20px;
	color: #526078;
	font-size: 15px;
	line-height: 2;
}

.fw-about__intro,
.fw-about__principles,
.fw-about__approach,
.fw-about__fit,
.fw-about__cta {
	padding: 78px 0;
}

.fw-about__intro-grid,
.fw-about__fit-grid {
	gap: 64px;
}

.fw-about__section-heading h2,
.fw-about__section-header h2,
.fw-about__approach-content h2,
.fw-about__fit h2,
.fw-about__cta h2 {
	font-size: clamp(27px, 3vw, 36px);
	line-height: 1.6;
}

.fw-about__intro-copy {
	padding-top: 22px;
}

.fw-about__intro-copy p,
.fw-about__approach-content p:last-child,
.fw-about__fit-list p,
.fw-about__cta-inner > div > p:last-child {
	color: #526078;
	font-size: 15px;
	line-height: 2.05;
}

.fw-about__section-eyebrow,
.fw-about__cta-eyebrow {
	color: #3659c8;
	font-size: 12px;
}

.fw-about-principle h3 {
	font-size: 18px;
}


/* Services, search and other large public headings */

.fw-services-archive__title {
	font-size: clamp(34px, 4vw, 50px);
	line-height: 1.48;
}

.fw-services-archive__intro,
.fw-service-hero__description {
	font-size: 15px;
}

.fw-service-hero__title {
	font-size: clamp(36px, 3.8vw, 50px);
	line-height: 1.48;
}

.fw-search-hero h1 {
	font-size: clamp(34px, 4vw, 52px);
	line-height: 1.48;
}

.fw-search-results-head h2,
.fw-search-empty h2 {
	font-size: clamp(25px, 3vw, 34px);
}


@media (max-width: 767px) {
	body {
		font-size: 14px;
	}

	.fw-hero__title,
	.fw-contact__title,
	.fw-start-project__title,
	.fw-blog-hero h1,
	.fw-about__title,
	.fw-services-archive__title,
	.fw-service-hero__title,
	.fw-search-hero h1,
	.fw-article h1 {
		font-size: clamp(29px, 8.5vw, 38px);
		line-height: 1.55;
	}

	.fw-contact__hero,
	.fw-start-project__hero,
	.fw-blog-hero,
	.fw-about__hero {
		padding-top: 54px;
		padding-bottom: 44px;
	}

	.fw-about__intro,
	.fw-about__principles,
	.fw-about__approach,
	.fw-about__fit,
	.fw-about__cta,
	.fw-blog-latest {
		padding: 58px 0;
	}
}
