/*
 * Jawhara Core — design system
 * ---------------------------------------------------------------------------
 * Design tokens + the small set of components that Elementor widgets alone
 * cannot express consistently (CTA buttons, mobile action bar, card polish).
 * Page layout itself is built in Elementor and is NOT styled here.
 *
 * Palette: Midnight navy primary, burnished gold accent, warm neutrals.
 */

:root {
	/* Brand */
	--jc-navy:        #0F2440;
	--jc-navy-800:    #16304F;
	--jc-navy-700:    #1D3E64;
	--jc-gold:        #D9A441;   /* accent on DARK backgrounds only (6.93:1 on navy) */
	--jc-gold-600:    #C08D2E;   /* button fills / hovers — never small text on light */
	--jc-gold-100:    #FBF3E2;

	/* Accessible bronze for gold-toned TEXT and links on light backgrounds.
	   #C08D2E only reaches 2.96:1 on white, which fails WCAG AA for body text;
	   this token clears 4.5:1 on white, grey, sand and the gold-100 pill. */
	--jc-gold-text:   #8E6822;

	/* Neutrals */
	--jc-ink:         #1F2933;
	--jc-body:        #3E4C59;
	--jc-muted:       #5E6B7A;   /* was #6B7A8C — failed AA at 4.39:1 on white */
	--jc-border:      #CED6E0;   /* was #E1E6EC — too faint to read as an edge */
	--jc-bg:          #FFFFFF;
	--jc-bg-alt:      #F5F7FA;
	--jc-bg-sand:     #FAF7F1;

	/* Functional — WhatsApp teal darkened so white label clears AA (was 4.14:1) */
	--jc-wa:          #107C70;
	--jc-wa-dark:     #0C6459;

	/* Shape & rhythm */
	--jc-radius:      14px;
	--jc-radius-sm:   10px;
	--jc-radius-pill: 999px;
	--jc-shadow:      0 2px 4px rgba(15, 36, 64, .04), 0 8px 24px rgba(15, 36, 64, .07);
	--jc-shadow-lg:   0 8px 20px rgba(15, 36, 64, .08), 0 24px 48px rgba(15, 36, 64, .10);
	--jc-section-y:   clamp(3.5rem, 7vw, 6.5rem);

	--jc-font:        'Tajawal', 'Segoe UI', Tahoma, sans-serif;
}

/* ---------------------------------------------------------------------------
   1. Base typography — Arabic first
   --------------------------------------------------------------------------- */

body {
	font-family: var(--jc-font);
	color: var(--jc-body);
	background: var(--jc-bg);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
	font-family: var(--jc-font);
	color: var(--jc-navy);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0;
}

/* Arabic needs a slightly looser body leading than Latin defaults. */
p, li {
	line-height: 1.95;
}

/* Latin numerals inside Arabic text must not flip. */
.jc-num,
.jc-btn__num {
	direction: ltr;
	unicode-bidi: embed;
	font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------------------
   2. Buttons
   --------------------------------------------------------------------------- */

.jc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	min-height: 52px;          /* comfortable touch target */
	padding: .85rem 1.6rem;
	border: 2px solid transparent;
	border-radius: var(--jc-radius-pill);
	font-family: var(--jc-font);
	font-size: 1.02rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}

.jc-btn:hover { transform: translateY(-2px); }
.jc-btn:active { transform: translateY(0); }

.jc-btn svg { flex: 0 0 auto; }

.jc-btn__num {
	padding-inline-start: .5rem;
	margin-inline-start: .5rem;
	border-inline-start: 1px solid currentColor;
	opacity: .85;
	font-size: .95em;
}

/* Primary — gold on navy text. Contrast ratio ≈ 5.6:1. */
.jc-btn--primary {
	background: var(--jc-gold);
	color: var(--jc-navy);
	box-shadow: 0 6px 18px rgba(217, 164, 65, .32);
}
.jc-btn--primary:hover {
	background: var(--jc-gold-600);
	color: var(--jc-navy);
	box-shadow: 0 10px 26px rgba(217, 164, 65, .42);
}

/* Secondary — outlined, for use on light backgrounds. */
.jc-btn--secondary {
	background: transparent;
	color: var(--jc-navy);
	border-color: var(--jc-navy);
}
.jc-btn--secondary:hover {
	background: var(--jc-navy);
	color: #fff;
}

/* Ghost — for use on the navy hero. */
.jc-btn--ghost {
	background: rgba(255, 255, 255, .08);
	color: #fff;
	border-color: rgba(255, 255, 255, .55);
}
.jc-btn--ghost:hover {
	background: #fff;
	color: var(--jc-navy);
	border-color: #fff;
}

/* WhatsApp — brand teal, white text. Contrast ratio ≈ 4.6:1. */
.jc-btn--whatsapp {
	background: var(--jc-wa);
	color: #fff;
	box-shadow: 0 6px 18px rgba(16, 124, 112, .28);
}
.jc-btn--whatsapp:hover {
	background: var(--jc-wa-dark);
	color: #fff;
	box-shadow: 0 10px 26px rgba(16, 124, 112, .38);
}

.jc-cta-pair {
	display: flex;
	flex-wrap: wrap;
	gap: .9rem;
	align-items: center;
}

/* Keyboard focus must always be visible (WCAG 2.4.7 / 1.4.11).
   Navy ring on light surfaces (15.6:1); the white halo keeps it visible when
   the focused control sits on a dark or gold background, so one rule works
   everywhere without needing per-section overrides. */
.jc-btn:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
details:focus-visible {
	outline: 3px solid var(--jc-navy);
	outline-offset: 2px;
	box-shadow: 0 0 0 6px rgba(255, 255, 255, .95);
	border-radius: 4px;
}

/* On dark bands invert it: gold ring (6.9:1 on navy) with a navy halo. */
.jc-hero :focus-visible,
.jc-cta-band :focus-visible,
.jc-cover-band :focus-visible,
.jc-page-hero :focus-visible,
.jc-foot :focus-visible,
.jc-foot__bar :focus-visible,
.jc-mobile-bar :focus-visible {
	outline-color: var(--jc-gold);
	box-shadow: 0 0 0 6px rgba(15, 36, 64, .9);
}

/* ---------------------------------------------------------------------------
   3. Reusable content components used inside Elementor HTML widgets
   --------------------------------------------------------------------------- */

/* Eyebrow label above section headings */
.jc-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .4rem 1rem;
	border-radius: var(--jc-radius-pill);
	background: var(--jc-gold-100);
	color: var(--jc-gold-text);
	font-size: .88rem;
	font-weight: 700;
	margin-bottom: 1rem;
}

.jc-eyebrow--on-dark {
	background: rgba(217, 164, 65, .16);
	color: var(--jc-gold);
}

/* Generic card */
.jc-card {
	background: var(--jc-bg);
	border: 1px solid var(--jc-border);
	border-radius: var(--jc-radius);
	padding: 1.9rem 1.7rem;
	box-shadow: var(--jc-shadow);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	height: 100%;
}
.jc-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--jc-shadow-lg);
	border-color: rgba(217, 164, 65, .5);
}

.jc-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: var(--jc-radius-sm);
	background: linear-gradient(135deg, var(--jc-navy), var(--jc-navy-700));
	color: var(--jc-gold);
	margin-bottom: 1.1rem;
}

.jc-card__title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--jc-navy);
	margin: 0 0 .6rem;
}

.jc-card__text {
	color: var(--jc-body);
	margin: 0 0 1rem;
	font-size: 1rem;
}

.jc-card__link {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	color: var(--jc-gold-text);
	font-weight: 700;
	text-decoration: none;
}
.jc-card__link:hover { color: var(--jc-navy); text-decoration: underline; }

/* Responsive grid used by services / areas / features */
.jc-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.jc-grid--2 { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
.jc-grid--4 { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }

/* Numbered process steps */
.jc-steps { counter-reset: jcstep; display: grid; gap: 1.1rem; }
.jc-step {
	counter-increment: jcstep;
	position: relative;
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	background: var(--jc-bg);
	border: 1px solid var(--jc-border);
	border-radius: var(--jc-radius-sm);
	padding: 1.15rem 1.3rem;
}
.jc-step::before {
	content: counter(jcstep);
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--jc-navy);
	color: var(--jc-gold);
	font-weight: 800;
	font-size: 1.05rem;
	direction: ltr;
}
.jc-step__body h3 { font-size: 1.1rem; margin: .15rem 0 .35rem; }
.jc-step__body p  { margin: 0; font-size: .98rem; }

/* Checklist */
.jc-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }
.jc-checklist li {
	position: relative;
	padding-inline-start: 2.1rem;
	line-height: 1.8;
}
.jc-checklist li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: .45em;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	background: var(--jc-gold-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E6822' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / .85rem no-repeat;
}

/* Area / neighbourhood chips */
.jc-areas { display: flex; flex-wrap: wrap; gap: .7rem; }
.jc-area-chip {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .6rem 1.1rem;
	border: 1px solid var(--jc-border);
	border-radius: var(--jc-radius-pill);
	background: var(--jc-bg);
	color: var(--jc-navy);
	font-weight: 500;
	text-decoration: none;
	transition: all .18s ease;
}
.jc-area-chip:hover {
	background: var(--jc-navy);
	border-color: var(--jc-navy);
	color: #fff;
}

/* FAQ — native <details>, no JS, keyboard accessible by default */
.jc-faq { display: grid; gap: .9rem; }
.jc-faq details {
	border: 1px solid var(--jc-border);
	border-radius: var(--jc-radius-sm);
	background: var(--jc-bg);
	overflow: hidden;
}
.jc-faq details[open] { border-color: rgba(217, 164, 65, .6); }
.jc-faq summary {
	cursor: pointer;
	list-style: none;
	padding: 1.15rem 1.35rem;
	font-weight: 700;
	color: var(--jc-navy);
	font-size: 1.06rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
}
.jc-faq summary::-webkit-details-marker { display: none; }
.jc-faq summary::after {
	content: "+";
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--jc-gold-100);
	color: var(--jc-gold-text);
	font-size: 1.3rem;
	line-height: 26px;
	text-align: center;
	transition: transform .2s ease;
}
.jc-faq details[open] summary::after { content: "−"; transform: rotate(180deg); }
.jc-faq .jc-faq__a { padding: 0 1.35rem 1.25rem; margin: 0; }

/* Image placeholder — used until the owner uploads real photography */
.jc-imgph {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	text-align: center;
	padding: 1.5rem;
	background:
		repeating-linear-gradient(45deg, #EEF1F5 0 12px, #E7EBF1 12px 24px);
	border: 2px dashed #C3CCD8;
	border-radius: var(--jc-radius);
	color: var(--jc-muted);
	font-size: .9rem;
	line-height: 1.6;
	aspect-ratio: 16 / 10;
	width: 100%;
}
.jc-imgph strong { color: var(--jc-navy); font-size: 1rem; }
.jc-imgph code {
	background: rgba(15, 36, 64, .07);
	padding: .1rem .45rem;
	border-radius: 4px;
	direction: ltr;
	font-size: .82rem;
}

/* Callout / note box */
.jc-note {
	border-inline-start: 4px solid var(--jc-gold);
	background: var(--jc-bg-sand);
	border-radius: var(--jc-radius-sm);
	padding: 1.25rem 1.4rem;
}
.jc-note p:last-child { margin-bottom: 0; }

/* Pricing-factor table */
.jc-table-wrap { overflow-x: auto; }
.jc-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 520px;
	background: var(--jc-bg);
	border-radius: var(--jc-radius-sm);
	overflow: hidden;
	border: 1px solid var(--jc-border);
}
.jc-table th, .jc-table td {
	padding: .95rem 1.15rem;
	text-align: start;
	border-bottom: 1px solid var(--jc-border);
	font-size: .98rem;
}
.jc-table thead th {
	background: var(--jc-navy);
	color: #fff;
	font-weight: 700;
}
.jc-table tbody tr:last-child td { border-bottom: 0; }
.jc-table tbody tr:nth-child(even) { background: var(--jc-bg-alt); }

/* Dark section helper */
.jc-on-dark, .jc-on-dark p, .jc-on-dark li { color: #DDE4EC; }
.jc-on-dark h1, .jc-on-dark h2, .jc-on-dark h3, .jc-on-dark h4 { color: #fff; }
.jc-on-dark .jc-card {
	background: rgba(255, 255, 255, .05);
	border-color: rgba(255, 255, 255, .14);
	box-shadow: none;
}
.jc-on-dark .jc-card__title { color: #fff; }
.jc-on-dark .jc-card__text  { color: #C9D4E0; }

/* ---------------------------------------------------------------------------
   4. Mobile action bar
   --------------------------------------------------------------------------- */

.jc-mobile-bar {
	position: fixed;
	inset-inline: 0;
	bottom: 0;
	z-index: 9990;
	display: none;                 /* shown on small screens only */
	gap: 1px;
	background: var(--jc-border);
	box-shadow: 0 -4px 20px rgba(15, 36, 64, .16);
	padding-bottom: env(safe-area-inset-bottom, 0);
}

.jc-mobile-bar__btn {
	flex: 1 1 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 58px;
	font-family: var(--jc-font);
	font-size: 1.02rem;
	font-weight: 700;
	text-decoration: none;
	color: #fff;
}
.jc-mobile-bar__btn--call { background: var(--jc-navy); }
.jc-mobile-bar__btn--call span { color: #fff; }
.jc-mobile-bar__btn--call svg  { color: var(--jc-gold); }
.jc-mobile-bar__btn--wa   { background: var(--jc-wa); }

@media (max-width: 880px) {
	.jc-mobile-bar { display: flex; }
	/* Keep the bar from covering the last of the page content. */
	body { padding-bottom: 58px; }
}

/* ---------------------------------------------------------------------------
   5. Responsive & motion
   --------------------------------------------------------------------------- */

@media (max-width: 782px) {
	.jc-cta-pair .jc-btn { flex: 1 1 100%; }
	.jc-card { padding: 1.5rem 1.3rem; }
	.jc-step { padding: 1rem; }
	.jc-step::before { width: 34px; height: 34px; font-size: .95rem; }
}

/* Nothing should ever cause a horizontal scrollbar. */
html, body { overflow-x: clip; max-width: 100%; }
img, svg, video, table { max-width: 100%; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
	.jc-btn:hover, .jc-card:hover { transform: none; }
}

/* Screen-reader-only utility */
.jc-sr-only {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------------------------------------------------------------------------
   6. Header
   --------------------------------------------------------------------------- */

.jc-brand {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	text-decoration: none;
}
.jc-brand__mark { flex: 0 0 auto; line-height: 0; }
.jc-brand__txt { display: flex; flex-direction: column; line-height: 1.25; }
.jc-brand__txt strong {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--jc-navy);
	letter-spacing: -.01em;
}
.jc-brand__txt em {
	font-style: normal;
	font-size: .78rem;
	color: var(--jc-muted);
	font-weight: 500;
}

.jc-header { position: sticky; top: 0; z-index: 999; }

.jc-header__cta {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: .6rem 1.15rem .6rem .85rem;
	border-radius: var(--jc-radius-pill);
	background: var(--jc-gold);
	color: var(--jc-navy);
	text-decoration: none;
	box-shadow: 0 4px 14px rgba(217, 164, 65, .3);
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.jc-header__cta:hover {
	background: var(--jc-gold-600);
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(217, 164, 65, .4);
	color: var(--jc-navy);
}
.jc-header__cta-ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px; height: 34px;
	border-radius: 50%;
	background: rgba(15, 36, 64, .12);
	color: var(--jc-navy);
}
.jc-header__cta-txt { display: flex; flex-direction: column; line-height: 1.2; }
.jc-header__cta-txt em {
	font-style: normal;
	font-size: .72rem;
	font-weight: 600;
	opacity: .8;
}
.jc-header__cta-txt strong {
	font-size: 1.05rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

/* On tablet/mobile the header CTA collapses to the icon; the sticky
   bottom bar carries the call/WhatsApp actions instead. */
@media (max-width: 1024px) {
	.jc-header__cta-txt { display: none; }
	.jc-header__cta { padding: .45rem; }
	.jc-brand__txt em { display: none; }
}
@media (max-width: 880px) {
	.jc-header__actions { display: none; }
	.jc-brand__txt strong { font-size: 1rem; }
}

/* Elementor nav-menu dropdown polish */
.jc-header__nav .elementor-nav-menu--dropdown {
	box-shadow: var(--jc-shadow-lg);
	border: 1px solid var(--jc-border);
}
.jc-header__nav .elementor-nav-menu--main > ul > li > a { font-weight: 600; }

/* ---------------------------------------------------------------------------
   7. Footer
   --------------------------------------------------------------------------- */

.jc-foot__grid > .e-con-inner,
.jc-foot__grid { align-items: flex-start; }

.jc-foot__colwide { flex: 1 1 320px; min-width: 280px; max-width: 400px; }
.jc-foot .elementor-widget-html { flex: 1 1 180px; }

.jc-foot__about .jc-brand__txt strong { color: #fff; }
.jc-foot__about .jc-brand__txt em     { color: #9FB0C4; }
.jc-foot__about > p {
	color: #C9D4E0;
	font-size: .96rem;
	line-height: 1.9;
	margin: 1.1rem 0 1.3rem;
}

.jc-foot__contact { display: grid; gap: .7rem; }
.jc-foot__line {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	color: #E6EDF5;
	text-decoration: none;
	font-weight: 600;
	font-size: 1.02rem;
	transition: color .18s ease;
}
.jc-foot__line svg { color: var(--jc-gold); flex: 0 0 auto; }
.jc-foot__line:hover { color: var(--jc-gold); }
.jc-foot__line--plain { font-weight: 500; font-size: .95rem; color: #A9B8C9; cursor: default; }

.jc-foot__h {
	color: #fff;
	font-size: 1.08rem;
	font-weight: 700;
	margin: 0 0 1.1rem;
	padding-bottom: .7rem;
	border-bottom: 2px solid rgba(217, 164, 65, .35);
	display: inline-block;
}
.jc-foot__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.jc-foot__list a {
	color: #B9C6D6;
	text-decoration: none;
	font-size: .95rem;
	transition: color .18s ease, padding-inline-start .18s ease;
	display: inline-block;
}
.jc-foot__list a:hover { color: var(--jc-gold); padding-inline-start: 5px; }

.jc-foot__bottom {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem 1.2rem;
	align-items: center;
	justify-content: space-between;
}
.jc-foot__bottom p { margin: 0; color: #8A9CB0; font-size: .9rem; }
.jc-foot__bottom-links { display: inline-flex; gap: .7rem; align-items: center; }
.jc-foot__bottom-links a { color: #B9C6D6; text-decoration: none; }
.jc-foot__bottom-links a:hover { color: var(--jc-gold); text-decoration: underline; }

@media (max-width: 880px) {
	.jc-foot__colwide { max-width: 100%; }
	.jc-foot__bottom { justify-content: center; text-align: center; }
}

/* ---------------------------------------------------------------------------
   8. Page sections
   --------------------------------------------------------------------------- */

/* Hero */
.jc-hero__points {
	list-style: none;
	margin: .4rem 0 .4rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: .7rem 1.4rem;
}
.jc-hero__points li {
	display: flex;
	align-items: center;
	gap: .55rem;
	color: #DDE4EC;
	font-size: 1rem;
	line-height: 1.6;
}
.jc-hero__points svg {
	flex: 0 0 auto;
	width: 20px; height: 20px;
	color: var(--jc-gold);
}

.jc-hero__phone {
	margin: .3rem 0 0;
	color: #A9BACD;
	font-size: 1rem;
}
.jc-hero__phone a {
	color: #fff;
	font-weight: 800;
	font-size: 1.25rem;
	text-decoration: none;
	border-bottom: 2px solid var(--jc-gold);
	padding-bottom: 2px;
	font-variant-numeric: tabular-nums;
}
.jc-hero__phone a:hover { color: var(--jc-gold); }

.jc-hero__img img {
	border-radius: 18px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .35);
	width: 100%;
	height: auto;
}

/* Centered CTA pairs */
.jc-cta-center .jc-cta-pair { justify-content: center; }
.jc-cta-note {
	margin: .4rem 0 0;
	color: #A9BACD;
	font-size: .95rem;
	text-align: center;
	line-height: 1.8;
}

/* Coverage band */
.jc-cover__lead {
	color: #C9D4E0;
	margin: 0 0 1rem;
	font-size: 1.02rem;
}
.jc-cover__lead--sep { margin-top: 2rem; }
.jc-cover__note {
	margin: 1.6rem 0 0;
	color: #9FB0C4;
	font-size: .95rem;
	line-height: 1.9;
}
.jc-cover .jc-area-chip {
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .16);
	color: #E6EDF5;
}
.jc-cover .jc-area-chip svg { width: 18px; height: 18px; color: var(--jc-gold); }
.jc-cover .jc-area-chip:hover {
	background: var(--jc-gold);
	border-color: var(--jc-gold);
	color: var(--jc-navy);
}
.jc-cover .jc-area-chip:hover svg { color: var(--jc-navy); }
.jc-area-chip--static { cursor: default; font-size: .93rem; padding: .5rem .95rem; }
.jc-cover .jc-area-chip--static:hover {
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .16);
	color: #E6EDF5;
}

/* Cards used as links */
a.jc-card--linked { text-decoration: none; display: block; }

/* FAQ footer note */
.jc-faq__more {
	text-align: center;
	color: var(--jc-muted);
	margin: 0;
}
.jc-faq__more a { color: var(--jc-gold-text); font-weight: 700; }
.jc-faq__a a { color: var(--jc-gold-text); font-weight: 600; }

/* Elementor container niceties */
.e-con > .e-con-inner { width: 100%; }
.jc-choose__note {
	margin: 1.1rem 0 0;
	font-size: .96rem;
	color: var(--jc-muted);
	line-height: 1.9;
}
.jc-note .jc-checklist { gap: .6rem; }
.jc-note .jc-checklist li { line-height: 1.7; }
.jc-local__h {
	font-size: 1.08rem;
	margin: 0 0 .9rem;
	color: var(--jc-navy);
}
.jc-cover__note--light { color: var(--jc-muted); }

/* Contact cards */
.jc-card--contact { display: flex; flex-direction: column; }
.jc-card__big {
	display: block;
	font-size: 1.45rem;
	font-weight: 800;
	color: var(--jc-navy);
	margin: .2rem 0 .8rem;
	font-variant-numeric: tabular-nums;
}
a.jc-card--contact { text-decoration: none; }

/* Contact form */
.jc-form__h { font-size: 1.7rem; margin: 0 0 .35rem; color: var(--jc-navy); }
.jc-form__sub { margin: 0 0 .4rem; color: var(--jc-muted); font-size: 1rem; }
.jc-form__privacy {
	margin: .2rem 0 0;
	font-size: .88rem;
	color: var(--jc-muted);
	line-height: 1.8;
}
.jc-form__privacy a { color: var(--jc-gold-text); }
.jc-form .elementor-field-group > label {
	font-weight: 600;
	color: var(--jc-ink);
	margin-bottom: .4rem;
	font-size: .95rem;
}
.jc-form .elementor-field-textual {
	min-height: 48px;
	border-radius: 10px !important;
	font-family: var(--jc-font) !important;
}
.jc-form textarea.elementor-field-textual { min-height: 120px; }
.jc-form .elementor-button {
	font-family: var(--jc-font) !important;
	font-weight: 700 !important;
	border-radius: 999px !important;
	min-height: 54px;
}

/* Legal / long-form text pages */
.jc-legal h2 {
	font-size: 1.4rem;
	margin: 2.1rem 0 .7rem;
	color: var(--jc-navy);
}
.jc-legal h2:first-child { margin-top: 0; }
.jc-legal ul { margin: 0 0 1.1rem; padding-inline-start: 1.4rem; }
.jc-legal li { margin-bottom: .45rem; }
.jc-legal p { margin-bottom: 1.05rem; }

/* Blog archive heading */
.jc-blog-head {
	max-width: 820px;
	margin: 0 auto 2.6rem;
	text-align: center;
	padding: 0 16px;
}
.jc-blog-head h1 {
	font-size: clamp(1.7rem, 4vw, 2.5rem);
	margin: 0 0 .8rem;
	color: var(--jc-navy);
}
.jc-blog-head p { color: var(--jc-body); margin: 0; }
.jc-blog-head p a { color: var(--jc-gold-text); font-weight: 700; }

/* Card label inside note boxes. Rendered as <p> (not a heading) so it does not
   break the document heading outline when it precedes the first h2. */
p.jc-local__h {
	font-size: 1.08rem;
	font-weight: 700;
	color: var(--jc-navy);
	margin: 0 0 .9rem;
	line-height: 1.4;
}

/* ---------------------------------------------------------------------------
   9. Final polish — tap targets, sticky-header offsets, safe areas
   --------------------------------------------------------------------------- */

/* Chips are links, so give them a full 44px touch target (WCAG 2.5.5). */
.jc-area-chip {
	min-height: 44px;
}

/* The header is sticky, so in-page anchors must not land under it. */
[id] {
	scroll-margin-top: 96px;
}

/* Menu items need a comfortable target on touch devices too. */
@media (max-width: 1024px) {
	.jc-header__nav .elementor-nav-menu a.elementor-item {
		min-height: 44px;
		display: flex;
		align-items: center;
	}
}

/* Reserve space for the fixed action bar INCLUDING the iOS safe area, so the
   last section is never hidden behind it on notched devices. */
@media (max-width: 880px) {
	body {
		padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px));
	}
}

/* Long Arabic headings must wrap rather than overflow their container. */
h1, h2, h3, h4,
.elementor-heading-title,
.jc-card__title {
	overflow-wrap: break-word;
	word-break: normal;
}

/* Latin/number runs (phone numbers, slugs) must not stretch a flex row. */
.jc-btn__num,
.jc-card__big,
.jc-hero__phone a {
	white-space: nowrap;
}

/* Print: hide the fixed bar and keep the phone number readable. */
@media print {
	.jc-mobile-bar,
	.jc-header__cta { display: none !important; }
	a[href^="tel:"]::after { content: " (" attr(href) ")"; }
}
