/*
	Theme Name: Custom
	Author: MP

*/

/* ---------- Root Variables ---------- */
:root {
  --menu_font_size: clamp(14.3px, calc(12.1px + 0.55vw), 16.5px);
}

/* ---------- Reset Styles ---------- */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
sub,
sup,
tt,
var,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
}
fieldset,
img,
iframe,
table,
td,
th {
  border: 0;
}
video {
  width: 100%;
}
html {
  scroll-behavior: smooth;
  background-color: rgba(216, 216, 216, 0.2);
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="date"],
input[type="submit"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="button"],
input[type="reset"],
select,
textarea {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  border-radius: 0 !important;
}
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="date"],
input[type="submit"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="button"],
input[type="reset"],
select,
textarea {
  padding: 10px;
  font-size: 16px;
  font-family: var(--main-font);
  font-weight: 400;
  border: 1px solid #ccc;
  width: 100%;
}

input:not([type="radio"]):not([type="checkbox"]),
select,
textarea {
}
address {
  line-height: 2;
}

.wpcf7 p {
  margin: 0px 0px;
  line-height: 1;
}

body:not(.home) .footer_area {
  /*background: #c9c9c9; 
background: -moz-linear-gradient(top,  #c9c9c9 0%, #f2f2f2 100%); 
background: -webkit-linear-gradient(top,  #c9c9c9 0%,#f2f2f2 100%); 
background: linear-gradient(to bottom,  #c9c9c9 0%,#f2f2f2 100%); 
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c9c9c9', endColorstr='#f2f2f2',GradientType=0 ); 

-webkit-box-shadow: 0px 0px 6px 2px rgba(0,0,0,0.57);
-moz-box-shadow: 0px 0px 6px 2px rgba(0,0,0,0.57);
box-shadow: 0px 0px 6px 2px rgba(0,0,0,0.57);*/
}

div {
  position: relative;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
}
strong,
b {
  font-weight: bold;
  font-weight: 700;
}

blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
}
tr {
  display: table-row;
  vertical-align: inherit;
  border-color: inherit;
}
td,
th {
  display: table-cell;
  vertical-align: inherit;
  padding: 0;
}
body {
  text-align: left;
  font-family: var(--main-font);
  font-size: clamp(16px, 1.2vw, 19px);
  font-weight: 300;
  line-height: 1;
  background: #fff;
  color: var(--text-color);
  padding: 0px;
  margin: 0px auto;
  max-width: 1980px;
  -webkit-box-shadow: 0px 0px 22px 0px rgba(0, 0, 0, 0.25);
  -moz-box-shadow: 0px 0px 22px 0px rgba(0, 0, 0, 0.25);
  box-shadow: 0px 0px 22px 0px rgba(0, 0, 0, 0.25);
}

.resp_text {
  font-size: calc(16px + (24 - 16) * ((100vw - 320px) / (1920 - 320)));
}

.wrap_full {
  margin: 0px auto !important;
  max-width: 1980px;
}
.wrap {
  margin: 0px auto !important;
  position: relative;
  max-width: 1600px;
}
.wrap_narrow {
  margin: 0px auto !important;
  position: relative;
  max-width: 1000px;
}
* {
  outline: none;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

td {
  vertical-align: top;
}
.cl {
  clear: both;
}
.cf:before,
.cf:after {
  content: "";
  display: table;
}
.transition {
  -webkit-transition: all 0.2s linear;
  -moz-transition: all 0.2s linear;
  -ms-transition: all 0.2s linear;
  -o-transition: all 0.2s linear;
  transition: all 0.2s linear;
}
p {
  margin: 10px 0px !important;
  line-height: 1.5;
}
.nop p {
  margin: 5px 0px;
  line-height: 2;
}
.content ul,
.content ol {
  padding-left: 20px;
  line-height: 2;
  /*	 list-style:none;*/
  margin: 15px 0px;
}
.content ul li:before,
.content ol li:before {
  /*  content: ' ✓ ';
  font-weight: 900;
  font-size: 140%;*/
}

.line2,
.line2 p,
.line,
.line p {
  line-height: 2;
}
.line15,
.line15 p {
  line-height: 1.5;
}
.white_bg {
  background-color: #fff;
}

/************************************************
*	Hyperlinks									*
************************************************/

a,
a:visited {
  color: var(--main-color-hover);
  text-decoration: none;
}
.content p a,
.footer_area p a,
.backlink_area p a {
  text-decoration: underline;
}
a:hover {
  color: var(--main-color);
  text-decoration: underline;
}

a img {
  border: none;
}

a:focus,
a:hover,
a:active {
  outline: none;
}
.pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 40px;
}
.pagination a,
.pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  border: 1px solid #ddd;
  border-radius: 3px;
  font-size: 15px;
  color: var(--main-color);
  text-decoration: none;
  transition: all 0.2s;
}
.pagination a:hover {
  border-color: var(--accent-color);
  color: var(--accent-color);
  text-decoration: none;
}
.pagination .page-numbers.current {
  background-color: var(--main-color);
  border-color: var(--main-color);
  color: #fff;
}
.pagination .page-numbers.dots {
  border-color: transparent;
}

/************************************************
*	Navbar      								*
************************************************/

/*   .navi {
        text-align:center
    }
    .navi li {
        display:inline-block;
        float:none;
        margin-left: -5px;
    }
    .navi li li {
        display:block;
        text-align:left;
    }
	*/
.navi_holder {
  background-color: var(--main-color);
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}
.navi_holder .navi li a {
  color: var(--menu-color);
}
.navi_holder .navi li a:hover {
  background-color: var(--menu-color);
  color: var(--main-color);
}

.navi {
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 999999;
  /* border-top: 1px solid var(--menu-color); */
}

.navi ul {
  float: right;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 5px;
  /* border-top: 1px solid var(--menu-color); */
}

.navi li {
  position: relative;
}

/* Main menu items */
.navi li a {
  color: var(--menu-color);
  display: block;
  font-size: var(--menu_font_size);
  font-family: var(--menu-font);
  font-weight: 400;
  text-transform: uppercase;
  padding: 20px 10px;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.navi li a:hover {
  color: var(--menu-color);
  text-decoration: none;
  background-color: rgba(0, 0, 0, 0.05);
}

/* Submenu styling */
.navi li ul {
  position: absolute;
  left: -999em;
  top: 100%;
  min-width: 200px;
  background: var(--main-color);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  display: block;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.2s ease,
    visibility 0.2s ease;
  text-align: left;
  border-top: none;
}

.navi li:hover > ul {
  left: 0;
  opacity: 1;
  visibility: visible;
}

.navi li li {
  width: 100%;
}

.navi li li a {
  color: var(--menu-color-mobile);
  padding: 12px 10px;
  font-size: calc(var(--menu_font_size) * 0.9);
  border-bottom: 1px solid var(--main-color-hover);
  white-space: nowrap;
  text-align: left;
}
.navi li li a:hover {
  color: var(--menu-color-mobile);
}

/* Flyout animation: fade in and slide down. The flyout stays in place while hidden
   (opacity, visibility, pointer-events) instead of jumping to left:-999em,
   so it can also fade out */
.navi_holder .navi li ul {
  left: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    visibility 0.25s;
}
.navi_holder .navi li:hover > ul {
  transform: translateY(0);
  pointer-events: auto;
}

/* Flyouts of the last two menu items open to the left, so they stay on screen.
   (The old rule for ul#menu-main-menu misses the desktop menu: the mobile menu is
   printed first and takes that id, the desktop one gets #menu-main-menu-1) */
.navi_holder .navi .menu > li:nth-last-child(-n + 2) > ul {
  left: auto;
  right: 0;
}

/* Third level submenu */
.navi li ul ul {
  top: 0;
  left: -999em;
  margin-left: 100%;
}

.navi li li:hover > ul {
  left: 0;
}

/* Remove old float-based layout */
.navi li {
  float: none;
}

/************************************************
*	Images  					     		    * 
************************************************/

/*
 * Default WP Alignment Classes
 *****************************************************************************/

.aligncenter,
.alignleft,
.alignright {
  display: block;
  padding: 0;
}

.aligncenter {
  float: none;
  margin: 0.5em auto 1em;
}

.alignright {
  float: right;
  margin: 0.5em 0 1em 1em;
}

.alignleft {
  float: left;
  margin: 0.5em 1em 1em 0;
}

.wp-caption {
  padding: 5px 0;
  border: 1px solid #555;
  background: #444;
  text-align: center;
}

.wp-caption img {
  display: inline;
}

.wp-caption p.wp-caption-text {
  margin: 5px 0 0;
  padding: 0;
  text-align: center;
  font-size: 75%;
  font-weight: 100;
  font-style: italic;
  color: #ddd;
}
/*
 * Default WP Alignment Classes
 *****************************************************************************/

/************************************************
*	Custom								*
************************************************/

.thumb {
  float: left;
  margin: 8px 10px 0px 0px;
}
ul.navi li span.donate a {
  font-weight: bold;
  color: #900;
}

#side h2 {
  display: none;
}
#side li,
#side ul {
  list-style-type: none;
}

/* Responsive images */
.resp img {
  border: 0;
  width: 100%;
  height: auto;
  vertical-align: top;
}
img {
  max-width: 100%;
  height: auto;
}
.p0 {
  padding: 0px;
}
.p5 {
  padding: 5px;
}
.p10 {
  padding: 10px;
}
.p20 {
  padding: 20px;
}
.p30 {
  padding: 30px;
}
.p40 {
  padding: 40px;
}
.p0-10 {
  padding: 0px 10px;
}
.p0-20 {
  padding: 0px 20px;
}
.p0-30 {
  padding: 0px 30px;
}
.p10-0 {
  padding: 10px 0px;
}
.p20-0 {
  padding: 20px 0px;
}
.p30-0 {
  padding: 30px 0px;
}
.p10-20 {
  padding: 10px 20px;
}
.p20-10 {
  padding: 20px 10px;
}
.p20-40 {
  padding: 20px 40px;
}
.p40-20 {
  padding: 40px 20px;
}
.left {
  text-align: left;
}
.right {
  text-align: right;
}
.center {
  text-align: center;
}

.shadow {
  -webkit-box-shadow: 0px 0px 24px 10px rgba(0, 0, 0, 0.28);
  -moz-box-shadow: 0px 0px 24px 10px rgba(0, 0, 0, 0.28);
  box-shadow: 0px 0px 24px 10px rgba(0, 0, 0, 0.28);
}

article ol,
article ul {
  margin-left: 20px;
  line-height: 2;
}

.line1 {
  line-height: 1;
}
.line12 {
  line-height: 1.2;
}
.line15 {
  line-height: 1.5;
}
.line {
  line-height: 2;
}
.line2 {
  line-height: 2;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  /* Long words in headings ("RESEARCH/PRESENTATIONS") wrap instead of widening the page on phones */
  overflow-wrap: break-word;
  font-family: var(--heading-font);
  font-weight: 400;
  text-transform: uppercase;
  margin-top: 10px;
  margin-bottom: 10px;
  line-height: 1.2;
}
h1 {
  font-size: 32px;
}
h2 {
  font-size: 30px;
}
h3 {
  font-size: 26px;
}
h4 {
  font-size: 24px;
}
h5 {
  font-size: 22px;
}
h6 {
  font-size: 19px;
}
.upper {
  text-transform: uppercase;
}

article ul li {
  margin-bottom: 6px;
}
ul.tribe-events-sub-nav li {
  padding: 0px;
  padding-left: 0px;
  padding-bottom: 0px;
  list-style: none;
  background-image: none !important;
  background-repeat: no-repeat;
  background-position: left top;

  margin-bottom: 6px;
}
article p {
  margin-bottom: 20px;
  margin-top: 10px;
}
article ul {
  margin-bottom: 20px;
  margin-top: 10px;
}
.mshow {
  display: none;
}

.gallery-item img {
  width: 95%;
  height: auto;
}
.blocks-gallery-grid .blocks-gallery-image figure,
.blocks-gallery-grid .blocks-gallery-item figure,
.wp-block-gallery .blocks-gallery-image figure,
.wp-block-gallery .blocks-gallery-item figure {
  height: auto;
}
.blocks-gallery-grid.is-cropped .blocks-gallery-image a,
.blocks-gallery-grid.is-cropped .blocks-gallery-image img,
.blocks-gallery-grid.is-cropped .blocks-gallery-item a,
.blocks-gallery-grid.is-cropped .blocks-gallery-item img,
.wp-block-gallery.is-cropped .blocks-gallery-image a,
.wp-block-gallery.is-cropped .blocks-gallery-image img,
.wp-block-gallery.is-cropped .blocks-gallery-item a,
.wp-block-gallery.is-cropped .blocks-gallery-item img {
  height: auto !important;
}
.blocks-gallery-grid .blocks-gallery-image figure,
.blocks-gallery-grid .blocks-gallery-item figure,
.wp-block-gallery .blocks-gallery-image figure,
.wp-block-gallery .blocks-gallery-item figure {
  align-items: end !important;
}

.content ul li.blocks-gallery-item:before {
  content: "";
  font-weight: 100;
  font-size: 100%;
  display: none;
}
.content ul.blocks-gallery-grid {
  padding-left: 0px;
  line-height: 1;
  list-style: none;
  margin: 0px 0px;
}

.mright {
  text-align: right;
}
.tr_bg {
  background-color: rgba(0, 0, 0, 0.3);
}
.rela {
  position: relative;
}

a.wp-block-button__link.wp-element-button,
a.button,
.button,
.btn,
.tag_lines_area .wrap a,
.chess_text a {
  color: var(--menu-color-mobile) !important;
  font-size: 100% !important;
  background: var(--main-color);
  font-weight: normal !important;
  position: relative;
  border: none !important;
  cursor: pointer;
  display: inline-block;
  margin: 4px 0px;
  padding: 15px 35px !important;
  text-align: center;
  line-height: 1 !important;
  text-decoration: none;
  border-radius: 5px !important;
}

a.wp-block-button__link.wp-element-button:hover,
a.button:hover,
.button:hover,
.btn:hover,
.tag_lines_area .wrap a:hover,
.chess_text a:hover {
  background: var(--main-color-hover);
}
a.button.button_secondary {
  background: var(--accent-color);
  color: var(--menu-color);
}

.mobile_menu {
  display: none;
}
.header_area {
  position: relative;
  /* above the page content (.gutenberg_area 1000): menu flyouts are not covered */
  z-index: 1100;
  background-color: rgb(255, 255, 255);
}
.home .header_area {
  position: relative;
  z-index: 1100;
  background-color: #34394c;

  /* padding-bottom: 40vh; */
}
.contact_line {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.phone,
.address {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--contact-line-font);
  font-size: var(--contact-line-font-size);
  color: var(--menu-color);
  text-transform: uppercase;
  margin-right: 10px;
  margin-left: 10px;
  line-height: 1;
}
.phone {
  transform: translateY(-3px);
}
.phone span {
  transform: translateY(3px);
}
.phone a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 32px;
  font-family: inherit;
  color: inherit;
  text-decoration: none;
  text-transform: inherit;
  line-height: inherit;
  margin: 0;
  padding: 0;
  font-weight: 600;
}
.phone a:hover {
  color: var(--menu-color);
  text-decoration: none;
}

hr {
  border-top: 1px dotted #e1e1e1;
  height: 12px;
  border: 0;
  box-shadow: inset 0 12px 12px -12px rgba(0, 0, 0, 0.2);
  margin-top: 20px;
  clear: both;
}

hr.wp-block-separator {
  border-top: 1px dotted #e1e1e1 !important;
  border-bottom: none !important;
  height: 12px;
  border: 0;
  box-shadow: inset 0 12px 12px -12px rgba(0, 0, 0, 0.2);
  margin-top: 20px;
  clear: both;
}
.video {
  position: relative;
  padding-bottom: 56%;

  height: 0;
  overflow: hidden;
}
.video iframe,
.video object,
.video embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.box_title {
}
.wpcf7 form.sent .wpcf7-response-output {
  border-color: transparent !important;
}
.wpcf7 form .wpcf7-response-output {
  margin: 0px !important;
  padding: 0px !important;
  border: none !important;
}
.wpcf7-spinner {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 100px !important;
  height: 100px !important;
}
.wpcf7-spinner::before {
  top: 40px !important;
  left: 40px !important;
  width: 10px !important;
  height: 10px !important;
}
.wpcf7-form-control-wrap input,
.wpcf7-form-control-wrap textarea {
  margin-bottom: 10px;
}
.tag {
  position: relative;
  z-index: 200;
  padding: 40px;
}
.main_row {
  position: relative;
  background-color: #e1e1e1;
  z-index: 300;
  /* background-image: url(images/1_03.png); */
  background-repeat: repeat-x;
  z-index: 100000;
}
.box_title {
  font-size: 24px;
  text-transform: uppercase;
  padding: 0px 10px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #222;
  margin-top: 20px;
}
.box_title a {
  color: #fff;
  text-decoration: none;
}
.thebox {
  position: relative;
  padding: 10px;
}
.box_image {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background-color: #fff;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.button_holder {
  position: absolute;
  bottom: 30px;
  width: 100%;
  text-align: center;
}
.boxtext {
  padding: 10px;
}
.footer_area {
  background-color: var(--footer-background-color);
  position: relative;
  z-index: 100;
  color: var(--footer-color);
}
.footer_area a {
  color: var(--footer-color);
  text-decoration: underline;
}

.backlink {
  background-color: #fff;
  text-align: center;
  position: relative;
  z-index: 100;
}
.tag_lines_area {
  position: absolute;
  z-index: 100;
  padding: 20px;
  color: var(--menu-color-mobile);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.5);
}
.tag_lines_area .wrap h1 {
  font-weight: 600;
  font-size: 60px;
}

.tag_lines_area .wrap h2 {
  font-family: var(--main-font);
  font-weight: 300;
  font-size: 30px;
  text-transform: none;
}

.tag_lines_area .wrap a {
  font-size: 26px !important;
  text-transform: uppercase;
  margin: 20px 0px;
  color: var(--menu-color) !important;
  background: var(--accent-color);
}
.tag_lines_area .wrap a:hover {
  background: var(--accent-color-hover);
}
.testimonials_area {
  position: relative;
  z-index: 1000;
  background-color: #f0f0f0;
}
.featured_projects_area {
  position: relative;
  z-index: 900;
  background-color: #ffffff;
  padding: 30px 0px 0px 0px;
}
.gutenberg_area {
  position: relative;
  z-index: 1000;
  background-color: #ffffff;
}
.accordion {
  width: 100%;
  height: 350px;
  overflow: hidden;
}
.accordion ul {
  width: 100%;
  display: table;
  table-layout: fixed;
  margin: 0;
  padding: 0;
}
.accordion ul li {
  display: table-cell;
  vertical-align: bottom;
  position: relative;
  width: 12.5%;
  height: 350px;
  background-repeat: no-repeat;
  background-position: center center;
  transition: all 500ms ease;
}
.accordion ul li div {
  display: block;
  overflow: hidden;
  width: 100%;
  background-color: rgba(0, 0, 0, 1);
  position: absolute;
  top: 0;
}
.accordion ul li div a {
  display: block;
  height: 350px;
  width: 100%;
  position: relative;
  z-index: 3;
  padding: 15px 20px;
  box-sizing: border-box;
  color: #fff;
  text-decoration: none;
  font-family:
    Open Sans,
    sans-serif;
  transition: all 200ms ease;
  background-color: rgba(0, 0, 0, 0.5);
}
.accordion ul li div a:hover {
  background-color: transparent !important;
}
.accordion ul li div a * {
  margin: 0;
  width: 100%;
  text-overflow: ellipsis;
  position: relative;
  z-index: 5;
  white-space: nowrap;
  overflow: hidden;
  -webkit-transform: translateX(-20px);
  transform: translateX(-20px);
  -webkit-transition: all 400ms ease;
  transition: all 400ms ease;
}
.accordion ul li div a h2 {
  font-family: Montserrat, sans-serif;
  text-overflow: clip;
  font-size: 24px;
  text-transform: uppercase;
  margin-bottom: 2px;
  top: 160px;
}
.accordion ul li div a p {
  top: 160px;
  font-size: 13.5px;
}

.accordion ul li .the_cell_1 {
  opacity: 1;
}
.accordion ul li .the_cell_1:hover {
  opacity: 1;
}
.accordion ul li .the_cell_1:hover .tit {
  background-color: var(--accent-color);
}

.accordion ul:hover li {
  width: 8%;
}
.accordion ul:hover li:hover {
  width: 17%;
}

.accordion ul:hover li:hover a * {
  opacity: 1;
  -webkit-transform: translateX(0);
  transform: translateX(0);
}
.accordion ul li div.tit {
  background-color: rgba(0, 0, 0, 0.8);
  padding: 20px 20px 20px 10%;
  color: #fff;
  font-weight: 600;
  text-transform: uppercase;
  border-left: 1px solid #444444;
  position: relative;
  z-index: 200;
  font-family: "Roboto Condensed", sans-serif;
  font-size: clamp(14px, 1.2vw, 17px);
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.the_cell_1 {
  background-repeat: no-repeat;

  background-position: left top;
  border-left: 1px solid #ccc;
  position: relative;
  z-index: 100;
}
.text_column {
  background-color: #f7f3f3;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  min-height: 500px;
}
.acol-50.text_column.even {
  background-color: #fff;
}
.acol-50.text_column.odd {
  background-color: #f7f3f3;
}
.chess_text a {
  text-transform: uppercase;
  font-size: 22px;
  border: 1px solid #fff !important;
  padding: 10px 20px;
  border-radius: 5px;
  text-decoration: none;
}
.chess_text h1,
.chess_text h2,
.chess_text h3,
.chess_text h4,
.chess_text h5,
.chess_text h6 {
  display: inline-block;
  padding-bottom: 10px;
  border-bottom: 2px solid #444 !important;
  margin-bottom: 10px;
}
.image_column {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}
.image_column.even {
  height: 500px;
}

.blue_area {
  color: var(--menu-color) !important;
  background: var(--accent-color);
  padding: 40px 10px;
  position: relative;
  z-index: 100000;
}
.blue_text h1,
.blue_text h2 {
  font-size: 60px;
  text-transform: uppercase;
  text-align: center;
  font-weight: 700;
}
.blue_text h3,
.blue_text h4,
.blue_text h5,
.blue_text h6 {
  font-size: 40px;
  text-transform: uppercase;
  text-align: center;
  font-weight: 400;
}
.footer_area .wrap_narrow h4,
.footer_area .wrap_narrow h5,
.footer_area .wrap_narrow h6 {
  font-size: 20px;
  text-transform: uppercase;
  font-weight: 300;
}
.footer_area {
  border-top: 1px solid #ccc;
}
.home .the_line {
  border-top: 1px solid #444;
  padding-bottom: 4px;
  height: 1px;
}

.mshow {
  display: none;
}

.tribe-common .tribe-common-b2,
.tribe-common .tribe-common-h5,
.tribe-common .tribe-common-h6,
.tribe-common .tribe-common-h3,
.tribe-common .tribe-common-c-btn,
.tribe-common a.tribe-common-c-btn,
.tribe-events .tribe-events-c-view-selector__list-item-text,
.tribe-events-single-event-title,
.tribe-events-schedule .recurringinfo,
.tribe-events-schedule h2,
.tribe-related-event-info .recurringinfo,
.tribe-events-content,
.tribe-events-event-meta,
.tribe-events-back a,
.tribe-events-back a:visited,
.tribe-events-single .tribe-events-sub-nav,
.tribe-events-cal-links,
.tribe-events .tribe-events-c-breadcrumbs__list,
.tribe-common .tribe-common-h7,
.tribe-common .tribe-common-h8,
.tribe-common--breakpoint-medium.tribe-common
  .tribe-common-form-control-text__input,
.tribe-common .tribe-common-form-control-text__input,
.tribe-common .tribe-common-c-btn-border-small,
.tribe-common a.tribe-common-c-btn-border-small,
.tribe-events .tribe-events-calendar-list__event-date-tag-weekday {
  font-family: "Open Sans", sans-serif !important;
}
.tribe-common .tribe-common-c-btn,
.tribe-common a.tribe-common-c-btn,
.tribe-common .tribe-common-c-btn:hover,
.tribe-common a.tribe-common-c-btn:hover {
  color: #fff;
  background-color: #424242 !important;
}
.tribe-events .tribe-events-c-ical__link,
.tribe-events .tribe-events-c-ical__link:hover {
  border: 1px solid #4444 !important;
  background-color: #4444 !important;
  color: #fff !important;
}
.tribe-common .tribe-common-c-svgicon {
  color: #fff !important;
}
.tribe-events-cal-links .tribe-events-gcal,
.tribe-events-cal-links .tribe-events-ical,
.tribe-events-event-meta a,
.tribe-events-event-meta a:visited {
  color: #4444 !important;
}
.tribe-events-event-categories a {
  line-height: 2;
  text-transform: uppercase;
}
.tribe-events-event-categories-label {
  font-weight: 700;
  text-transform: uppercase;
}
.tribe-events .tribe-events-calendar-day__event-featured-image-link,
.tribe-events .tribe-events-calendar-list__event-featured-image,
.tribe-events-event-image img {
  display: block;
  width: 100% !important;
}

.tribe-events-content ol,
.tribe-events-content p,
.tribe-events-content ul {
  font-size: 100% !important;
  line-height: 1.5;
}
.tribe-events-content {
  color: #141827;
}

.tribe-events
  .tribe-events-calendar-month__day--current
  .tribe-events-calendar-month__day-date,
.tribe-events
  .tribe-events-calendar-month__day--current
  .tribe-events-calendar-month__day-date-link {
  color: #e01a1e !important;
}
.tribe-common .tribe-common-anchor-thin-alt,
.tribe-common .tribe-common-anchor-thin-alt:hover {
  border-bottom: 1px solid #9b898a !important;
  color: #9b898a !important;
  transition: color 0.2s ease;
}
.tribe-common .tribe-common-c-btn-border,
.tribe-common a.tribe-common-c-btn-border {
  color: var(--tec-color-text-primary);
  font-family: var(--tec-font-family-sans-serif);
  font-size: var(--tec-font-size-2);
  line-height: var(--tec-line-height-3);
  font-weight: var(--tec-font-weight-regular);
  font-weight: var(--tec-font-weight-bold);
  border: 0;
  cursor: pointer;
  display: inline-block;
  height: auto;
  padding: 0;
  text-decoration: none;
  width: auto;
  background-color: #fff !important;
  border: 1px solid #222 !important;
  border-radius: var(--tec-border-radius-default);
  text-align: center;
  transition: var(--tec-transition);
  color: #222 !important;
  padding: 11px 20px;
  width: 100%;
}
.tribe-common .tribe-common-c-btn-border:hover,
.tribe-common a.tribe-common-c-btn-border:hover {
  background-color: #fff !important;
}
.tribe-events-calendar-list-nav.tribe-events-c-nav {
  display: none !important;
}
.tribe-events .datepicker .day.active,
.tribe-events .datepicker .day.active.focused,
.tribe-events .datepicker .day.active:focus,
.tribe-events .datepicker .day.active:hover,
.tribe-events .datepicker .month.active,
.tribe-events .datepicker .month.active.focused,
.tribe-events .datepicker .month.active:focus,
.tribe-events .datepicker .month.active:hover,
.tribe-events .datepicker .year.active,
.tribe-events .datepicker .year.active.focused,
.tribe-events .datepicker .year.active:focus,
.tribe-events .datepicker .year.active:hover {
  background: #222 !important;
  color: #fff !important;
  text-shadow: none;
}
.single-tribe_events .tribe-events-c-subscribe-dropdown__export-icon,
.tribe-block__events-link .tribe-events-c-subscribe-dropdown__export-icon {
  display: none !important;
}
.footer_logo {
  padding-top: 20px;
}
.footer_logo img {
  max-width: 150px;
}
.chess h2 {
  font-size: 24px;
}
.chess h3 {
  font-size: 34px;
}
.chess figure {
  height: 100%;
}
.chess figure img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.chess div {
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}
.backlink_area {
  font-size: 14px;
}
.social_icons img {
  width: 50px;
  margin: 0px 2px;
}

.logo_holder img {
  max-width: 400px;
  height: auto;
}

/* ------------------------------------------------- */
/* ------------------------------------------------- */
/* ------------------------------------------------- */
/* ------------------------------------------------- */
/* ------------------------------------------------- */
/************************************************
*	Blocks without core layout CSS				*
************************************************/

/* inc/setup.php turns core layout CSS off (disable-layout-styles), so the flex rows are here */
.wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.wp-block-buttons.is-content-justification-center {
  justify-content: center;
}
.wp-block-buttons.is-content-justification-right {
  justify-content: flex-end;
}
.wp-block-buttons.is-content-justification-space-between {
  justify-content: space-between;
}
.wp-block-buttons.is-vertical {
  flex-direction: column;
  align-items: flex-start;
}
.wp-block-columns {
  gap: 2em;
}
.wp-block-group.is-layout-flex {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5em;
}
.wp-block-group.is-layout-flex.is-vertical {
  flex-direction: column;
  align-items: flex-start;
}
.wp-block-group.is-layout-flex.is-nowrap {
  flex-wrap: nowrap;
}
.wp-block-group.is-content-justification-center {
  justify-content: center;
}
.wp-block-group.is-content-justification-right {
  justify-content: flex-end;
}
.wp-block-group.is-content-justification-space-between {
  justify-content: space-between;
}
.wp-block-group.is-layout-grid {
  display: grid;
  gap: 1em;
}
/* Gallery block: its flex row also came from core layout CSS */
.wp-block-gallery.has-nested-images {
  display: flex;
  flex-wrap: wrap;
  align-items: normal;
  gap: var(--wp--style--unstable-gallery-gap, 16px);
}
.wp-block-gallery.has-nested-images.is-content-justification-center {
  justify-content: center;
}
/* grid items may shrink below their content (long words, wide images) */
.wp-block-media-text > * {
  min-width: 0;
}
/* sections do not wrap around a floated image of the text above */
.page_content > .wp-block-group,
.page_content > .wp-block-media-text {
  clear: both;
}

/* Card rows (owner rule 19.09.2026): an incomplete last row is centered, no "widow" cards on the left.
   Put class card_row on a Group with the cards inside; --cols = cards per row */
.card_row {
  --cols: 3;
  --gap: 24px;
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--gap);
}
.card_row > * {
  flex: 0 1 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols));
  min-width: 0;
}
.card_row.cols_2 {
  --cols: 2;
}
.card_row.cols_4 {
  --cols: 4;
}

/************************************************
*	Inner pages (page.php)						*
************************************************/

.page_title_area {
  position: relative;
  z-index: 100;
  background-color: #fff;
  padding: 50px 20px 20px;
  text-align: center;
}
.page_title_area h1 {
  margin: 0;
}
.page_title_area .page_title_divider {
  width: 60px;
  height: 3px;
  margin: 15px auto 0;
  background: var(--accent-color);
}

/* Plain blocks (text, lists, images) keep a readable column,
   sections (groups, media & text, custom HTML like maps) are full width */
.page_content
  > :not(.wp-block-group):not(.wp-block-media-text):not(.map):not(.alignfull) {
  max-width: 1000px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px;
  padding-right: 20px;
}
.page_content > ul,
.page_content > ol {
  padding-left: 40px;
  line-height: 2;
}
.page_content > :last-child:not(.wp-block-group):not(.wp-block-media-text):not(.map) {
  margin-bottom: 60px !important;
}

/************************************************
*	Post cards: category archive + Query Loop	*
************************************************/

/* archive.php shows posts as cards; the same card for a Query Loop block
   with class listings_query (e.g. "featured houses" on the homepage) */
.listing_archive {
  max-width: 1400px;
  margin: 0 auto;
  padding: 40px 20px 70px;
}
.listing_grid,
.listings_query .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 25px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.listing_grid {
  grid-template-columns: repeat(auto-fit, minmax(300px, 420px));
  justify-content: center;
}
.wp-block-query.listings_query {
  max-width: 1400px;
  margin: 0 auto !important;
  padding: 0 20px 40px;
}
.listings_query .wp-block-post-template {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}
.listing_card,
.listings_query .wp-block-post {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.08);
  transition: all 0.3s;
  padding-bottom: 22px;
  margin: 0;
}
.listing_card:hover,
.listings_query .wp-block-post:hover {
  box-shadow: 0 5px 25px rgba(0, 0, 0, 0.15);
  transform: translateY(-3px);
}
.listing_card_photo,
.listings_query .wp-block-post-featured-image {
  display: block;
  margin: 0;
  background-color: #f0f0f0;
}
.listing_card_photo img,
.listings_query .wp-block-post-featured-image img {
  display: block;
  width: 100%;
  height: 280px !important;
  object-fit: cover;
}
/* Badge = first tag of the post */
.listing_badge,
.listings_query .listing_badge {
  position: absolute;
  top: 15px;
  left: 15px;
  z-index: 2;
  margin: 0 !important;
  padding: 6px 14px;
  background: var(--accent-color);
  border-radius: 2px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #fff;
}
.listings_query .listing_badge a {
  color: #fff;
  text-decoration: none;
}
.listings_query .listing_badge .wp-block-post-terms__separator,
.listings_query .listing_badge a:not(:first-child) {
  display: none;
}
.listing_card_title,
.listings_query .wp-block-post-title {
  font-size: 22px;
  line-height: 1.3;
  margin: 20px 25px 8px;
}
.listing_card_title a,
.listings_query .wp-block-post-title a {
  color: var(--main-color);
  text-decoration: none;
}
.listing_card_title a:hover,
.listings_query .wp-block-post-title a:hover {
  color: var(--accent-color);
}
.listing_card_excerpt,
.listings_query .wp-block-post-excerpt {
  flex-grow: 1;
  margin: 0 25px;
}
.listing_card_excerpt p,
.listings_query .wp-block-post-excerpt__excerpt {
  font-size: 15px;
  line-height: 1.6;
  margin: 0 0 12px !important;
}
.listing_card_more,
.listings_query .wp-block-post-excerpt__more-link {
  display: inline-block;
  margin: 0 25px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--accent-color);
  text-decoration: none;
}
.listings_query .wp-block-post-excerpt__more-text {
  margin: 0 !important;
}
.listings_query .wp-block-post-excerpt__more-link {
  margin: 0;
}
.listing_card_more:hover,
.listings_query .wp-block-post-excerpt__more-link:hover {
  color: var(--main-color);
}
.listing_empty {
  text-align: center;
  padding: 20px 0 40px;
}
.archive_description {
  max-width: 800px;
  margin: 15px auto 0;
}
/* Single post (index.php): featured image above the text */
.single_post_photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
  margin-bottom: 25px;
}

/************************************************
*	[contact_info] shortcode (inc/contact-info.php)	*
************************************************/

.contact_info_item {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}
.contact_info_item:last-child {
  margin-bottom: 0;
}
.contact_info .contact_icon {
  flex: 0 0 auto;
  color: var(--accent-color);
}
.contact_info .contact_label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.contact_info .contact_value {
  line-height: 1.5;
  word-break: break-word;
}

/************************************************
*	SEO / accessibility helpers (inc/seo.php)		*
************************************************/

/* Visible to screen readers and search engines only */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* "Skip to content" appears when reached with the keyboard */
.skip_link:focus {
  clip: auto;
  width: auto;
  height: auto;
  margin: 0;
  top: 10px;
  left: 10px;
  z-index: 100000;
  padding: 12px 20px;
  background: #fff;
  color: #000;
  font-weight: 700;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}

/* 404 page */
.not_found {
  max-width: 1000px;
  margin: 0 auto;
  padding: 30px 20px 80px;
  text-align: center;
}
.not_found .not_found_links {
  list-style: none;
  margin: 20px 0 30px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 26px;
}

@media all and (min-width: 1600px) {
  .acol-50.text_column.even {
    padding-left: 15vw;
  }
  .acol-50.text_column.odd {
    padding-right: 15vw;
  }
}

@media only screen and (max-width: 1400px) {
  .navi li a {
    /*font-size: 1.2vw; */
    /*padding: 5px 20px 8px 20px;*/
  }
  .navi li li a {
    /*font-size: 1.1vw;*/
    /*padding: 10px 20px;*/
  }
  ul#menu-main-menu li:last-of-type ul {
    margin-left: -110px;
  }
  .m_nav ul#menu-main-menu li:last-of-type ul {
    margin-left: 0px;
  }
}

@media only screen and (max-width: 1200px) {
  .navi li a {
    /*font-size: 1.2vw; */
    /*padding: 5px 10px 10px 10px;*/
  }
  .navi li li a {
    /*font-size: 1.1vw; */
    /*padding: 10px 10px;*/
  }
}

@media only screen and (max-width: 767px) {
  #wpadminbar {
    display: none !important;
    z-index: -1 !important;
  }

  html {
    min-height: 100%;
    position: relative;
  }

  body {
    font-size: 17px;
  }

  .m_nav {
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
    z-index: 99999999;
    padding-top: 20px;
  }

  .admin-bar .mobile_menu {
    margin-top: -46px !important;
  }
  .mobile_menu {
    display: block;
    background-color: var(--main-color) !important;
    position: relative;
    padding: 10px;
    z-index: 999999;
  }

  .admin-bar .m_nav {
    margin-top: 0px !important;
  }

  .mhide,
  .ws_controls {
    display: none;
  }
  .mshow {
    display: block;
  }
  img.resp {
    width: 100% !important;
    height: auto !important;
  }
  img.alignleft,
  img.alignright {
    display: block;
    clear: both;
    text-align: center;
    float: none;
    margin: 10px auto;
  }
  .gallery-item {
    width: 100% !important;
  }

  .mright {
    text-align: center;
  }
  .mcenter {
    text-align: center;
  }
  .wp-embedded-content {
    width: 100% !important;
  }
  .backlink_area a {
    display: block;
  }
  .phone {
    position: absolute;
    top: 20px;
    left: 15px;
    text-align: left;
  }
  .phone span {
    vertical-align: middle;
  }
  .phone a {
    font-size: 22px;
    color: #fff;
    text-decoration: none;
  }
  .navi ul {
    border-top: none;
  }
  .phone span,
  .address span {
    transform: translateY(-2px);
  }
  .accordion {
    height: auto;
  }
  .accordion ul li,
  .accordion ul li:hover,
  .accordion ul:hover li,
  .accordion ul:hover li:hover {
    position: relative;
    display: table;
    table-layout: fixed;
    width: 100%;
    -webkit-transition: none;
    transition: none;
  }
  .tit {
    text-align: center;
    font-size: 22px;
  }
  .main_row {
    position: relative;
    z-index: 300;
    background-image: none;
    background-repeat: repeat-x;
  }
  .accordion ul li div.tit {
    font-size: 19px;
    height: auto;
    padding: 30px 10px;
  }
  .tag_lines_area .wrap h1 {
    font-weight: 900;
    font-size: 40px;
  }

  .tag_lines_area .wrap h2 {
    font-weight: 400;
    font-size: 30px;
  }

  .m_nav {
    background-color: var(--main-color-hover);
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    transform: translateX(-100%);
    z-index: 99999;
    width: 100%;
    max-width: 450px;
    padding-top: 80px;
    transition: transform 0.3s ease;
    overflow-y: auto;
  }

  .opened {
    transform: translateX(0);
  }

  .m_nav .navi ul {
    float: none;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .m_nav .navi li {
    float: none;
    width: 100%;
    position: relative;
  }

  .m_nav .navi li a {
    color: var(--menu-color-mobile);
    border-bottom: 1px solid var(--main-color);
    padding: 15px 20px;
    font-size: 19px;
    font-weight: 400;
    display: block;
  }

  .m_nav .navi li ul {
    position: static;
    opacity: 1;
    visibility: visible;
    box-shadow: none;
    width: 100%;
  }

  .m_nav .navi li.menu-item-has-children > a {
    position: relative;
  }

  .m_nav .navi li li a {
    padding-left: 40px;
    background-color: rgba(255, 255, 255, 0.05);
    font-size: 16px;
    white-space: normal;
    line-height: 1.3;
  }

  .m_nav .navi li li li a {
    padding-left: 60px;
    font-size: 15px;
  }

  .mobile_menu {
    display: none;
    padding: 10px;
    background-color: var(--main-color);
    position: relative;
    z-index: 999999;
  }

  .mobile_menu {
    display: block;
  }

  .navi ul {
    display: none; /* Hide desktop menu */
  }

  .m_nav .navi ul {
    display: block; /* Show mobile menu */
  }

  .blue_text h1,
  .blue_text h2 {
    font-size: 40px;
    text-transform: uppercase;
    text-align: center;
    font-weight: 700;
  }
  .blue_text h3,
  .blue_text h4,
  .blue_text h5,
  .blue_text h6 {
    font-size: 30px;
    text-transform: uppercase;
    text-align: center;
    font-weight: 400;
  }
  .wp-block-columns {
    padding: 30px;
  }
  .wp-block-media-text .wp-block-media-text__media {
    margin-bottom: 30px !important;
  }
  .wp-block-media-text > .wp-block-media-text__content {
    padding: 10px 30px !important;
  }
  .tag_lines_area {
  }
  .tag_lines_area .wrap a {
    font-size: 20px !important;
    text-transform: uppercase;
    margin: 20px 0px;
    margin: 20px 0px;
    padding: 20px !important;
  }
  .chess h2 {
    font-size: 22px;
  }
  .chess h3 {
    font-size: 28px;
  }
  .logo_holder {
    text-align: center !important;
    margin-bottom: 0px;
    padding-top: 30px;
  }
  .logo_holder img {
    max-width: 100%;
  }
  .logo_holder a {
    text-decoration: none;
    color: #fff;
  }
  .header_area a.button {
    width: 100%;
  }

  .listing_grid,
  .listings_query .wp-block-post-template {
    grid-template-columns: 1fr;
  }
  .card_row,
  .card_row.cols_4 {
    --cols: 1;
  }
  .listing_archive {
    padding: 25px 20px 50px;
  }
  .listing_card_photo img,
  .listings_query .wp-block-post-featured-image img {
    height: 230px !important;
  }
  .page_title_area {
    padding: 35px 20px 25px;
  }
  .contact_info_item {
    gap: 12px;
  }
  .contact_info .contact_value {
    font-size: 14px;
  }
}

/************************************************
*	GREENWAY HEATING & COOLING					*
*	(everything below is this site's design;	*
*	 template rules that clash are overridden	*
*	 here, colors come from Customizer)			*
************************************************/

:root {
  --gw-wrap: 1270px;
  --gw-side: max(20px, calc((100% - var(--gw-wrap)) / 2));
  --gw-radius: 14px;
  --gw-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  --gw-mint: color-mix(in srgb, var(--main-color) 7%, #fff);
  --gw-line: color-mix(in srgb, var(--main-color) 14%, #fff);
  --gw-gradient: linear-gradient(120deg, var(--main-color) 0%, var(--main-color) 42%, var(--gradient-color) 100%);
}

/* ---------- Base ---------- */
body {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  max-width: none;
  box-shadow: none;
}
.wrap {
  max-width: var(--gw-wrap);
  padding-left: 20px;
  padding-right: 20px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
  color: var(--main-color);
  line-height: 1.15;
}
h1 {
  font-size: clamp(34px, 4vw, 52px);
}
h2 {
  font-size: clamp(28px, 3vw, 40px);
}
h3 {
  font-size: clamp(22px, 2vw, 26px);
}
h4 {
  font-size: 20px;
}
a,
a:visited {
  color: var(--accent-color);
}
a:hover {
  color: var(--accent-color-hover);
}
strong,
b {
  font-weight: 700;
}
.has-red-color {
  color: var(--accent-color) !important;
}
.has-green-color {
  color: var(--main-color) !important;
}
.gutenberg_area {
  z-index: auto;
}

/* ---------- Buttons: red by default, green and white variants ---------- */
a.wp-block-button__link.wp-element-button,
.wp-block-button .wp-block-button__link,
a.button,
.button {
  background: var(--accent-color);
  color: #fff !important;
  font-family: var(--main-font);
  font-weight: 700 !important;
  font-size: 15px !important;
  padding: 13px 22px !important;
  border-radius: 10px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  line-height: 1.2 !important;
  transition: background 0.2s ease;
}
a.wp-block-button__link.wp-element-button:hover,
.wp-block-button .wp-block-button__link:hover,
a.button:hover,
.button:hover {
  background: var(--accent-color-hover);
  text-decoration: none;
}
.gw_button_green,
a.gw_button_green,
.wp-block-button.gw_btn_green .wp-block-button__link {
  background: var(--main-color);
}
.gw_button_green:hover,
a.gw_button_green:hover,
.wp-block-button.gw_btn_green .wp-block-button__link:hover {
  background: var(--main-color-hover);
}
.wp-block-button.gw_btn_white .wp-block-button__link {
  background: #fff;
  color: var(--main-color) !important;
}
.wp-block-button.gw_btn_white .wp-block-button__link:hover {
  background: var(--gw-mint);
}
.button .material-symbols-outlined,
.wp-block-button__link .material-symbols-outlined {
  font-size: 19px;
}

/* ---------- Top bar ---------- */
.gw_topbar {
  background: linear-gradient(90deg, var(--main-color), var(--gradient-color));
  color: #fff;
  font-size: 14px;
}
.gw_topbar ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: space-between;
  gap: 10px 30px;
  flex-wrap: wrap;
}
.gw_topbar a,
.gw_topbar a:visited {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 0;
  color: #fff;
  font-weight: 700;
}
.gw_topbar a:hover {
  color: #fff;
  text-decoration: underline;
}
.gw_topbar a span:not(.material-symbols-outlined) {
  font-weight: 400;
}
.gw_topbar .material-symbols-outlined {
  font-size: 20px;
}

/* ---------- Header ---------- */
.header_area {
  background: #fff;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
.gw_header {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 110px;
}
.gw_logo {
  flex: 0 0 auto;
  display: block;
  line-height: 0;
}
.gw_logo img {
  width: 263px;
  max-width: 100%;
  height: auto;
}
.gw_logo_text {
  font-family: var(--heading-font);
  font-size: 28px;
  color: var(--main-color);
  line-height: 1;
}
.header_area .navi_holder {
  flex: 1 1 auto;
  background: none;
  border: 0;
  display: flex;
  justify-content: center;
}
.gw_header_buttons {
  flex: 0 0 auto;
  display: flex;
  gap: 10px;
}
.gw_header_buttons .button {
  font-size: 14px !important;
  padding: 11px 14px !important;
  margin: 0;
}

/* Main menu (desktop) */
.header_area .navi ul {
  float: none;
}
.header_area .navi .menu > li > a {
  color: var(--menu-color);
  font-family: var(--menu-font);
  font-size: 15px;
  font-weight: 500;
  text-transform: none;
  padding: 44px 12px;
  display: flex;
  align-items: center;
  gap: 2px;
  background: none;
}
.header_area .navi .menu > li > a:hover,
.header_area .navi .menu > li.current-menu-item > a,
.header_area .navi .menu > li.current-menu-ancestor > a {
  color: var(--main-color);
  background: none;
}
.header_area .navi .menu > li.menu-item-has-children > a::after {
  content: "expand_more";
  font-family: "Material Symbols Outlined";
  font-size: 20px;
  line-height: 1;
  font-weight: 400;
}

/* Plain dropdown */
.header_area .navi li ul {
  background: #fff;
  border-radius: 0 0 var(--gw-radius) var(--gw-radius);
  box-shadow: var(--gw-shadow);
  padding: 8px 0;
  min-width: 230px;
  border-top: 3px solid var(--main-color);
}
.header_area .navi li li a {
  color: var(--menu-color);
  border-bottom: 0;
  font-size: 15px;
  text-transform: none;
  padding: 9px 20px;
}
.header_area .navi li li a:hover,
.header_area .navi li li.current-menu-item > a {
  color: var(--accent-color);
  background: var(--gw-mint);
}

/* Mega menu: a top item with class "mega"; its children are columns
   (items with class "menu_heading" print a title instead of a link) */
.header_area .navi .menu > li.mega {
  position: static;
}
.header_area .navi_holder,
.header_area .navi,
.header_area .navi nav {
  position: static;
}
.gw_header {
  position: relative;
}
.header_area .navi .menu > li.mega > ul {
  left: 50% !important;
  right: auto !important;
  width: min(1100px, calc(100vw - 40px));
  margin-left: calc(min(1100px, calc(100vw - 40px)) / -2);
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  padding: 28px 30px;
}
.header_area .navi .menu > li.mega > ul > li {
  width: auto;
  flex: 1 1 170px;
}
.header_area .navi .menu > li.mega ul ul {
  position: static;
  opacity: 1;
  /* inherit: hidden while the mega panel is closed (visible here showed the links over the page) */
  visibility: inherit;
  transform: none;
  pointer-events: auto;
  box-shadow: none;
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
  background: none;
  display: block;
}
.header_area .navi .menu > li.mega ul ul li a {
  padding: 6px 0;
  white-space: normal;
}
.header_area .navi .menu > li.mega ul ul li a:hover {
  background: none;
}
.menu_heading_label {
  display: block;
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 18px;
  text-transform: uppercase;
  color: var(--main-color);
  padding: 0 0 6px;
  margin-bottom: 4px;
  border-bottom: 2px solid var(--gw-line);
}
.header_area .navi .menu > li.mega > ul > li > a {
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 18px;
  text-transform: uppercase;
  color: var(--main-color);
  padding: 0 0 6px;
}

/* Top menu items without a page (Heating, Cooling, Resources) print as text */
.header_area .navi .menu > li > .menu_heading_label {
  border: 0;
  margin: 0;
  padding: 44px 12px;
  display: flex;
  align-items: center;
  gap: 2px;
  font-family: var(--menu-font);
  font-size: 15px;
  font-weight: 500;
  text-transform: none;
  color: var(--menu-color);
  cursor: default;
}
.header_area .navi .menu > li:hover > .menu_heading_label,
.header_area .navi .menu > li.current-menu-ancestor > .menu_heading_label {
  color: var(--main-color);
}
.header_area .navi .menu > li.menu-item-has-children > .menu_heading_label::after {
  content: "expand_more";
  font-family: "Material Symbols Outlined";
  font-size: 20px;
  line-height: 1;
  font-weight: 400;
}
.gw_rating {
  font-size: 18px;
}
.gw_rating .gw_stars {
  font-size: 20px;
}

/* ---------- Mobile bar and drawer (tablets too: the desktop header needs ~1150px) ---------- */
.gw_mobile_bar {
  display: none;
}
@media only screen and (max-width: 1100px) {
  .header_area {
    display: none;
  }
  .gw_topbar ul {
    justify-content: center;
  }
  .gw_topbar li:not(:first-child) {
    display: none;
  }
  .gw_mobile_bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    position: sticky;
    top: 0;
    z-index: 100000;
  }
  .gw_mobile_logo {
    margin-right: auto;
    line-height: 0;
  }
  .gw_mobile_logo img {
    width: 175px;
    height: auto;
  }
  .gw_mobile_call,
  .gw_mobile_toggle {
    width: 46px;
    height: 46px;
    border-radius: 10px;
    border: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #fff !important;
  }
  .gw_mobile_call {
    background: var(--main-color);
  }
  .gw_mobile_toggle {
    background: var(--accent-color);
  }
  .gw_mobile_call .material-symbols-outlined,
  .gw_mobile_toggle .material-symbols-outlined {
    font-size: 26px;
  }
  .m_nav {
    display: block;
    background-color: var(--main-color-hover);
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    transform: translateX(-100%);
    z-index: 100001;
    width: 100%;
    max-width: 420px;
    padding-top: 20px;
    transition: transform 0.3s ease;
    overflow-y: auto;
  }
  .m_nav.opened {
    transform: translateX(0);
  }
  .m_nav .navi ul {
    float: none;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .m_nav .navi li {
    width: 100%;
    position: relative;
  }
  .m_nav .navi li a,
  .m_nav .menu_heading_label {
    color: #fff;
    border-bottom: 1px solid var(--main-color);
    padding: 13px 20px;
    font-size: 18px;
    font-weight: 500;
    display: block;
    text-transform: none;
    white-space: normal;
    line-height: 1.3;
  }
  .m_nav .menu_heading_label {
    font-family: var(--heading-font);
    text-transform: uppercase;
    font-size: 15px;
    color: var(--gradient-color);
    padding-left: 34px;
    margin: 0;
  }
  .m_nav .navi li ul {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    width: 100%;
    background: none;
    pointer-events: auto;
  }
  .m_nav .navi li li a {
    padding-left: 34px;
    background-color: rgba(255, 255, 255, 0.05);
    font-size: 16px;
  }
  .m_nav .navi li li li a {
    padding-left: 48px;
    font-size: 15px;
  }
  .gw_mobile_buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px;
  }
  body.admin-bar .gw_mobile_bar {
    top: 46px;
  }
}
@media only screen and (min-width: 1101px) {
  .m_nav,
  .gw_mobile_bar {
    display: none !important;
  }
}

/* ---------- Trust badges ---------- */
.gw_badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 26px;
  margin-bottom: 26px;
}
.gw_badge,
.gw_badge:visited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  text-decoration: none;
  line-height: 1.2;
}
.gw_badge:hover {
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
}
.gw_badge img {
  display: block;
  height: 36px;
  width: auto;
}
.gw_badge_bbb img {
  height: 40px;
}
.gw_badge_text {
  display: flex;
  flex-direction: column;
  font-size: 13px;
  font-weight: 500;
}
.gw_stars {
  color: var(--accent-color);
  font-size: 15px;
  letter-spacing: 2px;
}
.gw_badges_dark .gw_badge,
.gw_badges_dark .gw_badge:visited,
.gw_badges_dark .gw_badge:hover {
  color: var(--main-color);
}

/* ---------- Red ribbon on the green bands ---------- */
.gw_ribbon {
  position: absolute;
  top: 0;
  right: -40px;
  height: 100%;
  width: 90px;
  fill: var(--accent-color);
  pointer-events: none;
}

/* ---------- Home hero ---------- */
.gw_hero {
  position: relative;
  display: flex;
  min-height: 560px;
  background: #fff;
  overflow: hidden;
}
.gw_hero_text {
  position: relative;
  z-index: 2;
  flex: 0 0 47%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  background: linear-gradient(160deg, var(--main-color) 0%, var(--main-color) 55%, color-mix(in srgb, var(--main-color) 60%, var(--gradient-color)) 100%);
  color: #fff;
  border-top-right-radius: 0;
}
.gw_hero_inner {
  width: 100%;
  max-width: calc(var(--gw-wrap) * 0.47);
  padding: 60px 70px 60px 20px;
}
.gw_hero_photo {
  flex: 1 1 auto;
  background-size: cover;
  background-position: center;
}
.gw_tag_lines h1 {
  color: #fff;
  font-weight: 300;
  font-size: clamp(34px, 3.4vw, 50px);
  margin: 0 0 18px;
}
.gw_tag_lines h1 strong {
  font-weight: 700;
}
.gw_tag_lines p {
  font-size: 16px;
  line-height: 1.6;
  color: #fff;
}
.gw_tag_lines a:not(.button) {
  color: #fff;
  text-decoration: underline;
}

/* ---------- Inner page hero ---------- */
.gw_page_hero {
  position: relative;
  overflow: hidden;
  background: var(--gw-gradient);
  color: #fff;
}
.gw_page_hero_inner {
  padding-top: 60px;
  padding-bottom: 60px;
  padding-right: 120px !important;
  min-height: 260px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.gw_page_hero h1 {
  color: #fff;
  font-weight: 300;
  font-size: clamp(32px, 3.4vw, 48px);
  margin: 0;
  max-width: 820px;
}
.gw_page_hero h1 strong {
  font-weight: 700;
}
.gw_page_hero .gw_ribbon {
  right: 6%;
  width: 70px;
}

/* ---------- Sections: className on a Group block ---------- */
/* gw_section = full width band with the content kept to the site width */
.gutenberg_area .gw_section {
  position: relative;
  padding: 70px var(--gw-side);
  margin: 0 !important;
  max-width: none !important;
}
.gw_section.gw_green {
  background: var(--gw-gradient);
  color: #fff;
}
.gw_section.gw_green h2,
.gw_section.gw_green h3,
.gw_section.gw_green h4 {
  color: #fff;
}
.gw_section.gw_green .gw_card h2,
.gw_section.gw_green .gw_card h3,
.gw_section.gw_green .gw_card h4 {
  color: var(--main-color);
}
.gw_section.gw_green a:not(.wp-block-button__link) {
  color: #fff;
  text-decoration: underline;
}
.gw_section.gw_green .gw_card a:not(.wp-block-button__link) {
  color: var(--accent-color);
  text-decoration: none;
}
.gw_section.gw_mint {
  background: var(--gw-mint);
}
.gw_section.gw_center {
  text-align: center;
}
.gw_section.gw_center > p,
.gw_narrow {
  max-width: 760px;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* soft wave on the bottom edge of a section */
.gw_section.gw_wave_bottom {
  padding-bottom: 120px;
}
.gw_section.gw_wave_bottom::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 70px;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 40 C 360 0 720 70 1080 30 C 1260 10 1380 20 1440 30 L1440 70 L0 70 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 40 C 360 0 720 70 1080 30 C 1260 10 1380 20 1440 30 L1440 70 L0 70 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.gw_section.gw_wave_bottom.gw_next_mint::after {
  background: var(--gw-mint);
}
.gw_section > .wp-block-heading:first-child {
  margin-top: 0;
}
.gw_eyebrow {
  font-family: var(--heading-font);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--accent-color);
  letter-spacing: 1px;
  margin-bottom: 0 !important;
}
.gw_icon_top {
  display: block;
  font-family: "Material Symbols Outlined";
  font-size: 44px !important;
  line-height: 1 !important;
  color: var(--main-color);
  margin-bottom: 0 !important;
}

/* ---------- Two columns: text + contact form card ---------- */
.wp-block-columns.gw_split {
  gap: 50px;
  align-items: flex-start;
}
.wp-block-columns.gw_split > .wp-block-column {
  flex: 1 1 0;
  min-width: 0;
}
.gw_card {
  background: #fff;
  color: var(--text-color);
  border-radius: var(--gw-radius);
  box-shadow: var(--gw-shadow);
  padding: 30px;
}
.gw_form_card h2 {
  text-align: center;
  font-size: 30px;
  margin-top: 0;
}
.gw_marks {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 34px;
  margin-top: 24px !important;
}
.gw_marks figure {
  margin: 0;
}
.gw_marks img {
  height: 46px;
  width: auto;
}

/* ---------- Card rows (template card_row) ---------- */
.card_row.gw_cards {
  --gap: 20px;
  margin-top: 30px;
  align-items: stretch;
}
.card_row > .gw_card {
  display: flex;
  flex-direction: column;
  padding: 0 0 26px;
  overflow: hidden;
  text-align: center;
}
.card_row > .gw_card > figure:first-child {
  margin: 0 0 18px;
}
.card_row > .gw_card > figure:first-child img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
}
.card_row > .gw_card > :not(figure) {
  padding-left: 22px;
  padding-right: 22px;
}
.card_row > .gw_card h3 {
  margin: 0 0 8px;
  text-transform: uppercase;
}
.card_row > .gw_card p {
  font-size: 15px;
}
.card_row > .gw_card .wp-block-buttons {
  margin-top: auto;
  padding-top: 14px;
  justify-content: center;
}
.card_row > .gw_card.gw_left {
  text-align: left;
  padding: 30px;
}
.card_row > .gw_card.gw_left .wp-block-buttons {
  justify-content: flex-start;
}
/* coupons */
.card_row > .gw_card.gw_coupon {
  border: 2px dashed var(--accent-color);
  box-shadow: none;
}
.gw_coupon .gw_price {
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 40px !important;
  line-height: 1 !important;
  color: var(--main-color);
  text-transform: uppercase;
  margin: 0 !important;
}
.gw_coupon h3 {
  font-size: 22px;
  color: var(--text-color);
}
.gw_small {
  font-size: 13px !important;
  color: #555;
}

/* ---------- Lists in cards ---------- */
.gw_list {
  list-style: none;
  margin: 0;
  padding: 0 !important;
  background: #fff;
  border-radius: var(--gw-radius);
  border: 1px solid var(--gw-line);
  overflow: hidden;
  color: var(--text-color);
}
.gw_list > li {
  position: relative;
  padding: 13px 18px 13px 48px;
  border-bottom: 1px solid var(--gw-line);
  line-height: 1.5;
  margin: 0;
}
.gw_list > li:last-child {
  border-bottom: 0;
}
.gw_list > li::before {
  position: absolute;
  left: 16px;
  top: 12px;
  font-family: "Material Symbols Outlined";
  font-size: 22px;
  line-height: 1;
  color: var(--accent-color);
  content: "check_circle";
  font-variation-settings: "FILL" 1;
}
.gw_list.gw_arrows > li::before {
  content: "chevron_right";
  color: #fff;
  background: var(--accent-color);
  border-radius: 50%;
  font-size: 18px;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 14px;
}
.gw_list.gw_warnings > li::before {
  content: "warning";
}
ol.gw_list {
  counter-reset: gw;
}
ol.gw_list > li {
  counter-increment: gw;
}
ol.gw_list > li::before {
  content: counter(gw);
  font-family: var(--main-font);
  font-weight: 700;
  font-size: 13px;
  color: #fff;
  background: var(--accent-color);
  border-radius: 50%;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 13px;
}
.gw_section.gw_green .gw_list a {
  color: var(--accent-color);
  text-decoration: none;
}
.gw_cities {
  list-style: none;
  padding: 0 !important;
  margin: 20px 0 !important;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 20px;
}
.gw_cities li {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  margin: 0;
}
.gw_cities li::before {
  content: "eco";
  font-family: "Material Symbols Outlined";
  font-weight: 400;
  font-size: 20px;
  color: var(--gradient-color);
}
.gw_section.gw_green .gw_cities a {
  color: #fff;
  text-decoration: none;
}
.gw_section.gw_green .gw_cities a:hover {
  text-decoration: underline;
}

/* ---------- FAQ: Details blocks ---------- */
.gw_faq {
  display: flex !important;
  flex-direction: column;
  gap: 14px;
}
.gw_faq details {
  background: #fff;
  border-radius: var(--gw-radius);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  padding: 18px 22px;
  margin: 0;
}
.gw_faq summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 19px;
  color: var(--main-color);
  display: flex;
  gap: 10px;
  align-items: flex-start;
  line-height: 1.3;
}
.gw_faq summary::-webkit-details-marker {
  display: none;
}
.gw_faq summary::before {
  content: "help";
  font-family: "Material Symbols Outlined";
  font-weight: 400;
  color: var(--accent-color);
  font-size: 22px;
  line-height: 1.1;
}
.gw_faq summary::after {
  content: "expand_more";
  font-family: "Material Symbols Outlined";
  font-weight: 400;
  margin-left: auto;
  color: var(--main-color);
  transition: transform 0.2s ease;
}
.gw_faq details[open] summary::after {
  transform: rotate(180deg);
}
.gw_faq details > :not(summary) {
  margin: 10px 0 0 32px !important;
}

/* ---------- Media & Text inside a section ---------- */
.gw_section .wp-block-media-text {
  gap: 50px;
}
.gw_section .wp-block-media-text .wp-block-media-text__media img {
  border-radius: var(--gw-radius);
}
.gw_section .wp-block-media-text > .wp-block-media-text__content {
  padding: 0 !important;
}

/* ---------- Reviews ---------- */
.gw_review {
  text-align: left !important;
  padding: 24px !important;
}
.gw_review .gw_stars {
  font-size: 18px;
}
.gw_review_name {
  font-weight: 700;
  color: var(--main-color);
  margin-bottom: 0 !important;
}
.gw_review_text {
  font-size: 15px;
  font-style: italic;
}

/* ---------- Service area: text + map ---------- */
.wp-block-columns.gw_area {
  gap: 0;
  align-items: stretch;
  padding: 0 !important;
}
.gw_area > .wp-block-column {
  flex: 1 1 50%;
  min-width: 0;
}
.gw_area > .wp-block-column:first-child {
  padding: 70px 60px 70px var(--gw-side);
  background: var(--gw-gradient);
  color: #fff;
}
.gw_area > .wp-block-column:first-child h2 {
  color: #fff;
}
.gw_area > .wp-block-column:last-child {
  position: relative;
  min-height: 420px;
  border-left: 14px solid var(--accent-color);
}
.gw_area .map,
.gw_area iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
  border: 0;
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
}

/* ---------- Contact page ---------- */
.gw_contact_details p {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.gw_contact_details .material-symbols-outlined {
  color: var(--accent-color);
}

/* ---------- Forminator form in the card ---------- */
.gw_form_card .forminator-ui.forminator-custom-form {
  margin: 0 !important;
}
.gw_form_card .forminator-ui input.forminator-input,
.gw_form_card .forminator-ui textarea.forminator-textarea {
  border: 1px solid #b7c6bd !important;
  border-radius: 8px !important;
  padding: 10px 12px !important;
  font-family: var(--main-font) !important;
  font-size: 15px !important;
  background: #fff !important;
}
.gw_form_card .forminator-ui input.forminator-input:focus,
.gw_form_card .forminator-ui textarea.forminator-textarea:focus {
  border-color: var(--main-color) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--main-color) 18%, transparent) !important;
}
.gw_form_card .forminator-ui .forminator-button-submit {
  width: 100%;
  background: var(--accent-color) !important;
  color: #fff !important;
  border-radius: 10px !important;
  font-family: var(--main-font) !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  padding: 14px !important;
}
.gw_form_card .forminator-ui .forminator-button-submit:hover {
  background: var(--accent-color-hover) !important;
}
.gw_form_card .forminator-ui .forminator-label {
  font-family: var(--main-font) !important;
  font-size: 14px !important;
  color: var(--text-color) !important;
}
.gw_form_note {
  font-size: 13px !important;
  text-align: center;
}

/* ---------- Footer ---------- */
.footer_area {
  background-color: var(--footer-background-color);
  color: var(--footer-color);
  font-size: 15px;
  position: relative;
  overflow: hidden;
}
.footer_area::before {
  content: "";
  position: absolute;
  right: -120px;
  top: -60px;
  width: 700px;
  height: 700px;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--gradient-color) 22%, transparent), transparent);
  pointer-events: none;
}
.gw_footer {
  position: relative;
  display: flex;
  gap: 40px;
  padding-top: 60px;
  padding-bottom: 50px;
}
.gw_footer_company {
  flex: 0 0 240px;
}
.gw_footer_company p {
  margin: 8px 0 !important;
}
.gw_footer_logo img {
  width: 175px;
  height: auto;
}
.gw_footer_marks {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-top: 16px;
}
.gw_footer_marks img {
  height: 30px;
  width: auto;
}
.gw_footer_links {
  flex: 1 1 auto;
  min-width: 0;
}
.footer_area a,
.footer_area a:visited {
  color: var(--footer-color);
  text-decoration: none;
}
.footer_area a:hover {
  color: var(--accent-color);
  text-decoration: underline;
}
.gw_footer_links .wp-block-columns {
  gap: 30px;
}
.gw_footer_links .wp-block-column {
  min-width: 0;
}
.footer_title {
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 20px;
  text-transform: uppercase;
  color: var(--main-color);
  margin: 0 0 8px !important;
  line-height: 1.2 !important;
}
.footer_title:not(:first-child) {
  margin-top: 22px !important;
}
.gw_footer_links ul {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
}
.gw_footer_links li {
  margin: 0;
  line-height: 1.45;
  padding: 2px 0;
}
.gw_footer_bottom {
  position: relative;
  background: #1f2426;
  color: #cfd6d2;
  font-size: 14px;
}
.gw_footer_bottom_inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 30px;
  padding-top: 18px;
  padding-bottom: 18px;
}
.gw_footer_bottom p {
  margin: 0 !important;
}
.gw_footer_bottom ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 20px;
}
.gw_footer_bottom a,
.gw_footer_bottom a:visited {
  color: #cfd6d2;
}
.gw_footer_bottom a:hover {
  color: #fff;
}
body:not(.home) .footer_area {
  margin-top: 0;
}

/* ---------- Inner pages: the text column is as wide as the site ---------- */
.page_content
  > :not(.wp-block-group):not(.wp-block-media-text):not(.map):not(.alignfull):not(.wp-block-columns) {
  max-width: var(--gw-wrap);
}
.page_content > .wp-block-columns {
  max-width: var(--gw-wrap);
  margin: 60px auto !important;
  padding: 0 20px;
}

/* ---------- 404 ---------- */
.error404 .gw_page_hero_inner {
  min-height: 200px;
}

/* ---------- Tablet ---------- */
@media only screen and (max-width: 1100px) {
  .gw_hero {
    flex-direction: column-reverse;
    min-height: 0;
  }
  .gw_hero_text {
    flex: 1 1 auto;
  }
  .gw_hero_inner {
    max-width: none;
    padding: 40px 20px 46px;
  }
  .gw_hero_photo {
    min-height: 300px;
  }
  .gw_hero .gw_ribbon,
  .gw_page_hero .gw_ribbon {
    display: none;
  }
  .gw_page_hero_inner {
    padding-right: 20px !important;
    min-height: 0;
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .card_row.cols_4 {
    --cols: 2;
  }
  .card_row.gw_cards:not(.cols_2):not(.cols_4) {
    --cols: 2;
  }
  .gw_footer {
    flex-direction: column;
    gap: 30px;
  }
  .gw_footer_company {
    flex: none;
  }
  .gw_footer_links .wp-block-columns {
    flex-wrap: wrap;
  }
  .gw_footer_links .wp-block-column {
    flex: 1 1 200px !important;
  }
}

/* ---------- Phone ---------- */
@media only screen and (max-width: 767px) {
  body {
    font-size: 16px;
  }
  .gutenberg_area .gw_section {
    padding-top: 46px;
    padding-bottom: 46px;
  }
  .gw_section.gw_wave_bottom {
    padding-bottom: 80px;
  }
  .gw_section.gw_wave_bottom::after {
    height: 40px;
  }
  .wp-block-columns {
    padding: 0;
  }
  .wp-block-columns.gw_split,
  .wp-block-columns.gw_area,
  .gw_section .wp-block-columns {
    flex-direction: column;
    gap: 30px;
  }
  .gw_section .wp-block-columns > .wp-block-column {
    flex-basis: auto !important;
    width: 100%;
  }
  .card_row.gw_cards,
  .card_row.cols_2,
  .card_row.cols_4 {
    --cols: 1;
  }
  .gw_card {
    padding: 22px;
  }
  .gw_badges {
    gap: 12px 18px;
  }
  .gw_badge img {
    height: 30px;
  }
  .gw_badge_bbb img {
    height: 34px;
  }
  .gw_area > .wp-block-column:first-child {
    padding: 46px 20px;
  }
  .gw_area > .wp-block-column:last-child {
    border-left: 0;
    border-top: 10px solid var(--accent-color);
    min-height: 320px;
  }
  .gw_area .map,
  .gw_area iframe {
    min-height: 320px;
  }
  .gw_cities {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gw_section .wp-block-media-text {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .gw_section .wp-block-media-text > .wp-block-media-text__content {
    padding: 0 !important;
  }
  .gw_section .wp-block-media-text .wp-block-media-text__media {
    margin-bottom: 0 !important;
  }
  .gw_faq details > :not(summary) {
    margin-left: 0 !important;
  }
  .gw_footer_bottom_inner {
    flex-direction: column;
    text-align: center;
  }
  .page_content > .wp-block-columns {
    margin: 40px auto !important;
  }
}

/* ---------- Greenway: content helpers ---------- */
.gw_section.gw_center .wp-block-buttons {
  justify-content: center;
}
.gw_section.gw_center .gw_left,
.gw_section.gw_center .gw_card .gw_list {
  text-align: left;
}
.gw_narrow_left {
  max-width: 760px;
}
.wp-block-columns.gw_two_cards,
.wp-block-columns.gw_two_lists {
  gap: 30px;
  margin-top: 26px;
}
.wp-block-columns.gw_two_cards > .wp-block-column,
.wp-block-columns.gw_two_lists > .wp-block-column {
  flex: 1 1 0;
  min-width: 0;
}
.gw_two_cards .gw_card {
  height: 100%;
}
.gw_two_cards .gw_card h3 {
  margin-top: 0;
}
.gw_two_lists h2 {
  font-size: clamp(24px, 2.4vw, 30px);
}
.gw_two_lists + h2 {
  margin-top: 50px;
}
.card_row.gw_products > .gw_card > h3 {
  font-size: 20px;
  text-transform: none;
}
.gw_spec {
  font-family: var(--heading-font);
  font-weight: 700;
  color: var(--accent-color);
  font-size: 17px !important;
  margin: 0 0 10px !important;
}
.card_row > .gw_card > figure:first-child img[src*="product-"] {
  object-fit: contain;
  height: 150px;
  padding-top: 16px;
}
.gw_list.gw_compact {
  border: 0;
  text-align: left;
  font-size: 15px;
}
.gw_list.gw_compact > li {
  padding: 5px 0 5px 30px;
  border: 0;
}
.gw_list.gw_compact > li::before {
  left: 0;
  top: 6px;
  font-size: 19px;
}
.card_row.gw_icons > .gw_card {
  padding: 26px 22px;
}
.card_row.gw_icons {
  --cols: 3;
}
.gw_rebate {
  margin: 30px auto 10px !important;
  max-width: 900px;
  text-align: left;
}
.gw_rebate h3 {
  margin-top: 0;
}
.gw_legal {
  max-width: 900px !important;
  margin: 0 auto !important;
  padding: 60px 20px !important;
}
.gw_legal h2 {
  font-size: 26px;
  margin-top: 34px;
}
.gw_legal ul {
  padding-left: 22px;
  line-height: 1.7;
}
.gw_media .wp-block-media-text__content h2 {
  margin-top: 0;
}
.gw_footer_cols {
  display: flex;
  gap: 30px;
}
.gw_footer_cols > .wp-block-column {
  flex: 1 1 0;
  min-width: 0;
}
.page_content > .gw_section:last-child,
.gutenberg_area > .wp-block-columns.gw_area:last-child {
  margin-bottom: 0 !important;
}
@media only screen and (max-width: 1100px) {
  .card_row.gw_icons {
    --cols: 2;
  }
  .m_nav .navi .menu > li > .menu_heading_label {
    color: #fff;
    font-family: var(--menu-font);
    font-size: 18px;
    text-transform: none;
    padding-left: 20px;
  }
}
@media only screen and (max-width: 767px) {
  .card_row.gw_icons {
    --cols: 1;
  }
  .wp-block-columns.gw_two_cards,
  .wp-block-columns.gw_two_lists,
  .gw_footer_cols {
    flex-direction: column;
  }
  .gw_legal {
    padding: 40px 20px !important;
  }
}

/* ---------- Greenway: fixes after the first look ---------- */
.home .header_area {
  background-color: #fff;
}
.gw_area a:not(.wp-block-button__link),
.gw_area a:not(.wp-block-button__link):visited {
  color: #fff;
  text-decoration: none;
}
.gw_area a:not(.wp-block-button__link):hover {
  color: #fff;
  text-decoration: underline;
}
.page_content > .wp-block-columns.gw_area,
.gutenberg_area > .wp-block-columns.gw_area {
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;
}
.footer_area p a,
.footer_area p a:visited {
  text-decoration: none;
}

/* ---------- Greenway: fixes after the layout audit ---------- */
iframe.map {
  max-width: 100%;
}
.gw_split iframe.map {
  width: 100%;
  height: 320px;
  margin-top: 20px;
  border-radius: var(--gw-radius);
}
.gw_coupon .gw_price + h3,
.gw_icon_top + h3 {
  margin-top: 8px;
}
.card_row > .gw_card.gw_product {
  text-align: left;
}
.card_row > .gw_card.gw_product .wp-block-buttons {
  justify-content: flex-start;
}
.gw_product_icon {
  font-family: "Material Symbols Outlined";
  font-size: 90px !important;
  line-height: 1 !important;
  color: var(--main-color);
  height: 166px;
  margin: 0 0 18px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gw-mint);
}
.card_row > .gw_card.gw_product > .gw_product_icon {
  padding: 0;
}

.card_row > .gw_card > .gw_list.gw_compact {
  margin-left: 22px !important;
  margin-right: 22px !important;
}
.card_row > .gw_card > .gw_icon_top + h3 {
  margin-top: 10px;
}
