/* Production (Enfold) loads only the Droid Sans 400 face; every 600/700
   heading on the live site is synthesised bold. Loading the real 700 face
   makes headings 4-6 % wider than production (measured: "Our Goal is Simple:"
   310.6 px vs 292.3 px at 34 px) and shifts every line break. Keep 400 only. */
@import url('https://fonts.googleapis.com/css?family=Droid+Sans:400');
/*
Theme Name: Primefin Blocks
Theme URI: https://primefin.tech
Author: ITFT (in-house)
Description: Block theme rebuilt from the Enfold 3.8 design system. GPL, agent-maintainable.
Version: 0.3.5
Requires at least: 6.7
Tested up to: 7.1.3
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: primefin-blocks
*/

/* ==========================================================================
   Primefin Blocks — layout layer.
   Geometry is copied from the measured live Enfold rendering (2026-10-23).
   Every value in this file is a production computed value, taken from the
   live page with the pinned-frame CDP harness (see
   deliverables/MSV-169/P1-css-parity/P1-css-parity-targets.csv).

   Measured production reference (viewport 1440, body width 1425):
     header 100 px = utility band 30 px (#06354b) + brand bar 70 px (#00243b)
     container 1310 px wide, padding 0 50 px, so inner column = 1210 px
     main nav link 12 px / 600 / line-height 70 px / padding 0 13 px
     footer #footer 291 px (#0a3e56, padding 15px 0 30px), socket 57.4 px
     advisory band min-height 75vh (measured 900 px at a 1200 px viewport)
   ========================================================================== */

body {
	margin: 0;
	font-family: 'Droid Sans', 'HelveticaNeue', 'Helvetica Neue', Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: #666666;
	background: #ffffff;
	-webkit-font-smoothing: antialiased;
}

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

a { color: #197c8d; text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 {
	margin: 0 0 10px;
	font-weight: 600;
	color: #222222;
	line-height: 1.25;
	letter-spacing: 1px;      /* production: measured letter-spacing 1px on every heading */
}
h1 { font-size: 34px; line-height: 1.1; text-transform: uppercase; }
h2 { font-size: 28px; line-height: 30.8px; color: #9ecc4f; margin: 0 0 10px; text-transform: uppercase; }
h3 { font-size: 20px; line-height: 22px; text-transform: uppercase; }
p { margin: 0 0 17px; font-size: 16px; line-height: 26.4px; }

/* Production paragraph/heading rhythm (measured, 1440):
     p  margin 0.85em 0  (17 px at 20 px, 13.6 px at 16 px)
     h1-h4 margin 0 0 10px
   WordPress emits a per-instance `.wp-container-core-group-is-layout-* > *`
   rule that zeroes child margins with a class-level specificity, so the
   plain `p`/`h2` rules below lose. Re-assert inside the band containers. */
.pf-section p, .pf-container p, .pf-band p, .entry-content p, .wp-block-post-content p {
	margin-block-start: 0.85em;
	margin-block-end: 0.85em;
}
.pf-section h1, .pf-section h2, .pf-section h3, .pf-section h4,
.pf-container h1, .pf-container h2, .pf-container h3, .pf-container h4,
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4,
.wp-block-post-content h1, .wp-block-post-content h2,
.wp-block-post-content h3, .wp-block-post-content h4 {
	margin-block-start: 0;
	margin-block-end: 10px;
}

/* --- structure ----------------------------------------------------------- */
.pf-container,
.wp-block-group.pf-container {
	max-width: 1310px;   /* measured live container width (incl. its 2x50 px padding) */
	margin-left: auto;
	margin-right: auto;
	padding-left: 50px;
	padding-right: 50px;
	box-sizing: border-box;
}

/* Band rhythm. Measured production anatomy for a content band at 1440:
   section 433.6 px tall = 50 px above the row + the row (334 px) + ~50 px
   below. Production carries that 100 px on the inner container, not on the
   section wrapper, so the container is what has to be 433.6 px tall. */
.pf-section { padding: 0; }
.pf-section > .pf-container { padding-top: 50px; padding-bottom: 50px; }
.pf-section--dark { background-color: #06354b; color: #ffffff; }
.pf-section--dark h2 { color: #ffffff; }
.pf-section--dark p { color: #ffffff; }
.pf-section--white { background-color: #ffffff; }

/* Enfold grid, reproduced on flex containers */
.pf-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	box-sizing: border-box;
}
.pf-col { box-sizing: border-box; min-width: 0; padding-left: 0; }
.pf-row > .pf-col { margin-left: 6%; }
.pf-row > .pf-col:first-child { margin-left: 0; }
.pf-col--third     { width: 29.3333%; }
.pf-col--two-third { width: 64.6667%; }
.pf-col--half      { width: 47%; }
.pf-col--fourth    { width: 20.5%; }
.pf-col--full      { width: 100%; }

/* Production: 85 % container, no side padding, at the 390 breakpoint. */
@media (max-width: 989px) {
	.pf-row { display: block; width: auto; margin-left: 0; }
	.pf-row > .pf-col { width: 100%; margin-left: 0; }
	.pf-container,
	.wp-block-group.pf-container { max-width: 85%; padding-left: 0; padding-right: 0; }
}

/* --- header -------------------------------------------------------------- */
/* Specificity note: these band selectors are doubled with .wp-block-group
   because `.wp-block-group { margin: 0 }` is emitted later in this file and
   otherwise wins the tie and left-aligns the band (measured defect: the band
   sat at x=0 instead of x=57.5, shifting all header content 57.5 px left). */
.pf-header { background: #00243b; color: #ffffff; }

.wp-block-group.pf-header__bar {
	background: #06354b;
	color: #ffffff;
	font-size: 12px;
	line-height: 30px;
	height: 30px;
	max-width: 1310px;
	padding-left: 50px;
	padding-right: 50px;
	box-sizing: border-box;
	margin: 0 auto;
}
.pf-header__bar-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 30px;
	flex-wrap: nowrap;
}
.pf-header__bar p { margin: 0; }

/* left slot: phone (production: 11 px, #18a7bd, padding 5px 0, x = container left) */
.pf-header__bar .pf-header__phone {
	margin: 0;
	font-size: 11px;
	line-height: 20px;
	padding: 5px 0;
	color: #18a7bd;
}
.pf-header__bar-right { margin-left: auto; gap: 0; flex-wrap: nowrap; align-items: center; }

/* Contact Us (production: #avia2-menu a -> 11 px / 700 / line-height 10px / padding 7px 0) */
.pf-header__secondary { margin: 0; }
.pf-header__secondary .wp-block-navigation__container { gap: 0; }
.pf-header__secondary .wp-block-navigation-item__content {
	color: #18a7bd;
	font-size: 11px;
	font-weight: 700;
	line-height: 10px;
	padding: 7px 0;
	display: block;
}

/* language switcher (production: 3 flags, 20 px wide, ul padded 10 px left) */
.pf-langs {
	list-style: none;
	margin: 0;
	padding: 0 0 0 10px;
	display: flex;
	align-items: center;
	line-height: 30px;
}
.pf-langs .pf-lang { margin: 0; }
.pf-langs img { width: 20px; height: auto; display: block; margin: 7px 0; }
.pf-langs a { display: block; padding: 0; }

/* social icons (production: 4 icons, 30x30 box, 16 px glyph, #197c8d, ul padded 20 px left) */
.pf-social {
	list-style: none;
	margin: 0;
	padding: 0 0 0 20px;
	display: flex;
	align-items: center;
	gap: 0;
}
.pf-social li { margin: 0; }
.pf-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	line-height: 30px;
	color: #197c8d;
	text-decoration: none;
}
.pf-social a:hover { color: #ffffff; text-decoration: none; }
.pf-social svg { display: block; }

.wp-block-group.pf-header__brand {
	background: #00243b;
	max-width: 1310px;
	margin: 0 auto;
	padding: 0 50px;
	height: 70px;
	box-sizing: border-box;
}
.wp-block-group.pf-header__brand-inner {
	display: flex;
	justify-content: flex-end;   /* nav + search flush right, logo pushed left */
	align-items: center;
	gap: 0;
	flex-wrap: nowrap;
	height: 70px;
}
.pf-header__logo { margin: 0 auto 0 0 !important; flex: 0 0 auto; }
/* production .logo img: 152.6 x 70, natural 340x156, object-fit fill */
.pf-header__logo img { width: auto; height: 70px; object-fit: fill; }
.pf-header__nav { margin: 0; flex: 0 1 auto; }
.pf-header__nav .wp-block-navigation__container { gap: 0; flex-wrap: nowrap; }
.pf-header__nav .wp-block-navigation-submenu__toggle { display: none; }
.pf-header__nav { margin-right: 0; }
/* production's 11th nav item is the search icon: 22.5 px wide, white, 13 px after
   "Terms and Conditions" (measured #avia-menu li width 22.5 at x=1295) */
.pf-nav-search { display: flex; align-items: center; height: 70px; margin-left: 13px; color: #ffffff; }
.pf-nav-search svg { display: block; width: 22.5px; height: 22.5px; }
.pf-nav-search:hover { color: #ffffff; text-decoration: none; }
.pf-header__nav .wp-block-navigation-item__content {
	color: #ffffff;
	font-size: 12px;
	font-weight: 600;
	line-height: 70px;
	padding: 0 13px;
	display: block;
}

/* --- hero video ---------------------------------------------------------- */
.pf-hero-video {
	position: relative;
	margin-bottom: 9.4px;   /* measured: production band 2 starts 9.4 px after the plate */
	overflow: hidden;
	height: auto;
	aspect-ratio: 16 / 9;
	background: #00243b;
	display: flex;
	align-items: center;
	justify-content: center;
}
.pf-hero-video__media {
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	z-index: 0;
	margin: 0;
}
/* production renders the slideshow video with object-fit: contain */
.pf-hero-video__media video {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.pf-hero-video__overlay {
	position: relative;
	margin-left: 10px;
	padding-top: 8px;
	z-index: 1;
	width: 100%;
	max-width: none;
	padding: 0;
	box-sizing: border-box;
	text-align: center;
	color: #ffffff;
	display: flex;
	justify-content: center;
}
.pf-hero-video__inner { max-width: none; margin: 0; text-align: center; }
.pf-hero-video__title {
	display: block;
	width: fit-content;
	font-size: 34px;
	line-height: 37.4px;
	color: #ffffff;
	background: rgba(0,0,0,0.56);
	padding: 10px 20px;
	margin: 0 auto;
	font-weight: 600;
}
.pf-hero-video__lead {
	display: block;
	width: fit-content;
	font-size: 16px;
	line-height: 26.4px;
	color: #ffffff;
	background: rgba(0,0,0,0.48);
	padding: 8px 31px;
	margin: 10px auto 0;
	max-width: 687px;
}

/* --- hero page intro ---------------------------------------------------- */
.pf-hero { padding: 60px 0 40px; }
.pf-hero__title { color: #ffffff; }
.pf-hero__lead { font-size: 20px; line-height: 1.4; color: #ffffff; }

/* --- content bits -------------------------------------------------------- */
.pf-lead { font-size: 20px; line-height: 1.65; color: #9ecc4f; }
.pf-figure { margin: 0; }
.pf-figure img { margin: 0 auto; }

.pf-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0; }
.wp-block-buttons.pf-buttons--center { justify-content: center; }
.wp-block-button.pf-btn { margin: 0; }
/* production banner-hero CTA is 197 x 45 (padding 15 30 13) */
.pf-section--hero .pf-btn .wp-block-button__link { padding: 15px 30px 13px; }
.pf-btn .wp-block-button__link {
	background-color: #4fc5df;
	color: #ffffff;
	border-radius: 3px;
	border: none;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.2;
	padding: 12px 16px 11px;
	margin: 3px 0;
	text-transform: none;
}
.pf-btn .wp-block-button__link:hover { background-color: #3bb4ce; color: #ffffff; }
.pf-section--dark .pf-btn--light .wp-block-button__link { background-color: #ffffff; color: #06354b; }
.wp-block-buttons.pf-buttons--right { justify-content: flex-end; }

.pf-icon-list { list-style: none; padding: 0; margin: 0; }
.pf-icon-list li { padding-left: 26px; position: relative; margin: 0 0 8px; }
.pf-icon-list li::before { content: "\2713"; position: absolute; left: 0; color: #4fc5df; }

.pf-cards { display: flex; flex-wrap: wrap; }
.pf-card {
	box-sizing: border-box;
	background: #fafafa;
	border: 1px solid #e1e1e1;
	padding: 24px;
	margin: 0 0 24px 3%;
}
.pf-cards--third .pf-card { width: 30.3333%; }
.pf-cards--fourth .pf-card { width: 22%; }

.pf-gallery img { width: 100%; }

.pf-cta { padding: 50px 0; }

/* --- footer -------------------------------------------------------------- */
.pf-footer { background: #0a3e56; color: #ffffff; padding: 15px 0 30px; }
.pf-footer h2, .pf-footer h3 { color: #ffffff; }
.pf-footer .wp-block-columns { gap: 6%; }
.pf-footer .wp-block-column { margin-bottom: 0; }
.pf-footer__nav { margin: 0; }
/* production footer menu: a vertical block list, 16 px / 26.4 px / #677e8f,
   each row 39.4 px tall (padding 6px 7px 7px 0) */
.pf-footer__nav .wp-block-navigation__container { display: block; gap: 0; }
.pf-footer__nav .wp-block-navigation-item { display: block; }
.pf-footer__nav .wp-block-navigation-item__content {
	display: block;
	padding: 6px 7px 7px 0;
	font-size: 16px;
	line-height: 26.4px;
	color: #677e8f;
}
.pf-footer__nav .wp-block-navigation-item__content:hover { color: #ffffff; text-decoration: none; }
.pf-footer__nav .wp-block-navigation-submenu__toggle { display: none; }
.pf-footer__nav .wp-block-navigation__submenu-container {
	position: static;
	display: block;
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0 0 0 12px;
	min-width: 0;
}

.pf-footer__search .wp-block-search__inside-wrapper { border: 0; padding: 0; }
.pf-footer__search .wp-block-search__input {
	background: #ffffff;
	border: 0;
	padding: 6px 30px 6px 10px;
	font-size: 14px;
	line-height: 22px;
	color: #666666;
	box-sizing: border-box;
}
.pf-footer__search .wp-block-search__button {
	background: transparent;
	border: 0;
	color: #ffffff;
	padding: 6px;
	margin: 0;
	box-shadow: none;
}

.pf-footer .pf-container { padding-bottom: 18px; }
.pf-footer__cols { padding-top: 30px; box-sizing: border-box; }
/* production paints the copyright strip across the full viewport width while its
   content stays on the 1210 px inner column */
.wp-block-group.pf-socket {
	background: #00243b;
	color: #ffffff;
	max-width: none;
	width: 100%;
	margin: 0 auto;
	padding: 2px calc((100% - 1210px) / 2);
	box-sizing: border-box;
	height: 30px;
	font-size: 11px;
	line-height: 26.4px;
}
.pf-socket__inner { height: 26.4px; align-items: center; }
.pf-socket p { margin: 0; color: #ffffff; font-size: 11px; line-height: 26.4px; }
.pf-socket .pf-social { margin: -10px 0 0 30px; padding: 0; }
.pf-socket .pf-social a { color: #677e8f; }

/* --- wordpress block defaults that must not add spacing ------------------ */
.wp-block-buttons { margin: 0; }
.wp-block-image { margin: 0 0 16px; }
.wp-block-navigation { margin: 0; }
.footer, .pf-footer { margin-bottom: 0; }

/* --- financial advisory icon grid ---------------------------------------- */
/* Production #av_section_8 = avia-section-large + av-minimum-height-75:
   the band is 75 vh (measured 900 px at a 1200 px viewport) and its single
   heading sits 186 px below the band top (h1 y 3649 vs band y 3463). */
.pf-section--bgimage { min-height: 75vh; box-sizing: border-box; }
.pf-section--bgimage > .pf-container { min-height: 75vh; padding-top: 186px; box-sizing: border-box; }
.pf-heading--hero {
	font-size: 50px; line-height: 55px; font-weight: 300; letter-spacing: 1px;
	color: #ffffff; margin: 0 0 6px; text-align: center; text-transform: uppercase;
}
.pf-heading__sub {
	font-size: 18px; line-height: 23.4px; color: #ffffff; text-align: center;
	max-width: none; width: 100%; margin: 0 0 40px;
}
.pf-icon { text-align: center; }
.pf-icon__glyph {
	display: inline-block;
	width: 40px; height: 40px; line-height: 40px;
	border: 2px solid #ffffff; border-radius: 50%;
	color: #ffffff; font-size: 22px; margin: 0 0 12px;
}
.pf-icon__cap { font-size: 16px; line-height: 20px; margin: 0 0 8px; }
.pf-icon__cap a { color: #ffffff; }
.pf-icon__text { font-size: 12px; line-height: 19px; color: #ffffff; margin: 0; }

/* --- inner-page components (S14/S15) ------------------------------------- */
/* Two different production plates share the class name:
   538 (banner hero)   = container at y=100, 450 px tall, no side gap,
                         h1 at +175, caption, CTA button at +279.
   194 (shape hero)    = 630 px parallax plate, background bottom-centre with a
                         70 % white overlay, 3 image columns from +87. */
.pf-section--hero { background-color: #06354b; text-align: center; }
.pf-section--hero:has(.pf-shape-col) {
	position: relative;
	min-height: 630px;
	background-position: bottom center;
	background-size: cover;
	background-repeat: no-repeat;
	padding: 0;
}
.pf-section--hero:has(.pf-shape-col)::before {
	content: "";
	position: absolute; inset: 0;
	background: #ffffff; opacity: 0.7;
	pointer-events: none;
}
.pf-section--hero:has(.pf-shape-col) > .pf-container {
	position: relative; z-index: 1;
	min-height: 630px; padding-top: 87px; padding-bottom: 0; box-sizing: border-box;
}
.pf-section--hero:not(:has(.pf-shape-col)) { min-height: 450px; padding: 0; }
.pf-section--hero:not(:has(.pf-shape-col)) > .pf-container { min-height: 450px; padding-top: 175px; padding-bottom: 0; box-sizing: border-box; }
.pf-hero__title {
	display: block; width: fit-content; margin: 0 auto 1px;
	font-size: 30px; line-height: 33px; font-weight: 600; letter-spacing: 1px;
	color: #ffffff; background: rgba(0, 0, 0, 0.5); padding: 10px 15px;
}
.pf-hero__caption,
.pf-section--hero:not(:has(.pf-shape-col)) p {
	display: block; width: fit-content; max-width: 100%;
	font-size: 20px; line-height: 26px; color: #ffffff;
	background: rgba(0, 0, 0, 0.5); padding: 10px 15px; margin: 0 auto;
}
.pf-intro { padding: 0; }
.pf-intro__title { font-size: 34px; line-height: 40px; margin: 0 0 10px; }
.pf-size-20 { font-size: 20px; line-height: 1.4; }
.pf-band { background: #f4f4f4; padding: 30px; }
/* production renders this band's artwork 1365 px wide at x=30 (body width − 60),
   i.e. the container drops its 1310 max-width and its 50 px side padding. */
.pf-section--grey > .pf-container { max-width: none; padding-left: 30px; padding-right: 30px; }
.pf-section--grey .pf-band { padding: 0; }
.pf-section--grey .pf-band .wp-block-image img { width: 100%; height: auto; }
.pf-band .pf-figure { margin: 0 auto; }
.pf-section--grey { background: #f4f4f4; }
.pf-hr-invisible { border: 0; height: 30px; }
.pf-h3-band { font-size: 30px; line-height: 34px; color: #ffffff; margin: 10px 0; }
.pf-shape-col { position: relative; text-align: center; }
/* production centres the caption over the 330 px artwork: cap y 331 inside an
   image spanning 187-517, 28 px / 42 px, white, 271 px wide in a 355 px column */
.pf-shape__cap {
	position: absolute; top: 50%; left: 0; right: 0;
	transform: translateY(-50%);
	width: 271px; max-width: 100%; margin: 0 auto;
	font-size: 28px; line-height: 42px; color: #ffffff;
}
.pf-shape__cap a { color: #ffffff; }
.pf-note {
	background: rgba(255,255,255,0.4);
	border-radius: 5px;
	margin: 30px 0 0;
	padding: 0 30px;
}
.pf-note__text { font-size: 20px; line-height: 33px; margin: 20px 0; }
.pf-contact-page { padding: 0; }
/* production contact entries: h3 20 px / 22 px / #06354b with 2 px top padding,
   body 16 px / 26.4 px, 70 px between entries (measured pitch 136 px) */
.pf-iconbox { margin: 0 0 34px; padding-left: 0; position: relative; }
.pf-iconbox__glyph { position: absolute; left: -26px; top: 4px; color: #06354b; font-size: 16px; }
.pf-iconbox__title { font-size: 20px; line-height: 22px; padding: 2px 0 0; margin: 0 0 16px; color: #06354b; }
.pf-iconbox__text { font-size: 16px; line-height: 26.4px; margin: 0; }

/* production form field (Enfold avia_ajax_form, labels hidden): 47 px tall,
   #fafafa, 13 px padding, 16 px / #197c8d text, 569 px wide, 63 px pitch */
.wpcf7-form label { display: block; font-size: 16px; line-height: 26.4px; color: #666666; margin: 0 0 16px; }
.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form textarea {
	display: block; width: 100%; box-sizing: border-box;
	background: #fafafa; border: 1px solid #e1e1e1; border-radius: 0;
	padding: 13px; margin: 0;
	font-family: inherit; font-size: 16px; line-height: 19px; color: #197c8d;
}
.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form input[type=tel] { height: 47px; }
.wpcf7-form textarea { height: 196px; resize: none; line-height: 24px; }
/* production 306 message box is 196 px (rows=7); 538's is 90 px (rows=3) */
[id*="wpcf7-f6482"] .wpcf7-form textarea { height: 90px; }
/* production 538 form: two 269 px fields per row with a 30 px gutter */
[id*="wpcf7-f6482"] .wpcf7-form { display: flow-root; }
[id*="wpcf7-f6482"] .wpcf7-form label { display: inline-block; width: 269px; margin: 0 0 16px 0; vertical-align: top; }
[id*="wpcf7-f6482"] .wpcf7-form label:nth-of-type(odd) { margin-right: 31px; }
[id*="wpcf7-f6482"] .wpcf7-form label:last-of-type { display: block; width: 100%; margin-right: 0; }
.wpcf7-form input[type=submit] {
	background: #4fc5df; color: #ffffff; border: 0; border-radius: 3px;
	padding: 16px 20px; font-size: 14.72px; line-height: 18px; width: auto;
}

/* --- mobile chrome (production 390 breakpoint) --------------------------- */
/* production at 390: header 204.8 px = utility band 125.8 px (wraps to 4 rows)
   + brand bar 80 px with the logo at 174.3 x 80; container 85 %, no padding. */
@media (max-width: 767px) {
	.wp-block-group.pf-header__bar { height: auto; max-width: 85%; padding-left: 0; padding-right: 0; }
	.pf-header__bar-inner { height: auto; flex-wrap: wrap; padding: 0; }
	.pf-header__bar .pf-header__phone { width: 100%; }
	.pf-header__bar-right {
		width: 100%;
		margin-left: 0;
		flex-wrap: wrap;
		justify-content: flex-start;
	}
	.pf-langs { padding-left: 0; }
	.pf-social { padding-left: 0; }
	.wp-block-group.pf-header__brand { max-width: 85%; height: 80px; padding-left: 0; padding-right: 0; }
	.pf-header__brand-inner { height: 80px; }
	.pf-header__logo img { height: 80px; }
	.pf-header__nav .wp-block-navigation-submenu__toggle { display: none; }
.pf-header__nav { margin-right: 0; }
/* production's 11th nav item is the search icon: 22.5 px wide, white, 13 px after
   "Terms and Conditions" (measured #avia-menu li width 22.5 at x=1295) */
.pf-nav-search { display: flex; align-items: center; height: 70px; margin-left: 13px; color: #ffffff; }
.pf-nav-search svg { display: block; width: 22.5px; height: 22.5px; }
.pf-nav-search:hover { color: #ffffff; text-decoration: none; }
.pf-header__nav .wp-block-navigation-item__content { line-height: 80px; }

	.pf-section { padding: 0; }
	.wp-block-group.pf-socket { max-width: 85%; padding-left: 0; padding-right: 0; height: auto; }
	.pf-footer .wp-block-columns { display: block; }
	.pf-footer .wp-block-column { margin-bottom: 24px; }
}

/* ==========================================================================
   P1 CSS-parity pass 2 (2026-10-23) — every value below is a production
   computed value read from the live page (see
   deliverables/MSV-169/P1-css-parity/P1-css-parity-targets.csv).
   ========================================================================== */

/* --- front hero plate: production #myslider is 810 px for a 1425 px body
   (the slideshow video is an inline 16:9 element, 801.562 px, plus the line
   box descender). Content is vertically centred in the 810 px band. ------ */
.pf-hero-video { aspect-ratio: 1425 / 810; }
.pf-hero-video video, .pf-hero-video .wp-block-video video { object-fit: contain !important; object-position: top center; }
/* production a.scroll-down-link: 80x60 at the band bottom centre (y 850 of a
   band ending at 910), white entypo chevron on a black overlay plate. */
.pf-hero-video::after {
	content: "";
	position: absolute;
	left: 50%;
	margin-left: -40px;
	bottom: 0;
	width: 80px;
	height: 60px;
	z-index: 2;
	pointer-events: none;
	background-repeat: no-repeat;
	background-position: center 60%;
	background-size: 30px 30px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 9 12 16 19 9'/%3E%3C/svg%3E");
}

/* --- 194 shape/parallax hero ---------------------------------------------
   Production: section 630 px, overflow hidden; the image lives on an
   .av-parallax-inner that is 930 px tall at a 1000 px viewport, offset
   -30 px from the section top, background-size cover,
   background-position 50% 100%. A separate overlay element paints #ffffff
   at opacity .7 over the whole section. The old background-on-the-section
   approximation boxed the same photograph at a different crop (the 99 %
   differing band with mean RGB matching to +/-3). */
.pf-section--hero:has(.pf-shape-col) { overflow: hidden; }
.pf-section--hero:has(.pf-shape-col)::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -30px;
	height: calc(100% + 300px);
	z-index: 0;
	background-image: inherit;
	background-size: cover;
	background-position: 50% 100%;
	background-repeat: no-repeat;
}
.pf-section--hero:has(.pf-shape-col)::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: #ffffff;
	opacity: 0.7;
	pointer-events: none;
}
/* caption sits centred on the artwork: production caption y 330.5 inside an
   image spanning 186.8-516.3 (330 px tall), 28 px / 42 px */
.pf-shape-col { line-height: 0; }
.pf-shape__cap { line-height: 42px; top: 50%; transform: translateY(-50%); }

/* --- 538 bands ----------------------------------------------------------- */
/* image band: production image is 1365 x 1192 at x=30 inside a 1252.3 px band
   (30 px above and below the artwork) */
.pf-section--grey > .pf-container { padding-top: 30px; padding-bottom: 30px; }
/* cube band: production band 363 px for a 282 px artwork, 40 px above/below,
   cube-bg.png painted on an overlay element at opacity .5 */
/* the section's own inline background-image paints at full opacity, so an
   opaque white layer goes over it and the same image is re-painted at .5 on
   top of that (background-image: inherit) — production composite is
   0.5 * cube-bg over white */
.pf-section--cube { position: relative; }
.pf-section--cube::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #ffffff;
	pointer-events: none;
}
.pf-section--cube::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: inherit;
	background-size: cover;
	background-position: center;
	opacity: 0.5;
	pointer-events: none;
}
.pf-section--cube > .pf-container { position: relative; z-index: 1; padding-top: 40px; padding-bottom: 40px; }
/* the 538 enquiry band paints #00243b (production), not the #06354b interior */
.pf-section--dark:has([id*="wpcf7-f6482"]) { background-color: #00243b; }
.pf-section--dark:has([id*="wpcf7-f6482"]) > .pf-container { padding-bottom: 30px; }
.pf-h3-band { font-size: 30px; line-height: 33px; color: #197c8d; }

/* --- footer -------------------------------------------------------------- */
/* production #socket: 57.4 px = 15 px + 26.4 px content + 15 px, full-width bg */
.wp-block-group.pf-socket { height: auto; padding: 15px calc((100% - 1210px) / 2); }
/* production footer menu rows are 35.4 px (26.4 px line + 9 px padding) */
.pf-footer__nav .wp-block-navigation-item__content { padding: 4px 7px 5px 0; }
/* the nested "Solutions" item must render as a normal row (it measured 0 px
   wide because the submenu container stayed position:absolute at width 0) */
.pf-footer__nav ul.wp-block-navigation__submenu-container {
	position: static !important;
	display: block !important;
	left: auto !important;
	top: auto !important;
	width: 100% !important;
	min-width: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
.pf-footer__nav ul.wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100% !important; display: block !important; }
.pf-footer__nav ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block !important;
	width: 100% !important;
	padding: 4px 7px 5px 12px !important;
}
/* production footer search: 354.9 x 43 dark field (#00243b) with #9db8cc
   placeholder and a 40 x 43 #677e8f submit overlaid on the right edge */
.pf-footer__search .wp-block-search__inside-wrapper { position: relative; display: block; border: 0; padding: 0; }
.pf-footer__search .wp-block-search__input {
	width: 100%;
	height: 43px;
	box-sizing: border-box;
	background: #00243b;
	border: 0;
	padding: 11px 47px 11px 5px;
	font-size: 16px;
	line-height: 21px;
	color: #9db8cc;
}
.pf-footer__search .wp-block-search__input::placeholder { color: #9db8cc; opacity: 1; }
.pf-footer__search .wp-block-search__button {
	position: absolute;
	right: 0;
	top: 0;
	width: 40px;
	height: 43px;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #677e8f;
	border: 0;
	border-radius: 0;
	color: #ffffff;
	box-shadow: none;
}
.pf-footer__search .wp-block-search__button svg { fill: currentColor; width: 17px; height: 17px; }

/* --- header utility band ------------------------------------------------- */
/* production #avia2-menu a = 11 px / 700 with 5 px side padding (63.4 px row),
   WPML flag list = 85 px for 3 x 20 px flags (7.5 px gaps incl. the 10 px
   left padding the list already carries) */
.pf-header__secondary .wp-block-navigation-item__content { font-size: 11px; padding: 7px 10px; }
.pf-langs { gap: 7.5px; }

/* --- contact forms (Enfold avia_ajax_form / Fluent Form parity) ---------- */
.pf-field { margin: 0 0 16px; }
.pf-field label { display: block; margin: 0 0 6px; }
.pf-field .wpcf7-form-control-wrap { display: block; }
.pf-field input[type=text], .pf-field input[type=email], .pf-field input[type=tel] { height: 47px; }
.pf-field textarea { height: 196px; }
.pf-field--submit { margin: 16px 0 0; }
.pf-field--submit input[type=submit] { min-width: 142px; height: 50px; padding: 0 26px; font-size: 16px; }
/* 306 — production hides the labels (av-form-labels-hidden) and the label text
   lives in the placeholder */
[id*="wpcf7-f6489"] .pf-field label { display: none; }

/* 538 — production (Fluent form 16) renders two 269.3 px columns with a
   30 px gutter, label above input, 37 px fields, 90 px message box and a
   142 x 50 submit. CF7 emits one <p> per field, so the columns are built on
   those paragraphs. */
[id*="wpcf7-f6482"] .wpcf7-form { display: flex !important; flex-wrap: wrap; }
[id*="wpcf7-f6482"] .wpcf7-form > p {
	display: block !important;
	width: 269px !important;
	margin: 0 30px 20px 0 !important;
}
[id*="wpcf7-f6482"] .wpcf7-form > p:nth-of-type(even) { margin-right: 0 !important; }
[id*="wpcf7-f6482"] .wpcf7-form > p:nth-of-type(5),
[id*="wpcf7-f6482"] .wpcf7-form > p:nth-of-type(6) { display: block !important; width: 100% !important; margin-right: 0 !important; }
[id*="wpcf7-f6482"] .wpcf7-form label { display: block; font-size: 14.72px; line-height: 26.4px; margin: 0 0 5px; }
[id*="wpcf7-f6482"] .wpcf7-form input[type=text],
[id*="wpcf7-f6482"] .wpcf7-form input[type=email],
[id*="wpcf7-f6482"] .wpcf7-form input[type=tel] { height: 37px; padding: 8px 6px; margin: 0; }
[id*="wpcf7-f6482"] .wpcf7-form textarea { height: 90px; padding: 8px 6px; margin: 0; }
[id*="wpcf7-f6482"] .wpcf7-form input[type=submit] { min-width: 142px; height: 50px; }

/* 306 — production hides the labels (av-form-labels-hidden): the label text
   lives in the placeholder, so the body carries no <label> at all. */
.wpcf7-form > p { margin: 0 0 16px !important; }
.wpcf7-form > p:last-of-type { margin-bottom: 0 !important; }
[id*="wpcf7-f6489"] .wpcf7-form input[type=submit] { min-width: 142px; height: 50px; }

/* --- 390 utility band: production wraps to four 30 px rows (125.8 px) --- */
@media (max-width: 767px) {
	.wp-block-group.pf-header__bar { height: auto; }
	.pf-header__bar-inner { display: flex; flex-wrap: wrap; height: auto; padding: 3px 0; }
	.pf-header__bar-right { display: contents; }
	.pf-social { order: 1; width: 100%; padding-left: 0; height: 30px; }
	.pf-header__secondary { order: 2; width: 100%; height: 30px; }
	.pf-langs { order: 3; width: 100%; height: 30px; padding-left: 0; }
	.pf-header__bar .pf-header__phone { order: 4; width: 100%; height: 30px; }
}

/* --- 390 type + socket (production at the 390 breakpoint) ---------------- */
@media (max-width: 767px) {
	.pf-heading--hero { font-size: 40px; line-height: 44px; }
	.pf-h3-band { font-size: 24px; line-height: 26.4px; }
	.wp-block-group.pf-socket { padding: 25px calc((100% - 85%) / 2); }
	.pf-socket__inner { height: 26.4px; }
	.pf-hero-video { aspect-ratio: auto; height: 195px; }
}

/* ==========================================================================
   P1 CSS-parity pass 3 (2026-10-23) — residuals B1-B10.
   Every value is a production computed value read from the live page.
   ========================================================================== */

/* --- B1 front advisory band: production paints the photograph with
   background-attachment: fixed, then a #06354b overlay element at opacity .7
   (measured #av_section_8 bg rgb(6,53,75) + .av-section-color-overlay 0.7 at
   inset 0). The rebuild painted the photograph at full strength, so the bands
   at y3480-4200 of the front page differed on 100 % of their pixels
   (stg rgb(57,120,161) vs prod rgb(5,52,75), dmax 86). ------------------- */
.pf-section--bgimage {
	min-height: 0;
	position: relative;
	background-color: #06354b;
	background-attachment: fixed;
	background-position: 0% 0%;
	background-size: cover;
}
.pf-section--bgimage::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #06354b;
	opacity: 0.7;
	pointer-events: none;
	z-index: 0;
}
/* production centres the band's content in the 75 vh minimum height:
   measured section 750 px, content 527.8 px, first child at +111.1 */
.pf-section--bgimage > .pf-container {
	position: relative;
	z-index: 1;
	min-height: 75vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: 70px;
	padding-bottom: 70px;
}
/* production: h1 margin 0, subtitle 5.4 px below it, 60 px of the special
   heading's padding before the icon row (measured 3574.2 / 3634.6 / 3718) */
.pf-section--bgimage .pf-heading--hero { margin: 0; }
.pf-section--bgimage .pf-heading__sub { margin: 5.4px 0 60px; }
/* production icon block: .av_font_icon starts 39.2 px below the column top,
   glyph box 53.5 px, caption 16/20.8 in a 124 px block 8 px below, 35.1 px
   below the caption (column measured 156.6 px for a one-line caption) */
.pf-icon { text-align: center; padding: 39.2px 0 35.1px; }
.pf-icon__glyph {
	display: block;
	width: 53px;
	height: 53.5px;
	line-height: 53.5px;
	margin: 0 auto;
	font-size: 40px;
	border: 0;
	border-radius: 0;
	color: #ffffff;
}
.pf-icon__icon { display: none; }
.pf-icon__cap {
	display: block;
	width: 124px;
	max-width: 100%;
	margin: 8px auto 0;
	font-size: 16px;
	line-height: 20.8px;
	color: #ffffff;
	/* production's .av_icon_caption is one line high in a 124 px block
	   (measured h=20.8 = 20.8 line-height) — the caption is clipped, not
	   wrapped, which is what keeps the icon column at 156.6 px */
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.pf-icon__text { font-size: 12px; line-height: 19px; margin: 4px 0 0; }

/* --- B1/B2/B7 hero plate: production's next band starts at the plate's own
   edge (myslider 100 + 810 = av_section_2 at 910; at 1024 676, at 390 399.7).
   The 9.4 px margin-bottom shifted every band of every page down. --------- */
.pf-hero-video { margin-bottom: 0; }

/* --- B5 contact page: production's rule is a 25 px block with 30 px margins
   and a 1 px #e1e1e1 line inside (measured .hr 220.8 h=25 mt/mb 30,
   .hr-inner border-top 1px rgb(225,225,225)). The rebuild rendered the
   .wp-block-separator as a 2 px bar with no margins, which cost the left
   column 83 px and started the footer one band early. --------------------- */
.pf-row hr.wp-block-separator {
	width: 100%;
	max-width: none;
	height: 25px;
	margin: 30px 0;
	border: 0;
	background: none;
	position: relative;
}
.pf-row hr.wp-block-separator::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 12px;
	border-top: 1px solid #e1e1e1;
}
/* production's contact columns are not an equal-height table: both cells sit
   at the row top (measured form column and iconbox column both start at 150) */
.pf-contact-page .pf-row { align-items: flex-start; }

/* --- B6 footer box: production is 347.4 px from the footer start
   (wrap 16 px + container 245 px + 30 px, then the 57.4 px socket).
   The rebuild measured 326.4 px. ----------------------------------------- */
.pf-footer { padding-top: 16px; }
.pf-footer .pf-container { padding-bottom: 30px; }
.pf-footer__cols { padding-bottom: 8px; }
/* the nested "Solutions" row was height:0 / overflow:hidden / visibility:hidden
   (WP ships the closed-submenu state): production renders it as a normal
   35.4 px row (measured sub-menu 886.2 h=39.4) */
.pf-footer__nav ul.wp-block-navigation__submenu-container {
	height: auto !important;
	overflow: visible !important;
	visibility: visible !important;
	opacity: 1 !important;
}
.wp-block-group.pf-socket { padding-top: 15px; padding-bottom: 16px; }

/* --- B2/B4 header nav at 1024: production keeps the submenus out of the flow
   (absolute). Ours stayed in flow and inflated the nav to 210 px at y = -40,
   wrapping the utility band to three rows. ------------------------------- */
.pf-header__nav .wp-block-navigation-item { position: relative; }
.pf-header__nav .wp-block-navigation__submenu-container {
	position: absolute !important;
	top: 100% !important;
	left: 0 !important;
	height: auto !important;
	overflow: visible !important;
	min-width: 208px !important;
	background: #00243b !important;
	z-index: 100;
}

/* --- B7 390 stacking: production's bands carry 50 px above and 70 px below
   their content at 390 (measured every section: 50 top / 70 bottom), the
   advisory icon columns stack with a 20 px gap (pitch 176.6 = 156.6 + 20),
   the utility band is 124.8 px, and the footer widgets keep their 30 px
   inner margins with a 20 px column gap. --------------------------------- */
@media (max-width: 767px) {
	.pf-section > .pf-container { padding-bottom: 70px; }
	.pf-icon { margin-bottom: 20px; }
	.wp-block-group.pf-header__bar { padding-top: 0; }
	.pf-header__bar-inner { padding: 2px 0; }
	.pf-header__bar .pf-header__phone { height: 30px; line-height: 30px; padding: 0; }
	.pf-footer__cols { padding-top: 0; }
	.pf-footer .wp-block-column { padding: 30px 0; margin-bottom: 20px; }
}

/* --- B4 service 1024: production's Fluent form keeps two 269.3 px field
   columns at every desktop width, so the fields have to be proportional
   (50 % - 15 px = 269.35 px at 1440). As fixed 269 px they wrapped to one
   field per row at 1024 and the enquiry band grew 157 px (measured band
   651.4 vs production 497.2). ---------------------------------------------- */
[id*="wpcf7-f6482"] .wpcf7-form > p { width: calc(50% - 15px) !important; }

/* --- B5 contact 390: production's form column carries a closing rule below
   the form (306 right column: hr at 897.6, 25 px + 30 px margins). The
   rebuild's post_content has no such block, and at 390 the two columns stack,
   so the page measured 219 px short. The theme paints the rule so the geometry
   matches; the block itself belongs in the page markup when P3 converts the
   page (recorded in P1-accepted-differences.md). -------------------------- */
@media (max-width: 989px) {
	.pf-contact-page .pf-col--half:last-child::after {
		content: "";
		display: block;
		height: 25px;
		margin: 30px 0;
		border-top: 1px solid #e1e1e1;
	}
}
