/*
Theme Name: "HappyNoteTheme"
Author: retotito
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

/* ========================================
   TABLE OF CONTENTS
   ========================================
   1. CSS Custom Properties (Variables)
   2. Font Imports
   3. Base Styles & Typography
   4. Layout Components
      - Header
      - Navigation
      - Main Content
      - Footer
   5. Interactive Elements
   6. Mobile/Responsive Styles
   7. Utility Classes
   ======================================== */

/* ========================================
   1. FONT IMPORTS
   ======================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');

/* ========================================
   2. CSS CUSTOM PROPERTIES (VARIABLES)
   ======================================== */
:root {
	--primary-brand-color: #02a89f;
	--transparent-background: rgba(255, 255, 255, 0.95);
	--site-max-width: 1280px;
	--menu-items-bg-color: transparent;
	--standard-box-shadow: -1px 0px 18px 0px rgba(0, 0, 0, 0.5);
	--text-color-primary: #5a5a5a;
	--text-color-white: #ffffff;
	--background-color-secondary: #fafafa;
	--border-radius-default: 0px;
}

/* ========================================
   3. BASE STYLES & TYPOGRAPHY
   ======================================== */

/* Reset and Base Styles */
* {
	font-family: "Inter", sans-serif;
	font-optical-sizing: auto;
	line-height: 1.2em;
	box-sizing: border-box;
}

body {
	margin: 0;
	background-image: url("images/background.jpg");
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-attachment: fixed;
}

/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 20px 0;
	color: var(--primary-brand-color);
	font-weight: 600;
	line-height: 1.2em;
}

h1 {
	font-size: 36px;
	font-weight: 900;
}

h1 > mark {
	font-weight: 900;
}

h2 {
	font-size: 30px;
}

h3 {
	font-size: 24px;
}

h4 {
	font-size: 20px;
}

p {
	font-size: 20px;
	line-height: 1.2em;
	margin-bottom: 10px;
	font-weight: 400;
	color: var(--text-color-primary);
}

a {
	font-size: 14px;
	line-height: 18px;
	color: var(--primary-brand-color);
	outline: none;
	border: none;
	text-decoration: none;
}

a:hover {
	cursor: pointer;
}

a img {
	outline: none;
	border: none;
}

button {
	outline: none;
	cursor: pointer;
}

.bmc-btn-text {
	color: var(--text-color-primary);
}

/* ========================================
   4. LAYOUT COMPONENTS
   ======================================== */

/* Main Wrapper */
#wrapper {
	display: block;
	max-width: 100%;
	margin: 0 auto;
}

/* Header Styles */
#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 50px;
	background-color: var(--transparent-background);
	box-shadow: var(--standard-box-shadow);
	-webkit-box-shadow: var(--standard-box-shadow);
	-moz-box-shadow: var(--standard-box-shadow);
	z-index: 3098;
}

#header_inner {
	position: relative;
	width: 100%;
	height: 100%;
	max-width: var(--site-max-width);
	margin: 0 auto;
}

/* Logo Styles */
#ti_logo {
	position: absolute;
	top: 10px;
	left: 20px;
	z-index: 3150;
}

#ti_icon_mobile {
	display: none;
	position: absolute;
	top: 25px;
	left: 20px;
	z-index: 3150;
}

#ti_logo img {
	width: auto;
	height: 30px;
}

/* Primary Navigation */
#primary-navigation {
	position: absolute;
	right: 0;
	top: 10px;
	display: inline-block;
	z-index: 3098;
}

.menu-item-has-children > a {
	cursor: default;
	pointer-events: none;
}




/* Mobile Menu Styles */
#mobile_nav_overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: var(--transparent-background);
	z-index: 4200;
}

.ti_mobile_menu_switch {
	width: 0;
}

.ti_mobile_menu_icon {
	position: absolute;
	top: 5px;
	right: 10px;
	display: none;
	z-index: 3220;
}

.ti_mobile_menu_icon button {
	width: 40px;
	height: 40px;
	outline: none;
}

.ti_mobile_menu_icon .dashicons {
	padding: 0;
	background-color: transparent;
	border: none;
	color: var(--primary-brand-color);
	cursor: pointer;
}

.ti_mobile_menu_icon .dashicons:before {
	font-size: 40px;
	width: 40px;
	height: 40px;
	line-height: 40px;
}

/* Main Content Styles */
#main {
	clear: both;
	overflow: hidden;
	min-height: calc(100vh - 60px);
}

#content {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: calc(100vh - 150px);
	margin: 60px 0 0 0;
}

/* Slider Styles */
.ti_top_slider {
	margin: -1px -1px 0 -1px;
	width: calc(100% + 2px);
}

/* Footer Styles */
#footer {
	padding: 20px 20px 0 20px;
	background-color: var(--text-color-primary);
	overflow: hidden;
}

#footer_wrapper {
	clear: both;
	overflow: hidden;
	width: calc(100% + 20px);
	max-width: var(--site-max-width);
	margin: 0 auto;
}

.ti_footer_item {
	float: left;
	width: calc(33.3% - 20px);
	margin: 0 10px 20px 10px;
	color: var(--text-color-white);
}

.ti_footer_item .widget-title {
	color: var(--text-color-white);
	font-size: 24px;
}

#footer_item_center {
	text-align: center;
}

#footer_item_right {
	text-align: right;
}

.ti_footer_item a {
	font-size: 14px;
	margin: 0;
	color: var(--text-color-white);
}

.ti_footer_item p {
	font-size: 14px;
	margin: 0;
	color: var(--text-color-white);
}

.zt_footer_link {
	font-size: 24px;
	line-height: 34px;
	text-decoration: none;
}

#menu-footer_menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

#mc4wp-form-1 {
	margin-top: 10px;
}

#lx_newsletter_email {
	padding: 3px 5px;
	color: var(--primary-brand-color);
}

#lx_newsletter_submit {
	margin-top: 5px;
	color: var(--text-color-white);
	background-color: var(--primary-brand-color);
	border: 1px solid var(--text-color-white);
	cursor: pointer;
}



/* ========================================
   5. INTERACTIVE ELEMENTS
   ======================================== */

/* Scroll to Top Button */
.ti_scroll_top_icon {
	display: none;
}

.ti_scroll_top_icon button {
	position: fixed;
	right: 0;
	bottom: 0;
	width: 40px;
	height: 40px;
	outline: none;
}

.ti_scroll_top_icon .dashicons {
	padding: 0;
	border: none;
	color: var(--primary-brand-color);
	background-color: var(--transparent-background);
	cursor: pointer;
}

.ti_scroll_top_icon .dashicons:before {
	font-size: 40px;
	width: 40px;
	height: 40px;
	line-height: 40px;
}

/* Animation Override for Breakdance */
.breakdance_free_version_hide_pro_element animation {
	opacity: 1 !important;
}

/* ========================================
   6. RESPONSIVE STYLES
   ======================================== */

/* Desktop Navigation Styles (881px and up) */
@media screen and (min-width: 881px) {
	#mobile_menu_wrapper {
		display: none;
	}

	#ti_main_menu .nav-menu {
		margin: 0 15px 0 0;
		height: 30px;
		padding: 0;
		border: none;
		list-style: none;
		display: block;
		position: relative;
		clear: both;
	}

	#ti_main_menu .nav-menu a {
		display: block;
		text-decoration: none;
		text-align: center;
	}

	#ti_main_menu .nav-menu > li {
		float: left;
		height: 34px;
		margin: 0 5px;
		background-color: var(--menu-items-bg-color);
		list-style: none;
		display: block;
		position: relative;
		border-radius: var(--border-radius-default);
	}

	#ti_main_menu .nav-menu > li > a {
		padding: 5px 10px;
		border-radius: var(--border-radius-default);
	}

	/* Dropdown Menus */
	#ti_main_menu .nav-menu ul {
		position: absolute;
		top: 34px;
		left: 0;
		z-index: 3100;
		margin: 0;
		padding: 0;
		list-style: none;
		display: none;
		overflow: hidden;
		border-radius: var(--border-radius-default);
	}

	#ti_main_menu .nav-menu > li > ul > li {
		background-color: var(--text-color-white);
	}

	#ti_main_menu .nav-menu > li > ul > li:nth-child(odd) {
		background-color: var(--background-color-secondary);
	}

	#ti_main_menu .nav-menu > li > ul > li > a {
		padding: 5px 10px;
		padding-right: 40px;
		text-align: left;
		white-space: nowrap;
	}

	#ti_main_menu .nav-menu > li > ul > li > ul {
		position: relative;
		top: -23px;
		left: 100px;
		padding: 0;
	}

	#ti_main_menu .nav-menu > li > ul > li > ul > li {
		padding: 5px 0;
		width: 100%;
	}

	/* Hover and Active States */
	#ti_main_menu .nav-menu ul li.ti_hovered {
		background-color: var(--primary-brand-color);
	}

	#ti_main_menu .nav-menu li:hover > ul {
		display: block;
		box-shadow: var(--standard-box-shadow);
	}

	#ti_main_menu .nav-menu li:hover > a {
		background-color: var(--primary-brand-color);
		color: var(--text-color-white);
	}

	#ti_main_menu .nav-menu li.current_page_ancestor > a {
		color: var(--text-color-white);
	}

	#ti_main_menu .current-menu-parent > a,
	#ti_main_menu .current-menu-parent > ul li.current-menu-item a,
	#ti_main_menu .nav-menu li.current_page_item > a {
		background-color: var(--primary-brand-color);
		color: var(--text-color-white);
	}

	.ti_main_menu_toggle {
		display: none !important;
		width: 1px;
	}

	/* Language Switcher */
	#ti_main_menu .current-lang {
		background-color: var(--text-color-white) !important;
	}

	#ti_main_menu .current-lang a {
		pointer-events: none;
	}

	.lang-item a {
		background-color: var(--text-color-white) !important;
		background-image: none !important;
		padding-right: 0 !important;
	}

	.lang-item {
		margin-right: 0 !important;
	}
}

/* Mobile Navigation Styles */
#primary-navigation-mobile {
	display: none;
}

/* Mobile Styles (880px and below) */
@media screen and (max-width: 880px) {
	#primary-navigation {
		display: none;
	}

	#primary-navigation-mobile {
		display: block;
	}

	#wrapper {
		overflow: hidden;
	}

	.ti_mobile_menu_switch {
		width: 1px;
	}

	.ti_mobile_menu_icon {
		display: block;
	}

	.ti_mobile_menu_icon[status="opened"] > .open_mobile_menu {
		display: none;
	}

	.ti_mobile_menu_icon[status="closed"] > .close_mobile_menu {
		display: none;
	}

	#ti_main_menu-mobile {
		position: absolute;
		top: 0;
		right: -400px;
		z-index: 3200;
		padding: 40px 20px 0 20px;
		background-color: var(--text-color-white);
		box-shadow: var(--standard-box-shadow);
		-webkit-box-shadow: var(--standard-box-shadow);
		-moz-box-shadow: var(--standard-box-shadow);
	}

	#ti_main_menu-mobile * {
		padding: 0;
		list-style: none;
		text-decoration: none;
		color: var(--primary-brand-color);
	}

	#ti_main_menu-mobile a {
		white-space: nowrap;
	}

	#ti_main_menu-mobile li {
		position: relative;
	}

	#ti_main_menu-mobile li a {
		margin-right: 30px;
		padding: 0 5px;
		font-size: 20px;
		line-height: 40px;
	}

	#ti_main_menu-mobile > div > ul > li > a {
		font-weight: bold;
	}

	#ti_main_menu-mobile li ul {
		display: none;
		margin-left: 15px;
	}

	#menu-main_menu-mobile > li > ul {
		display: none;
		margin-left: 10px;
	}

	#menu-main_menu-mobile > li > ul > li > ul {
		display: none;
		margin-left: 10px;
	}

	.ti_main_menu_toggle {
		position: absolute;
		top: 0;
		right: 10px;
		width: 20px;
		text-align: center;
		cursor: pointer;
	}

	.ti_main_menu_toggle span {
		font-size: 28px;
		font-weight: bold;
		line-height: 40px;
		color: green !important;
	}

	/* Mobile Footer */
	.ti_footer_item {
		float: none;
		width: calc(100% - 20px);
		margin-bottom: 20px;
		text-align: center;
	}

	#footer_item_right {
		text-align: center;
	}

	.ti_footer_item_inner {
		display: block;
	}

	/* Mobile Contact Styles */
	.lx_contact_left {
		float: left;
		width: calc(100% - 20px);
		margin: 0 10px 20px 10px;
	}

	.lx_contact_left iframe {
		height: 45vw;
		margin-top: 20px;
	}

	.lx_contact_right {
		float: left;
		width: calc(100% - 20px);
		margin: 0 10px 20px 10px;
	}
}

/* Small Mobile Styles (600px and below) */
@media screen and (max-width: 600px) {
	.ti_600 {
		width: 1px;
	}
}

/* Extra Small Mobile Styles (380px and below) */
@media screen and (max-width: 380px) {
	#ti_main_menu li a {
		font-size: 18px;
	}
}

/* ========================================
   7. UTILITY CLASSES
   ======================================== */

/* Commented out utility class - uncomment if needed
.ti_overflow_hidden {
	overflow: hidden !important;
}
*/