/**
 * Jisento — Layout
 * Containers, structural grids, header/footer skeleton.
 * No color/typography decisions here beyond what's needed for structure.
 */

/* -----------------------------------------------------------
   Containers
----------------------------------------------------------- */

.jisento-container {
	width: 100%;
	max-width: var(--jisento-container);
	margin-inline: auto;
	padding-inline: var(--jisento-container-padding);
}

.jisento-container-narrow {
	max-width: var(--jisento-container-narrow);
}

.jisento-container-wide {
	max-width: var(--jisento-container-wide);
}

/* -----------------------------------------------------------
   Site shell
----------------------------------------------------------- */

.jisento-site-content {
	position: relative;
	z-index: 1;
	min-height: 40vh;
}

.jisento-main {
	padding-block: var(--jisento-space-7);
}

.jisento-page-main,
.jisento-single-main {
	padding-block: var(--jisento-space-6);
}

/* -----------------------------------------------------------
   Header
----------------------------------------------------------- */

.jisento-header {
	position: sticky;
	top: 0;
	z-index: var(--jisento-z-header);
	overflow: visible;
	background: transparent;
	border-bottom: 1px solid transparent;
	transition:
		background-color var(--jisento-duration-base) var(--jisento-ease),
		border-color var(--jisento-duration-base) var(--jisento-ease),
		box-shadow var(--jisento-duration-base) var(--jisento-ease);
}

.jisento-header.is-scrolled {
	background: var(--jisento-glass-strong);
	backdrop-filter: blur(20px);
	border-bottom-color: var(--jisento-border);
	box-shadow: var(--jisento-shadow-sm);
}

.jisento-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--jisento-space-4);
	min-height: 64px;
	transition: min-height var(--jisento-duration-base) var(--jisento-ease);
}

.jisento-header.is-scrolled .jisento-header-inner {
	min-height: 56px;
}

.jisento-branding {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.jisento-primary-nav {
	flex: 1;
	display: flex;
	justify-content: center;
}

.jisento-primary-menu-container,
.jisento-footer-menu-container {
	width: 100%;
}

.jisento-primary-menu {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2rem;
	margin: 0;
	padding: 0;
}

.jisento-primary-menu > li > a {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0;
	color: var(--jisento-muted);
	font-family: var(--jisento-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0;
	transition: color var(--jisento-duration-fast) var(--jisento-ease);
}

.jisento-primary-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.45rem;
	width: auto;
	height: 2px;
	background: var(--jisento-primary);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform var(--jisento-duration-fast) var(--jisento-ease);
}

.jisento-primary-menu > li > a:hover,
.jisento-primary-menu > li > a:focus-visible {
	color: var(--jisento-text);
}

.jisento-primary-menu > li.current-menu-item > a,
.jisento-primary-menu > li.current_page_item > a {
	color: var(--jisento-muted);
}

.jisento-primary-menu > li > a:hover::after,
.jisento-primary-menu > li > a:focus-visible::after {
	transform: scaleX(1);
}

.jisento-primary-menu > li.current-menu-item > a::after,
.jisento-primary-menu > li.current_page_item > a::after {
	transform: scaleX(0);
}

.jisento-header-actions {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.jisento-header .jisento-header-cta--mobile {
	display: none !important;
}

.jisento-primary-menu li {
	position: relative;
}

.jisento-primary-menu > li > ul {
	list-style: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	margin: 0;
	padding: var(--jisento-space-2);
	background: var(--jisento-bg);
	border: 1px solid var(--jisento-border);
	border-radius: var(--jisento-radius-md);
	box-shadow: var(--jisento-shadow-md);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition:
		opacity var(--jisento-duration-base) var(--jisento-ease),
		transform var(--jisento-duration-base) var(--jisento-ease),
		visibility var(--jisento-duration-base) var(--jisento-ease);
}

.jisento-primary-menu > li:hover > ul,
.jisento-primary-menu > li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.jisento-menu-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--jisento-border);
	border-radius: var(--jisento-radius-pill);
	cursor: pointer;
}

.jisento-menu-toggle-bar {
	display: block;
	width: 20px;
	height: 2px;
	margin-inline: auto;
	background: var(--jisento-dark);
	transition: transform var(--jisento-duration-base) var(--jisento-ease), opacity var(--jisento-duration-base) var(--jisento-ease);
}

/* -----------------------------------------------------------
   Footer
----------------------------------------------------------- */

.jisento-footer {
	position: relative;
	z-index: 1;
	background: rgba(243, 246, 250, 0.7);
	backdrop-filter: blur(20px);
	color: var(--jisento-text);
	padding-block: 3.5rem 0;
	margin-top: 0;
	border-top: 1px solid var(--jisento-border);
}

.jisento-footer-inner {
	display: grid;
	grid-template-columns: 1.3fr 0.7fr 0.7fr;
	gap: 2.5rem;
	align-items: start;
}

.jisento-footer-inner--fluxi {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	column-gap: 2rem;
	row-gap: 2rem;
}

.jisento-footer-inner--fluxi .jisento-footer-branding {
	grid-column: 1 / 3;
	grid-row: 1;
}

.jisento-footer-social {
	grid-column: 4 / 6;
	grid-row: 1;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.jisento-footer-inner--fluxi .jisento-footer-nav,
.jisento-footer-newsletter {
	grid-row: 2;
}

.jisento-footer-heading {
	margin: 0 0 1rem;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--jisento-dark);
}

.jisento-footer-legal {
	display: flex;
	gap: 1.25rem;
	margin: 0;
}

.jisento-footer-legal a {
	color: var(--jisento-muted);
	font-size: 0.8125rem;
}

.jisento-footer-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--jisento-space-2);
}

.jisento-footer-bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--jisento-space-3);
	border-top: 1px solid var(--jisento-border);
	margin-top: 0;
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
}

.jisento-footer-widgets {
	margin-top: var(--jisento-space-6);
}

.jisento-404-main {
	padding: 0;
}

.jisento-elementor-main {
	padding: 0;
}

body.jisento-built-with-elementor .jisento-page-main,
body.jisento-elementor-canvas .jisento-page-main {
	padding: 0;
}

/* -----------------------------------------------------------
   Blog / archive grid
----------------------------------------------------------- */

.jisento-post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--jisento-space-5);
}

.jisento-no-sidebar .jisento-post-grid {
	grid-template-columns: repeat(3, 1fr);
}

/* When a sidebar is present, switch to a two-column content area. */
body:not(.jisento-no-sidebar) .jisento-main > .jisento-container {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: var(--jisento-space-6);
	align-items: start;
}

body:not(.jisento-no-sidebar) .jisento-post-grid {
	grid-template-columns: repeat(2, 1fr);
}

.jisento-sidebar {
	display: flex;
	flex-direction: column;
	gap: var(--jisento-space-5);
}

/* -----------------------------------------------------------
   404
----------------------------------------------------------- */

.jisento-404-content {
	text-align: center;
	padding-block: var(--jisento-space-8);
}

.jisento-404-search {
	margin-top: var(--jisento-space-5);
	max-width: 420px;
	margin-inline: auto;
}
