/* avAdvisors Elementor Widgets — v2 Figma-matched
   ----------------------------------------------------------------- */
:root {
	--avadv-navy:       #013d57;
	--avadv-navy-dark:  #023953;
	--avadv-navy-darkest: #064c6d;
	--avadv-accent:     #ec9c6f;
	--avadv-accent-dark: #d78e65;
	--avadv-teal:       #68a5af;
	--avadv-teal-dark:  #1d6381;
	--avadv-cream:      #f8f5f1;
	--avadv-cream-alt:  #f2efeb;
	--avadv-ink:        #6b6a72;
	--avadv-body:       #3b4e57;
	--avadv-heading:    #38454a;
	--avadv-muted:      #949494;
	--avadv-serif:      "Zen Old Mincho", Georgia, serif;
	--avadv-sans:       "Red Hat Display", -apple-system, BlinkMacSystemFont, sans-serif;
	--avadv-text:       "Red Hat Text", -apple-system, BlinkMacSystemFont, sans-serif;
}

.avadv-header, .avadv-hero, .avadv-stats, .avadv-partners, .avadv-services,
.avadv-band, .avadv-difference, .avadv-founder, .avadv-testimonial,
.avadv-contact, .avadv-footer {
	font-family: var(--avadv-text);
	color: var(--avadv-ink);
	box-sizing: border-box;
}
.avadv-header *, .avadv-hero *, .avadv-stats *, .avadv-partners *, .avadv-services *,
.avadv-band *, .avadv-difference *, .avadv-founder *, .avadv-testimonial *,
.avadv-contact *, .avadv-footer * { box-sizing: border-box; }

/* Prevent 100vw full-bleed sections from causing horizontal scroll.
   Uses `clip` (not `hidden`) so it doesn't create a scroll container that
   would break Lenis smooth scrolling. */
/* Contain the full-bleed 100vw sections WITHOUT putting overflow on the root —
   overflow-x:clip on html/body makes Chromium (Linux) auto-hide the scrollbar
   knob. Clipping on the Elementor page wrapper avoids that; the browser keeps
   its normal scrollbar, the fixed header still escapes (no transform here). */
html, body { max-width: 100%; }
.elementor { overflow-x: clip; }

/* Lenis smooth-scroll base styles */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* Full-bleed ---------------------------------------------------- */
.avadv-header, .avadv-hero, .avadv-stats, .avadv-partners, .avadv-services,
.avadv-band, .avadv-difference, .avadv-founder, .avadv-testimonial,
.avadv-contact, .avadv-footer {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.avadv-container { width: 100%; max-width: 1500px; margin: 0 auto; padding: 0 40px; }

/* Buttons -------------------------------------------------------- */
.avadv-btn {
	display: inline-block; font-family: var(--avadv-sans); font-size: 15px; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; text-decoration: none; cursor: pointer;
	padding: 19px 36px; border-radius: 3px; border: 1px solid transparent;
	transition: all .2s ease; line-height: 1;
}
.avadv-hero .avadv-btn { border-radius: 14px; padding: 20px 44px; }
.avadv-btn--solid { background: var(--avadv-accent); color: #fff; }
.avadv-btn--solid:hover { background: var(--avadv-accent-dark); }
.avadv-header .avadv-btn { border-radius: 15px; }
.avadv-btn--outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.avadv-btn--outline:hover { background: rgba(255,255,255,.12); }

.avadv-eyebrow {
	display: block; font-size: 13px; font-weight: 700; letter-spacing: .14em;
	text-transform: uppercase; color: var(--avadv-accent-dark); margin-bottom: 10px;
	font-family: var(--avadv-text);
}
.avadv-eyebrow-rule {
	position: relative; display: flex; align-items: center;
	width: 100%; height: 12px; margin-bottom: 32px;
}
.avadv-eyebrow-rule::after {
	content: ''; flex: 1; height: 1px; background: rgba(56,69,74,.15); margin-left: 0;
}
.avadv-eyebrow-rule__decor {
	display: block; width: 60px; height: 8px; flex: none; position: relative; z-index: 1; margin-left: -9px;
}

/* Section titles ------------------------------------------------- */
.avadv-section-title { font-family: var(--avadv-serif); font-weight: 700; line-height: 1.05; }
.avadv-section-title--left { font-size: 61px; color: var(--avadv-heading); text-align: left; margin: 0 0 36px; }
.avadv-section-title--light { font-size: 76px; color: #fff; text-align: center; margin: 0 0 14px; }

/* Header --------------------------------------------------------- */
.avadv-header { position: absolute; top: 0; left: 0; right: 0; z-index: 20; padding: 34px 0; transition: background .35s ease, padding .35s ease, box-shadow .35s ease, backdrop-filter .35s ease; }
/* Frosted-glass sticky state (toggled by effects.js once scrolled) */
.avadv-header--scrolled {
	position: fixed; padding: 16px 0;
	background: rgba(8, 46, 66, .45);
	-webkit-backdrop-filter: saturate(160%) blur(16px);
	backdrop-filter: saturate(160%) blur(16px);
	border-bottom: none;
	box-shadow: 0 8px 30px rgba(1, 31, 46, .25);
}
.avadv-header--scrolled .avadv-header__logo { height: 56px; transition: height .35s ease; }
.avadv-header__inner { display: flex; align-items: center; justify-content: flex-start; }
.avadv-header__brand { display: flex; align-items: center; text-decoration: none; }
.avadv-header__logo { height: 76px; width: auto; display: block; }
.avadv-header__nav { display: flex; align-items: center; gap: 40px; margin-left: auto; margin-right: 48px; }
.avadv-header__nav a { position: relative; color: #fff; font-family: var(--avadv-sans); font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; opacity: .95; transition: opacity .2s; padding-top: 3px; }
.avadv-header__nav a::after { content: ""; position: absolute; left: 0; bottom: -7px; width: 100%; height: 2px; background: var(--avadv-accent); transform: scaleX(0); transform-origin: left center; transition: transform .28s ease; }
.avadv-header__nav a:hover { opacity: 1; }
.avadv-header__nav a:hover::after { transform: scaleX(1); }

/* Mobile nav toggle (hamburger) — hidden until tablet breakpoint */
.avadv-header__nav-cta { display: none; }
.avadv-header__toggle { display: none; appearance: none; background: none; border: 0; cursor: pointer; width: 44px; height: 44px; padding: 10px; margin-left: 18px; flex-direction: column; align-items: flex-end; justify-content: center; gap: 5px; }
/* Thin, uneven bars — modern asymmetric hamburger. */
.avadv-header__toggle-bar { display: block; height: 2px; background: #fff; border-radius: 99px; transition: width .3s ease, transform .3s ease, opacity .2s ease; }
.avadv-header__toggle-bar:nth-child(1) { width: 26px; }
.avadv-header__toggle-bar:nth-child(2) { width: 17px; }
.avadv-header__toggle-bar:nth-child(3) { width: 22px; }
/* On open, equalize the bars so they form a clean, symmetric X. */
.avadv-header--menu-open .avadv-header__toggle-bar { width: 26px; }
.avadv-header--menu-open .avadv-header__toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.avadv-header--menu-open .avadv-header__toggle-bar:nth-child(2) { opacity: 0; }
.avadv-header--menu-open .avadv-header__toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Hero ----------------------------------------------------------- */
.avadv-hero {
	position: relative; overflow: hidden; min-height: 100vh; display: flex; align-items: flex-start; margin-top: -2px;
	background-image: var(--avadv-hero-bg); background-size: cover; background-position: center 40%; color: #fff;
}
/* Scaling image layer (driven by --avadv-hero-scale from effects.js) */
.avadv-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 0;
	background: inherit; background-size: cover; background-position: center 40%;
	transform: translate3d(0, calc(var(--avadv-hero-shift, 0px) * -1), 0) scale(var(--avadv-hero-scale, 1)); transform-origin: center center;
	will-change: transform;
}

/* Gradient tint over the image */
.avadv-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to bottom, rgba(1,61,87,.55) 0%, rgba(1,61,87,0) 200px), linear-gradient(90deg, rgba(1,61,87,.40), rgba(1,61,87,.03)); }
.avadv-hero__inner { position: relative; z-index: 2; padding-top: 230px; }

/* Rotating circular badge (bottom-right of hero) */
.avadv-badge { position: absolute; right: 6%; bottom: 8%; z-index: 2; width: 200px; height: 200px; pointer-events: none; }
.avadv-badge__ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: avadv-badge-spin 18s linear infinite; transform-origin: center; }
.avadv-badge__ring text { fill: #fff; font-family: var(--avadv-sans); font-size: 14px; font-weight: 600; letter-spacing: .18em; }
.avadv-badge__mark { position: absolute; top: 50%; left: 50%; width: 64px; height: auto; transform: translate(-50%, -50%); }
@keyframes avadv-badge-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .avadv-badge__ring { animation: none; } }
.avadv-hero__title { font-family: var(--avadv-serif); font-weight: 500; font-size: 96px; line-height: 1; margin: 0 0 30px; max-width: 900px; }
.avadv-hero__sub { font-family: var(--avadv-text); font-size: 23px; font-weight: 400; max-width: none; white-space: nowrap; margin: 0 0 42px; opacity: .85; line-height: 1.3; }

/* Trust Signals / Stats ------------------------------------------ */
.avadv-stats { background: var(--avadv-cream); padding: 50px 0; }
.avadv-stats__label { display: flex; align-items: center; gap: 10px; margin-bottom: 24px; }
.avadv-stats__label span { font-family: var(--avadv-text); font-size: 20px; font-weight: 500; color: var(--avadv-body); }
.avadv-stats__label svg { width: 27px; height: 27px; }
.avadv-stats__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.avadv-stat { display: flex; align-items: center; gap: 20px; background: #fff; padding: 24px 28px; border-radius: 11.02px; box-shadow: 0 6px 20px rgba(1,61,87,.06); }
.avadv-stat__icon { width: 121px; height: 121px; border-radius: 24px; flex: none; display: flex; align-items: center; justify-content: center; color: #fff; }
/* Letterbox every glyph into the same centered 46% box so wide (plane) and tall
   (hourglass) icons read as the same visual size and never touch the square edges.
   width/height:auto + max-* lets each viewBox scale to fit, preserving aspect ratio. */
.avadv-stat__icon svg { width: auto; height: auto; max-width: 46%; max-height: 46%; }
.avadv-stat:nth-child(1) .avadv-stat__icon { background: linear-gradient(145deg, #99c4c7, #96cfd3); }
.avadv-stat:nth-child(2) .avadv-stat__icon { background: linear-gradient(145deg, #076d97, #1a5b76); }
.avadv-stat:nth-child(3) .avadv-stat__icon { background: linear-gradient(145deg, #0a4f6e, #023953); }
.avadv-stat__value { font-family: var(--avadv-serif); font-size: 25px; color: var(--avadv-teal-dark); font-weight: 700; margin-bottom: 2px; }
.avadv-stat__label { font-family: var(--avadv-text); font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--avadv-accent-dark); }

/* Partners ------------------------------------------------------- */
.avadv-partners { background: var(--avadv-cream); padding: 70px 0 100px; }
.avadv-partners__heading { font-family: var(--avadv-serif); font-size: 76px; font-weight: 500; color: var(--avadv-body); line-height: 1.12; margin: 0 0 40px; max-width: 900px; white-space: nowrap; }
.avadv-partners__layout { display: grid; grid-template-columns: 440px 1fr; gap: 22px; align-items: stretch; }
.avadv-partners__media { height: 100%; }
.avadv-partners__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; display: block; }
.avadv-partners__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.avadv-card { background: #fff; padding: 40px; border-radius: 6px; box-shadow: 0 6px 20px rgba(1,61,87,.05); display: flex; flex-direction: column; justify-content: center; }
.avadv-card__icon { display: flex; align-items: center; justify-content: flex-start; width: 70px; height: 53px; margin-bottom: 26px; color: var(--avadv-accent); }
.avadv-card__text { font-family: var(--avadv-text); font-size: 21px; font-weight: 400; line-height: 1.5; color: var(--avadv-ink); margin: 0; }
.avadv-card__title { font-weight: 700; color: var(--avadv-body); }

/* Services ------------------------------------------------------- */
.avadv-services { position: relative; overflow: hidden; background: var(--avadv-navy); padding: 100px 0 110px; }
.avadv-services__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.avadv-services__overlay { position: absolute; inset: 0; z-index: 1; background: rgba(2,57,83,.82); }
.avadv-services__overlay::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at center, transparent 30%, rgba(2,40,60,.5) 100%); }
.avadv-services__intro { text-align: center; color: rgba(255,255,255,.58); max-width: 700px; margin: 0 auto 50px; font-family: var(--avadv-text); font-size: 22px; font-weight: 400; line-height: 1.5; }
.avadv-services__list { display: flex; flex-direction: column; gap: 20px; }
.avadv-service-row { display: grid; grid-template-columns: 540px 1fr; gap: 56px; align-items: center; background: linear-gradient(118deg, rgba(255,255,255,.10), rgba(255,255,255,.08)); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); border-radius: 12px; padding: 36px 44px; }
.avadv-service-row__head { display: flex; align-items: center; gap: 24px; }
.avadv-service-row__icon { width: 120px; height: 120px; border-radius: 14px; flex: none; display: flex; align-items: center; justify-content: center; padding: 28px; }
.avadv-service-row:nth-child(1) .avadv-service-row__icon { background: var(--avadv-accent-dark); }
.avadv-service-row:nth-child(2) .avadv-service-row__icon { background: linear-gradient(145deg, #1D6481, #1C6E91); }
.avadv-service-row:nth-child(3) .avadv-service-row__icon { background: var(--avadv-navy-darkest); }
/* Icons are <img>, not inline <svg>. Scope img + explicit max-width to defeat
   Elementor's global `.elementor img { max-width:100% }` that otherwise stretches
   the icon to fill its box. */
.avadv-service-row__icon img,
.avadv-service-row__icon svg { width: 56px; height: 56px; max-width: 56px; }
.avadv-service-row__head h3 { color: #fff; font-family: var(--avadv-serif); font-size: 30px; font-weight: 500; margin: 0; line-height: 1.2; }
.avadv-service-row { position: relative; }
.avadv-service-row__corner { position: absolute; top: 14px; right: 16px; width: 22px; height: 22px; opacity: 0; filter: drop-shadow(0 0 6px rgba(255,255,255,.5)); pointer-events: none; }
.avadv-service-row__points { list-style: none; margin: 0; padding: 6px 0 6px 56px; border-left: 1px solid rgba(255,255,255,.22); }
.avadv-service-row__points li { color: rgba(255,255,255,.78); font-family: var(--avadv-text); font-size: 19px; font-weight: 400; line-height: 1.2; padding: 5px 0; }

/* Experience band ----------------------------------------------- */
.avadv-band { min-height: 100vh; width: 100vw; margin-left: calc(50% - 50vw); display: flex; align-items: flex-end; background-image: linear-gradient(90deg, rgba(1,28,48,.58) 0%, rgba(1,40,65,.30) 50%, rgba(1,28,48,.05) 100%), var(--avadv-band-bg); background-size: auto, 122%; background-position: center, 28% center; color: #fff; padding: 90px 0; }
.avadv-band__inner { padding-bottom: 20px; }
.avadv-band__title { font-family: var(--avadv-serif); font-weight: 700; font-size: 76px; line-height: 1.05; margin: 0 0 18px; max-width: 1000px; white-space: nowrap; }
.avadv-band__text { font-family: var(--avadv-text); font-size: 22px; font-weight: 400; line-height: 1.5; max-width: 780px; opacity: .9; }

/* Difference ----------------------------------------------------- */
.avadv-difference { background: var(--avadv-cream-alt); padding: 60px 0 80px; }
.avadv-difference__layout { display: grid; grid-template-columns: 2fr 3fr; gap: 0; align-items: stretch; }
.avadv-difference__heading { font-family: var(--avadv-serif); font-size: 61px; font-weight: 700; color: var(--avadv-heading); line-height: 1.05; margin: 0 0 36px; }
.avadv-difference__left { padding-right: 28px; border-right: 1px solid rgba(56,69,74,.14); display: flex; flex-direction: column; justify-content: center; }
.avadv-difference__right { padding-left: 28px; display: flex; }
/* flex parent so the image reliably stretches to the (taller) text column's
   height — otherwise height:100% doesn't resolve in the grid cell and the image
   sits short, leaving an unbalanced gap below it. */
.avadv-difference__img { width: 100%; height: auto; align-self: stretch; min-height: 480px; border-radius: 12px; display: block; object-fit: cover; }

/* Timeline list — all descriptions always visible */
/* Timeline accordion */
.avadv-accordion { display: flex; flex-direction: column; position: relative; padding-left: 52px; }
.avadv-accordion::before {
	content: ''; position: absolute;
	left: 10px; top: 30px; bottom: 30px;
	width: 1px; background: rgba(56,69,74,.18);
}
.avadv-accordion__item { position: relative; }
.avadv-accordion__trigger {
	display: flex; align-items: center;
	width: 100%; background: none; border: none;
	padding: 26px 0; cursor: pointer; text-align: left;
	position: relative;
}
.avadv-accordion__bullet {
	width: 10px; height: 10px; border-radius: 50%;
	background: var(--avadv-accent);
	position: absolute; left: -47px; top: 50%; transform: translateY(-50%);
	z-index: 1; transition: box-shadow .3s ease;
	box-shadow: 0 0 0 3px var(--avadv-cream-alt);
}
.avadv-accordion__item.is-open .avadv-accordion__bullet,
.avadv-accordion__item:hover .avadv-accordion__bullet {
	box-shadow: 0 0 0 3px var(--avadv-cream-alt), 0 0 0 4px var(--avadv-accent);
}
.avadv-accordion__label {
	font-family: var(--avadv-text); font-size: 22px; font-weight: 600;
	color: var(--avadv-heading); transition: color .2s;
}
.avadv-accordion__item.is-open .avadv-accordion__label,
.avadv-accordion__item:hover .avadv-accordion__label { color: var(--avadv-accent-dark); }
.avadv-accordion__body { overflow: hidden; height: 0; }
.avadv-accordion__item.is-open .avadv-accordion__body { height: auto; }
.avadv-accordion__body p {
	font-family: var(--avadv-text); font-size: 19px; font-weight: 400; color: var(--avadv-ink);
	line-height: 1.6; margin: 0 0 12px; padding-left: 0; max-width: 360px;
}

/* Founder -------------------------------------------------------- */
.avadv-founder { background: var(--avadv-cream-alt); padding: 20px 0 120px; }
.avadv-founder .avadv-eyebrow { margin-bottom: 10px; }
.avadv-founder .avadv-eyebrow-rule { margin-bottom: 48px; }
.avadv-founder__card { display: grid; grid-template-columns: 420px 1fr; gap: 0; background: #fff; border-radius: 12px; overflow: hidden; margin-top: 20px; }
.avadv-founder__media { padding: 30px 0 30px 30px; }
.avadv-founder__media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 8px; }
.avadv-founder__body { padding: 50px 50px; display: flex; flex-direction: column; justify-content: center; }
.avadv-founder__title { font-family: var(--avadv-serif); font-weight: 700; font-size: 76px; color: #1D6381; margin: 0 0 32px; line-height: 1.05; }
.avadv-founder__text p { font-family: var(--avadv-text); font-size: 21px; font-weight: 400; line-height: 1.5; color: #6b6464; margin: 0 0 18px; }
.avadv-founder__text p:first-child { font-weight: 600; color: var(--avadv-heading); }

/* Testimonial ---------------------------------------------------- */
.avadv-testimonial { position: relative; min-height: 680px; display: flex; align-items: center; background-image: var(--avadv-testimonial-bg); background-size: cover; background-position: center; color: #fff; padding: 160px 0; }
.avadv-testimonial__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(1,50,75,.4) 0%, rgba(1,70,100,.2) 55%, rgba(1,50,75,0) 100%); z-index: 1; }
.avadv-testimonial__inner { position: relative; z-index: 2; max-width: 750px; margin: 0; text-align: left; }
.avadv-testimonial__quote { font-family: var(--avadv-text); font-size: 28px; font-weight: 400; line-height: 1.44; font-style: normal; margin: 0 0 24px; }
.avadv-testimonial__author { font-family: var(--avadv-sans); font-size: 19px; font-weight: 800; font-style: normal; letter-spacing: .14em; text-transform: uppercase; display: block; }

/* Contact -------------------------------------------------------- */
.avadv-contact { background: var(--avadv-navy); padding: 100px 0 64px; color: #fff; }
.avadv-contact__layout { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; }
.avadv-contact__left { padding-right: 60px; border-right: 1px solid rgba(255,255,255,.09); display: flex; flex-direction: column; justify-content: flex-start; }
.avadv-contact__right { padding-left: 60px; }
.avadv-contact__title { font-family: var(--avadv-serif); font-weight: 700; font-size: 67px; line-height: 1.05; margin: 0 0 28px; white-space: nowrap; }
.avadv-contact__intro p { font-family: var(--avadv-text); font-size: 21px; font-weight: 400; line-height: 1.5; color: rgba(242,227,227,.71); margin: 0 0 16px; }
.avadv-contact__decor { margin-top: 2px; margin-bottom: 36px; }
.avadv-contact__decor::after { display: none; }
.avadv-form__title { font-family: var(--avadv-sans); font-size: 14px; font-weight: 700; color: #fff; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 28px; }
.avadv-form label { display: block; font-family: var(--avadv-text); font-size: 19px; font-weight: 500; color: #dfdbdc; margin-bottom: 12px; }
.avadv-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.avadv-form input, .avadv-form textarea {
	display: block; width: 100%; margin-top: 8px; padding: 11px 16px;
	background: rgba(255,255,255,.65); border: none; border-radius: 3px;
	font-family: var(--avadv-text); font-size: 16px; color: var(--avadv-body);
}
.avadv-form button { margin-top: 16px; border: none; }

/* Success state: shown in place of the form fields after submit, then reverts. */
.avadv-form__success { display: none; flex-direction: column; align-items: flex-start; gap: 16px; padding: 6px 0; }
.avadv-form--sent > .avadv-form__title,
.avadv-form--sent > label,
.avadv-form--sent > .avadv-form__row,
.avadv-form--sent > button { display: none; }
.avadv-form--sent > .avadv-form__success { display: flex; animation: avadv-success-in .5s ease both; }
.avadv-form__success-icon { width: 78px; height: 78px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(104,165,175,.14); margin-bottom: 12px; }
.avadv-form__success-title { font-family: var(--avadv-serif); font-size: 30px; font-weight: 600; color: #fff; margin: 0; line-height: 1.15; }
.avadv-form__success-text { font-family: var(--avadv-text); font-size: 17px; line-height: 1.6; color: rgba(242,227,227,.78); margin: 0; max-width: 440px; }
.avadv-form__check-circle { stroke-dasharray: 145; stroke-dashoffset: 145; animation: avadv-draw .55s ease forwards; }
.avadv-form__check-mark { stroke-dasharray: 36; stroke-dashoffset: 36; animation: avadv-draw .4s .45s ease forwards; }
@keyframes avadv-draw { to { stroke-dashoffset: 0; } }
@keyframes avadv-success-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Footer --------------------------------------------------------- */
.avadv-footer { background: var(--avadv-navy); color: rgba(255,255,255,.7); padding: 0 0 50px; }
/* Inner pages (Terms/Accessibility): the footer follows a cream section, so give
   it top space instead of jamming against the content. Homepage is navy-on-navy,
   so leave it flush (no .home). */
body:not(.home) .avadv-footer { padding-top: 56px; }
.avadv-header__brand--light { color: #fff; }

/* Rounded bordered card */
.avadv-footer__card { border: 1px solid rgba(255,255,255,.10); border-radius: 34px; overflow: hidden; background: rgba(255,255,255,.06); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.avadv-footer__cell { display: flex; align-items: center; }

/* Top row: logo | linkedin | nata — equal height to the bottom row (50/50) */
.avadv-footer__row--top { display: grid; grid-template-columns: 1fr auto auto; align-items: stretch; min-height: 100px; border-bottom: 1px solid rgba(255,255,255,.10); }
.avadv-footer__brand-cell { padding: 24px 48px; }
.avadv-footer .avadv-header__logo { height: 64px; }

/* Bottom row: copyright | legal — matches the top row's height */
.avadv-footer__row--bottom { display: grid; grid-template-columns: 1fr auto; align-items: stretch; min-height: 100px; }
.avadv-footer__copy-cell { padding: 26px 48px; font-family: var(--avadv-text); font-size: 17px; font-weight: 500; line-height: 1.7; color: rgba(255,255,255,.6); }
.avadv-footer__legal-cell { padding: 26px 48px; gap: 12px; font-family: var(--avadv-sans); font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.avadv-footer__legal-cell a { color: rgba(255,255,255,.85); text-decoration: none; }
.avadv-footer__legal-cell a:hover { color: #fff; }
.avadv-footer__sep { color: rgba(255,255,255,.35); }
.avadv-footer__social-cell, .avadv-footer__nata-cell { justify-content: center; padding: 0 36px; border-left: 1px solid rgba(255,255,255,.10); }
.avadv-footer__social-cell a { display: flex; align-items: center; justify-content: center; color: #fff; text-decoration: none; transition: opacity .2s; }
.avadv-footer__social-cell a:hover { opacity: .7; }
.avadv-footer__nata { height: 30px; width: auto; display: block; }
.avadv-footer__nata-text { font-family: var(--avadv-sans); font-weight: 800; letter-spacing: .1em; color: #fff; }

/* Responsive ----------------------------------------------------- */
/* Laptop / small desktop */
@media (max-width: 1100px) {
	.avadv-hero__title { font-size: 64px; }
	/* Long single-line strings must wrap below desktop */
	.avadv-hero__sub { white-space: normal; }
	.avadv-partners__heading { font-size: 52px; white-space: normal; }
	.avadv-partners__layout { grid-template-columns: 1fr; }
	/* Stacked: image spans the full content width (was capped at 500px) */
	.avadv-partners__media { max-width: none; height: 360px; }
	.avadv-band__title { white-space: normal; }
	.avadv-contact__title { font-size: 52px; white-space: normal; }
	.avadv-service-row { grid-template-columns: 440px 1fr; gap: 36px; }
}

/* Tablet — covers iPads up to 1024px portrait (iPad Pro 12.9") so modern tablets
   get the tablet layout, not the desktop one. */
@media (max-width: 1024px) {
	/* Header: swap inline nav for hamburger + slide-down panel */
	.avadv-header__cta { display: none; }
	.avadv-header__toggle { display: inline-flex; margin-left: auto; position: relative; z-index: 3; }
	.avadv-header__brand { position: relative; z-index: 3; }
	/* Menu open: header bar takes the same frosted glass as the dropdown so the
	   whole thing reads as one continuous panel from the top down — no hard seam. */
	/* Open menu = ONE single glass element (the nav) spanning from the very top.
	   Header bar stays transparent; the logo + X float above the nav. No seam. */
	.avadv-header--menu-open { position: fixed; top: 0; left: 0; right: 0; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom: none; }
	.avadv-header--menu-open .avadv-header__inner { position: relative; z-index: 2; }
	.avadv-header__nav {
		position: absolute; top: 0; left: 0; right: 0; z-index: 1;
		flex-direction: column; align-items: stretch; gap: 4px;
		margin: 0; padding: 92px 40px 28px;
		background: rgba(8, 46, 66, .70);
		-webkit-backdrop-filter: saturate(160%) blur(16px);
		backdrop-filter: saturate(160%) blur(16px);
		border-bottom: 1px solid rgba(255, 255, 255, .12);
		box-shadow: 0 18px 40px rgba(1, 31, 46, .25);
		opacity: 0; visibility: hidden; transform: translateY(-12px);
		transition: opacity .28s ease, transform .28s ease, visibility .28s;
	}
	.avadv-header--menu-open .avadv-header__nav { opacity: 1; visibility: visible; transform: none; }
	/* Hide the hero text/button behind the open menu so it doesn't bleed through
	   the translucent glass (body class toggled by effects.js). */
	body.avadv-menu-open .avadv-hero__inner { opacity: 0; pointer-events: none; transition: opacity .2s ease; }
	.avadv-header__nav a { padding: 14px 0; font-size: 15px; }
	.avadv-header__nav a::after { display: none; }
	.avadv-header__nav-cta { display: inline-block; margin-top: 14px; text-align: center; }

	.avadv-hero__inner { padding-top: 210px; }
	.avadv-hero__title { font-size: 48px; }
	.avadv-hero__sub { font-size: 20px; }
	.avadv-badge { width: 128px; height: 128px; right: 5%; bottom: 6%; }
	.avadv-stats__label { justify-content: center; }
	.avadv-stats__grid { grid-template-columns: 1fr; }
	.avadv-stat__icon { width: 80px; height: 80px; }
	.avadv-partners__heading { font-size: 42px; }
	.avadv-partners__layout,
	.avadv-partners__cards { grid-template-columns: 1fr; }
	.avadv-partners__media { max-width: none; height: 300px; }
	/* Equal-height "Who We Serve" cards when stacked (content lengths differ) */
	.avadv-card { padding: 32px; min-height: 300px; }
	.avadv-card__title,
	.avadv-card__desc { font-size: 20px; }
	.avadv-section-title--light { font-size: 48px; }
	.avadv-services__intro { font-size: 19px; }
	.avadv-service-row { grid-template-columns: 1fr; gap: 16px; padding: 24px 28px; }
	.avadv-service-row__head h3 { font-size: 26px; }
	.avadv-service-row__head { flex-direction: column; align-items: flex-start; text-align: left; gap: 14px; }
	.avadv-section-title--light { text-align: left; }
	.avadv-services__intro { text-align: left; max-width: none; margin: 0 0 30px; }
	.avadv-service-row__points { padding-left: 0; border-left: none; }
	.avadv-service-row__points li { font-size: 18px; line-height: 1.45; padding: 7px 0; }
	.avadv-band { min-height: 80vh; padding: 70px 0; }
	.avadv-band__title { font-size: 46px; }
	.avadv-band__text { font-size: 19px; }
	/* Difference: stack and drop the vertical divider */
	.avadv-difference__layout { grid-template-columns: 1fr; gap: 36px; }
	.avadv-difference__left { padding-right: 0; border-right: none; order: 2; }
	/* Image on top when stacked so it's visible while tapping the accordion below */
	.avadv-difference__right { padding-left: 0; order: 1; }
	.avadv-difference__img { min-height: 320px; border-radius: 0; }
	.avadv-difference__heading { font-size: 42px; }
	.avadv-accordion__label { font-size: 18px; }
	.avadv-accordion__body p { font-size: 18px; }
	/* Founder: stack with even image padding */
	.avadv-founder__card { grid-template-columns: 1fr; }
	.avadv-founder__media { padding: 18px 18px 0; }
	.avadv-founder__body { padding: 36px 32px; }
	.avadv-founder__title { font-size: 48px; }
	.avadv-founder__text p { font-size: 18px; }
	/* Testimonial: trim the huge vertical rhythm */
	.avadv-testimonial { min-height: 0; padding: 80px 0; }
	.avadv-testimonial__quote { font-size: 26px; }
	.avadv-testimonial__author { font-size: 18px; }
	/* Contact: stack and drop the vertical divider */
	.avadv-contact { padding: 70px 0 18px; }
	.avadv-footer { padding: 22px 0 40px; }
	.avadv-footer__copy-cell { order: 2; border-top: 1px solid rgba(255,255,255,.10); }
	.avadv-footer__legal-cell { order: 1; }
	/* Kill any line between the form and the footer card */
	.avadv-contact { border-bottom: 0 !important; }
	.avadv-footer { border-top: 0 !important; padding: 0 0 0; }
	.avadv-footer .avadv-container { padding: 0; }
	/* Full-bleed square footer card on mobile (no rounded corners, fits the fold) */
	.avadv-footer__card { box-shadow: none; border-radius: 0; border-left: 0; border-right: 0; }
	.avadv-contact__layout { grid-template-columns: 1fr; gap: 40px; }
	.avadv-contact__left { padding-right: 0; border-right: none; justify-content: flex-start; }
	.avadv-contact__right { padding-left: 0; }
	.avadv-contact__title { font-size: 42px; }
	.avadv-contact__intro p { font-size: 18px; }
	.avadv-form__row { grid-template-columns: 1fr; }
	/* Footer: logo on its own row, social + nata side by side below */
	.avadv-footer__row--top { grid-template-columns: 1fr 1fr; }
	.avadv-footer__brand-cell { grid-column: 1 / -1; border-bottom: 1px solid rgba(255,255,255,.10); justify-content: center; padding: 26px; }
	.avadv-footer__social-cell { border-left: none; padding: 22px; }
	.avadv-footer__nata-cell { padding: 22px; }
	.avadv-footer__row--bottom { grid-template-columns: 1fr; }
	.avadv-footer__copy-cell, .avadv-footer__legal-cell { justify-content: center; text-align: center; padding: 22px 26px; }
	.avadv-footer__copy-cell { font-size: 15px; }
	.avadv-footer__legal-cell { border-top: none; justify-content: center; }
}

/* Tablet portrait (iPads 768–1024): dedicated hero art + service tuning.
   Scoped min-width:601 so it never touches phones (≤600). */
@media (min-width: 601px) and (max-width: 1024px) {
	/* Portrait hero so the wingtip isn't cropped by the wide desktop image.
	   Parallax layer off so scrolling can't re-crop it. */
	.avadv-hero { background-image: var(--avadv-hero-bg-tablet, var(--avadv-hero-bg)); background-size: cover; background-position: center; }
	.avadv-hero::before { display: none; }
	/* Service icons smaller, headings + points slightly larger */
	.avadv-service-row__icon { width: 80px; height: 80px; padding: 0; }
	.avadv-service-row__icon img,
	.avadv-service-row__icon svg { width: 38px; height: 38px; max-width: 38px; }
	.avadv-service-row__head h3 { font-size: 30px; }
	.avadv-service-row__points li { font-size: 19px; }
	/* Experience band: dedicated portrait so people are up top, text on tarmac */
	.avadv-band { background-image: linear-gradient(to top, rgba(1,28,48,.85) 0%, rgba(1,28,48,.45) 40%, rgba(1,28,48,.12) 100%), var(--avadv-band-bg-tablet, var(--avadv-band-bg)); background-size: auto, cover; background-position: center, center top; }
	/* Founder: trim the oversized bottom gap before the testimonial on tablet */
	.avadv-founder { padding: 20px 0 64px; }
	/* Testimonial: give the image band more height */
	.avadv-testimonial { min-height: 520px; }
	/* Contact: more breathing room below the form before the footer */
	.avadv-contact { padding: 70px 0 64px; }
	/* Tablet: after submit, expand the confirmation to fill the fold and center
	   it, instead of collapsing into a short left-aligned block with empty space. */
	.avadv-form--sent { min-height: 58vh; display: flex; flex-direction: column; justify-content: center; }
	.avadv-form--sent .avadv-form__success { align-items: flex-start; }
	.avadv-form--sent .avadv-form__success-text { max-width: 560px; }
	/* Hamburger menu: same top-spacing fix as mobile so the glass panel reaches
	   the very top with no seam/gap. */
	.avadv-header__nav { margin-top: -34px; padding: 148px 40px 32px; }
	/* Footer: keep the DESKTOP horizontal layout on tablet (logo | social | nata
	   top, copyright | legal bottom) — just narrower. Undo the ≤900 stacking. */
	/* Swallow the 1px seam between the full-bleed (100vw) contact and footer
	   sections — same -2px trick the hero uses at line ~129. */
	.avadv-footer { padding: 0 0 56px; margin-top: -2px; }
	.avadv-footer .avadv-container { padding: 0 40px; }
	/* No outer border/highlight on tablet — kills the visible line where the card
	   meets the contact section. Internal dividers still give it structure. */
	.avadv-footer__card { border: none; border-radius: 28px; box-shadow: none; }
	.avadv-footer__row--top { grid-template-columns: 1fr auto auto; }
	.avadv-footer__brand-cell { grid-column: auto; border-bottom: none; justify-content: flex-start; padding: 22px 32px; }
	.avadv-footer__social-cell, .avadv-footer__nata-cell { border-left: 1px solid rgba(255,255,255,.10); padding: 0 28px; }
	.avadv-footer__row--bottom { grid-template-columns: 1fr auto; }
	.avadv-footer__copy-cell { order: 0; border-top: none; justify-content: flex-start; text-align: left; padding: 24px 32px; font-size: 15px; line-height: 1.6; max-width: 60ch; }
	.avadv-footer__legal-cell { order: 0; justify-content: flex-end; text-align: right; padding: 24px 32px; white-space: nowrap; }
	/* Balance the hero headline + subheading into even lines on tablet
	   ("Bringing Clarity to" / "Aviation Decisions", subhead onto 2 even lines). */
	/* max-width forces the wrap so the headline breaks to 2 balanced lines even at
	   1024 where it would otherwise fit on one line. */
	.avadv-hero__title { text-wrap: balance; max-width: 520px; }
	.avadv-hero__sub { text-wrap: balance; max-width: 480px; }
	/* Badge ring is 128px here but the mark stays 64px (50%) — shrink it so the
	   inner A doesn't crowd the rotating circle text. */
	.avadv-badge__mark { width: 40px; }
	/* Footer legal link: show just "Terms" (hide "and Conditions") like on phones */
	.avadv-legal-extra { display: none; }
}

/* Phone */
@media (max-width: 600px) {
	.avadv-container { padding: 0 20px; }
	.avadv-header { padding: 14px 0; }
	.avadv-header__logo { height: 36px; }
	/* Open mobile menu: top padding must clear the fixed logo/X row (this used to
	   be 16px, which overrode the 92px and made HOME overlap the logo). */
	/* Pull the glass up by the header's 14px top padding so it covers the
	   thin gap strip at the very top; add matching top padding so the first
	   item stays clear of the logo. */
	/* Left padding matches the header container (20px) so the menu items and
	   CTA align with the logo's left edge. */
	.avadv-header__nav { margin-top: -14px; padding: 80px 20px 28px; }
	/* Zoom by WIDTH (120% of viewport) so the image is always wider than the
	   screen — never tiles, never gaps — and the winglet stays below the button,
	   matching the original composition on phones (incl. 540px foldables). */
	.avadv-hero { background-image: var(--avadv-hero-bg-mobile, var(--avadv-hero-bg)); min-height: 100vh; background-size: 120% auto; background-repeat: no-repeat; background-position: center top; }
	.avadv-hero::before { display: none; }
	.avadv-hero__inner { padding-top: 215px; }
	.avadv-hero__title { line-height: 1.15; margin-bottom: 22px; }
	.avadv-hero__sub { margin-bottom: 34px; }
	.avadv-hero__title { font-size: 42px; }
	.avadv-hero__sub { font-size: 19px; line-height: 1.45; }
	.avadv-badge { display: none; }
	.avadv-btn { font-size: 15px; padding: 16px 32px; }
	.avadv-stats { padding: 22px 0 14px; }
	.avadv-stats__grid { gap: 14px; }
	/* +5px space between icon and text; slightly tighter box padding */
	.avadv-stat { padding: 18px 16px; gap: 21px; }
	.avadv-stat__icon { width: 60px; height: 60px; }
	.avadv-stat__value { font-size: 22px; }
	.avadv-partners { padding: 12px 0 60px; }
	.avadv-partners__heading { font-size: 34px; }
	.avadv-services { padding: 50px 0 70px; }
	.avadv-section-title--light { font-size: 38px; }
	.avadv-service-row { padding: 20px; }
	.avadv-service-row__icon { width: 52px; height: 52px; border-radius: 12px; padding: 0; }
	.avadv-service-row__icon img,
	.avadv-service-row__icon svg { width: 24px; height: 24px; max-width: 24px; }
	/* Keep the logo small on mobile even when scrolled/menu-open (root fix for the
	   logo overlapping the menu — the --scrolled rule otherwise forces 56px). */
	.avadv-header--scrolled .avadv-header__logo,
	.avadv-header--menu-open .avadv-header__logo { height: 36px; }
	/* Portrait mobile photo: `cover` (not the inherited 122% zoom) so the WHOLE
	   image fits — people up top, open tarmac at the bottom under the text.
	   Stronger lower gradient keeps the headline/paragraph readable on the tarmac. */
	.avadv-band { min-height: 88vh; padding: 60px 0 56px; background-image: linear-gradient(to top, rgba(1,28,48,.90) 0%, rgba(1,28,48,.55) 42%, rgba(1,28,48,.18) 100%), var(--avadv-band-bg-mobile, var(--avadv-band-bg)); background-size: auto, cover; background-position: center, center top; }
	.avadv-band__title { font-size: 34px; }
	.avadv-difference { padding: 50px 0 24px; }
	.avadv-difference__heading { font-size: 34px; }
	.avadv-founder { padding: 20px 0 30px; }
	.avadv-founder__title { font-size: 38px; }
	.avadv-founder__body { padding: 28px 24px; }
	.avadv-testimonial { min-height: 600px; padding: 56px 0; background-image: var(--avadv-testimonial-bg-mobile, var(--avadv-testimonial-bg)); background-position: center; }
	.avadv-testimonial__inner { max-width: 100%; padding: 0; }
	.avadv-testimonial__quote { font-size: 22px; }
	.avadv-contact { padding: 56px 0 36px; }
	.avadv-contact__title { font-size: 34px; }
	.avadv-form label { font-size: 17px; }
	.avadv-footer__brand-cell { padding: 22px; }
	.avadv-footer .avadv-header__logo { height: 52px; }

	/* Unify all mobile section headings to 36px */
	.avadv-hero__title,
	.avadv-partners__heading,
	.avadv-section-title--light,
	.avadv-band__title,
	.avadv-difference__heading,
	.avadv-founder__title,
	.avadv-contact__title { font-size: 36px; }
	/* Contact heading specifically sits at 31px on phones (per design) */
	.avadv-contact__title { font-size: 31px; }

	/* Mobile normal-state logo = ~70% of the 76px base.
	   !important + scoped selector so Elementor/theme CSS can't override it. */
	.avadv-header .avadv-header__logo { height: 53px !important; }

	/* Stat icon: match desktop radius proportion (less circular) */
	.avadv-stat__icon { border-radius: 12px; }

	/* Footer: show just "Terms" on phones, hide "and Conditions" */
	.avadv-legal-extra { display: none; }
}

/* Small phones (≤400): keep "Front line experience" on one line and
   make all stat headings in the section slightly smaller */
@media (max-width: 400px) {
	.avadv-stat__value { font-size: 18px; white-space: nowrap; }
	.avadv-stat__icon { width: 52px; height: 52px; }
	/* Contact intro paragraph stays uniform with the rest (not tiny) */
	.avadv-contact__intro p { font-size: 16px; }
	/* iPhone SE (375, short screen): lift the hero text up a bit */
	.avadv-hero__inner { padding-top: 175px; }
}
