/*
Theme Name: Beghuset
Theme URI: https://www.beghuset.dk
Author: Design for Beghuset hos Peter & Peter
Description: Custom one-page restaurant theme for Beghuset hos Peter & Peter, Dragør. Danish-French bistro. Bilingual (DA/EN) front page with menu highlights, events calendar, opening hours and booking.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: beghuset
*/

/* ---------- Tokens ---------- */
:root{
  --bh-paper:#F6F3EC;
  --bh-ink:#24201A;
  --bh-ink-soft:#554F46;
  --bh-ink-muted:#6E6558;
  --bh-green:#1F4A38;
  --bh-green-dark:#163527;
  --bh-green-light:#9FC0AE;
  --bh-rust:#A6542F;
  --bh-copper:#C8875A;
  --bh-sand:#C8B79B;
  --bh-night:#1A1713;
  --bh-max:1240px;
  --bh-sans:'DM Sans',Helvetica,Arial,sans-serif;
  --bh-serif:'Instrument Serif',Georgia,serif;
  --bh-mono:'JetBrains Mono',ui-monospace,monospace;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bh-paper);color:var(--bh-ink);font-family:var(--bh-sans);font-size:16px;line-height:1.6;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--bh-green);text-decoration:none}
a:hover{color:var(--bh-rust)}
h1,h2,h3{font-family:var(--bh-serif);font-weight:400;margin:0;letter-spacing:-.01em}
button{font-family:inherit}
.bh-skip{position:absolute;left:-9999px}
.bh-skip:focus{left:12px;top:12px;z-index:100;background:#fff;padding:10px 14px;border-radius:4px}
:focus-visible{outline:2px solid var(--bh-copper);outline-offset:3px}
.bh-wrap{max-width:var(--bh-max);margin:0 auto;padding-left:20px;padding-right:20px}
.bh-kicker{font-family:var(--bh-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--bh-rust)}
.bh-h2{font-size:clamp(32px,4.4vw,54px);line-height:1.06;text-wrap:balance}
.bh-lead{font-size:16px;line-height:1.7;color:var(--bh-ink-soft);text-wrap:pretty;margin:0}
.bh-section{padding:clamp(64px,9vw,120px) 0}

/* ---------- Buttons ---------- */
.bh-btn{display:inline-block;padding:15px 28px;border-radius:999px;font-size:15px;font-weight:700;border:1px solid transparent;cursor:pointer}
.bh-btn--primary{background:var(--bh-green);color:var(--bh-paper);border-color:var(--bh-green)}
.bh-btn--primary:hover{background:var(--bh-green-dark);color:var(--bh-paper)}
.bh-btn--ghost{border-color:rgba(36,32,26,.3);color:var(--bh-ink);font-weight:500;background:transparent}
.bh-btn--ghost:hover{background:rgba(36,32,26,.06);color:var(--bh-ink)}
.bh-btn--light{background:var(--bh-paper);color:var(--bh-night)}
.bh-btn--light:hover{background:#fff;color:var(--bh-night)}
.bh-btn--outline-light{border-color:rgba(246,243,236,.4);color:var(--bh-paper);font-weight:500;background:transparent}
.bh-btn--outline-light:hover{background:rgba(246,243,236,.12);color:var(--bh-paper)}
.bh-btn-row{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- Header ---------- */
.bh-header{position:sticky;top:0;z-index:40;background:rgba(246,243,236,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(36,32,26,.12)}
.bh-header__inner{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px}
.bh-brand{display:flex;flex-direction:column;gap:2px;color:var(--bh-ink);margin-right:auto}
.bh-brand:hover{color:var(--bh-ink)}
.bh-brand__name{font-family:var(--bh-serif);font-size:26px;line-height:1;letter-spacing:.04em}
.bh-brand__sub{font-family:var(--bh-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--bh-ink-muted)}
.bh-nav ul{display:flex;align-items:center;gap:22px;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:14.5px;font-weight:500}
.bh-nav a{color:var(--bh-ink)}
.bh-nav a:hover{color:var(--bh-green)}
.bh-header__actions{display:flex;align-items:center;gap:10px}
.bh-lang{font-family:var(--bh-mono);font-size:11px;letter-spacing:.1em;padding:9px 11px;border:1px solid rgba(36,32,26,.25);background:transparent;color:var(--bh-ink);border-radius:999px;cursor:pointer}
.bh-lang:hover{background:rgba(36,32,26,.06)}
.bh-header .bh-btn{padding:12px 20px;font-size:14px}
.bh-header .bh-btn--ghost{padding:11px 16px}
.bh-burger{display:none;width:42px;height:42px;border-radius:999px;border:1px solid rgba(36,32,26,.25);background:transparent;cursor:pointer;font-size:18px;line-height:1;color:var(--bh-ink)}

/* ---------- Hero ---------- */
.bh-hero{position:relative;min-height:86vh;display:flex;align-items:flex-end;background:var(--bh-night);overflow:hidden}
.bh-hero__media{position:absolute;inset:0;background-image:repeating-linear-gradient(135deg,#2A2520 0 14px,#211D18 14px 28px);background-size:cover;background-position:center}
.bh-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bh-hero__note{position:absolute;top:88px;right:20px;z-index:2;font-family:var(--bh-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,243,236,.5);border:1px dashed rgba(246,243,236,.35);padding:10px 14px}
.bh-hero__scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(14,12,10,.92) 0%,rgba(14,12,10,.55) 45%,rgba(14,12,10,.25) 100%)}
.bh-hero__inner{position:relative;width:100%;padding-top:120px;padding-bottom:56px}
.bh-hero__col{max-width:820px;display:flex;flex-direction:column;gap:20px}
.bh-hero__eyebrow{font-family:var(--bh-mono);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--bh-sand)}
.bh-hero h1{font-size:clamp(40px,7vw,82px);line-height:1.02;color:var(--bh-paper);text-wrap:balance}
.bh-hero__body{margin:0;max-width:560px;font-size:16px;line-height:1.65;color:rgba(246,243,236,.82);text-wrap:pretty}
.bh-hero__meta{display:flex;flex-wrap:wrap;gap:14px 28px;margin-top:8px;font-size:14.5px;color:rgba(246,243,236,.86)}
.bh-hero__meta a{color:var(--bh-sand);text-decoration:underline;text-underline-offset:3px}
.bh-hero__meta a:hover{color:var(--bh-paper)}
.bh-hero__sep{color:rgba(246,243,236,.4)}
.bh-eventpill{display:inline-flex;align-items:center;gap:12px;align-self:flex-start;margin-top:4px;padding:11px 16px 11px 14px;border-radius:999px;border:1px solid rgba(246,243,236,.3);background:rgba(246,243,236,.08);color:var(--bh-paper);cursor:pointer;font-size:14px;text-align:left}
.bh-eventpill:hover{background:rgba(246,243,236,.16)}
.bh-eventpill__dot{width:7px;height:7px;border-radius:50%;background:var(--bh-copper);flex:none}
.bh-eventpill__label{font-family:var(--bh-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,243,236,.7)}
.bh-eventpill__title{font-weight:500}
.bh-eventpill__arrow{opacity:.6}

/* ---------- Modal ---------- */
.bh-modal{position:fixed;inset:0;z-index:90;background:rgba(14,12,10,.6);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}
.bh-modal[hidden]{display:none}
.bh-modal__panel{width:100%;max-width:560px;max-height:84vh;overflow-y:auto;background:var(--bh-paper);border-radius:6px;padding:30px;animation:bhFade .22s ease-out}
@keyframes bhFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.bh-modal__head{display:flex;align-items:flex-start;gap:16px;margin-bottom:22px}
.bh-modal__heading{display:flex;flex-direction:column;gap:6px;margin-right:auto}
.bh-modal__kicker{font-family:var(--bh-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--bh-ink-muted)}
.bh-modal h3{font-size:30px;line-height:1.1}
.bh-modal__close{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid rgba(36,32,26,.2);background:transparent;color:var(--bh-ink);cursor:pointer;font-size:15px}
.bh-modal__close:hover{background:rgba(36,32,26,.07)}
.bh-modal__row{display:flex;gap:18px;padding:16px 0;border-top:1px solid rgba(36,32,26,.14)}
.bh-modal__date{flex:none;width:92px;font-family:var(--bh-mono);font-size:12px;letter-spacing:.04em;color:var(--bh-green);padding-top:3px}
.bh-modal__text{display:flex;flex-direction:column;gap:4px}
.bh-modal__title{font-weight:700;font-size:16px}
.bh-modal__body{font-size:14px;line-height:1.55;color:var(--bh-ink-muted);text-wrap:pretty}
.bh-modal .bh-btn{margin-top:24px;padding:13px 24px;font-size:14.5px}

/* ---------- Menu section ---------- */
.bh-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(32px,5vw,72px);align-items:start}
.bh-split--center{align-items:center;gap:clamp(32px,5vw,64px)}
.bh-stack{display:flex;flex-direction:column;gap:22px}
.bh-links{display:flex;flex-direction:column;gap:10px;font-size:15px;font-weight:500}
.bh-links a{display:inline-flex;gap:10px}
.bh-dishes{display:flex;flex-direction:column;border-top:1px solid rgba(36,32,26,.16)}
.bh-dish{display:flex;align-items:baseline;gap:16px;padding:20px 0;border-bottom:1px solid rgba(36,32,26,.12)}
.bh-dish__text{display:flex;flex-direction:column;gap:5px;margin-right:auto}
.bh-dish__name{font-size:17px;font-weight:700}
.bh-dish__desc{font-size:14px;line-height:1.5;color:var(--bh-ink-muted);text-wrap:pretty}
.bh-dish__price{font-family:var(--bh-mono);font-size:14px;color:var(--bh-green);flex:none}

/* ---------- Events ---------- */
.bh-events{background:var(--bh-green);color:#F0EDE4}
.bh-events .bh-kicker{color:var(--bh-green-light)}
.bh-events h2{color:var(--bh-paper)}
.bh-events__head{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:44px}
.bh-events__headcol{display:flex;flex-direction:column;gap:18px;margin-right:auto}
.bh-events__intro{margin:0;max-width:360px;font-size:15.5px;line-height:1.65;color:rgba(240,237,228,.78);text-wrap:pretty}
.bh-events__grid{display:flex;flex-wrap:wrap;gap:1px;background:rgba(246,243,236,.22)}
.bh-event{background:var(--bh-green);padding:26px 22px 30px;display:flex;flex-direction:column;gap:12px;min-height:240px;flex:1 1 220px}
.bh-event__date{font-family:var(--bh-mono);font-size:12px;letter-spacing:.06em;color:var(--bh-copper)}
.bh-event__title{font-family:var(--bh-serif);font-size:25px;line-height:1.15;color:var(--bh-paper);text-wrap:balance}
.bh-event__body{font-size:14px;line-height:1.6;color:rgba(240,237,228,.72);margin-bottom:auto;text-wrap:pretty}
.bh-event__link{font-size:14px;font-weight:500;color:var(--bh-paper);border-bottom:1px solid rgba(246,243,236,.4);align-self:flex-start;padding-bottom:2px}
.bh-event__link:hover{color:var(--bh-copper)}

/* ---------- Hours ---------- */
.bh-figure{position:relative;aspect-ratio:4/3;background-image:repeating-linear-gradient(135deg,#E6E0D3 0 12px,#DED7C8 12px 24px);display:flex;align-items:center;justify-content:center;border-radius:4px;overflow:hidden}
.bh-figure img{width:100%;height:100%;object-fit:cover}
.bh-figure__note{font-family:var(--bh-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--bh-ink-muted);border:1px dashed rgba(36,32,26,.3);padding:9px 13px;text-align:center}
.bh-hours{display:flex;flex-direction:column;border-top:1px solid rgba(36,32,26,.16);max-width:420px}
.bh-hours__row{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid rgba(36,32,26,.12);font-size:15.5px}
.bh-hours__day{font-weight:500}
.bh-hours__time{font-family:var(--bh-mono);font-size:14px;color:var(--bh-ink-soft)}

/* ---------- Footer ---------- */
.bh-footer{background:var(--bh-night);color:rgba(240,237,228,.8)}
.bh-footer__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:44px;padding-top:clamp(56px,7vw,90px);padding-bottom:34px}
.bh-footer__col{display:flex;flex-direction:column;gap:12px}
.bh-footer__name{font-family:var(--bh-serif);font-size:30px;color:var(--bh-paper);letter-spacing:.04em}
.bh-footer p{margin:0;font-size:15px;line-height:1.7;max-width:300px;text-wrap:pretty}
.bh-footer__label{font-family:var(--bh-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#8A8177}
.bh-footer__addr{color:#F0EDE4;font-size:15px;line-height:1.6}
.bh-footer a{color:var(--bh-sand);font-size:15px}
.bh-footer a:hover{color:var(--bh-paper)}
.bh-footer__social{display:flex;gap:16px;font-size:14px;font-weight:500}
.bh-footer__small{color:#8A8177;font-size:13.5px}
.bh-map{border-radius:4px;overflow:hidden;border:1px solid rgba(246,243,236,.16)}
.bh-map iframe{width:100%;height:210px;border:0;display:block;filter:grayscale(.4)}
.bh-footer__bar{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center;border-top:1px solid rgba(246,243,236,.14);padding-top:24px;padding-bottom:40px;font-size:13.5px;color:#8A8177}
.bh-footer__bar span{margin-right:auto}
.bh-footer__bar a{color:#8A8177;font-size:13.5px}
.bh-footer__bar a:hover{color:var(--bh-paper)}

/* ---------- Language switching ---------- */
html[lang="en"] [data-bh-lang="da"],
html:not([lang="en"]) [data-bh-lang="en"]{display:none !important}

/* ---------- Generic pages (index.php / page.php) ---------- */
.bh-page{padding:clamp(56px,7vw,100px) 0}
.bh-page article + article{margin-top:56px}
.bh-page h1,.bh-page h2{font-size:clamp(30px,4vw,48px);line-height:1.1;margin-bottom:18px}
.bh-page .bh-entry{max-width:720px;font-size:17px;line-height:1.7}

/* ---------- Mobile ---------- */
@media (max-width:1000px){
  .bh-header__inner{gap:14px}
  .bh-header .bh-btn--ghost{display:none}
}
@media (max-width:860px){
  .bh-burger{display:block;order:3}
  .bh-nav{order:4;flex-basis:100%;display:none}
  .bh-nav.is-open{display:block}
  .bh-nav ul{flex-direction:column;align-items:stretch;gap:0;padding:6px 0 10px}
  .bh-nav li{border-top:1px solid rgba(36,32,26,.12)}
  .bh-nav a{display:block;padding:14px 2px;font-size:16px}
  .bh-hero{min-height:auto}
  .bh-hero__inner{padding-top:96px;padding-bottom:44px}
  .bh-hero__note{display:none}
  .bh-eventpill{flex-wrap:wrap;gap:8px 12px}
  .bh-modal__panel{padding:22px}
}
@media (max-width:520px){
  .bh-btn{width:100%;text-align:center}
  .bh-header .bh-btn{width:auto}
  .bh-modal__row{flex-direction:column;gap:6px}
  .bh-modal__date{width:auto}
}
