/**
 * Jexi Product Tabs — frontend CSS v1.0.1
 *
 * Vertical stacked tabs with line-drawn icons and chevron, opening into a
 * slide-in drawer panel from the right. Editorial navy/ivory palette.
 *
 * v1.0.1 changes:
 *  - Force left-align on tabs to defeat parent text-align: center
 *  - Bigger Huntsman-style tab labels (20px serif)
 *  - Defeat theme button styles on close button (the pink one)
 *  - Defeat theme heading underlines and strong styling inside content
 *  - Panel width 40vw (up from 50)
 *  - Tighter content padding for better centering
 */

/* ============================================
   ROOT — defeat parent text-align overrides
   ============================================ */

.jexi-pt,
.jexi-pt * {
	box-sizing: border-box;
}

.jexi-pt {
	position: relative;
	width: 100%;
	text-align: left !important;
}

/* ============================================
   TABS — vertical stack, larger Huntsman-style
   ============================================ */

.jexi-pt-tabs {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	border-top: 1px solid rgba(14, 26, 43, 0.15) !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
}

/* Tab buttons — defeat all theme button styles */
.jexi-pt-tabs .jexi-pt-tab,
button.jexi-pt-tab {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 16px !important;
	width: 100% !important;
	padding: 22px 4px !important;
	margin: 0 !important;
	border: none !important;
	border-bottom: 1px solid rgba(14, 26, 43, 0.15) !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	cursor: pointer !important;
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif !important;
	font-size: 20px !important;
	font-weight: 500 !important;
	letter-spacing: 0.2px !important;
	line-height: 1.2 !important;
	color: #0e1a2b !important;
	text-align: left !important;
	text-transform: none !important;
	text-decoration: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	transition: background 0.2s ease, padding 0.2s ease !important;
}

.jexi-pt-tabs .jexi-pt-tab:hover,
button.jexi-pt-tab:hover {
	background: rgba(14, 26, 43, 0.025) !important;
	background-color: rgba(14, 26, 43, 0.025) !important;
	color: #0e1a2b !important;
	padding-left: 10px !important;
}

.jexi-pt-tabs .jexi-pt-tab:focus,
.jexi-pt-tabs .jexi-pt-tab:focus-visible {
	outline: 1px solid #c4a55c !important;
	outline-offset: -2px !important;
}

.jexi-pt-tab__icon {
	flex-shrink: 0 !important;
	width: 24px !important;
	height: 24px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: #c4a55c !important;
}

.jexi-pt-tab__icon svg {
	width: 100% !important;
	height: 100% !important;
	display: block !important;
}

.jexi-pt-tab__label {
	flex: 1 1 auto !important;
	text-align: left !important;
	color: #0e1a2b !important;
}

.jexi-pt-tab__chevron {
	flex-shrink: 0 !important;
	width: 18px !important;
	height: 18px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: rgba(14, 26, 43, 0.5) !important;
	transition: transform 0.2s ease, color 0.2s ease !important;
}

.jexi-pt-tab__chevron svg {
	width: 100% !important;
	height: 100% !important;
	display: block !important;
}

.jexi-pt-tab:hover .jexi-pt-tab__chevron {
	color: #0e1a2b !important;
	transform: translateX(3px) !important;
}

/* ============================================
   OVERLAY — soft dim behind panel
   ============================================ */

.jexi-pt-overlay {
	position: fixed !important;
	inset: 0 !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	background: rgba(14, 26, 43, 0.18) !important;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.32s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.32s;
	z-index: 99998;
	cursor: pointer;
}

.jexi-pt-overlay.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.32s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0s;
}

/* ============================================
   PANEL — slides in from right, 40% wide
   ============================================ */

.jexi-pt-panel {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	height: 100vh;
	height: 100dvh;
	width: 40vw !important;
	max-width: 640px !important;
	min-width: 420px !important;
	background: #f5f2eb !important;
	z-index: 99999;
	display: flex !important;
	flex-direction: column !important;
	transform: translateX(100%);
	transition: transform 0.4s cubic-bezier(0.32, 0.72, 0, 1);
	box-shadow: -8px 0 32px rgba(14, 26, 43, 0.1);
	visibility: hidden;
	text-align: left !important;
}

.jexi-pt-panel.is-open {
	transform: translateX(0);
	visibility: visible;
}

.jexi-pt-panel__header {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: 28px 36px 22px !important;
	border-bottom: 1px solid rgba(14, 26, 43, 0.12) !important;
	flex-shrink: 0 !important;
	position: relative !important;
	background: transparent !important;
	margin: 0 !important;
}

.jexi-pt-panel__header::after {
	content: '';
	position: absolute;
	left: 36px;
	bottom: -1px;
	width: 40px;
	height: 1px;
	background: #c4a55c;
}

.jexi-pt-panel__title {
	margin: 0 !important;
	padding: 0 !important;
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif !important;
	font-size: 28px !important;
	font-weight: 500 !important;
	letter-spacing: 0.2px !important;
	color: #0e1a2b !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	text-decoration: none !important;
	border: none !important;
	background: transparent !important;
}

/* CLOSE BUTTON — defeat all theme button styles */
.jexi-pt-panel .jexi-pt-panel__close,
.jexi-pt-panel button.jexi-pt-panel__close,
button.jexi-pt-panel__close {
	flex-shrink: 0 !important;
	width: 40px !important;
	height: 40px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	color: #0e1a2b !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: inherit !important;
	font-family: inherit !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	transition: background 0.2s ease !important;
}

.jexi-pt-panel .jexi-pt-panel__close:hover,
button.jexi-pt-panel__close:hover {
	background: rgba(14, 26, 43, 0.07) !important;
	background-color: rgba(14, 26, 43, 0.07) !important;
	color: #0e1a2b !important;
}

.jexi-pt-panel .jexi-pt-panel__close:focus-visible {
	outline: 1px solid #c4a55c !important;
	outline-offset: 2px !important;
}

.jexi-pt-panel__close svg {
	width: 22px !important;
	height: 22px !important;
	display: block !important;
}

.jexi-pt-panel__body {
	flex: 1 1 auto !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	padding: 32px 36px 40px !important;
	color: #2b2b2b !important;
	font-family: 'Inter', system-ui, sans-serif !important;
	font-size: 15px !important;
	line-height: 1.7 !important;
	text-align: left !important;
	-webkit-overflow-scrolling: touch;
}

/* ============================================
   CONTENT INSIDE PANEL — defeat theme bleed
   ============================================ */

.jexi-pt-panel__content {
	text-align: left !important;
	color: #2b2b2b !important;
}

.jexi-pt-panel__content > *:first-child {
	margin-top: 0;
}

.jexi-pt-panel__content > *:last-child {
	margin-bottom: 0;
}

/* Headings inside the panel — defeat theme color/decoration overrides only.
   Layout (margin, padding, font-size) is left to embedded styles. */
.jexi-pt-panel__content h1,
.jexi-pt-panel__content h2,
.jexi-pt-panel__content h3,
.jexi-pt-panel__content h4,
.jexi-pt-panel__content h5,
.jexi-pt-panel__content h6 {
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	font-weight: 500;
	color: #0e1a2b !important;
	margin: 1.6em 0 0.6em;
	padding: 0;
	letter-spacing: 0.2px;
	line-height: 1.3;
	text-decoration: none !important;
	text-transform: none !important;
	border: none !important;
	background: transparent !important;
}

.jexi-pt-panel__content h2 { font-size: 22px; }
.jexi-pt-panel__content h3 { font-size: 19px; }
.jexi-pt-panel__content h4 { font-size: 17px; }

.jexi-pt-panel__content p {
	margin: 0 0 1.2em;
	color: #2b2b2b;
	font-family: 'Inter', system-ui, sans-serif;
	line-height: 1.7;
	text-decoration: none !important;
}

/* Strong — defeat theme pink underline */
.jexi-pt-panel__content strong,
.jexi-pt-panel__content b {
	font-weight: 600 !important;
	color: #0e1a2b !important;
	text-decoration: none !important;
	border-bottom: none !important;
	background: transparent !important;
}

.jexi-pt-panel__content em,
.jexi-pt-panel__content i {
	font-style: italic !important;
}

.jexi-pt-panel__content ul,
.jexi-pt-panel__content ol {
	margin: 0 0 1.2em;
	padding-left: 22px;
	list-style: revert;
}

.jexi-pt-panel__content li {
	margin-bottom: 0.4em;
	color: #2b2b2b;
}

.jexi-pt-panel__content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1em 0 1.5em;
}

.jexi-pt-panel__content a {
	color: #0e1a2b !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	text-decoration-thickness: 1px !important;
	background: transparent !important;
}

.jexi-pt-panel__content a:hover {
	color: #c4a55c !important;
}

/* ============================================
   MOBILE
   ============================================ */

@media (max-width: 1024px) {
	.jexi-pt-panel {
		width: 60vw !important;
		min-width: 380px !important;
	}
}

@media (max-width: 768px) {
	.jexi-pt-tabs .jexi-pt-tab,
	button.jexi-pt-tab {
		padding: 18px 4px !important;
		font-size: 17px !important;
	}

	.jexi-pt-tab__icon {
		width: 22px !important;
		height: 22px !important;
	}

	.jexi-pt-panel {
		width: 100vw !important;
		max-width: 100vw !important;
		min-width: 0 !important;
	}

	.jexi-pt-panel__header {
		padding: 20px 22px 16px !important;
	}

	.jexi-pt-panel__header::after {
		left: 22px;
	}

	.jexi-pt-panel__title {
		font-size: 22px !important;
	}

	.jexi-pt-panel__body {
		padding: 24px 22px 32px !important;
		font-size: 14px !important;
	}
}

/* Lock body scroll when panel open */
body.jexi-pt-locked {
	overflow: hidden !important;
}
