:root {
    --dark-bg:#25333e;
    --dark-text:#e7e8e9;
}

html, body {
	margin:0px;
	padding:0px;

    height:auto;
    width:100%;
    overflow-x:hidden;
    position: relative;

	background-color: var(--dark-bg);
	color: var(--dark-text);
    font-size:16px;
	font-family: 'Maven Pro', sans-serif;

}

*:focus {
    outline:none;
}
* {
    outline:none;
    -webkit-tap-highlight-color: transparent;
	font-family: 'Maven Pro', sans-serif;
}

::selection {
	color: var(--dark-bg);
	background-color: var(--dark-text);
}
::-moz-selection {
	color: var(--dark-bg);
	background-color: var(--dark-text);
}

.light_bg_select::selection {
	color: var(--dark-text);
	background-color: var(--dark-bg);
}
.light_bg_select::-moz-selection {
	color: var(--dark-text);
	background-color: var(--dark-bg);
}
.light_bg_select *::selection {
	color: var(--dark-text);
	background-color: var(--dark-bg);
}
.light_bg_select *::-moz-selection {
	color: var(--dark-text);
	background-color: var(--dark-bg);
}

.no_select::selection {
	color: inherit;
	background-color: transparent;
}
.no_select::-moz-selection {
	color: inherit;
	background-color: transparent;
}

a {
	color: inherit;
	font-weight:inherit;
	text-decoration:inherit;
}
a:visited {
	color: inherit;
	font-weight:inherit;
	text-decoration:inherit;
}
a:hover {
	color: inherit;
	font-weight:inherit;
	text-decoration:inherit;
}
a:active {
	color: inherit;
	font-weight:inherit;
	text-decoration:inherit;
}

.nav_outer {
	position: fixed !important;
	top: 0;
	width:calc(100% - 80px);
	background-color: var(--dark-bg);
	z-index:999;

	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
	transition: box-shadow 0.3s ease-in-out;

	padding-top:10px;
	padding-bottom:10px;
	padding-left:40px;
	padding-right:40px;
}

.mobile_nav {
	display:none;

	position:absolute;
	top:100%;
	left:0px;

	padding-top:40px;
	padding-bottom:40px;

	background-color: var(--dark-bg);
	width:100%;
	height:auto;
	z-index:999;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.mv_inner {
	display:flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	text-align: center;
	gap:40px;
}
.mvi_nav {
	display:flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	text-align: center;
	gap:20px;

	font-size:24px;
	font-weight:300;
}

.nav_inner {
	width:100%;
	max-width:1200px;
	margin-left:auto;
	margin-right:auto;

	display:flex;
	justify-content: space-between;
	align-items: center;

	height:80px;
}
.nav_logo {
	height:auto;
	width:220px;
}
.nav_cp_button {
	border-radius:6px;
	background-color: #3f5768;
	border:1px solid #4a6476;
	padding:10px 20px;
	color:var(--dark-text);

	font-weight:600;
	font-size:18px;
}

.nav_left {
	display:flex;
	justify-content: flex-start;
	align-items: center;
}
.nav_left a {
	display:flex;
}

.nav_toggle {
	display:none;

	border-radius:6px;
	background-color: #3f5768;
	border:1px solid #4a6476;
	padding:10px 15px;
	color:var(--dark-text);

	font-weight:600;
	font-size:18px;

	flex-direction: column;
	cursor: pointer;
	gap: 5px;
}
.nav_toggle span {
  height: 3px;
  width: 26px;
  background-color: var(--dark-text);
  border-radius: 2px;
}

.nav_bar {
	display:flex;
	font-size:20px;
	font-weight:300;
	gap:80px;
	margin-left:80px;
}

.landing_section {
	background-color: var(--dark-bg);
	width: calc(100% - 80px);
	padding:40px;
	margin-top:100px;
}
.landing_inner {
	width:100%;
	max-width:1200px;
	margin-left:auto;
	margin-right:auto;

	display:flex;
	justify-content: space-between;
	align-items: center;
}
.landing_right {
	width:500px;
	height:500px;
	position: relative;
}
.landing_right .norwich_img {
	width:480px;
	height:480px;
	overflow:hidden;
	border-radius:50%;
	border:10px solid var(--dark-text);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.landing_title {
	font-weight:900;
	font-size:52px;
}
.landing_sub {
	max-width:510px;
	font-size:18px;
	margin-top:10px;
	margin-bottom:20px;
}
.landing_left a {
	display:flex;
}
.landing_left {
	max-width:550px;
}

.faq_list {
	margin-top:40px;
	display:flex;
	flex-direction: column;
	gap:20px;
}

.services_list {
	margin-top:40px;
	display:flex;
	flex-direction: column;
	gap:40px;
}
.service_indv {
	border:1px solid #DDDDDD;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
	border-radius:6px;
	overflow: hidden;
	width:calc(50% - 22px);

	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.service_indv:nth-child(even) {
	align-self: flex-end;
	align-items: flex-end;
}

.service_indv_title {
	padding:20px;
	display:flex;
	background-color: #f5f5f5;
	color:var(--dark-bg);

	width:calc(100% - 38px);
	font-size:32px;
	font-weight:900;
}
.service_indv_desc {
	border-top:1px solid #DDDDDD;
	background-color: white;
	color:var(--dark-bg);
	padding:20px;
	width:calc(100% - 38px);
}

.faq_indv {
	border:1px solid #4a6476;
	border-radius:6px;
	overflow: hidden;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.faq_question_row {
	padding:20px;
	display:flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;

	background-color: #3f5768;
	color:var(--dark-text);
}
.faq_answer_row {
	border-top:1px solid #4a6476;
	background-color: var(--dark-bg);
	color:var(--dark-text);
	padding:20px;
	font-size:18px;
	display: none;
}
.faq_title {
	font-size:20px;
}
.faq_arrow {
	display:flex;
	transition: transform 0.3s ease;
	line-height: 1;
	font-size:24px;
	margin-left:20px;
}
.faq_question_row.faq_open .faq_arrow {
	transform: rotate(90deg);
}

.faqar_q {
	font-weight:bold;
	font-size:18px;
	margin-top:20px;
	margin-bottom:5px;
}
.faqar_q:first-child {
	margin-top:0px;
}
.faqar_a {
	font-size:16px;
}

.services_outer {
	width:calc(100% - 80px);
	background-color: var(--dark-text);
	color:var(--dark-bg);
	padding:40px;
}
.services_inner {
	width:100%;
	max-width:1200px;
	margin-left:auto;
	margin-right:auto;
}

.service_p {
	margin-top:15px;
	margin-bottom:15px;
}
.service_p:first-child {
	margin-top:0px;
}
.service_p:last-child {
	margin-bottom:0px;
}

.service_list_t {
	font-weight:bold;
	font-size:18px;
	margin-bottom:15px;
}
.service_indv_desc ul {
	margin-top:0px;
	margin-bottom:0px;
}

.faqs_outer {
	width:calc(100% - 80px);
	background-color: var(--dark-bg);
	color:var(--dark-text);
	padding:40px;
}
.faqs_inner {
	width:100%;
	max-width:1000px;
	margin-left:auto;
	margin-right:auto;
}

.contact_cont {
	margin-top:40px;
	display:flex;
	justify-content: space-between;
	align-items: flex-start;
}
.contact_form_cont {
	width:440px;
	background-color: var(--dark-bg);
	color: var(--dark-text);
	border-radius: 6px;
	overflow: hidden;
	padding:20px;
	position: relative;
}
.contact_info_cont {
	width:340px;
	font-size:24px;
}
.contact_form_title {
	font-size:24px;
	font-weight:bold;
}
.contact_form_button {
	border-radius:6px;
	background-color: #3f5768;
	border:1px solid #4a6476;
	padding:10px 20px;
	color:var(--dark-text);
	font-weight:600;
	font-size:18px;
	width:100%;
	cursor: pointer;
}
.contact_form_input {
	background-color: var(--dark-text);
	border:1px solid var(--dark-text);
	color: var(--dark-bg);
	border-radius:6px;
	padding:10px 10px;

	font-weight:300;
	font-size:18px;
	width:calc(100% - 22px);
}
.contact_form_textarea {
	background-color: var(--dark-text);
	border:1px solid var(--dark-text);
	color: var(--dark-bg);
	border-radius:6px;
	padding:10px 10px;

	font-weight:300;
	font-size:18px;
	min-height:100px;
	resize:vertical;
}
.contact_form_var {
	margin-top:20px;
	display:flex;
	flex-direction: column;
	gap:10px;
}

.contact_outer {
	width:calc(100% - 80px);
	background-color: var(--dark-text);
	color:var(--dark-bg);
	padding:40px;
}
.contact_inner {
	width:100%;
	max-width:900px;
	margin-left:auto;
	margin-right:auto;
}
.contact_title {
	font-size:42px;
	font-weight:900;
	text-align: center;
}
.contact_strap {
	text-align: center;
	font-size:20px;
	font-weight: 300;
}

.cf-turnstile {
	display:none;
}

#cf_error {
	font-weight:bold;
	font-size:18px;

	display:none;
}
#cf_success {
	position:absolute;
	top:0px;
	left:0px;
	width:calc(100% - 80px);
	height:calc(100% - 80px);
	background-color: var(--dark-bg);

	display:none;

	justify-content: center;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding:40px;
}
.cfs_title {
	font-weight:bold;
	font-size:28px;
	margin-bottom:10px;
}
.cfs_sub {
	font-size:20px;
}

.footer_outer {
	width:calc(100% - 80px);
	background-color: var(--dark-bg);
	color:var(--dark-text);

	padding-left:40px;
	padding-right:40px;
	padding-top:20px;
	padding-bottom:20px;
}
.footer_inner {
	width:100%;
	max-width:1200px;

	font-size:18px;
	font-weight:300;

	margin-left:auto;
	margin-right:auto;
}
.footer_inner a {
	font-weight:600;
}



@media screen and (max-width: 1279px) {
	.service_indv {
		align-items: flex-start !important;
		align-self: flex-start !important;
		width:calc(100% - 2px);
	}
}

@media screen and (max-width: 1124px) {
	.landing_inner {
		flex-direction: column !important;
		gap:40px !important;
		align-items: center !important;
	}
	.landing_left {
		max-width: unset !important;
	}
}

@media screen and (max-width: 979px) {
	.contact_cont {
		flex-direction: column-reverse !important;
		gap: 40px !important;
		align-items: center !important;
	}
	.contact_form_cont {
		width:calc(100% - 40px);
	}
	.contact_info_cont {
		width:100% !important;
	}
}

@media screen and (max-width: 959px) {
	.nav_bar {
		display:none !important;
	}
	.nav_logo {
		width:180px !important;
	}
	.nav_right {
		display:none !important;
	}
	.nav_toggle {
		display:flex !important;
	}
}

@media screen and (max-width: 579px) {
	.landing_right {
		width:100% !important;
		height:auto !important;
	}
	.landing_right .norwich_img {
		width:calc(100% - 20px) !important;
		height:auto !important;
	}

	.footer_outer {
		padding:20px !important;
		width: calc(100% - 40px) !important;
	}
	.footer_inner {
		font-size: 16px !important;
		text-align: center !important;
	}
	
	.contact_title {
		font-size: 32px !important;
	}
	.contact_strap {
		font-size: 18px !important;
	}

	.landing_title {
		font-size: 32px !important;
	}
	.landing_sub {
		font-size: 18px !important;
	}
	
	.service_indv_title {
		font-size:24px !important;
	}

	.contact_outer {
		padding:20px !important;
		width:calc(100% - 40px) !important;
	}
	.contact_cont {
		gap:20px !important;
		margin-top:20px !important;
	}

	.faqs_outer {
		width:calc(100% - 40px) !important;
		padding:20px !important;
	}
	.faq_list {
		margin-top:20px !important;
	}

	.services_outer {
		width:calc(100% - 40px) !important;
		padding:20px !important;
	}
	.services_list {
		gap:20px !important;
		margin-top:20px !important;
	}

	.landing_section {
		width:calc(100% - 40px) !important;
		padding:20px !important;
		margin-top:100px !important;
	}
	.landing_inner {
		gap:20px !important;
	}

	.nav_outer {
		padding-left:20px !important;
		padding-right:20px !important;
		padding-top:10px !important;
		padding-bottom:10px !important;
		width: calc(100% - 40px) !important;
	}
}