/*
 * Dynasty HR Solutions — shared styles for the Elementor page layouts.
 * Pages use these classes on Elementor containers/widgets (Advanced → CSS Classes).
 * Elementor sets widths/margins through CSS variables and fairly specific selectors,
 * so a few rules below use those variables or !important on purpose.
 */
:root {
	--dy-blue: #607FF8;
	--dy-blue-dark: #3C5BD6;
	--dy-orange: #FB7800;
	--dy-orange-dark: #DE6A00;
	--dy-navy: #121A36;
	--dy-navy-2: #1B2550;
	--dy-ink: #1D2233;
	--dy-text: #4A4E56;
	--dy-muted: #6B7080;
	--dy-soft: #F4F6FE;
	--dy-line: #E3E7F5;
	--dy-radius: 16px;
	--dy-shadow: 0 12px 32px rgba(18, 26, 54, .08);
	--dy-shadow-lg: 0 24px 60px rgba(18, 26, 54, .14);
	--dy-head: "Lexend", sans-serif;
}

/* =========================================================
   Sections
   ========================================================= */
.e-con.dy-sec {
	--content-width: 1200px;
	--padding-top: 96px; --padding-bottom: 96px; --padding-left: 20px; --padding-right: 20px;
	--gap: 0px; --row-gap: 0px;
	position: relative;
}
.e-con.dy-sec > .e-con-inner { gap: 0; }
.e-con.dy-soft { background-color: var(--dy-soft); }
.e-con.dy-dark { background-color: var(--dy-navy); }
.e-con.dy-tight { --padding-top: 72px; --padding-bottom: 72px; }

/* Hero */
.e-con.dy-hero { --padding-top: 150px; --padding-bottom: 190px; min-height: 680px; justify-content: center; }
.dy-hero .dy-title .elementor-heading-title { font-size: 60px; line-height: 1.1; letter-spacing: -.01em; }

/* Page banner */
.e-con.dy-banner { --padding-top: 96px; --padding-bottom: 100px; }
.dy-banner .dy-title .elementor-heading-title { font-size: 48px; line-height: 1.15; }
.dy-crumbs { font-family: var(--dy-head); font-size: 14px; color: rgba(255, 255, 255, .7); margin: 0; }
.dy-crumbs a { color: rgba(255, 255, 255, .85); }
.dy-crumbs a:hover { color: #FFB066; }
.dy-crumbs span { margin: 0 10px; opacity: .5; }
.dy-crumbs em { font-style: normal; color: #FFB066; }

/* Trust bar overlapping the hero */
.e-con.dy-trust-wrap { --padding-top: 0px; --padding-bottom: 0px; z-index: 2; }
.e-con.dy-trust-wrap > .e-con-inner { margin-top: -84px; }
.e-con.dy-trust {
	background: #fff; border-radius: 18px; box-shadow: var(--dy-shadow-lg); gap: 0 !important; overflow: hidden;
}
.e-con.dy-trust-item {
	--padding-top: 28px; --padding-bottom: 28px; --padding-left: 28px; --padding-right: 24px; --gap: 16px;
	align-items: center; flex-wrap: nowrap;
}
.e-con.dy-trust-item + .e-con.dy-trust-item { border-left: 1px solid var(--dy-line); }
.dy-trust-item > .e-con.dy-stack { --gap: 2px; --row-gap: 2px; flex: 1; }
.dy-stat .elementor-heading-title { font-family: var(--dy-head); font-size: 22px; font-weight: 700; color: var(--dy-ink); line-height: 1.2; }
.dy-stat-label { font-size: 14px; line-height: 1.45; color: var(--dy-muted); }
.dy-stat-label p { margin: 0; }
.dy-trust-item .dy-icon .elementor-icon { width: 52px; height: 52px; background: rgba(251, 120, 0, .1); color: var(--dy-orange); }
.dy-trust-item .dy-icon .elementor-icon svg { fill: var(--dy-orange); }
.dy-trust-item > .elementor-widget.dy-icon { width: auto; flex: none; }

/* CTA band */
.e-con.dy-cta {
	background: linear-gradient(120deg, var(--dy-blue-dark) 0%, var(--dy-navy-2) 55%, var(--dy-navy) 100%);
	--padding-top: 90px; --padding-bottom: 90px; overflow: hidden;
}
.e-con.dy-cta::after {
	content: ""; position: absolute; right: -120px; top: -120px; width: 380px; height: 380px; border-radius: 50%;
	background: radial-gradient(circle, rgba(251, 120, 0, .35), transparent 70%); pointer-events: none;
}

/* Vertical divider band on Services */
.e-con.dy-vertical { --padding-top: 72px; --padding-bottom: 24px; }
.e-con.dy-vertical.dy-dark { --padding-bottom: 72px; }
.e-con.dy-vertical .dy-head-block { --margin-bottom: 0px; --margin-block-end: 0px; }
.e-con.dy-service { --padding-top: 64px; --padding-bottom: 64px; }

/* =========================================================
   Typography
   ========================================================= */
.dy-center, .dy-center .elementor-heading-title { text-align: center; }
.dy-eyebrow .elementor-heading-title {
	font-family: var(--dy-head); font-size: 14px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--dy-orange);
}
.dy-title .elementor-heading-title { font-family: var(--dy-head); font-size: 40px; line-height: 1.2; font-weight: 700; color: var(--dy-ink); }
.dy-title .elementor-heading-title span { color: var(--dy-orange); }
.dy-title-sm .elementor-heading-title { font-size: 32px; }
.dy-sub .elementor-heading-title { font-family: var(--dy-head); font-size: 22px; line-height: 1.4; font-weight: 500; color: var(--dy-blue); }
.dy-lead { font-size: 18px; line-height: 1.7; color: var(--dy-text); }
.dy-body { font-size: 16px; line-height: 1.75; color: var(--dy-text); }
.dy-lead p:last-child, .dy-body p:last-child, .dy-card p:last-child, .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.dy-tagline { font-family: var(--dy-head); font-size: 15px; color: var(--dy-blue); font-weight: 500; margin: 0; }
.dy-kicker { text-align: center; font-family: var(--dy-head); font-size: 22px; font-weight: 600; color: var(--dy-ink); margin: 26px 0 0; }
.dy-subhead .elementor-heading-title { font-size: 20px; }

/* Readable line length (Elementor forces widgets to 100% otherwise). */
.e-con .elementor-widget.dy-lead { max-width: 820px !important; }
.dy-hero .elementor-widget.dy-lead, .dy-banner .elementor-widget.dy-lead { max-width: 760px !important; }
.e-con .elementor-widget.dy-lead.dy-center { margin-left: auto; margin-right: auto; }

/* Stacks + spacing */
.e-con.dy-stack { --gap: 16px; --row-gap: 16px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.dy-stack.dy-center { align-items: center; }
.e-con.dy-head-block { --margin-bottom: 52px; --margin-block-end: 52px; }
.e-con.dy-space-top, .elementor-widget.dy-space-top { --margin-top: 40px; --margin-block-start: 40px; margin-top: 40px !important; }
.elementor-widget.dy-subhead { margin: 8px 0 28px !important; }

/* =========================================================
   Grids
   ========================================================= */
.e-con.dy-grid {
	display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px;
	--padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; width: 100%;
}
.e-con.dy-g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.e-con.dy-g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.e-con.dy-grid > .e-con { width: auto; max-width: none; }
.e-con.dy-split { grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.e-con.dy-split.dy-top { align-items: start; }
.e-con.dy-faq-grid { grid-template-columns: 1.7fr 1fr; gap: 40px; align-items: start; }
@media (min-width: 768px) { .e-con.dy-g2 > .e-con:last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (min-width: 1025px) { .e-con.dy-split.dy-media-left > :last-child { order: -1; } }

/* Tiles wrap and centre so an incomplete last row stays balanced. */
.e-con.dy-grid.dy-tiles { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; justify-content: center; }
.e-con.dy-tiles > .e-con.dy-tile { flex: 0 0 calc((100% - 72px) / 4) !important; width: auto !important; }

/* =========================================================
   Cards
   ========================================================= */
.e-con.dy-card {
	background: #fff; border: 1px solid var(--dy-line); border-radius: var(--dy-radius);
	--padding-top: 32px; --padding-bottom: 32px; --padding-left: 30px; --padding-right: 30px; --gap: 12px; --row-gap: 12px;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
	justify-content: flex-start; overflow: hidden;
}
.e-con.dy-card:hover { transform: translateY(-4px); box-shadow: var(--dy-shadow); border-color: transparent; }
.dy-soft .e-con.dy-card { border-color: transparent; box-shadow: 0 2px 10px rgba(18, 26, 54, .04); }
.e-con.dy-card.dy-accent { border-top: 4px solid var(--dy-orange); }
.e-con.dy-card.dy-feature { background: var(--dy-navy); border: none; }
.dy-dark .e-con.dy-card { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
.dy-dark .e-con.dy-card:hover { background: rgba(255, 255, 255, .08); }
.e-con.dy-card.dy-form-card:hover, .e-con.dy-card.dy-sticky:hover, .e-con.dy-soft-card:hover { transform: none; }
.e-con.dy-form-card { box-shadow: var(--dy-shadow-lg); border: none; --padding-top: 36px; --padding-bottom: 36px; --padding-left: 36px; --padding-right: 36px; }
.e-con.dy-soft-card { background: var(--dy-soft); border: none; margin-top: 12px; }

/* Card photo bleeds to the card edges. */
.e-con.dy-card.dy-has-img { --padding-top: 0px; }
.e-con.dy-card > .elementor-widget.dy-card-img { margin: 0 -30px 10px !important; width: calc(100% + 60px) !important; max-width: none !important; }
.e-con .dy-card-img img { width: 100%; height: 210px; object-fit: cover; display: block; transition: transform .5s ease; }
/* With a photo on top, the accent moves to the bottom edge so photos stay aligned. */
.e-con.dy-card.dy-accent.dy-has-img { border-top: 1px solid var(--dy-line); border-bottom: 4px solid var(--dy-orange); }
.e-con.dy-card:hover .dy-card-img img { transform: scale(1.04); }
.dy-card-img .elementor-widget-container { overflow: hidden; }

.dy-card-title .elementor-heading-title { font-family: var(--dy-head); font-size: 21px; line-height: 1.35; font-weight: 600; color: var(--dy-ink); }
.dy-card-sub .elementor-heading-title { font-family: var(--dy-head); font-size: 15.5px; line-height: 1.5; font-weight: 500; color: var(--dy-blue); }
.dy-card .elementor-widget-text-editor { font-size: 15.5px; line-height: 1.7; color: var(--dy-text); }
.dy-num .elementor-heading-title {
	font-family: var(--dy-head); font-size: 15px; font-weight: 700; color: var(--dy-orange);
	display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: rgba(251, 120, 0, .1);
}
.e-con.dy-step .dy-num .elementor-heading-title { background: var(--dy-orange); color: #fff; }
.dy-icon .elementor-icon {
	font-size: 22px; color: var(--dy-blue); background: rgba(96, 127, 248, .1);
	width: 56px; height: 56px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center;
}
.dy-icon .elementor-icon svg { width: 22px; height: 22px; fill: var(--dy-blue); }
.dy-icon .elementor-icon-wrapper { text-align: left; line-height: 0; }
.dy-feature .dy-icon .elementor-icon, .dy-dark .dy-icon .elementor-icon { background: rgba(255, 255, 255, .1); color: #fff; }
.dy-feature .dy-icon .elementor-icon svg, .dy-dark .dy-icon .elementor-icon svg { fill: #fff; }
.dy-card .dy-link { margin-top: auto; padding-top: 6px; }

/* Industry + client cards: icon and title side by side */
.e-con.dy-ind-head { --gap: 16px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; align-items: center; flex-wrap: nowrap; }
.dy-ind-head > .elementor-widget.dy-icon { width: auto; flex: none; }
.dy-ind-head .dy-icon .elementor-icon { width: 50px; height: 50px; }
.e-con .elementor-widget.dy-card-foot { border-top: 1px solid var(--dy-line); padding-top: 16px; margin-top: auto !important; }
.dy-solutions { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; font-size: 13.5px; }
.dy-solutions strong { font-family: var(--dy-head); color: var(--dy-ink); margin-right: 4px; }
.dy-solutions span { background: rgba(96, 127, 248, .1); color: var(--dy-blue-dark); border-radius: 6px; padding: 4px 10px; font-weight: 500; }
.e-con.dy-client-card > .elementor-widget { width: 100%; }
ul.dy-client-list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 8px; }
ul.dy-client-list li {
	font-family: var(--dy-head); font-weight: 600; font-size: 15.5px; color: var(--dy-ink);
	background: var(--dy-soft); border-radius: 10px; padding: 11px 14px;
}

/* Compact tile (industries, cities) */
.e-con.dy-tile {
	background: #fff; border: 1px solid var(--dy-line); border-radius: 14px;
	--padding-top: 20px; --padding-bottom: 20px; --padding-left: 20px; --padding-right: 20px;
	--gap: 14px; flex-direction: row !important; align-items: center; flex-wrap: nowrap;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.e-con.dy-tile:hover { border-color: var(--dy-blue); box-shadow: var(--dy-shadow); transform: translateY(-2px); }
.dy-soft .e-con.dy-tile { border-color: transparent; }
.dy-tile > .elementor-widget.dy-icon { width: auto; flex: none; }
.dy-tile .dy-icon .elementor-icon { width: 44px; height: 44px; font-size: 18px; }
.dy-tile .dy-icon .elementor-icon svg { width: 18px; height: 18px; }
.dy-tile .elementor-widget-heading { flex: 1; }
.dy-tile .elementor-heading-title { font-family: var(--dy-head); font-size: 16px; line-height: 1.35; font-weight: 600; color: var(--dy-ink); }

/* Highlight box */
.e-con.dy-highlight {
	background: #fff; border-left: 5px solid var(--dy-orange); border-radius: 12px;
	--padding-top: 24px; --padding-bottom: 24px; --padding-left: 28px; --padding-right: 28px; box-shadow: var(--dy-shadow);
}
.dy-highlight .elementor-widget-text-editor { font-family: var(--dy-head); font-size: 18px; line-height: 1.6; color: var(--dy-ink); font-weight: 500; }
.dy-dark .e-con.dy-highlight, .dy-banner .e-con.dy-highlight { background: rgba(255, 255, 255, .07); box-shadow: none; }
.dy-dark .dy-highlight .elementor-widget-text-editor, .dy-banner .dy-highlight .elementor-widget-text-editor { color: #fff; }

/* Boxed panel (Home partnership) */
.e-con.dy-panel {
	background: linear-gradient(120deg, #EEF2FF 0%, #FFF4EA 100%); border-radius: 22px;
	--padding-top: 48px; --padding-bottom: 48px; --padding-left: 56px; --padding-right: 56px;
}
.e-con.dy-panel-grid { grid-template-columns: 1.6fr 1fr; gap: 40px; }
.e-con.dy-panel-action { align-items: flex-end; }

/* Images */
.e-con .dy-img img { border-radius: 20px; width: 100%; object-fit: cover; box-shadow: var(--dy-shadow); aspect-ratio: 4 / 3; }
.e-con .dy-img-portrait img { aspect-ratio: 4 / 5; max-width: 420px; margin: 0 auto; display: block; }

/* =========================================================
   Lists, chips, flow
   ========================================================= */
ul.dy-check { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
ul.dy-check li { position: relative; padding-left: 30px; line-height: 1.55; }
ul.dy-check li::before {
	content: ""; position: absolute; left: 0; top: 3px; width: 19px; height: 19px; border-radius: 50%;
	background: rgba(96, 127, 248, .14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23607FF8'%3E%3Cpath d='M8.2 13.6 4.9 10.3l1.2-1.2 2.1 2.1 5.7-5.7 1.2 1.2z'/%3E%3C/svg%3E") center/14px no-repeat;
}
ul.dy-check-lg { gap: 14px; font-size: 17px; color: var(--dy-ink); }
.dy-dark ul.dy-check li::before, .dy-feature ul.dy-check li::before { background-color: rgba(255, 255, 255, .15); }

ul.dy-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.dy-center ul.dy-chips { justify-content: center; }
ul.dy-chips li {
	background: #fff; border: 1px solid var(--dy-line); color: var(--dy-ink); border-radius: 50px;
	padding: 8px 16px; font-family: var(--dy-head); font-size: 14px; font-weight: 500; line-height: 1.3;
}
.dy-card ul.dy-chips li { background: var(--dy-soft); border-color: transparent; }
ul.dy-chips-sm { gap: 8px; }
ul.dy-chips-sm li { padding: 6px 12px; font-size: 13px; }
.dy-dark ul.dy-chips li, .dy-feature ul.dy-chips li { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .16); color: #fff; }

ol.dy-flow { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.dy-center ol.dy-flow { justify-content: center; }
ol.dy-flow li { background: #fff; border: 1px solid var(--dy-line); border-radius: 50px; padding: 10px 20px; font-family: var(--dy-head); font-weight: 600; color: var(--dy-ink); font-size: 15px; }
ol.dy-flow li:not(:last-child)::after { content: "→"; margin-left: 16px; color: var(--dy-orange); }

/* Client name wall (Home) */
ul.dy-logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
ul.dy-logos li {
	background: #fff; border-radius: 12px; min-height: 76px; display: flex; align-items: center; justify-content: center; text-align: center;
	padding: 12px; font-family: var(--dy-head); font-weight: 700; font-size: 16px; color: #3A4152; letter-spacing: -.01em;
	transition: color .2s ease, box-shadow .2s ease;
}
ul.dy-logos li:hover { color: var(--dy-ink); box-shadow: var(--dy-shadow); }

/* Summary strip (Need people? → …) */
.dy-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.dy-strip li { background: var(--dy-navy); color: #fff; border-radius: 14px; padding: 22px 24px; font-family: var(--dy-head); font-size: 16px; line-height: 1.5; }
.dy-strip li b { color: #FFB066; font-weight: 600; display: block; margin-bottom: 4px; }
.dy-strip-3 li { display: flex; align-items: center; gap: 14px; }
.dy-strip-3 li i { color: #FFB066; font-size: 20px; }
.dy-strip-3 li b { color: #fff; margin: 0; }

/* =========================================================
   Buttons
   ========================================================= */
.e-con.dy-btns { flex-direction: row !important; flex-wrap: wrap; --gap: 14px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; --margin-top: 12px; --margin-block-start: 12px; }
.e-con.dy-btns.dy-center { justify-content: center; }
.e-con.dy-sec > .e-con-inner > .dy-btns.dy-center { --margin-top: 40px; --margin-block-start: 40px; }
.dy-btns > .elementor-widget { width: auto; }
.dy-btn .elementor-button, .dy-btn-ghost .elementor-button, .dy-btn-blue .elementor-button {
	font-family: var(--dy-head); font-size: 15px; font-weight: 600; border-radius: 50px; padding: 16px 30px; line-height: 1.2;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.dy-btn .elementor-button { background-color: var(--dy-orange); color: #fff; border: 2px solid var(--dy-orange); }
.dy-btn .elementor-button:hover { background-color: var(--dy-orange-dark); border-color: var(--dy-orange-dark); color: #fff; transform: translateY(-2px); }
.dy-btn-blue .elementor-button { background-color: var(--dy-blue); color: #fff; border: 2px solid var(--dy-blue); }
.dy-btn-blue .elementor-button:hover { background-color: var(--dy-blue-dark); border-color: var(--dy-blue-dark); color: #fff; transform: translateY(-2px); }
.dy-btn-ghost .elementor-button { background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, .7); }
.dy-btn-ghost .elementor-button:hover { background: #fff; color: var(--dy-navy); border-color: #fff; }
.dy-link .elementor-button { background: none; padding: 0; color: var(--dy-blue); font-family: var(--dy-head); font-weight: 600; font-size: 15px; border-radius: 0; }
.dy-link .elementor-button:hover { color: var(--dy-orange); background: none; }
.dy-card > .elementor-widget.dy-btn { width: auto; align-self: flex-start; margin-top: 8px; }

/* =========================================================
   FAQ
   ========================================================= */
.dy-faq .elementor-toggle-item { background: #fff; border-radius: 14px; margin-bottom: 14px; overflow: hidden; box-shadow: 0 2px 10px rgba(18, 26, 54, .04); }
.dy-faq .elementor-tab-title { border: none !important; padding: 22px 26px !important; font-family: var(--dy-head); font-size: 17px; font-weight: 600; color: var(--dy-ink); }
.dy-faq .elementor-tab-title a { color: inherit; }
.dy-faq .elementor-tab-title.elementor-active, .dy-faq .elementor-tab-title:hover { color: var(--dy-blue); }
.dy-faq .elementor-toggle-icon { color: var(--dy-orange); }
.dy-faq .elementor-toggle-icon svg { fill: var(--dy-orange); }
.dy-faq .elementor-tab-content { border: none !important; padding: 0 26px 24px !important; color: var(--dy-text); line-height: 1.7; }
.e-con.dy-sticky { position: sticky; top: 110px; }

/* =========================================================
   Forms (Contact Form 7)
   ========================================================= */
.dy-form .wpcf7 { width: 100%; }
.dy-form .dy-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.dy-form .dy-fields > p { display: contents; }  /* CF7 wraps fields in a <p> */
.dy-form .dy-full { grid-column: 1 / -1; }
.dy-form label { display: block; font-family: var(--dy-head); font-size: 14px; font-weight: 500; color: var(--dy-ink); margin: 0; }
.dy-form .wpcf7-form-control-wrap { display: block; }
.dy-form input:not([type=submit]):not([type=file]), .dy-form select, .dy-form textarea {
	width: 100%; margin: 6px 0 0 !important; border: 1px solid var(--dy-line); border-radius: 10px; background: #fff;
	padding: 13px 16px; font-size: 15px; color: var(--dy-ink); height: auto; text-transform: none !important; box-shadow: none;
}
.dy-form select { appearance: auto; }
.dy-form textarea { height: 130px; resize: vertical; }
.dy-form ::placeholder { text-transform: none !important; color: #9AA0B0; }
.dy-form input:focus, .dy-form select:focus, .dy-form textarea:focus { outline: none; border-color: var(--dy-blue); box-shadow: 0 0 0 3px rgba(96, 127, 248, .15); }
.dy-form input[type=file] { margin-top: 8px; font-size: 14px; width: 100%; padding: 12px; border: 1px dashed var(--dy-line); border-radius: 10px; background: var(--dy-soft); }
.dy-form input[type=submit] {
	background: var(--dy-orange); color: #fff; border: none; border-radius: 50px; padding: 16px 34px; height: auto; line-height: 1.2;
	font-family: var(--dy-head); font-weight: 600; font-size: 15px; cursor: pointer; width: auto; text-transform: none; box-shadow: none;
}
.dy-form input[type=submit]:hover { background: var(--dy-orange-dark); }
.dy-form .wpcf7-spinner { vertical-align: middle; }
.dy-form .wpcf7-response-output { margin: 16px 0 0 !important; border-radius: 10px; font-size: 14px; }

/* Contact details */
ul.dy-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
ul.dy-contact li { display: flex; gap: 14px; align-items: center; line-height: 1.5; }
ul.dy-contact li span.dy-ci {
	flex: none; width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center;
	background: rgba(96, 127, 248, .12); color: var(--dy-blue);
}
ul.dy-contact li small { display: block; font-size: 13px; color: var(--dy-muted); }
ul.dy-contact a { color: var(--dy-ink); font-weight: 600; word-break: break-word; }
.dy-feature ul.dy-contact a, .dy-dark ul.dy-contact a, .dy-footer ul.dy-contact a { color: #fff; }
.dy-feature ul.dy-contact li small, .dy-footer ul.dy-contact li small { color: rgba(255, 255, 255, .6); }
.dy-feature ul.dy-contact li span.dy-ci, .dy-footer ul.dy-contact li span.dy-ci { background: rgba(255, 255, 255, .08); color: #FFB066; }

/* =========================================================
   Footer
   ========================================================= */
.e-con.dy-footer { background: var(--dy-navy); --padding-top: 80px; --padding-bottom: 0px; }
.dy-footer .elementor-widget-text-editor { color: rgba(255, 255, 255, .72); font-size: 15px; line-height: 1.7; }
.dy-footer .dy-fhead .elementor-heading-title { font-family: var(--dy-head); color: #fff; font-size: 18px; font-weight: 600; }
.dy-footer .elementor-widget.dy-fhead-gap { margin-top: 18px !important; }
.dy-footer .dy-brand .elementor-heading-title { font-family: var(--dy-head); color: #fff; font-size: 24px; font-weight: 700; }
.dy-footer .dy-tagline { color: #FFB066; margin-bottom: 12px; }
.e-con.dy-fgrid { grid-template-columns: 1.3fr .9fr 1.1fr 1.2fr; gap: 40px; }
ul.dy-flinks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
ul.dy-flinks a { color: rgba(255, 255, 255, .72); font-size: 15px; transition: color .2s ease; }
ul.dy-flinks a:hover { color: #FFB066; }
ul.dy-social { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
ul.dy-social a {
	width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .08); color: #fff; font-size: 15px; transition: background-color .2s ease;
}
ul.dy-social a:hover { background: var(--dy-orange); color: #fff; }
.e-con.dy-fbottom {
	margin-top: 56px; border-top: 1px solid rgba(255, 255, 255, .12);
	--padding-top: 24px; --padding-bottom: 24px; --padding-left: 0px; --padding-right: 0px;
	flex-direction: row !important; justify-content: space-between; flex-wrap: wrap; --gap: 12px;
}
.dy-fbottom > .elementor-widget { width: auto; }
.dy-fbottom .elementor-widget-text-editor { font-size: 14px; }
.dy-fbottom a { color: rgba(255, 255, 255, .72); }
.dy-fbottom a:hover { color: #FFB066; }

/* =========================================================
   Colour on dark surfaces (kept last so it wins)
   ========================================================= */
.dy-dark .elementor-heading-title, .dy-hero .elementor-heading-title, .dy-banner .elementor-heading-title,
.dy-cta .elementor-heading-title, .dy-feature .elementor-heading-title, .dy-footer .elementor-heading-title { color: #fff; }
.dy-dark .dy-title .elementor-heading-title, .dy-dark .dy-card-title .elementor-heading-title,
.dy-cta .dy-title .elementor-heading-title, .dy-hero .dy-title .elementor-heading-title,
.dy-banner .dy-title .elementor-heading-title, .dy-feature .dy-card-title .elementor-heading-title { color: #fff; }
.dy-hero .dy-title .elementor-heading-title span, .dy-banner .dy-title .elementor-heading-title span { color: var(--dy-orange); }
.dy-dark .dy-card-sub .elementor-heading-title, .dy-feature .dy-card-sub .elementor-heading-title,
.dy-hero .dy-sub .elementor-heading-title, .dy-banner .dy-sub .elementor-heading-title { color: #AFC0FF; }
.dy-dark .elementor-widget-text-editor, .dy-hero .elementor-widget-text-editor, .dy-banner .elementor-widget-text-editor,
.dy-cta .elementor-widget-text-editor, .dy-feature .elementor-widget-text-editor,
.dy-dark .dy-card .elementor-widget-text-editor { color: rgba(255, 255, 255, .8); }
.dy-dark .dy-num .elementor-heading-title { background: rgba(251, 120, 0, .18); }
.dy-dark .e-con.dy-step .dy-num .elementor-heading-title { background: var(--dy-orange); }
.dy-dark .dy-tagline { color: #AFC0FF; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1024px) {
	.e-con.dy-grid, .e-con.dy-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-con.dy-split, .e-con.dy-faq-grid, .e-con.dy-panel-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.e-con.dy-panel-action { align-items: flex-start; }
	.e-con.dy-fgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-con.dy-tiles > .e-con.dy-tile { flex-basis: calc((100% - 24px) / 2) !important; }
	ul.dy-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.e-con.dy-trust-item:nth-child(3) { border-left: none; }
	.e-con.dy-trust-item:nth-child(n+3) { border-top: 1px solid var(--dy-line); }
	.e-con.dy-sticky { position: static; }
	.dy-title .elementor-heading-title { font-size: 34px; }
	.dy-hero .dy-title .elementor-heading-title { font-size: 46px; }
	.dy-banner .dy-title .elementor-heading-title { font-size: 40px; }
}
/* Tablets: three photo cards stay three across instead of leaving one card alone on a row. */
@media (min-width: 768px) and (max-width: 1024px) {
	.e-con.dy-grid:has(> .dy-has-img) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
	.e-con.dy-grid:has(> .dy-has-img) > .dy-card { --padding-left: 20px; --padding-right: 20px; }
	.e-con.dy-grid:has(> .dy-has-img) > .dy-card > .elementor-widget.dy-card-img { margin: 0 -20px 8px !important; width: calc(100% + 40px) !important; }
}
@media (max-width: 767px) {
	.e-con.dy-sec { --padding-top: 64px; --padding-bottom: 64px; --padding-left: 16px; --padding-right: 16px; }
	.e-con.dy-hero { --padding-top: 90px; --padding-bottom: 130px; min-height: 0; }
	.e-con.dy-banner { --padding-top: 64px; --padding-bottom: 64px; }
	.e-con.dy-service { --padding-top: 48px; --padding-bottom: 48px; }
	.e-con.dy-vertical { --padding-top: 56px; --padding-bottom: 8px; }
	.e-con.dy-grid, .e-con.dy-g2, .e-con.dy-g4, .e-con.dy-fgrid { grid-template-columns: minmax(0, 1fr); }
	/* Keep short lists two-up on phones so pages don't get needlessly long. */
	.e-con.dy-fgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
	.e-con.dy-fgrid > .e-con:first-child, .e-con.dy-fgrid > .e-con:last-child { grid-column: 1 / -1; }
	.e-con.dy-grid:has(> .dy-client-card) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.e-con.dy-client-card { --padding-left: 16px; --padding-right: 16px; --padding-top: 20px; --padding-bottom: 20px; }
	.dy-client-card .dy-card-title .elementor-heading-title { font-size: 16px; }
	ul.dy-client-list li { font-size: 13.5px; padding: 8px 10px; }
	.e-con.dy-trust { grid-template-columns: minmax(0, 1fr) !important; }
	.e-con.dy-trust-item + .e-con.dy-trust-item { border-left: none; border-top: 1px solid var(--dy-line); }
	.e-con.dy-trust-wrap > .e-con-inner { margin-top: -64px; }
	.e-con.dy-tiles > .e-con.dy-tile { flex-basis: 100% !important; }
	.e-con.dy-panel { --padding-top: 32px; --padding-bottom: 32px; --padding-left: 24px; --padding-right: 24px; }
	.e-con.dy-form-card { --padding-left: 22px; --padding-right: 22px; }
	.e-con.dy-head-block { --margin-bottom: 32px; --margin-block-end: 32px; }
	ul.dy-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dy-strip { grid-template-columns: minmax(0, 1fr); }
	.dy-form .dy-fields { grid-template-columns: minmax(0, 1fr); }
	.dy-title .elementor-heading-title { font-size: 28px; }
	.dy-title-sm .elementor-heading-title { font-size: 25px; }
	.dy-hero .dy-title .elementor-heading-title { font-size: 36px; }
	.dy-banner .dy-title .elementor-heading-title { font-size: 31px; }
	.dy-sub .elementor-heading-title { font-size: 18px; }
	.dy-eyebrow .elementor-heading-title { font-size: 12px; letter-spacing: .08em; }
	.dy-lead { font-size: 16px; }
	.e-con .dy-card-img img { height: 190px; }
	.e-con.dy-card > .elementor-widget.dy-card-img { margin: 0 -30px 10px !important; }
	ol.dy-flow li { font-size: 14px; padding: 8px 14px; }
	ol.dy-flow li:not(:last-child)::after { margin-left: 10px; }
}

/* =========================================================
   WP Job Manager listing ([jobs])
   ========================================================= */
.dy-jobs { width: 100%; }
.dy-jobs .job_filters { background: #fff; border-radius: 16px 16px 0 0; padding: 20px; }
.dy-jobs .job_filters .search_jobs { background: none; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.dy-jobs .job_filters .search_jobs > div { float: none; width: auto; flex: 1 1 240px; padding: 0 !important; }
.dy-jobs .job_filters input[type=text] { border: 1px solid var(--dy-line); border-radius: 10px; padding: 13px 16px; height: auto; width: 100%; }
.dy-jobs .job_filters .search_submit { flex: 0 0 auto !important; }
.dy-jobs .job_filters .search_submit input, .dy-jobs .job_filters .search_submit button {
	background: var(--dy-orange); color: #fff; border: none; border-radius: 50px; padding: 14px 30px; box-shadow: none;
	font-family: var(--dy-head); font-weight: 600; text-transform: none; width: auto;
}
.dy-jobs .job_filters .job_types { background: #fff; border-top: 1px solid var(--dy-line); padding: 12px 20px; margin: 0; }
.dy-jobs ul.job_listings { background: #fff; border-radius: 0 0 16px 16px; border-top: 1px solid var(--dy-line); overflow: hidden; }
.dy-jobs ul.job_listings li.job_listing a, .dy-jobs ul.job_listings li.no_job_listings_found { padding: 22px 24px; }
.dy-jobs ul.job_listings li.job_listing a:hover { background: var(--dy-soft); }
.dy-jobs ul.job_listings li.job_listing .position h3 { font-family: var(--dy-head); font-size: 18px; font-weight: 600; color: var(--dy-ink); }
.dy-jobs .showing_jobs { background: var(--dy-soft); }
