/*
Theme Name: Lakvast
Theme URI: https://smartgellak.nl/
Author: 1704Media
Description: Eigen theme voor Lakvast op smartgellak.nl: gellakwinkel, handleidingen en tools. Klassiek PHP-theme met WooCommerce-ondersteuning.
Version: 1.0.36
Requires PHP: 8.1
Text Domain: lakvast
*/

/* ---------- tokens ---------- */
:root {
	--lv-ink: #22161a;
	--lv-ink-soft: #5e4d52;
	--lv-cream: #f7f1ec;
	--lv-paper: #fffaf6;
	--lv-nude: #ecdcd3;
	--lv-lak: #9e2a3a;
	--lv-lak-deep: #5c1422;
	--lv-lak-night: #2c0d14;
	--lv-led: #ffd36b;
	--lv-ok: #2f6b4f;
	--lv-warn: #9a5b00;
	--lv-bad: #a1202f;
	--lv-line: rgba(34, 22, 26, .14);
	--lv-line-light: rgba(255, 250, 246, .22);
	--lv-font-head: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
	--lv-font-body: "Instrument Sans", "Segoe UI", system-ui, sans-serif;
	--lv-wrap: 1240px;
	--lv-text: 68ch;
	--lv-gutter: clamp(16px, 4vw, 40px);
	--lv-ease-out: cubic-bezier(.22, 1, .36, 1);
	--lv-ease-io: cubic-bezier(.65, 0, .35, 1);
	--lv-dur: 420ms;
	--lv-radius-s: 6px;
	--lv-radius-m: 14px;
	--lv-nail: 50% 50% 18px 18px / 46% 46% 18px 18px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--lv-cream);
	color: var(--lv-ink);
	font: 400 1.0625rem/1.65 var(--lv-font-body);
	-webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--lv-lak); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--lv-lak-deep); }
:focus-visible { outline: 3px solid var(--lv-lak); outline-offset: 3px; border-radius: 3px; }
h1, h2, h3, h4 { font-family: var(--lv-font-head); line-height: 1.08; letter-spacing: -.02em; margin: 0 0 .5em; font-weight: 700; color: var(--lv-ink); }
h1 { font-size: clamp(2.5rem, 6.2vw, 5.4rem); font-weight: 800; letter-spacing: -.035em; }
h2 { font-size: clamp(1.9rem, 3.6vw, 3.1rem); }
h3 { font-size: clamp(1.25rem, 1.8vw, 1.6rem); letter-spacing: -.01em; }
p { margin: 0 0 1.1em; }
.lv-skip { position: absolute; left: -9999px; }
.lv-skip:focus { left: 16px; top: 16px; z-index: 99; background: var(--lv-paper); padding: 10px 14px; }
.lv-wrap { width: min(100% - 2 * var(--lv-gutter), var(--lv-wrap)); margin-inline: auto; }
.lv-eyebrow { font: 600 .8rem/1.2 var(--lv-font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--lv-lak); margin: 0 0 1rem; }
.lv-lede { font-size: clamp(1.1rem, 1.5vw, 1.3rem); color: var(--lv-ink-soft); max-width: 46ch; }
.lv-btn {
	display: inline-flex; align-items: center; gap: .55em;
	padding: .95em 1.4em; border-radius: 999px; border: 0;
	background: var(--lv-lak); color: var(--lv-paper);
	font: 600 1rem/1 var(--lv-font-body); text-decoration: none; cursor: pointer;
	transition: background var(--lv-dur) var(--lv-ease-out), transform 160ms var(--lv-ease-out);
}
.lv-btn:hover { background: var(--lv-lak-deep); color: var(--lv-paper); }
.lv-btn:active { transform: scale(.97); }
.lv-btn--ghost { background: transparent; color: var(--lv-ink); box-shadow: inset 0 0 0 1.5px var(--lv-ink); }
.lv-btn--ghost:hover { background: var(--lv-ink); color: var(--lv-paper); }
.lv-btn--light { background: var(--lv-paper); color: var(--lv-lak-night); }
.lv-btn--light:hover { background: var(--lv-led); color: var(--lv-lak-night); }

/* ---------- header ---------- */
.lv-header { position: sticky; top: 0; z-index: 40; background: color-mix(in srgb, var(--lv-cream) 92%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--lv-line); }
.lv-header__bar { display: flex; align-items: center; gap: 28px; min-height: 68px; }
.lv-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--lv-ink); font: 800 1.45rem/1 var(--lv-font-head); letter-spacing: -.04em; }
.lv-logo svg { width: 22px; height: 28px; }
.lv-nav { display: flex; gap: 22px; margin-left: auto; }
.lv-nav a { color: var(--lv-ink); text-decoration: none; font-weight: 500; font-size: .98rem; padding: 6px 0; background: linear-gradient(var(--lv-lak), var(--lv-lak)) 0 100% / 0 2px no-repeat; transition: background-size var(--lv-dur) var(--lv-ease-out); }
.lv-nav a:hover, .lv-nav .current-menu-item > a { background-size: 100% 2px; color: var(--lv-ink); }
.lv-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; }
.lv-cart { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; color: var(--lv-ink); font-weight: 600; }
.lv-cart__count { min-width: 22px; height: 22px; border-radius: 99px; background: var(--lv-lak); color: var(--lv-paper); font-size: .75rem; display: inline-grid; place-items: center; padding: 0 6px; }
.lv-menu-toggle { display: none; }
@media (max-width: 900px) {
	.lv-nav { display: none; }
	.lv-menu-toggle { display: block; margin-left: auto; }
	.lv-menu-toggle summary { list-style: none; cursor: pointer; font-weight: 600; padding: 8px 0; }
	.lv-menu-toggle summary::-webkit-details-marker { display: none; }
	.lv-menu-toggle[open] .lv-mobile-nav { display: block; }
	.lv-mobile-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--lv-paper); border-bottom: 1px solid var(--lv-line); padding: 8px var(--lv-gutter) 20px; }
	.lv-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
	.lv-mobile-nav a { display: block; padding: 12px 0; border-bottom: 1px solid var(--lv-line); color: var(--lv-ink); text-decoration: none; font-weight: 600; }
	.lv-header__bar { gap: 16px; }
}

/* ---------- hero (home) ---------- */
.lv-hero { padding: clamp(36px, 6vw, 88px) 0 clamp(40px, 6vw, 96px); }
.lv-hero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.lv-hero h1 { margin-bottom: .35em; }
.lv-hero h1 em { font-style: normal; color: var(--lv-lak); position: relative; white-space: nowrap; }
.lv-hero h1 em::after { content: ""; position: absolute; left: 0; right: 0; bottom: .06em; height: .14em; background: var(--lv-lak); border-radius: 99px; transform-origin: left; transform: scaleX(var(--lv-stroke, 1)); opacity: .22; }
.lv-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.lv-hero__media { position: relative; }
.lv-hero__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 46% 46% 22px 22px / 34% 34% 22px 22px; }
.lv-hero__facts { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 30px; padding: 0; list-style: none; font-size: .95rem; color: var(--lv-ink-soft); }
.lv-hero__facts li { display: flex; gap: 8px; align-items: baseline; }
.lv-hero__facts b { color: var(--lv-ink); font-weight: 600; }
@media (max-width: 860px) {
	.lv-hero__grid { grid-template-columns: 1fr; }
	.lv-hero__media { order: -1; max-width: 520px; }
	.lv-hero__media img { aspect-ratio: 5 / 4; border-radius: 40% 40% 18px 18px / 46% 46% 18px 18px; }
}

/* lakstreek: de kop wordt 'gelakt' */
@media (prefers-reduced-motion: no-preference) {
	.lv-js .lv-hero h1 em::after { animation: lv-stroke 900ms var(--lv-ease-out) 300ms both; }
	.lv-js .lv-hero__media img { animation: lv-cure-in 1100ms var(--lv-ease-out) 120ms both; }
}
@keyframes lv-stroke { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes lv-cure-in { from { clip-path: inset(100% 0 0 0 round 46% 46% 22px 22px); filter: saturate(.4); } to { clip-path: inset(0 0 0 0 round 0); filter: none; } }

/* ---------- vier lagen (layering demo) ---------- */
.lv-layers { padding: clamp(56px, 8vw, 120px) 0; border-top: 1px solid var(--lv-line); }
.lv-layers__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.lv-nail-stage { position: relative; display: grid; place-items: center; min-height: 420px; }
.lv-finger { position: relative; width: min(220px, 52vw); aspect-ratio: 1 / 1.75; border-radius: 110px 110px 40px 40px; background: linear-gradient(180deg, #e8c4b0, #d9a98f); box-shadow: inset -14px 0 28px rgba(92, 40, 30, .16); }
.lv-nail { position: absolute; left: 50%; top: 9%; width: 62%; aspect-ratio: 1 / 1.22; transform: translateX(-50%); border-radius: var(--lv-nail); background: #f2d7cd; overflow: hidden; box-shadow: inset 0 -6px 10px rgba(120, 60, 50, .12); }
.lv-nail__layer { position: absolute; inset: 0; transform-origin: 50% 100%; clip-path: inset(100% 0 0 0); }
.lv-nail__layer--base { background: rgba(255, 236, 230, .75); }
.lv-nail__layer--c1 { background: #b8384a; }
.lv-nail__layer--c2 { background: var(--lv-lak); }
.lv-nail__layer--top { background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, .55) 44%, transparent 58%) , var(--lv-lak); background-size: 260% 100%, auto; }
.lv-lamp { position: absolute; top: -6px; left: 50%; width: 300px; height: 70px; transform: translateX(-50%); border-radius: 80px 80px 10px 10px; background: var(--lv-paper); box-shadow: 0 1px 0 var(--lv-line); opacity: 0; }
.lv-lamp::after { content: ""; position: absolute; left: 12%; right: 12%; bottom: -60px; height: 60px; background: radial-gradient(50% 100% at 50% 0, rgba(255, 211, 107, .55), transparent 70%); opacity: 0; }
.lv-steps { list-style: none; margin: 28px 0 0; padding: 0; counter-reset: lvstep; }
.lv-steps li { display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: baseline; padding: 16px 0; border-top: 1px solid var(--lv-line); color: var(--lv-ink-soft); transition: color var(--lv-dur) var(--lv-ease-out); }
.lv-steps li:last-child { border-bottom: 1px solid var(--lv-line); }
.lv-steps li::before { counter-increment: lvstep; content: "0" counter(lvstep); font: 700 .95rem/1 var(--lv-font-head); color: var(--lv-ink-soft); }
.lv-steps strong { color: var(--lv-ink); font-weight: 600; display: block; }
.lv-steps time { font: 600 .95rem/1 var(--lv-font-head); font-variant-numeric: tabular-nums; color: var(--lv-ink-soft); }
.lv-steps li.is-active { color: var(--lv-ink); }
.lv-steps li.is-active::before, .lv-steps li.is-active time { color: var(--lv-lak); }
.lv-steps li.is-done time::after { content: " ✓"; }
.lv-layers__replay { margin-top: 22px; }
/* states gezet door JS; zonder JS of bij reduced motion: eindbeeld */
.lv-nail-stage[data-state="done"] .lv-nail__layer,
.lv-no-js .lv-nail__layer { clip-path: inset(0 0 0 0); }
@media (prefers-reduced-motion: reduce) { .lv-nail__layer { clip-path: inset(0 0 0 0) !important; } }
.lv-nail__layer.is-painted { clip-path: inset(0 0 0 0); transition: clip-path 900ms var(--lv-ease-io); }
.lv-nail-stage.is-curing .lv-lamp, .lv-nail-stage.is-curing .lv-lamp::after { opacity: 1; transition: opacity 260ms var(--lv-ease-out); }
.lv-nail__layer--top.is-painted { animation: lv-sheen 1400ms var(--lv-ease-out) 600ms both; }
@keyframes lv-sheen { from { background-position: 160% 0, 0 0; } to { background-position: -60% 0, 0 0; } }
@media (max-width: 860px) { .lv-layers__grid { grid-template-columns: 1fr; } .lv-nail-stage { min-height: 340px; } }

/* ---------- ingrediëntencheck ---------- */
.lv-check { background: var(--lv-lak-night); color: var(--lv-paper); padding: clamp(56px, 8vw, 120px) 0; }
.lv-check h2, .lv-check h3 { color: var(--lv-paper); }
.lv-check .lv-eyebrow { color: var(--lv-led); }
.lv-check__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(28px, 5vw, 80px); align-items: start; }
.lv-check p { color: rgba(255, 250, 246, .82); }
.lv-check label { display: block; font-weight: 600; margin-bottom: 10px; }
.lv-check textarea { width: 100%; min-height: 170px; padding: 16px; border-radius: var(--lv-radius-m); border: 1px solid var(--lv-line-light); background: rgba(255, 250, 246, .06); color: var(--lv-paper); font: 400 1rem/1.5 ui-monospace, "SFMono-Regular", Menlo, monospace; resize: vertical; }
.lv-check textarea::placeholder { color: rgba(255, 250, 246, .45); }
.lv-check textarea:focus { outline: 2px solid var(--lv-led); outline-offset: 2px; }
.lv-check__row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; align-items: center; }
.lv-check__example { background: none; border: 0; color: var(--lv-led); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; font: inherit; padding: 0; }
.lv-result { margin-top: 26px; }
.lv-result__verdict { font: 700 clamp(1.3rem, 2.2vw, 1.8rem)/1.2 var(--lv-font-head); margin: 0 0 14px; }
.lv-result ul { list-style: none; margin: 0; padding: 0; }
.lv-result li { display: grid; grid-template-columns: 12px 1fr; gap: 14px; padding: 16px 0; border-top: 1px solid var(--lv-line-light); opacity: 0; transform: translateY(6px); animation: lv-row-in 360ms var(--lv-ease-out) forwards; }
.lv-result li::before { content: ""; width: 12px; height: 12px; border-radius: 50%; margin-top: .45em; background: var(--lv-ok); }
.lv-result li.is-bad::before { background: #ff6b7d; }
.lv-result li.is-warn::before { background: var(--lv-led); }
.lv-result li.is-info::before { background: #c9b6bb; }
.lv-result li strong { display: block; color: var(--lv-paper); }
.lv-result li span { color: rgba(255, 250, 246, .78); font-size: .97rem; }
.lv-result small { display: block; margin-top: 18px; color: rgba(255, 250, 246, .6); }
@keyframes lv-row-in { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .lv-result li { animation: none; opacity: 1; transform: none; } }
.lv-check__table { width: 100%; border-collapse: collapse; margin-top: 18px; font-size: .95rem; }
.lv-check__table th, .lv-check__table td { text-align: left; padding: 10px 8px 10px 0; border-bottom: 1px solid var(--lv-line-light); vertical-align: top; }
.lv-check__table th { font-weight: 600; color: var(--lv-led); }
@media (max-width: 860px) { .lv-check__grid { grid-template-columns: 1fr; } }
/* lampcheck: zelfde donkere sectie als de ingrediëntencheck */
.lv-lamp__form { display: grid; gap: 6px; }
.lv-lamp__form label, .lv-lamp__form legend { margin: 12px 0 6px; }
.lv-lamp__form select, .lv-lamp__form input[type=number] { width: 100%; padding: 13px 14px; border-radius: var(--lv-radius-m); border: 1px solid var(--lv-line-light); background: rgba(255, 250, 246, .06); color: var(--lv-paper); font: inherit; }
.lv-lamp__form select option { color: #22161a; }
.lv-lamp__form select:focus, .lv-lamp__form input:focus { outline: 2px solid var(--lv-led); outline-offset: 2px; }
.lv-lamp__fit { border: 0; padding: 0; margin: 0; }
.lv-lamp__fit legend { font-weight: 600; padding: 0; }
.lv-brittle__list label { display: flex; margin: 0 0 10px; align-items: flex-start; }
.lv-brittle__list input { margin-top: .35em; }
.lv-lamp__fit label { display: inline-flex; gap: 8px; align-items: center; font-weight: 400; margin: 0 18px 0 0; }
.lv-lampcheck .lv-result a:not(.lv-btn) { color: var(--lv-led); }
.lv-lampcheck .lv-result .lv-btn { margin-top: 18px; }


/* ---------- staalkaart (categorieën als nagels) ---------- */
.lv-swatches { padding: clamp(56px, 8vw, 120px) 0 clamp(40px, 6vw, 80px); }
.lv-swatches__note { margin: 10px 0 0; max-width: 46ch; color: var(--lv-ink-soft); font-size: 1rem; line-height: 1.5; }
.lv-swatches__head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 36px; }
.lv-swatches__row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(14px, 2vw, 28px); list-style: none; margin: 0; padding: 0; }
.lv-swatch a { display: block; text-decoration: none; color: var(--lv-ink); }
.lv-swatch__nail { aspect-ratio: 3 / 4; border-radius: var(--lv-nail); overflow: hidden; background: var(--lv-nude); }
.lv-swatch__nail img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--lv-ease-out); }
.lv-swatch a:hover img { transform: scale(1.06); }
.lv-swatch h3 { font-size: 1.05rem; margin: 14px 0 4px; }
.lv-swatch p { font-size: .9rem; color: var(--lv-ink-soft); margin: 0; }
@media (max-width: 900px) {
	.lv-swatches__row { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 44%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; }
	.lv-swatch { scroll-snap-align: start; }
}

/* ---------- handleidingen-index ---------- */
.lv-guides { padding: clamp(48px, 7vw, 110px) 0; border-top: 1px solid var(--lv-line); }
.lv-guides__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(28px, 5vw, 80px); }
.lv-guides ol { list-style: none; margin: 0; padding: 0; counter-reset: lvg; }
.lv-guides li { border-top: 1px solid var(--lv-line); }
.lv-guides li:last-child { border-bottom: 1px solid var(--lv-line); }
.lv-guides li a { display: grid; grid-template-columns: 56px 1fr auto; gap: 16px; align-items: center; padding: 22px 0; text-decoration: none; color: var(--lv-ink); transition: padding var(--lv-dur) var(--lv-ease-out); }
.lv-guides li a::before { counter-increment: lvg; content: counter(lvg, decimal-leading-zero); font: 700 1rem/1 var(--lv-font-head); color: var(--lv-lak); }
.lv-guides li a:hover { padding-left: 10px; }
.lv-guides li b { font: 700 clamp(1.15rem, 1.6vw, 1.45rem)/1.2 var(--lv-font-head); display: block; letter-spacing: -.01em; }
.lv-guides li span { color: var(--lv-ink-soft); font-size: .95rem; }
.lv-guides li i { font-style: normal; color: var(--lv-ink-soft); font-size: .88rem; white-space: nowrap; }
@media (max-width: 860px) { .lv-guides__grid { grid-template-columns: 1fr; } .lv-guides li a { grid-template-columns: 40px 1fr; } .lv-guides li i { display: none; } }

/* ---------- regels sinds 2025 ---------- */
.lv-rules { padding: clamp(48px, 7vw, 110px) 0; background: var(--lv-paper); }
.lv-rules__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: start; }
.lv-table { width: 100%; border-collapse: collapse; font-size: .97rem; }
.lv-table th, .lv-table td { text-align: left; padding: 14px 10px 14px 0; border-bottom: 1px solid var(--lv-line); vertical-align: top; }
.lv-table th { font-weight: 600; color: var(--lv-ink-soft); font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; }
.lv-pill { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: .82rem; font-weight: 600; white-space: nowrap; }
.lv-pill--bad { background: #f6d9dc; color: var(--lv-bad); }
.lv-pill--warn { background: #f7e7c6; color: var(--lv-warn); }
.lv-pill--ok { background: #d9ebe1; color: var(--lv-ok); }
@media (max-width: 860px) { .lv-rules__grid { grid-template-columns: 1fr; } }

/* ---------- blogstrip ---------- */
.lv-posts { padding: clamp(48px, 7vw, 110px) 0; }
.lv-posts__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 40px); }
.lv-posts__list a { text-decoration: none; color: var(--lv-ink); display: block; }
.lv-posts__list img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; border-radius: var(--lv-radius-m); margin-bottom: 14px; }
.lv-posts__list h3 { font-size: 1.2rem; }
.lv-posts__list p { color: var(--lv-ink-soft); font-size: .95rem; }
@media (max-width: 860px) { .lv-posts__list { grid-template-columns: 1fr; } }

/* ---------- pagina's en artikelen ---------- */
.lv-page-hero { padding: clamp(32px, 5vw, 72px) 0 clamp(24px, 4vw, 48px); }
.lv-page-hero__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(24px, 5vw, 72px); align-items: end; }
.lv-page-hero h1 { font-size: clamp(2.2rem, 5vw, 4.2rem); }
.lv-page-hero img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 40% 40% 18px 18px / 30% 30% 18px 18px; }
.lv-crumbs { font-size: .88rem; color: var(--lv-ink-soft); margin-bottom: 18px; }
.lv-crumbs a { color: var(--lv-ink-soft); }
@media (max-width: 860px) { .lv-page-hero__grid { grid-template-columns: 1fr; } }
.lv-content { padding: 0 0 clamp(56px, 8vw, 120px); }
.lv-prose { max-width: var(--lv-text); margin-inline: auto; }
.lv-prose > * + * { margin-top: 0; }
.lv-prose h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); margin-top: 1.8em; }
.lv-prose h3 { margin-top: 1.5em; }
.lv-prose ul, .lv-prose ol { padding-left: 1.2em; margin: 0 0 1.2em; }
.lv-prose li { margin-bottom: .45em; }
.lv-prose img { border-radius: var(--lv-radius-m); margin: 1.6em 0; }
.lv-prose figure { margin: 1.8em 0; }
.lv-prose figcaption { font-size: .88rem; color: var(--lv-ink-soft); margin-top: 8px; }
.lv-prose table { width: 100%; border-collapse: collapse; margin: 1.6em 0; font-size: .97rem; }
.lv-prose th, .lv-prose td { text-align: left; padding: 12px 10px 12px 0; border-bottom: 1px solid var(--lv-line); vertical-align: top; }
.lv-prose th { font-weight: 600; }
.lv-prose blockquote { margin: 1.6em 0; padding: 0 0 0 20px; border-left: 3px solid var(--lv-lak); font-size: 1.12rem; }
.lv-prose .lv-wide { width: min(100vw - 2 * var(--lv-gutter), 1040px); max-width: none; }
.lv-meta { color: var(--lv-ink-soft); font-size: .92rem; margin-top: 14px; }
.lv-note { padding: 18px 0 18px 20px; border-left: 3px solid var(--lv-led); margin: 1.6em 0; background: linear-gradient(90deg, rgba(255, 211, 107, .14), transparent 70%); }

/* ---------- uithardingstimer ---------- */
.lv-timer { display: grid; grid-template-columns: 300px 1fr; gap: clamp(24px, 4vw, 64px); align-items: center; padding: clamp(28px, 4vw, 48px) 0; border-top: 1px solid var(--lv-line); border-bottom: 1px solid var(--lv-line); margin: 2em 0; }
.lv-ring { position: relative; width: 260px; height: 260px; }
.lv-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.lv-ring circle { fill: none; stroke-width: 14; }
.lv-ring__track { stroke: var(--lv-nude); }
.lv-ring__bar { stroke: var(--lv-lak); stroke-linecap: round; transition: stroke-dashoffset 1s linear; }
.lv-ring.is-curing .lv-ring__bar { stroke: #e0a400; }
.lv-ring__label { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.lv-ring__time { font: 800 3.4rem/1 var(--lv-font-head); font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.lv-ring__step { font-size: .92rem; color: var(--lv-ink-soft); margin-top: 6px; }
.lv-timer__controls { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.lv-timer__plan { width: 100%; border-collapse: collapse; font-size: .95rem; }
.lv-timer__plan td, .lv-timer__plan th { padding: 9px 8px 9px 0; border-bottom: 1px solid var(--lv-line); text-align: left; }
.lv-timer__plan input { width: 72px; padding: 6px 8px; border: 1px solid var(--lv-line); border-radius: var(--lv-radius-s); font: inherit; background: var(--lv-paper); }
.lv-timer__plan tr.is-active td { color: var(--lv-lak); font-weight: 600; }
.lv-seg { display: inline-flex; border: 1.5px solid var(--lv-ink); border-radius: 99px; overflow: hidden; margin-bottom: 14px; }
.lv-seg button { border: 0; background: transparent; padding: .6em 1.1em; font: 600 .92rem/1 var(--lv-font-body); cursor: pointer; color: var(--lv-ink); }
.lv-seg button[aria-pressed="true"] { background: var(--lv-ink); color: var(--lv-paper); }
@media (max-width: 760px) { .lv-timer { grid-template-columns: 1fr; justify-items: center; } .lv-ring { width: 220px; height: 220px; } }

/* ---------- footer ---------- */
.lv-footer { background: var(--lv-lak-night); color: rgba(255, 250, 246, .78); padding: clamp(48px, 6vw, 88px) 0 32px; font-size: .95rem; }
.lv-footer a { color: var(--lv-paper); text-decoration: none; }
.lv-footer a:hover { color: var(--lv-led); }
.lv-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.lv-footer h3 { color: var(--lv-paper); font-size: 1rem; letter-spacing: 0; margin-bottom: 14px; }
.lv-footer ul { list-style: none; padding: 0; margin: 0; }
.lv-footer li { margin-bottom: 8px; }
.lv-footer__legal { margin-top: 48px; padding-top: 22px; border-top: 1px solid var(--lv-line-light); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: .85rem; color: rgba(255, 250, 246, .6); }
.lv-footer .lv-logo { color: var(--lv-paper); margin-bottom: 14px; }
@media (max-width: 860px) { .lv-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .lv-footer__grid { grid-template-columns: 1fr; } }

/* ---------- archief / blogindex ---------- */
.lv-archive { padding-bottom: clamp(56px, 8vw, 120px); }
.lv-archive__list { list-style: none; margin: 0; padding: 0; }
.lv-archive__list li { border-top: 1px solid var(--lv-line); }
.lv-archive__list a { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding: 22px 0; text-decoration: none; color: var(--lv-ink); align-items: center; }
.lv-archive__list img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--lv-radius-m); width: 100%; }
.lv-archive__list h2 { font-size: clamp(1.2rem, 2vw, 1.6rem); margin: 0 0 6px; }
.lv-archive__list p { margin: 0; color: var(--lv-ink-soft); }
@media (max-width: 640px) { .lv-archive__list a { grid-template-columns: 96px 1fr; gap: 14px; } }

/* WooCommerce basis (winkellaag komt in shop.css) */
.woocommerce-store-notice { display: none !important; }

/* ---------- FAQ (accordion) ---------- */
.lv-faq { margin: 0 0 2em; }
.lv-faq details { border-top: 1px solid var(--lv-line); }
.lv-faq details:last-child { border-bottom: 1px solid var(--lv-line); }
.lv-faq summary { list-style: none; cursor: pointer; padding: 20px 40px 20px 0; position: relative; font: 700 clamp(1.05rem, 1.5vw, 1.25rem)/1.3 var(--lv-font-head); letter-spacing: -.01em; }
.lv-faq summary::-webkit-details-marker { display: none; }
.lv-faq summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 12px; height: 12px; border-right: 2px solid var(--lv-lak); border-bottom: 2px solid var(--lv-lak); transform: translateY(-70%) rotate(45deg); transition: transform var(--lv-dur) var(--lv-ease-out); }
.lv-faq details[open] summary::after { transform: translateY(-30%) rotate(225deg); }
.lv-faq details > p { margin: 0 0 1em; color: var(--lv-ink-soft); }
.lv-faq details[open] > p { animation: lv-faq-in 320ms var(--lv-ease-out); }
@keyframes lv-faq-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .lv-faq summary::after { transition: none; } .lv-faq details[open] > p { animation: none; } }
.lv-timer__confirm { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0 4px; font-size: .95rem; cursor: pointer; }
.lv-timer__confirm input { width: 20px; height: 20px; accent-color: var(--lv-lak); margin-top: 2px; }
.lv-btn:disabled { opacity: .45; cursor: not-allowed; }

/* ---------- verfijning v1.0.1 ---------- */
.lv-btn { white-space: nowrap; }
@media (max-width: 640px) { .lv-swatches__head { flex-direction: column; align-items: flex-start; gap: 14px; } }
.lv-finger { background: linear-gradient(90deg, #d9a88e 0%, #ecc8b4 38%, #e7bea8 62%, #cf9a80 100%); box-shadow: inset 0 -30px 40px rgba(120, 60, 45, .12); }
.lv-finger::after { content: ""; position: absolute; left: 22%; right: 22%; bottom: 26%; height: 2px; border-radius: 2px; background: rgba(120, 60, 45, .18); box-shadow: 0 10px 0 rgba(120, 60, 45, .12); }
.lv-nail { box-shadow: 0 0 0 5px rgba(232, 190, 170, .9), inset 0 -6px 10px rgba(120, 60, 45, .12); }
.lv-nail::after { content: ""; position: absolute; left: 14%; top: 10%; width: 18%; height: 46%; border-radius: 99px; background: linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,0)); pointer-events: none; z-index: 2; }
.lv-lamp { top: -34px; width: 280px; height: 64px; border-radius: 140px 140px 12px 12px; background: linear-gradient(180deg, #fffaf6, #efe6df); box-shadow: inset 0 -2px 0 rgba(34,22,26,.08); }
@media (max-width: 860px) { .lv-nail-stage { min-height: 300px; padding-top: 30px; } .lv-finger { width: 150px; } .lv-lamp { width: 220px; height: 54px; top: -10px; } }

.lv-timer__plan input[aria-invalid="true"] { border-color: var(--lv-bad); outline: 2px solid rgba(161,32,47,.25); }
@media (max-width: 640px) { .lv-prose table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: normal; } .lv-prose th, .lv-prose td { min-width: 120px; } }

/* globale reduced-motion-guard: alle overgangen en animaties stil */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; transition-delay: 0s !important; animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
	html { scroll-behavior: auto; }
}
.lv-timer__plan input[type="text"] { width: 100%; min-width: 150px; padding: 6px 8px; border: 1px solid var(--lv-line); border-radius: var(--lv-radius-s); font: inherit; background: var(--lv-paper); }
.lv-timer__plan input[aria-invalid="true"] { border-color: var(--lv-bad); }
.lv-timer__del { border: 0; background: none; font-size: 1.3rem; line-height: 1; color: var(--lv-ink-soft); cursor: pointer; padding: 4px 8px; }
.lv-timer__del:disabled { opacity: .3; cursor: not-allowed; }
.lv-timer__add { margin-top: 10px; border: 0; background: none; color: var(--lv-lak); font: 600 .95rem/1 var(--lv-font-body); cursor: pointer; padding: 6px 0; }
.lv-timer__add:disabled { opacity: .4; cursor: not-allowed; }
/* regeltabel en categorie-tabellen op mobiel: binnen eigen vlak scrollen */
.lv-rules__grid > *, .shop-empty__desc, .shop-head__desc { min-width: 0; }
@media (max-width: 860px) {
	.lv-table, .shop-empty__desc table, .shop-head__desc table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.lv-table td, .lv-table th { min-width: 130px; }
}
.shop-empty__desc table, .shop-head__desc table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: .95rem; }
.shop-empty__desc th, .shop-empty__desc td, .shop-head__desc th, .shop-head__desc td { text-align: left; padding: 10px 10px 10px 0; border-bottom: 1px solid var(--lv-line); vertical-align: top; }
.shop-empty__desc h2 { font-size: clamp(1.3rem, 2vw, 1.7rem); margin-top: 1.4em; }

/* ---------- film (motion graphic) ---------- */
.lv-film { padding: 0 0 clamp(40px, 6vw, 88px); }
.lv-film .lv-wrap { position: relative; }
.lv-film__video { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 22px; background: var(--lv-nude); display: block; }
.lv-film__toggle { position: absolute; right: calc(var(--lv-gutter) + 0px); bottom: 16px; margin-right: 16px; border: 0; border-radius: 99px; padding: .6em 1.1em; background: rgba(255, 250, 246, .9); color: var(--lv-ink); font: 600 .9rem/1 var(--lv-font-body); cursor: pointer; }
@media (max-width: 860px) { .lv-film__toggle { right: 8px; bottom: 10px; } }
