:root{
  color-scheme:dark;
  --kol:#1a1410; --vagg:#2b2019; --deg:#3d2c1f;
  --mjol:#f5ede0; --mjol-muted:#c9b8a0;
  --tomat:#e8623d; --on-tomat:#1a1410;
  --glod:#f0954a; --massing:#b3823f; --basilika:#8fb36b; --linje:#5a4331;
  --display:"Young Serif", Georgia, "Times New Roman", serif;
  --sans:"Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;
  --s2:8px; --s4:16px; --s6:24px; --s10:32px;
  --r-sm:2px; --r-md:6px;
  --wrap:1180px;
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-in-out:cubic-bezier(.77,0,.175,1);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .92 0 0 0 0 .8 0 0 0 .08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
@media (min-width:900px){ :root{ --s10:56px; } }

*{box-sizing:border-box}
html{background:var(--kol);scroll-behavior:smooth;scroll-padding-top:80px}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
body{margin:0;background:var(--kol);color:var(--mjol);font-family:var(--sans);font-size:17px;line-height:26px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;background-image:var(--grain);pointer-events:none;z-index:60;mix-blend-mode:screen}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--mjol);outline-offset:2px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--s6)}
@media (max-width:520px){ .wrap{padding-inline:var(--s4)} }
.label{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.muted{color:var(--mjol-muted)}
.glod{color:var(--glod)}

/* demo strip */
.demo{background:var(--deg);color:var(--mjol-muted);font-size:13px;line-height:18px;text-align:center;padding-block:6px;padding-inline:var(--s4);border-bottom:1px solid var(--linje)}
.demo b{color:var(--glod);font-weight:600}
/* back link to the portfolio hub; only present when the demo is served from the hub (added by its sync script) */
.demo-back{display:inline-block;margin:-6px 12px -6px 0;padding:6px 4px;color:var(--mjol);font-weight:600;text-decoration:none}
.demo-back:hover{color:var(--glod)}

/* nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--kol);border-bottom:1px solid var(--linje)}
.nav .wrap{display:flex;align-items:center;gap:var(--s6);min-height:64px}
.brand{font-family:var(--display);font-size:26px;line-height:1;text-decoration:none;margin-right:auto}
.nav nav{display:flex;gap:var(--s6)}
.nav nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-weight:500;font-size:15px;color:var(--mjol-muted);border-bottom:2px solid transparent}
.nav nav a:hover{color:var(--mjol);border-color:var(--glod)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:44px;font:600 15px/1 var(--sans);text-decoration:none;border-radius:var(--r-sm);padding:0 20px;border:0;cursor:pointer}
.btn-tomat{background:var(--tomat);color:var(--on-tomat)}
.btn-tomat:hover{background:var(--glod)}
.nav .m-only{display:none}
@media (max-width:760px){ .nav nav{display:none} .nav .m-only{display:inline-flex;font-weight:600;font-size:15px;text-decoration:none;min-height:44px;align-items:center;border-bottom:2px solid var(--glod)} .nav .wrap{gap:var(--s4)} }

/* hero */
.hero{padding-block:var(--s10) 0;position:relative}
.hero .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s6);align-items:end}
.hero-copy{padding-bottom:var(--s10)}
.eyebrow{color:var(--glod);margin-bottom:var(--s4);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--massing)}
.hero h1{font-size:clamp(50px,8vw,92px);line-height:.95;letter-spacing:-.015em}
.hero h1 em{font-style:normal;color:var(--glod);display:block}
.hero .lede{margin-top:var(--s6);max-width:29em;color:var(--mjol-muted);font-size:18px;line-height:28px}
.hero .lede strong{color:var(--mjol);font-weight:500}
.hero-actions{margin-top:var(--s6);display:flex;flex-wrap:wrap;gap:var(--s4) var(--s6);align-items:center}
.link-glod{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-decoration:none}
.link-glod span{border-bottom:2px solid var(--glod);padding-bottom:2px}
.link-glod:hover{color:var(--glod)}
.trio{margin-top:var(--s10);display:flex;flex-wrap:wrap;gap:6px 14px;font-family:var(--display);font-size:19px;color:var(--mjol)}
.trio i{font-style:normal;color:var(--massing)}

.oven{position:relative;aspect-ratio:4/5;max-width:100%;border-radius:999px 999px 0 0;border:1.5px solid var(--massing);border-bottom:0;overflow:hidden;background:var(--vagg)}
.oven::before{content:"";position:absolute;inset:14px 14px 0;border-radius:999px 999px 0 0;border:1px solid var(--linje);border-bottom:0;z-index:2;pointer-events:none}
.oven canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.oven .hearth{position:absolute;left:0;right:0;bottom:0;height:10px;background:var(--massing);z-index:3}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr}
  .hero-copy{padding-bottom:0}
  .oven{width:min(100%,440px);justify-self:center;aspect-ratio:1/1}
  .trio{margin-top:var(--s6)}
}

/* pillars */
.pillars{background:var(--vagg);border-top:1px solid var(--massing);border-bottom:1px solid var(--massing)}
.pillars .wrap{display:grid;grid-template-columns:repeat(3,1fr)}
.pillar{padding:var(--s10) var(--s6);display:grid;gap:var(--s2);align-content:start}
.pillar + .pillar{border-left:1px solid var(--linje)}
.pillar svg{width:30px;height:30px;stroke:var(--massing);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:var(--s2)}
.pillar h2{font-size:26px;line-height:32px}
.pillar p{color:var(--mjol-muted);max-width:26em}
.pillars .wrap > :first-child{padding-left:0}
@media (max-width:820px){
  .pillars .wrap{grid-template-columns:1fr}
  .pillar{padding:var(--s6) 0}
  .pillar + .pillar{border-left:0;border-top:1px solid var(--linje)}
}

/* menu */
.menu{position:relative;padding-block:var(--s10)}
.menu .band{position:absolute;left:0;right:0;top:calc(var(--s10) + 150px);height:320px;background:var(--glod)}
.menu-head{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:end;gap:var(--s2) var(--s10);margin-bottom:var(--s6)}
.menu-head h2{font-size:clamp(48px,6vw,72px);line-height:1}
.menu-head p{max-width:32em;color:var(--mjol-muted)}
.jump{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px var(--s6);margin-top:var(--s2)}
.jump a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-weight:600;font-size:15px;color:var(--mjol-muted);border-bottom:2px solid transparent}
.jump a:hover{color:var(--mjol);border-color:var(--glod)}
@media (max-width:700px){ .menu-head{grid-template-columns:1fr} .jump{gap:0 var(--s4)} }

.card{position:relative;background:var(--vagg);border:1px solid var(--massing);border-radius:var(--r-sm);outline:1px solid var(--linje);outline-offset:-8px}
.menu-card{display:grid;grid-template-columns:1.15fr 1fr;padding:var(--s10) var(--s10)}
.menu-card > div{display:grid;gap:var(--s10);align-content:start}
.menu-card > div:first-child{padding-right:var(--s10);border-right:1px solid var(--linje)}
.menu-card > div:last-child{padding-left:var(--s10)}
.course h3{font-size:30px;line-height:34px;display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);padding-bottom:12px;border-bottom:2px solid var(--massing);margin-bottom:var(--s2)}
.course h3 .label{color:var(--glod);font-family:var(--sans)}
.dish{padding-block:14px;border-bottom:1px solid var(--linje)}
.dish:last-child{border-bottom:0;padding-bottom:0}
.dish-top{display:flex;align-items:baseline;gap:var(--s2)}
.dish-name{font-family:var(--display);font-size:22px;line-height:28px}
.leader{flex:1;min-width:16px;border-bottom:1.5px dotted var(--linje);transform:translateY(-6px)}
.price{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.price small{font-weight:500;color:var(--mjol-muted);font-size:14px}
.dish-desc{margin-top:4px;color:var(--mjol-muted);max-width:34em}
.tag{font-family:var(--sans);border-radius:999px;padding:1px 8px;border:1px solid currentColor;align-self:center;white-space:nowrap}
.tag.vego{color:var(--basilika)}
.tag.stark{color:var(--glod)}
.dish.signature .dish-name{color:var(--glod)}
.dish.signature .sig{display:block;margin-top:6px;color:var(--glod)}
.wine{background:var(--deg);border:1px solid var(--massing);border-radius:var(--r-sm);padding:var(--s6)}
.wine h3{border-bottom-color:var(--massing)}
.wine .row{display:flex;align-items:baseline;gap:var(--s2);padding-block:10px;border-bottom:1px solid var(--linje)}
.wine .row:last-of-type{border-bottom:0}
.wine .row .leader{border-color:var(--linje)}
.wine p.muted{margin-top:var(--s2)}
.allergy{margin-top:var(--s6);font-size:14px;line-height:20px;color:var(--mjol-muted);position:relative}
@media (max-width:900px){
  .menu-card{grid-template-columns:1fr;padding:var(--s6)}
  .menu-card > div:first-child{padding-right:0;border-right:0;padding-bottom:var(--s10)}
  .menu-card > div:last-child{padding-left:0}
  .menu .band{top:calc(var(--s10) + 200px);height:220px}
}
@media (max-width:520px){
  .menu-card{padding:var(--s6) var(--s4)}
  .card{outline-offset:-5px}
  .dish-name{font-size:20px;line-height:26px}
  .course h3{font-size:26px}
}

/* quote */
.quote{padding-block:var(--s10)}
.quote blockquote{margin:0;display:grid;grid-template-columns:auto 1fr;gap:var(--s6);align-items:start}
.quote blockquote::before{content:"";width:2px;align-self:stretch;background:var(--massing)}
.quote p{font-family:var(--display);font-size:clamp(34px,5vw,64px);line-height:1.02;letter-spacing:-.01em;text-wrap:balance;max-width:16em}
.quote p span{color:var(--glod)}

/* booking */
.book{background:var(--tomat);color:var(--on-tomat)}
.book .wrap{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--s6) var(--s10);padding-block:var(--s10)}
.book h2{font-size:clamp(44px,6vw,68px);line-height:1}
.book .intro p{margin-top:var(--s4);max-width:26em;font-weight:500}
.phone{margin-top:var(--s6);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4)}
.phone .num{font-family:var(--display);font-size:28px;line-height:32px;font-variant-numeric:tabular-nums;user-select:all}
.copy{font:600 13px/1 var(--sans);background:transparent;color:var(--on-tomat);border:1.5px solid var(--on-tomat);border-radius:var(--r-sm);min-height:44px;padding:0 12px;cursor:pointer}
.copy:hover{background:var(--on-tomat);color:var(--tomat)}
form.booking{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6) var(--s4);align-content:end}
.field{display:grid;gap:6px}
.field label{font-size:12px;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.field input,.field select{font:500 17px/1.2 var(--sans);color:var(--on-tomat);background:transparent;border:0;border-bottom:2px solid var(--on-tomat);border-radius:0;padding:10px 2px;min-height:44px;width:100%;min-width:0;color-scheme:light}
.field input::placeholder{color:var(--on-tomat);opacity:.65}
.field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231a1410' stroke-width='1.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center}
.field.wide{grid-column:1 / span 2}
.book .submit{align-self:end;background:var(--kol);color:var(--mjol);min-height:48px}
.book .submit:hover{background:var(--vagg)}
.book .note{grid-column:1 / -1;font-size:14px;line-height:20px;font-weight:600;min-height:20px}
@media (max-width:860px){
  .book .wrap{grid-template-columns:1fr}
  form.booking{grid-template-columns:1fr 1fr}
  .field.wide,.book .submit{grid-column:1 / -1}
}

/* find us */
.find{padding-block:var(--s10)}
.find .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--s4);align-items:stretch}
.hours{background:var(--deg);border:1.5px solid var(--massing);border-bottom-width:1px;border-radius:999px 999px var(--r-sm) var(--r-sm);padding:80px var(--s6) var(--s6);text-align:center}
.hours h2{font-size:32px;line-height:36px}
.hours .late{font-family:var(--display);color:var(--glod);font-size:22px;margin-top:var(--s2)}
.hours dl{margin:var(--s6) 0 0;display:grid;grid-template-columns:auto 1fr;gap:12px var(--s4);text-align:left}
.hours dt{font-weight:600}
.hours dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;color:var(--mjol-muted)}
.info{padding:var(--s10);display:grid;grid-template-columns:1fr 1fr;gap:var(--s6) var(--s10);align-content:start}
.info .label{color:var(--glod)}
.info h3{font-size:24px;line-height:30px;margin-top:6px}
.info .full{grid-column:1 / -1;padding-top:var(--s6);border-top:1px solid var(--linje)}
@media (max-width:760px){
  .find .wrap{grid-template-columns:1fr}
  .info{grid-template-columns:1fr;padding:var(--s6)}
  .hours{padding-top:64px}
}

footer.site{border-top:2px solid var(--massing);padding-block:var(--s6) var(--s10)}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:var(--s4) var(--s6);align-items:baseline;justify-content:space-between}
footer.site .brand{font-size:44px;margin:0}
footer.site p{font-size:14px;line-height:20px;color:var(--mjol-muted)}

/* landing booking band */
.book-cta{display:grid;gap:var(--s6);align-content:end}
.cta-lead{font-family:var(--display);font-size:24px;line-height:30px;max-width:22em}
.cta-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);counter-reset:s}
.cta-steps li{counter-increment:s;border-top:2px solid var(--on-tomat);padding-top:10px;display:grid;gap:4px;font-size:15px;line-height:21px;font-weight:500}
.cta-steps li b::before{content:counter(s) " · ";}
.book-cta .submit{justify-self:start;padding-inline:28px}
@media (max-width:620px){ .cta-steps{grid-template-columns:1fr} .book-cta .submit{justify-self:stretch} }

/* ---------- booking page ---------- */
.nav a.is-here{background:var(--mjol);color:var(--kol)}
.bk-head{padding-block:var(--s6) var(--s6)}
.back{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--mjol-muted);text-decoration:none;font-weight:600;font-size:15px}
.back:hover{color:var(--mjol)}
.bk-title{display:grid;grid-template-columns:auto 1fr;gap:var(--s2) var(--s10);align-items:end;margin-top:var(--s2)}
.bk-title h1{font-size:clamp(48px,6.5vw,80px);line-height:.95}
.bk-title p{max-width:36em}
@media (max-width:760px){ .bk-title{grid-template-columns:1fr} }

.bk-grid > *{min-width:0}
.bk-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:var(--s6);align-items:start}
@media (max-width:980px){ .bk-grid{grid-template-columns:minmax(0,1fr)} }
.bk-controls{background:var(--vagg);border:1px solid var(--massing);border-radius:var(--r-sm);padding:var(--s6);display:grid;gap:var(--s6);position:sticky;top:calc(env(safe-area-inset-top,0px) + 80px)}
@media (max-width:980px){ .bk-controls{position:static} }
.ctrl{display:grid;gap:12px;min-width:0}
.ctrl > *,.bk-controls > *{min-width:0}
.ctrl + .ctrl{border-top:1px solid var(--linje);padding-top:var(--s6)}
.ctrl-h{color:var(--glod);margin:0;font-family:var(--sans)}
.hint{font-size:14px;line-height:20px;color:var(--mjol-muted);min-height:20px}
.hint:empty{min-height:0}

.days{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
@media (max-width:980px){ .days{grid-template-columns:repeat(7,minmax(64px,1fr));overflow-x:auto;padding-bottom:4px} }
.day{display:grid;justify-items:center;gap:2px;min-height:56px;padding:6px 2px;background:transparent;border:1px solid var(--linje);border-radius:var(--r-sm);color:var(--mjol);cursor:pointer;font:inherit}
.day .dw{font-size:12px;line-height:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mjol-muted)}
.day .dn{font-family:var(--display);font-size:20px;line-height:24px}
.day:hover:not(:disabled){border-color:var(--massing)}
.day[aria-pressed="true"]{background:var(--glod);border-color:var(--glod);color:var(--kol)}
.day[aria-pressed="true"] .dw{color:var(--kol)}
.day:disabled{cursor:not-allowed;opacity:.45;text-decoration:line-through}

.stepper{display:flex;align-items:center;border:1px solid var(--linje);border-radius:var(--r-sm)}
.step{width:48px;height:48px;background:transparent;border:0;color:var(--mjol);font:500 24px/1 var(--sans);cursor:pointer}
.step:hover:not(:disabled){background:var(--deg)}
.step:disabled{opacity:.35;cursor:not-allowed}
.stepper output{flex:1;text-align:center;font-family:var(--display);font-size:20px;border-inline:1px solid var(--linje);line-height:48px}

.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
@media (max-width:980px){ .slots{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))} }
.slot{display:grid;justify-items:center;gap:1px;min-height:52px;padding:6px 2px;background:transparent;border:1px solid var(--linje);border-radius:var(--r-sm);color:var(--mjol);cursor:pointer;font:inherit}
.slot .st{font-weight:600;font-variant-numeric:tabular-nums;font-size:16px;line-height:20px}
.slot .sa{font-size:12px;line-height:14px;color:var(--mjol-muted)}
.slot.few .sa{color:var(--glod)}
.slot:hover:not(:disabled){border-color:var(--massing)}
.slot[aria-pressed="true"]{background:var(--glod);border-color:var(--glod);color:var(--kol)}
.slot[aria-pressed="true"] .sa{color:var(--kol)}
.slot:disabled{cursor:not-allowed;color:var(--mjol-muted);opacity:.5}
.slot:disabled .st{text-decoration:line-through}
.slots .none{grid-column:1 / -1;color:var(--mjol-muted);font-size:15px}

.bk-stage{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s4)}
.bk-stage > *{min-width:0}
.plan-card{background:var(--vagg);border:1px solid var(--massing);border-radius:var(--r-sm);outline:1px solid var(--linje);outline-offset:-8px;padding:var(--s6)}
.plan-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s2) var(--s6);margin-bottom:var(--s4)}
.plan-when{font-family:var(--display);font-size:22px;line-height:28px}
.legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;line-height:18px;color:var(--mjol-muted)}
.legend li{display:flex;align-items:center;gap:6px}
.sw{width:14px;height:14px;border-radius:2px;display:inline-block;border:1.5px solid var(--massing)}
.sw-free{background:var(--vagg)}
.sw-sel{background:var(--glod);border-color:var(--glod)}
.sw-booked{background:repeating-linear-gradient(135deg,var(--deg) 0 3px,var(--linje) 3px 5px);border-color:var(--linje)}
.sw-small{background:var(--kol);border-style:dashed;border-color:var(--linje)}
.sw-mine{background:var(--tomat);border-color:var(--tomat)}
.plan-wrap{overflow-x:auto}
[hidden]{display:none!important}
#bk-h:focus{outline:none}
.swipe{display:none;font-size:13px;color:var(--mjol-muted);margin-top:8px}
@media (max-width:620px){ .swipe{display:block} }
#plan{display:block;width:100%;min-width:560px;height:auto}
#plan text{font-family:var(--sans);pointer-events:none}

/* floor-plan chrome (room, oven, bar, entrance): static, built once, coloured entirely from tokens */
#plan .room{fill:var(--kol);stroke:var(--massing)}
#plan .window{stroke:var(--mjol-muted)}
#plan .zone-label{fill:var(--mjol-muted)}
#plan .oven-body{fill:var(--deg);stroke:var(--massing)}
#plan .oven-glow{stroke:var(--glod)}
#plan .oven-label{fill:var(--mjol);font-family:var(--display)}
#plan .bar-body{fill:var(--deg);stroke:var(--massing)}
#plan .stool{fill:var(--vagg);stroke:var(--linje)}
#plan .entrance-line{stroke:var(--kol)}
#plan .entrance-arc{stroke:var(--linje)}
#plan .hatch-bg{fill:var(--deg)}
#plan .hatch-line{stroke:var(--linje)}
@media (prefers-reduced-motion:no-preference){
  #plan .oven-glow{animation:ovenGlow 3400ms var(--ease-in-out) infinite}
}
@keyframes ovenGlow{ 0%,100%{opacity:.82} 50%{opacity:1} }

/* tables: one persistent <g> each (see ui.js), state carried as data-state so colour is a CSS
   transition, not a hard cut, every time a day/size/time change reshuffles who fits where. */
#plan .tbl{cursor:default;transform-box:fill-box;transform-origin:50% 50%}
#plan .tbl.can{cursor:pointer}
#plan .tbl:focus{outline:none}
#plan .tbl:focus-visible .top{stroke:var(--mjol);stroke-width:3}
#plan .chair{fill:var(--vagg);stroke:var(--massing);stroke-width:1.2;transition:stroke 220ms var(--ease-out)}
#plan .tbl[data-state="small"] .chair{stroke:var(--linje)}
#plan .top{
  fill:var(--vagg);stroke:var(--massing);stroke-width:2;stroke-dasharray:none;
  transform-box:fill-box;transform-origin:50% 50%;
  transition:fill 220ms var(--ease-out),stroke 220ms var(--ease-out),stroke-width 160ms var(--ease-out),transform 200ms var(--ease-out);
}
#plan .tnum,#plan .tmeta{fill:var(--mjol);transition:fill 220ms var(--ease-out)}
#plan .tnum{font-family:var(--display)}
#plan .tbl[data-state="sel"] .top{fill:var(--glod);stroke:var(--glod);transform:scale(1.035)}
#plan .tbl[data-state="sel"] .tnum,#plan .tbl[data-state="sel"] .tmeta{fill:var(--kol)}
#plan .tbl[data-state="booked"] .top{fill:url(#hatch);stroke:var(--linje)}
#plan .tbl[data-state="booked"] .tnum,#plan .tbl[data-state="booked"] .tmeta{fill:var(--mjol-muted)}
#plan .tbl[data-state="small"] .top{fill:var(--kol);stroke:var(--linje);stroke-dasharray:5 4}
#plan .tbl[data-state="small"] .tnum,#plan .tbl[data-state="small"] .tmeta{fill:var(--mjol-muted)}
#plan .tbl[data-state="mine"] .top{fill:var(--tomat);stroke:var(--tomat)}
#plan .tbl[data-state="mine"] .tnum,#plan .tbl[data-state="mine"] .tmeta{fill:var(--on-tomat)}
@media (hover:hover) and (pointer:fine){
  #plan .tbl.can:not([data-state="sel"]):hover .top{stroke:var(--glod);transform:scale(1.02)}
}
#plan .tbl.can:not([data-state="sel"]):active .top{transform:scale(.97)}
#plan .tbl.can[data-state="sel"]:active .top{transform:scale(1.005)}
@media (prefers-reduced-motion:reduce){
  #plan .top,#plan .chair{transition:fill 160ms linear,stroke 160ms linear}
  #plan .tbl .top{transform:none!important}
}

.confirm-card{background:var(--deg);border:1px solid var(--massing);border-radius:var(--r-sm);padding:var(--s6)}
.confirm-card .big{font-family:var(--display);font-size:24px;line-height:30px;margin-top:6px}
.confirm-card .small{font-size:14px;line-height:20px;margin-top:var(--s2)}
.sum{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s6);align-items:baseline;padding-bottom:var(--s4);border-bottom:1px solid var(--linje);margin-bottom:var(--s4)}
.sum .big{margin:0}
.sum .chg{margin-left:auto;font-size:14px}
.cf-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.cf{display:grid;gap:6px}
.cf.wide{grid-column:1 / -1}
.cf label{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mjol-muted)}
.cf label .muted{text-transform:none;letter-spacing:0;font-weight:400}
.cf input{font:500 17px/1.2 var(--sans);color:var(--mjol);background:var(--kol);border:1px solid var(--mjol-muted);border-radius:var(--r-sm);padding:12px;min-height:48px;width:100%;min-width:0}
.cf input::placeholder{color:var(--mjol-muted);opacity:.8}
.cf input[aria-invalid="true"]{border-color:var(--glod)}
.err{font-size:14px;line-height:18px;color:var(--glod);min-height:0}
.err:empty{display:none}
#e-form{margin-top:var(--s2)}
#e-form:empty{display:block;margin:0} /* stays in the accessibility tree so role=alert is announced when text arrives */
.mine li .err{flex-basis:100%}
.confirm-btn{margin-top:var(--s6);min-height:52px;padding-inline:32px;font-size:16px}
.btn.ghost{margin-top:var(--s4);background:transparent;color:var(--mjol);border:1px solid var(--massing)}
.btn.ghost:hover{border-color:var(--glod);color:var(--glod)}
@media (max-width:560px){ .cf-fields{grid-template-columns:1fr} .confirm-btn{width:100%} .plan-card{padding:var(--s4)} }

.bk-timeline{padding-block:var(--s10) var(--s6)}
.tl-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s2) var(--s6);margin-bottom:var(--s4)}
.tl-head h2{font-size:40px;line-height:44px}
.tl-scroll{overflow-x:auto;border:1px solid var(--massing);border-radius:var(--r-sm);background:var(--vagg)}
.tl{display:grid;min-width:760px;font-size:13px;line-height:16px}
.tl .hd{position:sticky;top:0;background:var(--vagg);color:var(--mjol-muted);font-variant-numeric:tabular-nums;padding:10px 0 8px 4px;border-bottom:1px solid var(--massing);font-weight:600}
.tl .hd.now{color:var(--glod)}
.tl .rl{position:sticky;left:0;z-index:2;background:var(--vagg);padding:8px 12px;border-right:1px solid var(--linje);border-bottom:1px solid var(--linje);display:grid;gap:2px}
.tl .rl b{font-family:var(--display);font-weight:400;font-size:16px;line-height:20px}
.tl .rl span{color:var(--mjol-muted);font-size:12px}
.tl .rl.too{opacity:.5}
.tl .c{border:0;border-bottom:1px solid var(--linje);border-left:1px solid rgba(90,67,49,.45);min-height:48px;margin:0;padding:0;background:transparent;transition:background-color 150ms var(--ease-out)}
.tl .c.col{background:rgba(240,149,74,.08)}
button.c{cursor:pointer;color:transparent;font:inherit}
button.c:hover{background:rgba(240,149,74,.22)}
button.c:hover::after{content:"+";color:var(--glod);font-weight:600;font-size:16px}
.tl .c.dead{background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(90,67,49,.25) 6px 7px)}
.tl .bar{border-bottom:1px solid var(--linje);padding:4px 3px;display:flex}
.tl .bar span{flex:1;display:flex;align-items:center;padding:0 8px;border-radius:2px;font-size:12px;font-weight:600;overflow:hidden;white-space:nowrap}
.tl .bar.booked span{background:repeating-linear-gradient(135deg,var(--deg) 0 5px,#4a3626 5px 8px);color:var(--mjol-muted);border:1px solid var(--linje)}
.tl .bar.mine span{background:var(--tomat);color:var(--on-tomat)}
.tl .bar.pick span{background:var(--glod);color:var(--kol)}

.bk-mine{padding-block:var(--s6) var(--s10)}
.bk-mine h2{font-size:32px;line-height:36px;margin-bottom:var(--s4)}
.mine{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.mine li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s6);background:var(--vagg);border:1px solid var(--linje);border-left:0;border-radius:var(--r-sm);padding:12px var(--s4)}
.mine li .w{font-family:var(--display);font-size:19px;margin-right:auto}
.mine li .x{background:transparent;border:1px solid var(--linje);color:var(--mjol);border-radius:var(--r-sm);min-height:40px;padding:0 12px;font:600 14px/1 var(--sans);cursor:pointer}
.mine li .x:hover{border-color:var(--glod);color:var(--glod)}
.mine li .x.yes{background:var(--glod);color:var(--kol);border-color:var(--glod)}

@media (prefers-reduced-motion:no-preference){
  .btn,.nav nav a,.jump a,.link-glod,.copy,.day,.slot,.step,.mine li .x,button.c{transition:background-color .15s var(--ease-out),color .15s var(--ease-out),border-color .15s var(--ease-out),transform .15s var(--ease-out)}
  .btn:active,.day:active:not(:disabled),.slot:active:not(:disabled),.step:active:not(:disabled),.copy:active,.mine li .x:active{transform:scale(.97)}
}
