/* Shared responsive corrections. Loaded after page styles. */
:where(main) { min-width:0; }
:where(main) :where(img,video,iframe,input,textarea,select) { max-width:100%; }
:where(main) :where(input,textarea,select) { box-sizing:border-box; }
:where(main) :where(a,p,li,h1,h2,h3) { overflow-wrap:break-word; }
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:3px solid #b99d62!important; outline-offset:4px; }
header nav > ul > li:focus-within > ul { display:block; }
.hamburger:not(.showHamburger) { visibility:hidden; pointer-events:none; }
.hamburger.showHamburger { visibility:visible; pointer-events:auto; }
.hamburgerNav { height:100dvh; max-height:100dvh; overscroll-behavior:contain; }
.hamburgerNavContent { height:auto; min-height:calc(100dvh - 100px); padding-bottom:32px; box-sizing:border-box; }
footer { height:auto; min-height:300px; padding:30px 0; box-sizing:border-box; }
footer .footerWrapper { max-width:1320px; gap:20px; }
footer .topFooter,footer .bottomFooter { row-gap:20px; }
footer .topFooter img { max-width:100%; }
footer .rightBottom { max-width:100%; }
.page-brouwerijwinkel .text-overlay { box-sizing:border-box; width:calc(100% - 40px)!important; }
.page-faq .title { box-sizing:border-box; }
.page-faq .title h1 { max-width:100%; font-size:clamp(26px,4vw,40px); }
.page-info .info,.page-info .info-details { min-width:0; box-sizing:border-box; }
.spiritDisplaySwup .spiritInfo { box-sizing:border-box; width:100%; max-width:100%; }
.bierDisplaySwup .radios,.spiritDisplaySwup .radios { max-width:calc(100vw - 32px); flex-wrap:wrap; justify-content:center; gap:12px; }
.bierDisplaySwup .radios input,.spiritDisplaySwup .radios input { flex-shrink:0; }
.page-cafe .text-overlay p { width:auto; max-width:100%; }
@media(max-width:1024px) {
  #toggleHamburgerMenu { width:44px; height:44px; display:flex; flex-direction:column; justify-content:center; align-items:center; margin:14px; border-radius:4px; background:#142d24; cursor:pointer; }
  #toggleHamburgerMenu > span { flex-shrink:0; }
  .ageCheck { max-height:100dvh; overflow-y:auto; }
  .ageCheckContainer,.ageCheckForm { max-width:100%; box-sizing:border-box; }
  .ageCheckForm .ageButton { max-width:calc(100vw - 32px); min-height:48px; white-space:normal; box-sizing:border-box; }
  .index > .content > .image-container { display:grid; position:relative; overflow:hidden; }
  .index > .content > .image-container > .imageFlex { position:absolute; inset:0; }
  .index .imageFlex img { width:100%; height:100%!important; max-height:none; margin:0; transform:none; }
  .index > .content > .image-container > .overlay { position:relative; height:auto; }
  .index .flexContainerIndexTop { padding:85px 20px 40px; width:100%; box-sizing:border-box; }
  .index .flexContainerIndexTop .logo { margin:0 0 20px; width:180px; max-width:45%; flex-grow:0!important; }
  .index .text-container { box-sizing:border-box; width:100%; max-width:760px; margin:0; padding:0; }
  .index .text-container h2,.index .text-container p { width:100%; margin-left:0; margin-right:0; }
  .index .text-container p { font-size:15px; line-height:1.7; }
  .index .ivm { margin:16px 0; }
  .index .butt { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
  .index .butt > a { box-sizing:border-box; margin:0; min-height:48px; width:auto; max-width:100%; flex:1 1 180px; }
  .page-cafe .brouwerij-section,.page-brouwerijwinkel .brouwerij-section,.page-rondleiding .brouwerij-section,.page-picknick .brouwerij-section,.page-horeca .brouwerij-section { position:relative; }
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .brouwerij-section > .image-container { height:clamp(320px,48vw,500px); }
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .brouwerij-section > .image-container img { width:100%; height:100%; object-fit:cover; }
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .brouwerij-section > .text-overlay { inset:auto 20px 24px; width:auto!important; max-width:100%; padding:0; margin:0; box-sizing:border-box; }
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .text-overlay h2 { font-size:clamp(30px,5.5vw,48px); overflow-wrap:anywhere; }
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .text-overlay p { font-size:16px; width:auto; }
}
@media(max-width:700px) {
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .picknick { margin:40px 20px; width:auto; max-width:calc(100% - 40px); box-sizing:border-box; }
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .picknick-content { min-width:0; width:auto; margin:0; padding:20px; box-sizing:border-box; }
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .picknick-content p,
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .picknick-content h2 { width:auto; max-width:100%; margin-left:0; margin-right:0; }
  :is(.page-cafe,.page-brouwerijwinkel,.page-rondleiding,.page-picknick,.page-horeca) .book-now { transition:background-color .2s ease,color .2s ease; display:inline-flex; justify-content:center; align-items:center; box-sizing:border-box; max-width:100%; margin:10px 0; white-space:normal; text-align:center; }
  .page-info .info { width:calc(100% - 40px); max-width:100%; margin:20px; padding:20px; }
  .page-info .info table,.page-info .info tbody { display:block; width:100%; }
  .page-info .info tr { display:block; padding:12px 0; border-bottom:1px solid #ddd; }
  .page-info .info td { display:block; width:auto; padding:3px 0; }
  .page-info .info td a { overflow-wrap:anywhere; font-size:14px; }
  .page-info .map-container,.page-info .map-container iframe { width:100%; max-width:100%; }
  .page-fanpage .wrapper { margin-left:0; padding:20px; }
  .page-fanpage .testPoloroid { left:0; width:100%; max-width:100%; transform:none!important; transition:box-shadow .2s ease; }
  .page-fanpage .polaroid { width:100%; max-width:100%; }
  .page-fanpage .IconBottomRight { left:0; transform:none; animation:none; }
  .page-fanpage .caption { font-size:24px; line-height:1.5; }
  .page-faq .faq { box-sizing:border-box; padding:0 12px; }
  .page-faq summary { padding:14px 8px; line-height:1.6; }
  .page-horeca input,.page-horeca textarea,.page-horeca select { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
  html.is-changing .transition-fade { transition:none; }
  .hamburger,.hamburgerNav { transition:none; }
}
/* Older history pages use regular full-page navigation. */
.legacy-vroeger-nu > .container { height:auto; padding:0 24px; margin:32px auto; max-width:1200px; box-sizing:border-box; }
.legacy-vroeger-nu > header + button ~ .container:first-of-type { margin-top:130px; }
.legacy-vroeger-nu .background-container { width:100%; height:clamp(280px,42vw,530px); }
.legacy-vroeger-nu .background-container img { box-sizing:border-box; padding:0; width:100%; height:100%; object-fit:cover; }
.legacy-vroeger-nu .background-container .overlay { width:90%; text-shadow:0 2px 8px #000; }
:is(.legacy-brouwerij,.legacy-stokerij) .brouwerij-section { height:auto; min-height:80vh; padding:100px 5vw 70px; box-sizing:border-box; isolation:isolate; }
:is(.legacy-brouwerij,.legacy-stokerij) .brouwerij-section > .background-container { filter:brightness(.4); }
:is(.legacy-brouwerij,.legacy-stokerij) .modern-image-container { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:5vw; height:auto; width:100%; }
:is(.legacy-brouwerij,.legacy-stokerij) .modern-image-container > img { order:2; width:100%; margin:0; }
:is(.legacy-brouwerij,.legacy-stokerij) .modern-image-container .text-overlay { order:1; position:static; width:100%!important; max-width:100%; margin:0; }
:is(.legacy-brouwerij,.legacy-stokerij) .modern-image-container .text-overlay :is(h2,p) { width:100%; overflow-wrap:break-word; }
:is(.legacy-brouwerij,.legacy-stokerij) .modern-image-container .text-overlay h2 { font-size:clamp(26px,3vw,40px); }
:is(.legacy-brouwerij,.legacy-stokerij) .modern-image-container .text-overlay p { font-size:16px; line-height:1.75; }
@media(max-width:1024px) {
  .bierDisplaySwup .arrows button,.spiritDisplaySwup .arrows button { width:44px; min-width:44px; height:44px; display:grid; place-items:center; box-sizing:border-box; padding:10px; }
  .bierDisplaySwup .arrows button img,.spiritDisplaySwup .arrows button img { width:24px; max-width:100%; height:24px; object-fit:contain; }
}
@media(max-width:768px) {
  :is(.legacy-brouwerij,.legacy-stokerij) .modern-image-container { grid-template-columns:minmax(0,1fr); gap:30px; }
  .page-fanpage .IconBottomRight { left:0; transform:none; animation:none; }
}
@media(max-width:1024px) {
  .bierDisplaySwup .awards { box-sizing:border-box; max-width:calc(100% - 90px); padding:0; gap:6px; right:70px!important; }
  .bierDisplaySwup .awards li { margin:0; padding:0; }
  .bierDisplaySwup .awards img { width:44px; max-width:100%; height:auto; object-fit:contain; }
}
/* Mobile navigation must not inherit page typography or animated layout sizes. */
@media(max-width:1024px) {
  .hamburger {
    inset:0;
    width:100%;
    height:100dvh;
    max-height:100dvh;
    font:400 16px/1.5 'Oswald',sans-serif;
    color:#282b2e;
    transition:none;
    overflow:hidden!important;
  }
  .hamburger:not(.showHamburger) { display:none; }
  .hamburger.showHamburger {
    display:flex;
    transform:none;
    opacity:1!important;
    visibility:visible;
    pointer-events:auto;
  }
  .hamburger .hamburgerNav {
    width:100%;
    height:100dvh;
    max-height:100dvh;
    overflow-y:auto!important;
    overflow-x:hidden;
    transition:none;
    padding-bottom:env(safe-area-inset-bottom);
  }
  .hamburger .topHamburgerContainer { min-height:100px; height:100px; }
  .hamburger .hamburgerLogoContainer img { width:150px; height:100%; max-height:100px; object-fit:contain; margin:0; }
  .hamburger .hamburgerNavContent {
    height:auto;
    min-height:0;
    padding:18px 0 32px;
    overflow:visible!important;
  }
  .hamburger .hamburgerNavContent > a,
  .hamburger .submenuSet > button {
    box-sizing:border-box;
    width:84%;
    min-height:48px;
    padding:12px 0;
    font:400 18px/1.4 'Oswald',sans-serif;
    cursor:pointer;
  }
  .hamburger .hamburgerNavContent > .xv-nav-button { padding:12px 16px; margin-bottom:8px; }
  .hamburger .submenuSet { overflow:visible; width:100%; transition:none!important; }
  .hamburger .hamButton { align-items:center; }
  .hamburger .hamButton p { font:inherit; margin:0; }
  .hamburger .hamButton img { width:16px; height:16px; margin:0; padding:0; }
  .hamburger .hamburgerNavContent .hamul {
    display:none;
    width:84%;
    height:auto;
    padding:0 0 12px 16px;
    overflow:visible;
    transition:none!important;
  }
  .hamburger .hamburgerNavContent .hamul.active { display:flex; height:auto; }
  .hamburger .hamul li { margin:0; padding:0; }
  .hamburger .hamul li a {box-sizing:border-box; display:block; padding:10px 0; min-height:44px; font:400 16px/1.5 'Oswald',sans-serif; }
  .hamburger .socialeMedia h3 { font:500 16px/1.5 'Roboto',sans-serif; margin:25px 0 12px; }
  #toggleHamburgerMenu { box-sizing:border-box; padding:0; }
  #toggleHamburgerMenu > span {
    position:absolute;
    left:10px;
    top:21px;
    width:24px!important;
    height:2px!important;
    margin:0;
    border:0;
    box-shadow:none;
    transform-origin:center!important;
    transition:none;
  }
  #toggleHamburgerMenu > span:nth-child(1) { transform:translateY(-8px); }
  #toggleHamburgerMenu > span:nth-child(2) { transform:none; opacity:1; }
  #toggleHamburgerMenu > span:nth-child(3) { transform:translateY(8px); }
  #toggleHamburgerMenu > span.activeLine1 { transform:rotate(45deg); }
  #toggleHamburgerMenu > span.activeLine2 { opacity:0; }
  #toggleHamburgerMenu > span.activeLine3 { transform:rotate(-45deg); }
  html:has(.hamburger.showHamburger) { overflow:hidden; }
}
