/**
 * Theme Name:        Cornerstone 5th Addition Duplexes
 * Theme URI:         https://keymgmt.com
 * Description:       Custom theme designed for Cornerstone 5th Addition Duplexes of Andover, Kansas
 * Version:           1.0.0
 * Author:            Jason Lewis
 * Author URI:        https://keymgmt.com
 **/


/* FONT IMPORT */


@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&family=Merriweather:ital,opsz,wght@0,18..144,300..900;1,18..144,300..900&family=Special+Elite&display=swap');


/* CSS RESET */


* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


/* REDEFINIED HTML TAGS */


html {
	scroll-behavior: smooth;
}
body {
  	overflow-x: hidden;
}
body {
	background-image:url(/wp-content/themes/cornerstone5thduplexes/img/geometric-background.jpeg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-attachment: fixed;
}
@media screen and (max-width: 1200px) {
body {
	padding-top: 0;
}
}
h1, h2, h3, h4, h5, h6 {
	font-family: "Merriweather", serif;
}
div, p, li, label, input, select, textarea {
	font-family: "IBM Plex Sans", sans-serif;
	font-size: 1.3rem;
	font-weight: 400;
}
@media screen and (max-width: 480px) {
div, p, li, label, input, select, textarea {
	font-family: "IBM Plex Sans", sans-serif;
	font-size: 1rem;
	font-weight: 400;
}
h1 {
	font-size: 2.25rem !important;
}
h2 {
	font-size: 2rem !important;
}
h3 {
	font-size: 1.75rem !important;
}
}
h1, h2, h3, h4, h5, h6, p {
	margin-bottom: 24px;
}
h1 {
	font-size: 2.5rem;
}
h2 {
	font-size: 2.25rem;
}
h3 {
	font-size: 2rem;
}
a {
	color: #008a7a;
	text-decoration: none;
}
a:hover {
	color: #8a7a00;
	text-decoration: underline;
}
ul, ol {
	margin: 0 0 32px 0;
}
li {
	margin: 0 0 0 32px;
	list-style: none;
}
label {
  display: block;
  padding-bottom: 6px;
}


/* LUXURY LIST STYLES */


.luxury-list {
	list-style: none;
	padding: 0;
	margin: 0;
	}
.luxury-list li {
	position: relative;
	padding-left: 10px;
	margin-bottom: 24px;
	line-height: 1.3;
	}
.luxury-list li > ul > li {
	position: relative;
	margin-left: 24px;
	margin-top: 20px;
	margin-bottom: 24px;
	line-height: 1.3;
}
.luxury-list li:before {
	content: "✓";
	position: absolute;
	left: -24px;
	top: 4px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #8a7a00;
	color: #FFF;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 600;
	box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.luxury-list li > ul > li:before {
	content: "➙";
	position: absolute;
	left: -24px;
	top: 4px;
	width: 20px;
	height: 20px;
	border-radius: 25%;
	background: #206a5f;
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 600;
	box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.ll-ul {
	margin:0 0 32px 16px;
}
@media (max-width: 1200px) {
.luxury-list li::before {
	top: 2px;
}
}


/* MOBILE MENU */


.custom-mobile-nav {
  display: none;
}
@media (max-width: 1200px) {
.custom-mobile-nav {
	z-index: 10000;
    position: fixed;
    top: 5px;
    right: 5px;
    display: block;
}
.hamburger {
    width: 30px;
    height: 30px;
    background: none;
    border: 0;
    cursor: pointer;
    position: relative;
    margin: 5px 5px 0 0;
    z-index: 1001;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
	opacity:0.5;
}
.hamburger span {
    height: 4px;
    width: 100%;
    background: #000;
    transition: transform .3s ease, opacity .3s ease;
}
.mobile-menu {
    position: fixed;
    inset: 0;
    background: #fff;
    padding: 20px 15px;
    box-shadow: -5px 0 15px rgba(0,0,0,0.1);
    z-index: 1000;
    transform: translateY(-100%);
    transition: transform .3s ease;
}
.mobile-menu.active {
    transform: translateY(0);
}
.mobile-menu-logo {
    text-align: center;
    margin: 24px 0;
}
.mobile-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
}
.mobile-menu-list ul, ol {
    margin: 0;
}
.mobile-menu-list li {
	list-style: none;
    margin: 0 0 12px 0;
}	
.mobile-menu-list a {
	text-decoration: none;
	font-size: 1.5rem;
	color: #206a5f;
}
.mobile-menu-list a:hover {
	color: #000000;
	text-decoration: underline;
}	
	
.hamburger.active span:nth-child(1) {
    transform: rotate(45deg) translate(7px, 7px);
}
.hamburger.active span:nth-child(2) {
    opacity: 0;
}
.hamburger.active span:nth-child(3) {
    transform: rotate(-45deg) translate(6px, -6px);
}
}


/* CUSTOM IDs */


#site-content {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 10px;
}
#logo-navigation {
	position: fixed !important;
	top: 0;
	left: 7px !important;
	width: 100%;
	max-width: 100%;
	z-index: 9999;
	border-bottom: 5px solid #8a7a00;
}
@media screen and (max-width: 1200px) {
#logo-navigation {
	position: relative !important;
	top: 0;
	left: -3px !important;
	border-bottom: none;
}
}
#desktop-navigation {
	background-color: #FFF;
	text-align:right;
	height: 125px;
}
#desktop-navigation div {
	height: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	margin: 5px 0;
	padding: 0;
}
#desktop-navigation ul, ol {
	margin: 0;
}
#desktop-navigation li {
	list-style: none;
	display: inline;
	margin: 0 5px;
}
#desktop-navigation a {
	text-decoration: none;
	font-size: 1.3rem;
	color: #206a5f;
}
#desktop-navigation a:hover {
	color: #000000;
	text-decoration: underline;
}
@media screen and (max-width: 1200px) {
#desktop-navigation {
	display: none;
}
}
#featured-media {
	margin-top: 142px;
	border-bottom: 0 !important;
}
@media screen and (max-width: 1200px) {
#featured-media {
	margin-top: 0px;
}
}
#site-footer {
	position: relative;
	padding: 0 0 32px 0;
	width: 100%;
	background-color: #333;
	color: #ccc;
}
#site-footer p {
	font-size: 0.75rem;
}
#site-footer a {
	color: #fff;
	text-decoration: underline;
}
#site-footer a:hover {
	color: #fff;
	text-decoration: none;
}


/* CUSTOM CLASSES */


.site-logo {
	width: 100%;
	height: auto;
	max-width: 750px;
	margin: 0 auto;
}
@media screen and (max-width: 1200px) {
.site-logo {
	width: 80%;
	height: auto;
	padding: 0 auto;
}
}
.image-box {
	margin: 0 0 32px 0;
	padding: 0 10px !important;
}
.rental-rate {
	font-family: "Special Elite", system-ui;
	font-size: 3rem;
	font-weight: 400;
	margin:12px 0 8px 0;
}
.rental-rate-fs {
	font-family: "Special Elite", system-ui;
	font-size: 3rem;
	font-weight: 400;
	padding:10px 0 0 0;
}
.vc_do_pricing_table {
	padding: 0px !important;
	background-color: transparent !important;
}
.wpb-plan-title {
	font-family: "Special Elite", system-ui;
    margin: 0 0 10px;
    text-align: center;
}
.wpb-plan-description {
	font-family: "Special Elite", system-ui;
    margin: 32px 0 12px 0 !important;
    text-align: center;
}
.wpb-currency, .wpb-period {
	display:none;
}
.wpb-price-container {
	font-family: "Special Elite", system-ui;
	font-size: 3rem;
    padding: 0  0 32px 0 !important;
    text-align: center;
    color: #333;
}
.wpb-plan-features {
	margin:0 0 32px 0 !important;
}
.wpb-plan-features li {
	margin:0 0 6px 12px;
}
.icon-text {
	margin: 0 0 0 25px;
	display: flex;
	align-items: flex-start;
	gap: 7.5px;
}
.icon-text i {
	font-size: 3rem;
	color: #333333;
}
.icon-text .fa-text {
	float: left;
	display: inline-flex;
	align-items: center;
	height: 3rem;
	vertical-align: middle;
	margin: 0;
}
.grecaptcha-badge {
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
}
:target {
  scroll-margin-top: 137px;
}
@media screen and (max-width: 480px) {
:target {
  scroll-margin-top: 4px;
}
}


/* FORM STYLING */


.cf7-two-column {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 5px 15px;
}
.cf7-two-column p {
	margin-bottom: 5px;
}
.cf7-field {
	width: 100%;
}
.cf7-field.full-width {
	grid-column: 1 / -1;
}
.cf7-two-column input,
.cf7-two-column textarea {
	width: 100%;
	padding: 12px;
	box-sizing: border-box;
	opacity: 0.7;
}
.cf7-two-column textarea {
	min-height: 140px;
}
.cf7-two-column input[type="submit"] {
	width: 180px;
	margin:6px 0 0 0;
	padding: 12px 20px;
	cursor: pointer;
	background-color:#333;
	color:#fff;
	opacity: 1;
}
.cf7-two-column input[type="submit"]:hover {
	background-color:#000;
	transition: background-color 0.5s ease 0.1s;
}
@media (max-width: 768px) {
.cf7-two-column {
	grid-template-columns: 1fr;
  }
.cf7-field.full-width {
	grid-column: auto;
  }
}


/* CONTACT FORM 7 VALIDATION */


.wpcf7-not-valid-tip {
	color: #b42318;
	font-size: 14px;
	margin-top: 3px;
	display: block;
}
.wpcf7-not-valid {
	border: 1px solid #f04438 !important;
	background-color: #fef3f2;
}
.wpcf7-response-output {
	border-radius: 8px;
	padding: 12px 16px !important;
	margin: 20px 0 0;
	font-size: 1rem;
	text-align: center;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	background-color: #fef3f2;
	border: 1px solid #f04438;
	color: #7a271a;
}
.wpcf7 form.sent .wpcf7-response-output {
	background-color: #ecfdf3;
	border: 1px solid #12b76a;
	color: #065f46;
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
	background-color: #fffbeb;
	border: 1px solid #f59e0b;
	color: #78350f;
}
.wpcf7 input,
.wpcf7 textarea {
	transition: border 0.2s ease, box-shadow 0.2s ease;
}
.wpcf7 input:focus,
.wpcf7 textarea:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
	outline: none;
}