/* Gedeelde vormgeving voor openingstijden, seizoenen en reserveren. */
.mbr-fullscreen.lf-with-hours { padding-top: 7rem; padding-bottom: 4rem; }
.lf-opening-section, .lf-banner { --lf-ink:#302b28; --lf-muted:#746d67; --lf-red:#a82f4a; --lf-teal:#147b79; --lf-line:#e8e2dc; font-family:'Open Sans',sans-serif; font-size:1rem; line-height:1.6; }
.lf-opening-section *, .lf-banner * { box-sizing:border-box; }
.lf-opening-section [hidden] { display:none !important; }
.lf-opening-section { padding:72px 0; background:#f8f5f1; color:var(--lf-ink); }
.lf-opening-section .container { max-width:1170px; }
.lf-opening-section h2, .lf-opening-section h3, .lf-opening-section p { margin:0; text-align:left; }
.lf-opening-section h2, .lf-opening-section h3 { font-family:'GFS Didot',Georgia,serif; font-weight:400; }
.lf-section-head { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:28px; }
.lf-kicker { display:block; color:var(--lf-teal); font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin-bottom:7px; }
.lf-opening-section h2 { color:#c6415d; font-size:2.85rem; line-height:1.15; }
.lf-section-head p { color:var(--lf-muted); font-size:.95rem; }
.lf-section-head p strong { color:var(--lf-ink); font-weight:600; white-space:nowrap; }
#openingstijden { scroll-margin-top:100px; }
#openingstijden:focus { outline:none; }
.lf-board { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:24px; align-items:stretch; }
.lf-panel { min-width:0; border:1px solid var(--lf-line); border-radius:16px; background:#fff; padding:28px; box-shadow:0 4px 18px #3f2c1d04; }
.lf-panel-head { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.lf-opening-section .lf-panel-head h3 { font-size:1.65rem; line-height:1.25; }
.lf-small-icon { display:inline-flex; justify-content:center; align-items:center; width:38px; height:38px; flex:0 0 38px; background:#ecf5f2; color:var(--lf-teal); border-radius:50%; }
.lf-small-icon svg { width:22px; height:22px; }
.lf-week { width:100%; border-collapse:separate; border-spacing:0; font-variant-numeric:tabular-nums; }
.lf-week caption { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.lf-week th, .lf-week td { padding:7px 10px; line-height:1.4; border-bottom:1px solid #f0ebe6; vertical-align:middle; }
.lf-week tr:last-child th, .lf-week tr:last-child td { border-bottom:0; }
.lf-week th { text-align:left; font-weight:600; font-size:.94rem; }
.lf-week td { text-align:right; font-size:.94rem; white-space:nowrap; }
.lf-date { display:block; color:var(--lf-muted); font-size:.75rem; font-weight:400; }
.lf-today th, .lf-today td { background:#eef6f3; border-color:transparent; }
.lf-today th { border-radius:9px 0 0 9px; }
.lf-today td { border-radius:0 9px 9px 0; }
.lf-today-label { color:var(--lf-teal); font-weight:600; font-size:.65rem; margin-left:3px; }
.lf-time { font-size:.9rem; }
.lf-closed .lf-time { display:inline-block; padding:3px 10px; border-radius:20px; background:#f9e9ed; color:#982b42; font-size:.78rem; font-weight:600; }
.lf-opening-section .lf-week-note { margin-top:16px; padding-top:14px; border-top:1px solid var(--lf-line); color:var(--lf-muted); font-size:.8rem; }
.lf-seasons { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; list-style:none; padding:0; margin:0; }
.lf-seasons li { padding:16px; border:1px solid #eee7e1; border-radius:10px; background:#fbf9f6; }
.lf-seasons .lf-season-current { border-color:#bbdcd3; background:#f0f7f3; }
.lf-season-marker { display:block; margin-bottom:7px; color:var(--lf-muted); font-size:.61rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.lf-season-current .lf-season-marker { color:#22665b; }
.lf-seasons strong { display:block; font-size:.86rem; font-weight:600; line-height:1.45; }
.lf-season-rule { display:block; color:#635b56; font-size:.82rem; line-height:1.5; margin-top:7px; }
.lf-winter { display:flex; align-items:flex-start; gap:14px; margin-top:18px; padding:18px; background:#f9eaf0; border:1px solid #f0d6df; border-radius:10px; }
.lf-winter-icon { display:inline-flex; flex:0 0 24px; width:24px; color:var(--lf-red); margin-top:3px; }
.lf-winter-icon svg { width:24px; height:24px; }
.lf-winter-label { display:block; color:var(--lf-red); font-weight:700; font-size:.7rem; letter-spacing:.07em; text-transform:uppercase; margin-bottom:3px; }
.lf-winter strong { display:block; color:#76283d; font-size:.9rem; line-height:1.45; }
.lf-opening-section .lf-winter p { color:#6f4d56; margin-top:6px; font-size:.81rem; line-height:1.55; }
.lf-contact-strip { display:grid; grid-template-columns:.75fr 1.25fr auto; align-items:center; gap:28px; margin-top:24px; padding:26px 30px; border-radius:14px; background:#302e2c; color:#fff; }
.lf-contact-strip .lf-kicker { color:#79d3c5; font-size:.64rem; }
.lf-opening-section .lf-contact-strip p { font-size:.85rem; color:#f1ebe4; }
.lf-opening-section .lf-contact-strip .lf-phone-note { font-size:.72rem; line-height:1.5; margin-top:4px; color:#cbc4bd; max-width:380px; }
.lf-contact-phone { color:#fff !important; font-size:1.12rem; font-weight:600; letter-spacing:.02em; }
.lf-action { display:inline-flex; justify-content:center; align-items:center; gap:10px; padding:13px 22px; background:#a72f49; color:#fff !important; border:1px solid #a72f49; border-radius:50px; font-size:.83rem; font-weight:600; line-height:1.4; text-align:center; text-decoration:none; transition:background-color .15s,box-shadow .15s; }
.lf-action:hover { background:#8f263d; border-color:#8f263d; box-shadow:0 4px 10px #00000012; }
.lf-contact-strip .lf-action { background:#e0f0ea; border-color:#e0f0ea; color:#244c43 !important; }
.lf-contact-strip .lf-action:hover { background:#fff; border-color:#fff; }
.lf-opening-section a:focus-visible, .lf-banner:focus-visible, .lf-planner input:focus-visible { outline:3px solid #147b79; outline-offset:4px; }
.lf-contact-strip a:focus-visible { outline-color:#79d3c5; }
.lf-planner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:24px 40px; margin-top:24px; padding:28px 30px; background:#eaf2ec; border:1px solid #cfdfd4; border-radius:14px; }
.lf-opening-section .lf-planner h3 { font-size:1.9rem; margin:0 0 8px; }
.lf-opening-section .lf-planner p { font-size:.9rem; color:#506358; }
.lf-planner label { display:block; margin:0 0 7px; font-size:.82rem; font-weight:600; }
.lf-date-controls { display:flex; flex-wrap:wrap; gap:10px; align-items:stretch; }
.lf-planner input { display:block; flex:1 1 150px; min-width:0; max-width:100%; min-height:48px; padding:10px 14px; border:1px solid #aabbaf; border-radius:8px; background:#fff; color:var(--lf-ink); font:inherit; font-size:.94rem; }
.lf-date-controls .lf-action { flex:0 1 auto; }
.lf-opening-section .lf-planner-result { grid-column:1 / -1; padding:16px 20px; border-radius:9px; background:#ffffffa6; color:#334e3e; font-size:.88rem; }
.lf-banner { display:flex; align-items:center; gap:16px; max-width:630px; margin:1.25rem auto; padding:20px 24px; background:#fffcf7; border:1px solid #ffffffb3; border-radius:14px; color:#302b28 !important; text-align:left; box-shadow:0 8px 28px #18131026; }
.lf-banner-icon { display:flex; flex:0 0 42px; width:42px; height:42px; align-items:center; justify-content:center; background:#f6e6eb; border-radius:50%; color:#a72f49; }
.lf-banner-icon svg { width:23px; height:23px; }
.lf-banner-copy { flex:1; min-width:0; }
.lf-banner-copy strong, .lf-banner-copy > span { display:block; }
.lf-banner-copy strong { font-size:1rem; font-weight:600; }
.lf-banner-copy > span { margin-top:4px; font-size:.83rem; color:#70645d; line-height:1.5; }
.lf-banner-copy .lf-banner-link { color:#a72f49; font-size:.76rem; font-weight:600; margin-top:7px; }
.lf-banner [hidden] { display:none !important; }
.lf-banner-copy .lf-banner-upcoming { margin-top:12px; padding-top:10px; border-top:1px solid #e8e2dc; }
.lf-banner-upcoming b { display:block; margin-bottom:3px; color:#147b79; font-size:.76rem; font-weight:600; }
.lf-banner-upcoming > span { display:block; }
.lf-banner-arrow { color:#a72f49; font-size:1.4rem; }
.lf-banner:hover { background:#fff; box-shadow:0 10px 28px #18131040; }
@media (max-width:991px) {
  .lf-board { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:16px; }
  .lf-panel { padding:20px; }
  .lf-seasons { gap:10px; }
  .lf-seasons li { padding:12px; }
  .lf-contact-strip { gap:20px; grid-template-columns:1fr 1.4fr; }
  .lf-contact-strip .lf-action { grid-column:1 / -1; justify-self:start; }
  .lf-week th, .lf-week td { padding:10px 6px; }
  .lf-today-label { display:none; }
}
@media (max-width:767px) {
  .lf-opening-section { padding:42px 0; }
  .lf-section-head { display:block; margin-bottom:22px; }
  .lf-opening-section h2 { font-size:2.3rem; }
  .lf-section-head p { margin-top:12px; font-size:.85rem; }
  .lf-board { grid-template-columns:1fr; gap:16px; }
  .lf-panel { padding:22px; border-radius:12px; }
  .lf-panel-head { margin-bottom:14px; }
  .lf-opening-section .lf-panel-head h3 { font-size:1.55rem; }
  .lf-week th, .lf-week td { padding:8px 10px; }
  .lf-today-label { display:inline; }
  .lf-seasons li { padding:13px; }
  .lf-winter { padding:15px; gap:10px; }
  .lf-contact-strip { grid-template-columns:1fr; padding:24px; gap:20px; margin-top:16px; }
  .lf-contact-strip .lf-action { justify-self:stretch; }
  .lf-planner { grid-template-columns:1fr; gap:20px; padding:24px; margin-top:16px; }
  .lf-planner-result { grid-column:auto; }
  .lf-date-controls .lf-action { flex:1 1 100%; }
  .lf-banner { gap:12px; padding:16px; border-radius:12px; }
  .lf-banner-icon { width:34px; height:34px; flex-basis:34px; }
  .lf-banner-icon svg { width:20px; height:20px; }
  .lf-banner-arrow { display:none; }
  .lf-banner-copy strong { font-size:.94rem; }
  .lf-banner-copy > span { font-size:.78rem; }
}
@media (max-width:359px) {
  .lf-panel { padding:18px; }
  .lf-seasons { grid-template-columns:1fr; }
  .lf-week th, .lf-week td { padding:9px 6px; }
  .lf-today-label { display:none; }
}

