html {
	overflow-x: hidden;
}

/* ---------------------------------------------------------------------------
   Modern, compact scrollbars (cross-browser).

   macOS shows slim overlay scrollbars; Windows/Linux/older browsers default to
   the chunky classic ones. This gives a consistent thin, rounded, semi-
   transparent thumb everywhere. The mid-grey thumb (--gray-300, #828393) stays
   visible on both the dark app surfaces and the white popups/dropdowns, so a
   single rule covers every scroll area. The track is transparent for a clean
   look; the thumb is inset with a transparent border so it appears to float.
   --------------------------------------------------------------------------- */
:root {
	scrollbar-width: thin;                                   /* Firefox */
	scrollbar-color: rgba(130, 131, 147, 0.7) transparent;  /* thumb, track */
}

::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}

::-webkit-scrollbar-track {
	background: transparent;
}

::-webkit-scrollbar-thumb {
	background-color: rgba(130, 131, 147, 0.7);
	border-radius: 999px;
	border: 2px solid transparent;
	background-clip: padding-box;
}

::-webkit-scrollbar-thumb:hover {
	background-color: rgba(130, 131, 147, 0.95);
}

::-webkit-scrollbar-corner {
	background: transparent;
}

body {
	margin: 0;
	padding: 0;
	font-family: var(--font-sans);
	color: white;
	background-color: var(--surface-page);
	font-size: 16px;
	line-height: 28px;
}

#page {
	display: flex;
	min-height: 100vh;
	align-items: flex-start;
}

body.admin-bar #page {
	min-height: calc(100vh - var(--wp-admin--admin-bar--height));
}

.button,
button {
	padding: 14px 18px;
	color: white;
	gap: 10px;
	display: flex;
	align-items: center;
	background-color: var(--action-dark);
	border-radius: 8px;
	border: 2px solid transparent;
	font-size: 16px;
	letter-spacing: 0.8px;
	font-weight: bold;
	text-decoration: none;
	transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
	cursor: pointer;
	box-shadow: none;
}

.button.inverse {
	background-color: white;
	color: var(--action-dark);
	border-color: transparent;
	transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

.button.inverse:hover {
	background-color: var(--action-dark);
	color: white;
	border-color: var(--action-dark);
}

.button:disabled,
button:disabled {
	background-color: var(--surface-action);
	border-color: var(--gray-300);
	color: var(--gray-300);
	cursor: default;
}

.button:disabled:hover,
button:disabled:hover {
	background-color: var(--surface-action);
	border-color: var(--gray-300);
	color: var(--gray-300);
}

.button:hover,
button:hover {
	color: var(--action-dark);
	background-color: white;
	border-color: white;
	box-shadow: none;
}

.button svg {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
}

ul.menu {
	padding: 0;
	margin: 0;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 20px;
}

main {
	flex-grow: 1;
	/* Stretch to full row height so .main-content can flex-grow and keep footer at the viewport bottom when content is short. */
	align-self: stretch;
}

.main {
	display: flex;
	flex-direction: column;
	min-height: 0; /* nodig voor flex-kinderen met flex: 1 */
	min-width: 0; /* voorkomt dat brede inhoud .main oprekt (flex default is auto) */
}

.main-content {
	flex: 1 1 auto;
	min-width: 0; /*zelfde: laat flex-kind krimpen onder inhoudsbreedte */
}

.menu a {
	color: white;
	text-decoration: none;
	display: flex;
	gap: 10px;
	align-items: center;
}

/* Account name link: tighter gap between first name and last name */
.menu .claryss-account-parent > a {
	gap: 5px;
}

.menu-item-icon {
	vertical-align: middle;
	margin-right: 0;
}

.menu-item-icon-svg {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	width: 1.2em;
	height: 1.2em;
}

.menu-item-icon-svg svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
	color: inherit;
}

.menu-item-icon img,
img.menu-item-icon {
	max-height: 1.2em;
	width: auto;
}

.menu-item.icon_only a {
	font-size: 0;
	line-height: 0;
	gap: 0;
}

.menu-item.icon_only .menu-item-icon-svg {
	width: 24px;
	height: 24px;
}

article,
.category-archive {
	padding: 52px 64px 0 61px;
}

body.sidebar-collapsed article,
body.sidebar-collapsed .category-archive {
	padding-left: 50px;
}

/* Force-collapsed sidebar at <=991px: tighter 30px gutters left & right */
@media (max-width: 991px) {
	article,
	.category-archive {
		padding-left: 30px;
		padding-right: 30px;
	}
}

/* Mobile equity-universes page: 30px gutters. Scoped to the equity page;
   higher specificity than the <=991px rule above, so it wins at <=767px. */
@media (max-width: 767px) {
	body.has-equity-universes article {
		padding-left: 30px;
		padding-right: 30px;
	}
}

body.page-template-template-blank-php article {
	padding: 0;
}

h1, h2, h3, h4, h5, h6,
.h2 {
	margin-top: 0;
	font-family: var(--font-family-headings);
	color: var(--text-headings);
}

h1 {
	font-size: var(--h1-font-size);
	line-height: var(--h1-line-height);
	margin-bottom: 0;
}

/* Mobile (<=767px): scale h1 down structurally (matches the article-post title) */
@media (max-width: 767px) {
	h1 {
		font-size: 30px;
		line-height: 38px;
	}
}

article > h1 {
	margin-bottom: 10px;
	font-size: var(--h2-font-size);
	line-height: var(--h2-line-height);
	font-weight: 400;
}

article > h2 {
	font-weight: 500;
	font-size: var(--h3-font-size);
	line-height: var(--h3-line-height);
	margin-bottom: 0;
}

h2,
.h2 {
	font-size: var(--h2-font-size);
	line-height: var(--h2-line-height);
	font-weight: normal;
}

h3 {
	font-weight: 500;
	font-size: var(--h3-font-size);
	line-height: var(--h3-line-height);
}

h4 {
	font-family: var(--font-sans);
	font-weight: bold;
	font-size: var(--h4-font-size);
	line-height: var(--h4-line-height);
	margin-bottom: 4px;
}

h6 {
	font-family: var(--font-sans);
}

p {
	font-size: 16px;
	line-height: 28px;
	margin-bottom: 28px;
	margin-top: 0;
}

p:last-child {
	margin-bottom: 0;
}

img {
	max-width: 100%;
	height: auto;
}

article > p:last-child,
article > ul:last-child,
article > ol:last-child {
	padding-bottom: 30px;
}

/* Fluent Forms */
.ff-el-input--label label {
	font-size: 14px;
	line-height: 22px !important;
	font-weight: 700 !important;
	color: var(--surface-card-light);
}

.ff-el-input--content:has(.ff-el-form-check-radio) {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
}

.ff-el-input--content:has(.ff-el-form-check-radio) .ff-el-form-check {
	flex: 0 0 auto;
}

/* Fluent Forms confirmation / error messages — match .register__message / .sign-in__message--success.
   Overrides Fluent's default .ff-message-success (grey border + drop shadow). */
.ff-message-success,
.ff-message-error {
	box-sizing: border-box;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid transparent;
	border-radius: 10px;
	box-shadow: none !important;
	font-size: 14px;
	line-height: 22px;
	color: var(--secondary-700);
}

.ff-message-success {
	border-color: color-mix(in srgb, var(--primary-400) 45%, transparent);
	background: color-mix(in srgb, var(--primary-400) 12%, #fff);
}

.ff-message-error {
	border-color: color-mix(in srgb, var(--red) 45%, transparent);
	background: color-mix(in srgb, var(--red) 12%, #fff);
}

.ff-message-success p,
.ff-message-error p {
	margin: 0;
	color: var(--secondary-700);
}

.ff-message-success p + p,
.ff-message-error p + p {
	margin-top: 8px;
}

/* Inline field-level validation errors */
.ff-el-is-error .text-danger,
.error.text-danger {
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 19px;
	font-weight: 600;
	color: var(--red);
}

.wc-block-components-form .wc-block-components-text-input label,
.wc-block-components-text-input label {
	color: black !important;
}

/* Reusable radio component (light backgrounds).
   Markup:
     <div class="claryss-radio-group">
         <label class="claryss-radio">
             <input class="claryss-radio__input" type="radio" name="…" value="…" />
             <span class="claryss-radio__label">Yes</span>
         </label>
         …
     </div>
*/
.claryss-radio-group {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
}

.claryss-radio {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	cursor: pointer;
	user-select: none;
}

.claryss-radio__input {
	appearance: none;
	-webkit-appearance: none;
	width: 24px;
	height: 24px;
	margin: 0;
	border: 0;
	background-color: transparent;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px 24px;
	cursor: pointer;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'><path d='M12 3.28125C16.8164 3.28125 20.7188 7.18359 20.7188 12C20.7188 16.8164 16.8164 20.7188 12 20.7188C7.18359 20.7188 3.28125 16.8164 3.28125 12C3.28125 7.18359 7.18359 3.28125 12 3.28125ZM12 19.0312C15.8672 19.0312 19.0312 15.9023 19.0312 12C19.0312 8.13281 15.8672 4.96875 12 4.96875C8.09766 4.96875 4.96875 8.13281 4.96875 12C4.96875 15.9023 8.09766 19.0312 12 19.0312Z' fill='%23151F7C'/></svg>");
}

.claryss-radio__input:checked {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'><path d='M20.7188 12C20.7188 16.8164 16.7812 20.7188 12 20.7188C7.18359 20.7188 3.28125 16.8164 3.28125 12C3.28125 7.21875 7.18359 3.28125 12 3.28125C16.7812 3.28125 20.7188 7.21875 20.7188 12ZM10.9805 16.6406L17.4492 10.1719C17.6602 9.96094 17.6602 9.57422 17.4492 9.36328L16.6406 8.58984C16.4297 8.34375 16.0781 8.34375 15.8672 8.58984L10.5938 13.8633L8.09766 11.4023C7.88672 11.1562 7.53516 11.1562 7.32422 11.4023L6.51562 12.1758C6.30469 12.3867 6.30469 12.7734 6.51562 12.9844L10.1719 16.6406C10.3828 16.8516 10.7695 16.8516 10.9805 16.6406Z' fill='%2363E3D3'/></svg>");
}

.claryss-radio__input:focus-visible {
	outline: 2px solid var(--primary-400);
	outline-offset: 2px;
	border-radius: 50%;
}

.claryss-radio__label {
	font-size: 14px;
	line-height: 22px;
	font-weight: 700;
	color: var(--action-dark);
}

.claryss-radio:has(.claryss-radio__input:checked) .claryss-radio__label {
	color: var(--primary-400);
}

/* Reusable checkbox component (light backgrounds).
   Markup:
     <label class="claryss-checkbox">
         <input class="claryss-checkbox__input" type="checkbox" name="…" />
         <span class="claryss-checkbox__label">I agree</span>
     </label>
*/
.claryss-checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: 6px;
	cursor: pointer;
	user-select: none;
}

/* inline-flex overrides the [hidden] default, so hide explicitly (used by the
   JS-toggled credit-card consent checkbox). */
.claryss-checkbox[hidden] {
	display: none;
}

.claryss-checkbox__input {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	top: 1px;
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent center / contain no-repeat;
	cursor: pointer;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'><path d='M15.1562 3.4375C15.918 3.4375 16.5625 4.08203 16.5625 4.84375V15.1562C16.5625 15.9473 15.918 16.5625 15.1562 16.5625H4.84375C4.05273 16.5625 3.4375 15.9473 3.4375 15.1562V4.84375C3.4375 4.08203 4.05273 3.4375 4.84375 3.4375H15.1562ZM14.9805 15.1562C15.0684 15.1562 15.1562 15.0977 15.1562 14.9805V5.01953C15.1562 4.93164 15.0684 4.84375 14.9805 4.84375H5.01953C4.90234 4.84375 4.84375 4.93164 4.84375 5.01953V14.9805C4.84375 15.0977 4.90234 15.1562 5.01953 15.1562H14.9805Z' fill='%2305081F'/></svg>");
}

.claryss-checkbox:hover .claryss-checkbox__input:not(:checked) {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'><path d='M15.1562 3.4375C15.918 3.4375 16.5625 4.08203 16.5625 4.84375V15.1562C16.5625 15.9473 15.918 16.5625 15.1562 16.5625H4.84375C4.05273 16.5625 3.4375 15.9473 3.4375 15.1562V4.84375C3.4375 4.08203 4.05273 3.4375 4.84375 3.4375H15.1562ZM14.9805 15.1562C15.0684 15.1562 15.1562 15.0977 15.1562 14.9805V5.01953C15.1562 4.93164 15.0684 4.84375 14.9805 4.84375H5.01953C4.90234 4.84375 4.84375 4.93164 4.84375 5.01953V14.9805C4.84375 15.0977 4.90234 15.1562 5.01953 15.1562H14.9805Z' fill='%234AAA9E'/></svg>");
}

.claryss-checkbox:hover:not(:has(.claryss-checkbox__input:checked)) .claryss-checkbox__label {
	color: var(--primary-500);
}

.claryss-checkbox__input:checked {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'><path d='M18.1875 19.875H5.8125C4.86328 19.875 4.125 19.1367 4.125 18.1875V5.8125C4.125 4.89844 4.86328 4.125 5.8125 4.125H18.1875C19.1016 4.125 19.875 4.89844 19.875 5.8125V18.1875C19.875 19.1367 19.1016 19.875 18.1875 19.875Z' fill='%2363E3D3'/><path d='M10.9805 16.4297L17.4492 9.96094C17.6602 9.75 17.6602 9.39844 17.4492 9.1875L16.6406 8.37891C16.4297 8.16797 16.0781 8.16797 15.8672 8.37891L10.5938 13.6523L8.09766 11.1914C7.88672 10.9805 7.53516 10.9805 7.32422 11.1914L6.51562 12C6.30469 12.2109 6.30469 12.5625 6.51562 12.7734L10.1719 16.4297C10.3828 16.6758 10.7695 16.6758 10.9805 16.4297Z' fill='white'/></svg>");
}

.claryss-checkbox__input:focus-visible {
	outline: 2px solid var(--primary-500);
	outline-offset: 2px;
}

.claryss-checkbox__label {
	font-size: 14px;
	line-height: 22px;
	color: var(--secondary-700);
}

.claryss-checkbox__label a {
	color: var(--primary-500);
	text-decoration: none;
}

.claryss-checkbox__label a:hover,
.claryss-checkbox__label a:focus-visible {
	text-decoration: underline;
}

/* Mobile (<=767px): hide the WP admin bar and undo its layout compensation.
   - #wpadminbar: hide the bar itself.
   - :root margin-top: WP core injects `html { margin-top: 46px !important }`
     inline in <head>, after our stylesheet, so a plain `html` rule can't win
     on source order. `:root` has higher specificity than `html`, so this
     beats it even with !important.
   - body.admin-bar #page: the bar height is no longer reserved, so drop the
     calc() that subtracted --wp-admin--admin-bar--height. */
@media (max-width: 767px) {
	#wpadminbar {
		display: none;
	}

	:root {
		margin-top: 0 !important;
	}

	body.admin-bar #page {
		min-height: 100vh;
	}
}

/* ---------------------------------------------------------------------------
   Password field with a show/hide eye button — claryss_password_field() in
   inc/helpers.php, enhanced by assets/js/password-toggle.js.

   Lives here, in the sitewide stylesheet, because the component is used on both
   My Account and the Sign in page; account.css would only cover the first.

   Geometry matches the existing decorative field icons (the name fields in
   account.css): 20px icon, 15px from the right, 45px of right padding — so an
   icon you can actually click sits exactly where the others do.
   --------------------------------------------------------------------------- */
.claryss-password-field {
    position: relative;
}

/* The class is repeated on purpose. Every surface that hosts this field already
   pads its own inputs — `.woocommerce-account input.input-text` and
   `.woocommerce-EditAccountForm input.input-text` in account.css, `.sign-in__input`
   in the sign-in block — and those load after this file, so at equal specificity
   they would win the tie and let the text run under the icon. Doubling the class
   outweighs them all regardless of load order, without borrowing a class from
   any of those surfaces that this component shouldn't depend on. */
.claryss-password-field input.claryss-password-field__input.claryss-password-field__input {
    padding-right: 45px;
}

.claryss-password-field__toggle {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    background: none;
    /* The SVGs use currentColor, so the icon follows this. */
    color: var(--gray-300);
    cursor: pointer;
    line-height: 0;
}

.claryss-password-field__toggle:hover {
    color: var(--surface-page);
}

.claryss-password-field__toggle svg {
    display: block;
    width: 20px;
    height: 20px;
}

/* "Subscribers only" lock label (inc/post-access.php) — on article cards and on
   a locked article, only for a visitor who cannot read it. */
.claryss-subscribers-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	align-self: flex-start;
	padding: 3px 8px;
	border-radius: 6px;
	background-color: var(--surface-action);
	color: var(--primary-400);
	font-size: 12px;
	line-height: 16px;
	font-weight: 700;
	letter-spacing: 0.3px;
	white-space: nowrap;
}

.claryss-subscribers-badge svg {
	flex-shrink: 0;
}

