/* ==========================================================================
   agsf-pa — main stylesheet
   Source of truth: Figma "AGSF PA" (desktop 1440px / mobile 430px).
   Desktop values are expressed for a 1440px canvas; mobile ≤ 991px follows
   the "AGSF PA - landing page mobile - DEF" frame.
   ========================================================================== */

/* Fonts — Nunito Sans (variable, self-hosted, SIL OFL 1.1) ---------------- */
@font-face {
	font-family: "Nunito Sans";
	font-style: normal;
	font-display: swap;
	font-weight: 200 1000;
	src: url("../fonts/nunito-sans-latin-opsz-normal.woff2") format("woff2-variations"), url("../fonts/nunito-sans-latin-opsz-normal.woff2") format("woff2");
	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: "Nunito Sans";
	font-style: normal;
	font-display: swap;
	font-weight: 200 1000;
	src: url("../fonts/nunito-sans-latin-ext-opsz-normal.woff2") format("woff2-variations"), url("../fonts/nunito-sans-latin-ext-opsz-normal.woff2") format("woff2");
	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;
}

/* Design tokens (Figma variables) ---------------------------------------- */
:root {
	--color-main-blue: #032048;   /* MAIN BLUE */
	--color-dark-blue: #032b54;   /* DARK BLUE (variable) — section titles, logo */
	--color-dark-blue-2: #031634; /* DARK BLUE as rendered on services / sectors texts */
	--color-light-blue: #00a1ff;  /* LIGHT BLUE — active, icons, labels, hover */
	--color-gold: #d4af37;        /* GOLD */
	--color-grey: #dcdcdc;        /* GREY */
	--color-light-grey: #f8f8f8;  /* LIGHT GREY */
	--color-white: #ffffff;       /* WHITE */
	--color-dark-violet: #231e46; /* DARK VIOLET (declared in Figma, unused) */
	--color-pink: #ff2d55;        /* Accents/Pink — used for form errors only */

	--color-grey-25: rgba(220, 220, 220, 0.25); /* GREY @ 25% */
	--color-grey-50: rgba(220, 220, 220, 0.5);  /* GREY @ 50% */

	--color-primary: var(--color-main-blue);
	--color-secondary: var(--color-light-blue);
	--color-accent: var(--color-gold);
	--color-text: var(--color-main-blue);
	--color-bg: var(--color-white);

	--font-family: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--lh: 1.364; /* line-height "normal" of Nunito Sans (ascent 1011 + descent 353) */

	--radius-pill: 50px;
	--radius-card: 12px;
	--shadow-field: 0 0 10px 0 #dcdcdc;

	/* Desktop horizontal gutter: 144px on the 1440px canvas, content capped at 1152px. */
	--g: max(10%, calc(50% - 576px));
}

/* Base ------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Figma renders "auto" line-height rounded to the nearest pixel
   (15px → 20px, 18px → 25px, 24px → 33px, 40px → 55px…). */
* {
	line-height: round(nearest, calc(1em * var(--lh)), 1px);
}

html {
	line-height: 1.364; /* fallback when round() is unsupported */
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 100px; /* sticky menu height */
}

body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-family);
	font-size: 15px;
	font-weight: 400;
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6, p, ul, ol, figure, address, blockquote {
	margin: 0;
}

h1, h2, h3, h4, h5, h6 {
	font-size: inherit;
	font-weight: inherit;
}

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

picture {
	display: contents;
}

a {
	color: inherit;
}

button {
	font: inherit;
	color: inherit;
}

:focus-visible {
	outline: 2px solid var(--color-light-blue);
	outline-offset: 3px;
}

address {
	font-style: normal;
}

strong,
b {
	font-weight: 800;
}

.agsf-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.agsf-skip-link {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 1000;
	padding: 10px 18px;
	border-radius: var(--radius-pill);
	background: var(--color-main-blue);
	color: var(--color-white);
	font-weight: 700;
	text-decoration: none;
}

.agsf-skip-link:focus {
	top: 16px;
}

.agsf-main:focus {
	outline: none;
}

.agsf-br-mobile {
	display: none;
}

/* Rich text: one empty line (same font size) between blocks, as in Figma. */
.agsf-rich > * + * {
	margin-top: round(nearest, calc(var(--lh) * 1em), 1px);
}

.agsf-rich ul,
.agsf-list {
	margin-bottom: 0;
	padding-left: 22.5px;
	list-style: disc;
}

/* Buttons (Figma components 2 / 3 / 4 / 5) ----------------------------- */
.agsf-btn,
.agsf-form .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 147px;
	height: 40px;
	padding: 0 20px;
	border: 0;
	border-radius: var(--radius-pill);
	background: var(--color-main-blue);
	color: var(--color-white);
	font-family: var(--font-family);
	font-size: 14px;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.agsf-btn:hover,
.agsf-btn:focus-visible,
.agsf-form .wpcf7-submit:hover,
.agsf-form .wpcf7-submit:focus-visible {
	background: var(--color-light-blue);
	color: var(--color-white);
}

.agsf-btn:disabled,
.agsf-form .wpcf7-submit:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Section titles --------------------------------------------------------- */
.agsf-section-title {
	font-size: 40px;
	font-weight: 800;
	color: var(--color-dark-blue);
}

/* ==========================================================================
   Header
   ========================================================================== */
.agsf-header {
	position: relative;
	z-index: 50;
	height: 144px;
	background: var(--color-white);
}

.agsf-header__bar {
	position: relative;
	height: 100%;
}

.agsf-header__brand {
	position: absolute;
	top: 50px;
	left: var(--g);
}

.agsf-logo,
.custom-logo-link {
	display: block;
	width: 150px;
}

.agsf-logo__svg,
.custom-logo {
	width: 150px;
	height: 40px;
	object-fit: contain;
}

.agsf-nav {
	position: absolute;
	top: 57px;
	right: max(6.25%, calc(50% - 630px));
}

.agsf-menu {
	display: flex;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.agsf-menu a {
	display: block;
	color: var(--color-main-blue);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
	transition: color 0.2s ease;
}

.agsf-menu a:hover,
.agsf-menu a:focus-visible,
.agsf-menu a.is-active,
.agsf-menu .current-menu-item > a[href]:not([href*="#"]) {
	color: var(--color-light-blue);
}

.agsf-burger {
	display: none;
}

/* Sticky menu (Figma "Main MENU", 100px bar) — shown once the header has scrolled out. */
.agsf-header.is-sticky .agsf-header__bar {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	right: 0;
	left: 0;
	height: 100px;
	background: rgba(255, 255, 255, 0.92);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 1px 0 rgba(3, 32, 72, 0.08);
	animation: agsf-sticky-in 0.3s ease both;
}

.agsf-header.is-sticky .agsf-header__brand {
	top: 30px;
}

.agsf-header.is-sticky .agsf-nav {
	top: 41px;
}

@keyframes agsf-sticky-in {
	from {
		transform: translateY(-100%);
	}
	to {
		transform: translateY(0);
	}
}

/* ==========================================================================
   Hero
   ========================================================================== */
.agsf-hero {
	position: relative;
	height: 600px;
	overflow: hidden;
	background: var(--color-main-blue);
}

.agsf-hero__media {
	position: absolute;
	inset: 0;
}

.agsf-hero__media img {
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}

.agsf-hero__title {
	position: absolute;
	top: 264px;
	left: calc(50% - 78px);
	width: min(708px, calc(50% + 78px - 24px));
	color: var(--color-white);
	font-size: 36px;
	font-weight: 300;
}

/* ==========================================================================
   Intro + What we do
   ========================================================================== */
.agsf-intro {
	display: flex;
	min-height: 504px;
}

.agsf-intro__main {
	display: flex;
	flex: 0 0 calc(50% + 12px);
	flex-direction: column;
	justify-content: center;
	padding: 40px 24px 40px var(--g);
}

.agsf-intro__lead {
	max-width: 564px;
	font-size: 24px;
	font-weight: 800;
	color: var(--color-main-blue);
}

.agsf-intro__rule {
	display: block;
	width: 270px;
	max-width: 100%;
	height: 3px;
	margin: 40px 0 55px;
	background: var(--color-gold);
}

.agsf-intro__text {
	max-width: 564px;
	font-size: 18px;
	font-weight: 400;
}

.agsf-intro__aside {
	flex: 1 1 auto;
	padding: 79px 24px 48px 98px;
	background: var(--color-grey-25);
}

.agsf-intro__title {
	color: var(--color-gold);
	font-size: 40px;
	font-weight: 800;
}

.agsf-intro__list {
	max-width: 581px;
	margin: 67px 0 0 3px;
	font-size: 15px;
	font-weight: 500;
}

.agsf-intro__label {
	font-weight: 800;
}

.agsf-intro__list .agsf-list {
	margin-top: round(nearest, calc(var(--lh) * 1em), 1px);
}

/* ==========================================================================
   About us
   ========================================================================== */
.agsf-about {
	display: flex;
	min-height: 587px;
	background: var(--color-white);
}

.agsf-about__body {
	flex: 0 0 min(60.2778%, calc(50% + 148px));
	padding: 37px 24px 56px calc(var(--g) + 3px);
	background: var(--color-main-blue);
	color: var(--color-white);
}

.agsf-about__title {
	max-width: 543px;
	color: var(--color-white);
}

.agsf-about__content {
	max-width: 659px;
	margin-top: 60px;
	font-size: 15px;
	font-weight: 500;
}

.agsf-about__content strong,
.agsf-about__content b {
	font-weight: 900;
}

.agsf-about__content ul {
	padding-left: 45px;
}

.agsf-about__media {
	position: relative;
	flex: 1 1 auto;
	overflow: hidden;
	background: var(--color-main-blue);
}

.agsf-about__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}

/* ==========================================================================
   Services
   ========================================================================== */
.agsf-services {
	padding-top: 75px;
}

.agsf-services__title {
	margin-bottom: 39px;
	padding-left: calc(var(--g) + 3px);
}

.agsf-services__grid {
	display: flex;
	flex-wrap: wrap;
}

.agsf-service {
	flex: 0 0 50%;
	min-height: 472px;
	padding: 106px 24px 56px var(--g);
	color: var(--color-dark-blue-2);
	background: var(--color-light-grey);
}

.agsf-service:nth-child(2),
.agsf-service:nth-child(3) {
	background: var(--color-grey-50);
}

.agsf-service:nth-child(even) {
	padding-left: min(5.4167%, 78px);
}

.agsf-service__title {
	display: flex;
	align-items: center;
	gap: 18px;
	font-size: 24px;
	font-weight: 700;
}


.agsf-service__icon {
	flex: 0 0 16px;
	width: 16px;
	height: 18px;
}

.agsf-service__text {
	max-width: 463px;
	margin: 42px 0 0 4px;
	font-size: 15px;
	font-weight: 400;
}


/* Desktop: the paragraphs of a service read as one block (Figma desktop). */
.agsf-service__text p {
	display: inline;
}

.agsf-service__text p + p {
	margin: 0;
}

.agsf-service__text p + p::before {
	content: " ";
}

.agsf-service__text br {
	display: none;
}

/* ==========================================================================
   Sectors (parallax)
   ========================================================================== */
.agsf-sectors {
	position: relative;
	height: 715px;
	overflow: hidden;
	background: var(--color-main-blue);
}

.agsf-sectors__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.agsf-sectors__media img {
	position: absolute;
	top: -10.56%;
	left: 0;
	width: 100%;
	max-width: none;
	height: 121.12%;
	object-fit: cover;
	transform: translate3d(0, var(--agsf-parallax, 0px), 0);
	will-change: transform;
}

.agsf-sectors__card {
	position: absolute;
	top: 290px;
	right: var(--g);
	left: var(--g);
	display: flex;
	min-height: 298px;
	padding: 45px 24px 40px 71px;
	background: var(--color-white);
}

.agsf-sectors__intro {
	flex: 0 1 573px;
	min-width: 0;
	padding-right: 24px;
}

.agsf-sectors__title {
	color: var(--color-dark-blue);
}

.agsf-sectors__text {
	max-width: 451px;
	margin-top: 35px;
	font-size: 16px;
	font-weight: 500;
	color: var(--color-main-blue);
}

.agsf-sectors__list {
	flex: 1 1 auto;
	margin: 64px 0 0;
	padding: 0;
	list-style: none;
	color: var(--color-dark-blue-2);
	font-size: 20px;
	font-weight: 400;
	line-height: 26px;
}

.agsf-sectors__list * {
	line-height: 26px;
}

.agsf-sectors__list li {
	display: flex;
	align-items: flex-start;
	gap: 21px;
}

.agsf-sectors__list li + li {
	margin-top: 20px;
}

.agsf-sectors__icon {
	flex: 0 0 16px;
	width: 16px;
	height: 18px;
	margin-top: 4px;
}

/* ==========================================================================
   Selected works (slider)
   ========================================================================== */
.agsf-works {
	padding: 75px 0 88px;
}

.agsf-works__title {
	margin-bottom: 55px;
	padding-left: calc(var(--g) + 3px);
	color: var(--color-dark-blue-2);
}

.agsf-slider {
	max-width: 1440px;
	margin: 0 auto;
}

.agsf-slider__track {
	position: relative;
	display: flex;
	gap: 24px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.agsf-slider__track::-webkit-scrollbar {
	display: none;
}

.agsf-slider__track:focus-visible {
	outline-offset: -2px;
}

.agsf-work {
	--pad-l: 11.32%;   /* 163px / 1440 */
	--pad-r: 3.47%;    /* 50px  / 1440 */
	--head-x: 4px;
	--head-gap: 30px;
	--text-x: 4px;
	--content-max: 495px;
	--btn-x: 30.9%;    /* button at x=316 of the card */

	position: relative;
	display: flex;
	flex: 0 0 calc((100% - 24px) / 2);
	flex-direction: column;
	min-height: 692px;
	padding: 50px var(--pad-r) 64px var(--pad-l);
	background: var(--color-grey-25);
	color: var(--color-main-blue);
	scroll-snap-align: start;
}

.agsf-work:nth-child(even) {
	--pad-l: 1.39%;    /* 20px */
	--pad-r: 3.54%;    /* 51px */
	--head-x: 8px;
	--head-gap: 28px;
	--text-x: 0px;
	--content-max: 522px;
	--btn-x: 38.46%;   /* button at x=265 of the card */

	scroll-snap-align: none;
}

.agsf-work__head {
	display: flex;
	align-items: flex-start;
	gap: var(--head-gap);
	min-height: 105px;
	margin-left: var(--head-x);
}

.agsf-work__icon {
	flex: 0 0 22px;
	width: 22px;
	height: 26px;
}

.agsf-work__title {
	max-width: 467px;
	font-size: 24px;
	font-weight: 800;
}

.agsf-work__intro {
	max-width: 443px;
	min-height: 150px;
	margin-left: var(--text-x);
	font-size: 16px;
	font-weight: 400;
}

.agsf-work__label {
	margin-left: var(--text-x);
	font-size: 20px;
	font-weight: 800;
}

.agsf-work__content {
	max-width: var(--content-max);
	margin-top: 22px;
	font-size: 15px;
	font-weight: 400;
}

.agsf-work__action {
	display: flex;
	margin-top: auto;
	padding-top: 32px;
	padding-left: var(--btn-x);
}

.agsf-slider__nav {
	display: flex;
	justify-content: center;
	gap: 89px;
	margin-top: 24px;
}

.agsf-slider__btn {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--color-main-blue);
	cursor: pointer;
	transition: color 0.2s ease;
}

.agsf-slider__btn svg {
	width: 11px;
	height: 20px;
}

.agsf-slider__btn:hover,
.agsf-slider__btn:focus-visible {
	color: var(--color-light-blue);
}

/* ==========================================================================
   Call to action
   ========================================================================== */
.agsf-cta {
	position: relative;
	padding: 320px 0 104px;
}

.agsf-cta__media {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 600px;
	overflow: hidden;
	background: var(--color-main-blue);
}

.agsf-cta__media img {
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}

.agsf-cta__card {
	position: relative;
	width: min(900px, calc(100% - 48px));
	min-height: 394px;
	margin: 0 auto;
	padding: 59px 35px 40px;
	background: var(--color-light-grey);
	color: var(--color-main-blue);
	text-align: center;
}

.agsf-cta__text {
	font-size: 36px;
	font-weight: 400;
}

.agsf-cta__link {
	display: inline-flex;
	align-items: center;
	gap: 31px;
	margin-top: 57px;
	color: var(--color-main-blue);
	font-size: 20px;
	font-weight: 700;
	text-decoration: none;
	transition: color 0.2s ease;
}

.agsf-cta__chevron {
	flex: 0 0 11px;
	width: 11px;
	height: 20px;
	position: relative;
	top: 2px;
	color: var(--color-light-blue);
	transition: transform 0.2s ease;
}

.agsf-cta__link:hover,
.agsf-cta__link:focus-visible {
	color: var(--color-light-blue);
}

.agsf-cta__link:hover .agsf-cta__chevron,
.agsf-cta__link:focus-visible .agsf-cta__chevron {
	transform: translateX(4px);
}

/* ==========================================================================
   Footer
   ========================================================================== */
.agsf-footer {
	position: relative;
	min-height: 376px;
	padding-top: 42px;
	background: var(--color-main-blue);
	color: var(--color-white);
	font-size: 13px;
	font-weight: 400;
}

.agsf-footer__bar {
	position: absolute;
	top: -5px;
	left: 50%;
	width: min(564px, 39.17%);
	height: 5px;
	background: var(--color-light-blue);
	transform: translateX(-50%);
}

.agsf-footer__social {
	display: flex;
	justify-content: center;
}

.agsf-linkedin {
	display: block;
	width: 50px;
	height: 50px;
	color: var(--color-light-grey);
	transition: color 0.2s ease;
}

a.agsf-linkedin:hover,
a.agsf-linkedin:focus-visible,
a.agsf-linkedin:active {
	color: var(--color-light-blue);
}

.agsf-linkedin__icon {
	width: 50px;
	height: 50px;
}

.agsf-footer__cols {
	display: flex;
	gap: 208px;
	margin-top: 59px;
	padding-left: max(24px, calc(50% - 291px));
	padding-right: 24px;
}

.agsf-footer__address,
.agsf-footer__legal {
	flex: 0 1 267px;
	min-width: 0;
}

.agsf-footer__company {
	font-weight: 800;
}

.agsf-footer a {
	color: inherit;
}

.agsf-footer__tel {
	text-decoration: none;
}

.agsf-footer__mail {
	text-decoration: underline;
	text-underline-position: from-font;
	text-decoration-skip-ink: none;
}

.agsf-footer a:hover,
.agsf-footer a:focus-visible {
	color: var(--color-light-blue);
}

.agsf-footer__credit {
	position: absolute;
	top: 309px;
	right: 0;
	left: 0;
	color: var(--color-gold);
	text-align: center;
}

.agsf-footer__credit a {
	text-decoration: none;
}

/* ==========================================================================
   Contact popup (Contact Form 7)
   ========================================================================== */
html.agsf-dialog-open,
html.agsf-dialog-open body {
	overflow: hidden;
}

.agsf-dialog {
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 24px 16px;
	border: 0;
	background: transparent;
	color: var(--color-main-blue);
	overflow-y: auto;
	overscroll-behavior: contain;
}

.agsf-dialog[open] {
	display: flex;
	align-items: safe center;
	justify-content: center;
}

.agsf-dialog::backdrop {
	background: rgba(3, 32, 72, 0.6);
}

.agsf-dialog__panel {
	position: relative;
	width: 100%;
	margin: auto;
	border: 1px solid var(--color-main-blue);
	border-radius: var(--radius-card);
	background: var(--color-white);
	box-shadow: var(--shadow-field);
}

.agsf-dialog__panel[hidden] {
	display: none;
}

.agsf-dialog__panel--form {
	max-width: 885px;
	padding: 57px 38px 42px 37px;
}

.agsf-dialog__title {
	color: var(--color-main-blue);
	font-size: 24px;
	font-weight: 800;
	text-align: center;
}

.agsf-dialog__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.agsf-dialog__close span[aria-hidden]::before,
.agsf-dialog__close span[aria-hidden]::after {
	content: "";
	position: absolute;
	top: 15px;
	left: 7px;
	width: 18px;
	height: 2px;
	border-radius: 2px;
	background: var(--color-main-blue);
	transform: rotate(45deg);
	transition: background-color 0.2s ease;
}

.agsf-dialog__close span[aria-hidden]::after {
	transform: rotate(-45deg);
}

.agsf-dialog__close:hover span[aria-hidden]::before,
.agsf-dialog__close:hover span[aria-hidden]::after,
.agsf-dialog__close:focus-visible span[aria-hidden]::before,
.agsf-dialog__close:focus-visible span[aria-hidden]::after {
	background: var(--color-light-blue);
}

/* Form ------------------------------------------------------------------- */
.agsf-dialog .wpcf7 {
	margin-top: 62px;
}

.agsf-form p {
	margin: 0;
}

.agsf-form br {
	display: none;
}

.agsf-form__fields {
	display: grid;
	gap: 14px;
}

.agsf-field {
	position: relative;
}

.agsf-field .wpcf7-form-control-wrap {
	display: block;
}

.agsf-form input[type="text"],
.agsf-form input[type="email"],
.agsf-form input[type="tel"],
.agsf-form textarea {
	display: block;
	width: 100%;
	margin: 0;
	border: 1px solid transparent;
	border-radius: var(--radius-card);
	background: var(--color-white);
	color: var(--color-main-blue);
	font-family: var(--font-family);
	font-weight: 500;
	appearance: none;
	transition: border-color 0.2s ease;
}

.agsf-form input[type="text"],
.agsf-form input[type="email"],
.agsf-form input[type="tel"] {
	height: 72px;
	padding: 0 24px 0 50px;
	font-size: 16px;
	box-shadow: var(--shadow-field);
}

.agsf-form input::placeholder,
.agsf-form textarea::placeholder {
	color: var(--color-light-blue);
	opacity: 1;
}

.agsf-form input:focus,
.agsf-form textarea:focus {
	outline: none;
	border-color: var(--color-light-blue);
	box-shadow: none;
}

.agsf-form input:focus-visible {
	outline: none;
}

/* Message: label inside the card, text below (Figma "What can we help you with?"). */
.agsf-field--textarea {
	min-height: 252px;
	border: 1px solid transparent;
	border-radius: var(--radius-card);
	background: var(--color-white);
	box-shadow: var(--shadow-field);
	transition: border-color 0.2s ease;
}

.agsf-field--textarea:focus-within {
	border-color: var(--color-light-blue);
	box-shadow: none;
}

.agsf-field__label {
	position: absolute;
	top: 24px;
	left: 50px;
	z-index: 1;
	color: var(--color-light-blue);
	font-size: 16px;
	font-weight: 500;
	pointer-events: none;
}

.agsf-form .agsf-field--textarea textarea {
	height: 250px;
	padding: 52px 44px 20px 50px;
	border: 0;
	background: transparent;
	font-size: 14px;
	font-weight: 400;
	resize: none;
}

.agsf-form .agsf-field--textarea textarea:focus {
	border: 0;
}

.agsf-form__actions {
	position: relative;
	display: flex;
	justify-content: center;
	margin-top: 46px;
}

.agsf-form .wpcf7-submit {
	min-width: 120px;
	width: 120px;
}

.agsf-form .wpcf7-spinner {
	position: absolute;
	top: 8px;
	left: calc(50% + 72px);
	margin: 0;
}

.agsf-form .wpcf7-not-valid {
	border-color: var(--color-pink) !important;
}

.agsf-field--textarea:has(.wpcf7-not-valid) {
	border-color: var(--color-pink);
}

.agsf-form .wpcf7-not-valid-tip {
	position: absolute;
	bottom: 6px;
	left: 50px;
	color: var(--color-pink);
	font-size: 12px;
	font-weight: 500;
}

.agsf-form .wpcf7-response-output {
	margin: 20px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	color: var(--color-main-blue);
	font-size: 14px;
	text-align: center;
}

.agsf-form.invalid .wpcf7-response-output,
.agsf-form.unaccepted .wpcf7-response-output,
.agsf-form.failed .wpcf7-response-output,
.agsf-form.aborted .wpcf7-response-output,
.agsf-form.spam .wpcf7-response-output {
	color: var(--color-pink);
}

.agsf-form.sent .wpcf7-response-output {
	display: none;
}

.agsf-form-missing {
	margin-top: 40px;
	text-align: center;
}

.agsf-form-missing p + p {
	margin-top: 16px;
}

/* Success ---------------------------------------------------------------- */
.agsf-dialog__panel--success {
	max-width: 608px;
	min-height: 356px;
	padding: 60px 32px 60px;
	text-align: center;
}

.agsf-dialog__check {
	position: relative;
	display: block;
	width: 50px;
	height: 50px;
	margin: 0 auto;
	border-radius: 50px;
	background: var(--color-light-blue);
}

.agsf-dialog__check::before,
.agsf-dialog__check::after {
	content: "";
	position: absolute;
	top: 17px;
	width: 4px;
	height: 16px;
	border-radius: 10px;
	background: var(--color-white);
}

.agsf-dialog__check::before {
	left: 19px;
	transform: rotate(-45deg);
}

.agsf-dialog__check::after {
	left: 27px;
	transform: rotate(45deg);
}

.agsf-dialog__success-title {
	margin-top: 48px;
	font-size: 24px;
	font-weight: 800;
}

.agsf-dialog__success-text {
	margin-top: 33px;
	font-size: 24px;
	font-weight: 500;
}

/* ==========================================================================
   Inner pages (posts, pages, projects, 404)
   ========================================================================== */
.agsf-page {
	padding: 40px 0 120px;
}

.agsf-page__inner {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 24px;
}

/* Spacing between blocks on inner pages (404, search, posts). */
.agsf-page__inner > p + p,
.agsf-entry > p + p {
	margin-top: 24px;
}

.agsf-page__inner > p:has(> .agsf-btn) {
	margin-top: 40px;
}

.agsf-page__title {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-bottom: 40px;
}

.agsf-page__icon {
	flex: 0 0 22px;
	width: 22px;
	height: 26px;
}

.agsf-entry + .agsf-entry {
	margin-top: 48px;
}

.agsf-entry__title {
	font-size: 24px;
	font-weight: 800;
}

.agsf-entry__title a {
	text-decoration: none;
}

.agsf-entry__title a:hover {
	color: var(--color-light-blue);
}

.agsf-entry__intro,
.agsf-entry__excerpt {
	margin: 16px 0 32px;
	font-size: 16px;
}

.agsf-entry__content {
	margin-top: 20px;
	font-size: 16px;
}

.agsf-entry__content a {
	color: var(--color-light-blue);
}

.agsf-entry__thumb {
	margin: 32px 0;
}

.agsf-entry__back {
	margin-top: 48px;
}

/* ==========================================================================
   Mobile & tablet — Figma "AGSF PA - landing page mobile - DEF" (430px)
   ========================================================================== */
@media (max-width: 991px) {
	:root {
		/* 24px gutter on a 430px screen, content capped at 640px on tablets. */
		--g: max(24px, calc(50% - 320px));
	}

	.agsf-br-mobile {
		display: inline;
	}

	.agsf-section-title {
		font-size: 36px;
	}

	/* Header -------------------------------------------------------------- */
	html {
		scroll-padding-top: 80px;
	}

	.agsf-header {
		height: 152px;
	}

	.agsf-header.is-sticky .agsf-header__bar {
		height: 80px;
	}

	.agsf-header.is-sticky .agsf-header__brand {
		top: 20px;
	}

	.agsf-header.is-sticky .agsf-burger {
		top: 20px;
	}

	.agsf-header__brand {
		top: 75px;
		left: calc(var(--g) + 29px);
	}

	.agsf-burger {
		position: absolute;
		top: 75px;
		right: calc(var(--g) - 10px);
		z-index: 2;
		display: block;
		width: 50px;
		height: 40px;
		padding: 10px;
		border: 0;
		background: transparent;
		cursor: pointer;
	}

	.agsf-burger__line {
		position: absolute;
		left: 10px;
		width: 30px;
		height: 4px;
		border-radius: 3px;
		background: var(--color-gold);
		transition: transform 0.25s ease, opacity 0.2s ease, top 0.25s ease;
	}

	.agsf-burger__line:nth-child(1) { top: 10px; }
	.agsf-burger__line:nth-child(2) { top: 18px; }
	.agsf-burger__line:nth-child(3) { top: 26px; }

	.agsf-burger[aria-expanded="true"] .agsf-burger__line:nth-child(1) {
		top: 18px;
		transform: rotate(45deg);
	}

	.agsf-burger[aria-expanded="true"] .agsf-burger__line:nth-child(2) {
		opacity: 0;
	}

	.agsf-burger[aria-expanded="true"] .agsf-burger__line:nth-child(3) {
		top: 18px;
		transform: rotate(-45deg);
	}

	.agsf-nav {
		position: fixed;
		top: 152px;
		right: 0;
		bottom: 0;
		left: 0;
		display: flex;
		align-items: flex-start;
		justify-content: center;
		padding: 48px var(--g);
		background: var(--color-white);
		overflow-y: auto;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-12px);
		transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
	}

	.agsf-menu-open .agsf-header {
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
	}

	.agsf-menu-open .agsf-main {
		margin-top: 152px;
	}

	.admin-bar.agsf-menu-open .agsf-header {
		top: var(--wp-admin--admin-bar--height, 32px);
	}

	.agsf-menu-open .agsf-nav {
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: opacity 0.25s ease, transform 0.25s ease;
	}

	.agsf-menu {
		flex-direction: column;
		align-items: center;
		gap: 28px;
	}

	.agsf-menu a {
		font-size: 20px;
	}

	/* Hero ---------------------------------------------------------------- */
	.agsf-hero {
		height: 241px;
	}

	.agsf-hero__media img {
		position: absolute;
		top: 0;
		left: -20%;
		width: 134.42%;
	}

	.agsf-hero__title {
		top: 50%;
		left: calc(var(--g) + 54px);
		width: auto;
		max-width: calc(100% - var(--g) - 54px - 8px);
		font-size: 26px;
		transform: translateY(-50%);
	}

	/* Intro & What we do ------------------------------------------------- */
	.agsf-intro {
		flex-direction: column;
		min-height: 0;
	}

	.agsf-intro__main {
		flex: none;
		padding: 57px var(--g) 40px;
	}

	.agsf-intro__lead {
		max-width: 382px;
		font-size: 20px;
	}

	.agsf-intro__rule {
		width: 283px;
		margin: 51px 0 44px;
	}

	.agsf-intro__text {
		max-width: 382px;
	}

	.agsf-intro__aside {
		padding: 75px var(--g) 56px;
	}

	.agsf-intro__title {
		font-size: 36px;
	}

	.agsf-intro__list {
		max-width: 379px;
		margin-top: 75px;
		font-size: 18px;
	}

	.agsf-intro__list .agsf-list,
	.agsf-rich ul,
	.agsf-list {
		padding-left: 27px;
	}

	/* About -------------------------------------------------------------- */
	.agsf-about {
		flex-direction: column;
		min-height: 0;
	}

	.agsf-about__media {
		order: -1;
		flex: none;
		height: 444px;
	}

	.agsf-about__body {
		flex: none;
		padding: 83px var(--g) 91px;
	}

	.agsf-about__content {
		max-width: 382px;
		margin-top: 84px;
		font-size: 18px;
	}

	.agsf-about__content ul {
		padding-left: 54px;
	}

	/* Services ----------------------------------------------------------- */
	.agsf-services {
		padding-top: 83px;
	}

	.agsf-services__title {
		margin-bottom: 84px;
		padding-left: var(--g);
	}

	.agsf-service,
	.agsf-service:nth-child(even) {
		flex: 0 0 100%;
		min-height: 0;
		padding: 47px var(--g) 52px;
	}

	.agsf-service:nth-child(odd) {
		background: var(--color-light-grey);
	}

	.agsf-service:nth-child(even) {
		background: var(--color-grey-50);
	}

	.agsf-service__text {
		max-width: 382px;
		margin: 46px 0 0 4px;
		font-size: 18px;
	}

	/* Mobile: paragraphs and line breaks are kept (Figma mobile). */
	.agsf-service__text p {
		display: block;
	}

	.agsf-service__text p + p {
		margin-top: round(nearest, calc(var(--lh) * 1em), 1px);
	}

	.agsf-service__text p + p::before {
		content: none;
	}

	.agsf-service__text br {
		display: inline;
	}

	/* Sectors ------------------------------------------------------------ */
	.agsf-sectors {
		height: auto;
		padding-top: 249px;
		overflow: visible;
		background: transparent;
	}

	.agsf-sectors__media {
		bottom: auto;
		height: 494px;
		background: var(--color-main-blue);
	}

	.agsf-sectors__media img {
		left: -95.12%;
		width: 231.4%;
	}

	.agsf-sectors__card {
		position: relative;
		top: auto;
		right: auto;
		left: auto;
		flex-direction: column;
		min-height: 0;
		margin: 0 calc(var(--g) - 3px) 0 var(--g);
		padding: 60px 30px 21px 34px;
	}

	.agsf-sectors__intro {
		flex: none;
		padding-right: 0;
	}

	.agsf-sectors__text {
		max-width: 321px;
		margin-top: 56px;
		font-size: 18px;
	}

	.agsf-sectors__list {
		margin-top: 56px;
		padding-left: 34px;
	}

	.agsf-sectors__list li {
		gap: 28px;
	}

	.agsf-sectors__list li + li {
		margin-top: 22.5px;
	}

	/* Selected works ------------------------------------------------------ */
	.agsf-works {
		padding: 57px 0 39px;
	}

	.agsf-works__title {
		margin-bottom: 84px;
		padding-left: var(--g);
	}

	.agsf-slider {
		max-width: none;
	}

	.agsf-slider__track {
		padding: 0 var(--g) 0 calc(var(--g) + 1px);
		scroll-padding-left: calc(var(--g) + 1px);
	}

	.agsf-work,
	.agsf-work:nth-child(even) {
		--head-x: 0px;
		--head-gap: 30px;
		--text-x: 6px;

		flex: 0 0 100%;
		min-height: 974px;
		padding: 50px 24px 58px 23px;
		scroll-snap-align: start;
	}

	.agsf-work__head {
		min-height: 157px;
	}

	.agsf-work__title {
		max-width: 286px;
	}

	.agsf-work__intro {
		max-width: 332px;
		min-height: 216px;
		font-size: 18px;
	}

	.agsf-work__label {
		margin-left: 4px;
		font-size: 18px;
	}

	.agsf-work__content {
		max-width: 334px;
		margin-top: 29px;
		font-size: 18px;
	}

	.agsf-work__action {
		justify-content: center;
		padding-top: 48px;
		padding-left: 0;
	}

	.agsf-work__btn {
		min-width: 194px;
		padding: 0 27px;
		font-size: 18px;
	}

	.agsf-slider__nav {
		gap: 128px;
		margin-top: 40px;
	}

	/* CTA ---------------------------------------------------------------- */
	.agsf-cta {
		padding: 246px 0 95px;
	}

	.agsf-cta__media {
		height: 526px;
	}

	.agsf-cta__media img {
		position: absolute;
		top: 0;
		left: -117.67%;
		width: 305.35%;
		object-fit: fill; /* Figma mobile frame: 1313 × 526 px, image slightly stretched. */
	}

	.agsf-cta__card {
		width: auto;
		margin: 0 calc(var(--g) - 0px) 0 calc(var(--g) + 3px);
		padding: 38px 24px 48px 21px;
	}

	.agsf-cta__text {
		max-width: 334px;
		margin: 0 auto;
		font-size: 24px;
	}

	.agsf-cta__link {
		gap: 23px;
		margin-top: 51px;
	}

	/* Footer ------------------------------------------------------------- */
	.agsf-footer {
		min-height: 607px;
		padding: 60px var(--g) 80px;
		text-align: center;
	}

	.agsf-footer__bar {
		width: 215px;
	}

	.agsf-footer__cols {
		flex-direction: column;
		align-items: center;
		gap: 57px;
		margin-top: 60px;
		padding: 0;
	}

	.agsf-footer__address {
		flex: none;
		font-size: 18px;
	}

	.agsf-footer__legal {
		flex: none;
		max-width: 290px;
		font-size: 16px;
	}

	.agsf-footer__credit {
		position: static;
		margin-top: 41px;
		font-size: 16px;
	}

	/* Popup -------------------------------------------------------------- */
	.agsf-dialog {
		padding: 16px 12px;
	}

	.agsf-dialog__panel--form {
		padding: 56px 16px 32px;
	}

	.agsf-dialog .wpcf7 {
		margin-top: 32px;
	}

	.agsf-form input[type="text"],
	.agsf-form input[type="email"],
	.agsf-form input[type="tel"] {
		padding-left: 24px;
	}

	.agsf-field__label {
		left: 24px;
	}

	.agsf-form .agsf-field--textarea textarea {
		padding: 52px 20px 20px 24px;
	}

	.agsf-form .wpcf7-not-valid-tip {
		left: 24px;
	}

	.agsf-form__actions {
		margin-top: 32px;
	}

	.agsf-dialog__panel--success {
		min-height: 0;
		padding: 48px 20px;
	}

	.agsf-dialog__success-title {
		margin-top: 36px;
	}

	.agsf-dialog__success-text {
		margin-top: 24px;
		font-size: 20px;
	}
}

/* Reduced motion ---------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}

	.agsf-slider__track {
		scroll-behavior: auto;
	}

	.agsf-sectors__media img {
		transform: none;
	}
}
