:root{color-scheme:light;--ink:#27352f;--muted:#69736c;--green:#325d47;--line:#e6e9e3;--paper:#fff;--surface:#f4f5f1}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--surface);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
a{color:inherit}
svg{width:18px;height:18px;flex-shrink:0}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:4px}
.wrap{max-width:1728px;margin:0 auto;padding:clamp(24px,4vw,52px) 24px 20px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px;padding-bottom:25px;border-bottom:1px solid #dce2d8}
.eyebrow{font-size:.68rem;font-weight:650;letter-spacing:.15em;text-transform:uppercase;color:var(--green);margin-bottom:5px}
h1{font-size:clamp(1.85rem,3.5vw,2.7rem);font-weight:650;letter-spacing:-.055em;line-height:1.2}
.date{color:var(--muted);font-size:.86rem;margin-top:9px}
.date span{padding:0 5px;color:#9ca69d}
.refresh{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 15px;border:1px solid #d6dfd3;border-radius:9px;text-decoration:none;font-size:.8rem;font-weight:550;background:rgba(255,255,255,.55);white-space:nowrap;transition:background .15s,border-color .15s}
.refresh:hover{background:#fff;border-color:#adc2b0}
#menu-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:24px;align-items:start;max-width: 1200px;  margin: 0 auto;}
section[data-restaurant]{min-width:0}
.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 3px 12px rgba(30,50,34,.025)}
.card-head{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-height:110px;padding:23px 24px;border-bottom:1px solid #eef0eb;background:#fafbf8}
/* Bilderna stannar bakom rubriken. Själva menyn har en lugn vit bakgrund. */
.card-photo{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:var(--image-position,center);opacity:.65}
.card-head::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 30%,rgba(255,255,255,.81) 57%,rgba(255,255,255,.36) 100%)}
.card--ifk_norrkoping{--restaurant-image:url('images/ifk_norrkoping.webp');--image-position:50% 32%}
.card--bistron_hylinge{--restaurant-image:url('images/bistron_hylinge.webp');--image-position:50% 68%}
.card--enoteket{--restaurant-image:url('images/enoteket.webp');--image-position:50% 38%}
.card--aby_krog{--restaurant-image:url('images/aby_krog.webp')}
.card--flygrestaurangen{--restaurant-image:url('images/flygrestaurangen.webp');--image-position:50% 43%}
.card h2{font-size:1.12rem;font-weight:650;letter-spacing:-.025em;line-height:1.3}
.card h2 a{text-decoration:none}
.card h2 a:hover{text-decoration:underline;text-decoration-color:#9eb4a0;text-underline-offset:4px}
.hours{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;color:#59665d}
.hours svg{width:14px;height:14px}
.card-body{padding:22px 24px 16px;overflow-wrap:anywhere}
.dish{font-size:.95rem;line-height:1.7}
.dish p+p{margin-top:9px;padding-top:9px;border-top:1px solid #eff1ed}
.weekly{font-size:.83rem;line-height:1.65;color:#58655b;margin-top:18px;padding:14px 16px;background:#f6f8f3;border-radius:8px}
.weekly h3{color:var(--green);font-size:.66rem;font-weight:650;text-transform:uppercase;letter-spacing:.1em;margin-bottom:7px}
.weekly ul{list-style:none}
.weekly li+li{margin-top:9px}
.closed{color:var(--muted);font-size:.92rem}
.meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;padding-top:12px;border-top:1px solid var(--line);font-size:.73rem;color:var(--muted)}
.location{display:flex;flex-direction:column;gap:1px;min-width:0}
.price{font-size:.87rem;font-weight:600;color:var(--ink)}
.toggle{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:44px;flex-shrink:0;border:0;background:none;color:var(--green);font-size:.76rem;font-weight:550;cursor:pointer;border-radius:6px;padding:4px 0 4px 7px}
.toggle:hover{color:#163b25;text-decoration:underline;text-underline-offset:3px}
.toggle svg{width:14px;height:14px;transition:transform .15s}
.toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.week{display:none;margin-top:20px;font-size:.82rem;background:#fafbf8;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.week.show{display:block}
.week-row{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px;padding:11px 12px;border-bottom:1px solid var(--line);line-height:1.65}
.week-row:last-child{border-bottom:0}
.week-row.now{background:#eef4e9;box-shadow:inset 3px 0 #799773}
.week-row .day{font-weight:600;color:#405746}
.week-row .food{color:#58655b}
footer{text-align:center;padding:30px 0 8px;font-size:.72rem;color:#768173}
footer a{display:inline-block;margin-left:14px;text-underline-offset:3px}
.empty-restaurants{color:var(--muted);padding:20px 0}
.loader-container{display:flex;justify-content:center;padding:21px}
.spinner{width:24px;height:24px;border:2px solid #e4eadd;border-top-color:#5e7d57;border-radius:50%;animation:spin .9s linear infinite}
[aria-busy="true"] [role="status"]{text-align:center;font-size:.8rem}
.retry{margin-top:10px}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:600px){.wrap{padding:25px 14px 16px}.page-head{gap:12px;margin-bottom:20px;padding-bottom:20px}.eyebrow{font-size:.59rem;letter-spacing:.1em}.refresh{padding:9px 10px;font-size:.74rem;gap:5px}.refresh svg{width:15px;height:15px}.date{font-size:.77rem}#menu-container{gap:16px}.card-head{min-height:100px;padding:21px}.card-body{padding:19px 21px 14px}.week-row{grid-template-columns:60px minmax(0,1fr);gap:8px;padding:10px}.meta{font-size:.69rem}.toggle{font-size:.72rem}.card h2{font-size:1.1rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.spinner{border-color:#b3c3ac}}
