/* =========================================================
   GovForms Portal — Main Stylesheet
   ========================================================= */

/* ---------- Layout helpers ---------- */
.gf-container{
	max-width: var(--gf-container);
	margin-inline: auto;
	padding-inline: 24px;
}
.gf-section{ padding-block: 64px; }
.gf-section--tight{ padding-block: 40px; }
.gf-section--cream{ background: var(--gf-cream); }
.gf-section--forest{ background: var(--gf-forest); color: #fff; }

.gf-section-head{
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 32px;
	flex-wrap: wrap;
}
.gf-eyebrow{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gf-accent-deep);
	margin: 0 0 8px;
}
.gf-eyebrow::before{
	content: "";
	width: 18px; height: 2px;
	background: var(--gf-accent);
	display: inline-block;
	border-radius: 2px;
}
.gf-section-title{
	font-family: var(--gf-font-display);
	font-size: clamp(24px, 3vw, 34px);
	font-weight: 600;
	margin: 0;
	color: var(--gf-forest-deep);
	letter-spacing: -.01em;
}
.gf-section--forest .gf-section-title{ color: #fff; }
.gf-section-sub{
	margin: 6px 0 0;
	color: var(--gf-navy-soft);
	font-size: 15.5px;
	max-width: 60ch;
}
.gf-link-more{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	font-size: 14.5px;
	color: var(--gf-forest);
	white-space: nowrap;
	padding: 8px 4px;
	border-bottom: 2px solid transparent;
	transition: border-color var(--gf-speed) var(--gf-ease), transform var(--gf-speed) var(--gf-ease);
}
.gf-link-more:hover{ border-color: var(--gf-accent); transform: translateX(2px); }
.gf-link-more svg{ width: 16px; height: 16px; }

/* ---------- Buttons ---------- */
.gf-btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--gf-font-body);
	font-weight: 600;
	font-size: 14.5px;
	padding: 12px 22px;
	border-radius: var(--btn-radius, var(--gf-radius-sm));
	border: 1px solid transparent;
	transition: transform var(--gf-speed) var(--gf-ease), box-shadow var(--gf-speed) var(--gf-ease), background var(--gf-speed) var(--gf-ease);
	white-space: nowrap;
}
.gf-btn svg{ width: 17px; height: 17px; flex-shrink: 0; }
.gf-btn:active{ transform: translateY(1px) scale(.98); }

.gf-btn--primary{
	background: var(--gf-accent);
	color: #fff;
	box-shadow: var(--gf-shadow-accent);
}
.gf-btn--primary:hover{ background: var(--gf-accent-deep); transform: translateY(-2px); box-shadow: 0 14px 28px rgba(224,122,63,.34); }

.gf-btn--outline{
	background: transparent;
	border-color: var(--gf-forest);
	color: var(--gf-forest);
}
.gf-btn--outline:hover{ background: var(--gf-forest); color: #fff; transform: translateY(-2px); }

.gf-btn--ghost{
	background: var(--gf-forest-tint);
	color: var(--gf-forest-deep);
}
.gf-btn--ghost:hover{ background: var(--gf-forest); color: #fff; transform: translateY(-2px); }

.gf-btn--sm{ padding: 8px 14px; font-size: 13.5px; }
.gf-btn--block{ width: 100%; }
.gf-btn--icon{ padding: 10px; }

/* ---------- Header ---------- */
.gf-header{
	position: sticky;
	top: 0;
	z-index: 500;
	background: rgba(251,248,242,.92);
	backdrop-filter: blur(10px) saturate(1.2);
	border-bottom: 1px solid var(--gf-border);
	transition: box-shadow var(--gf-speed) var(--gf-ease);
}
.gf-header.is-scrolled{ box-shadow: var(--gf-shadow-md); }

.gf-header-inner{
	display: flex;
	align-items: center;
	gap: 20px;
	height: var(--gf-header-h);
}
.gf-brand{
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--gf-font-display);
	font-weight: 600;
	font-size: 20px;
	color: var(--gf-forest-deep);
	margin-right: auto;
}
.gf-brand img{ height: 40px; width: auto; }
.gf-brand-mark{
	width: 42px; height: 42px;
	border-radius: 50%;
	background: conic-gradient(from 200deg, var(--gf-forest), var(--gf-forest-light), var(--gf-accent), var(--gf-forest));
	display: flex; align-items: center; justify-content: center;
	position: relative;
	flex-shrink: 0;
}
.gf-brand-mark::after{
	content: "";
	width: 30px; height: 30px;
	border-radius: 50%;
	background: var(--gf-bg);
	border: 1px dashed rgba(255,255,255,.6);
}
.gf-brand-mark svg{ position: absolute; width: 18px; height: 18px; color: var(--gf-forest-deep); }
.gf-brand-text-en{ display: block; line-height: 1.1; }
.gf-brand-text-hi{ display: block; font-family: var(--gf-font-hindi); font-size: 12.5px; font-weight: 500; color: var(--gf-navy-soft); }

.gf-nav{ display: flex; align-items: center; gap: 4px; }
.gf-nav ul{ display: flex; align-items: center; gap: 2px; }
.gf-nav a{
	display: block;
	padding: 10px 14px;
	font-weight: 600;
	font-size: 14.5px;
	color: var(--gf-navy);
	border-radius: var(--gf-radius-sm);
	transition: background var(--gf-speed) var(--gf-ease), color var(--gf-speed) var(--gf-ease);
}
.gf-nav a:hover, .gf-nav .current-menu-item > a{ background: var(--gf-forest-tint); color: var(--gf-forest-deep); }

.gf-header-actions{ display: flex; align-items: center; gap: 10px; }

.gf-search-toggle, .gf-menu-toggle{
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px;
	border-radius: 50%;
	background: var(--gf-forest-tint);
	color: var(--gf-forest-deep);
	border: none;
	transition: background var(--gf-speed) var(--gf-ease), transform var(--gf-speed) var(--gf-ease);
}
.gf-search-toggle:hover, .gf-menu-toggle:hover{ background: var(--gf-forest); color: #fff; transform: rotate(8deg); }
.gf-search-toggle svg, .gf-menu-toggle svg{ width: 19px; height: 19px; }
.gf-menu-toggle{ display: none; }

.gf-header-search{
	max-height: 0;
	overflow: hidden;
	transition: max-height var(--gf-speed) var(--gf-ease);
	border-top: 1px solid transparent;
}
.gf-header-search.is-open{ max-height: 90px; border-top-color: var(--gf-border); }
.gf-header-search-inner{ padding: 14px 0; }

/* ---------- Mobile nav drawer ---------- */
.gf-mobile-drawer{
	position: fixed; inset: 0;
	background: rgba(14,42,32,.45);
	opacity: 0; pointer-events: none;
	transition: opacity var(--gf-speed) var(--gf-ease);
	z-index: 600;
}
.gf-mobile-drawer.is-open{ opacity: 1; pointer-events: auto; }
.gf-mobile-drawer-panel{
	position: absolute; top: 0; right: 0;
	width: min(320px, 86vw); height: 100%;
	background: var(--gf-bg);
	padding: 24px;
	transform: translateX(100%);
	transition: transform var(--gf-speed) var(--gf-ease);
	overflow-y: auto;
}
.gf-mobile-drawer.is-open .gf-mobile-drawer-panel{ transform: translateX(0); }
.gf-mobile-drawer-close{
	width: 38px; height: 38px; border-radius: 50%;
	background: var(--gf-forest-tint); border: none; color: var(--gf-forest-deep);
	display: flex; align-items: center; justify-content: center; margin-bottom: 20px;
}
.gf-mobile-drawer nav ul{ display: flex; flex-direction: column; gap: 4px; }
.gf-mobile-drawer nav a{ display: block; padding: 12px 8px; font-weight: 600; font-size: 16px; border-bottom: 1px solid var(--gf-border); }

/* ---------- Hero ---------- */
.gf-hero{
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, var(--gf-forest-deep) 0%, var(--gf-forest) 62%, var(--gf-forest-light) 100%);
	color: #fff;
	padding-block: 76px 96px;
}
.gf-hero::before{
	content: "";
	position: absolute;
	top: -180px; right: -180px;
	width: 520px; height: 520px;
	border-radius: 50%;
	border: 1px dashed rgba(255,255,255,.14);
}
.gf-hero::after{
	content: "";
	position: absolute;
	top: -100px; right: -100px;
	width: 340px; height: 340px;
	border-radius: 50%;
	border: 1px dashed rgba(255,255,255,.1);
}
.gf-hero-emblem{
	position: absolute;
	right: 4%;
	top: 50%;
	transform: translateY(-50%);
	width: 300px; height: 300px;
	opacity: .16;
	pointer-events: none;
}
.gf-hero-inner{ position: relative; z-index: 2; max-width: 720px; }
.gf-hero-eyebrow{
	display: inline-flex; align-items: center; gap: 8px;
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.22);
	padding: 7px 14px;
	border-radius: var(--gf-radius-pill);
	font-size: 12.5px; font-weight: 600; letter-spacing: .04em;
	margin-bottom: 22px;
	opacity: 0;
	animation: gfFadeUp .7s var(--gf-ease) .05s forwards;
}
.gf-hero-eyebrow .dot{ width: 7px; height: 7px; border-radius: 50%; background: var(--gf-accent); }

.gf-hero h1{
	font-family: var(--gf-font-display);
	font-size: clamp(32px, 4.6vw, 54px);
	line-height: 1.08;
	font-weight: 600;
	margin: 0 0 16px;
	letter-spacing: -.01em;
	opacity: 0;
	animation: gfFadeUp .7s var(--gf-ease) .15s forwards;
}
.gf-hero h1 em{ font-style: normal; color: var(--gf-accent); }
.gf-hero-hindi{
	font-family: var(--gf-font-hindi);
	font-size: clamp(17px, 2vw, 21px);
	color: rgba(255,255,255,.82);
	margin: 0 0 14px;
	opacity: 0;
	animation: gfFadeUp .7s var(--gf-ease) .22s forwards;
}
.gf-hero p{
	font-size: 16.5px;
	color: rgba(255,255,255,.78);
	max-width: 56ch;
	margin: 0 0 32px;
	opacity: 0;
	animation: gfFadeUp .7s var(--gf-ease) .3s forwards;
}

.gf-hero-search{
	background: #fff;
	border-radius: var(--gf-radius-lg);
	padding: 10px;
	display: flex;
	align-items: center;
	gap: 8px;
	box-shadow: var(--gf-shadow-lg);
	opacity: 0;
	animation: gfFadeUp .7s var(--gf-ease) .38s forwards;
	transition: box-shadow var(--gf-speed) var(--gf-ease);
}
.gf-hero-search:focus-within{ box-shadow: 0 0 0 4px rgba(224,122,63,.35), var(--gf-shadow-lg); }
.gf-hero-search svg{ width: 20px; height: 20px; color: var(--gf-navy-faint); margin-left: 10px; flex-shrink: 0; }
.gf-hero-search input{
	flex: 1;
	border: none; outline: none;
	font-family: var(--gf-font-body);
	font-size: 15.5px;
	padding: 12px 6px;
	background: transparent;
	color: var(--gf-navy);
	min-width: 0;
}
.gf-hero-stats{
	display: flex; gap: 28px; margin-top: 34px; flex-wrap: wrap;
	opacity: 0;
	animation: gfFadeUp .7s var(--gf-ease) .46s forwards;
}
.gf-hero-stat b{ display: block; font-family: var(--gf-font-display); font-size: 26px; color: #fff; }
.gf-hero-stat span{ font-size: 13px; color: rgba(255,255,255,.68); }

@keyframes gfFadeUp{
	from{ opacity: 0; transform: translateY(16px); }
	to{ opacity: 1; transform: translateY(0); }
}

/* ---------- Quick category / action cards ---------- */
.gf-quickgrid{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 16px;
	margin-top: -56px;
	position: relative;
	z-index: 3;
}
.gf-quickcard{
	background: var(--gf-white);
	border: 1px solid var(--gf-border);
	border-radius: var(--gf-radius-md);
	padding: 20px 18px;
	box-shadow: var(--gf-shadow-md);
	transition: transform var(--gf-speed) var(--gf-ease), box-shadow var(--gf-speed) var(--gf-ease), border-color var(--gf-speed) var(--gf-ease);
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.gf-quickcard:hover{
	transform: translateY(-6px);
	box-shadow: var(--gf-shadow-lg);
	border-color: var(--gf-accent);
}
.gf-quickcard-icon{
	width: 44px; height: 44px;
	border-radius: var(--gf-radius-sm);
	background: var(--gf-forest-tint);
	color: var(--gf-forest);
	display: flex; align-items: center; justify-content: center;
	transition: background var(--gf-speed), color var(--gf-speed);
}
.gf-quickcard:hover .gf-quickcard-icon{ background: var(--gf-accent); color: #fff; }
.gf-quickcard-icon svg{ width: 22px; height: 22px; }
.gf-quickcard-title{ font-weight: 700; font-size: 15px; color: var(--gf-navy); }
.gf-quickcard-hi{ font-family: var(--gf-font-hindi); font-size: 13px; color: var(--gf-navy-soft); margin-top: -8px; }
.gf-quickcard-count{ font-size: 12.5px; color: var(--gf-navy-faint); margin-top: auto; }

/* ---------- Form Card (grid) ---------- */
.gf-forms-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
}
.gf-card{
	position: relative;
	background: var(--gf-white);
	border: 1px solid var(--gf-border);
	border-radius: var(--card-radius, var(--gf-radius-md));
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	box-shadow: var(--gf-shadow-sm);
	transition: transform var(--gf-speed) var(--gf-ease), box-shadow var(--gf-speed) var(--gf-ease), border-color var(--gf-speed) var(--gf-ease);
	overflow: hidden;
}
.gf-card::before{
	/* perforated tear-off edge motif */
	content: "";
	position: absolute; top: 0; left: 24px; right: 24px; height: 0;
	border-top: 2px dashed var(--gf-border-strong);
	opacity: 0;
}
.gf-card:hover{
	transform: translateY(-5px);
	box-shadow: var(--gf-shadow-lg);
	border-color: var(--gf-accent);
}
.gf-card-top{ display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.gf-badge{
	display: inline-flex; align-items: center; gap: 6px;
	background: var(--gf-accent-tint);
	color: var(--gf-accent-deep);
	font-size: 11.5px; font-weight: 700; letter-spacing: .04em;
	padding: 5px 10px 5px 6px;
	border-radius: var(--gf-radius-pill);
}
.gf-badge svg{ width: 15px; height: 15px; }
.gf-badge--cat{ background: var(--gf-forest-tint); color: var(--gf-forest-deep); }
.gf-card-updated{ font-size: 12px; color: var(--gf-navy-faint); white-space: nowrap; }

.gf-card-title-hi{ font-family: var(--gf-font-hindi); font-size: 17px; font-weight: 600; color: var(--gf-navy); line-height: 1.4; }
.gf-card-title-en{ font-size: 13.5px; color: var(--gf-navy-soft); line-height: 1.4; }

.gf-card-meta{
	display: flex; flex-wrap: wrap; gap: 10px 16px;
	font-size: 12.5px; color: var(--gf-navy-faint);
	padding-top: 8px;
	border-top: 1px dashed var(--gf-border);
}
.gf-card-meta span{ display: inline-flex; align-items: center; gap: 5px; }
.gf-card-meta svg{ width: 14px; height: 14px; }

.gf-card-actions{ display: flex; gap: 10px; margin-top: 4px; }
.gf-card-actions .gf-btn{ flex: 1; }

/* skeleton loading */
.gf-skeleton{ position: relative; overflow: hidden; background: var(--gf-cream); border-radius: var(--gf-radius-md); }
.gf-skeleton::after{
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
	transform: translateX(-100%);
	animation: gfShimmer 1.4s infinite;
}
@keyframes gfShimmer{ to{ transform: translateX(100%); } }

/* ---------- Reveal-on-scroll ---------- */
.gf-reveal{ opacity: 0; transform: translateY(18px); transition: opacity .6s var(--gf-ease), transform .6s var(--gf-ease); }
.gf-reveal.is-visible{ opacity: 1; transform: translateY(0); }

/* ---------- Category chips / browse categories ---------- */
.gf-cat-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
}
.gf-cat-card{
	display: flex; align-items: center; gap: 14px;
	background: var(--gf-white);
	border: 1px solid var(--gf-border);
	border-radius: var(--gf-radius-md);
	padding: 18px;
	transition: transform var(--gf-speed) var(--gf-ease), box-shadow var(--gf-speed) var(--gf-ease), background var(--gf-speed) var(--gf-ease);
}
.gf-cat-card:hover{ transform: translateY(-4px); box-shadow: var(--gf-shadow-md); background: var(--gf-forest-tint); }
.gf-cat-icon{
	width: 46px; height: 46px; border-radius: 50%;
	background: var(--gf-accent-tint); color: var(--gf-accent-deep);
	display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.gf-cat-icon svg{ width: 22px; height: 22px; }
.gf-cat-name{ font-weight: 700; font-size: 15px; }
.gf-cat-count{ font-size: 12.5px; color: var(--gf-navy-faint); }

/* ---------- Filter / toolbar ---------- */
.gf-toolbar{
	display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
	background: var(--gf-white);
	border: 1px solid var(--gf-border);
	border-radius: var(--gf-radius-md);
	padding: 16px;
	margin-bottom: 28px;
	box-shadow: var(--gf-shadow-sm);
}
.gf-toolbar-search{ display: flex; align-items: center; gap: 8px; flex: 1; min-width: 220px; background: var(--gf-bg); border: 1px solid var(--gf-border); border-radius: var(--gf-radius-sm); padding: 4px 12px; }
.gf-toolbar-search svg{ width: 17px; height: 17px; color: var(--gf-navy-faint); flex-shrink: 0; }
.gf-toolbar-search input{ border: none; background: transparent; outline: none; padding: 9px 4px; font-size: 14.5px; flex: 1; min-width: 0; }
.gf-toolbar-selects{ display: flex; gap: 10px; flex-wrap: wrap; }
.gf-select{
	border: 1px solid var(--gf-border);
	background: var(--gf-bg);
	border-radius: var(--gf-radius-sm);
	padding: 10px 30px 10px 12px;
	font-size: 13.5px; font-weight: 600; color: var(--gf-navy);
	appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%234B5A61' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 12px center;
}

.gf-result-count{ font-size: 13.5px; color: var(--gf-navy-soft); margin-bottom: 18px; }
.gf-result-count b{ color: var(--gf-forest-deep); }

/* ---------- All Forms table ---------- */
.gf-table-wrap{
	background: var(--gf-white);
	border: 1px solid var(--gf-border);
	border-radius: var(--gf-radius-md);
	overflow: hidden;
	box-shadow: var(--gf-shadow-sm);
}
.gf-table{ width: 100%; border-collapse: collapse; font-size: 14px; }
.gf-table thead th{
	text-align: left;
	background: var(--gf-forest);
	color: #fff;
	font-weight: 700;
	font-size: 12.5px;
	letter-spacing: .03em;
	text-transform: uppercase;
	padding: 15px 16px;
	white-space: nowrap;
}
.gf-table tbody tr{ border-bottom: 1px solid var(--gf-border); transition: background var(--gf-speed) var(--gf-ease); }
.gf-table tbody tr:last-child{ border-bottom: none; }
.gf-table tbody tr:hover{ background: var(--gf-forest-tint); }
.gf-table td{ padding: 14px 16px; vertical-align: middle; }
.gf-table td.gf-td-hi{ font-family: var(--gf-font-hindi); font-weight: 600; color: var(--gf-navy); }
.gf-table td.gf-td-en{ color: var(--gf-navy-soft); }
.gf-table .gf-td-actions{ display: flex; gap: 8px; }
.gf-table .gf-td-cat{ }
.gf-pill-cat{
	display: inline-block; font-size: 11.5px; font-weight: 700;
	background: var(--gf-cream); color: var(--gf-forest-deep);
	padding: 4px 10px; border-radius: var(--gf-radius-pill);
	border: 1px solid var(--gf-border);
}
.gf-sno{ color: var(--gf-navy-faint); font-variant-numeric: tabular-nums; }

/* mobile table -> stacked cards */
@media (max-width: 780px){
	.gf-table thead{ display: none; }
	.gf-table, .gf-table tbody, .gf-table tr, .gf-table td{ display: block; width: 100%; }
	.gf-table tr{ padding: 16px; border-bottom: 8px solid var(--gf-bg); }
	.gf-table td{ padding: 4px 0; border: none; }
	.gf-table td.gf-td-hi{ font-size: 16px; }
	.gf-table .gf-td-actions{ margin-top: 10px; }
}

/* ---------- Pagination ---------- */
.gf-pagination{ display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 36px; flex-wrap: wrap; }
.gf-pagination a, .gf-pagination span{
	min-width: 40px; height: 40px; padding: 0 10px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: var(--gf-radius-sm);
	font-weight: 600; font-size: 13.5px;
	border: 1px solid var(--gf-border);
	background: var(--gf-white);
	color: var(--gf-navy);
	transition: background var(--gf-speed) var(--gf-ease), color var(--gf-speed) var(--gf-ease), transform var(--gf-speed) var(--gf-ease);
}
.gf-pagination a:hover{ background: var(--gf-forest); color: #fff; transform: translateY(-2px); }
.gf-pagination .current{ background: var(--gf-accent); border-color: var(--gf-accent); color: #fff; }

/* ---------- Breadcrumbs ---------- */
.gf-breadcrumbs{
	font-size: 13px; color: var(--gf-navy-faint);
	display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
	margin-bottom: 22px;
}
.gf-breadcrumbs a{ color: var(--gf-forest); font-weight: 600; }
.gf-breadcrumbs a:hover{ text-decoration: underline; }
.gf-breadcrumbs .sep{ opacity: .5; }

/* ---------- Single form page ---------- */
.gf-single-wrap{
	display: grid;
	grid-template-columns: minmax(0,1fr) 360px;
	gap: 40px;
	align-items: start;
}
@media (max-width: 960px){ .gf-single-wrap{ grid-template-columns: 1fr; } }

.gf-single-header{ margin-bottom: 28px; }
.gf-single-title-hi{ font-family: var(--gf-font-hindi); font-size: clamp(24px,3vw,32px); font-weight: 700; color: var(--gf-forest-deep); margin: 0 0 6px; }
.gf-single-title-en{ font-size: 17px; color: var(--gf-navy-soft); margin: 0; }

.gf-single-block{
	background: var(--gf-white);
	border: 1px solid var(--gf-border);
	border-radius: var(--gf-radius-md);
	padding: 26px;
	margin-bottom: 22px;
	box-shadow: var(--gf-shadow-sm);
}
.gf-single-block h2{
	font-family: var(--gf-font-display);
	font-size: 19px; font-weight: 600;
	color: var(--gf-forest-deep);
	margin: 0 0 14px;
	display: flex; align-items: center; gap: 10px;
}
.gf-single-block h2 svg{ width: 20px; height: 20px; color: var(--gf-accent); }
.gf-single-block .content{ color: var(--gf-navy-soft); font-size: 15px; line-height: 1.75; }
.gf-single-block .content p{ margin: 0 0 14px; }
.gf-single-block ul.gf-doclist{ display: flex; flex-direction: column; gap: 10px; }
.gf-single-block ul.gf-doclist li{
	display: flex; align-items: flex-start; gap: 10px;
	font-size: 14.5px; color: var(--gf-navy);
	padding: 10px 12px;
	background: var(--gf-bg);
	border-radius: var(--gf-radius-sm);
	border: 1px solid var(--gf-border);
}
.gf-single-block ul.gf-doclist svg{ width: 17px; height: 17px; color: var(--gf-forest); flex-shrink: 0; margin-top: 2px; }

.gf-steps{ counter-reset: gf-step; display: flex; flex-direction: column; gap: 14px; }
.gf-steps li{ list-style: none; display: flex; gap: 14px; }
.gf-steps li::before{
	counter-increment: gf-step; content: counter(gf-step);
	width: 30px; height: 30px; border-radius: 50%;
	background: var(--gf-forest); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 13px; flex-shrink: 0;
}

.gf-related-grid{ display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 14px; }

/* Sidebar preview card */
.gf-sidebar{ position: sticky; top: calc(var(--gf-header-h) + 20px); }
.gf-preview-card{
	background: var(--gf-white);
	border: 1px solid var(--gf-border);
	border-radius: var(--gf-radius-lg);
	overflow: hidden;
	box-shadow: var(--gf-shadow-md);
}
.gf-preview-top{
	background: linear-gradient(155deg, var(--gf-forest-deep), var(--gf-forest));
	padding: 30px 24px;
	color: #fff;
	text-align: center;
	position: relative;
}
.gf-preview-icon{
	width: 74px; height: 74px; border-radius: var(--gf-radius-md);
	background: rgba(255,255,255,.14);
	border: 1px solid rgba(255,255,255,.28);
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto 14px;
}
.gf-preview-icon svg{ width: 34px; height: 34px; }
.gf-preview-top .pdf-label{ font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.7); font-weight: 700; }
.gf-preview-body{ padding: 22px; }
.gf-preview-actions{ display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }
.gf-preview-meta{ display: flex; flex-direction: column; gap: 0; }
.gf-preview-meta-row{
	display: flex; align-items: center; justify-content: space-between;
	padding: 11px 0;
	border-bottom: 1px dashed var(--gf-border);
	font-size: 13.5px;
}
.gf-preview-meta-row:last-child{ border-bottom: none; }
.gf-preview-meta-row .label{ display: flex; align-items: center; gap: 8px; color: var(--gf-navy-faint); }
.gf-preview-meta-row .label svg{ width: 15px; height: 15px; }
.gf-preview-meta-row .value{ font-weight: 700; color: var(--gf-navy); }

.gf-share{ display: flex; gap: 8px; margin-top: 18px; }
.gf-share a{
	width: 38px; height: 38px; border-radius: 50%;
	background: var(--gf-bg); border: 1px solid var(--gf-border);
	display: flex; align-items: center; justify-content: center;
	color: var(--gf-navy-soft);
	transition: background var(--gf-speed), color var(--gf-speed), transform var(--gf-speed);
}
.gf-share a:hover{ background: var(--gf-forest); color: #fff; transform: translateY(-2px); }
.gf-share a svg{ width: 16px; height: 16px; }

/* ---------- Sticky mobile action bar ---------- */
.gf-mobile-actionbar{
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 550;
	display: none;
	gap: 10px;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
	background: rgba(251,248,242,.95);
	backdrop-filter: blur(10px);
	border-top: 1px solid var(--gf-border);
	box-shadow: 0 -8px 24px rgba(14,42,32,.12);
	transform: translateY(100%);
	transition: transform var(--gf-speed) var(--gf-ease);
}
.gf-mobile-actionbar.is-visible{ transform: translateY(0); }
@media (max-width: 780px){
	.single-fp_form .gf-mobile-actionbar{ display: flex; }
	.single-fp_form{ padding-bottom: 74px; }
}

/* ---------- Footer ---------- */
.gf-footer{ background: var(--gf-forest-deep); color: rgba(255,255,255,.82); padding-top: 60px; }
.gf-footer-grid{ display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 36px; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,.1); }
@media (max-width: 780px){ .gf-footer-grid{ grid-template-columns: 1fr 1fr; } }
.gf-footer-brand{ display: flex; align-items: center; gap: 10px; font-family: var(--gf-font-display); font-size: 19px; color: #fff; font-weight: 600; margin-bottom: 12px; }
.gf-footer p{ font-size: 14px; line-height: 1.7; color: rgba(255,255,255,.62); max-width: 34ch; }
.gf-footer h4{ font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.9); margin: 0 0 16px; }
.gf-footer ul{ display: flex; flex-direction: column; gap: 11px; }
.gf-footer a{ font-size: 14px; color: rgba(255,255,255,.66); transition: color var(--gf-speed), padding-left var(--gf-speed); }
.gf-footer a:hover{ color: var(--gf-accent); padding-left: 4px; }
.gf-footer-bottom{ display: flex; justify-content: space-between; align-items: center; padding: 22px 0; font-size: 13px; color: rgba(255,255,255,.5); flex-wrap: wrap; gap: 10px; }
.gf-footer-social{ display: flex; gap: 10px; }
.gf-footer-social a{ width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; }
.gf-footer-social a:hover{ background: var(--gf-accent); }
.gf-footer-social svg{ width: 15px; height: 15px; }

/* ---------- 404 & empty states ---------- */
.gf-empty{ text-align: center; padding: 70px 20px; }
.gf-empty svg{ width: 76px; height: 76px; color: var(--gf-forest-light); margin: 0 auto 20px; }
.gf-empty h1, .gf-empty h2{ font-family: var(--gf-font-display); font-size: 26px; color: var(--gf-forest-deep); margin: 0 0 10px; }
.gf-empty p{ color: var(--gf-navy-soft); margin: 0 0 24px; }

/* ---------- Generic content (page.php) ---------- */
.gf-page-content{ max-width: 820px; margin: 0 auto; }
.gf-page-content h1{ font-family: var(--gf-font-display); font-size: clamp(26px,3.4vw,38px); color: var(--gf-forest-deep); margin-bottom: 20px; }
.gf-page-content .content{ font-size: 16px; line-height: 1.8; color: var(--gf-navy); }
.gf-page-content .content h2{ font-family: var(--gf-font-display); color: var(--gf-forest-deep); margin-top: 34px; }
.gf-page-content .content a{ color: var(--gf-forest); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Comments ---------- */
.gf-comments{ max-width: 820px; margin: 40px auto 0; }
.gf-comments .comment-list{ display: flex; flex-direction: column; gap: 18px; margin-bottom: 30px; }
.gf-comments .comment-body{ background: var(--gf-white); border: 1px solid var(--gf-border); border-radius: var(--gf-radius-md); padding: 18px; }
.gf-comments .comment-form input, .gf-comments .comment-form textarea{
	width: 100%; padding: 12px 14px; border: 1px solid var(--gf-border); border-radius: var(--gf-radius-sm);
	font-family: var(--gf-font-body); font-size: 14.5px; margin-bottom: 12px; background: var(--gf-white);
}

/* ---------- Responsive ---------- */
@media (max-width: 960px){
	.gf-nav{ display: none; }
	.gf-menu-toggle{ display: inline-flex; }
	.gf-quickgrid{ margin-top: -40px; }
}
@media (max-width: 640px){
	.gf-section{ padding-block: 44px; }
	.gf-hero{ padding-block: 52px 84px; }
	.gf-single-block{ padding: 18px; }
}

/* utility */
.gf-mt-0{ margin-top:0; }
.gf-flex-center{ display:flex; align-items:center; justify-content:center; }
