/* ==========================================================================
   NSES theme — the whole look of northshoreestatesales.com in one file.
   Values are measured from reference/screens/*.png and
   reference/source/fusion-options-subset.json; nothing is copied from Avada.
   Sections: base · layout · top bar · header/nav · title bar · footer ·
   shortcodes (communities, blurb, easy band, faqs, contact) · forms ·
   buttons · home (hero, intro, problems, sold, strip, steps, form section,
   tabs, faqs, testimonials, footer CTA) · blog grid · mobile.
   ========================================================================== */

:root {
	--nses-blue: #0f72c6;        /* primary / top bar */
	--nses-link: #0066cc;        /* links, h2, active nav, communities band */
	--nses-orange: #e58926;      /* "Call Today!" pill */
	--nses-green: #a0ce4e;       /* CF7 submit */
	--nses-dark: #363839;        /* footer */
	--nses-text: #191919;
	--nses-border: #e5e5e5;
	--nses-grey: #ededed;        /* homepage alternate sections */
	--nses-width: 1100px;
	--nses-condensed: "Open Sans Condensed", "Arial Narrow", sans-serif;
	--nses-sans: "Open Sans", Arial, sans-serif;
	--nses-pt: "PT Sans", Arial, sans-serif;
	--nses-roboto: "Roboto", Arial, sans-serif;                       /* homepage headings */
	--nses-roboto-c: "Roboto Condensed", "Arial Narrow", sans-serif;  /* hero h1, red/blue strip */
}

/* ---------- base ------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: #fff;
	color: var(--nses-text);
	font: 400 15px/1.75 Arial, Helvetica, sans-serif;
	overflow-x: hidden;
}

img { max-width: 100%; height: auto; }

a { color: var(--nses-link); text-decoration: none; }
a:hover { color: #333; }

h1, h2, h3, h4, h5, h6 { margin: 0 0 20px; line-height: 1.5; }
h1 { font: 700 54px/1.4 var(--nses-condensed); color: #0a0a0a; margin: 0.67em 0; }
h2 { font: 700 42px/1.5 var(--nses-condensed); color: var(--nses-link); margin: 0 0 1.1em; }
h3 { font: 400 34px/1.5 var(--nses-sans); color: #333; margin: 1em 0; }
h4 { font: 400 28px/1.5 var(--nses-sans); color: var(--nses-text); margin: 1.33em 0; }
h5 { font: 400 24px/1.5 var(--nses-sans); color: var(--nses-link); margin: 1.67em 0; }
h6 { font: 400 18px/1.5 var(--nses-sans); color: #333; margin: 2.33em 0; }

p { margin: 0 0 20px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.nses-skip:focus {
	position: fixed !important; top: 8px; left: 8px; z-index: 1000;
	width: auto; height: auto; clip: auto; padding: 8px 12px;
	background: #fff; color: var(--nses-link);
}

/* ---------- layout ----------------------------------------------------- */

.nses-container {
	width: 100%;
	max-width: var(--nses-width);
	margin: 0 auto;
	padding: 0 30px;
}
@media (min-width: 1160px) {
	.nses-container { padding: 0; }
}

/* No z-index here on purpose: the footer's curve (.nses-footer::before) must
   paint over page content that runs under it (homepage testimonials band),
   while the footer CTA band lifts itself above the curve with its own z-index. */
.nses-main { position: relative; }

.nses-section { padding: 50px 0; }

/* ---------- top bar ---------------------------------------------------- */

.nses-topbar {
	background: var(--nses-blue);
	border-bottom: 1px solid var(--nses-border);
	color: #fff;
	font-size: 15px;
	line-height: 44px;
}
.nses-topbar__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 55px;
}
.nses-topbar__contact { display: flex; align-items: center; }
.nses-topbar__item {
	display: inline-flex;
	align-items: center;
	padding: 0 13px;
	color: #fff;
}
.nses-topbar__item:hover { color: #dddddd; }
.nses-topbar__item i { font-size: 14px; margin-right: 11px; }
.nses-topbar__item .fa-phone { transform: rotate(98deg); margin-left: 6px; margin-right: 8px; }
.nses-topbar__pill {
	display: inline-block;
	margin-left: 7px;
	padding: 5px 11px;
	border-radius: 10px;
	background: var(--nses-orange);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
}

/* Social icon strip (top bar + footer): icon | icon | icon with thin separators. */
.nses-social { display: flex; align-items: center; }
.nses-social a { display: inline-block; color: #fff; font-size: 16px; line-height: 1; padding: 0 14px; }
.nses-social a:not(:last-child) { border-right: 1px solid #fff; }
.nses-social a:hover { color: #dddddd; }
.nses-topbar__social a { padding: 0 15px; }
.nses-topbar__social a i { display: inline-block; width: 20px; text-align: center; }
.nses-topbar__social a:first-child { padding-left: 0; }
.nses-topbar__social a:last-child { padding-right: 0; }

/* ---------- header + nav ---------------------------------------------- */

.nses-header {
	background: #fff;
	border-bottom: 1px solid var(--nses-border);
}
.nses-header__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 90px;
}
.nses-logo { display: block; line-height: 0; }
.nses-logo__img { width: 197px; height: 90px; }

.nses-nav__list {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nses-nav__list li { margin: 0; }
.nses-nav__list a {
	display: flex;
	align-items: center;
	height: 90px;
	padding: 0 22.5px;
	font: 700 14px/1 var(--nses-condensed);
	color: #161616;
	white-space: nowrap;
}
.nses-nav__list a:hover,
.nses-nav__list .current-menu-item > a,
.nses-nav__list .current_page_item > a,
.nses-nav__list .current-menu-ancestor > a {
	background: var(--nses-link);
	color: #fff;
}

.nses-menu-toggle {
	display: none;
	background: none;
	border: 0;
	padding: 10px;
	font-size: 26px;
	color: #333;
	cursor: pointer;
}

/* ---------- title bar (interior pages) -------------------------------- */

.nses-title-bar {
	border-top: 1px solid #d2d3d4;
	border-bottom: 1px solid #d2d3d4;
	background: #f6f6f6 url("/wp-content/uploads/2017/12/banner-2.jpg") center center / cover no-repeat;
}
.nses-title-bar .nses-container {
	display: flex;
	align-items: center;
	min-height: 70px;
}
.nses-title-bar__title {
	margin: 0;
	font: 700 38px/1.4 var(--nses-condensed);
	color: #fff;
}

/* ---------- footer ----------------------------------------------------- */

.nses-footer {
	position: relative;
	padding: 45px 0 47px;
	background: var(--nses-dark);
	color: #8c8989;
	font-size: 15px;
}
/* The curved dark top edge (Avada custom CSS: 110% wide ellipse, top -90px).
   No margin-top on the footer: like Avada, the curve paints over the last
   90px of page content (sections that must stay visible above it, e.g. the
   contact band's submit button, carry their own z-index). */
.nses-footer::before {
	content: "";
	position: absolute;
	top: -90px;
	left: -50px;
	width: 110%;
	height: 158px;
	background: var(--nses-dark);
	border-radius: 120% 120% 0 0;
}
.nses-footer__grid {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 30px;
}
.nses-footer__menu {
	margin: 0;
	padding: 0;
	list-style: none;
}
.nses-footer__menu li { padding-top: 5px; }
.nses-footer__menu a { display: block; color: #bfbfbf; }
.nses-footer__menu a:hover,
.nses-footer__menu .current-menu-item > a,
.nses-footer__menu .current_page_item > a { color: var(--nses-link); }

.nses-footer__block { margin-top: 0; }
.nses-footer__title {
	margin: 0 0 15px;
	font: 400 15px/1.5 var(--nses-pt);
	text-transform: uppercase;
	color: #fff;
}
.nses-footer__block p { margin: 0 0 20px; }
.nses-footer__social a { font-size: 18px; padding: 0 12px; }
.nses-footer__social a:first-child { padding-left: 0; }
.nses-footer__social .fa-facebook-f { display: inline-block; width: 18px; text-align: center; }

.nses-copyright {
	padding: 18px 0 16px;
	border-top: 1px solid #4b4c4d;
	background: #fff;
	color: #8c8989;
	font-size: 12px;
	line-height: 1.5;
}
.nses-copyright a { color: #bfbfbf; }
.nses-copyright a:hover { color: var(--nses-link); }

/* ---------- [nses_communities] --------------------------------------- */

.nses-communities {
	padding: 5%;
	background: var(--nses-link);
	color: #fff;
}
.nses-communities__heading {
	margin: 0 0 27px;
	text-align: center;
	color: #fff;
}
.nses-communities__cols {
	display: grid;
	grid-template-columns: repeat(3, 360px);
}
.nses-check {
	margin: 0 0 31px;
	padding: 0 0 0 23px;
	list-style: none;
	font-size: 14px;
	line-height: 23.8px;
}
.nses-check li {
	position: relative;
	margin-bottom: 11px;
	padding-left: 33.6px;
}
.nses-check li i {
	position: absolute;
	left: 0;
	top: 0;
	width: 23.8px;
	height: 23.8px;
	line-height: 23.8px;
	text-align: center;
	font-size: 12.32px;
	color: #fff;
}

/* ---------- [nses_past_sales_blurb] ---------------------------------- */

.nses-blurb { padding: 0; }
.nses-blurb h4 { margin: 0 0 20px; }

/* Communities band inside a gallery post (1100px container, not full width):
   Avada's nested global laid its three columns 343px apart from x=231. */
.nses-post .nses-communities { padding: 55px 32px 56px; }
.nses-post .nses-communities__cols { grid-template-columns: repeat(3, 343px); }

/* ---------- [nses_easy_band] ----------------------------------------- */

.nses-easy {
	padding: 3% 5% 20px;
	background: #1c3f6e center center / cover no-repeat;
	color: #fff;
	text-align: center;
}
.nses-easy__copy {
	margin: 1em 0;
	font-size: 32px;
	font-weight: 400;              /* Avada never loaded a bold Open Sans here: <strong> rendered regular */
	color: #fff;
}
.nses-easy__copy strong { font-weight: 400; }
.nses-easy__phone {
	margin: 0 0 1.1em;
	font-size: 65px;
	color: #fff;
}
.nses-easy__phone a { color: #fff; font-weight: 700; }

/* ---------- [nses_faqs] ---------------------------------------------- */

.nses-faqs { padding: 4% 0 calc(4% + 20px); }
.nses-faqs__heading {
	margin: 34px 0;
	text-align: center;
}
.nses-faq {
	border-bottom: 1px solid #ccc;
}
.nses-faq__q {
	display: flex;
	align-items: center;
	padding: 10px 0;
	cursor: pointer;
	list-style: none;
	font: 400 28px/1.5 var(--nses-sans);
	color: var(--nses-link);
}
.nses-faq__q::-webkit-details-marker { display: none; }
.nses-faq__q:hover { color: var(--nses-green); }
.nses-faq__icon {
	flex: 0 0 auto;
	position: relative;
	width: 21px;
	height: 21px;
	margin-right: 19px;
	background: #333;
	color: #fff;
}
.nses-faq__icon::before {
	content: "+";
	position: absolute;
	inset: 0;
	font: 700 14px/21px Arial, sans-serif;
	text-align: center;
}
.nses-faq[open] .nses-faq__icon { background: var(--nses-green); }
.nses-faq[open] .nses-faq__icon::before { content: "\2013"; }
.nses-faq__a { padding: 0 0 20px 40px; }
.nses-faq__a > :last-child { margin-bottom: 0; }
.nses-faq__a .nses-communities { padding: 30px; margin-bottom: 20px; }
.nses-faq__a .nses-communities__cols { grid-template-columns: repeat(3, 1fr); }

/* Homepage variant: white shadowed rows, blue icons. */
.nses-faqs--cards .nses-faq {
	border: 0;
	margin-bottom: 8px;
	padding: 0 10px;
	border-radius: 8px;
	background: #fff;
	box-shadow: rgba(0, 0, 0, 0.15) 0 0 4px;
}
.nses-faqs--cards .nses-faq__icon { background: #025bd1; border-radius: 6px; }

/* ---------- [nses_contact_section] ----------------------------------- */

.nses-contact { padding: 50px 6% 45px; }
.nses-contact--wide .nses-container { max-width: none; }   /* /locations/: Avada hundred_percent container */
.nses-contact--photo {
	background: #1c3f6e center center / cover no-repeat;
	color: #fff;
}
.nses-contact__heading {
	margin: 0 0 40px;
	text-align: center;
}
.nses-contact--photo .nses-contact__heading { color: #fff; }
.nses-contact__heading--h2 { margin: 0 0 68px; font-size: 44px; }
.nses-contact__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 4%;
}
.nses-contact--full .nses-contact__cols { grid-template-columns: 1fr; }
.nses-contact__cols > * { min-width: 0; }   /* CF7's size="40" inputs must not set the column's min-content width */
.nses-contact__left { padding: 5% 5% 0; text-align: center; }
.nses-contact__left h4 { margin: 37px 0; }
.nses-contact__left h4 i { font-size: 28px; }
.nses-contact--photo .nses-contact__left,
.nses-contact--photo .nses-contact__left a { color: #fff; }
.nses-contact--photo .nses-contact__left a { font-weight: 700; }
.nses-contact__left--phone h2 { font-size: 68px; color: #fff; }
.nses-contact__form { position: relative; z-index: 1; padding: 5% 5% 0; }   /* the submit button sits on the footer curve, above it */
.nses-contact__right { padding: 5% 5% 0; }
.nses-contact__right h3 { font-size: 24px; }
.nses-contact__right h3 i { color: var(--nses-text); }
.nses-contact .wpcf7 p { margin: 0 0 20px; }
.nses-contact .wpcf7 input:not([type="submit"]) { height: 29px; padding: 4px 12px; }
.nses-contact .wpcf7 textarea { display: block; height: 150px; min-height: 0; }

/* ---------- forms (Contact Form 7) ----------------------------------- */

.wpcf7 p { margin: 0 0 10px; }
.wpcf7 br { display: none; }
.wpcf7 input:not([type="submit"]),
.wpcf7 textarea {
	width: 100%;
	padding: 6px 12px;
	border: 1px solid #d2d2d2;
	border-radius: 0;
	background: #fff;
	color: #aaa9a9;
	font: 13px/1.5 Arial, sans-serif;
	-webkit-appearance: none;
	appearance: none;
}
.wpcf7 input:not([type="submit"]):focus,
.wpcf7 textarea:focus { outline: 0; border-color: var(--nses-link); color: #333; }
.wpcf7 textarea { min-height: 120px; }
.wpcf7 ::placeholder { color: #aaa9a9; text-transform: uppercase; opacity: 1; }
.wpcf7 input[type="submit"] {
	display: inline-block;
	padding: 13px 29px;
	border: 0;
	border-radius: 2px;
	background: var(--nses-green);
	color: #fff;
	font: 700 14px/17px var(--nses-pt);
	text-transform: uppercase;
	cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: #96c346; }
.wpcf7-not-valid-tip { font-size: 12px; }
.wpcf7-response-output { margin: 10px 0 0; padding: 8px 12px; font-size: 13px; }

/* ---------- buttons ---------------------------------------------------- */

/* Avada "flat, large" button as rendered: 45px tall, PT Sans 18/600 uppercase,
   optional right icon behind a 1px divider (arrow in a 26px circle). */
.nses-btn {
	display: inline-flex;
	align-items: center;
	height: 45px;
	padding: 0 29px;
	border-radius: 2px;
	font: 400 18px/1 var(--nses-pt);
	text-transform: uppercase;
	color: #fff;
	white-space: nowrap;
}
.nses-btn:hover { color: #fff; filter: brightness(0.95); }
.nses-btn--orange { background: #ff9800; }
.nses-btn--blue { background: #0280e8; }
.nses-btn--medium { height: 38px; padding: 0 24px; font-size: 15px; }
.nses-btn__icon {
	display: inline-flex;
	align-items: center;
	align-self: stretch;
	margin: 0 -29px 0 22px;
	padding: 0 15px;
	border-left: 1px solid #fff;
	font-size: 20px;
}
.nses-btn--medium .nses-btn__icon { margin: 0 -24px 0 15px; }
.nses-btn--arrow .nses-btn__icon { padding: 0 8px; }
.nses-btn--arrow .nses-btn__icon i {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border: 1px solid #fff;
	border-radius: 50%;
	font-size: 14px;
}
.nses-btn--medium.nses-btn--arrow .nses-btn__icon i { width: 24px; height: 24px; font-size: 13px; }
.nses-center { text-align: center; }

/* ---------- home: shared ---------------------------------------------- */

/* Section headings on the homepage are Roboto 700, centred, black by default. */
.nses-h {
	margin: 0;
	font: 700 34px/1.5 var(--nses-roboto);
	color: #000;
	text-align: center;
}
.nses-h--blue { color: #0280db; }

/* ---------- home: hero ------------------------------------------------ */

.nses-hero {
	padding: 105px 0 120px;
	background: #333 center center / cover no-repeat;
	text-align: center;
}
.nses-hero .nses-container { position: relative; }
.nses-hero__title {
	margin: 0;
	padding: 20px 33px;
	background: #013e73b0;
	font: 700 53px/68px var(--nses-roboto-c);
	color: #fff;
	text-shadow: 0 1px 5px #000;
}
.nses-hero__sub {
	margin: 20px 0 0;
	background: #0000009e;
	font: 700 36px/65px var(--nses-roboto);
	color: #fff;
	text-shadow: rgba(0, 0, 0, 0.45) 0 4px 1px;
}
.nses-hero__buttons {
	display: flex;
	justify-content: center;
	gap: 16px;
	margin-top: 21px;
}
/* The white swoosh (hero_object.png) sits on the hero's bottom edge. */
.nses-hero__curve {
	position: absolute;
	left: 0;
	bottom: -129px;
	width: 100%;
	height: auto;
}

/* ---------- home: intro ------------------------------------------------ */

.nses-intro { padding: 50px 0 35px; text-align: center; }
.nses-intro__logo { display: block; width: 300px; height: 134px; margin: 0 auto; }
.nses-intro__title { margin: 0 0 19px; font-size: 30px; color: #1073c6; }
.nses-intro__lead {
	max-width: 90%;
	margin: 0 auto 25px;
	font-size: 20px;
	line-height: 35px;
}

/* ---------- home: problems ------------------------------------------- */

.nses-problems { padding: 0 0 60px; }
.nses-problems__title { margin: 0 0 41px; font-size: 35px; }
.nses-problem {
	display: flex;
	align-items: center;
	margin-bottom: 20px;
}
.nses-problem:last-child { margin-bottom: 0; }
.nses-problem__left,
.nses-problem__right {
	flex: 0 0 50%;
	min-height: 306px;
	padding: 20px;
}
.nses-problem__left {
	background: #0291ea;
	color: #fff;
	text-align: center;
}
.nses-problem__right { background: rgba(3, 169, 244, 0.32); }
.nses-problem__tag {
	display: inline-block;
	margin: 12px 0;
	padding: 5px 20px;
	background: #c00000;
	font: 700 22px/1.5 var(--nses-roboto);
	color: #fff;
}
.nses-problem__left p {
	max-width: 90%;
	margin: 0 auto;
	font-size: 17px;
	font-weight: 600;
	color: #fff;
}
.nses-problem__left p > b {
	display: block;
	margin-top: 8px;
	font-size: 20px;
	line-height: 22px;
}
.nses-problem__solution {
	display: inline-block;
	margin: 0 0 12px;
	padding: 2px 20px;
	background: #2aade5;
	font: 600 24px/1.5 var(--nses-sans);
	color: #fff;
}
.nses-problem__heading {
	margin: 0 0 20px;
	font: 700 28px/1.5 var(--nses-roboto);
	color: #000;
}
.nses-problem__sub {
	margin: 0 0 20px;
	font: 700 20px/1.5 var(--nses-roboto);
	color: #1073c6;
}
.nses-problem__copy { margin: 0 0 20px; font-size: 18px; line-height: 25px; }

/* ---------- home: sold items ----------------------------------------- */

.nses-sold { padding: 40px 0 55px; background: var(--nses-grey); }
.nses-sold__title { font-size: 29px; }
.nses-sold__subtitle { margin: 19px 0 20px; font-size: 28px; }
.nses-sold__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px 44px;
	padding-bottom: 20px;
}
.nses-sold__frame {
	display: flex;
	align-items: center;
	height: 476px;
	margin-bottom: 15px;
	border-radius: 3px;
	background: #fff;
	box-shadow: rgba(0, 0, 0, 0.15) 0 0 7px 0;
	overflow: hidden;
}
.nses-sold__frame img { width: 100%; height: auto; }
.nses-sold__name {
	margin: 0 0 20px;
	font: 400 18px/1.5 var(--nses-sans);
	color: #000;
}
.nses-sold__price {
	display: inline-block;
	margin: 0;
	padding: 5px 16px;
	background: #00bc00;
	font: 700 18px/1.5 var(--nses-roboto);
	color: #fff;
}

/* ---------- home: red/blue strip ------------------------------------- */

.nses-strip {
	display: flex;
	align-items: stretch;
	background: linear-gradient(to right, #d11b21 50%, #0f77c6 50%);
	color: #fff;
}
.nses-strip__red,
.nses-strip__blue { flex: 0 0 40%; padding: 25px 0; }
.nses-strip__red { text-align: right; }
.nses-strip__mid { flex: 0 0 20%; align-self: center; padding: 11px 0 12px; text-align: center; line-height: 0; }
.nses-strip__mid img { width: 169px; height: auto; }
.nses-strip h2 {
	margin: 8px 2px;
	font: 700 32px/32px var(--nses-roboto-c);
	color: #fff;
}

/* ---------- home: how it works --------------------------------------- */

.nses-steps { padding: 40px 0 60px; }
.nses-steps__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 40px;
}
.nses-steps__title { font-size: 30px; text-align: left; }
.nses-steps__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 44px;
}
.nses-step {
	min-height: 450px;
	padding: 20px;
	border: 1px solid #3a90e6;
	box-shadow: rgba(0, 0, 0, 0.15) 0 0 12px;
}
.nses-step__image { position: relative; line-height: 0; }
.nses-step__image img { display: block; width: 100%; height: auto; max-height: 272px; object-fit: cover; }
.nses-step__tag {
	position: absolute;
	left: -20px;
	bottom: 0;
	margin: 0;
	padding: 2px 10px;
	background: #0260cc;
	font: 600 20px/30px var(--nses-roboto);
	color: #fff;
}
.nses-step__tag::after {
	content: "";
	position: absolute;
	top: 0;
	right: -16px;
	border-left: 17px solid #0260cc;
	border-top: 17px solid transparent;
	border-bottom: 17px solid transparent;
}
.nses-step p { margin: 39px 0 20px; font-size: 18px; line-height: 32px; }

/* ---------- home: form section --------------------------------------- */

.nses-form-section { padding: 40px 0 80px; background: var(--nses-grey); }
.nses-form-section__subtitle { margin: 20px 0 20px; font-size: 28px; }
/* The form's own markup (CF7 12735, after CF7's autop): the white card is
   .new_contactForm (> .form_col with h3/p/inputs, > p > label with the
   textarea); the submit <p> lands *outside* it, flush left under the card. */
.nses-form-card .new_contactForm {
	display: flow-root;   /* keeps the textarea's 20px bottom margin inside the card */
	border-radius: 8px;
	background: #fff;
	box-shadow: rgba(0, 0, 0, 0.14) 0 0 5px;
}
.nses-form-card .form_col { padding: 15px; }
.nses-form-card .form_col h3 {
	margin: 10px 0 0;
	font: 700 18px/1.5 var(--nses-roboto);
	color: #333;
}
.nses-form-card .form_col > p { margin: 0 0 20px; }
.nses-form-card .form_col > p:last-child { margin-bottom: 0; }
.nses-form-card label { display: block; }
.nses-form-card .form_col input { margin-bottom: 46px; }
.nses-form-card .form_col label:last-child input { margin-bottom: 0; }
.nses-form-card .new_contactForm > p { margin: 40px 0 0; text-align: center; }
.nses-form-card input:not([type="submit"]),
.nses-form-card textarea {
	padding: 7px 10px;
	border: 1px solid #ddd;
	border-radius: 4px;
	background: #f5f5f5;
	color: #000;
	font-size: 16px;
	line-height: 24px;
}
.nses-form-card ::placeholder { text-transform: none; }
.nses-form-card textarea { display: block; min-height: 150px; margin-bottom: 20px; border-radius: 0; background: #fff; }
.nses-form-card .wpcf7 > form > p { margin: 0; }

/* ---------- home: difference tabs ------------------------------------ */

.nses-difference { padding: 40px 0 60px; background: #1073c6; }
.nses-difference__title { margin: 0 0 20px; color: #fff; }
.nses-tabs__nav {
	display: flex;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nses-tabs__nav li { flex: 1; }
.nses-tabs__nav a {
	display: block;
	padding: 6px 3px;
	background: #bbb;
	font: 400 20px/30px var(--nses-sans);
	color: #333;
	text-align: center;
}
.nses-tabs__nav .is-active a { background: #000; color: #fff; }
.nses-tabs__panel {
	display: none;
	padding: 15px;
	border-radius: 6px;
	background: #fff;
	font: 700 16px/23px var(--nses-roboto);
}
.nses-tabs__panel.is-active { display: block; }
.nses-tabs__panel p { margin: 0 0 20px; }

/* ---------- home: faqs + testimonials -------------------------------- */

.nses-home-faqs { padding: 40px 0 60px; }
.nses-home-faqs__title { margin: 0 0 20px; }
.nses-home-faqs .nses-faqs { padding: 0; }
.nses-faqs--cards .nses-faq__q { padding: 11px 0; font-size: 18px; line-height: 28px; }

/* The last 90px of grey run under the footer curve so it still shows at the
   page edges, exactly like Avada's container did. */
.nses-testimonials { padding: 40px 0 90px; background: var(--nses-grey); }
.nses-testimonials__title { margin: 0 0 24px; }
.nses-testimonials__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	align-items: start;
	margin: 0 50px;
}
.nses-testimonial {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding: 15px;
	border-radius: 8px;
	box-shadow: rgba(0, 0, 0, 0.15) 0 0 6px;
}
.nses-testimonial__avatar { flex: 0 0 90px; width: 90px; height: 87px; border-radius: 50%; }
.nses-testimonial__name {
	flex: 1;
	margin: -6px 0 0;
	padding-left: 22px;
	font: 400 18px/1.5 var(--nses-sans);
	color: #333;
}
.nses-testimonial__stars {
	display: flex;
	gap: 2px;
	flex: 0 0 100%;
	margin-top: -30px;
	font-size: 16px;
	line-height: 1;
	color: #ffb900;
}
.nses-testimonial p { flex: 0 0 100%; margin: 17px 0 47px; padding: 0 12px; font-size: 16px; line-height: 26px; color: #333; }

/* ---------- home: footer CTA band ------------------------------------ */

/* Sits in page flow at the end of the homepage; its negative bottom margin
   drags the footer up so the band overlaps the footer's curve (Avada:
   margin-bottom -82px), and z-index lifts it above the curve. */
.nses-footer-cta {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	max-width: 1104px;
	margin: 80px auto -82px;
	background: #1073c6;
	color: #fff;
}
.nses-footer-cta__logo {
	flex: 0 0 243px;
	height: 110px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: #fff;
}
.nses-footer-cta__logo img { width: 245px; max-width: none; height: auto; }
.nses-footer-cta__contact { flex: 1; padding: 15px 0 12px 45px; }
.nses-footer-cta__title {
	margin: 0 0 21px;
	font: 700 20px/30px var(--nses-roboto-c);
	color: #fff;
}
.nses-footer-cta__links a {
	display: inline-block;
	margin: 5px 10px 0 0;
	color: #fff;
	font-size: 15px;
}
.nses-footer-cta__links a:hover { color: #ebebeb; }
.nses-footer-cta__actions { flex: 0 0 359px; padding: 16px 0 12px; }
.nses-footer-cta__alerts {
	display: inline-block;
	margin-top: 11px;
	font: 400 14px/1.5 var(--nses-pt);
	text-transform: uppercase;
	color: #fff;
}
.nses-footer-cta__alerts i { margin-right: 6px; font-size: 16px; }
.nses-footer-cta__alerts:hover { color: #ebebeb; }

/* ---------- interior pages -------------------------------------------- */

/* About / Locations intro: logo, blue star rule, blue h2, 20px centred copy.
   Avada: container padding 50/50, column padding 5%, column margin-bottom 20. */
.nses-intro-page { padding: 50px 0 70px; text-align: center; }
.nses-intro-page__inner { padding-left: 55px; padding-right: 55px; }
.nses-intro-page__logo { display: block; margin: 0 auto; }
.nses-intro-page p { font-size: 20px; margin: 0 0 20px; }
.nses-intro-page h2 { margin: 0 0 1.1em; }

/* Avada fusion_separator with a star: 300px, 1px blue rule, icon on the line. */
.nses-sep {
	display: flex;
	align-items: center;
	width: 300px;
	height: 28px;
	margin: 15px auto 35px;
	color: var(--nses-link);
	font-size: 16px;
	line-height: 1;
}
.nses-sep__line { flex: 1; border-top: 1px solid var(--nses-link); }
.nses-sep i { padding: 0 8px; }
/* /confirmation/: 170px orange rule, no icon. */
.nses-sep--line { width: 170px; height: auto; }
.nses-sep--line .nses-sep__line { border-color: #ef9a3d; }
.nses-intro-page--confirmation { padding: 50px 0 105px; }   /* spacer + 75 + column margin 20 */
.nses-intro-page--confirmation .nses-intro-page__inner { padding-left: 165px; padding-right: 165px; }

/* About: the blue "Our Services" band (Avada's portfolio grid under it was empty). */
.nses-services-band { padding: 4% 0; background: var(--nses-link); text-align: center; }
.nses-services-band h1 { margin: 33px 0 54px; color: #fff; }

/* Plain text pages (/privacy/, /terms/): Avada's default container padding. */
.nses-text-page { padding: 54px 0 40px; }   /* the footer curve cuts into the last line, as on the Avada site */
.nses-text-page ul { margin: 0 0 15px; padding-left: 40px; }
.nses-text-page ul ul { margin-bottom: 0; }

/* Text Alerts (draft, unpublished): heading + line; the dead phizzle iframe is gone. */
.nses-text-alerts { padding: 69px 72px; text-align: center; }
.nses-text-alerts h2 { font-size: 44px; }

/* ---------- landing page (/winnetka-tag-sales/, template-landing.php) --- */

/* Avada's hundred-percent rows are 12px wider than the padding implies
   (1164px inside 10% padding at 1440); the pixel values below reproduce that. */

/* Header strip: logo (1/3) + phone | email (2/3), vertically centred. */
.nses-lp-head {
	display: flex;
	align-items: center;
	padding-top: 10px;
	margin-bottom: 20px;
}
.nses-lp-head__logo { flex: 0 0 33.333%; line-height: 0; }
.nses-lp-head__logo img { width: 197px; height: 90px; }
.nses-lp-head__contact { margin: 0 0 20px; font-size: 18px; }   /* Avada's p margin, centred with it */
.nses-lp-head--global { padding-top: 12px; }                   /* global 4936: contact right-aligned */
.nses-lp-head--global .nses-lp-head__contact { flex: 1; text-align: right; }
.nses-lp-head__contact a { color: var(--nses-link); }

/* Spacers: Avada's empty fusion_separator (4px box + bottom margin, which
   never collapsed with the next heading's margin — hence padding here). */
.nses-lp-sp { height: 4px; box-sizing: content-box; }
.nses-lp-sp--25 { padding-bottom: 25px; }
.nses-lp-sp--35 { padding-bottom: 35px; }
.nses-lp-sp--50 { padding-bottom: 50px; }

/* Hero: two 50% columns, 75% blue over white, equal heights. */
.nses-lp-hero { padding: 100px 138px 120px; }
.nses-lp-hero__row { display: flex; }
.nses-lp-hero__col {
	flex: 0 0 50%;
	background: rgba(0, 102, 204, 0.75);
	color: #fff;
	text-align: center;
}
.nses-lp-hero__col--left { padding: 27px 58px 12px; }
.nses-lp-hero__col--right { padding: 29px; }
/* /info/confirmation/: one full-width column, 10% padding all round. */
.nses-lp-hero--confirmation { padding: 138px; }
.nses-lp-hero__col--full { flex: 0 0 100%; padding: 56px 116px 45px; }
.nses-lp-hero__phone { margin: 0; color: #fff; }
.nses-lp-hero__phone a, .nses-lp-contact__phone a, .nses-easy__phone--h1 a { color: #fff; }
.nses-lp-hero__icon { padding-top: 18px; font-size: 42px; line-height: 44px; }
.nses-lp-hero__pitch {
	margin: 0 0 31px;
	font: 700 34px/1.5 var(--nses-condensed);
	color: #fff;
}
.nses-lp-hero__title { margin: 32px 0; color: #fff; }

/* CF7 4837 (name/email/phone/submit) in both landing bands. */
.nses-lp-form { text-align: left; }
.nses-lp-form .wpcf7 p { margin: 0 0 20px; }
.nses-lp-form .wpcf7 input:not([type="submit"]) { height: 29px; padding: 4px 12px; }

.nses-intro-page--lp { padding: 72px 0 92px; }
.nses-intro-page--lp .nses-intro-page__inner { padding-left: 0; padding-right: 0; }

/* Easy band variant: the phone is an h1 (54px) with no bottom margin. */
.nses-easy__phone--h1 { margin: 0; padding-bottom: 22px; font-size: 54px; line-height: 1.4; color: #fff; }

/* Our Process: h1 + check-circle rule, then five steps in a 902px column at x=306. */
.nses-lp-process { padding: 4% 0 0; }
.nses-lp-process__title { margin: 33px 0 51px; text-align: center; }
.nses-lp-steps { max-width: 884px; margin-left: calc(50% - 414px); padding-top: 10px; }
.nses-lp-step { padding: 25px 0 45px; }   /* Avada column padding 25/25 + column margin 20 */
.nses-lp-step:first-child { padding-top: 0; }
.nses-lp-step h3 { margin: 34px 0; }
.nses-lp-step h3 strong { font-weight: 400; }   /* rendered regular on the Avada site */
.nses-lp-step p { margin: 0 0 20px; }

/* The North Shore Difference: Avada "classic" justified tabs with icons. */
.nses-lp-difference { padding: 3% 138px 0; }
.nses-lp-difference__title { margin: 36px 0; text-align: center; }
.nses-tabs--classic { margin-bottom: 113px; }
.nses-tabs--classic .nses-tabs__nav { gap: 1px; }
.nses-tabs--classic .nses-tabs__nav a {
	padding: 7px 0 12px;
	border-top: 3px solid transparent;
	background: #ebeaea;
	font-size: 28px;
	line-height: 42px;
	color: #333;
}
.nses-tabs--classic .nses-tabs__nav a i { display: block; margin-bottom: 4px; font-size: 30px; line-height: 40px; }
.nses-tabs--classic .nses-tabs__nav .is-active a { border-top-color: var(--nses-link); background: #fff; color: #333; }
.nses-tabs--classic .nses-tabs__panel {
	padding: 15px;
	border: 1px solid #ebeaea;
	border-top: 0;
	border-radius: 0;
	font: 400 20px/35px Arial, Helvetica, sans-serif;
	text-align: center;
}

/* Bottom contact band: photo, phone h1 centred left, h2 + form right. */
.nses-lp-contact {
	padding: 40px 66px 63px;
	background: #1c3f6e center center / cover no-repeat;
	color: #fff;
}
.nses-lp-contact__row { display: flex; }
.nses-lp-contact__phone {
	flex: 0 0 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px;
}
.nses-lp-contact__phone h1 { margin: 0; color: #fff; }
.nses-lp-contact__form { flex: 0 0 50%; padding: 32px 32px 0; }
.nses-lp-contact__form h2 {
	margin: 0 0 1.1em;
	font-size: 48px;
	color: #fff;
	text-align: center;
}

/* ---------- blog: grid cards, large archive rows, single post ----------- */

/* Avada #main padding on blog/archive/single pages. */
.nses-blog { padding: 55px 0 45px; }

/* Grid (/blog/): 2 columns 530px, 40px gutters; nses.js sorts cards into
   .nses-blog__col columns (masonry); the no-JS fallback is a plain grid. */
.nses-blog--grid .nses-blog__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px;
	align-items: start;
}
.nses-blog__grid.is-masonry { display: flex; gap: 40px; }
.nses-blog__col { flex: 0 0 530px; }
.nses-blog__col .nses-card { margin-bottom: 40px; }
.nses-blog__col .nses-card:last-child { margin-bottom: 0; }

/* Card: 1px #ebeaea frame with a 3px bottom edge, image edge-to-edge with a
   1px rule under it, 20px text padding. */
.nses-card {
	border: 1px solid #ebeaea;
	border-bottom-width: 3px;
	background: #fff;
}
.nses-card__image { display: block; border-bottom: 1px solid #ebeaea; line-height: 0; }
.nses-card__image img { width: 100%; height: auto; }
.nses-card__body { padding: 20px 26px; }
.nses-card__title { margin: 10px 0 5px; font: 700 22px/27px var(--nses-condensed); }
.nses-card__title a { color: var(--nses-link); }
.nses-card__title a:hover { color: #333; }
.nses-card__excerpt p { margin: 0; }

/* Large (category archives): one card per row, no frame, 64px apart. */
.nses-blog--large .nses-card { border: 0; margin-bottom: 84px; }
.nses-blog--large .nses-card:last-child { margin-bottom: 0; }
.nses-blog--large .nses-card__image { border: 0; }
.nses-blog--large .nses-card__body { padding: 20px 0 0; }
.nses-blog--large .nses-card__title { margin-bottom: 26px; }

/* Pagination: Avada hid it under the footer curve; ours stays visible. */
.nses-pagination { position: relative; z-index: 1; margin-top: 40px; font-size: 12px; }
.nses-pagination .nav-links { display: flex; gap: 6px; }
.nses-pagination .page-numbers {
	display: inline-block;
	min-width: 30px;
	padding: 4px 10px;
	border: 1px solid #ebeaea;
	text-align: center;
	color: #747474;
}
.nses-pagination .page-numbers.current,
.nses-pagination .page-numbers:hover { background: var(--nses-link); border-color: var(--nses-link); color: #fff; }

/* Short title bar (blog, archives, posts): 59px, text sits 5px above centre. */
.nses-title-bar--short .nses-container { min-height: 59px; }
.nses-title-bar--short .nses-title-bar__title { position: relative; top: -5px; }

/* Single post: Avada #main padding 55/45; the small blue title above the content. */
.nses-post { padding: 55px 0 45px; }
.nses-post__title { margin: 0 0 29px; font: 700 22px/27px var(--nses-condensed); color: var(--nses-link); }
.nses-post--wide { padding-bottom: 0; }                 /* location posts: main_padding bottom 0 */
.nses-post--wide .nses-post__title { padding: 0 30px; }

/* Post body text (gallery posts): the sale blurb, sometimes an h4 + list.
   Class-less lists only — the tabs nav and check lists are <ul>s too. */
.nses-post ul:not([class]) { margin: 0 0 15px; padding-left: 40px; }
.nses-post ul:not([class]) ul { margin-bottom: 0; }

/* ---------- posts (scripts/convert-posts.py output) --------------------- */

/* A Fusion column that kept Avada's default margin-bottom (35 gallery posts). */
.nses-col { margin-bottom: 20px; }
/* A fusion_text block: its first/last margins stay inside (Avada's .fusion-text),
   so an opening h4 does not collapse into the post title's margin. */
.nses-text { display: flow-root; }

/* Gallery: Avada's masonry gallery as it rendered at 1440 — two columns in
   the 1100px container, every image spanning two of the four grid columns.
   Items are padded gap/2 and the container pulls out by int(gap/2), exactly
   like Avada (7.5px inside, -7px outside for a 15px gap). The image box height
   is Avada's formula, so the columns stack to the same pixel:
     grid      (100% + 2·half) × 0.8 − gap/2
     portrait  (100% + 2·half) × 1.6
     landscape (100% + 2·half) × 0.4 − gap/2
     square    (100% + 2·half) × 0.8           (2x2: >2000px originals)
   nses.js sorts the items into two .nses-gallery__col columns (shortest
   column first, left on ties — Isotope/Packery's order); without JS they flow
   two per row, top-aligned. */
.nses-gallery {
	--nses-gap: 15px;
	--nses-half: 7px;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	margin: calc(-1 * var(--nses-half));
}
.nses-gallery__col { flex: 0 0 50%; }
.nses-gallery__item {
	position: relative;
	flex: 0 0 50%;
	padding: calc(var(--nses-gap) / 2);
}
.nses-gallery__item::before { content: ""; display: block; }
.nses-gallery__item--grid::before      { padding-top: calc((100% + 2 * var(--nses-half)) * 0.8 - var(--nses-gap) / 2); }
.nses-gallery__item--portrait::before  { padding-top: calc((100% + 2 * var(--nses-half)) * 1.6); }
.nses-gallery__item--landscape::before { padding-top: calc((100% + 2 * var(--nses-half)) * 0.4 - var(--nses-gap) / 2); }
.nses-gallery__item--square::before    { padding-top: calc((100% + 2 * var(--nses-half)) * 0.8); }
.nses-gallery__item img {
	position: absolute;
	top: calc(var(--nses-gap) / 2);
	left: calc(var(--nses-gap) / 2);
	width: calc(100% - var(--nses-gap));
	height: calc(100% - var(--nses-gap));
	object-fit: cover;
}

/* Location posts: the About-page intro, left-aligned copy (20px lead
   paragraphs, then regular 15px), centred blue h2; "Your Choice…" h3 has a
   <strong> that rendered regular. */
.nses-intro-page--post { text-align: left; }
.nses-intro-page--post h2 { text-align: center; }
.nses-intro-page--post p { font-size: inherit; }
.nses-intro-page--post .nses-lead { font-size: 20px; }
.nses-intro-page--post h3 strong { font-weight: 400; }

/* "We Succeed at <Town> …" band — the global easy band with the town line. */
.nses-easy--post .nses-easy__copy strong { font-weight: 400; }

/* Contact band on location posts (photo + phone/email column): white icons,
   regular-weight links (Avada's bold never rendered), 21px under the form. */
.nses-contact--post { padding-bottom: 21px; }
.nses-contact--photo .nses-contact__left h4 { color: #fff; }
.nses-contact--post .nses-contact__left a { font-weight: 400; }

/* The North Shore Difference on location posts reuses .nses-lp-difference
   unchanged (Avada: tabs margin 50 + column margin 20 + container padding 3%). */

/* Our Process on location posts: h1, then rows of two 50% columns — a
   570×350 photo (Avada sized the empty background column to the image's
   ratio) beside a step (column padding 5% = 27.5px, margin-bottom 20). */
.nses-process { padding: 4% 0 calc(4% - 3px); }
.nses-process__title { margin: 33px 0 56px; text-align: center; }
.nses-process__row { display: flex; align-items: flex-start; }
.nses-process__img {
	flex: 0 0 50%;
	aspect-ratio: 570 / 350;
	background: #ddd center center / cover no-repeat;
}
.nses-process__step { flex: 0 0 50%; padding: 27.5px 27.5px 20px; }
.nses-process__step h3 { margin: 34px 0; }
.nses-process__step h3 strong { font-weight: 400; }   /* rendered regular on the Avada site */
.nses-process__step p { margin: 0 0 20px; }

.nses-404 ul { padding-left: 20px; }

/* ---------- mobile ---------------------------------------------------- */

@media (max-width: 1024px) {
	.nses-communities__cols, .nses-post .nses-communities__cols { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 800px) {
	.nses-topbar { line-height: 1.5; }
	.nses-topbar__row {
		flex-direction: column;
		align-items: center;
		padding-top: 8px;
		padding-bottom: 8px;
	}
	.nses-topbar__contact { flex-direction: column; align-items: center; }
	.nses-topbar__item { padding: 6px 0; }
	.nses-topbar__social { margin-top: 6px; }
	.nses-topbar__social a:first-child { padding-left: 14px; }

	.nses-header__row { height: auto; min-height: 90px; flex-wrap: wrap; }
	.nses-menu-toggle { display: block; }
	.nses-nav {
		display: none;
		flex-basis: 100%;
		margin: 0 -30px;
		background: #f9f9f9;
		border-top: 1px solid #dadada;
	}
	.nses-nav.is-open { display: block; }
	.nses-nav__list { flex-direction: column; }
	.nses-nav__list a {
		height: auto;
		padding: 10px 30px;
		border-bottom: 1px solid #dadada;
		font-size: 16px;
	}

	.nses-title-bar__title { font-size: 30px; }

	.nses-footer__grid { grid-template-columns: 1fr; }
	.nses-footer::before { left: -15px; width: calc(100% + 30px); }

	.nses-communities__cols, .nses-post .nses-communities__cols { grid-template-columns: 1fr; }
	.nses-post .nses-communities { padding: 40px 20px; }
	.nses-contact__cols { grid-template-columns: 1fr; }
	.nses-contact__left h4 { font-size: 18px; overflow-wrap: anywhere; }
	.nses-contact__left--phone h2 { font-size: 44px; }
	.nses-contact__right { order: -1; text-align: center; }   /* /contact/: phone + email above the form, so the submit lands on the footer curve, not the email */
	.nses-contact__right h3 { font-size: 16px; overflow-wrap: anywhere; }
	.nses-faq__q { font-size: 20px; align-items: flex-start; }
	.nses-faq__icon { margin-top: 5px; margin-right: 14px; }
	.nses-faq__a { padding-left: 35px; }
	.nses-easy__copy { font-size: 24px; }
	.nses-easy__phone { font-size: 44px; }
	.nses-blog--grid .nses-blog__grid { grid-template-columns: 1fr; }
	.nses-blog__grid.is-masonry { flex-direction: column; }
	.nses-blog__col { flex: 0 0 auto; }
	.nses-blog__col .nses-card:last-child { margin-bottom: 40px; }
	h1 { font-size: 40px; }
	h2 { font-size: 32px; }
	h3 { font-size: 26px; }
	h4 { font-size: 22px; }

	/* Homepage: everything stacks, nothing overflows. */
	.nses-h { font-size: 26px; }
	.nses-hero { padding: 40px 0 60px; }
	.nses-hero__title { padding: 12px 8px; font-size: 32px; line-height: 40px; }
	.nses-hero__sub { font-size: 22px; line-height: 34px; padding: 4px 10px; }
	.nses-hero__buttons { flex-direction: column; align-items: center; gap: 10px; }
	.nses-hero__curve { bottom: -60px; }
	.nses-btn { height: 42px; padding: 0 20px; font-size: 15px; }
	.nses-btn__icon { margin-left: 14px; margin-right: -20px; }
	.nses-intro__logo { width: 220px; height: auto; }
	.nses-intro__title { font-size: 24px; }
	.nses-intro__lead { max-width: 100%; font-size: 17px; line-height: 28px; }
	.nses-problems__title { font-size: 26px; }
	.nses-problem { flex-direction: column; }
	.nses-problem__left br, .nses-sold__name br { display: none; }  /* desktop line breaks only */
	.nses-problem__left, .nses-problem__right { flex: 0 0 auto; width: 100%; min-height: 0; }
	.nses-problem__heading { font-size: 22px; }
	.nses-problem__sub { font-size: 18px; }
	.nses-problem__copy { font-size: 16px; line-height: 24px; }
	.nses-sold__title { font-size: 22px; }
	.nses-sold__subtitle { font-size: 20px; }
	.nses-sold__grid { grid-template-columns: 1fr; gap: 30px; }
	.nses-sold__frame { height: auto; min-height: 200px; }
	.nses-strip { flex-direction: column; background: none; }
	.nses-strip__red, .nses-strip__blue { flex: 0 0 auto; width: 100%; padding: 15px 20px; text-align: center; }
	.nses-strip__red { background: #d11b21; }
	.nses-strip__blue { background: #0f77c6; }
	.nses-strip__mid { flex: 0 0 auto; width: 100%; background: linear-gradient(to bottom, #d11b21 50%, #0f77c6 50%); }
	.nses-strip h2 { font-size: 24px; }
	.nses-steps__head { flex-direction: column; gap: 15px; align-items: center; }
	.nses-steps__title { text-align: center; }
	.nses-steps__grid { grid-template-columns: 1fr; gap: 20px; }
	.nses-step { min-height: 0; }
	.nses-step__image { max-height: none; }
	.nses-step p { font-size: 16px; }
	.nses-form-section { padding: 30px 0 40px; }
	.nses-form-section__subtitle { font-size: 22px; }
	.nses-form-card .form_col { padding: 5px 15px; }
	.nses-form-card input[type="submit"] { margin: 15px; }
	.nses-tabs__nav { flex-direction: column; gap: 4px; }
	.nses-tabs__nav a { font-size: 17px; }
	.nses-faqs--cards .nses-faq__q { font-size: 16px; line-height: 24px; align-items: center; }
	.nses-faqs--cards .nses-faq__icon { margin-top: 0; margin-right: 14px; }
	.nses-testimonials__grid { grid-template-columns: 1fr; margin: 0; }
	.nses-testimonial__stars { font-size: 16px; }
	.nses-testimonial p { margin-top: 20px; }
	.nses-footer-cta { flex-direction: column; margin: 40px 15px -82px; padding-bottom: 20px; text-align: center; }
	.nses-footer-cta__logo { flex: 0 0 auto; width: 100%; padding: 10px 0; }
	.nses-footer-cta__logo img { width: 197px; }
	.nses-footer-cta__contact { flex: 0 0 auto; padding: 15px 15px 0; }
	.nses-footer-cta__title { margin-bottom: 10px; }
	.nses-footer-cta__links a { display: block; margin: 5px 0 0; }
	.nses-footer-cta__actions { flex: 0 0 auto; padding: 15px 15px 0; }

	/* Landing page: single column, tabs hidden (Avada hide_on_mobile). */
	.nses-hide-mobile { display: none; }
	.nses-lp-head { justify-content: center; }
	.nses-lp-head__logo { flex: 0 0 auto; }
	.nses-lp-head__contact { display: none; }
	.nses-lp-hero { padding: 30px 15px 40px; }
	.nses-lp-hero__row { flex-direction: column; }
	.nses-lp-hero__col { flex: 0 0 auto; padding: 20px; }
	.nses-lp-hero__phone { font-size: 34px; }
	.nses-lp-hero__pitch { font-size: 26px; }
	.nses-lp-hero__title { font-size: 26px; }
	.nses-lp-sp--50 { padding-bottom: 20px; }
	.nses-intro-page--lp { padding: 40px 0 50px; }
	.nses-lp-steps { max-width: none; margin: 0; padding: 30px 30px 0; }
	.nses-lp-contact { padding: 30px 15px 40px; }
	.nses-lp-contact__row { flex-direction: column; }
	.nses-lp-contact__phone, .nses-lp-contact__form { flex: 0 0 auto; padding: 15px; }
	.nses-lp-contact__phone h1 { font-size: 40px; }
	.nses-lp-contact__form h2 { font-size: 30px; }

	/* Posts: one gallery column (nses.js skips the masonry), process rows stack
	   photo above step, difference tabs stay (Avada showed them on phones). */
	.nses-gallery__item { flex-basis: 100%; }
	.nses-lp-difference { padding-left: 15px; padding-right: 15px; }
	.nses-process__row { flex-direction: column; }
	.nses-process__img, .nses-process__step { flex: 0 0 auto; width: 100%; }
	.nses-process__step { padding: 15px 15px 10px; }
}
