/*
Theme Name: TalentHunt Smart Agency
Theme URI: https://talenthunt.com
Author: TalentHunt
Description: Custom full-site-editing block theme for TalentHunt Smart Agency.
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
Version: 1.0.3
Text Domain: talenthunt
*/

/* ---------- Base ---------- */
*{ box-sizing:border-box; }
.th-h1{ font-family:'Space Grotesk',sans-serif; font-weight:700; letter-spacing:-0.025em; line-height:1.04; }
.th-h2{ font-family:'Space Grotesk',sans-serif; font-weight:700; letter-spacing:-0.02em; line-height:1.08; }
a{ transition:color .16s; }

/* ---------- Screen-edge padding (mobile fix) ----------
   Constrained/wide content groups are centered via max-width + auto margins,
   which only creates a visible gutter once the viewport is WIDER than the
   max-width. Below that (i.e. on any phone/tablet) they span 100% of the
   viewport with no padding of their own, so text runs to the screen edge.
   Restore the gutter explicitly, matching the design's 32px side margin. */
.alignwide,
main.wp-block-group > :where(:not(.alignfull)),
.alignfull.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	padding-left: 32px;
	padding-right: 32px;
}
@media (max-width: 480px){
	.alignwide,
	main.wp-block-group > :where(:not(.alignfull)),
	.alignfull.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* ---------- Collapse any inline multi-column grid on narrow screens ----------
   Many decorative modules on this site are hand-built Custom HTML blocks with
   inline `display:grid;grid-template-columns:repeat(N,1fr)`. Rather than audit
   every one individually, force all of them to a single column below 700px;
   more specific .th-*-grid rules further down this file (with their own
   tablet-step breakpoints) take precedence over this catch-all where present. */
@media (max-width: 700px){
	[style*="display:grid"][style*="grid-template-columns"]{
		grid-template-columns: 1fr !important;
	}
	/* An item with `grid-column: span N` forces the browser to create extra
	   implicit column tracks to satisfy the span, even once the explicit
	   template above is collapsed to 1fr — which quietly re-creates a
	   multi-column layout. Cancel any such span at this breakpoint too. */
	[style*="grid-column"]{
		grid-column: auto !important;
	}
}

/* ---------- Sticky, blurred header ---------- */
.th-header{
	position:sticky; top:0; z-index:50;
	background:transparent;
	border-bottom:1px solid #E8EBEF;
}
/* backdrop-filter lives on a ::before layer, not on .th-header itself —
   filter/backdrop-filter on an ancestor creates a CSS containing block that
   would trap the nav's position:fixed mobile overlay inside the header box. */
.th-header::before{
	content:""; position:absolute; inset:0; z-index:-1;
	background:rgba(255,255,255,.86);
	backdrop-filter:saturate(1.2) blur(12px);
	-webkit-backdrop-filter:saturate(1.2) blur(12px);
}
.th-header .wp-block-navigation{ gap:26px; }
.th-header .wp-block-navigation-item a{
	font-size:14.5px; font-weight:500; color:#3A4256; text-decoration:none;
}
.th-header .wp-block-navigation-item a:hover,
.th-header .wp-block-navigation-item.current-menu-item a{ color:#0C8F5F; }
.th-header .wp-block-navigation__responsive-container:not(.is-menu-open){
	background:transparent;
}
.th-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
	background:#0A0E17;
}
.th-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a{
	color:#fff;
}
.th-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.current-menu-item a{
	color:#7FE3B6;
}
.th-header-row .wp-block-button__link{ white-space:nowrap; }
@media (max-width: 480px){
	.th-header-row{ padding-left:16px !important; padding-right:16px !important; }
	.th-header-row .wp-block-button__link{ padding-left:14px !important; padding-right:14px !important; font-size:13.5px !important; }
}

/* ---------- Hero grid-pattern backgrounds ---------- */
.th-grid-bg{
	position:relative;
	background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
	background-size:52px 52px;
}
.th-grid-bg.th-glow::before{
	content:"";
	position:absolute; inset:0; pointer-events:none;
	background:radial-gradient(900px 480px at 78% 8%,rgba(12,143,95,.22),transparent 60%);
}

/* ---------- Reusable module: equation row ---------- */
.th-eq-row{ display:flex; align-items:stretch; gap:14px; flex-wrap:wrap; justify-content:center; }
.th-eq-card{ flex:1; min-width:180px; background:#F5F6F8; border:1px solid #E6E9ED; border-radius:16px; padding:26px 24px; display:flex; flex-direction:column; gap:8px; }
.th-eq-card.is-outcome{ flex:1.15; min-width:200px; background:#EAF6EF; border:1.5px solid #0C8F5F; }
.th-eq-op{ display:flex; align-items:center; justify-content:center; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:30px; color:#0C8F5F; padding:0 2px; }
@media (max-width: 820px){ .th-eq-row{ flex-direction:column; align-items:stretch; } .th-eq-op{ padding:2px 0; } }

/* ---------- Reusable module: four pillars ---------- */
.th-pillar-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.th-pillar-card{ background:#fff; border:1px solid #E6E9ED; border-radius:16px; padding:26px 24px 28px; display:flex; flex-direction:column; gap:16px; transition:transform .2s, box-shadow .2s, border-color .2s; }
.th-pillar-card:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -28px rgba(10,14,23,.25); border-color:#CBE9DC; }
@media (max-width: 900px){ .th-pillar-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 520px){ .th-pillar-grid{ grid-template-columns:1fr; } }

/* ---------- Reusable module: comparison table ---------- */
.th-cmp-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
.th-cmp-col{ border-radius:18px; padding:32px 30px; }
.th-cmp-row{ display:flex; align-items:flex-start; gap:13px; padding:13px 0; border-top:1px solid #E6E9ED; }
.th-cmp-col.is-smart .th-cmp-row{ border-top:1px solid #EBF3EF; }
@media (max-width: 720px){ .th-cmp-grid{ grid-template-columns:1fr; } }

/* ---------- Reusable module: dark stat/benefit grid ---------- */
.th-stat-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.th-stat-card{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:13px; padding:18px; display:flex; align-items:flex-start; gap:11px; }
@media (max-width: 640px){ .th-stat-grid{ grid-template-columns:1fr; } }

/* ---------- Reusable module: card grids (services / industries / logos) ---------- */
.th-card-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.th-card{ background:#fff; border:1px solid #E6E9ED; border-radius:18px; padding:30px 28px; display:flex; flex-direction:column; gap:14px; text-decoration:none; transition:transform .2s, box-shadow .2s, border-color .2s; }
.th-card:hover{ transform:translateY(-3px); box-shadow:0 24px 48px -30px rgba(10,14,23,.2); border-color:#CBE9DC; }
@media (max-width: 860px){ .th-card-grid-3{ grid-template-columns:1fr; } }

.th-tile-grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.th-tile{ background:#fff; border:1px solid #E6E9ED; border-radius:13px; padding:22px 20px; display:flex; flex-direction:column; gap:10px; transition:border-color .2s; }
.th-tile:hover{ border-color:#0C8F5F; }
.th-tile-icon{ width:34px; height:34px; border-radius:9px; background:#EAF6EF; border:1px solid #CDE9DC; display:flex; align-items:center; justify-content:center; }
@media (max-width: 860px){ .th-tile-grid-4{ grid-template-columns:1fr 1fr; } }
@media (max-width: 520px){ .th-tile-grid-4{ grid-template-columns:1fr; } }

.th-logo-wall{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; max-width:960px; margin:0 auto; }
.th-logo-slot{ height:74px; border:1px dashed #D6DAE0; border-radius:12px; display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.08em; color:#AEB4BF; text-align:center; padding:0 8px; }
.th-logo-slot.has-logo{ border:1px solid #EDEFF2; background:#fff; }
.th-logo-slot.has-logo img{ max-height:44px; max-width:82%; width:auto; object-fit:contain; }
@media (max-width: 860px){ .th-logo-wall{ grid-template-columns:repeat(3,1fr); } }
@media (max-width: 520px){ .th-logo-wall{ grid-template-columns:repeat(2,1fr); } }

/* Utility: centering that block attrs can't express (keeps blocks valid in the editor) */
.th-center{ text-align:center; }
#team{ scroll-margin-top:90px; }

/* Client logo slider (marquee) */
.th-logo-slider{ overflow:hidden; max-width:1100px; margin:0 auto; position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.th-logo-track{ display:flex; gap:14px; width:max-content; animation:th-logo-scroll 35s linear infinite; }
.th-logo-slider:hover .th-logo-track{ animation-play-state:paused; }
.th-logo-track .th-logo-slot{ flex:0 0 auto; width:170px; }
@keyframes th-logo-scroll{ from{ transform:translateX(0); } to{ transform:translateX(calc(-50% - 7px)); } }
@media (prefers-reduced-motion: reduce){
  .th-logo-track{ animation:none; flex-wrap:wrap; width:auto; justify-content:center; }
  .th-logo-track .th-logo-slot[aria-hidden="true"]{ display:none; }
}

/* ---------- Layout grid helpers used across hero/footer sections ---------- */
.th-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
@media (max-width: 940px){ .th-hero-grid{ grid-template-columns:1fr; gap:40px; } }

.th-why-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
@media (max-width: 860px){ .th-why-grid{ grid-template-columns:1fr; gap:36px; } }

.th-foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; }
@media (max-width: 860px){ .th-foot-grid{ grid-template-columns:1fr 1fr; gap:36px; } }
@media (max-width: 520px){ .th-foot-grid{ grid-template-columns:1fr; } }

/* ---------- Chips / tags ---------- */
.th-chip-row{ display:flex; flex-wrap:wrap; gap:10px; }
.th-chip{ background:#F5F6F8; border:1px solid #E6E9ED; border-radius:100px; padding:9px 16px; font-size:14px; color:#3A4256; font-weight:500; }

/* ---------- Anchor scroll offset for in-page nav ---------- */
[id]{ scroll-margin-top:96px; }

/* ---------- Gravity Forms (global — applies to every form site-wide) ---------- */
.gform_wrapper.gravity-theme .gform_fields{ grid-column-gap:16px; grid-row-gap:18px; }
.gform_wrapper.gravity-theme .gfield_label{
	display:block; font-family:'IBM Plex Sans',sans-serif; font-size:13.5px;
	font-weight:600; color:#3A4256; margin-bottom:6px; padding:0;
}
.gform_wrapper.gravity-theme .gfield_required{ color:#0C8F5F; }
.gform_wrapper.gravity-theme .gform_required_legend{ display:none; }
.gform_wrapper.gravity-theme input[type=text],
.gform_wrapper.gravity-theme input[type=email],
.gform_wrapper.gravity-theme input[type=tel],
.gform_wrapper.gravity-theme input[type=number],
.gform_wrapper.gravity-theme input[type=url],
.gform_wrapper.gravity-theme input[type=password],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea{
	width:100%; font-family:'IBM Plex Sans',sans-serif; font-size:15px; color:#0A0E17;
	background:#fff; border:1px solid #D9DEE5; border-radius:10px; padding:13px 15px;
}
.gform_wrapper.gravity-theme select{
	appearance:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235A6376' stroke-width='1.5' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 15px center;
}
.gform_wrapper.gravity-theme textarea{ resize:vertical; min-height:96px; }
.gform_wrapper.gravity-theme .gchoice label{ font-size:14px; font-weight:400; color:#3A4256; margin-bottom:0; }
.gform_wrapper.gravity-theme input[type=checkbox],
.gform_wrapper.gravity-theme input[type=radio]{ accent-color:#0C8F5F; }
.gform_wrapper.gravity-theme .gform_footer{ margin-top:24px; padding:0; }
.gform_wrapper.gravity-theme .gform_footer input[type=submit],
.gform_wrapper.gravity-theme .gform_footer .gform_button{
	width:100%; font-family:'IBM Plex Sans',sans-serif; background:#0C8F5F; color:#fff;
	font-size:16px; font-weight:600; border:none; border-radius:10px; padding:15px; cursor:pointer;
}
.gform_wrapper.gravity-theme .gform_footer input[type=submit]:hover,
.gform_wrapper.gravity-theme .gform_footer .gform_button:hover{ background:#0A7A54; }
.gform_wrapper.gravity-theme .gform_validation_errors{
	background:#FDF3F1; border:1px solid #B4341F; border-radius:10px; box-shadow:none; padding:14px 16px;
}
.gform_wrapper.gravity-theme .gform_validation_errors > h2{ font-size:14px; color:#B4341F; }
.gform_wrapper.gravity-theme .gfield_validation_message{
	background:transparent; border:none; color:#B4341F; font-size:13px; padding:6px 0 0;
}
.gform_wrapper.gravity-theme .gfield_error input,
.gform_wrapper.gravity-theme .gfield_error select,
.gform_wrapper.gravity-theme .gfield_error textarea{ border-color:#B4341F; }
/* A captcha field with no reCAPTCHA keys configured outputs only its label — hide it until keys are added */
.gform_wrapper.gravity-theme .gfield--type-captcha:not(:has(.ginput_container)){ display:none; }
.gform_confirmation_message{
	display:block; font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:20px;
	line-height:1.5; color:#0A0E17; text-align:center; padding:16px 0;
}

/* ---------- Resource card grid responsiveness ---------- */
@media (max-width: 860px){ .wp-block-post-template.is-layout-grid{ grid-template-columns:1fr !important; } }

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: reduce){ *{ transition:none !important; } }
