/*
Theme Name: NextSWS
Description: A lightweight, update-safe child theme for Divi 5.
Author: NextSWS
Template: Divi
Version: 1.0.4
Requires at least: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nextsws
*/

/*
 * Add project-wide custom CSS below this line.
 * Divi 5 design settings remain available in the Visual Builder.
 */

:root {
	--nextsws-navy: #282e77;
	--nextsws-navy-hover: #8281ba;
	--nextsws-purple: #5453a4;
	--nextsws-slate: #727986;
	--nextsws-cyan: #00abc9;
	--nextsws-text: #454545;
	--nextsws-dark: #222222;
	--nextsws-darker: #171717;
	--nextsws-white: #ffffff;
}

/* ---------- Base typography (matches nextsws.com) ---------- */
html body {
	font-family: 'Open Sans', Helvetica, Arial, Lucida, sans-serif;
	font-size: 20px;
	line-height: 1.7em;
}
h1 { font-size: 32px; }
h2 { font-size: 27px; }
h3 { font-size: 23px; }
h4 { font-size: 19px; }
h5 { font-size: 16px; }
h6 { font-size: 15px; }
a { color: #5c4e87; }

/* ---------- Header ---------- */
.nsws-menu .et-menu > li > a {
	font-size: 14px;
	text-transform: uppercase;
	font-weight: 400;
}
.nsws-menu .et-menu .sub-menu {
	width: 320px;
}
.nsws-menu .et-menu .sub-menu li,
.nsws-menu .et-menu .sub-menu li a {
	width: 100%;
}
.nsws-menu .et-menu .sub-menu li a {
	font-size: 14px;
	text-transform: uppercase;
	color: #ffffff !important;
}
.nsws-menu .et-menu .sub-menu li a:hover {
	background-color: rgba(255, 255, 255, 0.08) !important;
	opacity: 1;
}
.nsws-menu .et-menu > li.menubox {
	padding-left: 6px;
	padding-right: 6px;
	align-items: center;
}
.nsws-menu .et-menu > li.menubox > a {
	height: auto;
}
.nsws-menu .et-menu > li.menubox > a {
	background: var(--nextsws-navy) !important;
	color: #ffffff !important;
	padding: 7px 10px !important;
	border-radius: 3px;
	line-height: 1.2em;
	transition: background-color 300ms ease;
}
.nsws-menu .et-menu > li.menubox > a:hover {
	background: var(--nextsws-navy-hover) !important;
	opacity: 1;
}
.nsws-menu .et-menu > li.nsws-brokercheck > a::before {
	content: "";
	display: inline-block;
	width: 15px;
	height: 15px;
	margin-right: 6px;
	vertical-align: -2px;
	background: url('/wp-content/uploads/2026/10/finma-blue-icon.png') center / contain no-repeat;
}
.nsws-menu .et_mobile_menu li.menubox a {
	color: var(--nextsws-navy) !important;
	font-weight: 600;
}
@media (max-width: 1400px) and (min-width: 981px) {
	.nsws-menu .et-menu > li { padding-left: 5px; padding-right: 5px; }
	.nsws-menu .et-menu > li > a { font-size: 12px; }
	.nsws-menu .et-menu > li.menubox > a { padding: 6px 8px !important; }
	.nsws-menu .et_pb_menu__logo-wrap { max-width: 230px !important; }
}
@media (max-width: 1180px) and (min-width: 981px) {
	.nsws-menu .et-menu > li { padding-left: 3px; padding-right: 3px; }
	.nsws-menu .et-menu > li > a { font-size: 11px; }
	.nsws-menu .et_pb_menu__logo-wrap { max-width: 190px !important; }
}

/* ---------- Footer ---------- */
.nsws-disclosures,
.nsws-disclosures p {
	font-size: 16px;
	line-height: 1.6em;
}
.nsws-disclosures h3 {
	font-size: 20px;
	padding-bottom: 6px;
}
.nsws-disclosures a {
	color: #ffffff !important;
	text-decoration: underline;
}
.nsws-copyright p {
	font-family: 'Courier New', Courier, monospace;
	font-size: 14px;
	line-height: 1.5em;
	white-space: normal;
}
.nsws-copyright a {
	color: #ffffff !important;
}
.nsws-v-center {
	margin-top: auto !important;
	margin-bottom: auto !important;
}

/* ---------- Page hero (inner pages) ---------- */
.nsws-hero h1 {
	font-size: 56px;
	color: #ffffff;
	line-height: 1.2em;
	padding-bottom: 0;
}
@media (max-width: 980px) {
	.nsws-hero h1 { font-size: 44px; }
}
@media (max-width: 767px) {
	.nsws-hero h1 { font-size: 34px; }
}

/* ---------- Home slider ---------- */
.nsws-home-slider .et_pb_slide_title {
	font-weight: 300;
	line-height: 1.2em !important;
	max-width: 850px;
	margin: 0 auto;
}
.nsws-home-slider .et_pb_slide_description {
	animation: none !important;
}

/* ---------- Service blurb grid (home + Our Services) ---------- */
.nsws-service-blurb {
	padding: 14px 10px;
	transition: transform 300ms ease;
}
.nsws-service-blurb .et_pb_main_blurb_image {
	margin-bottom: 14px;
}
.nsws-service-blurb .et-pb-icon {
	font-size: 45px !important;
	opacity: 1 !important;
	transition: transform 0.6s ease-out, color 300ms ease, border-color 300ms ease;
}
.nsws-service-blurb:hover .et-pb-icon {
	transform: rotateZ(360deg);
}
.nsws-service-blurb .et_pb_module_header {
	padding-bottom: 0;
}

/* ---------- Split content sections (service pages) ---------- */
.nsws-split .et_pb_text h2 {
	font-size: 27px;
	line-height: 1.2em;
	padding-bottom: 6px;
}
.nsws-split .et_pb_text h3 {
	font-size: 22px;
}
.nsws-split-dark .et_pb_text h2,
.nsws-split-dark .et_pb_text h3,
.nsws-split-dark .et_pb_text h4,
.nsws-split-dark .et_pb_text strong {
	color: #ffffff;
}
.nsws-split .et_pb_text p + h2,
.nsws-split .et_pb_text ul + h2 {
	padding-top: 14px;
}
.nsws-split .et_pb_text ul {
	padding-bottom: 1em;
}
@media (max-width: 980px) {
	.nsws-split {
		background-size: cover !important;
		background-position: center !important;
		min-height: 0 !important;
		padding-top: 110px !important;
		padding-bottom: 110px !important;
	}
	/* Tint the photo with the section colour so text stays readable */
	.nsws-split::before {
		content: "";
		position: absolute;
		inset: 0;
		background-color: inherit;
		opacity: 0.86;
		z-index: 0;
		pointer-events: none;
	}
	.nsws-split > .et_pb_row {
		position: relative;
		z-index: 1;
	}
	.nsws-split .et_pb_column_empty {
		display: none;
	}
	.nsws-split .et_pb_text {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* ---------- Buttons with arrow (Let's talk / Medicare) ---------- */
.nsws-arrow-btn.et_pb_button:after {
	opacity: 1 !important;
	margin-left: 0.3em !important;
	left: auto !important;
}

/* ---------- Contact page ---------- */
.nsws-contact-col {
	max-width: 270px;
	margin-left: auto;
	margin-right: auto;
}
.nsws-contact-info .et_pb_blurb_content {
	max-width: 100%;
}
.nsws-contact-info .et-pb-icon {
	font-size: 24px !important;
	opacity: 1 !important;
}
.et_pb_main_blurb_image .et-waypoint {
	opacity: 1 !important;
}
.nsws-contact-info .et_pb_blurb_description p {
	font-size: 19px;
}
.nsws-contact-form .et_pb_contact_form_container input,
.nsws-contact-form .et_pb_contact_form_container textarea {
	background-color: #f7f7f9;
	font-size: 16px;
}
.nsws-map iframe {
	display: block;
	width: 100%;
}
