/* ==========================================================================
   Steenhouwerij Breti — hoofdstylesheet (vanilla CSS, geen framework)
   ========================================================================== */

/* ---------- basis ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-weight: 400;
  color: var(--c-text);
  background: var(--c-bg);
  overflow-wrap: break-word;
}
img { max-width: 100%; height: auto; vertical-align: top; }
a { color: var(--c-link); text-decoration: none; transition: color .2s; }
a:hover { color: var(--c-link-hover); }
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-heading);
  font-weight: 400;
  line-height: 1.2;
  color: var(--c-heading);
  margin: 0 0 1.5rem;
}
h1 { font-size: var(--fs-h1); letter-spacing: -.04em; margin-bottom: 1.7rem; }
h2 { font-size: var(--fs-h2); letter-spacing: -.02em; margin-bottom: 1rem; }
h3 { font-size: var(--fs-h3); letter-spacing: -.02em; }
h4 { font-size: var(--fs-h4); }
h5 { font-size: var(--fs-h5); }
h6 { font-size: var(--fs-h6); }
@media (max-width:1024px){ h3{font-size:1.3rem} h4{font-size:1.2rem} }
@media (max-width:600px){ h4{font-size:1.1rem} }
p, ul, ol, table, blockquote { margin: 0 0 1.5rem; }
.text > :last-child, .ib-body > :last-child { margin-bottom: 10px; }
strong, b { font-weight: 700; }

/* iconen (inline SVG via mask, geen icon-font nodig) */
.i { display:inline-block; width:1em; height:1em; background-color: currentColor;
     -webkit-mask: var(--icon) no-repeat center / contain; mask: var(--icon) no-repeat center / contain; }
.i-phone { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M493 353l-105-45c-12-5-26-2-34 8l-42 52A354 354 0 01144 200l52-42c10-8 13-22 8-34L159 19a30 30 0 00-34-17L28 24A30 30 0 004 53c0 253 205 458 458 458a30 30 0 0029-24l22-97c3-14-5-29-20-37z'/%3E%3C/svg%3E"); }
.i-search { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M505 443L405 343a208 208 0 10-62 62l100 100a24 24 0 0034 0l28-28a24 24 0 000-34zM208 336a128 128 0 110-256 128 128 0 010 256z'/%3E%3C/svg%3E"); }
.i-chevron-right, .i-angle-right { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M285 273L91 467c-9 9-24 9-34 0l-22-22c-9-9-9-24 0-34l155-155L35 101c-9-10-9-25 0-34l22-22c10-9 25-9 34 0l194 194c10 9 10 25 0 34z'/%3E%3C/svg%3E"); }
.i-angle-left { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M35 239L229 45c9-9 24-9 34 0l22 22c9 9 9 24 0 34L130 256l155 155c9 10 9 25 0 34l-22 22c-10 9-25 9-34 0L35 273c-10-9-10-25 0-34z'/%3E%3C/svg%3E"); }
.i-angle-down { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M207 381L12 187c-9-10-9-25 0-34l23-23c9-9 24-9 34 0l155 154 155-154c10-9 25-9 34 0l23 23c9 9 9 24 0 34L241 381c-9 10-25 10-34 0z'/%3E%3C/svg%3E"); }
.i-angle-up { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M241 131l195 194c9 10 9 25 0 34l-23 23c-9 9-24 9-34 0L224 228 69 382c-10 9-25 9-34 0l-23-23c-9-9-9-24 0-34L207 131c9-10 25-10 34 0z'/%3E%3C/svg%3E"); }
.i-check { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M435 123l-246 247-112-113a16 16 0 00-23 0l-23 23a16 16 0 000 23l147 147a16 16 0 0023 0l281-281a16 16 0 000-23l-24-23a16 16 0 00-23 0z'/%3E%3C/svg%3E"); }
.i-times { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath d='M242 256l100-100c12-12 12-32 0-44l-22-22c-12-12-32-12-44 0L176 190 76 90c-12-12-32-12-44 0L10 112c-12 12-12 32 0 44l100 100L10 356c-12 12-12 32 0 44l22 22c12 12 32 12 44 0l100-100 100 100c12 12 32 12 44 0l22-22c12-12 12-32 0-44L242 256z'/%3E%3C/svg%3E"); }

/* ---------- layout ---------- */
/* 1200px netto contentbreedte (padding komt er buitenop, zoals in het origineel) */
.cont { max-width: calc(var(--content-width) + 5rem); margin: 0 auto; padding: 0 2.5rem; }
@media (max-width:600px){ .cont { padding: 0 1.5rem; } }
.sec { position: relative; background-size: cover; }
.sec-0 { padding: 0; }
.sec-s { padding: var(--sec-s) 0; }
.sec-m { padding: var(--sec-m) 0; }
.sec-l { padding: var(--sec-l) 0; }
@media (max-width:1024px){ .sec-m { padding: 2.5rem 0; } .sec-l { padding: 4rem 0; } }
@media (max-width:600px){ .sec-s,.sec-m { padding: 1.5rem 0; } .sec-l { padding: 3rem 0; } }
.sec.has-overlay::before { content:""; position:absolute; inset:0; background: var(--overlay); }
.sec.has-overlay > .cont { position: relative; }
.scheme-alt { background-color: var(--c-alt-bg); }
.scheme-footer { background-color: var(--ftr-bg); color: var(--ftr-text); }

.cols { display: grid; gap: var(--cols-gap); grid-template-columns: var(--gtc, 1fr); align-items: start; }
.col { min-width: 0; }
@media (max-width:768px){
  .cols { grid-template-columns: 1fr; }
}
.row-inner { margin: 0 0 1.5rem; }
/* binnenrijen: kolominhoud krijgt binnenmarge zoals in het origineel */
.row-inner.cols { gap: 0; }
.row-inner > .col { padding-inline: 1.5rem; }
/* kaartblok (rand uit de page-builder) */
.card { overflow: hidden; background: var(--c-bg); }
.card .img-el img { width: 100%; }
.row-inner.cols { display: grid; }
.row-inner:last-child { margin-bottom: 0; }
.col-link { display: block; color: inherit; }

.ta-center { text-align: center; } .ta-left { text-align: left; } .ta-right { text-align: right; }

/* ---------- separators ---------- */
.sep { width: 100%; }
.sep-sm { height: 1rem; } .sep-md { height: 2rem; } .sep-lg { height: 3rem; } .sep-xl { height: 5rem; }
.sep-line { border-bottom: 1px solid var(--c-border); height: 0; margin: 1.5rem 0; }
.sep-title { display:flex; align-items:center; gap:1rem; margin: 0 0 1.5rem; }
.sep-title > * { margin: 0; white-space: nowrap; }
.sep-title::before, .sep-title::after { content:""; flex:1; border-top:1px solid var(--c-border); }

/* ---------- knoppen ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  font-family: var(--font-heading); font-size: 1rem; line-height: 1.2;
  padding: .8em 1.8em; border-radius: var(--radius); border: 0; cursor: pointer;
  transition: background .2s, color .2s, box-shadow .2s; text-align: center;
}
.btn-1 { background: var(--btn1-bg); color: var(--btn1-text); box-shadow: 0 5px 0 var(--btn1-shadow); }
.btn-1:hover { background: var(--btn1-bg-hover); color: var(--btn1-text); }
.btn-8 { background: var(--btn8-bg); color: var(--btn8-text); box-shadow: 0 5px 0 var(--btn8-shadow); }
.btn-8:hover { background: var(--btn8-bg-hover); color: var(--btn8-text); }
.btn-2 { background: var(--c-border); color: var(--c-text); }
.btn-2:hover { box-shadow: inset 0 0 0 2px var(--c-primary); color: var(--c-text); }
.btn-5 { background: var(--c-border); color: #1a1a1a; font-size: .9rem; }
.btn-6 { background: #fff; color: #1a1a1a; box-shadow: 0 5px 0 #ededed; }
.btn-6:hover { background: #f5f5f5; color: #1a1a1a; }
.btn-7 { background: #3d3d3d; color: #fff; font-size: .9rem; }
.btn-7:hover { background: #858585; color: #fff; }
.btn-4 { background: var(--c-bg); color: var(--c-heading); }
.btn-3 { background: var(--c-primary); color: #fff; font-size: 15px; line-height: 1; }
.btn-center { display: flex; margin-inline: auto; width: max-content; }
.btn-full { display: flex; width: 100%; }
.btn .i { font-size: .9em; }
/* ruimte tussen losse knoppen naast elkaar */
.btn + .btn:not(.btn-full) { margin-left: .75rem; }

/* ---------- header ---------- */
.site-header { position: relative; z-index: 100; }
.hdr-top { background: var(--hdr-top-bg); color: var(--hdr-top-text); font-size: .85rem; border-bottom: 1px solid #e5e5e5; }
.hdr-top-in { display: flex; align-items: center; justify-content: space-between; min-height: 40px; gap: 1rem; }
.hdr-top-center { display: flex; align-items: center; gap: 1.2rem; }
.hdr-top-center img { height: 23px; width: auto; }
.hdr-mid { background: var(--hdr-mid-bg); color: var(--hdr-mid-text); }
.hdr-mid-in { display: flex; align-items: center; justify-content: space-between; min-height: 130px; gap: 1.5rem; }
.hdr-mid-left { display: flex; align-items: center; gap: 1.5rem; min-width: 0; }
.logo img { height: 130px; width: auto; }
.hdr-mid-right { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; justify-content: flex-end; }
.hdr-search { display: flex; align-items: center; border-bottom: 1px solid currentColor; }
.hdr-search input { border: 0; background: transparent; font: inherit; color: inherit; padding: .3em .5em; width: 220px; outline: none; }
.hdr-search button { border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 18px; padding: .3em; }
.hdr-bot { background: var(--hdr-bot-bg); color: var(--hdr-bot-text); }
.hdr-bot-in { display: flex; align-items: center; min-height: 40px; }

.site-nav a { color: var(--hdr-bot-text); display: block; }
.nav-list { list-style: none; margin: 0; padding: 0; display: flex; }
.nav-list > li { position: relative; }
.nav-list > li > a { padding: 0 17px; line-height: 40px; font-family: var(--font-heading); }
.nav-list > li > a:hover, .nav-list > li.cur > a { color: #fff; background: rgba(255,255,255,.12); }
.sub-toggle { display: none; }
.sub { list-style: none; margin: 0; padding: .5rem 0; position: absolute; top: 100%; left: 0; background: #fff;
       min-width: 230px; box-shadow: var(--shadow); border-radius: 0 0 var(--radius) var(--radius);
       opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s; z-index: 50; }
.sub a { color: var(--c-text); padding: .45rem 1.2rem; font-size: 1rem; line-height: 1.5; }
.sub a:hover { color: var(--c-link-hover); }
li.has-sub:hover > .sub, li.has-sub:focus-within > .sub { opacity: 1; visibility: visible; transform: none; }
.nav-toggle { display: none; }

@media (max-width:1024px){
  .hide-t { display: none !important; }
  .logo img { height: 110px; }
  .hdr-mid-in { min-height: 110px; }
}
@media (max-width:900px){
  .nav-toggle { display: inline-flex; flex-direction: column; gap: 5px; background: none; border: 0; padding: 10px 0; cursor: pointer; }
  .nav-toggle span { width: 26px; height: 2.5px; background: #fff; transition: .2s; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7.5px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7.5px) rotate(-45deg); }
  .site-nav { display: none; position: absolute; left: 0; right: 0; background: var(--hdr-bot-bg); z-index: 90; }
  .site-nav.open { display: block; max-width: 740px; }
  .nav-list { flex-direction: column; padding: .5rem 0; }
  .nav-list > li > a { line-height: 2.6; font-size: 1.1rem; }
  li.has-sub { display: flex; flex-wrap: wrap; }
  li.has-sub > a { flex: 1; }
  .sub-toggle { display: block; background: none; border: 0; color: #fff; font-size: 1rem; padding: 0 1.2rem; cursor: pointer; }
  .sub { position: static; opacity: 1; visibility: hidden; transform: none; box-shadow: none; background: rgba(0,0,0,.25);
         width: 100%; display: none; }
  li.has-sub.open > .sub { display: block; visibility: visible; }
  .sub a { color: #eee; font-size: .9rem; }
}
@media (max-width:600px){
  .hide-m { display: none !important; }
  .hdr-top-center { display: none; }
  .hdr-top-in { justify-content: center; }
  .logo img { height: 90px; }
  .hdr-mid-in { min-height: 100px; }
}

/* ---------- iconbox ---------- */
.iconbox { display: block; color: inherit; }
.iconbox.ipos-left { display: flex; gap: 1rem; align-items: flex-start; }
.iconbox.ial-center { text-align: center; }
.iconbox.ial-left { text-align: left; }
.ib-icon { flex-shrink: 0; }
.ib-icon img { width: 100%; height: auto; }
.ib-fonticon { color: var(--c-primary); line-height: 1; }
.iconbox.ipos-top .ib-icon { margin: 0 auto 1rem; }
.ib-title { margin-bottom: .5rem; }
a.iconbox:hover .ib-title { color: var(--c-link-hover); }

/* ---------- galerijen / grids ---------- */
.ggrid-wrap { margin-bottom: 1.5rem; }
.ggrid { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px;
         grid-template-columns: repeat(var(--g-cols,3), 1fr); }
.ggrid li { min-width: 0; }
.ggrid img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1/1; border-radius: var(--radius); display: block; }
.ggrid .lb { display: block; overflow: hidden; border-radius: var(--radius); }
.ggrid .lb:hover img { transform: scale(1.04); }
.ggrid img { transition: transform .3s; }
@media (max-width:1024px){ .ggrid { grid-template-columns: repeat(var(--g-cols-t, min(var(--g-cols,3), 3)), 1fr); } }
@media (max-width:600px){ .ggrid { grid-template-columns: repeat(var(--g-cols-m, 2), 1fr); } }
.grid-more-wrap { text-align: center; margin-top: 1.5rem; }

/* ---------- carousel ---------- */
.carousel { position: relative; }
.car-track { overflow: hidden; }
.car-list { list-style: none; margin: 0; padding: 0; display: flex; transition: transform .4s; }
.car-list > li { flex: 0 0 calc(100% / var(--vis, 3)); padding: 0 8px; }
.car-list img { width: 100%; object-fit: cover; border-radius: var(--radius); }
.car-prev, .car-next { position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(0,0,0,.45); color: #fff; border: 0; width: 44px; height: 44px; border-radius: 50%;
  cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 18px; z-index: 5; }
.car-prev { left: -8px; } .car-next { right: -8px; }
.car-prev:hover, .car-next:hover { background: rgba(0,0,0,.7); }
.car-dots { display: flex; justify-content: center; gap: 8px; margin-top: 1rem; }
.car-dots button { width: 10px; height: 10px; border-radius: 50%; border: 0; background: var(--c-faded); cursor: pointer; padding: 0; }
.car-dots button.active { background: var(--c-primary); }

/* ---------- afbeeldingen ---------- */
.img-el { margin: 0 0 1.5rem; }
.img-el.al-center { text-align: center; }
.img-el img { border-radius: var(--radius); }
.img-el.img-shadow img { box-shadow: var(--shadow); }
.ratio { display: block; overflow: hidden; }
.ratio img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- lightbox ---------- */
.lightbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center;
  background: rgba(10,10,10,.92); opacity: 0; transition: opacity .25s; }
.lightbox.show { opacity: 1; }
.lightbox img { max-width: 92vw; max-height: 88vh; width: auto; height: auto; box-shadow: var(--shadow); }
.lightbox .lb-close { position: absolute; top: 18px; right: 22px; background: none; border: 0; color: #fff; font-size: 26px; cursor: pointer; }
.lightbox .lb-prev, .lightbox .lb-next { position: absolute; top: 50%; transform: translateY(-50%);
  background: none; border: 0; color: #fff; font-size: 30px; cursor: pointer; padding: 20px; }
.lightbox .lb-prev { left: 6px; } .lightbox .lb-next { right: 6px; }

/* ---------- breadcrumbs ---------- */
.breadcrumbs { font-size: .85rem; margin-bottom: 1rem; color: var(--c-faded); }
.breadcrumbs .bc-sep { margin: 0 .5em; }

/* ---------- formulieren ---------- */
.gform { max-width: 640px; }
.gf-row { margin-bottom: 1.2rem; }
.gf-row label { display: block; font-size: 1rem; }
.gform input[type=text], .gform input[type=email], .gform input[type=tel],
.gform input[type=search], .gform textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--c-text); background: var(--c-bg);
  border: 1px solid var(--c-faded); border-radius: var(--radius); padding: .5em .8em; height: auto;
  transition: border-color .2s, box-shadow .2s;
}
.gform textarea { height: auto; }
.gform input:focus, .gform textarea:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 2px var(--c-primary); }
.gform .req { color: #c02b0a; }
.gf-consent label { display: flex; gap: .6em; align-items: flex-start; font-size: .95rem; }
.gf-consent input { margin-top: .4em; }
.gf-step { display: none; border: 0; padding: 0; margin: 0; }
.gf-step.active { display: block; }
.gf-nav { display: flex; gap: 1rem; }
.gform input[type=file] { font-size: .95rem; }

/* ---------- footer ---------- */
.site-footer { margin-top: 0; }
.site-footer .sec { color: #fff; }
.site-footer .text a { color: var(--ftr-link); }
.site-footer .text a:hover { color: var(--ftr-link-hover); }
.site-footer h4.title { color: #fff; margin-bottom: .8rem; }
.site-footer .textwidget { font-size: .95rem; }

/* ---------- vakantie-popup ---------- */
.vac-popup { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; }
.vac-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.8); }
.vac-box { position: relative; background: #fff; border-radius: 4px; padding: 2rem; max-width: 640px; width: calc(100% - 2rem);
  max-height: 85vh; overflow: auto; box-shadow: var(--shadow); }
.vac-close { margin: 1rem auto 0; display: flex; }

/* ---------- terug naar boven ---------- */
.back-top { position: fixed; right: 20px; bottom: 20px; width: 44px; height: 44px; border-radius: var(--radius);
  background: rgba(0,0,0,.3); color: #fff; display: flex; align-items: center; justify-content: center; z-index: 500; }
.back-top:hover { background: rgba(0,0,0,.55); color: #fff; }

/* ---------- reviews (Google) ---------- */
.reviews { padding: 1rem 0; }
.rev-summary { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; margin-bottom: 1.2rem; font-size: .95rem; }
.stars { color: #f8af0d; letter-spacing: 2px; }
.stars.big { font-size: 1.3rem; }
.rev-card { background: #fff; border: 1px solid var(--c-border); border-radius: 8px; padding: 1.2rem; position: relative;
  font-size: .92rem; line-height: 1.5; height: 100%; }
.rev-head { display: flex; justify-content: space-between; gap: .5rem; margin-bottom: .3rem; }
.rev-name { font-weight: 700; color: var(--c-heading); }
.rev-date { color: var(--c-faded); font-size: .85em; }
.rev-text { margin: .5rem 0 0; max-height: 9em; overflow: hidden; }
.rev-card.expanded .rev-text { max-height: none; }
.rev-more { background: none; border: 0; color: var(--c-link); cursor: pointer; padding: 0; font-size: .9em; }
.rev-g { position: absolute; top: 1rem; right: 1rem; font-weight: 700; font-family: var(--font-heading);
  color: #4285f4; font-size: 1.2rem; }

/* ---------- tabs ---------- */
.tabs { margin-bottom: 1.5rem; }
.tab-heads { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.tab-h { font-family: var(--font-heading); font-size: 1.1rem; background: none; border: 0; border-bottom: 2px solid transparent;
  padding: .5em 1em; cursor: pointer; color: var(--c-text); }
.tab-h.active { color: var(--c-heading); border-color: var(--c-primary); }
.tab-b { display: none; }
.tab-b.active { display: block; }

/* ---------- counters ---------- */
.counter-num { font-family: var(--font-heading); font-size: 3rem; color: var(--c-heading); line-height: 1.1; }

/* ---------- cta box ---------- */
.cta-box { display: flex; gap: 2rem; align-items: center; justify-content: space-between; flex-wrap: wrap;
  background: var(--c-bg); border-radius: var(--radius); box-shadow: var(--shadow); padding: 2rem; }

/* ---------- zoekpagina ---------- */
.search-results { list-style: none; padding: 0; }
.search-results li { margin-bottom: 1.5rem; }
.search-results h3 { margin-bottom: .3rem; }

/* ---------- toegankelijkheid ---------- */
.skip-link { position: absolute; left: -9999px; top: 0; background: #fff; color: var(--c-heading); padding: .5em 1em; z-index: 3000; }
.skip-link:focus { left: 0; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto; }
}

/* hidden-attribuut respecteren (wint van display:flex) */
[hidden] { display: none !important; }
