/*
 * TeleAgriCulture site — brand alignment with the app (tac_v3 resources/js/index.css).
 * Fonts: DM Sans (body) and Outfit (headings), the same @fontsource-variable 5.3.0 files the app ships.
 * Licence: SIL Open Font License 1.1 (see fonts/OFL-*.txt).
 */

/* ---------- Fonts (self-hosted) ---------- */
@font-face {
	font-family: 'DM Sans Variable';
	font-style: normal;
	font-display: swap;
	font-weight: 100 1000;
	src: url(fonts/dm-sans-latin-ext-opsz-normal.woff2) format('woff2-variations');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'DM Sans Variable';
	font-style: normal;
	font-display: swap;
	font-weight: 100 1000;
	src: url(fonts/dm-sans-latin-opsz-normal.woff2) format('woff2-variations');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'DM Sans Variable';
	font-style: italic;
	font-display: swap;
	font-weight: 100 1000;
	src: url(fonts/dm-sans-latin-ext-opsz-italic.woff2) format('woff2-variations');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'DM Sans Variable';
	font-style: italic;
	font-display: swap;
	font-weight: 100 1000;
	src: url(fonts/dm-sans-latin-opsz-italic.woff2) format('woff2-variations');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Outfit Variable';
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url(fonts/outfit-latin-ext-wght-normal.woff2) format('woff2-variations');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Outfit Variable';
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url(fonts/outfit-latin-wght-normal.woff2) format('woff2-variations');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Tokens (hex equivalents of the app's HSL tokens) ---------- */
:root {
	--tac-green-900: #06412b;
	--tac-green-800: #095d3e; /* app --primary */
	--tac-green-700: #0d774f; /* accent text on light backgrounds, 5.6:1 on white */
	--tac-green-600: #04b46d; /* app --accent */
	--tac-green-100: #e5f5ed;
	--tac-green-50:  #f1faf5; /* app --background */
	--tac-ink-950:   #101412; /* app --foreground */
	--tac-bark-950:  #101916; /* app dark background */
	--tac-bark-700:  #344640; /* body text */
	--tac-ink-600:   #68736d; /* muted text */
	/* Site accent: the original mint, close to the logo's green bars (#00d29d).
	   Too light for small text on white (1.9:1), so use it for fills, icons and large
	   headings, with dark text on top; running-text links stay --tac-green-700. */
	--tac-mint:      #35d7a4;
	--tac-mint-dark: #22b886; /* hover */
	--tac-font-body: 'DM Sans Variable', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--tac-font-head: 'Outfit Variable', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ---------- Typography ---------- */
body,
button,
input,
select,
optgroup,
textarea {
	font-family: var(--tac-font-body);
	color: var(--tac-bark-700);
}
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6,
.elementor-widget-heading .elementor-heading-title,
.elementor-icon-box-title,
.entry-title,
.widget-title {
	font-family: var(--tac-font-head);
	letter-spacing: -0.01em;
}
h1, h2, h3, h4, h5, h6,
.entry-title a,
.site-title a {
	color: var(--tac-ink-950);
}
.elementor-widget-text-editor,
.elementor-icon-box-description,
.entry-content {
	font-family: var(--tac-font-body);
	line-height: 1.65;
}

/* Justified text leaves wide gaps on narrow screens */
[style*="text-align: justify"],
[style*="text-align:justify"] {
	text-align: left !important;
}

/* Links in running text */
.entry-content a:not(.elementor-button),
.elementor-widget-text-editor a {
	color: var(--tac-green-700);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.entry-content a:not(.elementor-button):hover,
.elementor-widget-text-editor a:hover {
	color: var(--tac-green-900);
}

/* ---------- Buttons (theme default was pink #f0437e) ---------- */
button,
.button,
input[type=button],
input[type=reset],
input[type=submit],
.elementor-button {
	background-color: var(--tac-mint);
	border-color: var(--tac-mint);
	color: var(--tac-ink-950);
	font-family: var(--tac-font-body);
	box-shadow: none;
}
button:hover,
.button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover,
.elementor-button:hover {
	background-color: var(--tac-mint-dark);
	border-color: var(--tac-mint-dark);
	color: var(--tac-ink-950);
}
button:focus-visible,
.button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
a:focus-visible {
	outline: 2px solid var(--tac-mint-dark);
	outline-offset: 2px;
}

/* ---------- Other theme pink accents ---------- */
.single-post .posted-on a,
.blog-loop .posted-on a,
.entry-title a:hover,
.widget_categories li:hover a,
.widget_categories li:hover::before,
.athemes-blog:not(.airi_athemes_blog_skin) .byline a:hover {
	color: var(--tac-green-700);
}
.airi_recent_entries .post-date,
.athemes-blog:not(.airi_athemes_blog_skin) .posted-on a {
	color: var(--tac-green-700);
}
/* Decorative accents in the site mint */
.single-post .read-more-link .gt,
.blog-loop .read-more-link .gt {
	color: var(--tac-mint);
}
.comments-area .comment-reply-link:hover {
	background-color: var(--tac-green-700);
}

/* ---------- Header ---------- */
/* Dark header everywhere except the home page, whose header sits on the hero photo */
body:not(.page-id-181) .site-header,
body.menuStyle1.page-template-template_page-builder:not(.page-id-181) .site-header,
.menuStyle1 .is-sticky .site-header {
	background-color: var(--tac-bark-950);
}
.main-navigation a {
	font-family: var(--tac-font-body);
	font-weight: 500;
}

/* ---------- Footer ---------- */
.site-footer .widget-title {
	color: var(--tac-ink-950);
}
.site-footer .widget a,
.site-info,
.site-info a {
	color: var(--tac-bark-700);
}
.site-footer .widget a:hover {
	color: var(--tac-green-700);
}
/* Social icons in the site mint instead of Facebook blue / Instagram pink */
.social-media-list a[href]::before {
	background: var(--tac-mint);
	color: var(--tac-ink-950);
}
.social-media-list a[href]:hover::before {
	background: var(--tac-mint-dark);
}

/* ---------- Layout fixes ---------- */
/* Contact form: Bootstrap row was 5 px wider than the page (sideways scroll) */
.wpcf7 .row {
	margin-left: 0;
	margin-right: 0;
}
/* Blog: long words in titles pushed the page wider than the phone screen */
.entry-title,
.entry-content {
	overflow-wrap: break-word;
}
.blog-loop .flex > *,
.blog-loop .post-inner {
	min-width: 0;
}
.blog-loop > .row,
.blog-loop .row {
	margin-left: 0;
	margin-right: 0;
}
/* Safety net against 1px rounding overflow; `clip` (unlike `hidden`) keeps the sticky header working */
html,
body {
	overflow-x: clip;
}

/* ---------- Cookie banner (Complianz) ---------- */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
	--cmplz_banner_background_color: var(--tac-bark-950);
	--cmplz_banner_border_color: var(--tac-bark-950);
	--cmplz_text_color: #f1faf5;
	--cmplz_hyperlink_color: #9ce8c4;
	--cmplz_button_accept_background_color: var(--tac-mint);
	--cmplz_button_accept_border_color: var(--tac-mint);
	--cmplz_button_accept_text_color: var(--tac-bark-950);
	--cmplz_button_deny_background_color: transparent;
	--cmplz_button_deny_border_color: #f1faf5;
	--cmplz_button_deny_text_color: #f1faf5;
	--cmplz_button_settings_background_color: transparent;
	--cmplz_button_settings_border_color: #f1faf5;
	--cmplz_button_settings_text_color: #f1faf5;
	--cmplz_slider_active_color: var(--tac-mint);
	font-family: var(--tac-font-body);
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-title,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-message {
	color: #f1faf5;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn {
	font-family: var(--tac-font-body);
	letter-spacing: 0;
	text-transform: none;
	font-size: 15px;
}

/* ---------- Home page ---------- */
/* Mission paragraph: keep a readable line length (element 40aaa669 on page 181) */
.elementor-181 .elementor-element.elementor-element-40aaa669 {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

/* ---------- Polish (v1.3) ---------- */
/* Readable base size: the theme set 14px */
body {
	font-size: 16px;
}
.elementor-widget-text-editor,
.entry-content {
	font-size: 16px;
	line-height: 1.7;
}
::selection {
	background: var(--tac-mint);
	color: var(--tac-ink-950);
}

/* Long project write-ups: cap line length on wide text blocks (left-aligned pages only) */
body.elementor-page:not(.page-id-181):not(.page-id-122):not(.page-id-164):not(.page-id-495) .elementor-widget-text-editor {
	container-type: inline-size;
}
@container (min-width: 900px) {
	.elementor-widget-text-editor p,
	.elementor-widget-text-editor ul,
	.elementor-widget-text-editor ol,
	.elementor-widget-text-editor h2,
	.elementor-widget-text-editor h3 {
		max-width: 46rem;
	}
}

/* Navigation: mint for hover and the current page */
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
	color: var(--tac-mint);
}
/* Mobile: the theme still used its navy on page-builder pages */
@media (max-width: 1024px) {
	body.menuStyle1.page-template-template_page-builder .site-header,
	.menuStyle1 .site-header {
		background-color: var(--tac-bark-950);
	}
}

/* Blog and posts: centre the column (the sidebar slot is empty) and drop meta clutter */
body.blog #primary,
body.single-post #primary,
body.archive #primary,
body.search #primary {
	margin-left: auto;
	margin-right: auto;
	float: none;
}
.blog-loop .entry-meta,
.single-post .entry-meta,
.entry-meta .byline,
.entry-meta .comments-number,
.post-cat[href*="/category/uncategorized/"],
.cat-links a[href*="/category/uncategorized/"] {
	display: none;
}
.blog-loop article,
.archive article {
	padding-bottom: 8px;
}
.entry-title {
	letter-spacing: -0.015em;
}
.read-more-link {
	letter-spacing: .06em;
}

/* Footer: readable label colour, light tint to separate it from the page */
.footer-widgets,
.site-footer {
	background-color: var(--tac-green-50);
	border-top: 1px solid var(--tac-green-100);
}
.footer-widgets [style*="#bfbfbf"] {
	color: var(--tac-ink-600) !important;
}
.footer-widgets .widget-title {
	font-weight: 600;
	color: var(--tac-ink-950);
}
.footer-widgets .widget a {
	color: var(--tac-bark-700);
}
.footer-widgets .widget a:hover {
	color: var(--tac-green-700);
}
@media (max-width: 767px) {
	.footer-widgets .widget {
		margin-bottom: 32px;
	}
}

/* Contact form fields */
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 textarea {
	border: 1px solid #d5e3dc;
	border-radius: 6px;
	padding: 12px 14px;
	background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.wpcf7 input[type=text]:focus,
.wpcf7 input[type=email]:focus,
.wpcf7 textarea:focus {
	border-color: var(--tac-mint-dark);
	box-shadow: 0 0 0 3px rgba(53, 215, 164, .25);
	outline: none;
}

/* Projects gallery: gentle hover feedback */
.e-gallery-item .e-gallery-image {
	transition: transform .35s ease, filter .35s ease;
}
.e-gallery-item:hover .e-gallery-image,
.e-gallery-item:focus-visible .e-gallery-image {
	transform: scale(1.03);
	filter: saturate(1.1);
}
@media (prefers-reduced-motion: reduce) {
	.e-gallery-item .e-gallery-image { transition: none; }
	.e-gallery-item:hover .e-gallery-image { transform: none; }
}

/* Cookie placeholder notice in the site style */
.cmplz-blocked-content-notice {
	font-family: var(--tac-font-body) !important;
	border-radius: 6px;
}
