/* ==========================================================================
   The London Beauty Bar — thema
   Design DNA: champagnegoud, warm espresso en ivoor · Cormorant Garamond + Jost
   Mobile-first
   ========================================================================== */

/* Lettertypen, zelf gehost (OFL; uit Google Fonts, alleen latin en latin-ext): geen verzoek naar Google
   en dus geen IP-adres naar Google zonder toestemming, en geen extra verbinding die het tonen ophoudt */
@font-face{ font-family:'Allura'; font-style:normal; font-weight:400; font-display:swap; src:url('../fonts/allura-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'Allura'; font-style:normal; font-weight:400; font-display:swap; src:url('../fonts/allura-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:'Cormorant Garamond'; font-style:italic; font-weight:400 500; font-display:swap; src:url('../fonts/cormorant-garamond-italic-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'Cormorant Garamond'; font-style:italic; font-weight:400 500; font-display:swap; src:url('../fonts/cormorant-garamond-italic-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:'Cormorant Garamond'; font-style:normal; font-weight:400 600; font-display:swap; src:url('../fonts/cormorant-garamond-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'Cormorant Garamond'; font-style:normal; font-weight:400 600; font-display:swap; src:url('../fonts/cormorant-garamond-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:'Jost'; font-style:normal; font-weight:300 600; font-display:swap; src:url('../fonts/jost-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'Jost'; font-style:normal; font-weight:300 600; font-display:swap; src:url('../fonts/jost-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root{
	--espresso:      #1E1710;
	--ink:           #241C15;
	--ink-soft:      #5A4F43;
	--ink-muted:     #706556;   /* ≥ 4.5:1 op crème en wit */
	--gold:          #B08D57;
	--gold-deep:     #A57F45;
	--gold-light:    #C9A369;
	--gold-pale:     #D9BC8C;
	--gold-text:     #7A623C;   /* goud als tekst op licht: ≥ 4.5:1 (lijnen en knoppen houden --gold) */
	--ivory:         #FAF6EF;
	--cream:         #F1EADD;
	--line:          #E6DCC9;
	--line-soft:     #F0E8D8;
	--line-input:    #D9CCB4;
	--grad-gold:     linear-gradient(135deg,#A57F45,#C9A369);
	--grad-dark:     linear-gradient(150deg,#2E2318,#1C150E);
	--grad-photo:    linear-gradient(150deg,#5A4530,#2B2013);
	--footer-bg:     #1B1510;
	--hero-bg:       linear-gradient(170deg,#38291A 0%,#241C13 60%,#1B1510 100%);
	--accent:        var(--gold-pale);    /* tekst-accenten op donker (≥ 4.5:1); label: accentkleur */
	--serif:         'Cormorant Garamond', Georgia, serif;
	--sans:          'Jost', 'Helvetica Neue', Arial, sans-serif;
	--script:        'Allura', 'Brush Script MT', cursive;   /* handgeschreven accenten (labels) */
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
	margin:0;
	background:var(--ivory);
	color:var(--ink);
	font-family:var(--sans);
	font-weight:300;
	font-size:15px;
	line-height:1.7;
	/* Cormorant Garamond heeft standaard 'oude' cijfers: de 1 lijkt dan op een kleine I */
	font-variant-numeric:lining-nums;
}
img{ max-width:100%; height:auto; }
a{ color:var(--gold-text); text-decoration:none; }
/* links in lopende tekst: niet alleen aan de kleur te herkennen */
p a:not(.btn), .wysiwyg a:not(.btn), .lb-content a:not(.btn), .faq-a a{ text-decoration:underline; text-underline-offset:2px; }
a:hover{ color:var(--ink); }
/* focus in de huisstijl i.p.v. het blauw van de browser, en alleen bij toetsenbordgebruik (niet na een klik);
   wie met tab navigeert moet blijven zien waar hij is (WCAG 2.4.7): rand ≥ 3:1 op de achtergrond */
:focus-visible{ outline:2px solid var(--gold-text); outline-offset:3px; }
:focus:not(:focus-visible){ outline:none; }
.topbar :focus-visible, .cta-dark :focus-visible, .site-footer :focus-visible, .lb-hero :focus-visible,
.lb-section--merk :focus-visible, .lb-section--donker :focus-visible, .lb-cta-brand :focus-visible{ outline-color:var(--gold-pale); }
input[type="checkbox"], input[type="radio"]{ accent-color:var(--gold-text); }
[tabindex="-1"]:focus{ outline:none; }
h1,h2,h3,h4,h5{ font-family:var(--serif); font-weight:500; line-height:1.15; color:var(--ink); margin:0 0 14px; }
h1{ font-size:38px; }
h2{ font-size:28px; }
h3{ font-size:22px; }
p{ margin:0 0 1em; }
::selection{ background:var(--gold-light); color:#fff; }

.container{ max-width:1240px; margin:0 auto; padding:0 26px; }

/* --------------------------------------------------------------------------
   Typo-hulpjes
   -------------------------------------------------------------------------- */
.kicker{
	display:block;
	font-weight:500; font-size:10.5px;
	letter-spacing:.3em; text-transform:uppercase;
	color:var(--gold-text);
	margin-bottom:12px;
}
.kicker--light{ color:var(--accent); }
h2.kicker{ font-family:var(--sans); line-height:1.4; }
.serif-italic{ font-family:var(--serif); font-style:italic; }
.muted{ color:var(--ink-muted); }
.stars{ color:var(--accent); letter-spacing:3px; font-size:13px; }
.review-card .stars, .lb-score .stars{ color:var(--gold); }

/* --------------------------------------------------------------------------
   Knoppen
   -------------------------------------------------------------------------- */
.btn{
	display:inline-block;
	font-family:var(--sans);
	font-weight:500; font-size:12.5px;
	letter-spacing:.22em; text-transform:uppercase;
	padding:17px 36px;
	border:0; cursor:pointer;
	text-align:center;
	transition:opacity .2s ease, background .2s ease;
	-webkit-appearance:none; appearance:none;
	line-height:1.2;
}
.btn-gold{ background:var(--grad-gold); color:#FBF7EF !important; }
.btn-gold:hover{ opacity:.9; color:#FBF7EF; }
.btn-outline{
	background:transparent;
	border:1px solid var(--gold);
	color:var(--ink) !important;
	padding:16px 36px;
}
.btn-outline:hover{ background:rgba(176,141,87,.08); }
.btn-outline--light{ border-color:rgba(201,163,105,.6); color:#EFE7D8 !important; }
.btn-outline--light:hover{ background:rgba(201,163,105,.12); }
.btn-block{ display:block; width:100%; }
.link-gold{
	font-weight:500; font-size:12px;
	letter-spacing:.18em; text-transform:uppercase;
	color:var(--gold-text);
	border-bottom:1px solid var(--gold-light);
	padding-bottom:3px;
}

/* --------------------------------------------------------------------------
   Topbar + header
   -------------------------------------------------------------------------- */
.topbar{
	background:var(--espresso); color:var(--gold-pale);
	text-align:center;
	font-weight:400; font-size:12px; letter-spacing:.12em;
	padding:9px 16px;
}
.site-header{
	background:var(--ivory);
	border-bottom:1px solid var(--line);
	position:sticky; top:0; z-index:100;
}
.site-header .container{
	display:flex; align-items:center; justify-content:space-between;
	height:64px; gap:16px;
}
.site-header .logo img{ height:22px; width:auto; display:block; }
.site-header .logo{ display:flex; align-items:center; gap:10px; }
.lang-switch{ display:flex; align-items:center; gap:2px; font-size:11.5px; letter-spacing:.14em; }
.lang-switch a{ color:var(--ink-soft); padding:6px 5px; }
.lang-switch a + a::before{ content:''; display:inline-block; width:1px; height:10px; background:var(--line-input); margin:0 7px 0 -3px; vertical-align:-1px; }
.lang-switch a.active{ color:var(--gold-text); font-weight:500; }
.header-actions{ display:flex; align-items:center; gap:18px; }
.header-phone{ display:none; font-weight:300; font-size:13px; color:var(--ink-soft); }
.header-book{ display:none; }
.cart-link{ position:relative; display:inline-flex; color:var(--ink); }
.cart-link svg{ display:block; }
.cart-count{
	position:absolute; top:-7px; right:-9px;
	background:var(--gold); color:#fff;
	font-weight:500; font-size:9px;
	width:15px; height:15px; border-radius:50%;
	display:flex; align-items:center; justify-content:center;
}
.nav-toggle{
	background:none; border:0; padding:6px; cursor:pointer;
	display:inline-flex; color:var(--ink);
}
.main-nav{ display:none; }
.main-nav a{
	font-weight:400; font-size:13px; letter-spacing:.08em;
	color:#3A3128; padding-bottom:2px;
}
.main-nav a:hover,
.main-nav a.active{ color:var(--gold-text); border-bottom:1px solid var(--gold-light); }

/* mobiel menu */
.mobile-nav{
	display:none;
	background:var(--ivory);
	border-bottom:1px solid var(--line);
}
.mobile-nav.open{ display:block; }
.mobile-nav a{
	display:block;
	padding:15px 26px;
	font-weight:400; font-size:14px; letter-spacing:.08em;
	color:var(--ink);
	border-top:1px solid var(--line-soft);
}
.mobile-nav a.sub{ padding-left:44px; color:var(--ink-soft); font-size:13px; }

@media(min-width:992px){
	.nav-toggle{ display:none; }
	.mobile-nav{ display:none !important; }
	.site-header .container{ height:78px; }
	.site-header .logo img{ height:26px; }
	.main-nav{ display:flex; gap:30px; }
	.header-phone{ display:inline; }
	.header-book{ display:inline-block; padding:13px 26px; font-size:11.5px; letter-spacing:.2em; }
}

/* dropdown behandelingen (desktop) */
.nav-item{ position:relative; }
.nav-item .dropdown{
	display:none;
	position:absolute; top:100%; left:-20px;
	background:#fff; border:1px solid var(--line);
	box-shadow:0 10px 30px rgba(36,28,21,.08);
	min-width:220px; padding:10px 0;
	z-index:120;
}
.nav-item:hover .dropdown{ display:block; }
.nav-item .dropdown a{
	display:block; padding:9px 22px;
	border-bottom:0; font-size:13px; color:var(--ink-soft);
}
.nav-item .dropdown a:hover{ color:var(--gold); border-bottom:0; }

/* --------------------------------------------------------------------------
   Hero (homepage)
   -------------------------------------------------------------------------- */
.hero{
	background:var(--hero-bg);
	color:var(--ivory);
}
.hero-inner{ padding:52px 0 40px; }
.hero h1{
	color:var(--ivory);
	font-size:40px; line-height:1.1;
	margin-bottom:14px;
}
.hero .lead{
	font-weight:300; font-size:14.5px; line-height:1.7;
	color:rgba(250,246,239,.75);
	margin-bottom:26px; max-width:440px;
}
.hero-cta{ display:flex; flex-direction:column; gap:12px; }
.hero-rating{
	display:flex; align-items:center; gap:10px;
	margin-top:22px;
	font-weight:300; font-size:12.5px; color:rgba(250,246,239,.7);
}
.hero-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-photo{
	position:relative; overflow:hidden;
	min-height:270px;
	background:var(--grad-photo);
	border-top:1px solid rgba(201,163,105,.25);
	display:flex; align-items:center; justify-content:center;
	background-size:cover; background-position:center;
}
.photo-placeholder{
	font-family:var(--serif); font-style:italic; font-size:14px;
	color:rgba(217,188,140,.55);
}

@media(min-width:992px){
	.hero-grid{ display:grid; grid-template-columns:1.05fr 1fr; }
	.hero-inner{ padding:84px 64px 70px 0; }
	.hero h1{ font-size:62px; }
	.hero .lead{ font-size:16px; line-height:1.75; }
	.hero-cta{ flex-direction:row; gap:16px; }
	.hero-photo{ min-height:560px; border-top:0; }
}

/* USP-balk */
.uspbar{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--ivory); }
.uspbar-grid{ display:grid; grid-template-columns:1fr; }
.uspbar-grid div{
	padding:14px 22px; text-align:center;
	font-weight:400; font-size:13px; letter-spacing:.06em; color:var(--ink-soft);
	border-top:1px solid var(--line);
}
.uspbar-grid div:first-child{ border-top:0; }
@media(min-width:768px){
	.uspbar-grid{ grid-template-columns:repeat(3,1fr); }
	.uspbar-grid div{ padding:22px; border-top:0; border-right:1px solid var(--line); }
	.uspbar-grid div:last-child{ border-right:0; }
}

/* --------------------------------------------------------------------------
   Secties
   -------------------------------------------------------------------------- */
.section{ padding:44px 0; }
.section--cream{ background:var(--cream); }
.section-head{ margin-bottom:22px; }
.section-head h1, .section-head h2{ font-size:28px; margin-bottom:0; }
@media(min-width:992px){
	.section{ padding:70px 0; }
	.section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:34px; }
	.section-head h1, .section-head h2{ font-size:40px; }
}

/* Behandelingen-grid */
.treatment-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.treatment-card{
	background:#fff; border:1px solid var(--line);
	display:block; color:var(--ink);
}
.treatment-card .thumb{
	height:120px;
	display:flex; align-items:center; justify-content:center;
	background-size:cover; background-position:center;
}
.treatment-card .thumb .photo-placeholder{ font-size:12px; color:#8C7355; }
.treatment-card .body{
	padding:13px 14px;
	display:flex; justify-content:space-between; align-items:center; gap:8px;
}
.treatment-card .body h3{
	font-family:var(--serif); font-weight:600; font-size:15.5px; margin:0;
}
.treatment-card .arrow{ color:var(--gold); }
.treatment-card .excerpt,
.treatment-card .more{ display:none; }
@media(min-width:992px){
	.treatment-grid{ grid-template-columns:repeat(3,1fr); gap:22px; }
	.treatment-card .thumb{ height:230px; }
	.treatment-card .body{ display:block; padding:20px 22px 22px; }
	.treatment-card .body h3{ font-size:21px; margin-bottom:5px; }
	.treatment-card .arrow{ display:none; }
	.treatment-card .excerpt{
		display:block;
		font-weight:300; font-size:13px; line-height:1.6; color:var(--ink-muted);
		margin-bottom:12px;
	}
	.treatment-card .more{
		display:inline-block;
		font-weight:500; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
		color:var(--gold-text);
	}
}

/* gradient-varianten voor foto-placeholders */
.ph-1{ background-image:linear-gradient(150deg,#E3D5BC,#C8B18B); }
.ph-2{ background-image:linear-gradient(150deg,#D9C8A9,#B99B72); }
.ph-3{ background-image:linear-gradient(150deg,#EADDC7,#D2BC98); }
.ph-4{ background-image:linear-gradient(150deg,#DECCB0,#C0A47C); }
.ph-5{ background-image:linear-gradient(150deg,#E6D8C0,#CBB48D); }
.ph-6{ background-image:linear-gradient(150deg,#D9C8A9,#BA9C73); }
.ph-p1{ background-image:linear-gradient(160deg,#F3ECE0,#DECFB4); }
.ph-p2{ background-image:linear-gradient(160deg,#EFE6D5,#D6C3A0); }
.ph-p3{ background-image:linear-gradient(160deg,#F1E8D8,#DBC9A8); }
.ph-p4{ background-image:linear-gradient(160deg,#EFE4CF,#D9C29A); }
.ph-map{ background-image:linear-gradient(150deg,#E3DACA,#C9BCA2); }

/* Stappen */
.steps{ display:flex; flex-direction:column; }
.step{
	display:flex; gap:18px; align-items:baseline;
	padding:16px 0; border-top:1px solid var(--line);
}
.steps .step:last-child{ border-bottom:1px solid var(--line); }
.step .num{ font-family:var(--serif); font-size:24px; color:var(--gold-text); flex:none; }
.step h3{ font-family:var(--sans); font-weight:500; font-size:15px; line-height:1.3; margin:0; color:var(--ink); }
.step p{ font-weight:300; font-size:13px; color:var(--ink-muted); margin:0; }
@media(min-width:992px){
	.steps{ flex-direction:row; gap:40px; }
	.step{ flex:1; border:0 !important; padding:0; gap:20px; }
	.step .num{ font-size:34px; }
	.step h3{ font-size:16px; margin-bottom:4px; }
	.step p{ font-size:13.5px; line-height:1.6; }
}

/* Productkaarten */
.product-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.product-card{
	background:#fff; border:1px solid var(--line);
	position:relative; display:flex; flex-direction:column;
	color:var(--ink);
}
.product-card .badge{
	position:absolute; top:10px; left:10px; z-index:2;
	background:var(--gold-text); color:#fff;
	font-weight:500; font-size:9px; letter-spacing:.14em; text-transform:uppercase;
	padding:4px 8px;
}
.product-card .badge--dark{ background:var(--ink); color:var(--gold-pale); }
.product-card .thumb{
	height:150px;
	display:flex; align-items:center; justify-content:center;
	background-size:cover; background-position:center;
}
.product-card .thumb .photo-placeholder{ font-size:11px; color:#8C7355; }
.product-card .body{ padding:12px 13px 14px; flex:1; display:flex; flex-direction:column; }
.product-card .brand{
	font-weight:500; font-size:9.5px; letter-spacing:.2em; text-transform:uppercase;
	color:var(--gold-text);
}
.product-card .name{
	font-family:var(--serif); font-weight:600; font-size:15px; line-height:1.25;
	color:var(--ink); margin:3px 0 7px; flex:1;
}
.product-card .foot{ display:flex; justify-content:space-between; align-items:center; }
.product-card .price{ font-weight:400; font-size:13.5px; color:var(--ink-soft); }
.product-card .add{
	width:32px; height:32px;
	border:1px solid var(--gold); color:var(--gold); background:none;
	display:flex; align-items:center; justify-content:center;
	font-size:17px; cursor:pointer; line-height:1;
	transition:background .15s ease,color .15s ease;
}
.product-card .add:hover{ background:var(--gold); color:#fff; }
@media(min-width:992px){
	.product-grid{ grid-template-columns:repeat(4,1fr); gap:20px; }
	.product-card .thumb{ height:190px; }
	.product-card .body{ padding:14px 16px 16px; }
	.product-card .name{ font-size:16.5px; }
	.product-card .price{ font-size:14px; }
}

/* Reviews */
.review-grid{ display:grid; grid-template-columns:1fr; gap:22px; }
.review-card{
	border:1px solid var(--line); background:#fff;
	padding:28px; text-align:left;
}
.review-card .quote{
	font-family:var(--serif); font-style:italic; font-size:17px; line-height:1.5;
	color:var(--ink); margin:14px 0;
}
.review-card .author{
	font-weight:500; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
	color:var(--ink-muted);
}
@media(min-width:992px){
	.review-grid{ grid-template-columns:repeat(3,1fr); }
}

/* Instagram feed */
.section--instagram{
	background:#111;
	padding:58px 0;
}
.instagram-head{
	text-align:center;
	margin-bottom:34px;
}
.instagram-head h2{
	color:#B7A88F;
	font-size:24px;
	margin:16px 0 0;
}
.instagram-mark{
	width:35px;
	height:35px;
	color:#fff;
	stroke:currentColor;
	fill:none;
	stroke-width:1.8;
	stroke-linecap:round;
	stroke-linejoin:round;
}
.instagram-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:0;
	max-width:1060px;
	margin:0 auto;
}
.instagram-card{
	display:block;
	color:var(--ivory);
	overflow:hidden;
	background:#211a13;
}
.instagram-photo{
	position:relative;
	aspect-ratio:1/1;
	background:var(--grad-photo);
	background-size:cover;
	background-position:center;
	display:flex;
	align-items:center;
	justify-content:center;
}
.instagram-photo::after{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(180deg,rgba(30,23,16,0) 45%,rgba(30,23,16,.74) 100%);
	opacity:.75;
	transition:opacity .2s ease;
}
.instagram-card:hover .instagram-photo::after{ opacity:.95; }
.instagram-photo .photo-placeholder{ color:rgba(250,246,239,.72); }
.instagram-overlay{
	position:absolute;
	left:14px;
	right:14px;
	bottom:13px;
	z-index:1;
	display:flex;
	align-items:center;
	gap:8px;
	min-width:0;
	font-weight:400;
	font-size:12px;
	line-height:1.35;
	color:rgba(250,246,239,.9);
}
.instagram-caption{
	overflow:hidden;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
}
.instagram-icon{
	flex:none;
	width:24px;
	height:24px;
	border:1px solid rgba(217,188,140,.68);
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--gold-pale);
	font-size:17px;
	line-height:1;
}
.instagram-follow{
	text-align:center;
	margin-top:28px;
}
.section--instagram .link-gold{
	color:var(--gold-pale);
	border-bottom-color:rgba(217,188,140,.7);
}
@media(min-width:992px){
	.section--instagram{ padding:76px 0 86px; }
	.instagram-head{ margin-bottom:54px; }
	.instagram-head h2{ font-size:29px; }
	.instagram-grid{ grid-template-columns:repeat(4,1fr); }
	.instagram-overlay{ left:18px; right:18px; bottom:17px; font-size:13px; }
}

/* CTA-blok */
.cta-dark{
	background:var(--grad-dark);
	padding:46px 26px; text-align:center;
}
.cta-dark h2{ color:var(--ivory); font-size:27px; margin-bottom:10px; }
.cta-dark p{ font-weight:300; font-size:13.5px; color:rgba(250,246,239,.7); margin-bottom:22px; }
@media(min-width:992px){
	.cta-dark{ padding:72px 48px; }
	.cta-dark h2{ font-size:42px; }
	.cta-dark p{ font-size:15px; margin-bottom:28px; }
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.site-footer{ background:var(--footer-bg); color:#B7A88F; }
.footer-grid{
	display:grid; grid-template-columns:1fr;
	gap:28px;
	padding:40px 0;
	border-bottom:1px solid rgba(201,163,105,.2);
}
.site-footer img.footer-logo{ height:24px; width:auto; margin-bottom:18px; }
.site-footer .col-title{
	font-weight:500; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
	color:var(--gold-pale); margin-bottom:14px;
}
.site-footer a{ color:#B7A88F; }
.site-footer a:hover{ color:var(--gold-pale); }
.footer-links{ font-weight:300; font-size:13px; line-height:2; }
.footer-links a{ display:block; }
.footer-bottom{
	display:flex; flex-direction:column; gap:6px;
	justify-content:space-between;
	padding:16px 0 90px;
	font-weight:300; font-size:11px; color:#968A78;
}
.footer-bottom a{ color:#968A78; }
@media(min-width:768px){
	.footer-grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding:56px 0 40px; }
	.footer-bottom{ flex-direction:row; padding:18px 0 24px; font-size:11.5px; }
}

/* Sticky mobiele actiebalk */
.action-bar{
	position:fixed; bottom:0; left:0; right:0; z-index:90;
	background:#fff; border-top:1px solid var(--line);
	padding:12px 16px;
	display:flex; gap:10px;
}
.action-bar .btn{ padding:14px 0; font-size:11.5px; letter-spacing:.18em; flex:1; }
.action-bar .btn-gold{ flex:1.6; }
@media(min-width:992px){
	.action-bar{ display:none; }
}

/* --------------------------------------------------------------------------
   Behandelpagina
   -------------------------------------------------------------------------- */
.breadcrumb{
	font-weight:300; font-size:11.5px; color:var(--ink-muted);
	margin:20px 0 14px;
}
.breadcrumb a{ color:var(--ink-muted); }
.breadcrumb .current{ color:var(--gold-text); }

.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{
	border:1px solid var(--line-input); color:var(--gold-text);
	font-weight:400; font-size:11px; letter-spacing:.12em; text-transform:uppercase;
	padding:7px 12px;
}
.treatment-hero{ padding-bottom:26px; }
.treatment-hero h1{ font-size:34px; margin-bottom:12px; }
.treatment-hero .lead{
	font-weight:300; font-size:14px; line-height:1.7; color:var(--ink-soft);
	margin-bottom:20px; max-width:460px;
}
.treatment-photo{
	height:220px;
	background:var(--grad-photo);
	display:flex; align-items:center; justify-content:center;
	background-size:cover; background-position:center;
}
@media(min-width:992px){
	.treatment-hero-grid{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
	.treatment-hero{ padding:20px 56px 56px 0; }
	.treatment-hero h1{ font-size:52px; }
	.treatment-hero .lead{ font-size:15.5px; line-height:1.75; }
	.treatment-photo{ height:auto; min-height:420px; }
}

/* prijstabel */
.price-card{ background:#fff; border:1px solid var(--line); padding:6px 20px; }
.price-row{
	display:flex; justify-content:space-between; align-items:baseline;
	padding:13px 0; border-bottom:1px solid var(--line-soft);
}
.price-row:last-child{ border-bottom:0; }
.price-row .label{ font-weight:400; font-size:14px; color:var(--ink); }
.price-row .amount{ font-family:var(--serif); font-weight:600; font-size:18px; color:var(--ink); }
.price-note{ font-weight:300; font-size:11.5px; color:var(--ink-muted); margin-top:10px; }
@media(min-width:992px){
	.treatment-body{ display:grid; grid-template-columns:1fr 400px; gap:56px; align-items:start; }
	.price-card--sticky{ position:sticky; top:98px; padding:28px 30px; }
	.price-card--sticky .btn{ margin-top:16px; }
}

/* FAQ / accordeon */
.faq{ border:1px solid var(--line); background:#fff; }
.faq-item{ border-bottom:1px solid var(--line-soft); }
.faq-item:last-child{ border-bottom:0; }
.faq-q{
	width:100%;
	display:flex; justify-content:space-between; align-items:center; gap:12px;
	padding:16px 18px;
	background:none; border:0; cursor:pointer; text-align:left;
	font-family:var(--sans); font-weight:500; font-size:14px; color:var(--ink);
}
.faq-q .icon{ color:var(--gold); font-size:18px; line-height:1; flex:none; }
.faq-a{
	display:none;
	padding:0 18px 16px;
	font-weight:300; font-size:13px; line-height:1.65; color:var(--ink-soft);
}
.faq-item.open .faq-a{ display:block; }

/* --------------------------------------------------------------------------
   Shop
   -------------------------------------------------------------------------- */
.shop-hero{ background:var(--cream); padding:34px 0; }
.shop-hero h1{ font-size:32px; margin-bottom:10px; }
.shop-hero .lead{ font-weight:300; font-size:13.5px; line-height:1.65; color:var(--ink-soft); max-width:420px; margin:0; }
@media(min-width:992px){
	.shop-hero{ padding:44px 0; }
	.shop-hero .flex{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; }
	.shop-hero h1{ font-size:44px; margin-bottom:0; }
	.shop-hero .lead{ font-size:14px; color:var(--ink-muted); max-width:340px; }
}

.cat-chips{
	display:flex; gap:8px; overflow-x:auto;
	padding:18px 26px;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
}
.cat-chips::-webkit-scrollbar{ display:none; }
.cat-chip{
	flex:none;
	border:1px solid var(--line-input); color:var(--ink-soft);
	font-weight:400; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
	padding:9px 16px;
	background:none; cursor:pointer;
}
.cat-chip.active{ background:var(--ink); color:var(--ivory); border-color:var(--ink); }

.shop-toolbar{
	display:flex; justify-content:space-between; align-items:center;
	padding:14px 0;
	border-top:1px solid var(--line); border-bottom:1px solid var(--line);
	font-weight:300; font-size:12.5px; color:var(--ink-muted);
}
.shop-toolbar select{
	font-family:var(--sans); font-weight:400; font-size:12.5px; color:var(--ink);
	border:1px solid var(--line-input); background:#fff;
	padding:8px 12px;
}

.shop-layout{ padding:22px 0 44px; }
.shop-sidebar{ display:none; }
@media(min-width:992px){
	.cat-chips{ display:none; }
	.shop-layout{ display:grid; grid-template-columns:250px 1fr; gap:0; padding:0; }
	.shop-sidebar{
		display:block;
		border-right:1px solid var(--line);
		padding:36px 28px 56px 0;
	}
	.shop-sidebar .side-title{
		font-weight:500; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
		color:var(--gold-text); margin-bottom:16px;
	}
	.shop-sidebar ul{ list-style:none; margin:0 0 32px; padding:0; }
	.shop-sidebar li{ margin-bottom:11px; }
	.shop-sidebar a{ font-weight:400; font-size:13.5px; color:var(--ink-soft); }
	.shop-sidebar a.active{ color:var(--ink); font-weight:500; }
	.shop-main{ padding:36px 0 56px 40px; }
	.shop-toolbar{ border-top:0; padding-top:0; margin-bottom:24px; border-bottom:0; }
}

/* cadeaubon-kaart */
.gift-card{
	background:var(--grad-dark);
	padding:26px 24px;
	display:flex; justify-content:space-between; align-items:center; gap:16px;
	margin-top:22px;
}
.gift-card h3{ font-family:var(--serif); font-weight:500; font-size:20px; color:var(--ivory); margin:0 0 4px; }
.gift-card p{ font-weight:300; font-size:12.5px; color:rgba(250,246,239,.7); margin:0; }
.gift-card .btn{
	flex:none;
	border:1px solid var(--gold-light); color:var(--gold-pale) !important;
	background:none; padding:11px 16px;
	font-size:10.5px; letter-spacing:.18em;
}

/* --------------------------------------------------------------------------
   Productpagina
   -------------------------------------------------------------------------- */
.product-page{ padding-bottom:44px; }
.product-gallery .main{
	height:340px;
	border:1px solid var(--line);
	display:flex; align-items:center; justify-content:center;
	background-size:cover; background-position:center;
}
.product-gallery .thumbs{ display:flex; gap:14px; margin-top:14px; }
.product-gallery .thumbs .t{
	width:72px; height:72px;
	border:1px solid var(--line);
	background-size:cover; background-position:center;
	cursor:pointer;
}
.product-gallery .thumbs .t.active{ border:1.5px solid var(--gold); }
.product-info{ padding-top:24px; }
.product-info .topline{ display:flex; justify-content:space-between; align-items:baseline; }
.product-info .brand{
	font-weight:500; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
	color:var(--gold-text);
}
.product-info .rating{ font-weight:300; font-size:12px; color:var(--ink-muted); }
.product-info h1{ font-size:30px; margin:8px 0 6px; }
.product-info .intro{ font-weight:300; font-size:13.5px; line-height:1.65; color:var(--ink-soft); margin-bottom:16px; }
.product-info .priceline{ display:flex; align-items:baseline; gap:10px; margin-bottom:20px; }
.product-info .priceline .price{ font-family:var(--serif); font-weight:600; font-size:28px; color:var(--ink); }
.product-info .priceline .from{ font-weight:300; font-size:14px; color:var(--ink-muted); text-decoration:line-through; }
.product-info .priceline .meta{ font-weight:300; font-size:12.5px; color:var(--ink-muted); }
.buy-row{ display:flex; gap:12px; margin-bottom:18px; }
.qty{
	display:flex; align-items:center;
	border:1px solid var(--line-input); background:#fff;
}
.qty button{
	width:42px; height:100%; min-height:48px;
	background:none; border:0; cursor:pointer;
	font-size:17px; color:var(--ink-soft); font-family:var(--sans);
}
.qty input{
	width:34px; text-align:center;
	border:0; background:none;
	font-family:var(--sans); font-weight:500; font-size:14px; color:var(--ink);
	-moz-appearance:textfield;
}
.qty input::-webkit-outer-spin-button,
.qty input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.buy-row .btn{ flex:1; padding:15px 0; font-size:12px; letter-spacing:.2em; }
.usp-list{
	font-weight:300; font-size:12.5px; line-height:2;
	color:var(--ink-soft);
	border-top:1px solid var(--line); border-bottom:1px solid var(--line);
	padding:14px 0; margin-bottom:6px;
}
.usp-list .check{ color:var(--gold); }
.acc{ border-bottom:1px solid var(--line); }
.acc-head{
	width:100%;
	display:flex; justify-content:space-between; align-items:center;
	padding:16px 0;
	background:none; border:0; cursor:pointer; text-align:left;
	font-family:var(--sans); font-weight:500; font-size:14px; color:var(--ink);
}
.acc-head .icon{ color:var(--gold); font-size:18px; line-height:1; }
.acc-body{ display:none; padding:0 0 16px; font-weight:300; font-size:13px; line-height:1.7; color:var(--ink-soft); }
.acc.open .acc-body{ display:block; }
@media(min-width:992px){
	.product-layout{ display:grid; grid-template-columns:1.1fr 1fr; gap:56px; padding-top:28px; }
	.product-gallery .main{ height:520px; }
	.product-gallery .thumbs .t{ width:92px; height:92px; }
	.product-info{ padding-top:0; }
	.product-info h1{ font-size:42px; margin:12px 0 10px; }
	.product-info .intro{ font-size:14.5px; line-height:1.7; max-width:440px; margin-bottom:22px; }
	.product-info .priceline .price{ font-size:34px; }
	.buy-row{ max-width:440px; }
	.usp-list, .product-info .accs{ max-width:440px; }
}

/* sticky koopbalk mobiel */
.buy-bar{
	position:fixed; bottom:0; left:0; right:0; z-index:90;
	background:#fff; border-top:1px solid var(--line);
	padding:12px 16px;
	display:flex; gap:12px; align-items:center;
}
.buy-bar .price{ font-family:var(--serif); font-weight:600; font-size:20px; color:var(--ink); }
.buy-bar .btn{ flex:1; padding:14px 0; font-size:11.5px; letter-spacing:.18em; }
@media(min-width:992px){ .buy-bar{ display:none; } }

/* --------------------------------------------------------------------------
   Winkelwagen & checkout
   -------------------------------------------------------------------------- */
.cart-page{ padding-bottom:60px; }
.freeship{
	background:var(--cream); border:1px solid #E0D2B8;
	padding:13px 16px;
	display:flex; gap:10px; align-items:center;
	font-weight:400; font-size:12.5px; color:var(--ink-soft);
	margin:18px 0 0;
}
.freeship .check{ color:var(--gold); font-size:15px; }
.cart-item{
	display:flex; gap:16px;
	padding:18px 0;
	border-bottom:1px solid var(--line);
}
.cart-item .thumb{
	width:84px; height:84px; flex:none;
	border:1px solid var(--line);
	background-size:cover; background-position:center;
	display:flex; align-items:center; justify-content:center;
}
.cart-item .info{ flex:1; }
.cart-item .brand{ font-weight:500; font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-text); }
.cart-item .name{ font-family:var(--serif); font-weight:600; font-size:16px; color:var(--ink); margin:3px 0 2px; display:block; }
.cart-item .meta{ font-weight:300; font-size:12px; color:var(--ink-muted); margin-bottom:10px; }
.cart-item .row{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.cart-item .qty button{ min-height:34px; width:32px; font-size:15px; }
.cart-item .qty input{ width:26px; font-size:13px; }
.cart-item .lineprice{ font-family:var(--serif); font-weight:600; font-size:17px; color:var(--ink); }
.cart-item .remove{
	background:none; border:0; cursor:pointer;
	color:var(--ink-muted); font-size:12px; text-decoration:underline;
	padding:0; margin-top:6px; font-family:var(--sans); font-weight:300;
}
.totals{ padding-top:12px; }
.totals .line{
	display:flex; justify-content:space-between;
	padding:5px 0;
	font-weight:300; font-size:13.5px; color:var(--ink-soft);
}
.totals .line .free{ color:var(--gold-text); }
.totals .grand{
	display:flex; justify-content:space-between; align-items:baseline;
	padding:14px 0 20px;
	margin-top:10px;
	border-top:1px solid var(--line);
}
.totals .grand .lbl{ font-weight:500; font-size:15px; color:var(--ink); }
.totals .grand .lbl small{ font-weight:300; font-size:11.5px; color:var(--ink-muted); }
.totals .grand .amount{ font-family:var(--serif); font-weight:600; font-size:24px; color:var(--ink); }
.paymethods{
	display:flex; gap:8px; justify-content:center; flex-wrap:wrap;
	margin:14px 0 12px;
}
.paymethods span{
	border:1px solid #E0D2B8; color:var(--ink-muted);
	font-weight:400; font-size:10.5px;
	padding:5px 10px;
}
.paymethods img{ height:24px; }
@media(min-width:992px){
	.cart-layout{ display:grid; grid-template-columns:1fr 420px; gap:56px; align-items:start; padding-top:24px; }
	.cart-summary{ border:1px solid var(--line); background:#fff; padding:30px 32px; position:sticky; top:98px; }
}

/* checkout */
.checkout-header{
	background:var(--ivory); border-bottom:1px solid var(--line);
}
.checkout-header .container{
	display:flex; align-items:center; justify-content:space-between;
	height:64px; gap:12px;
}
.checkout-steps{
	display:none;
	font-weight:400; font-size:12.5px; letter-spacing:.06em; color:var(--ink-muted);
	gap:10px;
}
.checkout-steps .active{ color:var(--gold-text); font-weight:500; }
.checkout-steps .done{ color:var(--ink); font-weight:500; }
.checkout-secure{ font-weight:300; font-size:12.5px; color:var(--ink-muted); }
@media(min-width:768px){
	.checkout-header .container{ height:72px; }
	.checkout-steps{ display:flex; }
}
.checkout-page{ padding:34px 0 64px; }
.form-label-group{ position:relative; margin-bottom:14px; }
.form-label-group input,
.form-label-group textarea,
.form-label-group select{
	width:100%;
	border:1px solid var(--line-input); background:#fff;
	padding:14px 16px;
	font-family:var(--sans); font-weight:300; font-size:13.5px; color:var(--ink);
}
.form-label-group input:focus,
.form-label-group textarea:focus{ outline:1.5px solid var(--gold); outline-offset:-1px; }
.form-label-group label{
	display:block;
	font-weight:400; font-size:10px; letter-spacing:.1em; text-transform:uppercase;
	color:var(--gold-text);
	margin:0 0 6px;
}
.form-label-group label .optional{ color:var(--ink-muted); font-weight:300; text-transform:none; letter-spacing:0; }
.checkout-page .alert ul{ margin:8px 0 0 18px; }
.form-grid{ display:grid; grid-template-columns:1fr; gap:0 14px; }
@media(min-width:768px){
	.form-grid{ grid-template-columns:1fr 1fr; }
	.form-grid .full{ grid-column:1/-1; }
}
.option-card{
	border:1px solid var(--line-input); background:#fff;
	padding:18px 20px;
	cursor:pointer; display:block;
	margin-bottom:14px;
}
.option-card input{ position:absolute; opacity:0; }
.option-card .top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.option-card .radio{
	width:16px; height:16px; border-radius:50%;
	border:1.5px solid #C9B893; flex:none;
	display:inline-block; vertical-align:middle;
}
.option-card .titlerow{ display:flex; gap:10px; align-items:center; font-weight:500; font-size:14px; color:var(--ink); }
.option-card .tag{ font-weight:400; font-size:13px; color:var(--gold-text); }
.option-card .sub{ font-weight:300; font-size:12.5px; color:var(--ink-muted); padding-left:26px; }
.option-card.selected{ border:1.5px solid var(--gold); }
.option-card.selected .radio{ border:5px solid var(--gold); }
@media(min-width:768px){
	.option-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
	.option-grid .option-card{ margin-bottom:0; }
}
.checkout-block{ margin-bottom:36px; }
.checkout-summary{ border:1px solid var(--line); background:#fff; padding:30px 32px; }
.summary-item{ display:flex; gap:14px; margin-bottom:16px; }
.summary-item .thumb{
	width:60px; height:60px; flex:none;
	border:1px solid var(--line);
	background-size:cover; background-position:center;
}
.summary-item .name{ font-family:var(--serif); font-weight:600; font-size:15px; color:var(--ink); }
.summary-item .meta{ font-weight:300; font-size:12px; color:var(--ink-muted); }
.summary-item .p{ font-weight:400; font-size:14px; color:var(--ink); margin-left:auto; }
.secure-note{ text-align:center; font-weight:300; font-size:11.5px; color:var(--ink-muted); margin-top:14px; }
@media(min-width:992px){
	.checkout-layout{ display:grid; grid-template-columns:1fr 420px; gap:56px; align-items:start; }
	.checkout-summary{ position:sticky; top:20px; }
}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */
.contact-hero{ padding:30px 0 0; }
.contact-hero h1{ font-size:32px; margin-bottom:10px; }
.contact-actions{ display:flex; gap:10px; margin:14px 0 28px; }
.contact-actions .btn{ flex:1; padding:13px 0; font-size:11px; letter-spacing:.12em; }
.info-card{ background:#fff; border:1px solid var(--line); padding:20px 22px; margin-bottom:16px; }
.info-card .title{
	font-weight:500; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
	color:var(--gold-text); margin-bottom:12px;
}
.info-card .hours .row{ display:flex; justify-content:space-between; padding:5px 0; font-weight:300; font-size:13.5px; color:var(--ink-soft); }
.info-card .hours .closed{ color:var(--ink-muted); }
.map{
	height:190px;
	display:flex; align-items:center; justify-content:center;
	position:relative;
}
.map .pin{
	position:absolute; width:14px; height:14px;
	background:var(--gold); border-radius:50% 50% 50% 0;
	transform:rotate(-45deg); top:44%; left:48%;
}
.map iframe{ width:100%; height:100%; border:0; }
.contact-form-card{ background:#fff; border:1px solid var(--line); padding:28px; margin:26px 0; }
.contact-form-card h3{ font-size:26px; margin-bottom:6px; }
.contact-form-card .sub{ font-weight:300; font-size:13px; color:var(--ink-muted); margin-bottom:22px; }
.alert{ padding:14px 18px; margin:16px 0; font-weight:400; font-size:13.5px; border:1px solid; }
.alert-success{ background:#F4F0E4; border-color:var(--gold-light); color:#6d5a3a; }
.alert-danger{ background:#F7ECEC; border-color:#D9A0A0; color:#8a4b4b; }
.alert-warning{ background:#F7F3E7; border-color:#D9C48F; color:#7a6a3f; }
@media(min-width:992px){
	.contact-layout{ display:grid; grid-template-columns:1fr 1fr; gap:64px; padding:34px 0 30px; }
	.contact-hero{ padding:0; }
	.contact-hero h1{ font-size:48px; }
	.contact-actions{ max-width:440px; }
	.info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:520px; }
	.info-card{ margin-bottom:0; }
	.contact-form-card{ margin:0; padding:36px 38px; align-self:start; }
	.map{ height:230px; border-top:1px solid var(--line); }
}

/* --------------------------------------------------------------------------
   Contentpagina
   -------------------------------------------------------------------------- */
.content-page{ padding:34px 0 60px; max-width:820px; }
.content-page h1{ font-size:34px; }
.content-page .wysiwyg{ font-weight:300; font-size:14.5px; line-height:1.8; color:var(--ink-soft); }
.content-page .wysiwyg h2{ font-size:24px; margin-top:32px; }
.content-page .wysiwyg h3{ font-size:19px; margin-top:24px; }
@media(min-width:992px){
	.content-page h1{ font-size:48px; }
}

/* Shop teaser scroller (homepage mobiel) */
.scroll-row{
	display:flex; gap:14px;
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
	padding-bottom:4px;
}
.scroll-row::-webkit-scrollbar{ display:none; }
.scroll-row .product-card{ flex:none; width:160px; }
@media(min-width:992px){
	.scroll-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; overflow:visible; }
	.scroll-row .product-card{ width:auto; }
}

/* body-padding voor sticky balken */
body.has-action-bar{ padding-bottom:70px; }
@media(min-width:992px){
	body.has-action-bar{ padding-bottom:0; }
}

/* toast */
#toast{
	position:fixed; left:50%; bottom:84px; transform:translateX(-50%) translateY(20px);
	background:var(--ink); color:var(--ivory);
	font-weight:400; font-size:13px;
	padding:12px 22px;
	opacity:0; pointer-events:none;
	transition:opacity .25s ease, transform .25s ease;
	z-index:200;
	white-space:nowrap;
}
#toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
@media(min-width:992px){ #toast{ bottom:40px; } }

/* --------------------------------------------------------------------------
   Secties (landingspagina's van labels; in /beheer onder de website-root)
   Huisstijl TLBB; de merkkleur van het label (--brand) is een knipoog: knop in de hero,
   kerncijfers, het merkvlak van de afsluiter en de achtergrond "Merkkleur".
   -------------------------------------------------------------------------- */
.lb-section{ position:relative; padding:56px 0; scroll-margin-top:80px; }
.lb-anchor{ position:absolute; top:0; scroll-margin-top:80px; }
.lb-section--creme{ background:var(--cream); }
.lb-section--merk, .lb-section--donker{ background:var(--grad-dark); color:var(--ivory); }
.lb-section--merk{ background:var(--brand, var(--grad-dark)); }
.lb-section--donker{ background:var(--grad-photo); }
.lb-section--merk h2, .lb-section--donker h2, .lb-section--merk h3, .lb-section--donker h3{ color:var(--ivory); }
.lb-section--merk .kicker, .lb-section--donker .kicker{ color:var(--accent); }
.lb-section--merk a:not(.btn), .lb-section--donker a:not(.btn){ color:var(--accent); }
.lb-section--merk .lead, .lb-section--donker .lead,
.lb-section--merk .lb-content, .lb-section--donker .lb-content{ color:rgba(250,246,239,.78); }
.lb-section.hero{ padding:0; background:var(--hero-bg); }
.lb-section:has(> .lb-trio), .lb-section:has(> .lb-cta){ padding:0; }

.lb-head{ max-width:720px; margin-bottom:28px; }
.lb-head h2{ font-size:32px; line-height:1.12; margin-bottom:10px; }
.lb-head .lead{ font-weight:300; font-size:15px; line-height:1.7; color:var(--ink-soft); margin:0; }
.lb-section--merk .lb-head .lead, .lb-section--donker .lb-head .lead{ color:rgba(250,246,239,.78); }
.lb-buttons{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.btn-brand{ background:var(--brand, var(--grad-gold)); color:#fff !important; }
.btn-brand:hover{ opacity:.9; }
.lb-trio .btn::after, .lb-cta .btn::after{ content:'\2192'; margin-left:12px; }
.lb-script{ font-family:var(--script); font-weight:400; line-height:1; letter-spacing:0; text-transform:none; }

/* hero: foto over de volle breedte, tekst op de donkere kant */
.lb-hero{ position:relative; overflow:hidden; color:var(--ivory); background:#1D140B; }
.lb-hero-media{ position:absolute; top:0; left:0; width:100%; height:78vw; object-fit:cover; background-size:cover; background-position:center; }
.lb-hero::before{ content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(29,20,11,.1) 0, rgba(29,20,11,.45) 40vw, #1D140B 78vw); }
.lb-hero-inner{ position:relative; z-index:2; padding-top:46vw; padding-bottom:44px; }
.lb-hero-text{ max-width:620px; }
.lb-brandlogo{ display:block; height:34px; width:auto; max-width:100%; margin-bottom:24px; }
.lb-brandlogo--wit{ filter:brightness(0) invert(1); }
.lb-brandname{ display:inline-block; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ivory); border:1px solid rgba(250,246,239,.4); padding:7px 12px; margin-bottom:22px; }
.lb-hero .kicker{ color:var(--ivory); letter-spacing:.32em; }
.lb-hero h1{ color:var(--ivory); font-size:46px; line-height:1.02; max-width:6.6em; margin:0 0 18px; }
.lb-hero .lead{ font-weight:300; font-size:15.5px; line-height:1.65; color:rgba(250,246,239,.84); margin:0; max-width:470px; }
.lb-hero .lb-buttons{ margin-top:30px; }
.lb-hero-score{ margin-top:24px; font-weight:300; font-size:13px; color:rgba(250,246,239,.8); }
.lb-hero-score .stars{ margin-right:6px; }
.lb-stats{
	position:absolute; top:24px; right:20px;
	width:128px; height:128px; border-radius:50%;
	background:var(--brand, var(--gold-deep)); color:#fff;
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center;
	box-shadow:inset 0 0 0 4px rgba(255,255,255,.12), 0 16px 40px rgba(0,0,0,.35);
}
.lb-stats div{ display:flex; flex-direction:column; align-items:center; }
.lb-stats strong{ font-family:var(--serif); font-weight:500; font-size:24px; line-height:1; }
.lb-stats span{ font-size:8px; letter-spacing:.18em; text-transform:uppercase; margin-top:3px; }

/* USP-balk onder de hero */
.lb-uspstrip{ background:var(--cream); border-bottom:1px solid var(--line); }
.lb-uspstrip ul{ list-style:none; margin:0 auto; padding-top:10px; padding-bottom:10px; display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
.lb-uspstrip li{ display:flex; align-items:center; gap:12px; padding:12px 0; font-weight:300; font-size:13px; line-height:1.45; color:var(--ink-soft); }
.lb-icon{ width:34px; height:34px; flex:none; fill:none; stroke:var(--gold); stroke-width:1.1; stroke-linecap:round; stroke-linejoin:round; }

.lb-split{ display:grid; grid-template-columns:1fr; gap:28px; align-items:center; }
.lb-content{ font-weight:300; font-size:15px; line-height:1.75; color:var(--ink-soft); }
.lb-content p{ margin:0 0 14px; }
.lb-media, .lb-trio-media{ position:relative; }
.lb-photo{ aspect-ratio:4/3; background-size:cover; background-position:center; background-color:var(--cream); }
.lb-media video{ width:100%; display:block; background:#000; }
.lb-script--over{ position:absolute; right:8%; top:20%; font-size:44px; color:#fff; transform:rotate(-10deg); text-shadow:0 2px 14px rgba(0,0,0,.4); pointer-events:none; }

/* tekst & beeld met voor/na: beeld | tekst | voor & na */
.lb-trio{ display:grid; grid-template-columns:1fr; }
.lb-trio-media{ min-height:300px; overflow:hidden; }
.lb-trio-media .lb-photo, .lb-trio-media video{ position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
.lb-trio-text{ padding:44px 26px 28px; }
.lb-trio-ba{ margin:0; padding:0 26px 48px; display:grid; grid-template-columns:1fr 1fr; gap:4px; align-content:center; }
.lb-trio-ba img{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }
.lb-trio-ba span{ display:block; margin-top:8px; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-muted); }
.lb-trio .lb-trio-ba figcaption{ grid-column:1/-1; justify-self:end; font-size:36px; color:var(--ink-soft); margin:2px 6px 0 0; transform:rotate(-4deg); }
.lb-section--merk .lb-trio-ba span, .lb-section--donker .lb-trio-ba span,
.lb-section--merk .lb-trio-ba figcaption, .lb-section--donker .lb-trio-ba figcaption{ color:rgba(250,246,239,.78); }
.lb-section--merk .btn-outline, .lb-section--donker .btn-outline{ color:var(--ivory) !important; border-color:rgba(201,163,105,.6); }

/* behandelzones als fototegels; + toont de korte tekst */
.lb-tiles{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.lb-tile{ position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--grad-photo); color:var(--ivory); }
.lb-tile-photo{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s ease; }
.lb-tile::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,14,8,0) 25%, rgba(20,14,8,.6) 58%, rgba(20,14,8,.92) 100%); transition:background .3s ease; }
.lb-tile:hover .lb-tile-photo{ transform:scale(1.04); }
.lb-tile-body{ position:absolute; left:0; right:0; bottom:0; z-index:1; padding:14px 50px 14px 14px; }
.lb-tile h3{ color:var(--ivory); font-size:22px; line-height:1.1; margin:0; text-shadow:0 1px 10px rgba(0,0,0,.35); }
.lb-tile-price{ display:block; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-pale); margin-top:5px; }
.lb-tile-teaser{ display:none; font-weight:300; font-size:13px; line-height:1.5; color:rgba(250,246,239,.92); margin:8px 0 0; }
.lb-tile.is-open::after{ background:rgba(20,14,8,.85); }
.lb-tile.is-open .lb-tile-teaser{ display:block; }
.lb-tile-more{
	position:absolute; right:12px; bottom:12px; z-index:2;
	width:32px; height:32px; border-radius:50%;
	border:1px solid rgba(250,246,239,.85); background:transparent; color:var(--ivory);
	font:300 20px/1 var(--sans); cursor:pointer;
	display:flex; align-items:center; justify-content:center;
	transition:transform .25s ease, background .25s ease;
}
.lb-tile-more:hover{ background:rgba(250,246,239,.14); }
.lb-tile.is-open .lb-tile-more{ transform:rotate(45deg); }

/* afsluiter: merkvlak naast een foto */
.lb-cta{ display:grid; grid-template-columns:1fr; }
.lb-cta-brand{ background:var(--brand, var(--espresso)); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px; text-align:center; padding:44px 26px; }
.lb-cta-brand .lb-brandlogo{ height:auto; width:220px; max-width:80%; margin:0; }
.lb-cta-brand .lb-brandlogo--vlak{ width:150px; }
.lb-cta-brand .lb-brandname{ border:0; padding:0; margin:0; font-family:var(--serif); font-size:30px; letter-spacing:0; text-transform:none; }
.lb-cta-slogan{ position:relative; padding-top:24px; font-size:12px; letter-spacing:.3em; line-height:1.9; text-transform:uppercase; }
.lb-cta-slogan::before{ content:''; position:absolute; top:0; left:50%; width:44px; margin-left:-22px; border-top:1px solid rgba(255,255,255,.5); }
.lb-cta-main{ position:relative; display:flex; align-items:center; min-height:380px; padding:56px 26px; background:var(--grad-photo) center/cover; }
.lb-cta-main::before{ content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(29,20,11,.2) 0%, rgba(29,20,11,.6) 50%, rgba(29,20,11,.82) 100%); }
.lb-cta-text{ position:relative; margin-left:auto; max-width:460px; }
.lb-cta h2{ color:var(--ivory); font-size:34px; line-height:1.1; margin-bottom:14px; }
.lb-cta .lead{ color:rgba(250,246,239,.84); font-weight:300; font-size:15px; line-height:1.7; margin:0; }

.lb-price{ display:block; font-family:var(--serif); font-size:19px; color:var(--gold-text); margin-top:4px; }
.lb-gallery, .lb-videos, .lb-beforeafter{ display:grid; grid-template-columns:1fr; gap:16px; }
.lb-gallery figure, .lb-video, .lb-ba{ margin:0; }
.lb-gallery img{ width:100%; aspect-ratio:1; object-fit:cover; display:block; }
.lb-gallery .lb-gallery-wide{ grid-column:1/-1; }
.lb-gallery .lb-gallery-wide img{ aspect-ratio:auto; }
.lb-section figcaption{ font-size:13px; color:var(--ink-muted); margin-top:8px; }
.lb-section--merk figcaption, .lb-section--donker figcaption{ color:rgba(250,246,239,.7); }
.lb-video video{ width:100%; max-height:560px; object-fit:cover; display:block; background:#000; }

/* YouTube pas laden na een klik */
.lb-yt{ position:relative; width:100%; aspect-ratio:16/9; border:0; cursor:pointer; background:var(--grad-photo) center/cover; color:var(--ivory); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; font:inherit; }
.lb-yt-play{ width:64px; height:64px; border-radius:50%; background:var(--grad-gold); display:flex; align-items:center; justify-content:center; font-size:20px; padding-left:4px; }
.lb-yt-label{ font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.lb-yt-frame{ width:100%; aspect-ratio:16/9; border:0; display:block; }

.lb-ba{ display:grid; grid-template-columns:1fr 1fr; gap:4px; }
.lb-ba div{ position:relative; }
.lb-ba img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }
.lb-ba span{ position:absolute; left:10px; bottom:10px; background:rgba(30,23,16,.7); color:var(--ivory); font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:4px 8px; }
.lb-ba figcaption{ grid-column:1/-1; }

.lb-score{ margin-top:22px; font-size:13px; color:var(--ink-soft); }
.lb-narrow{ max-width:860px; }
.lb-contact-list{ list-style:none; padding:0; margin:22px 0; line-height:2; font-size:14px; }
.lb-hours{ border-top:1px solid var(--line); padding-top:14px; font-size:13.5px; max-width:360px; }
.lb-hours div{ display:flex; justify-content:space-between; padding:3px 0; }
.lb-type-contact .contact-form-card{ margin:0; }
.lb-type-contact select{ width:100%; height:50px; padding:0 14px; margin-bottom:14px; border:1px solid var(--line-input); background:#fff; font:inherit; font-size:14px; color:var(--ink); }

.lb-promo{ display:grid; gap:28px; align-items:center; background:#fff; border:1px solid var(--line); padding:28px; }
.lb-section--merk .lb-promo, .lb-section--donker .lb-promo{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.14); }
.lb-promo-price{ font-family:var(--serif); font-size:34px; color:var(--gold-text); margin-top:4px; }

@media(min-width:768px){
	.lb-section{ padding:84px 0; }
	.lb-head h2{ font-size:40px; }
	.lb-gallery, .lb-videos{ grid-template-columns:repeat(3,1fr); }
	.lb-videos--single{ grid-template-columns:1fr; max-width:860px; }
	.lb-beforeafter{ grid-template-columns:1fr 1fr; }
	.lb-split, .lb-promo{ grid-template-columns:1fr 1fr; gap:56px; }
	.lb-split--solo{ grid-template-columns:1fr; max-width:760px; }
	.lb-split--links .lb-media{ order:-1; }
	.lb-uspstrip ul{ grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:1fr; gap:0; padding-top:20px; padding-bottom:20px; }
	.lb-uspstrip li{ padding:6px 22px; border-left:1px solid var(--line); }
	.lb-uspstrip li:first-child{ border-left:0; padding-left:0; }
	.lb-tiles{ gap:12px; }
	.lb-tiles--3{ grid-template-columns:repeat(3,1fr); }
	.lb-tiles--4{ grid-template-columns:repeat(4,1fr); }
	.lb-tile{ aspect-ratio:4/3.1; }
	.lb-tile h3{ font-size:26px; }
	.lb-tile-body{ padding:18px 56px 18px 18px; }
	.lb-tile-more{ right:16px; bottom:16px; width:36px; height:36px; }
}
@media(min-width:992px){
	.lb-head h2{ font-size:46px; }
	.lb-hero{ min-height:620px; display:flex; align-items:center; }
	.lb-hero-media{ left:28%; width:72%; height:100%; }
	.lb-hero::before{ background:linear-gradient(90deg, #1D140B 0%, #1D140B 28%, rgba(29,20,11,.55) 50%, rgba(29,20,11,0) 72%); }
	.lb-hero-inner{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:40px; padding-top:84px; padding-bottom:84px; }
	.lb-hero h1{ font-size:clamp(60px, 6vw, 84px); }
	.lb-hero .lead{ font-size:17px; }
	.lb-brandlogo{ height:52px; margin-bottom:30px; }
	.lb-stats{ position:static; flex:none; width:236px; height:236px; gap:18px; }
	.lb-stats strong{ font-size:42px; }
	.lb-stats span{ font-size:11px; letter-spacing:.22em; margin-top:6px; }
	.lb-uspstrip li{ font-size:14px; padding:6px 28px; }
	.lb-icon{ width:44px; height:44px; }
	.lb-trio{ grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr); min-height:540px; }
	.lb-trio--duo{ grid-template-columns:1fr 1fr; max-width:1240px; margin:0 auto; }
	.lb-trio-text{ align-self:center; padding:72px 48px; }
	.lb-trio-ba{ padding:48px 48px 48px 0; }
	.lb-trio .lb-trio-ba figcaption{ font-size:40px; }
	.lb-script--over{ font-size:56px; }
	.lb-cta{ grid-template-columns:27% 1fr; min-height:460px; }
	.lb-cta-main{ padding:80px 8%; }
	.lb-cta h2{ font-size:50px; }
}

/* --------------------------------------------------------------------------
   Cookiekeuze (midden in beeld, site afgedekt tot er gekozen is) + actie-pop-up
   -------------------------------------------------------------------------- */
body.lb-consent-open{ overflow:hidden; }
.lb-consent, .lb-popup{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(30,23,16,.55); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.lb-consent[hidden]{ display:none; }
.lb-consent-box, .lb-popup-box{ position:relative; background:var(--ivory); max-width:560px; width:100%; max-height:calc(100vh - 32px); overflow:auto; padding:30px 26px; border-top:3px solid var(--gold); }
.lb-consent-box h2{ font-size:26px; margin-bottom:10px; }
.lb-consent-box p{ font-weight:300; font-size:14px; line-height:1.7; color:var(--ink-soft); margin-bottom:18px; }
.lb-consent-options{ display:grid; gap:10px; margin-bottom:18px; font-size:14px; }
.lb-consent-options label{ display:grid; grid-template-columns:auto 1fr; gap:2px 10px; align-items:center; }
.lb-consent-options span{ grid-column:2; font-size:12px; color:var(--ink-muted); }
.lb-consent-actions{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.lb-consent-link{ background:none; border:0; padding:8px 4px; font:inherit; font-size:13px; color:var(--ink-soft); text-decoration:underline; cursor:pointer; }
.lb-popup-box{ max-width:880px; padding:0; }
.lb-popup-box .lb-promo{ border:0; }
.lb-popup-close{ position:absolute; top:8px; right:10px; z-index:1; background:none; border:0; font-size:30px; line-height:1; color:var(--ink); cursor:pointer; }

/* footer altijd onderaan, ook op korte pagina's */
body{ min-height:100vh; display:flex; flex-direction:column; }
.site-footer{ margin-top:auto; }
.lb-contact-photo{ margin-bottom:22px; }
.lb-section .price-card{ margin-top:6px; }
