/*
Theme Name:   Crewplify (Dap Child)
Theme URI:    https://crewplify.com/
Description:  Crewplify website theme — a child theme of Dap with the Crewplify header, footer and design system. Pages are built with Elementor (free). Go to Appearance → Crewplify Setup to build the site.
Author:       Crewplify
Template:     dap
Version:      1.1.3
Requires PHP: 7.4
Text Domain:  crewplify
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
*/

/* =========================================================================
   1. Fonts (bundled locally — no Google Fonts request, GDPR-friendly)
   ====================================================================== */
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/figtree-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/figtree-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/figtree-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/figtree-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 800; font-display: swap; src: url("assets/fonts/figtree-latin-800-normal.woff2") format("woff2"); }

/* =========================================================================
   2. Design tokens — change the brand here
   ====================================================================== */
:root {
	--cp-navy: #1b366d;        /* primary (logo "Crew") */
	--cp-navy-deep: #12264f;
	--cp-blue: #2d7fd3;        /* accent (logo gradient) */
	--cp-green: #6aa842;       /* accent (logo "plify") */
	--cp-green-deep: #4d8a2e;
	--cp-ink: #0f1f3d;         /* headings */
	--cp-text: #4a5870;        /* body copy */
	--cp-muted: #6b7a90;
	--cp-bg: #ffffff;
	--cp-soft: #f3f7fc;        /* alternating section background */
	--cp-soft-2: #eaf1f9;
	--cp-tint: #e6effa;        /* icon circles */
	--cp-line: #e1e8f1;
	--cp-radius: 14px;
	--cp-radius-sm: 8px;
	--cp-shadow: 0 10px 30px rgba(27, 54, 109, .08);
	--cp-shadow-lg: 0 24px 60px rgba(27, 54, 109, .14);
	--cp-font: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--cp-wrap: 1200px;
	--cp-gutter: 24px;
	--cp-header-h: 76px;
}

/* =========================================================================
   3. Base (overrides Dap's reset & typography)
   ====================================================================== */
html { scroll-behavior: smooth; }
body.crewplify {
	font-family: var(--cp-font);
	font-size: 16px;
	line-height: 1.65;
	color: var(--cp-text);
	background: var(--cp-bg);
	-webkit-font-smoothing: antialiased;
	letter-spacing: 0;
}
body.crewplify #myloader { display: none !important; }
body.crewplify #main-wrap { padding: 0; margin: 0; background: var(--cp-bg); overflow-x: clip; }
.crewplify h1, .crewplify h2, .crewplify h3, .crewplify h4, .crewplify h5, .crewplify h6 {
	font-family: var(--cp-font);
	color: var(--cp-ink);
	letter-spacing: -0.02em;
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 .5em;
}
.crewplify h1 { font-size: clamp(2.25rem, 4.6vw, 3.6rem); font-weight: 800; line-height: 1.05; }
.crewplify h2 { font-size: clamp(1.75rem, 3vw, 2.4rem); }
.crewplify h3 { font-size: 1.25rem; }
.crewplify h4 { font-size: 1.1rem; }
.crewplify p, .crewplify li, .crewplify label, .crewplify input, .crewplify select, .crewplify textarea, .crewplify button, .crewplify address {
	font-family: var(--cp-font); letter-spacing: 0; font-weight: inherit;
}
.crewplify p { margin: 0 0 1em; color: inherit; font-size: inherit; line-height: inherit; font-weight: 400; }
.crewplify strong, .crewplify b { font-weight: 700; color: var(--cp-ink); }
.crewplify em, .crewplify i { font-style: italic; }
.crewplify a { color: var(--cp-blue); text-decoration: none; transition: color .15s ease; }
.crewplify a:hover { color: var(--cp-navy); }
.crewplify img { max-width: 100%; height: auto; }
.crewplify ul, .crewplify ol { margin: 0; padding: 0; }
.crewplify .elementor-widget-text-editor ul { list-style: disc; padding-left: 1.25em; margin: 0 0 1em; }
.crewplify .elementor-widget-text-editor ol { list-style: decimal; padding-left: 1.25em; margin: 0 0 1em; }
.crewplify .elementor-widget-text-editor li { margin: .35em 0; }
.crewplify :focus-visible { outline: 3px solid var(--cp-blue); outline-offset: 2px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.cp-skip-link { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: #fff; padding: 10px 16px; border-radius: 8px; }
.cp-skip-link:focus { left: 8px; }

/* Elementor's default container width & colours follow our tokens */
.crewplify .e-con { --container-max-width: var(--cp-wrap); }
.crewplify .elementor-widget-heading .elementor-heading-title { font-family: var(--cp-font); color: var(--cp-ink); }
.crewplify .elementor-widget-text-editor { color: var(--cp-text); font-family: var(--cp-font); }

/* =========================================================================
   4. Buttons (header + Elementor buttons with .cp-btn--* classes)
   ====================================================================== */
.cp-btn,
.crewplify .cp-button .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	font-family: var(--cp-font); font-weight: 700; font-size: 15px; line-height: 1;
	padding: 15px 24px; border-radius: 8px; border: 2px solid transparent;
	text-decoration: none; transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
	letter-spacing: 0; white-space: nowrap; cursor: pointer;
}
.cp-btn--sm { padding: 11px 18px; font-size: 14px; }
.crewplify a.cp-btn--primary, .crewplify a.cp-btn--primary:hover { color: #fff; }
.crewplify a.cp-btn--outline { color: var(--cp-navy); }
.crewplify a.cp-btn--outline:hover { color: #fff; }
.cp-btn--primary, .crewplify .cp-button--primary .elementor-button { background: var(--cp-navy); color: #fff; border-color: var(--cp-navy); }
.cp-btn--primary:hover, .crewplify .cp-button--primary .elementor-button:hover { background: var(--cp-navy-deep); border-color: var(--cp-navy-deep); color: #fff; }
.cp-btn--outline, .crewplify .cp-button--outline .elementor-button { background: #fff; color: var(--cp-navy); border-color: var(--cp-navy); }
.cp-btn--outline:hover, .crewplify .cp-button--outline .elementor-button:hover { background: var(--cp-navy); color: #fff; }
.crewplify .cp-button--light .elementor-button { background: #fff; color: var(--cp-navy); border-color: #fff; }
.crewplify .cp-button--light .elementor-button:hover { background: var(--cp-green); border-color: var(--cp-green); color: #fff; }
.crewplify .cp-button--ghost .elementor-button { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.crewplify .cp-button--ghost .elementor-button:hover { background: #fff; color: var(--cp-navy); }
.crewplify .cp-button--link .elementor-button { background: none; border: 0; padding: 0; color: var(--cp-navy); text-decoration: underline; text-underline-offset: 4px; }
.crewplify .cp-button .elementor-button .elementor-button-icon svg { width: 14px; height: 14px; fill: currentColor; }
.crewplify .cp-button .elementor-button-content-wrapper { gap: .55em; align-items: center; }
.crewplify .cp-button .elementor-button:hover { transform: translateY(-1px); }

/* =========================================================================
   5. Header
   ====================================================================== */
.cp-header {
	position: sticky; top: 0; z-index: 999;
	background: rgba(255,255,255,.96); backdrop-filter: saturate(160%) blur(8px);
	border-bottom: 1px solid var(--cp-line); transition: box-shadow .2s ease;
}
.admin-bar .cp-header { top: 32px; }
.cp-header.is-scrolled { box-shadow: 0 6px 24px rgba(15,31,61,.07); }
.cp-header__inner {
	max-width: calc(var(--cp-wrap) + 2 * var(--cp-gutter)); margin: 0 auto; padding: 0 var(--cp-gutter);
	height: var(--cp-header-h); display: flex; align-items: center; gap: 28px;
}
.cp-header__logo { display: inline-flex; flex: 0 0 auto; }
.cp-header__logo .cp-logo, .cp-header__logo img { height: 34px; width: auto; display: block; }
.cp-header__panel { display: flex; align-items: center; flex: 1 1 auto; gap: 24px; justify-content: space-between; }
.cp-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.cp-menu { display: flex; align-items: center; gap: 4px; list-style: none; }
.cp-menu > li { position: relative; display: flex; align-items: center; }
.cp-menu > li > a {
	display: flex; align-items: center; gap: 6px; padding: 10px 12px; border-radius: 8px;
	color: var(--cp-ink); font-weight: 600; font-size: 15px; white-space: nowrap; position: relative;
}
.cp-menu > li > a:hover { color: var(--cp-navy); background: var(--cp-soft); }
.cp-menu > li.current-menu-item > a::after,
.cp-menu > li.is-active > a::after {
	content: ""; position: absolute; left: 12px; right: 12px; bottom: 2px; height: 2px; background: var(--cp-green); border-radius: 2px;
}
.cp-menu > li.menu-item-has-children > a { padding-right: 4px; }
.cp-sub-toggle {
	width: 22px; height: 22px; border: 0; background: transparent; padding: 0; margin-right: 4px; cursor: pointer; border-radius: 4px;
	display: inline-flex; align-items: center; justify-content: center; color: var(--cp-ink);
}
.cp-sub-toggle::before { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
.cp-menu .sub-menu {
	position: absolute; top: calc(100% + 6px); left: 0; min-width: 230px; list-style: none;
	background: #fff; border: 1px solid var(--cp-line); border-radius: 12px; box-shadow: var(--cp-shadow-lg);
	padding: 8px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .18s ease; z-index: 50;
}
.cp-menu .sub-menu::before { content: ""; position: absolute; top: -10px; left: 0; right: 0; height: 10px; }
.cp-menu > li:hover > .sub-menu,
.cp-menu > li:focus-within > .sub-menu,
.cp-menu > li.is-sub-open > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.cp-menu > li:hover > .cp-sub-toggle::before, .cp-menu > li.is-sub-open > .cp-sub-toggle::before { transform: translateY(1px) rotate(-135deg); }
.cp-menu .sub-menu a { display: block; padding: 10px 12px; border-radius: 8px; color: var(--cp-ink); font-weight: 500; font-size: 14.5px; }
.cp-menu .sub-menu a:hover, .cp-menu .sub-menu .current-menu-item > a { background: var(--cp-soft); color: var(--cp-navy); }
.cp-header__ctas { display: flex; gap: 10px; flex: 0 0 auto; }
.cp-header__toggle { display: none; margin-left: auto; width: 44px; height: 44px; border: 1px solid var(--cp-line); border-radius: 10px; background: #fff; cursor: pointer; align-items: center; justify-content: center; }
.cp-burger { display: grid; gap: 5px; width: 20px; }
.cp-burger span { display: block; height: 2px; background: var(--cp-ink); border-radius: 2px; transition: transform .2s ease, opacity .2s ease; }
.cp-header.is-open .cp-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.cp-header.is-open .cp-burger span:nth-child(2) { opacity: 0; }
.cp-header.is-open .cp-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1240px) {
	.cp-menu > li > a { padding: 10px 8px; font-size: 14.5px; }
	.cp-header__inner { gap: 16px; }
}
@media (max-width: 1180px) {
	.cp-header__toggle { display: inline-flex; }
	.cp-header__panel {
		position: fixed; inset: var(--cp-header-h) 0 0 0; background: #fff; flex-direction: column; align-items: stretch; justify-content: flex-start;
		padding: 16px var(--cp-gutter) 32px; overflow-y: auto; gap: 16px;
		opacity: 0; visibility: hidden; transform: translateY(-8px); transition: all .2s ease;
	}
	.admin-bar .cp-header__panel { top: calc(var(--cp-header-h) + 46px); }
	.cp-header.is-open .cp-header__panel { opacity: 1; visibility: visible; transform: none; }
	.cp-menu-open body { overflow: hidden; }
	.cp-nav { justify-content: stretch; }
	.cp-menu { flex-direction: column; align-items: stretch; width: 100%; gap: 0; }
	.cp-menu > li { flex-wrap: wrap; border-bottom: 1px solid var(--cp-line); }
	.cp-menu > li > a { flex: 1; padding: 14px 4px; font-size: 16px; }
	.cp-menu > li > a::after { display: none; }
	.cp-sub-toggle { width: 44px; height: 44px; }
	.cp-menu .sub-menu { position: static; flex-basis: 100%; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 10px 8px; display: none; min-width: 0; }
	.cp-menu > li:hover > .sub-menu, .cp-menu > li:focus-within > .sub-menu { display: none; }
	.cp-menu > li.is-sub-open > .sub-menu { display: block; }
	.cp-menu > li:hover > .cp-sub-toggle::before { transform: translateY(-2px) rotate(45deg); }
	.cp-menu > li.is-sub-open > .cp-sub-toggle::before { transform: translateY(1px) rotate(-135deg); }
	.cp-header__ctas { flex-direction: column; }
	.cp-header__ctas .cp-btn { width: 100%; padding: 15px; font-size: 15px; }
}
@media (max-width: 782px) { .admin-bar .cp-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .cp-header { top: 0; } :root { --cp-gutter: 16px; --cp-header-h: 66px; } .cp-header__logo .cp-logo { height: 28px; } }

/* =========================================================================
   6. Footer
   ====================================================================== */
.cp-footer { background: #fff; border-top: 1px solid var(--cp-line); color: var(--cp-text); font-size: 14px; }
.cp-footer__inner {
	max-width: calc(var(--cp-wrap) + 2 * var(--cp-gutter)); margin: 0 auto; padding: 56px var(--cp-gutter) 40px;
	display: grid; grid-template-columns: minmax(220px, 1.1fr) 3fr; gap: 48px;
}
.cp-footer__logo .cp-logo { height: 32px; width: auto; }
.cp-footer__tagline { margin: 14px 0 16px; color: var(--cp-text); font-weight: 500; }
.cp-footer__address { font-style: normal; color: var(--cp-muted); margin-top: 16px; line-height: 1.6; }
.cp-social { display: flex; gap: 10px; list-style: none; }
.cp-social a { width: 36px; height: 36px; border-radius: 8px; background: var(--cp-soft); color: var(--cp-navy); display: inline-flex; align-items: center; justify-content: center; }
.cp-social a:hover { background: var(--cp-navy); color: #fff; }
.cp-footer-menu { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; list-style: none; }
.cp-footer-menu > li > a { display: block; color: var(--cp-ink); font-weight: 700; font-size: 14.5px; margin-bottom: 12px; }
.cp-footer-menu .sub-menu { list-style: none; display: grid; gap: 8px; }
.cp-footer-menu .sub-menu a { color: var(--cp-muted); font-size: 14px; }
.cp-footer-menu a:hover { color: var(--cp-navy) !important; }
.cp-footer__bar {
	max-width: calc(var(--cp-wrap) + 2 * var(--cp-gutter)); margin: 0 auto; padding: 18px var(--cp-gutter) 28px;
	border-top: 1px solid var(--cp-line); display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
	color: var(--cp-muted); font-size: 13px;
}
.cp-footer__bar p { margin: 0; }
.cp-legal-menu { display: flex; gap: 20px; list-style: none; flex-wrap: wrap; }
.cp-legal-menu a { color: var(--cp-muted); }
@media (max-width: 1024px) {
	.cp-footer__inner { grid-template-columns: 1fr; gap: 32px; }
	.cp-footer-menu { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) { .cp-footer-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* =========================================================================
   7. Page sections (classes added to Elementor containers/widgets)
   ====================================================================== */
.crewplify .cp-section { --padding-top: 88px; --padding-bottom: 88px; --padding-left: var(--cp-gutter); --padding-right: var(--cp-gutter); }
.crewplify .cp-section--tight { --padding-top: 56px; --padding-bottom: 56px; }
.crewplify .cp-section + .cp-section:not(.cp-bg-soft):not(.cp-cta):not(.cp-hero) { border-top: 1px solid var(--cp-line); }
.crewplify .cp-bg-soft { background-color: var(--cp-soft); }
@media (max-width: 767px) { .crewplify .cp-section { --padding-top: 60px; --padding-bottom: 60px; } }

/* Hero */
.crewplify .cp-hero { background: linear-gradient(135deg, #f3f7fc 0%, #eef5ea 100%); --padding-top: 72px; --padding-bottom: 72px; }
.crewplify .cp-hero .cp-hero-title .elementor-heading-title { font-size: clamp(2.3rem, 4.8vw, 3.75rem); font-weight: 800; line-height: 1.04; letter-spacing: -0.03em; }
.crewplify .cp-hero .cp-lead { font-size: 18px; }
.crewplify .cp-hero--simple .cp-hero-title .elementor-heading-title { font-size: clamp(2.1rem, 4vw, 3rem); }

/* Eyebrow / titles / lead */
.crewplify .cp-eyebrow .elementor-heading-title {
	font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--cp-green-deep); line-height: 1.4;
}
.crewplify .cp-title .elementor-heading-title { font-size: clamp(1.75rem, 3vw, 2.4rem); font-weight: 800; line-height: 1.15; }
.crewplify .cp-lead { font-size: 17.5px; line-height: 1.7; color: var(--cp-text); max-width: 760px; }
.crewplify .cp-lead p:last-child, .crewplify .cp-text p:last-child { margin-bottom: 0; }
.crewplify .cp-center { text-align: center; }
.crewplify .cp-center .cp-lead { margin-left: auto; margin-right: auto; }

/* Column grids: .cp-grid--2/3/4/5 on a row container; children size themselves */
.crewplify .cp-grid { --cp-cols: 3; --cp-g: 24px; width: 100%; }
.crewplify .cp-grid--2 { --cp-cols: 2; } .crewplify .cp-grid--3 { --cp-cols: 3; } .crewplify .cp-grid--4 { --cp-cols: 4; } .crewplify .cp-grid--5 { --cp-cols: 5; } .crewplify .cp-grid--6 { --cp-cols: 6; }
.crewplify .cp-grid > .e-con, .crewplify .cp-grid > .elementor-element {
	--width: calc((100% - (var(--cp-cols) - 1) * var(--cp-g)) / var(--cp-cols));
	width: var(--width); flex: 0 0 var(--width); max-width: var(--width);
}
@media (max-width: 1024px) {
	.crewplify .cp-grid--4, .crewplify .cp-grid--5, .crewplify .cp-grid--6 { --cp-cols: 3; }
	.crewplify .cp-grid--3.cp-steps, .crewplify .cp-grid--4.cp-steps, .crewplify .cp-grid--5.cp-steps { --cp-cols: 2; }
}
@media (max-width: 880px) { .crewplify .cp-grid--3, .crewplify .cp-grid--4, .crewplify .cp-grid--5, .crewplify .cp-grid--6 { --cp-cols: 2; } }
@media (max-width: 600px) { .crewplify .cp-grid { --cp-cols: 1 !important; } .crewplify .cp-grid.cp-chips-grid { --cp-cols: 2 !important; } }

/* Media / images */
.crewplify .cp-media img { width: 100%; border-radius: 18px; box-shadow: var(--cp-shadow); aspect-ratio: 3 / 2; object-fit: cover; }
.crewplify .cp-media--wide img { aspect-ratio: 16 / 10; }

/* Feature icon boxes (value props, benefits, values) */
.crewplify .cp-feature .elementor-icon-box-wrapper { text-align: center; }
.crewplify .cp-feature .elementor-icon { width: 64px; height: 64px; border-radius: 50%; background: var(--cp-tint); color: var(--cp-navy); display: inline-flex; align-items: center; justify-content: center; font-size: 26px; fill: var(--cp-navy); }
.crewplify .cp-feature .elementor-icon svg { width: 26px; height: 26px; fill: var(--cp-navy); }
.crewplify .cp-feature .elementor-icon i { color: var(--cp-navy); }
.crewplify .cp-feature .elementor-icon-box-icon { margin-bottom: 16px !important; }
.crewplify .cp-feature .elementor-icon-box-title { font-size: 17px; font-weight: 700; margin: 0 0 8px; color: var(--cp-ink); line-height: 1.3; }
.crewplify .cp-feature .elementor-icon-box-title a { color: inherit; }
.crewplify .cp-feature .elementor-icon-box-description { font-size: 15px; line-height: 1.6; color: var(--cp-text); margin: 0; }
.crewplify .cp-feature--left .elementor-icon-box-wrapper { text-align: left; }
.crewplify .cp-features--divided > .e-con-inner > .cp-feature:not(:last-child),
.crewplify .cp-features--divided > .cp-feature:not(:last-child) { border-right: 1px solid var(--cp-line); padding-right: 12px; }
@media (max-width: 767px) {
	.crewplify .cp-features--divided > .e-con-inner > .cp-feature:not(:last-child),
	.crewplify .cp-features--divided > .cp-feature:not(:last-child) { border-right: 0; border-bottom: 1px solid var(--cp-line); padding: 0 0 24px; }
}

/* Cards */
.crewplify .cp-card { background: #fff; border: 1px solid var(--cp-line); border-radius: var(--cp-radius); box-shadow: var(--cp-shadow); --padding-top: 28px; --padding-bottom: 28px; --padding-left: 24px; --padding-right: 24px; transition: transform .2s ease, box-shadow .2s ease; }
.crewplify .elementor-widget.cp-card { padding: 28px 24px; }
.crewplify .cp-card:hover { transform: translateY(-3px); box-shadow: var(--cp-shadow-lg); }
.crewplify .cp-card h3.elementor-heading-title { font-size: 18px; }
.crewplify .cp-grid { align-items: stretch; }
.crewplify .cp-grid > .cp-card, .crewplify .cp-grid > .e-con > .cp-card { height: 100%; }

/* Two-audience panels (home) */
.crewplify .cp-panel-dark, .crewplify .cp-panel-light { --padding-top: 44px; --padding-bottom: 44px; --padding-left: 40px; --padding-right: 40px; border-radius: 18px; }
.crewplify .cp-panel-dark { background: linear-gradient(135deg, var(--cp-navy-deep), var(--cp-navy)); border-color: transparent; }
.crewplify .cp-panel-dark .elementor-heading-title { color: #fff !important; }
.crewplify .cp-panel-dark .cp-eyebrow .elementor-heading-title { color: #b9dc98 !important; }
.crewplify .cp-panel-dark .elementor-widget-text-editor { color: rgba(255,255,255,.85); }
.crewplify .cp-panel-light { background: linear-gradient(135deg, #f3f7fc, #eef5ea); }
.crewplify .cp-panel-dark .cp-title .elementor-heading-title, .crewplify .cp-panel-light .cp-title .elementor-heading-title { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.crewplify .cp-card--flat { box-shadow: none; }
.crewplify .cp-card--flat:hover { transform: none; box-shadow: var(--cp-shadow); }
.crewplify .cp-card--accent { border-color: var(--cp-navy); background: linear-gradient(180deg, #f5f9ff 0%, #fff 100%); }

/* Numbered steps */
.crewplify .cp-steps { counter-reset: none; position: relative; }
.crewplify .cp-step { text-align: left; }
.crewplify .cp-step-num .elementor-heading-title {
	width: 48px; height: 48px; border-radius: 50%; background: var(--cp-navy); color: #fff !important; font-size: 18px; font-weight: 800;
	display: inline-flex; align-items: center; justify-content: center; letter-spacing: 0;
}
.crewplify .cp-step h3.elementor-heading-title, .crewplify .cp-step .cp-step-title .elementor-heading-title { font-size: 18px; margin-top: 4px; }
.crewplify .cp-step .elementor-widget-text-editor { font-size: 15px; }
.crewplify .cp-steps--line > .e-con-inner, .crewplify .cp-steps--line { position: relative; }
@media (min-width: 1025px) {
	.crewplify .cp-steps--line .cp-step { position: relative; }
	.crewplify .cp-steps--line .cp-step:not(:last-child)::after {
		content: ""; position: absolute; top: 24px; left: 64px; right: -8px; height: 2px;
		background: repeating-linear-gradient(90deg, var(--cp-line) 0 8px, transparent 8px 14px);
	}
}

/* Checklist (icon list) */
.crewplify .cp-checklist .elementor-icon-list-item { align-items: flex-start !important; }
.crewplify .cp-checklist .elementor-icon-list-icon { width: 22px; height: 22px; border-radius: 50%; background: var(--cp-green); display: inline-flex !important; align-items: center; justify-content: center; margin-top: 2px; flex: 0 0 22px; }
.crewplify .cp-checklist .elementor-icon-list-icon svg { width: 11px !important; height: 11px !important; fill: #fff !important; }
.crewplify .cp-checklist .elementor-icon-list-icon i { color: #fff !important; font-size: 11px !important; }
.crewplify .cp-checklist .elementor-icon-list-text { color: var(--cp-text); font-size: 16px; line-height: 1.55; padding-left: 12px !important; }
.crewplify .cp-checklist .elementor-icon-list-item:not(:last-child) { padding-bottom: 12px !important; }
.crewplify .cp-checklist .elementor-icon-list-text strong { color: var(--cp-ink); }
.crewplify .cp-checklist--x .elementor-icon-list-icon { background: #d9dee6; }

/* Tag chips (platforms) */
.crewplify .cp-chip { background: #fff; border: 1px solid var(--cp-line); border-radius: 12px; --padding-top: 18px; --padding-bottom: 18px; --padding-left: 16px; --padding-right: 16px; text-align: center; }
.crewplify .cp-chip .elementor-heading-title { font-size: 15px; font-weight: 700; }
.crewplify .cp-chip .elementor-widget-text-editor { font-size: 13px; color: var(--cp-muted); }

/* Notice / info strip */
.crewplify .cp-note { background: var(--cp-soft); border: 1px solid var(--cp-line); border-left: 4px solid var(--cp-green); border-radius: 12px; --padding-top: 22px; --padding-bottom: 22px; --padding-left: 26px; --padding-right: 26px; }
.crewplify .cp-note .elementor-widget-text-editor { font-size: 15px; }

/* Quote / highlight */
.crewplify .cp-quote .elementor-widget-text-editor { font-size: 20px; line-height: 1.55; color: var(--cp-ink); font-weight: 500; }

/* Bottom CTA band */
.crewplify .cp-cta {
	background: radial-gradient(1200px 400px at 90% -10%, rgba(106,168,66,.35), transparent 60%), linear-gradient(120deg, var(--cp-navy-deep) 0%, var(--cp-navy) 60%, #1f4f93 100%);
	--padding-top: 64px; --padding-bottom: 64px;
}
.crewplify .cp-cta .elementor-heading-title { color: #fff !important; }
.crewplify .cp-cta .cp-eyebrow .elementor-heading-title { color: #b9dc98 !important; }
.crewplify .cp-cta .elementor-widget-text-editor { color: rgba(255,255,255,.85); font-size: 17px; }
.crewplify .cp-cta .elementor-widget-text-editor p { margin: 0; }

/* Leadership cards */
.crewplify .cp-person { background: #fff; border: 1px solid var(--cp-line); border-radius: var(--cp-radius); overflow: hidden; --padding-top: 0; --padding-bottom: 22px; --padding-left: 0; --padding-right: 0; }
.crewplify .cp-person .cp-avatar .elementor-heading-title { width: 100%; height: clamp(150px, 16vw, 220px); display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--cp-navy), var(--cp-blue)); color: #fff !important; font-size: 44px; font-weight: 800; letter-spacing: .02em; }
.crewplify .cp-person > .cp-avatar { flex: 0 0 auto; width: 100%; }
.crewplify .cp-person > .elementor-widget:not(.cp-avatar) { padding: 0 22px; }
.crewplify .cp-person .cp-role .elementor-heading-title { font-size: 14px; font-weight: 600; color: var(--cp-green-deep); }

/* Comparison columns */
.crewplify .cp-compare .cp-card { height: 100%; }

/* Map */
.crewplify .cp-map iframe { border-radius: 16px; min-height: 360px; filter: saturate(.9); }

/* FAQ (Elementor accordion) */
.crewplify .cp-faq .e-n-accordion-item { border: 1px solid var(--cp-line); border-radius: 12px; background: #fff; margin-bottom: 12px; overflow: hidden; }
.crewplify .cp-faq .e-n-accordion-item-title { padding: 18px 22px; border: 0 !important; }
.crewplify .cp-faq .e-n-accordion-item-title-text { font-family: var(--cp-font); font-weight: 700; font-size: 16.5px; color: var(--cp-ink); }
.crewplify .cp-faq .e-n-accordion-item-title-icon svg { fill: var(--cp-navy); }
.crewplify .cp-faq .e-n-accordion-item > .e-con { border: 0 !important; --padding-top: 0; --padding-bottom: 20px; --padding-left: 22px; --padding-right: 22px; }

/* Legal pages */
.crewplify .cp-legal { --padding-top: 56px; --padding-bottom: 88px; }
.crewplify .cp-legal .elementor-widget-text-editor { font-size: 16px; line-height: 1.75; }
.crewplify .cp-legal .elementor-widget-text-editor h2 { font-size: 1.35rem; margin: 2em 0 .6em; }
.crewplify .cp-legal .elementor-widget-text-editor ul { list-style: disc; padding-left: 1.3em; }
.crewplify .cp-draft-flag { background: #fff7e6; border: 1px solid #f3d38a; border-radius: 10px; padding: 12px 16px; color: #7a5200; font-size: 14px; }

/* =========================================================================
   8. Forms (Contact Form 7)
   ====================================================================== */
.crewplify .cp-form-card { background: #fff; border: 1px solid var(--cp-line); border-radius: 18px; box-shadow: var(--cp-shadow); --padding-top: 32px; --padding-bottom: 32px; --padding-left: 32px; --padding-right: 32px; }
.crewplify .cp-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, max(220px, calc(50% - 9px))), 1fr)); gap: 18px 18px; }
.crewplify .cp-form .cp-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.crewplify .cp-form .cp-field--full { grid-column: 1 / -1; }
.crewplify .cp-form label { font-weight: 600; font-size: 14px; color: var(--cp-ink); }
.crewplify .cp-form label .req { color: #c0392b; }
.crewplify .cp-form input[type="text"], .crewplify .cp-form input[type="email"], .crewplify .cp-form input[type="tel"], .crewplify .cp-form input[type="url"], .crewplify .cp-form input[type="number"], .crewplify .cp-form input[type="date"], .crewplify .cp-form select, .crewplify .cp-form textarea {
	width: 100%; font-family: var(--cp-font); font-size: 16px; color: var(--cp-ink); background: #fff;
	border: 1px solid #cfd8e4; border-radius: 8px; padding: 12px 14px; line-height: 1.4; box-shadow: none; height: auto;
}
.crewplify .cp-form textarea { min-height: 140px; resize: vertical; }
.crewplify .cp-form input:focus, .crewplify .cp-form select:focus, .crewplify .cp-form textarea:focus { outline: none; border-color: var(--cp-blue); box-shadow: 0 0 0 3px rgba(45,127,211,.18); }
.crewplify .cp-form .wpcf7-form-control-wrap { display: block; }
.crewplify .cp-form .wpcf7-acceptance label { font-weight: 400; display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--cp-text); }
.crewplify .cp-form .wpcf7-acceptance input { margin-top: 4px; }
.crewplify .cp-form .wpcf7-list-item { margin: 0; }
.crewplify .cp-form select, .crewplify .cp-form input[type="file"] { max-width: 100%; min-width: 0; }
.crewplify .cp-form input[type="file"] { width: 100%; font-family: var(--cp-font); font-size: 14px; color: var(--cp-text); }
.crewplify .cp-form .wpcf7-checkbox, .crewplify .cp-form .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 10px 22px; padding: 4px 0; }
.crewplify .cp-form .wpcf7-checkbox label, .crewplify .cp-form .wpcf7-radio label { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; font-size: 15px; color: var(--cp-text); cursor: pointer; }
.crewplify .cp-form input[type="checkbox"], .crewplify .cp-form input[type="radio"] { width: 18px; height: 18px; flex: 0 0 18px; margin: 0; accent-color: var(--cp-navy); }
.crewplify .cp-form .wpcf7-acceptance input { margin-top: 3px; }
.crewplify .cp-form .wpcf7-submit { background: var(--cp-navy); color: #fff; border: 0; border-radius: 8px; padding: 15px 28px; font-family: var(--cp-font); font-weight: 700; font-size: 15px; cursor: pointer; }
.crewplify .cp-form .wpcf7-submit:hover { background: var(--cp-navy-deep); }
.crewplify .cp-form .cp-hint { font-size: 13px; color: var(--cp-muted); }
.crewplify .wpcf7 form .wpcf7-response-output { margin: 16px 0 0; border-radius: 8px; padding: 12px 16px; font-size: 14px; }
.crewplify .wpcf7-not-valid-tip { font-size: 13px; margin-top: 4px; }
.crewplify .wpcf7-spinner { vertical-align: middle; }
@media (max-width: 600px) { .crewplify .cp-form { grid-template-columns: minmax(0, 1fr); } .crewplify .cp-form-card { --padding-left: 20px; --padding-right: 20px; } }

/* Contact info list */
.crewplify .cp-contact-list .elementor-icon-box-wrapper { display: flex; gap: 16px; text-align: left; }
.crewplify .cp-contact-list .elementor-icon { width: 48px; height: 48px; font-size: 20px; }
.crewplify .cp-contact-list .elementor-icon svg { width: 20px; height: 20px; }

/* =========================================================================
   9. Generic pages / posts rendered by Dap templates
   ====================================================================== */
.crewplify .cp-main > .container, .crewplify .cp-main .page-content { max-width: var(--cp-wrap); }
.elementor-page .cp-main { padding: 0; }

@media (max-width: 1024px) and (min-width: 768px) {
	.crewplify .cp-features--divided > .cp-feature:not(:last-child) { border-right: 0; padding-right: 0; }
}
.crewplify .cp-chips-grid { --cp-g: 16px; }
/* backdrop-filter would make the fixed mobile panel relative to the header — disable on small screens */
@media (max-width: 1180px) { .cp-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: #fff; } }
@media (max-width: 1024px) { .crewplify .cp-cta .cp-btns { justify-content: flex-start !important; } }

/* =========================================================================
   10. Phone & tablet refinements (v1.1.2)
   ====================================================================== */
/* Header: links must never be clipped just above the menu breakpoint */
.cp-header__inner { min-width: 0; }
.cp-header__panel { min-width: 0; }

/* Mobile menu: the whole row opens its sub-menu, several can stay open */
@media (max-width: 1180px) {
	.cp-menu > li.menu-item-has-children > a { padding-right: 4px; }
	.cp-menu .sub-menu a { padding: 12px 12px; font-size: 15.5px; }
	.cp-header__panel { -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px)); }
}

/* Tablet: a form never sits in a narrow half-width column */
@media (max-width: 1024px) {
	.crewplify .cp-section > .e-con-inner:has(> .cp-form-card) { flex-direction: column; }
	.crewplify .cp-section > .e-con-inner:has(> .cp-form-card) > .e-con { --width: 100%; width: 100%; max-width: 100%; }
	/* 16px stops iPhones zooming the page when a field is tapped */
	.crewplify .cp-form input[type="text"], .crewplify .cp-form input[type="email"], .crewplify .cp-form input[type="tel"], .crewplify .cp-form input[type="url"], .crewplify .cp-form input[type="number"], .crewplify .cp-form input[type="date"], .crewplify .cp-form select, .crewplify .cp-form textarea { font-size: 16px; }
}

@media (max-width: 767px) {
	/* Stacked sections always read text first, photo second (no two photos back to back) */
	.crewplify .cp-section > .e-con-inner > .e-con:first-child:has(.cp-media),
	.crewplify .cp-section > .e-con:first-child:has(.cp-media) { order: 2; }
	.crewplify .cp-hero { --padding-top: 48px; --padding-bottom: 56px; }
	.crewplify .cp-cta { --padding-top: 52px; --padding-bottom: 52px; }
	.crewplify .cp-panel-dark, .crewplify .cp-panel-light { --padding-top: 32px; --padding-bottom: 32px; --padding-left: 24px; --padding-right: 24px; }
	.crewplify .cp-quote .elementor-widget-text-editor { font-size: 18px; }
	.crewplify .cp-map iframe { min-height: 300px; }
	.crewplify .cp-faq .e-n-accordion-item-title { padding: 16px 16px; }
	.crewplify .cp-faq .e-n-accordion-item > .e-con { --padding-left: 16px; --padding-right: 16px; }
	.crewplify .cp-button--link .elementor-button { padding: 8px 0; }
}

@media (max-width: 600px) {
	/* Icon + text side by side: much shorter pages than icon-over-text */
	.crewplify .cp-feature .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; align-items: flex-start !important; gap: 16px; text-align: left !important; }
	.crewplify .cp-feature .elementor-icon-box-icon { margin: 0 !important; flex: 0 0 auto; }
	.crewplify .cp-feature .elementor-icon-box-content { flex: 1 1 auto; min-width: 0; text-align: left; }
	.crewplify .cp-feature .elementor-icon { width: 48px; height: 48px; font-size: 20px; }
	.crewplify .cp-feature .elementor-icon svg { width: 20px; height: 20px; }
	.crewplify .cp-feature .elementor-icon-box-title { margin-bottom: 4px; }
	.crewplify .cp-features--divided > .e-con-inner > .cp-feature:not(:last-child),
	.crewplify .cp-features--divided > .cp-feature:not(:last-child) { padding: 0 0 20px; }
	.crewplify .cp-card { --padding-top: 22px; --padding-bottom: 22px; --padding-left: 20px; --padding-right: 20px; }
	.crewplify .elementor-widget.cp-card { padding: 22px 20px; }
	.crewplify .cp-grid { --cp-g: 16px; }
	.crewplify .cp-note { --padding-left: 18px; --padding-right: 18px; }
	.crewplify .cp-form .wpcf7-submit { width: 100%; }
	/* Footer: comfortable tap targets */
	.cp-footer__inner { padding-top: 44px; }
	.cp-footer-menu .sub-menu { gap: 2px; }
	.cp-footer-menu .sub-menu a { display: block; padding: 7px 0; }
	.cp-footer-menu > li > a { margin-bottom: 6px; }
	.cp-legal-menu { gap: 6px 18px; }
	.cp-legal-menu a { display: inline-block; padding: 6px 0; }
	.cp-footer__bar { flex-direction: column; align-items: flex-start; gap: 6px; }
}

@media (max-width: 380px) {
	.crewplify .cp-chip { --padding-left: 10px; --padding-right: 10px; }
	.crewplify .cp-chip .elementor-heading-title { font-size: 14px; overflow-wrap: anywhere; }
	.crewplify .cp-hero .cp-hero-title .elementor-heading-title { font-size: 2.05rem; }
	.crewplify .cp-btns .elementor-button { padding-left: 18px; padding-right: 18px; }
}

/* Dap caps #main-wrap at 1500px and leaves it left-aligned on wide screens */
#main-wrap.cp-site { max-width: none; width: 100%; }
