/* Components rendered by els-core shortcodes. Colours fall back to the
   ELS palette if the active theme doesn't define them. */

.els-catalogue, .els-packages, .els-hc, .els-form-wrap, .els-table-wrap {
	--c-navy: var(--wp--preset--color--navy, #334762);
	--c-gold: var(--wp--preset--color--gold, #E1A345);
	--c-gold-bright: var(--wp--preset--color--gold-bright, #EAB15B);
	--c-teal: var(--wp--preset--color--teal, #497F8B);
	--c-teal-soft: var(--wp--preset--color--teal-soft, #C4D8DC);
	--c-cream: var(--wp--preset--color--cream, #F7F4EC);
	--c-offwhite: var(--wp--preset--color--offwhite, #F4F6F9);
	--c-slate: var(--wp--preset--color--slate, #6B7A8D);
	--c-slate-light: var(--wp--preset--color--slate-light, #7C8A97);
	--c-line: var(--wp--preset--color--line, #E4E2D8);
	--c-display: var(--wp--preset--font-family--display, system-ui, sans-serif);
}

.els-btn, .els-add {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	border-radius: 9999px;
	background: var(--c-gold);
	color: var(--c-navy) !important;
	font-weight: 600;
	font-size: 0.875rem;
	line-height: 1.2;
	padding: 0.7rem 1.25rem;
	border: 0;
	cursor: pointer;
	text-decoration: none !important;
	white-space: nowrap;
	transition: transform 0.15s ease, background-color 0.15s ease;
}
.els-btn:hover, .els-add:hover { background: var(--c-gold-bright); transform: scale(1.02); }
.els-btn--outline { background: transparent; border: 1.5px solid var(--c-navy); }
.els-btn--outline:hover { background: var(--c-offwhite); }
.els-badge {
	display: inline-block;
	font-size: 0.65rem;
	font-weight: 600;
	padding: 0.15rem 0.5rem;
	border-radius: 9999px;
	background: rgba(225, 163, 69, 0.16);
	color: #8A5F0B;
	vertical-align: middle;
	font-family: var(--wp--preset--font-family--body, inherit);
}
.els-badge--lg { font-size: 0.75rem; padding: 0.3rem 0.75rem; margin: 0 0 1rem; }
.els-checklist { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: 0.4rem; }
.els-checklist li { position: relative; padding-left: 1.4rem; font-size: 0.8rem; line-height: 1.45; }
.els-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 0.85rem;
	height: 0.85rem;
	background: var(--c-teal);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.els-checklist--light li { color: var(--c-slate-light); }

/* ---------- Catalogue ---------- */
.els-catalogue .els-kicker { margin-bottom: 2rem; }
.els-cat-section + .els-cat-section { margin-top: 2.5rem; }
.els-cat-section__title { font-size: 1.125rem !important; font-weight: 700 !important; margin: 0 0 1rem !important; }
.els-doc-list { display: grid; gap: 0.75rem; }
.els-doc {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1.5rem;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 1rem;
	padding: 1.25rem;
}
.els-doc__name { font-size: 0.9rem !important; font-weight: 700 !important; margin: 0 0 0.35rem !important; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.els-doc__name a { color: var(--c-navy); }
.els-doc__why, .els-doc__why p { font-size: 0.875rem; line-height: 1.6; color: var(--c-slate); margin: 0; }
.els-doc__buy { display: flex; flex-direction: column; align-items: flex-end; gap: 0.5rem; flex-shrink: 0; }
.els-doc__price { font-family: var(--c-display); font-size: 1.125rem; font-weight: 800; color: var(--c-navy); }
.els-add--small { font-size: 0.75rem; padding: 0.4rem 0.85rem; background: transparent; border: 1px solid var(--c-navy); }
.els-add--small:hover { background: var(--c-offwhite); }
.els-add.loading { opacity: 0.6; pointer-events: none; }
.els-add.added { background: var(--c-teal); border-color: var(--c-teal); color: #fff !important; }
.els-add--small::before { content: "+"; }
.els-add.added::before { content: "✓"; }
.added_to_cart { font-size: 0.75rem; font-weight: 600; color: var(--c-teal); }
@media (max-width: 600px) {
	.els-doc { flex-direction: column; gap: 0.75rem; }
	.els-doc__buy { flex-direction: row; align-items: center; width: 100%; justify-content: space-between; }
}

/* ---------- Packages ---------- */
.els-packages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2rem; }
@media (max-width: 781px) { .els-packages { grid-template-columns: 1fr; } }
.els-package { background: #fff; border: 1px solid var(--c-line); border-radius: 1rem; padding: 1.5rem; display: flex; flex-direction: column; }
.els-package__tag { font-size: 0.7rem; font-weight: 600; color: var(--c-teal); margin: 0 0 0.5rem; letter-spacing: 0.02em; }
.els-package__name { font-size: 1.25rem !important; font-weight: 700 !important; margin: 0 0 0.5rem !important; }
.els-package__name a { color: var(--c-navy); }
.els-package__why, .els-package__why p { font-size: 0.875rem; color: var(--c-slate); line-height: 1.6; margin: 0 0 1rem; }
.els-package__foot { margin-top: auto; padding-top: 1rem; border-top: 1px solid #F0EEE4; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.els-package__price { font-family: var(--c-display); font-size: 1.5rem; font-weight: 800; color: var(--c-navy); }
.els-package__save { font-size: 0.75rem; color: var(--c-slate-light); }

/* ---------- Pricing table ---------- */
.els-table-wrap { border: 1px solid var(--c-line); border-radius: 1rem; overflow: hidden; background: #fff; margin: 1.25rem 0; }
.els-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.els-table th { background: var(--c-offwhite); text-align: left; font-family: var(--c-display); font-weight: 700; padding: 0.85rem 1.25rem; }
.els-table td { padding: 1rem 1.25rem; border-top: 1px solid var(--c-line); color: var(--c-slate); }
.els-table .num { text-align: right; white-space: nowrap; }
.els-table .strong a { color: var(--c-navy); font-family: var(--c-display); font-weight: 700; }
.els-table .price { color: var(--c-teal); font-family: var(--c-display); font-weight: 800; }
@media (max-width: 600px) { .els-table .hide-sm { display: none; } }

/* ---------- Contact form ---------- */
.els-form { max-width: 28rem; margin: 1.5rem 0; }
.els-form p { margin: 0 0 1rem; }
.els-form label { display: block; font-size: 0.875rem; font-weight: 600; color: var(--c-navy); margin-bottom: 0.35rem; }
.els-form label span { font-weight: 400; color: var(--c-slate); }
.els-form input, .els-form select, .els-form textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--c-slate-light);
	border-radius: 0.75rem;
	padding: 0.65rem 1rem;
	font: inherit;
	font-size: 0.9rem;
	background: #fff;
	color: var(--c-navy);
}
.els-form input:focus, .els-form select:focus, .els-form textarea:focus { outline: 2px solid var(--c-teal); outline-offset: 1px; border-color: var(--c-teal); }
.els-form__consent { font-size: 0.75rem !important; color: var(--c-slate-light); }
.els-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.els-form-notice { border-radius: 1rem; padding: 1.25rem 1.5rem; margin: 1.5rem 0; font-size: 0.9rem; border: 1px solid var(--c-line); background: #fff; }
.els-form-notice h3 { font-size: 1.05rem; margin: 0 0 0.35rem; }
.els-form-notice p, .els-form-notice ul { margin: 0; }
.els-form-notice.is-error { border-color: #E3B4A6; background: #FCF1EE; color: #7A2E1B; }
.els-form-notice.is-success { border-left: 4px solid var(--c-teal); }

/* ---------- Legal Health Check ---------- */
.els-hc { color: var(--c-navy); }
.els-hc h2, .els-hc h3 { color: var(--c-navy); }
.els-hc :focus { outline: none; }
.els-hc :focus-visible { outline: 2px solid var(--c-teal); outline-offset: 2px; }
.els-hc__intro { text-align: center; }
.els-hc__intro .els-pill { margin: 0 auto 1.5rem; }
.els-hc__title { font-size: clamp(1.75rem, 4vw, 2.25rem) !important; margin: 0 0 1rem !important; }
.els-hc__lead { color: var(--c-slate); line-height: 1.7; margin: 0 auto 1rem; max-width: 36rem; }
.els-hc__options { display: grid; gap: 0.75rem; max-width: 28rem; margin: 2rem auto 0; }
.els-hc__option {
	text-align: left;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 1rem;
	padding: 1rem 1.25rem;
	font: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--c-navy);
	cursor: pointer;
	transition: border-color 0.15s;
}
.els-hc__option:hover { border-color: var(--c-gold); }
.els-hc__option--none { background: transparent; border: 2px dashed var(--c-slate-light); color: var(--c-slate); }

.els-hc__progress { height: 4px; background: var(--c-teal-soft); border-radius: 4px; overflow: hidden; margin-bottom: 0.75rem; }
.els-hc__progress span { display: block; height: 100%; background: var(--c-gold); transition: width 0.3s; }
.els-hc__step { font-size: 0.75rem; color: var(--c-slate); margin: 0 0 2rem; }
.els-hc__q { font-size: clamp(1.4rem, 3vw, 1.85rem) !important; font-weight: 700 !important; line-height: 1.3 !important; margin: 0 0 1.5rem !important; }
.els-hc__why { background: #fff; border: 1px solid var(--c-line); border-radius: 1rem; padding: 1.25rem; margin-bottom: 1.5rem; }
.els-hc__why p { margin: 0; font-size: 0.875rem; line-height: 1.65; color: var(--c-slate); }
.els-hc__law-toggle { background: none; border: 0; padding: 0; margin-top: 0.75rem; font: inherit; font-size: 0.75rem; font-weight: 600; color: var(--c-teal); cursor: pointer; }
.els-hc__law { margin-top: 0.4rem !important; font-size: 0.75rem !important; color: var(--c-slate-light) !important; }
.els-hc__answers { display: grid; gap: 0.75rem; }
.els-hc__answer {
	text-align: left;
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.4;
	padding: 1rem 1.25rem;
	border-radius: 1rem;
	cursor: pointer;
	border: 1.5px solid var(--c-navy);
	background: #fff;
	color: var(--c-navy);
	transition: transform 0.15s, background-color 0.15s;
}
.els-hc__answer:hover { transform: translateY(-1px); }
.els-hc__answer:hover, .els-hc__answer.is-chosen { border-color: var(--c-teal); background: var(--c-offwhite); }
.els-hc__answer.is-no { border-style: dashed; border-color: var(--c-slate-light); color: var(--c-slate); font-weight: 500; }
.els-hc__answer.is-chosen { box-shadow: 0 0 0 3px var(--c-teal-soft); }
.els-hc__back { margin-top: 2rem; background: none; border: 0; padding: 0; font: inherit; font-size: 0.875rem; font-weight: 500; color: var(--c-slate); cursor: pointer; }

.els-hc__results { text-align: center; margin-bottom: 2.5rem; }
.els-hc__dots { display: flex; justify-content: center; gap: 0.5rem; margin: 1.25rem 0; }
.els-hc__dot { width: 1rem; height: 1rem; border-radius: 50%; background: var(--c-teal-soft); }
.els-hc__dot.is-gap { background: var(--c-gold); }
.els-hc__dot.is-ok { background: var(--c-teal); }
.els-hc__risk { display: inline-block; padding: 0.5rem 1.1rem; border-radius: 9999px; font-weight: 600; font-size: 0.875rem; color: #fff; margin: 0.5rem 0 0; }
.els-hc__risk-desc { font-size: 0.875rem; color: var(--c-slate); margin: 0.75rem auto 0; max-width: 24rem; }
.risk-critical { background: #B5573F; }
.risk-high { background: #C97A42; }
.risk-medium { background: var(--c-gold); color: var(--c-navy); }
.risk-low { background: var(--c-teal); }
.els-hc__legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.25rem; margin-top: 1.5rem; font-size: 0.75rem; color: var(--c-slate-light); }
.els-hc__legend-item { display: inline-flex; align-items: center; gap: 0.35rem; }
.els-hc__legend-item.is-active { color: var(--c-navy); font-weight: 700; }
.els-hc__swatch { width: 0.6rem; height: 0.6rem; border-radius: 50%; padding: 0; }

.els-hc__block { margin-bottom: 2rem; }
.els-hc__block h3 { font-size: 1rem !important; font-weight: 700 !important; margin: 0 0 1rem !important; }
.els-hc__block--center { text-align: center; background: #fff; border: 1px solid var(--c-line); border-radius: 1rem; padding: 2rem; color: var(--c-slate); font-size: 0.9rem; }
.els-hc__docs { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.6rem; }
.els-hc__docs li { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; background: #fff; border: 1px solid var(--c-line); border-radius: 0.75rem; padding: 0.85rem 1.25rem; font-size: 0.875rem; font-weight: 500; }
.els-hc__docs a { color: var(--c-navy); }
.els-hc__price { margin-left: auto; font-weight: 600; color: var(--c-teal); }
.els-hc__buy { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; margin-top: 1rem; font-size: 0.875rem; color: var(--c-slate); }
.els-hc__package { background: var(--c-navy); border-radius: 1.25rem; padding: 1.5rem; margin-bottom: 2rem; }
.els-hc__package h3 { color: #fff !important; font-size: 1.25rem !important; margin: 0 0 0.5rem !important; }
.els-hc__package .els-kicker { font-size: 0.7rem; font-weight: 600; color: var(--c-gold-bright); margin: 0 0 0.5rem; letter-spacing: 0.04em; }
.els-hc__package-note { font-size: 0.85rem; color: var(--c-slate-light); margin: 0 0 1rem; }
.els-hc__package-foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.els-hc__package-price { font-family: var(--c-display); font-size: 1.6rem; font-weight: 800; color: var(--c-gold); }
.els-hc__small { font-size: 0.75rem; line-height: 1.6; color: var(--c-slate); }
.els-hc__footer { text-align: center; border-top: 1px solid var(--c-line); padding-top: 1.5rem; margin-top: 1rem; }
