/* ==========================================================================
   sws-v2.css — the redesign of 28 September 2026
   --------------------------------------------------------------------------
   Written against the agency's meeting notes. Every rule here is scoped to
   body.sws-v2 and to v2-* classes that only the redesigned pages use, so the
   older stylesheets cannot leak in and this whole file can be switched off by
   removing one enqueue line in functions.php.

   What the notes asked for, and where it lives in this file:
     white and light blue, with BLUE TEXT ................ 1. tokens, 2. type
     brighter, cleaner, more minimalist, more personal .. 2, 4 (no boxed cards)
     less blocky / corporate, less rigid ................ 5-8 (overlaps, bands)
     full-width imagery ................................. 5 (hero), 7 (band)
     overlapping images / sections ...................... 6 (media pairs), 7
     bigger, more visible, simpler navigation ........... 11
     fewer CTA buttons .................................. 3 (text links)
     long copy in expandable sections ................... 9 (read-more toggles)

   Every positioning trick (absolute media, overlaps) is guarded with
   :not(.sws-fe-edit), so WPBakery's frontend editor still shows plain,
   selectable columns.
   ========================================================================== */

/* ---- 1. tokens ------------------------------------------------------------ */
.sws-v2 {
	--v2-navy:     #123a6d;   /* headings — the "blue text" */
	--v2-ink:      #1f4570;   /* strong body text */
	--v2-text:     #3d5a78;   /* body copy */
	--v2-muted:    #587391;
	--v2-blue:     #1e7bea;   /* links, buttons */
	--v2-blue-dk:  #145fc0;
	--v2-bar:      #3d91ff;   /* the client's nav blue */
	--v2-sky:      #7ebee7;   /* the client's light blue */
	--v2-sky-50:   #f3f8fd;   /* light band */
	--v2-sky-100:  #e6f2fb;   /* backplates, chips */
	--v2-line:     #d6e7f4;
	--v2-radius:   18px;
	--v2-shadow:   0 26px 60px rgba(18, 58, 109, .14);
	--v2-shadow-s: 0 12px 30px rgba(18, 58, 109, .10);
	--v2-pad:      clamp(64px, 8vw, 120px);
	--v2-gap:      clamp(28px, 4vw, 72px);
	--v2-display:  'Archivo', system-ui, sans-serif;
	--v2-body:     'IBM Plex Sans', system-ui, sans-serif;
}

/* ---- 2. section frame and type ------------------------------------------- */
.sws-v2 .v2 {
	position: relative;
	padding-top: var(--v2-pad) !important;
	padding-bottom: var(--v2-pad) !important;
	background: #ffffff !important;
	color: var(--v2-text);
}
.sws-v2 .v2.v2--sky { background: var(--v2-sky-50) !important; }
/* The content column. The old sections got theirs from .sws-section; these rows do not carry that
   class, so without this every v2 section ran edge to edge (the split copy measured x = 0). Same
   formula as sws-native.css, so both kinds of page line up. Hero and band stay full bleed. */
.sws-v2 .v2:not(.v2-hero):not(.v2-band) {
	box-sizing: border-box;
	padding-left:  max(var(--gut, 3%), calc((100% - var(--wrap, 1340px)) / 2)) !important;
	padding-right: max(var(--gut, 3%), calc((100% - var(--wrap, 1340px)) / 2)) !important;
}
.sws-v2 .v2 > .row-bg-wrap .row-bg { background: transparent !important; }

.sws-v2 .v2 .wpb_wrapper .vc_custom_heading.v2-h1,
.sws-v2 .v2 .wpb_wrapper .vc_custom_heading.v2-h2,
.sws-v2 .v2 .wpb_wrapper .vc_custom_heading.v2-h3 {
	font-family: var(--v2-display) !important;
	font-weight: 700 !important;
	color: var(--v2-navy) !important;
	text-transform: none !important;
	margin: 0 !important;
}
.sws-v2 .v2 .wpb_wrapper .vc_custom_heading.v2-h1 {
	font-size: clamp(30px, 3.05vw, 44px) !important;
	line-height: 1.08 !important;
	letter-spacing: -.028em !important;
}
.sws-v2 .v2 .wpb_wrapper .vc_custom_heading.v2-h2 {
	font-size: clamp(28px, 2.7vw, 40px) !important;
	line-height: 1.12 !important;
	letter-spacing: -.024em !important;
}
.sws-v2 .v2 .wpb_wrapper .vc_custom_heading.v2-h3 {
	font-size: clamp(18px, 1.35vw, 21px) !important;
	line-height: 1.3 !important;
	letter-spacing: -.012em !important;
}
.sws-v2 .v2 .wpb_wrapper .vc_custom_heading.v2-sub {
	font-family: var(--v2-display) !important;
	font-weight: 600 !important;
	font-size: clamp(18px, 1.5vw, 22px) !important;
	line-height: 1.3 !important;
	color: var(--v2-blue) !important;
	text-transform: none !important;
	letter-spacing: -.012em !important;
	margin: 10px 0 0 !important;
}

/* labels: small, sentence case, blue — replaces the uppercase mono eyebrows */
.sws-v2 .v2 .wpb_text_column.v2-label,
.sws-v2 .v2 .wpb_text_column.v2-label p {
	font-family: var(--v2-body) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: .01em !important;
	text-transform: none !important;
	color: var(--v2-blue) !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
	line-height: 1.4 !important;
}
.sws-v2 .v2 .wpb_text_column.v2-label p { display: inline-flex; align-items: center; gap: 10px; }
.sws-v2 .v2 .wpb_text_column.v2-label p::before {
	content: ""; width: 22px; height: 2px; border-radius: 2px; background: var(--v2-sky); flex: 0 0 auto;
}

.sws-v2 .v2 .wpb_text_column,
.sws-v2 .v2 .wpb_text_column p,
.sws-v2 .v2 .wpb_text_column li {
	font-family: var(--v2-body) !important;
	font-size: 17px;
	line-height: 1.7;
	color: var(--v2-text) !important;
}
.sws-v2 .v2 .wpb_text_column p { padding-bottom: 0 !important; margin: 0 0 14px !important; }
.sws-v2 .v2 .wpb_text_column p:last-child { margin-bottom: 0 !important; }
.sws-v2 .v2 .wpb_text_column strong { color: var(--v2-ink) !important; font-weight: 600; }
.sws-v2 .v2 .wpb_text_column.v2-lead,
.sws-v2 .v2 .wpb_text_column.v2-lead p { font-size: clamp(17px, 1.3vw, 19px) !important; line-height: 1.65 !important; }
.sws-v2 .v2 .v2-head { max-width: 760px; margin-bottom: clamp(32px, 4vw, 56px); }
.sws-v2 .v2 .v2-head .wpb_text_column.v2-lead { margin-top: 16px !important; }
.sws-v2 .v2 .v2-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.sws-v2 .v2 .v2-head--center .wpb_text_column.v2-label p { justify-content: center; }

/* ticks for the few real lists that remain */
.sws-v2 .v2 .wpb_text_column.v2-ticks ul { list-style: none !important; margin: 18px 0 0 !important; padding: 0 !important; }
.sws-v2 .v2 .wpb_text_column.v2-ticks ul li {
	position: relative; padding: 0 0 0 30px !important; margin: 0 0 10px !important; list-style: none !important;
}
.sws-v2 .v2 .wpb_text_column.v2-ticks ul li::before {
	content: ""; position: absolute; left: 0; top: .42em; width: 18px; height: 18px; border-radius: 50%;
	background: var(--v2-sky-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e7bea' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 11px no-repeat;
}

/* ---- 3. buttons and text links — ONE button style, used sparingly -------- */
.sws-v2 .v2 a.nectar-button.v2-btn,
.sws-v2 .v2 a.nectar-button.v2-btn:visited {
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	background: var(--v2-blue) !important;
	border: 0 !important;
	border-radius: 12px !important;
	padding: 16px 26px !important;
	margin: 0 !important;
	font-family: var(--v2-body) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	line-height: 1 !important;
	color: #ffffff !important;
	box-shadow: 0 12px 28px rgba(30, 123, 234, .28) !important;
	transition: background .2s ease, transform .2s ease;
}
.sws-v2 .v2 a.nectar-button.v2-btn span { color: #ffffff !important; }
.sws-v2 .v2 a.nectar-button.v2-btn::after {
	content: "\2192"; font-size: 18px; line-height: 1; position: static !important; background: none !important;
	width: auto !important; height: auto !important; opacity: 1 !important; transform: none !important;
}
.sws-v2 .v2 a.nectar-button.v2-btn:hover,
.sws-v2 .v2 a.nectar-button.v2-btn:focus-visible { background: var(--v2-blue-dk) !important; transform: translateY(-1px); }

/* text links live in ordinary Text Blocks as plain <a>, styled by the block's class */
.sws-v2 .v2 .wpb_text_column.v2-link,
.sws-v2 .v2 .wpb_text_column.v2-link p { margin: 0 !important; }
.sws-v2 .v2 .wpb_text_column.v2-link a {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--v2-body) !important; font-weight: 600 !important; font-size: 16px !important;
	color: var(--v2-blue) !important; text-decoration: none !important;
	border-bottom: 1.5px solid transparent;
	transition: border-color .2s ease, color .2s ease;
}
.sws-v2 .v2 .wpb_text_column.v2-link a::after { content: "\2192"; transition: transform .2s ease; }
.sws-v2 .v2 .wpb_text_column.v2-link a:hover,
.sws-v2 .v2 .wpb_text_column.v2-link a:focus-visible { color: var(--v2-blue-dk) !important; border-bottom-color: currentColor; }
.sws-v2 .v2 .wpb_text_column.v2-link a:hover::after { transform: translateX(3px); }
/* the button and its companion link sit side by side, straight in the column */
.sws-v2 .v2 .wpb_wrapper > a.nectar-button.v2-btn { margin: 26px 24px 0 0 !important; vertical-align: middle; }
.sws-v2 .v2 .wpb_wrapper > a.nectar-button.v2-btn + .wpb_text_column.v2-link { display: inline-block; vertical-align: middle; margin-top: 26px !important; }

/* ---- 4. no boxes: lists of points are open, not cards ---------------------- */
.sws-v2 .v2 .v2-grid .row_col_wrap_12_inner {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 3.2vw, 52px) clamp(24px, 3vw, 48px);
}
.sws-v2 .v2 .v2-grid--2 .row_col_wrap_12_inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sws-v2 .v2 .v2-grid--4 .row_col_wrap_12_inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sws-v2 .v2 .v2-grid .wpb_column { width: auto !important; margin: 0 !important; }
.sws-v2 .v2 .v2-item > .vc_column-inner { padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
.sws-v2 .v2 .v2-item .nectar_icon_wrap {
	width: 52px; height: 52px; border-radius: 16px; margin: 0 0 18px !important;
	display: flex !important; align-items: center; justify-content: center;
	background: var(--v2-sky-100);
}
.sws-v2 .v2 .v2-item .wpb_text_column { margin-top: 8px !important; }
.sws-v2 .v2 .v2-item .wpb_text_column p { font-size: 16px !important; }

/* numbered steps, joined by a thin line */
.sws-v2 .v2 .v2-steps .row_col_wrap_12_inner { counter-reset: v2step; }
.sws-v2 .v2 .v2-steps .v2-item { counter-increment: v2step; position: relative; padding-top: 64px !important; }
.sws-v2 .v2 .v2-steps .v2-item::before {
	content: counter(v2step, decimal-leading-zero);
	position: absolute; left: 0; top: 0;
	font-family: var(--v2-display); font-weight: 700; font-size: 44px; line-height: 1;
	color: var(--v2-sky); letter-spacing: -.03em;
}
.sws-v2 .v2 .v2-steps .v2-item::after {
	content: ""; position: absolute; left: 72px; right: -24px; top: 22px; height: 2px;
	background: linear-gradient(90deg, var(--v2-line), transparent);
}
.sws-v2 .v2 .v2-steps .v2-item:last-child::after { display: none; }

/* ---- 5. the page hero: full-bleed photograph, small card, further left ---- */
.sws-v2 .v2.v2-hero { padding: 0 !important; background: var(--v2-sky-50) !important; overflow: hidden; }
.sws-v2 .v2.v2-hero > .row_col_wrap_12 {
	position: static !important;
	max-width: none !important;
	width: 100% !important;
	padding: 0 !important;
}
.sws-v2 .v2.v2-hero .v2-hero__row {
	position: static !important;
	width: 100% !important;
	flex: 1 1 100% !important;
	min-height: clamp(460px, 64vh, 640px);
	display: flex !important;
	align-items: center;
}
.sws-v2 .v2.v2-hero .v2-hero__row .row_col_wrap_12_inner {
	position: static !important;
	display: block !important;
	width: 100% !important;
	padding: clamp(40px, 6vw, 88px) 0 !important;
}
/* the photo fills the band */
.sws-v2:not(.sws-fe-edit) .v2.v2-hero .v2-hero__media {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	margin: 0 !important;
	z-index: 0;
}
/* Salient pads every column by 14px; on a full-bleed photo that showed as a 14px inset each side. */
.sws-v2 .v2.v2-hero .v2-hero__media,
.sws-v2 .v2.v2-band .v2-band__media { padding: 0 !important; }
.sws-v2 .v2.v2-hero .v2-hero__media > .vc_column-inner,
.sws-v2 .v2.v2-hero .v2-hero__media .wpb_wrapper,
.sws-v2 .v2.v2-hero .v2-hero__media .img-with-aniamtion-wrap,
.sws-v2 .v2.v2-hero .v2-hero__media .inner,
.sws-v2 .v2.v2-hero .v2-hero__media .hover-wrap,
.sws-v2 .v2.v2-hero .v2-hero__media .hover-wrap-inner { height: 100%; padding: 0 !important; margin: 0 !important; }
.sws-v2 .v2.v2-hero img.v2-hero__img {
	width: 100% !important; height: 100% !important; min-height: 460px;
	object-fit: cover; object-position: center; display: block;
}
/* a soft light wash from the left, so the card reads as part of the picture, not pasted on */
.sws-v2:not(.sws-fe-edit) .v2.v2-hero .v2-hero__media > .vc_column-inner::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(90deg, rgba(243, 248, 253, .55) 0%, rgba(243, 248, 253, .10) 45%, rgba(243, 248, 253, 0) 70%);
}
/* The card. The client asked for it SMALLER and further LEFT: on wide screens it now sits nearer the
   viewport edge than the content column, but never further right than the column already was. */
.sws-v2 .v2.v2-hero .v2-hero__copy {
	position: relative;
	z-index: 3;
	width: 100% !important;
	max-width: 500px;
	margin: 0 0 0 min(max(43px, calc((100vw - 1340px) / 2)), 8vw) !important;
}
.sws-v2 .v2.v2-hero .v2-hero__copy > .vc_column-inner {
	background: rgba(255, 255, 255, .96) !important;
	border-radius: var(--v2-radius) !important;
	padding: clamp(26px, 2.4vw, 36px) !important;
	box-shadow: var(--v2-shadow) !important;
	border: 0 !important;
}
.sws-v2 .v2.v2-hero .v2-hero__copy .wpb_text_column.v2-lead,
.sws-v2 .v2.v2-hero .v2-hero__copy .wpb_text_column.v2-lead p { font-size: 16.5px !important; line-height: 1.62 !important; margin-top: 16px !important; }
.sws-v2 .v2.v2-hero .v2-actions { margin-top: 24px; }

/* the trust strip rises into the bottom of the hero — the first overlap on the page */
.sws-v2 .v2.v2-trust { padding: 0 0 clamp(40px, 5vw, 64px) !important; background: transparent !important; z-index: 6; }
.sws-v2 .v2.v2-trust > .row_col_wrap_12 { margin-top: -44px; }
.sws-v2 .v2.v2-trust .v2-trust__bar > .vc_column-inner {
	background: #ffffff !important;
	border-radius: var(--v2-radius) !important;
	box-shadow: var(--v2-shadow-s) !important;
	padding: 22px clamp(20px, 2.6vw, 36px) !important;
}
.sws-v2 .v2.v2-trust .v2-trust__bar .wpb_wrapper {
	display: flex; flex-wrap: wrap; align-items: center; gap: 14px clamp(20px, 3vw, 44px);
}
.sws-v2 .v2.v2-trust .v2-trust__bar .wpb_wrapper > * { margin: 0 !important; }
.sws-v2 .v2.v2-trust img.v2-trust__logo { width: 92px !important; height: auto !important; border-radius: 8px; }
.sws-v2 .v2.v2-trust .wpb_text_column.v2-facts ul { display: flex; flex-wrap: wrap; gap: 10px clamp(18px, 2.6vw, 38px); margin: 0 !important; padding: 0 !important; list-style: none !important; }
.sws-v2 .v2.v2-trust .wpb_text_column.v2-facts ul li {
	list-style: none !important; margin: 0 !important; padding: 0 0 0 26px !important; position: relative;
	font-size: 15.5px !important; font-weight: 600 !important; color: var(--v2-navy) !important; line-height: 1.4 !important;
}
.sws-v2 .v2.v2-trust .wpb_text_column.v2-facts ul li::before {
	content: ""; position: absolute; left: 0; top: 50%; margin-top: -9px; width: 18px; height: 18px; border-radius: 50%;
	background: var(--v2-sky-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e7bea' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 11px no-repeat;
}

/* ---- 6. split sections with OVERLAPPING images ----------------------------- */
.sws-v2 .v2.v2-split > .row_col_wrap_12 { align-items: center !important; gap: var(--v2-gap); flex-wrap: nowrap !important; }
.sws-v2 .v2.v2-split .v2-split__copy,
.sws-v2 .v2.v2-split .v2-split__media { width: auto !important; flex: 1 1 0 !important; margin: 0 !important; }
.sws-v2 .v2.v2-split .v2-split__copy { max-width: 600px; }
.sws-v2 .v2.v2-split.v2-split--flip > .row_col_wrap_12 { flex-direction: row-reverse !important; }

.sws-v2 .v2 .v2-split__media > .vc_column-inner { position: relative; padding: 0 0 clamp(40px, 5vw, 70px) !important; }
/* the light-blue plate behind the main photo */
.sws-v2:not(.sws-fe-edit) .v2 .v2-split__media > .vc_column-inner::before {
	content: ""; position: absolute; z-index: 0;
	left: -26px; top: -26px; width: 58%; height: 64%;
	border-radius: 24px; background: var(--v2-sky-100);
}
.sws-v2 .v2.v2-split--flip .v2-split__media > .vc_column-inner::before { left: auto; right: -26px; }
.sws-v2 .v2 .v2-split__media .img-with-aniamtion-wrap { position: relative; z-index: 1; margin: 0 !important; }
.sws-v2 .v2 .v2-split__media img.v2-img--main {
	width: 100% !important; aspect-ratio: 5 / 4; object-fit: cover; display: block;
	border-radius: var(--v2-radius);
}
/* the smaller photo overlaps the main one's corner and breaks out of the column */
.sws-v2:not(.sws-fe-edit) .v2 .v2-split__media .img-with-aniamtion-wrap:has(img.v2-img--float) {
	position: absolute !important; z-index: 2;
	width: 46%; right: -34px; bottom: 0;
}
.sws-v2:not(.sws-fe-edit) .v2.v2-split--flip .v2-split__media .img-with-aniamtion-wrap:has(img.v2-img--float) { right: auto; left: -34px; }
.sws-v2 .v2 .v2-split__media img.v2-img--float {
	width: 100% !important; aspect-ratio: 1 / 1; object-fit: cover; display: block;
	border-radius: var(--v2-radius); border: 8px solid #ffffff; box-shadow: var(--v2-shadow);
}
/* day / night: one photograph, the second given a night treatment (Burglar alarms) */
.sws-v2 .v2 .v2-media--daynight img.v2-img--float { filter: brightness(.42) saturate(.65) contrast(1.12); }
.sws-v2 .v2 .v2-media--daynight .img-with-aniamtion-wrap .inner { position: relative; }
.sws-v2 .v2 .v2-media--daynight .img-with-aniamtion-wrap:has(img.v2-img--float) .inner::after {
	content: ""; position: absolute; inset: 8px; border-radius: 10px; pointer-events: none;
	background: linear-gradient(180deg, rgba(20, 52, 110, .42), rgba(12, 30, 70, .26)); mix-blend-mode: multiply;
}
.sws-v2 .v2 .v2-media--daynight .img-with-aniamtion-wrap .inner::before {
	position: absolute; z-index: 3; top: 20px; left: 20px;
	padding: 6px 12px; border-radius: 999px;
	font: 600 13px/1 var(--v2-body); letter-spacing: .02em;
}
.sws-v2 .v2 .v2-media--daynight .img-with-aniamtion-wrap:has(img.v2-img--main) .inner::before { content: "Day"; background: #ffffff; color: var(--v2-navy); }
.sws-v2 .v2 .v2-media--daynight .img-with-aniamtion-wrap:has(img.v2-img--float) .inner::before { content: "Night"; background: var(--v2-navy); color: #ffffff; top: 22px; left: 22px; }

/* ---- 7. full-width photo band, with a panel that overlaps into the next section ---- */
.sws-v2 .v2.v2-band { padding: 0 !important; overflow: visible !important; z-index: 4; }
.sws-v2 .v2.v2-band > .row_col_wrap_12 { position: static !important; max-width: none !important; width: 100% !important; padding: 0 !important; }
.sws-v2 .v2.v2-band .v2-band__row { position: static !important; width: 100% !important; flex: 1 1 100% !important; min-height: clamp(360px, 46vw, 560px); }
.sws-v2 .v2.v2-band .v2-band__row .row_col_wrap_12_inner { position: static !important; display: block !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
.sws-v2:not(.sws-fe-edit) .v2.v2-band .v2-band__media { position: absolute !important; inset: 0; width: 100% !important; margin: 0 !important; z-index: 0; }
.sws-v2 .v2.v2-band .v2-band__media > .vc_column-inner,
.sws-v2 .v2.v2-band .v2-band__media .wpb_wrapper,
.sws-v2 .v2.v2-band .v2-band__media .img-with-aniamtion-wrap,
.sws-v2 .v2.v2-band .v2-band__media .inner,
.sws-v2 .v2.v2-band .v2-band__media .hover-wrap,
.sws-v2 .v2.v2-band .v2-band__media .hover-wrap-inner { height: 100%; padding: 0 !important; margin: 0 !important; }
.sws-v2 .v2.v2-band img.v2-band__img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.sws-v2:not(.sws-fe-edit) .v2.v2-band .v2-band__panel {
	position: absolute !important; z-index: 3;
	right: max(43px, calc((100vw - 1340px) / 2)); bottom: -72px;
	width: min(560px, calc(100% - 86px)) !important; margin: 0 !important;
}
.sws-v2 .v2.v2-band .v2-band__panel > .vc_column-inner {
	background: #ffffff !important; border-radius: var(--v2-radius) !important;
	padding: clamp(26px, 2.6vw, 40px) !important; box-shadow: var(--v2-shadow) !important;
}
/* the section after a band makes room for the panel that overlaps into it */
.sws-v2 .v2.v2-band + .wpb_row.v2 { padding-top: calc(var(--v2-pad) + 72px) !important; }

/* ---- 8. image cards (services) — photo-led, no borders ------------------------ */
.sws-v2 .v2 .v2-card > .vc_column-inner { padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
.sws-v2 .v2 .v2-card .img-with-aniamtion-wrap { margin: 0 0 20px !important; overflow: hidden; border-radius: var(--v2-radius); }
.sws-v2 .v2 .v2-card img.v2-card__img {
	width: 100% !important; aspect-ratio: 4 / 3; object-fit: cover; display: block;
	border-radius: var(--v2-radius); transition: transform .5s ease;
}
.sws-v2 .v2 .v2-card:hover img.v2-card__img { transform: scale(1.035); }
.sws-v2 .v2 .v2-card .wpb_text_column:not(.v2-link) { margin: 8px 0 14px !important; }
.sws-v2 .v2 .v2-card .wpb_text_column:not(.v2-link) p { font-size: 16px !important; }

/* ---- 9. read-more sections and FAQs on native toggles -------------------------- */
.sws-v2 .v2 .toggles { margin: 0 !important; }
.sws-v2 .v2 .toggles .toggle {
	margin: 0 !important; padding: 0 !important; background: none !important;
	border: 0 !important; border-bottom: 1px solid var(--v2-line) !important; border-radius: 0 !important; box-shadow: none !important;
}
.sws-v2 .v2 .toggles .toggle:first-child { border-top: 1px solid var(--v2-line) !important; }
.sws-v2 .v2 .toggles .toggle > .toggle-title a,
.sws-v2 .v2 .toggles .toggle > h3.toggle-title a {
	display: flex !important; align-items: center; justify-content: space-between; gap: 18px;
	padding: 20px 0 !important; background: none !important;
	font-family: var(--v2-display) !important; font-weight: 600 !important; font-size: 18px !important;
	line-height: 1.35 !important; color: var(--v2-navy) !important; text-transform: none !important; letter-spacing: -.01em !important;
}
.sws-v2 .v2 .toggles .toggle > .toggle-title a i { order: 2; margin: 0 !important; color: var(--v2-blue) !important; background: var(--v2-sky-100) !important; border-radius: 50%; }
.sws-v2 .v2 .toggles .toggle > .toggle-title a:hover { color: var(--v2-blue) !important; }
.sws-v2 .v2 .toggles .toggle > div,
.sws-v2 .v2 .toggles .toggle .inner-toggle-wrap { padding: 0 0 20px !important; background: none !important; border: 0 !important; }
.sws-v2 .v2 .toggles .toggle .inner-toggle-wrap p { font-size: 16.5px !important; }
/* "Read more" — the same element, dressed as a quiet link rather than a list row. Marked by the
   toggle's own style (data-style="minimal"); lists use minimal_small. */
.sws-v2 .v2 .toggles[data-style="minimal"] { margin: 14px 0 6px !important; }
.sws-v2 .v2 .toggles[data-style="minimal"] .toggle,
.sws-v2 .v2 .toggles[data-style="minimal"] .toggle:first-child { border: 0 !important; }
.sws-v2 .v2 .toggles[data-style="minimal"] .toggle > .toggle-title a {
	justify-content: flex-start; padding: 8px 0 !important;
	font-family: var(--v2-body) !important; font-size: 16px !important; font-weight: 600 !important; color: var(--v2-blue) !important;
}
.sws-v2 .v2 .toggles[data-style="minimal"] .toggle > .toggle-title a i { order: 0; }
.sws-v2 .v2 .toggles[data-style="minimal"] .toggle .inner-toggle-wrap ul { margin: 6px 0 0 18px !important; }

.sws-v2 .v2.v2-faq > .row_col_wrap_12 { gap: var(--v2-gap); align-items: flex-start !important; }
.sws-v2 .v2.v2-faq .v2-faq__intro { width: auto !important; flex: 0 0 34% !important; margin: 0 !important; position: sticky; top: 150px; }
.sws-v2 .v2.v2-faq .v2-faq__list  { width: auto !important; flex: 1 1 0 !important; margin: 0 !important; }

/* ---- 10. reviews and the closing contact section ------------------------------- */
.sws-v2 .v2 .v2-reviews-grid .row_col_wrap_12_inner { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.sws-v2 .v2 .v2-reviews-grid .wpb_column { width: auto !important; margin: 0 !important; }
.sws-v2 .v2 .v2-reviews-grid .testimonial_slider,
.sws-v2 .v2 .v2-reviews-grid blockquote,
.sws-v2 .v2 .v2-reviews-grid .vc_column-inner {
	background: #ffffff !important; border: 0 !important; border-radius: var(--v2-radius) !important; box-shadow: var(--v2-shadow-s) !important;
}
.sws-v2 .v2 .v2-reviews-grid .vc_column-inner { padding: 26px !important; height: 100%; }
.sws-v2 .v2 .v2-reviews-grid blockquote { box-shadow: none !important; padding: 0 !important; margin: 0 !important; }

.sws-v2 .v2.v2-contact > .row_col_wrap_12 { gap: var(--v2-gap); align-items: flex-start !important; flex-wrap: nowrap !important; }
.sws-v2 .v2.v2-contact .v2-contact__copy { width: auto !important; flex: 1 1 0 !important; margin: 0 !important; max-width: 560px; }
.sws-v2 .v2.v2-contact .v2-contact__form { width: auto !important; flex: 1 1 0 !important; margin: 0 !important; }
.sws-v2 .v2.v2-contact .v2-contact__form > .vc_column-inner {
	background: #ffffff !important; border-radius: var(--v2-radius) !important; border: 0 !important;
	box-shadow: var(--v2-shadow) !important; padding: clamp(26px, 3vw, 44px) !important;
}
.sws-v2 .v2 .wpb_text_column.v2-contactlist ul { list-style: none !important; margin: 26px 0 0 !important; padding: 0 !important; display: grid; gap: 16px; }
.sws-v2 .v2 .wpb_text_column.v2-contactlist ul li { list-style: none !important; margin: 0 !important; padding: 0 !important; font-size: 17px !important; }
.sws-v2 .v2 .wpb_text_column.v2-contactlist a { color: var(--v2-navy) !important; font-weight: 600; text-decoration: none; border-bottom: 1.5px solid var(--v2-sky); }
.sws-v2 .v2 .wpb_text_column.v2-contactlist a:hover { color: var(--v2-blue) !important; border-bottom-color: var(--v2-blue); }
.sws-v2 .v2 .wpb_text_column.v2-areas p { font-size: 15px !important; color: var(--v2-muted) !important; margin-top: 22px !important; }
/* CF7 inside the v2 card keeps its existing field styling; only the frame changes */
.sws-v2 .v2 .v2-contact__form .sws-form { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }

/* ---- 11. navigation: larger, sentence case, one menu --------------------------- */
.sws-v2 #header-outer #top nav > ul.sf-menu > li > a,
.sws-v2 #header-outer #top nav > ul.sf-menu > li > a .menu-title-text {
	font-family: var(--v2-body) !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.sws-v2 #header-outer #top nav > ul.sf-menu > li > ul.sub-menu > li > a,
.sws-v2 #header-outer #top nav > ul.sf-menu > li > ul.sub-menu > li > a .menu-title-text {
	font-size: 16px !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important;
}
.sws-v2 #header-outer #header-secondary-outer ul.sf-menu > li > a,
.sws-v2 #header-outer #header-secondary-outer ul.sf-menu > li > a .menu-title-text { font-size: 14px !important; font-weight: 500 !important; }
/* the top bar now carries phone and email, each with its icon */
.sws-v2 #header-outer #header-secondary-outer ul.sf-menu > li.sws-bar__item--phone > a::before,
.sws-v2 #header-outer #header-secondary-outer ul.sf-menu > li.sws-bar__item--mail > a::before,
.sws-v2 #header-outer #header-secondary-outer ul.sf-menu > li.sws-bar__item--hours > a::before { display: block !important; background-color: #ffffff !important; }

/* ---- 12. responsive ---------------------------------------------------------------- */
@media only screen and (max-width: 999px) {
	.sws-v2 .v2 .v2-grid .row_col_wrap_12_inner,
	.sws-v2 .v2 .v2-grid--4 .row_col_wrap_12_inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sws-v2 .v2 .v2-reviews-grid .row_col_wrap_12_inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sws-v2 .v2.v2-split > .row_col_wrap_12,
	.sws-v2 .v2.v2-split.v2-split--flip > .row_col_wrap_12,
	.sws-v2 .v2.v2-contact > .row_col_wrap_12,
	.sws-v2 .v2.v2-faq > .row_col_wrap_12 { flex-direction: column !important; flex-wrap: wrap !important; }
	.sws-v2 .v2.v2-split .v2-split__copy,
	.sws-v2 .v2.v2-split .v2-split__media,
	.sws-v2 .v2.v2-contact .v2-contact__copy,
	.sws-v2 .v2.v2-contact .v2-contact__form,
	.sws-v2 .v2.v2-faq .v2-faq__intro,
	.sws-v2 .v2.v2-faq .v2-faq__list { flex: 1 1 100% !important; width: 100% !important; max-width: none; position: static; }
	.sws-v2 .v2.v2-split .v2-split__media { max-width: 620px; }
	.sws-v2 .v2 .v2-steps .v2-item::after { display: none; }
}
@media only screen and (max-width: 690px) {
	.sws-v2 .v2 .v2-grid .row_col_wrap_12_inner,
	.sws-v2 .v2 .v2-grid--2 .row_col_wrap_12_inner,
	.sws-v2 .v2 .v2-grid--4 .row_col_wrap_12_inner,
	.sws-v2 .v2 .v2-reviews-grid .row_col_wrap_12_inner { grid-template-columns: minmax(0, 1fr); }
	.sws-v2 .v2.v2-hero .v2-hero__copy { margin: 0 auto !important; max-width: none; width: calc(100% - 40px) !important; }
	.sws-v2 .v2.v2-hero .v2-hero__row { min-height: 0; }
	.sws-v2 .v2.v2-hero .v2-hero__row .row_col_wrap_12_inner { padding: 180px 0 28px !important; }
	.sws-v2:not(.sws-fe-edit) .v2 .v2-split__media .img-with-aniamtion-wrap:has(img.v2-img--float) { right: -8px; width: 44%; }
	.sws-v2:not(.sws-fe-edit) .v2.v2-split--flip .v2-split__media .img-with-aniamtion-wrap:has(img.v2-img--float) { left: -8px; }
	.sws-v2:not(.sws-fe-edit) .v2 .v2-split__media > .vc_column-inner::before { left: -12px; top: -12px; }
	/* Same selector weight as the desktop rules (they carry :not(.sws-fe-edit)); a lighter selector here
	   lost, left the photo absolutely positioned, and it hung 137px into the next section on phones. */
	.sws-v2:not(.sws-fe-edit) .v2.v2-band .v2-band__row .row_col_wrap_12_inner { display: flex !important; flex-direction: column-reverse; }
	.sws-v2:not(.sws-fe-edit) .v2.v2-band .v2-band__media { position: relative !important; inset: auto; height: 280px; }
	.sws-v2:not(.sws-fe-edit) .v2.v2-band .v2-band__panel { position: relative !important; right: auto; bottom: auto; width: calc(100% - 40px) !important; margin: -64px auto 0 !important; }
	.sws-v2 .v2.v2-band .v2-band__row { min-height: 0; }
	.sws-v2 .v2.v2-band + .wpb_row.v2 { padding-top: var(--v2-pad) !important; }
	.sws-v2 .v2 .v2-steps .v2-item { padding-top: 56px !important; }
}
