/* Island Strong site styles. Palette slots and type come from design/DESIGN.md via the Kadence globals.
   Grounds: Concrete (palette8) and Iron (palette3) only. White is for cards and fields. No blue anywhere. */

:root {
	--fl-forge: var(--global-palette1, #C2410C);
	--fl-forge-dark: var(--global-palette2, #9A3412);
	--fl-iron: var(--global-palette3, #17181A);
	--fl-graphite: var(--global-palette4, #2B2D31);
	--fl-steel: var(--global-palette5, #9AA3AD);
	--fl-ember: var(--global-palette6, #E8622C);
	--fl-rule: var(--global-palette7, #D6D2CA);
	--fl-concrete: var(--global-palette8, #F2F0EC);
	--fl-white: var(--global-palette9, #FFFFFF);
	--fl-ondark-body: #D9DCE0;
	--fl-iron-2: #222427;
	--fl-display: "Archivo", "Arial Black", Arial, sans-serif;
	--fl-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--fl-max: 1240px;
	--fl-gutter: clamp(20px, 4vw, 40px);
}

body { font-family: var(--fl-body); color: var(--fl-graphite); -webkit-font-smoothing: antialiased; background: var(--fl-concrete); }
h1, h2, h3, h4, .fl-display { font-family: var(--fl-display); color: var(--fl-iron); letter-spacing: -0.012em; }
h1 { font-weight: 900; text-transform: uppercase; } h2 { font-weight: 800; } h3, h4 { font-weight: 700; letter-spacing: -0.005em; }
.entry-content p, .entry-content li { max-width: 68ch; }
.entry-content a:not(.kb-button):not(.fl-btn) { color: var(--fl-forge); text-underline-offset: 0.18em; }
.entry-content a:not(.kb-button):not(.fl-btn):hover { color: var(--fl-forge-dark); }
:focus-visible { outline: 3px solid var(--fl-forge); outline-offset: 3px; }
.fl-on-dark :focus-visible, .fl-footer :focus-visible, .fl-hero :focus-visible, .site-header :focus-visible { outline-color: var(--fl-ember); }
.entry-content .wp-block-kadence-advancedheading { margin-bottom: 0.45em; }
.kb-row-layout-wrap > .kt-row-column-wrap { max-width: var(--fl-max); }

/* small type roles */
.fl-eyebrow { font-family: var(--fl-body) !important; font-weight: 700 !important; font-size: 13px !important; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fl-forge); margin: 0 0 12px !important; }
.fl-eyebrow::before { content: ""; display: inline-block; width: 28px; height: 3px; background: currentColor; vertical-align: 0.3em; margin-right: 10px; }
.fl-eyebrow + .wp-block-kadence-advancedheading, .fl-eyebrow + h2, .fl-eyebrow + h3 { margin-top: 0 !important; }
.fl-lede { font-size: 20px; line-height: 1.55; }
@media (max-width: 767px) { .fl-lede { font-size: 18px; } }
.fl-note { font-size: 15px; color: var(--fl-graphite); }
.fl-credit { font-size: 12px !important; color: #5A5E64; margin-top: 6px !important; }
.fl-on-dark .fl-credit { color: var(--fl-steel); }
.fl-placeholder { background: #FFF1E0; outline: 1px dashed var(--fl-forge); padding: 0 4px; font-weight: 600; color: #5C2408; }

/* phone links */
.fl-phone { font-weight: 700; color: var(--fl-iron); text-decoration: none; white-space: nowrap; }
.fl-phone::before { content: ""; display: inline-block; width: 0.9em; height: 0.9em; margin-right: 0.45em; vertical-align: -0.08em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat; }
.fl-phone:hover { color: var(--fl-forge-dark); }
.fl-phone--light, .fl-on-dark .fl-phone, .fl-hero .fl-phone { color: var(--fl-white); }
.fl-phone--light:hover, .fl-on-dark .fl-phone:hover, .fl-hero .fl-phone:hover { color: var(--fl-ember); }

/* ===================================================================== header
   Sticky on desktop and mobile. Over a photo hero it starts transparent with white type; once
   stuck it is solid Iron and slimmer (Kadence's own shrink). Everywhere else it is solid Iron. */
.site-header { --fl-hh: 88px; }
#masthead .site-main-header-wrap .site-header-row-container-inner { background: var(--fl-iron); transition: background-color .25s ease, box-shadow .25s ease; }
.transparent-header #masthead .site-main-header-wrap:not(.item-is-stuck) .site-header-row-container-inner { background: linear-gradient(180deg, rgba(23,24,26,0.72) 0%, rgba(23,24,26,0) 100%); }
#masthead .item-is-stuck .site-header-row-container-inner, #masthead .site-main-header-wrap.item-is-stuck .site-header-row-container-inner { background: var(--fl-iron) !important; box-shadow: 0 6px 22px rgba(0,0,0,0.28); }
.site-header .site-branding img { width: auto; }
.site-header .main-navigation .primary-menu-container > ul > li.menu-item > a { font-family: var(--fl-body); font-weight: 600; font-size: 16px; color: var(--fl-white); padding-left: 0.9em; padding-right: 0.9em; }
.site-header .main-navigation .primary-menu-container > ul > li.menu-item > a:hover, .site-header .main-navigation .primary-menu-container > ul > li.current-menu-item > a, .site-header .main-navigation .primary-menu-container > ul > li.current-menu-ancestor > a { color: var(--fl-ember); }
.site-header .main-navigation .primary-menu-container > ul > li.menu-item > a .dropdown-nav-toggle { color: inherit; }
.site-header .header-navigation .header-menu-container ul ul.sub-menu { background: var(--fl-iron); border-top: 3px solid var(--fl-ember); box-shadow: 0 18px 40px rgba(0,0,0,0.35); min-width: 260px; padding: 10px 0; }
.site-header .header-navigation .header-menu-container ul ul li.menu-item > a { color: var(--fl-ondark-body); font-weight: 600; font-size: 15px; padding: 10px 22px; border: 0; }
.site-header .header-navigation .header-menu-container ul ul li.menu-item > a:hover { color: var(--fl-white); background: var(--fl-iron-2); }
.site-header .header-html .fl-phone { color: var(--fl-white); font-size: 17px; }
.site-header .header-html .fl-phone:hover { color: var(--fl-ember); }
.site-header .header-button-wrap .header-button, .site-header .mobile-header-button-wrap .button { background: var(--fl-ember) !important; color: var(--fl-iron) !important; border: 0 !important; border-radius: 3px; font-family: var(--fl-body); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: 14px; padding: 14px 20px; }
.site-header .header-button-wrap .header-button:hover { background: var(--fl-white) !important; color: var(--fl-iron) !important; }
.site-header .menu-toggle-open, .site-header .menu-toggle-open .menu-toggle-icon { color: var(--fl-white) !important; }
.site-header .mobile-toggle-open-container .menu-toggle-open { border: 2px solid rgba(255,255,255,0.35); border-radius: 3px; padding: 8px 10px; }
#mobile-drawer .drawer-inner { background: var(--fl-iron); }
#mobile-drawer .drawer-header .drawer-toggle { color: var(--fl-white); }
#mobile-drawer .mobile-navigation ul li a { color: var(--fl-white); font-family: var(--fl-body); font-weight: 600; font-size: 18px; border-bottom-color: rgba(255,255,255,0.1); }
#mobile-drawer .mobile-navigation ul ul li a { color: var(--fl-ondark-body); font-size: 16px; }
#mobile-drawer .mobile-navigation ul li a:hover, #mobile-drawer .mobile-navigation .current-menu-item > a { color: var(--fl-ember); }
#mobile-drawer .mobile-navigation .drawer-sub-toggle { color: var(--fl-white); }
#mobile-drawer .fl-phone { color: var(--fl-white); font-size: 18px; }
#mobile-drawer .mobile-header-button-wrap .button { width: 100%; text-align: center; }
.site-header a.fl-phone, .site-header .fl-phone { text-decoration: none !important; }

/* breadcrumbs */
.fl-crumbs { font-size: 14px; margin-bottom: 20px; color: #55595F; font-weight: 600; }
.fl-crumbs a { color: inherit; text-decoration: none; }
.fl-crumbs a:hover { text-decoration: underline; }
.fl-crumbs__sep { margin: 0 9px; opacity: 0.55; }
.fl-on-dark .fl-crumbs, .fl-hero .fl-crumbs, .fl-on-dark .fl-crumbs a, .fl-hero .fl-crumbs a { color: var(--fl-steel) !important; }
.fl-hero .fl-crumbs span[aria-current] { color: var(--fl-white); }
/* unconfirmed items: open marker, never a tick */
.entry-content ul.fl-unconfirmed { list-style: none; padding: 0 !important; display: grid; gap: 8px; }
.entry-content ul.fl-unconfirmed li { background: var(--fl-concrete); border: 1px dashed var(--fl-rule); border-radius: 3px; padding: 10px 14px; margin: 0; }

/* dark sections */
.fl-on-dark { color: var(--fl-ondark-body); }
.fl-on-dark h1, .fl-on-dark h2, .fl-on-dark h3, .fl-on-dark h4 { color: var(--fl-white); }
.fl-on-dark .entry-content a:not(.kb-button), .fl-on-dark a:not(.kb-button):not(.fl-btn) { color: var(--fl-ember); }
.fl-on-dark .fl-eyebrow { color: var(--fl-ember); }

/* ===================================================================== buttons
   Primary on light: Forge fill, white label (5.2:1). On Iron or over a photo: Ember fill, Iron label
   (5.3:1). Ghost on dark: white outline. */
.wp-block-kadence-advancedbtn .kb-button, .fl-btn { font-family: var(--fl-body); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: 15px; border-radius: 3px; padding: 17px 28px; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.wp-block-kadence-advancedbtn .kb-button:hover { transform: translateY(-1px); }
.wp-block-kadence-advancedbtn.kb-buttons-wrap { gap: 14px 16px; align-items: center; }
.fl-btn { display: inline-block; text-decoration: none; background: var(--fl-forge); color: var(--fl-white); }
.fl-on-dark .kb-button:not(.fl-ghost), .fl-hero .kb-button:not(.fl-ghost), .fl-btn--ember { background: var(--fl-ember) !important; color: var(--fl-iron) !important; border-color: var(--fl-ember) !important; }
.fl-on-dark .kb-button:not(.fl-ghost):hover, .fl-hero .kb-button:not(.fl-ghost):hover, .fl-btn--ember:hover { background: var(--fl-white) !important; color: var(--fl-iron) !important; }
.kb-button.fl-ghost { background: transparent !important; color: var(--fl-iron) !important; border: 2px solid var(--fl-iron) !important; }
.fl-on-dark .kb-button.fl-ghost, .fl-hero .kb-button.fl-ghost { color: var(--fl-white) !important; border-color: rgba(255,255,255,0.85) !important; }
.fl-on-dark .kb-button.fl-ghost:hover, .fl-hero .kb-button.fl-ghost:hover { background: var(--fl-white) !important; color: var(--fl-iron) !important; }

/* ===================================================================== hero (premium moment)
   Full-bleed photo (the row's own background image), Iron overlay, heavy left-aligned headline.
   Every word, the photo and both buttons are ordinary Kadence blocks. */
.fl-hero { position: relative; }
.fl-hero > .kt-row-column-wrap { min-height: clamp(520px, 78vh, 820px); align-content: end; padding-top: calc(var(--fl-hh, 88px) + 56px) !important; padding-bottom: clamp(56px, 8vh, 96px) !important; }
.fl-hero--inner > .kt-row-column-wrap { min-height: clamp(420px, 58vh, 600px); }
.fl-hero .kt-row-layout-overlay { background: linear-gradient(90deg, rgba(23,24,26,0.92) 0%, rgba(23,24,26,0.78) 45%, rgba(23,24,26,0.35) 100%) !important; opacity: 1 !important; }
.fl-hero h1 { color: var(--fl-white); font-size: clamp(40px, 5.6vw, 82px); line-height: 0.98; max-width: 15ch; margin: 0 0 22px; }
.fl-hero--inner h1 { font-size: clamp(38px, 4.6vw, 66px); max-width: 18ch; }
.fl-hero--long h1 { font-size: clamp(34px, 4vw, 58px); max-width: 20ch; }
.fl-hero .fl-lede { color: var(--fl-ondark-body); max-width: 50ch; font-size: clamp(18px, 1.5vw, 21px); }
.fl-hero .fl-eyebrow { color: var(--fl-ember); }
.fl-hero__area { font-size: 15px !important; color: var(--fl-steel); font-weight: 600; margin-top: 22px !important; }
.fl-hero__area::before { content: ""; display: inline-block; width: 10px; height: 10px; background: var(--fl-ember); margin-right: 10px; transform: rotate(45deg); vertical-align: 0.05em; }
.fl-hero .fl-credit { position: absolute; right: 14px; bottom: 10px; margin: 0 !important; color: rgba(255,255,255,0.75); font-size: 11px !important; z-index: 3; }
@media (prefers-reduced-motion: no-preference) {
	.fl-hero .kt-inside-inner-col > * { animation: fl-rise 0.8s cubic-bezier(.2,.7,.2,1) both; }
	.fl-hero .kt-inside-inner-col > *:nth-child(2) { animation-delay: 0.07s; }
	.fl-hero .kt-inside-inner-col > *:nth-child(3) { animation-delay: 0.14s; }
	.fl-hero .kt-inside-inner-col > *:nth-child(n+4) { animation-delay: 0.21s; }
}
@keyframes fl-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
	.fl-hero > .kt-row-column-wrap { min-height: 560px; padding-top: 112px !important; padding-bottom: 44px !important; }
	.fl-hero--inner > .kt-row-column-wrap { min-height: 460px; }
	.fl-hero .kt-row-layout-overlay { background: linear-gradient(180deg, rgba(23,24,26,0.62) 0%, rgba(23,24,26,0.86) 55%, rgba(23,24,26,0.95) 100%) !important; }
	.fl-hero h1 { font-size: 40px; }
	.fl-hero--inner h1, .fl-hero--long h1 { font-size: 34px; }
	.fl-hero .wp-block-kadence-advancedbtn { flex-direction: column; align-items: stretch; }
	.fl-hero .wp-block-kadence-advancedbtn .kb-button { width: 100%; justify-content: center; }
}

/* sub-page head without a photo (legal pages, forms) */
.fl-pagehead { padding-top: calc(var(--fl-hh, 88px) * 0) ; }
.fl-pagehead h1 { max-width: 22ch; font-size: clamp(38px, 4.4vw, 60px); line-height: 1.0; }

/* ===================================================================== trust strip
   Only true items. Credential slots live in the draft "Credentials (hidden)" pattern, not on pages. */
.fl-trust { border-top: 1px solid rgba(255,255,255,0.08); }
.fl-trust > .kt-row-column-wrap { padding-top: 26px !important; padding-bottom: 26px !important; gap: 18px 28px !important; }
.fl-trust__item > .kt-inside-inner-col { display: grid; grid-template-columns: 34px 1fr; gap: 2px 14px; align-items: start; }
.fl-trust__item > .kt-inside-inner-col::before { content: ""; grid-row: span 2; width: 34px; height: 34px; margin-top: 2px; background: var(--fl-ember); -webkit-mask: var(--fl-i) center/contain no-repeat; mask: var(--fl-i) center/contain no-repeat; }
.fl-trust__item h3, .fl-trust__item .fl-trust__t { font-family: var(--fl-display) !important; font-size: 17px !important; font-weight: 800; color: var(--fl-white) !important; margin: 0 !important; line-height: 1.25 !important; text-transform: uppercase; letter-spacing: 0.01em; }
.fl-trust__item p { color: var(--fl-steel); font-size: 15px; margin: 2px 0 0 !important; line-height: 1.45; }
.fl-i-quote { --fl-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h9l5 5v15H6V2zm8 1.5V8h4.5L14 3.5zM9 12h8v1.6H9V12zm0 3.4h8V17H9v-1.6zm0-6.8h4v1.6H9V8.6z'/%3E%3C/svg%3E"); }
.fl-i-area { --fl-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.6A2.6 2.6 0 1 1 12 6.4a2.6 2.6 0 0 1 0 5.2z'/%3E%3C/svg%3E"); }
.fl-i-one { --fl-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9zm0 2c-4 0-8 2-8 5.4V22h16v-2.6C20 16 16 14 12 14z'/%3E%3C/svg%3E"); }
.fl-i-crew { --fl-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C7.6 3 4 6.1 4 10v2H2v3h20v-3h-2v-2c0-3.9-3.6-7-8-7zm-1 2.1V9h2V5.1c3 .5 5 2.5 5 4.9v2H6v-2c0-2.4 2-4.4 5-4.9zM3 17h18v2H3z'/%3E%3C/svg%3E"); }
.fl-i-shield { --fl-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 4 5v6c0 5 3.4 9.6 8 11 4.6-1.4 8-6 8-11V5l-8-3z'/%3E%3C/svg%3E"); }
.fl-i-time { --fl-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 10.4 3.6 2.1-.8 1.4L11 13V6h2v6.4z'/%3E%3C/svg%3E"); }
@media (max-width: 767px) { .fl-trust > .kt-row-column-wrap { grid-template-columns: 1fr 1fr !important; } .fl-trust__item p:not(.fl-trust__t) { display: none; } }

/* ===================================================================== cards
   White on Concrete, photo on top 4:3, title and one line, arrow link. Hover lifts and zooms. */
.fl-card > .kt-inside-inner-col { background: var(--fl-white) !important; border: 1px solid var(--fl-rule); border-radius: 4px; overflow: hidden; height: 100%; padding: 0 0 24px !important; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.fl-card:hover > .kt-inside-inner-col { transform: translateY(-4px); box-shadow: 0 18px 36px rgba(23,24,26,0.14); border-color: transparent; }
.fl-card .wp-block-kadence-image { margin: 0 0 20px !important; overflow: hidden; }
.fl-card .wp-block-kadence-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; transition: transform .5s ease; }
.fl-card:hover .wp-block-kadence-image img { transform: scale(1.045); }
.fl-card h3, .fl-card p { padding: 0 24px; }
.fl-card h3 { font-size: 21px; margin: 0 0 8px; text-transform: none; }
.fl-card h3 a { color: var(--fl-iron) !important; text-decoration: none; }
.fl-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fl-card > .kt-inside-inner-col { position: relative; }
.fl-card:hover h3 a { color: var(--fl-forge) !important; }
.fl-card p { font-size: 16px; margin: 0; }
.fl-card .fl-card__more { margin-top: auto; padding-top: 16px; }
.fl-card .fl-credit { padding: 0 24px; margin-top: 10px !important; position: relative; z-index: 2; }
.fl-card--text > .kt-inside-inner-col { background: var(--fl-iron) !important; border-color: var(--fl-iron); border-top: 4px solid var(--fl-ember); justify-content: center; color: var(--fl-ondark-body); padding-top: 26px !important; }
.fl-card--text h3, .fl-card--text h3 a { color: var(--fl-white) !important; }
.fl-card--text .fl-arrow { color: var(--fl-ember) !important; }
.fl-card--text p { color: var(--fl-ondark-body); }
.fl-card-empty > .kt-inside-inner-col { display: none; }
/* big service cards: the photo carries the title */
.fl-card--big .wp-block-kadence-image img { aspect-ratio: 4 / 3; }
.fl-arrow { font-weight: 700; color: var(--fl-forge) !important; text-decoration: none !important; text-transform: uppercase; letter-spacing: 0.05em; font-size: 14px; }
.fl-arrow::after { content: " \2192"; display: inline-block; transition: transform .2s ease; }
.fl-card:hover .fl-arrow::after, .fl-arrow:hover::after { transform: translateX(4px); }

/* scope cards (service pages): numbered, white, Forge top rule */
.fl-scope > .kt-inside-inner-col { background: var(--fl-white); border: 1px solid var(--fl-rule); border-top: 4px solid var(--fl-forge); border-radius: 0 0 4px 4px; padding: 26px 26px 28px !important; height: 100%; }
.fl-scope .fl-stepn { font-family: var(--fl-display) !important; font-weight: 900; font-size: 15px !important; color: var(--fl-forge); letter-spacing: 0.08em; margin-bottom: 10px !important; }
.fl-scope h3 { font-size: 22px; margin: 0 0 10px; }
.fl-scope p { font-size: 16px; margin: 0; }

/* steps: process (dark band) */
.fl-step > .kt-inside-inner-col { border-top: 3px solid var(--fl-iron); padding-top: 22px !important; position: relative; }
.fl-step .fl-stepn { font-family: var(--fl-display) !important; font-weight: 900; font-size: 52px !important; line-height: 1 !important; color: var(--fl-forge); margin-bottom: 14px !important; }
.fl-step h3 { font-size: 21px; margin: 0 0 8px; }
.fl-step p { font-size: 16px; }
.fl-on-dark .fl-step > .kt-inside-inner-col { border-top-color: var(--fl-ember); }
.fl-on-dark .fl-step .fl-stepn { color: var(--fl-ember); }
.fl-on-dark .fl-step p { color: var(--fl-ondark-body); }

/* "Built for the coast" statement band */
.fl-coast h2 { font-size: clamp(36px, 4.6vw, 64px); line-height: 1.0; text-transform: uppercase; font-weight: 900; max-width: 14ch; }
.fl-coast .fl-coast__points > .kt-inside-inner-col { border-left: 3px solid var(--fl-ember); padding-left: 22px !important; }

/* photos in splits */
.fl-photo img { width: 100%; border-radius: 4px; object-fit: cover; aspect-ratio: 4 / 3; }
.fl-photo--tall img { aspect-ratio: 4 / 5; }
.fl-band-photos .wp-block-kadence-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 2px; }
.fl-band-photos .fl-credit { font-size: 11px !important; }

/* checklists and numbered lists, carded (R3/R4) */
.entry-content ul.fl-checks, .entry-content ol.fl-numbered { list-style: none; padding: 0 !important; margin: 0 0 1.2em; display: grid; gap: 8px; counter-reset: fl; }
.entry-content ul.fl-checks li, .entry-content ol.fl-numbered li { position: relative; background: var(--fl-white); border: 1px solid var(--fl-rule); border-radius: 3px; padding: 12px 14px 12px 46px; margin: 0; max-width: none; }
.entry-content ul.fl-checks li::before { content: ""; position: absolute; left: 17px; top: 1.1em; width: 13px; height: 7px; border-left: 3px solid var(--fl-forge); border-bottom: 3px solid var(--fl-forge); transform: rotate(-45deg); }
.entry-content ol.fl-numbered li { counter-increment: fl; }
.entry-content ol.fl-numbered li::before { content: counter(fl); position: absolute; left: 15px; top: 11px; font: 900 17px/1.4 var(--fl-display); color: var(--fl-forge); }
.fl-callout ol.fl-numbered li, .fl-callout ul.fl-checks li { background: var(--fl-concrete); }
.fl-on-dark ul.fl-checks li, .fl-on-dark ol.fl-numbered li { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.14); color: var(--fl-ondark-body); }
.fl-on-dark ul.fl-checks li::before { border-color: var(--fl-ember); }
.fl-on-dark ol.fl-numbered li::before { color: var(--fl-ember); }
.entry-content ul.fl-svc-list { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.entry-content ul.fl-svc-list li a { color: var(--fl-iron); font-weight: 700; text-decoration: none; }
.entry-content ul.fl-svc-list li a:hover { color: var(--fl-forge); }

/* callout */
.fl-callout > .kt-inside-inner-col { background: var(--fl-white); border-left: 4px solid var(--fl-forge); padding: 24px 28px !important; border-radius: 0 4px 4px 0; }
.fl-callout h3 { font-size: 20px; margin-top: 0; }

/* permits (low on service pages, tightened) */
.fl-permits > .kt-row-column-wrap { border-top: 1px solid var(--fl-rule); }

/* FAQ */
.fl-faq .kt-accordion-header-wrap .kt-blocks-accordion-header { background: var(--fl-white); color: var(--fl-iron); border: 1px solid var(--fl-rule); border-radius: 3px; padding: 18px 22px; font-family: var(--fl-body); font-weight: 700; font-size: 18px; }
.fl-faq .kt-accordion-header-wrap .kt-blocks-accordion-header:hover, .fl-faq .kt-accordion-header-wrap .kt-blocks-accordion-header.kt-accordion-panel-active { color: var(--fl-forge); background: var(--fl-white); border-color: var(--fl-forge); }
.fl-faq .kt-accordion-panel-inner { background: var(--fl-white); border: 1px solid var(--fl-rule); border-top: 0; padding: 4px 22px 18px; }
.fl-faq .kt-accordion-pane { margin-bottom: 10px; }
.fl-faq h3.kt-blocks-accordion-title-wrap, .fl-faq .kt-blocks-accordion-title { font-size: 18px; }
.fl-faq .kt-blocks-accordion-icon-trigger:before, .fl-faq .kt-blocks-accordion-icon-trigger:after { background: var(--fl-forge) !important; }
.fl-faq .wp-block-kadence-image { margin-top: 64px; }
@media (max-width: 767px) { .fl-faq .wp-block-kadence-image { margin-top: 24px; } }

/* sources */
.fl-srcline { font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.fl-sources ol { font-size: 15px; }
.fl-sources li { margin-bottom: 6px; overflow-wrap: anywhere; }

/* closing ask */
.fl-cta h2 { font-size: clamp(36px, 4.4vw, 60px); line-height: 1.0; text-transform: uppercase; font-weight: 900; }
.fl-callline { margin-top: 18px; }

/* about: Dezmond */
.fl-portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; border-radius: 4px; }
.fl-portrait figcaption, .fl-portrait .fl-portrait__cap { font-size: 14px; color: var(--fl-steel); }
@media (max-width: 767px) { .fl-portrait img { aspect-ratio: 1 / 1; object-position: 50% 18%; } }

/* ===================================================================== Forminator (style: none) */
.forminator-ui.forminator-custom-form { font-family: var(--fl-body); max-width: 720px; }
.fl-formcard > .kt-inside-inner-col { background: var(--fl-white); border: 1px solid var(--fl-rule); border-top: 4px solid var(--fl-forge); border-radius: 0 0 4px 4px; padding: clamp(22px, 4vw, 44px) !important; }
.forminator-ui .forminator-row { margin-bottom: 22px; display: flex; gap: 20px; flex-wrap: wrap; }
.forminator-ui .forminator-col { flex: 1 1 260px; min-width: 0; }
.forminator-ui .forminator-label, .forminator-ui legend.forminator-label { display: block; font-weight: 700; font-size: 17px; color: var(--fl-iron); margin-bottom: 8px; }
.forminator-ui .forminator-required { color: var(--fl-forge-dark); }
.forminator-ui .forminator-description { font-size: 15px; color: #55595F; margin-top: 6px; display: block; }
.forminator-ui input.forminator-input, .forminator-ui textarea.forminator-textarea, .forminator-ui select.forminator-select--field, .forminator-ui .forminator-select2 + .select2 .select2-selection { width: 100%; min-height: 52px; border: 1px solid #8F8A82; border-radius: 3px; background: var(--fl-white); padding: 12px 14px; font: inherit; font-size: 17px; color: var(--fl-graphite); box-sizing: border-box; }
.forminator-ui textarea.forminator-textarea { min-height: 130px; }
.forminator-ui input:focus, .forminator-ui textarea:focus, .forminator-ui select:focus { outline: 3px solid var(--fl-forge); outline-offset: 1px; border-color: var(--fl-iron); }
.forminator-ui .forminator-radio, .forminator-ui .forminator-checkbox { display: flex; align-items: flex-start; gap: 12px; padding: 13px 14px; border: 1px solid var(--fl-rule); border-radius: 3px; margin-bottom: 8px; background: var(--fl-white); cursor: pointer; font-size: 17px; line-height: 1.4; }
.forminator-ui .forminator-radio:hover, .forminator-ui .forminator-checkbox:hover { border-color: var(--fl-iron); }
.forminator-ui .forminator-radio input, .forminator-ui .forminator-checkbox input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--fl-forge); flex: 0 0 auto; position: static; opacity: 1; }
.forminator-ui .forminator-radio-bullet, .forminator-ui .forminator-checkbox-box { display: none; }
.forminator-ui .forminator-checkbox-label, .forminator-ui .forminator-radio-label { display: inline; }
.forminator-ui .forminator-button, .forminator-ui button.forminator-button-next, .forminator-ui button.forminator-button-submit { background: var(--fl-forge); color: var(--fl-white); border: 0; border-radius: 3px; min-height: 52px; padding: 15px 30px; font: 700 15px var(--fl-body); text-transform: uppercase; letter-spacing: 0.04em; cursor: pointer; }
.forminator-ui .forminator-button:hover { background: var(--fl-forge-dark); }
.forminator-ui .forminator-button-back { background: transparent !important; color: var(--fl-iron) !important; border: 2px solid var(--fl-iron) !important; }
.forminator-ui .forminator-pagination-footer { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.forminator-ui .forminator-pagination-progress { margin-bottom: 26px; }
.forminator-ui .forminator-progress-label { font-size: 15px; font-weight: 700; color: var(--fl-iron); display: block; margin-bottom: 8px; }
.forminator-ui .forminator-progress-bar { height: 8px; background: var(--fl-rule); border-radius: 0; overflow: hidden; }
.forminator-ui .forminator-progress-bar span { display: block; height: 100%; background: var(--fl-forge); }
.forminator-ui .forminator-error-message, .forminator-ui .forminator-response-message.forminator-error { color: #9B1C1C; font-size: 15px; margin-top: 6px; display: block; }
.forminator-ui .forminator-response-message.forminator-success { background: var(--fl-white); border-left: 4px solid var(--fl-forge); padding: 18px 22px; font-size: 18px; }
.forminator-ui .forminator-file-upload button { background: var(--fl-white) !important; color: var(--fl-iron) !important; border: 2px solid var(--fl-iron) !important; border-radius: 3px; padding: 10px 18px; font-weight: 700; }
.forminator-ui .forminator-has_error input, .forminator-ui .forminator-has_error textarea { border-color: #9B1C1C; }
.forminator-ui .forminator-hidden, .forminator-ui [aria-hidden="true"].forminator-pagination { display: none; }
.forminator-ui .forminator-checkbox__wrapper { display: flex; align-items: flex-start; gap: 12px; background: var(--fl-concrete); border: 1px solid var(--fl-rule); border-radius: 3px; padding: 14px; }
.forminator-ui .forminator-checkbox__wrapper .forminator-checkbox.forminator-consent { border: 0; padding: 0; margin: 2px 0 0; background: transparent; flex: 0 0 auto; }
.forminator-ui .forminator-checkbox__wrapper .forminator-consent__label { font-size: 15px; line-height: 1.5; margin: 0; }

/* ===================================================================== footer */
.fl-footer { background: var(--fl-iron); color: var(--fl-ondark-body); font-size: 16px; border-top: 4px solid var(--fl-ember); }
.fl-footer a { color: var(--fl-white); }
.fl-footer__inner { max-width: var(--fl-max); margin: 0 auto; padding: 72px 24px 40px; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; }
.fl-footer__brand p { max-width: 42ch; }
.fl-footer__logo img { width: 280px; height: auto; display: block; margin-bottom: 22px; }
.fl-footer__cta { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-top: 24px; }
.fl-footer__head { font-family: var(--fl-display); font-weight: 800; font-size: 15px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fl-white); margin-bottom: 14px; }
.fl-footer__head a { text-decoration: none; }
.fl-footer ul { list-style: none; margin: 0; padding: 0; }
.fl-footer li { margin-bottom: 10px; }
.fl-footer li a { text-decoration: none; color: var(--fl-ondark-body); }
.fl-footer li a:hover, .fl-footer__base a:hover { color: var(--fl-ember); }
.fl-footer__base { max-width: var(--fl-max); margin: 0 auto; padding: 22px 24px 30px; border-top: 1px solid rgba(255,255,255,0.12); display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; font-size: 14px; color: var(--fl-steel); }
.fl-footer__base p { margin: 0; max-width: 80ch; }
.fl-footer__base a { margin-left: 18px; color: var(--fl-steel); }
@media (max-width: 900px) { .fl-footer__inner { grid-template-columns: 1fr 1fr; } .fl-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 480px) { .fl-footer__inner { grid-template-columns: 1fr; padding-top: 52px; } }

/* ===================================================================== mobile bottom bar (C2) */
.fl-mbar { display: none; }
@media (max-width: 1024px) {
	.fl-mbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 999; background: var(--fl-iron); padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); gap: 8px; box-shadow: 0 -6px 18px rgba(0,0,0,0.25); border-top: 2px solid var(--fl-ember); }
	.fl-mbar a { flex: 1 1 50%; min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 8px; border-radius: 3px; font-weight: 700; font-size: 15px; text-transform: uppercase; letter-spacing: 0.04em; text-decoration: none; }
	.fl-mbar__call { background: transparent; color: var(--fl-white); border: 2px solid rgba(255,255,255,0.8); }
	.fl-mbar__go { background: var(--fl-ember); color: var(--fl-iron); }
	body { padding-bottom: 70px; }
}
@media (max-width: 767px) { .site-header .header-html { display: none; } }

/* ===================================================================== 404 */
.fl-404 .content-area { margin: 0; }
.fl-404 #masthead.site-header { position: relative; }
.fl-404__box { max-width: 760px; margin: 0 auto; padding: 88px 24px 96px; }
.fl-404__box h1 { font-size: clamp(38px, 5vw, 64px); line-height: 1.0; margin: 0 0 16px; }
.fl-404__links { padding-left: 1.2em; font-size: 18px; }
.fl-404__links li { margin-bottom: 8px; }

/* brand board page */
.fl-swatch > .kt-inside-inner-col { border: 1px solid var(--fl-rule); border-radius: 4px; overflow: hidden; background: var(--fl-white); padding: 0 0 12px !important; }

/* ===================================================================== entrance animation
   Kadence's own data-aos="fade-up" (set per block). Hidden only when the runtime is running and
   the visitor allows motion; the resting state is the finished page. */
@media (prefers-reduced-motion: no-preference) {
	.fl-anim [data-aos], .fl-anim .fl-fade { opacity: 0; transform: translateY(26px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
	.fl-anim [data-aos].aos-animate, .fl-anim .fl-fade.aos-animate { opacity: 1; transform: none; }
}

/* polish (redesign audit): balanced headings, press feedback, smooth in-page jumps */
h1, h2, h3, .fl-trust__t { text-wrap: balance; }
.entry-content p { text-wrap: pretty; }
.wp-block-kadence-advancedbtn .kb-button:active, .fl-btn:active, .fl-mbar a:active { transform: translateY(1px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
[id] { scroll-margin-top: 96px; }
/* long display words (ISLAND STRONG, RENOVATIONS) never break mid-word */
h1, h2, .fl-hero h1 { overflow-wrap: normal; word-break: normal; hyphens: manual; }
@media (max-width: 767px) { .fl-pagehead h1 { font-size: 32px; } .fl-cta h2, .fl-coast h2 { font-size: 30px; } }
/* trust strip: 8 columns in the block (4 hidden until confirmed), 4 visible across */
@media (min-width: 768px) { .fl-trust > .kt-row-column-wrap { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }

/* photo band: each photo sits in a white panel */
.fl-photo-card > .kt-inside-inner-col { background: var(--fl-white); border: 1px solid var(--fl-rule); border-radius: 4px; padding: 8px 8px 6px !important; }
.fl-photo-card .wp-block-kadence-image { margin: 0 !important; }

/* trust items and unconfirmed items are bounded panels (R3) */
.fl-trust__item > .kt-inside-inner-col { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.09); border-radius: 3px; padding: 14px 16px !important; height: 100%; }
.entry-content ul.fl-unconfirmed li { background: var(--fl-white); }
/* trust strip on phones: icon above the title, two across, words never split */
.fl-trust__t { overflow-wrap: normal !important; word-break: normal !important; hyphens: none; }
@media (max-width: 767px) {
	.fl-trust > .kt-row-column-wrap { gap: 10px !important; padding-top: 18px !important; padding-bottom: 18px !important; }
	.fl-trust__item > .kt-inside-inner-col { display: block; padding: 12px !important; }
	.fl-trust__item > .kt-inside-inner-col::before { display: block; width: 24px; height: 24px; margin: 0 0 8px; }
	.fl-trust__item .fl-trust__t { font-size: 13px !important; letter-spacing: 0; }
}

/* About: three icon cards under the bio */
.fl-i-eye { --fl-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5C6.5 5 2.7 9.3 1.5 12c1.2 2.7 5 7 10.5 7s9.3-4.3 10.5-7C21.3 9.3 17.5 5 12 5zm0 11.2A4.2 4.2 0 1 1 12 7.8a4.2 4.2 0 0 1 0 8.4zm0-6.4a2.2 2.2 0 1 0 0 4.4 2.2 2.2 0 0 0 0-4.4z'/%3E%3C/svg%3E"); }
.fl-i-level { --fl-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.4 14.2-4.3-4.3 1.6-1.6 2.7 2.7 6-6 1.6 1.6-7.6 7.6z'/%3E%3C/svg%3E"); }
.fl-i-home { --fl-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 11.5h3V21h5.5v-6h3v6H19v-9.5h3L12 3z'/%3E%3C/svg%3E"); }
.fl-icard > .kt-inside-inner-col { background: var(--fl-white); border: 1px solid var(--fl-rule); border-radius: 4px; padding: 26px 26px 24px !important; height: 100%; }
.fl-icard > .kt-inside-inner-col::before { content: ""; display: block; width: 34px; height: 34px; margin-bottom: 14px; background: var(--fl-forge); -webkit-mask: var(--fl-i) center/contain no-repeat; mask: var(--fl-i) center/contain no-repeat; }
.fl-icard h3 { font-size: 21px; margin: 0 0 8px; }
.fl-icard p { font-size: 16px; margin: 0; }
