/* ==========================================================================
   ARKHASH LIGHT — APPLE-INSPIRED UI COMPONENT LIBRARY
   Frosted glass cards, pill glow CTAs, comparison tables, code blocks,
   hero sections, pricing cards, FAQ accordion, dual-path layout.
   ========================================================================== */

/* ---- Full-width pages, hidden page titles -----------------------------
   Twenty Twenty-Five constrains the entry content to its theme.json
   contentSize/wideSize and renders a Post Title block above it. Since
   every section on these pages manages its own width via .ark-container,
   we remove the outer constraint and hide the auto-generated title so
   our full-bleed hero/section backgrounds run edge-to-edge like Apple.com.
   ------------------------------------------------------------------------ */
:root {
	--wp--style--global--content-size: 100% !important;
	--wp--style--global--wide-size: 100% !important;
}

.page .wp-block-post-title,
.page .entry-title,
.single .wp-block-post-title {
	display: none !important;
}

/* The title's wrapping group still carries Twenty Twenty-Five's global
   top padding (theme.json spacing), which left an empty band above the
   hero even after the title text itself was hidden. Collapse it. */
main.wp-block-group > .wp-block-group.alignfull.has-global-padding.is-layout-constrained,
.wp-block-group:has(> .wp-block-post-title) {
	padding-top: 0 !important;
}

.entry-content,
.wp-block-post-content {
	max-width: 100% !important;
}

/* Guard our own content container against the full-width rule above —
   .ark-container must keep its intentional 1200px cap and stay centered
   even though it sits inside a now-unconstrained entry-content wrapper. */
.ark-container {
	max-width: var(--ark-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

body.page main,
body.page .wp-block-group.entry-content,
body.page .wp-block-post-content {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* ---- Layout helpers -------------------------------------------------- */
.ark-container {
	max-width: var(--ark-container);
	margin: 0 auto;
	padding: 0 24px;
}

.ark-section {
	padding: 100px 0;
}

.ark-section-tight {
	padding: 64px 0;
}

.ark-section-alt {
	background: var(--ark-bg-secondary);
}

.ark-eyebrow {
	display: inline-block;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--ark-blue);
	background: var(--ark-accent-soft);
	border: 1px solid rgba(0, 113, 227, 0.16);
	padding: 6px 16px;
	border-radius: var(--ark-radius-pill);
	margin-bottom: 22px;
}

.ark-gradient-text {
	background: var(--ark-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.ark-subheadline {
	font-size: clamp(1.05rem, 1.6vw, 1.25rem);
	color: var(--ark-text-secondary);
	max-width: 680px;
	margin: 0 auto 40px;
	line-height: 1.55;
}

/* ---- Hero -------------------------------------------------------------- */
.ark-hero {
	position: relative;
	padding: 130px 0 100px;
	text-align: center;
	overflow: hidden;
	background:
		radial-gradient(circle at 50% -10%, rgba(0,113,227,0.08) 0%, transparent 55%),
		var(--ark-bg);
}

.ark-hero h1 {
	font-size: clamp(2.6rem, 5.2vw, 4.25rem);
	line-height: 1.05;
	margin-bottom: 22px;
	font-weight: 650;
}

.ark-hero-ctas {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}

/* ---- Buttons (Apple pill style) ------------------------------------------ */
.ark-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 30px;
	border-radius: var(--ark-radius-pill);
	font-weight: 500;
	font-size: 16px;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
	cursor: pointer;
	border: 1px solid transparent;
}

.ark-btn-glow {
	background: var(--ark-blue);
	color: #fff;
	box-shadow: var(--ark-shadow-glow);
}

.ark-btn-glow:hover {
	background: var(--ark-blue-hover);
	transform: translateY(-1px);
	box-shadow: 0 10px 28px rgba(0, 113, 227, 0.36);
	color: #fff;
}

.ark-btn-outline {
	background: rgba(0,0,0,0.03);
	color: var(--ark-text);
	border-color: var(--ark-border-strong);
}

.ark-btn-outline:hover {
	border-color: var(--ark-text);
	background: rgba(0,0,0,0.05);
	transform: translateY(-1px);
}

/* ---- Glassmorphism cards ------------------------------------------------ */
.ark-card {
	background: var(--ark-glass-bg);
	border: 1px solid var(--ark-glass-border);
	border-radius: var(--ark-radius);
	padding: 34px;
	backdrop-filter: blur(20px) saturate(180%);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	box-shadow: var(--ark-shadow-card);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ark-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ark-shadow-hover);
}

.ark-card .ark-card-icon {
	width: 48px;
	height: 48px;
	border-radius: var(--ark-radius-sm);
	background: var(--ark-accent-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	font-size: 22px;
}

.ark-card h3 {
	font-size: 1.2rem;
	margin-bottom: 10px;
}

.ark-card p {
	color: var(--ark-text-secondary);
	margin: 0;
}

/* Grid helper for card groups */
.ark-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.ark-grid-2 {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 782px) {
	.ark-grid-2 { grid-template-columns: 1fr; }
}

/* ---- Dual path split section -------------------------------------------- */
.ark-dual-path {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border: 1px solid var(--ark-border);
	border-radius: var(--ark-radius-lg);
	overflow: hidden;
	background: #fff;
	box-shadow: var(--ark-shadow-card);
}

.ark-dual-path-col {
	padding: 56px 44px;
	position: relative;
}

.ark-dual-path-col.ark-path-individual {
	background: linear-gradient(160deg, rgba(0,113,227,0.05), transparent 60%);
	border-right: 1px solid var(--ark-border);
}

.ark-dual-path-col.ark-path-business {
	background: linear-gradient(160deg, rgba(0,0,0,0.03), transparent 60%);
}

@media (max-width: 782px) {
	.ark-dual-path { grid-template-columns: 1fr; }
	.ark-dual-path-col.ark-path-individual { border-right: none; border-bottom: 1px solid var(--ark-border); }
}

/* ---- Comparison tables ---------------------------------------------------- */
.ark-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--ark-border);
	border-radius: var(--ark-radius);
	overflow: hidden;
	background: #fff;
}

.ark-table th,
.ark-table td {
	padding: 18px 22px;
	text-align: left;
	border-bottom: 1px solid var(--ark-border);
}

.ark-table thead th {
	background: var(--ark-bg-secondary);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--ark-text-secondary);
}

.ark-table tbody tr:last-child td {
	border-bottom: none;
}

.ark-table tbody tr:hover {
	background: rgba(0, 113, 227, 0.02);
}

.ark-table .ark-yes {
	color: var(--ark-blue);
	font-weight: 600;
}

.ark-table .ark-no {
	color: var(--ark-text-faint);
}

.ark-table td.ark-highlight-col,
.ark-table th.ark-highlight-col {
	background: var(--ark-accent-soft);
}

/* ---- Code snippet blocks --------------------------------------------------- */
.ark-code {
	background: var(--ark-bg-secondary);
	border: 1px solid var(--ark-border);
	border-radius: var(--ark-radius-sm);
	padding: 22px 26px;
	font-family: var(--ark-font-mono);
	font-size: 13.5px;
	line-height: 1.65;
	color: #3A3A3C;
	overflow-x: auto;
	position: relative;
}

.ark-code::before {
	content: "●  ●  ●";
	display: block;
	letter-spacing: 4px;
	color: var(--ark-text-faint);
	font-size: 10px;
	margin-bottom: 12px;
}

.ark-code .ark-comment { color: var(--ark-text-faint); }
.ark-code .ark-keyword { color: var(--ark-blue); }
.ark-code .ark-string  { color: #B3541E; }

/* ---- Pricing cards ---------------------------------------------------------- */
.ark-pricing-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	align-items: stretch;
}

.ark-pricing-card {
	background: #fff;
	border: 1px solid var(--ark-border);
	border-radius: var(--ark-radius);
	padding: 38px 30px;
	display: flex;
	flex-direction: column;
	position: relative;
	box-shadow: var(--ark-shadow-sm);
}

.ark-pricing-card.ark-featured {
	border: 1px solid var(--ark-blue);
	box-shadow: var(--ark-shadow-glow);
}

.ark-pricing-card .ark-badge {
	position: absolute;
	top: -12px;
	right: 24px;
	background: var(--ark-blue);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	padding: 4px 14px;
	border-radius: var(--ark-radius-pill);
}

.ark-pricing-card .ark-price {
	font-size: 2.4rem;
	font-weight: 650;
	margin: 12px 0;
	color: var(--ark-text);
}

.ark-pricing-card .ark-price span {
	font-size: 0.95rem;
	font-weight: 400;
	color: var(--ark-text-secondary);
}

.ark-pricing-card ul {
	list-style: none;
	margin: 24px 0;
	padding: 0;
	flex-grow: 1;
}

.ark-pricing-card ul li {
	padding: 10px 0;
	color: var(--ark-text-secondary);
	border-top: 1px solid var(--ark-border);
}

.ark-pricing-card ul li:first-child { border-top: none; }

/* ---- FAQ accordion ----------------------------------------------------------- */
.ark-faq-item {
	border: 1px solid var(--ark-border);
	border-radius: var(--ark-radius-sm);
	margin-bottom: 12px;
	overflow: hidden;
	background: #fff;
}

.ark-faq-question {
	padding: 20px 24px;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-weight: 600;
	background: var(--ark-bg-secondary);
	color: var(--ark-text);
}

.ark-faq-question::after {
	content: "+";
	font-size: 22px;
	color: var(--ark-blue);
	transition: transform 0.2s ease;
}

.ark-faq-item[open] .ark-faq-question::after {
	transform: rotate(45deg);
}

.ark-faq-answer {
	padding: 4px 24px 22px;
	color: var(--ark-text-secondary);
}

/* ---- Feature highlight bar ---------------------------------------------------- */
.ark-feature-bar {
	display: flex;
	gap: 12px;
	border: 1px solid var(--ark-border);
	border-radius: var(--ark-radius);
	padding: 8px;
	background: var(--ark-bg-secondary);
	flex-wrap: wrap;
}

.ark-feature-bar-item {
	flex: 1;
	min-width: 200px;
	padding: 22px;
	border-radius: var(--ark-radius-sm);
	text-align: center;
	transition: background 0.2s ease;
	background: transparent;
}

.ark-feature-bar-item.is-active,
.ark-feature-bar-item:hover {
	background: #fff;
	box-shadow: var(--ark-shadow-sm);
}

.ark-feature-bar-item .ark-stat {
	font-size: 1.8rem;
	font-weight: 650;
	color: var(--ark-blue);
}

/* ---- Security / compliance callout -------------------------------------------- */
.ark-callout {
	border: 1px solid rgba(0, 113, 227, 0.22);
	background: var(--ark-accent-soft);
	border-radius: var(--ark-radius);
	padding: 36px 40px;
}

/* ---- Contact form columns -------------------------------------------------------- */
.ark-form-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

@media (max-width: 782px) {
	.ark-form-split { grid-template-columns: 1fr; }
}

.ark-form-col {
	background: #fff;
	border: 1px solid var(--ark-border);
	border-radius: var(--ark-radius);
	padding: 34px;
	box-shadow: var(--ark-shadow-sm);
}

.ark-form-col input,
.ark-form-col textarea,
.ark-form-col select {
	width: 100%;
	background: var(--ark-bg-secondary);
	border: 1px solid var(--ark-border);
	border-radius: var(--ark-radius-sm);
	padding: 12px 14px;
	color: var(--ark-text);
	margin-bottom: 16px;
	font-family: var(--ark-font-body);
}

.ark-form-col label {
	display: block;
	font-size: 13px;
	color: var(--ark-text-secondary);
	margin-bottom: 6px;
}

/* ---- Final CTA band --------------------------------------------------------------- */
.ark-final-cta {
	text-align: center;
	padding: 84px 40px;
	border-radius: var(--ark-radius-lg);
	background:
		radial-gradient(circle at 50% 0%, rgba(0,113,227,0.10) 0%, transparent 60%),
		var(--ark-bg-secondary);
	border: 1px solid var(--ark-border);
}

/* ==========================================================================
   RESPONSIVE — TABLET & MOBILE
   Breakpoints: tablet <= 1024px, mobile <= 782px, small mobile <= 480px.
   Desktop rules above are left untouched; everything below only narrows
   spacing/typography/layout as the viewport shrinks.
   ========================================================================== */

/* ---- Tablet (<=1024px) -------------------------------------------------- */
@media (max-width: 1024px) {
	.ark-container {
		padding: 0 20px;
	}

	.ark-section {
		padding: 76px 0;
	}

	.ark-hero {
		padding: 100px 0 76px;
	}

	.ark-dual-path-col {
		padding: 44px 32px;
	}

	.ark-final-cta {
		padding: 64px 32px;
	}

	.ark-callout {
		padding: 30px 32px;
	}
}

/* ---- Navigation ----------------------------------------------------------
   The core Navigation block only renders a hamburger/overlay if "Overlay
   Menu" is enabled in Appearance → Editor → Header (that's a block setting
   baked into the template, not something CSS alone can add). These rules
   are a safety net for BOTH cases: if overlay mode is off, the menu wraps
   and shrinks instead of overflowing; if you do turn overlay mode on for
   mobile, the toggle button and panel are styled to match the design system.
   ------------------------------------------------------------------------ */
@media (max-width: 782px) {
	.wp-block-navigation:not(.has-modal-open) .wp-block-navigation__container {
		flex-wrap: wrap;
		row-gap: 6px;
		justify-content: center;
	}

	.wp-block-navigation-item a {
		font-size: 14px;
	}

	.wp-block-navigation__responsive-container-open {
		color: var(--ark-text) !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open {
		background: var(--ark-bg) !important;
	}
}

/* ---- Mobile (<=782px) ---------------------------------------------------- */
@media (max-width: 782px) {
	.ark-container {
		padding: 0 18px;
	}

	.ark-section {
		padding: 56px 0;
	}

	.ark-section-tight {
		padding: 48px 0;
	}

	.ark-hero {
		padding: 88px 0 56px;
	}

	.ark-hero-ctas {
		flex-direction: column;
		align-items: stretch;
	}

	.ark-hero-ctas .ark-btn {
		width: 100%;
	}

	.ark-subheadline {
		max-width: 100%;
	}

	.ark-card {
		padding: 26px;
	}

	.ark-dual-path-col {
		padding: 36px 24px;
	}

	.ark-form-col {
		padding: 26px;
	}

	.ark-final-cta {
		padding: 48px 24px;
	}

	.ark-final-cta h2 {
		font-size: clamp(1.6rem, 6vw, 2.2rem);
	}

	.ark-callout {
		padding: 26px 22px;
	}

	.ark-feature-bar {
		flex-direction: column;
	}

	.ark-feature-bar-item {
		min-width: 0;
	}

	/* Comparison tables don't reflow gracefully at narrow widths — let the
	   section scroll horizontally instead of squashing/wrapping the table. */
	.ark-section:has(.ark-table) .ark-container,
	.ark-section-tight:has(.ark-table) .ark-container {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.ark-table {
		min-width: 560px;
	}

	.ark-code {
		font-size: 12.5px;
		padding: 18px 20px;
	}
}

/* ---- Small mobile (<=480px) ------------------------------------------------ */
@media (max-width: 480px) {
	.ark-container {
		padding: 0 16px;
	}

	.ark-eyebrow {
		font-size: 12px;
		padding: 5px 14px;
	}

	.ark-btn {
		padding: 13px 24px;
		font-size: 15px;
	}

	.ark-pricing-card {
		padding: 30px 22px;
	}

	.ark-pricing-card .ark-price {
		font-size: 2rem;
	}

	.ark-faq-question {
		padding: 16px 18px;
		font-size: 14.5px;
	}

	.ark-faq-answer {
		padding: 4px 18px 18px;
	}
}

/* ---- Touch target / tap safety, all breakpoints below desktop -------------- */
@media (max-width: 1024px) {
	.ark-btn,
	.ark-faq-question {
		min-height: 44px;
	}
}
