/* Oslo: a restaurant menu, drawn and typeset for this particular kitchen. */
:root{--bg:#f5f2e9;--ink:#282a23;--line:#d4d0c3;--muted:#65665b}
.primary,.cart-btn,dialog,.location-option,.option-row span,.stepper{border-radius:var(--radius)}.primary:hover{transform:none}.close{width:44px;height:44px;border-radius:var(--radius)}.oslo-icon{vertical-align:middle}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.header{height:94px}.header nav a.active:after{height:1px}.cart-count{border-radius:var(--radius)}.topbar{font-size:10px;letter-spacing:1px}.hero{padding:48px 5% 46px;gap:4%;grid-template-columns:1fr 1fr;min-height:590px}.hero-copy{padding:28px 0 0}.hero .eyebrow{font-size:10px;letter-spacing:1.3px}.hero .eyebrow .edition-line{width:28px;height:1px;border-radius:var(--radius);background:var(--ink)}.hero h1{font-size:clamp(70px,7.6vw,118px);letter-spacing:-1.8px;line-height:.91;margin:30px 0 0}.hero h1>span{color:var(--ink)}.hero-copy>p{font-size:14px;max-width:420px;line-height:1.8;margin:28px 0}.hero-buttons{gap:22px}.delivery-note span{display:block}.hero-proof{margin-top:35px;font-size:10px;letter-spacing:.3px}.small-rule{display:block;width:30px;height:1px;background:var(--orange)}.real-hero{min-height:490px;background:#e8e5da;border-radius:var(--radius);overflow:hidden;border-bottom:1px solid var(--ink)}.hero-corner{position:absolute;left:22px;top:12px;font-family:var(--display);font-size:106px;font-weight:900;letter-spacing:-4px;line-height:1;color:#d0ccbc}.hero-corner>span{display:block;font-family:var(--font);font-size:10px;letter-spacing:3px;margin-top:7px;color:var(--muted)}.hero-photo-index{position:absolute;right:18px;top:23px;writing-mode:vertical-rl;font-size:9px;letter-spacing:1.7px}.hero-food{padding:55px 8px 65px;transform:rotate(-13deg) scale(1.04);z-index:1}.maker-note{position:absolute;right:18px;bottom:108px;z-index:2;display:flex;align-items:center;gap:8px;border:1px solid #a5a18f;padding:10px;background:#f5f2e9e8;transform:rotate(5deg)}.maker-note>.oslo-icon{width:30px;height:40px}.maker-note>span{font-size:8px;line-height:1.5;letter-spacing:1px;font-weight:700}.hero-label{z-index:3;left:0;right:0;bottom:0;width:100%;border-radius:var(--radius);background:var(--bg);border-top:1px solid var(--ink);padding:18px 0;gap:14px}.hero-label>span{font-family:var(--display);font-size:27px;font-weight:700}.hero-label small{font-family:var(--font);display:block;font-size:10px;font-weight:400;color:var(--muted)}.hero-label>b{margin-left:auto;font-size:14px;white-space:nowrap}.hero-label>.oslo-icon{width:28px;height:28px;margin:0 4px 0 10px}.service-strip{margin:0 5%;display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--ink)}.service-strip>span{display:flex;align-items:center;gap:20px;padding:21px 24px;font-family:var(--display);font-size:24px;font-weight:600;border-right:1px solid var(--line)}.service-strip>span:first-child{padding-left:0}.service-strip>span:last-child{border:0}.service-strip b{font-family:var(--font);font-size:10px;font-weight:400;color:var(--muted)}.service-strip .oslo-icon{margin-left:auto;width:30px;height:30px}
.menu-section{display:grid;grid-template-columns:185px minmax(0,1fr);column-gap:45px;padding:80px 5%}.section-title{grid-column:1/-1;margin-bottom:35px;align-items:end}.section-title h2,.locations h2{font-size:clamp(42px,4.4vw,65px);letter-spacing:-.6px;line-height:1.05;margin-top:14px}.section-title>p{max-width:290px;font-size:12px;line-height:1.8}.menu-toolbar{grid-column:1;align-self:start;position:sticky;top:120px;display:block;padding:0;border:0;margin:0}.menu-index-label{font-size:9px;letter-spacing:2px;margin:6px 0 19px;color:var(--muted)}.menu-toolbar .categories{display:flex;flex-direction:column;gap:0;width:100%;overflow:visible}.categories button{width:100%;display:flex;align-items:center;gap:11px;text-align:left;border:0;border-radius:var(--radius);border-bottom:1px solid var(--line);background:none;min-height:51px;padding:12px 6px;color:var(--ink)}.categories button.selected{background:none;color:var(--orange);border-bottom-color:var(--orange)}.categories button span{font-size:12px;font-weight:600}.categories button small{margin-left:auto;font-size:9px;color:var(--muted)}.search{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:var(--radius);padding:12px 4px;margin-top:22px;background:none;gap:8px}.search input{width:100%;min-width:0;background:none;font-size:11px}.search>.oslo-icon{width:18px}.menu-margin-note{display:flex;gap:14px;margin-top:45px;color:var(--muted)}.menu-margin-note p{font-size:10px;line-height:1.8}.menu-margin-note .oslo-icon{width:30px;height:38px}.product-grid{grid-column:2;display:block;min-width:0}.menu-chapter{margin-bottom:44px}.chapter-heading{display:flex;gap:14px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--ink);margin-bottom:22px}.chapter-heading>span{font-size:11px;color:var(--orange)}.chapter-heading h3{font-size:32px;font-weight:600}.chapter-heading i{flex:1}.chapter-heading>.oslo-icon{width:30px;height:30px}.chapter-products{display:grid;grid-template-columns:1fr 1fr;gap:25px 30px}.product-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;background:none;display:grid;grid-template-columns:120px minmax(0,1fr);overflow:visible;padding-bottom:20px;gap:17px}.product-card:hover{box-shadow:none;transform:none;border-color:var(--ink)}.product-image{height:155px;background:#eae7dd;border-radius:var(--radius);overflow:hidden}.product-image img{width:100%;height:100%;object-fit:contain}.product-info{padding:0;min-width:0}.dish-index{font-size:9px;color:var(--muted);letter-spacing:1px;display:block;margin-bottom:8px}.product-info h3{font-size:26px;line-height:1.05;font-weight:600}.product-info>p{font-size:11px;line-height:1.7;min-height:0;margin-top:10px}.product-bottom{margin-top:17px;gap:10px}.price{font-size:17px;white-space:nowrap}.price small{font-size:10px}.add-btn{width:44px;height:44px;min-width:44px;border:1px solid var(--ink);border-radius:var(--radius);background:none;color:var(--ink);display:grid;place-items:center}.add-btn:hover{background:var(--ink);color:var(--bg)}.product-card .packaging-note{font-size:9px;margin-top:8px}.badge{border-radius:var(--radius);font-size:8px;letter-spacing:.8px;background:var(--ink);padding:7px 10px}.chapter-featured .chapter-products{grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.chapter-featured .product-card{display:block}.chapter-featured .product-image{height:210px;margin-bottom:20px}.chapter-featured .product-info>p{min-height:57px}.food-placeholder{background:none;min-height:0;height:100%;padding:14px;gap:9px}.food-placeholder .food-drawing{color:#71725e;width:80px;height:95px}.food-placeholder>small{font-size:6px;letter-spacing:1.3px}.drawing-rule{display:block;width:25px;height:1px;background:#c3bfad}.chapter-drinks .product-card{grid-template-columns:60px minmax(0,1fr)}.chapter-drinks .product-image{height:128px;background:none}.chapter-drinks .food-placeholder{padding:0}.chapter-drinks .food-placeholder small,.chapter-drinks .drawing-rule{display:none}.chapter-drinks .food-drawing{width:45px;height:80px}.allergen-note{grid-column:2;display:flex;align-items:flex-start;gap:10px;line-height:1.7;margin:0;font-size:10px}.allergen-note .oslo-icon{width:17px;height:17px}
.about{margin:0 5% 80px;padding:42px;display:grid;grid-template-columns:.6fr 1.3fr 1fr;gap:45px;border-radius:var(--radius);background:#303a30;color:var(--bg)}.about-mark{display:flex;flex-direction:column;position:relative;align-items:flex-start;justify-content:start;width:auto;height:auto;border:0;background:none;transform:none}.about-mark>span{position:static;font-family:var(--display);font-size:70px;line-height:1;letter-spacing:-2px;color:var(--bg);transform:none}.about-mark>small{font-size:9px;letter-spacing:2px;line-height:1.7;margin-top:6px}.about-mark .about-emblem{width:70px;height:95px;margin-top:25px;stroke-width:1;color:#c1c8ac}.about .eyebrow{color:#b9c2ad;font-size:9px}.about h2{font-size:50px;line-height:1.02;margin:17px 0}.about .about-story>p{font-size:12px;color:#d5d9ce;line-height:1.9}.about-values{border:0;margin:0}.about-values>div{border-bottom:1px solid #596251;padding:0 0 17px;margin-bottom:18px;display:grid;grid-template-columns:25px 1fr;gap:7px}.about-values>div:last-child{margin-bottom:0;border:0}.about-values span{font-family:var(--font);color:#bbc5a9;font-size:9px}.about-values b{font-size:12px}.about-values p{grid-column:2;font-size:10px;color:#bbc5ad;line-height:1.7;margin:0}
.gallery-section{padding-bottom:80px}.gallery-grid{grid-template-columns:1.3fr 1fr 1fr;gap:20px}.gallery-grid>button{height:210px;border-radius:var(--radius);background:#e9e5da;border-bottom:1px solid var(--ink)}.gallery-grid>button:first-child{grid-row:span 2;height:440px}.gallery-grid>button:last-child:nth-child(4){grid-column:2/4}.gallery-grid span{border-radius:var(--radius);width:auto;height:auto;background:none;color:var(--ink)}.gallery-grid .gallery-number{left:16px;top:16px;bottom:auto;right:auto;font-size:9px;letter-spacing:1.4px}.gallery-grid .gallery-open{right:14px;bottom:14px;background:var(--bg);width:36px;height:36px}.gallery-grid img{padding:20px}.locations{padding-bottom:70px}.location-cards{display:block}.location-card{max-width:none;border-radius:var(--radius);padding:35px 0;border:0;border-block:1px solid var(--ink);background:none;display:grid;grid-template-columns:1fr 1fr;gap:12%}.location-address h3{font-size:39px;margin:20px 0 10px}.contact-phone{font-size:35px;display:flex;gap:15px;align-items:center;margin:18px 0}.location-links button{min-height:44px;margin:0;font-size:12px;display:flex;align-items:center;gap:8px}.location-links a{display:flex;align-items:center;gap:8px;min-height:44px}.opening-hours{grid-template-columns:1fr;font-size:12px;gap:0;margin-top:21px}.opening-hours>div{padding:9px 0;border-bottom:1px solid var(--line)}.bottom-cta{background:none;color:var(--ink);margin:0 5%;padding:30px 0;border-top:1px solid var(--ink);font-size:46px}.bottom-cta small{display:block;font-family:var(--font);font-size:9px;letter-spacing:2px;margin-bottom:15px}.bottom-cta a{display:flex;align-items:center;gap:20px;border:1px solid var(--ink);border-radius:var(--radius);white-space:nowrap}.footer-links a{display:inline-flex;align-items:center;gap:4px;min-height:36px}.footer-links .oslo-icon{width:14px;height:14px}footer{border-top:1px solid var(--line);margin-top:20px}
.badge{color:var(--bg)}.about-values>div{padding-left:0}.about-values span{position:static}.chapter-products:has(>.product-card:only-child){grid-template-columns:1fr}.chapter-products>.product-card:only-child{grid-template-columns:190px minmax(0,1fr)}.chapter-products>.product-card:only-child .product-info>p{max-width:440px}.chapter-products>.product-card:only-child .product-bottom{max-width:300px}
@media(max-width:540px){.chapter-products>.product-card:only-child{grid-template-columns:115px minmax(0,1fr)}}
/* The same ink and line system carries through the working interface. */
.login-screen{background:var(--bg)}.login-card{box-shadow:none;border-radius:var(--radius);border-top:3px solid var(--ink)}.sidebar{background:#28322a}.sidebar nav button{min-height:44px;border-radius:var(--radius)}.sidebar nav button span:not(.nav-icon){font-size:12px}.sidebar nav .nav-icon{width:23px}.sidebar nav button.active{background:#46533f;color:#fff}.admin-header .sound-button{display:flex;align-items:center;gap:7px;min-height:44px}.admin-panel,.stat-card,.content-section,.media-card,.kitchen-column,.kitchen-card,.group-builder,.zone-builder,.sticky-save{border-radius:var(--radius);box-shadow:none}.admin-title h1{font-size:43px}.admin-table th,.admin-table td{font-size:12px}.admin-product-main h3{font-size:26px}.admin-content .primary{min-height:44px}.icon-btn{min-height:36px;min-width:36px;display:inline-grid;place-items:center}.admin-product-image .oslo-icon{width:38px;height:46px}.admin-content .location-card{display:block;border:1px solid var(--line);padding:25px}.admin-content .location-cards{display:grid}.admin-content .empty-state .oslo-icon{width:45px;height:45px}.stepper button{display:grid;place-items:center;min-height:36px}.cart-item .stepper{height:36px}.cart-item .stepper button{width:32px}.fulfillment button{min-height:44px}.tracking-icon .oslo-icon{width:38px;height:38px}
@media(min-width:1500px){.hero{min-height:650px}.real-hero{min-height:540px}.chapter-featured .product-image{height:270px}}
@media(max-width:1150px){.menu-section{grid-template-columns:155px minmax(0,1fr);column-gap:25px}.chapter-products{gap:22px}.product-card{grid-template-columns:85px minmax(0,1fr);gap:12px}.chapter-featured .product-image{height:170px}.product-info h3{font-size:24px}.about{gap:25px;grid-template-columns:.5fr 1.2fr 1fr;padding:30px}.hero-buttons{gap:12px}.hero-copy>p{font-size:13px}.hero-label>span{font-size:23px}.hero-label>b{font-size:12px}}
@media(max-width:800px){.header{height:82px}.hero{padding-top:25px;gap:22px;min-height:0}.hero h1{font-size:8.4vw}.real-hero{min-height:410px}.hero-copy{padding-top:15px}.hero-corner{font-size:80px}.hero-buttons{align-items:flex-start;flex-direction:column}.hero-proof{margin-top:22px}.hero-label{padding:14px 4px;gap:6px}.hero-label>span{font-size:21px}.hero-label small{font-size:8px}.hero-label>.oslo-icon{width:20px;margin-left:0}.service-strip>span{font-size:19px;padding:15px;gap:12px}.service-strip .oslo-icon{width:25px;height:25px}.menu-section{display:block;padding-top:50px;padding-bottom:50px}.menu-toolbar{position:static;margin-bottom:30px}.menu-index-label,.menu-margin-note{display:none}.menu-toolbar .categories{flex-direction:row;overflow-x:auto;gap:14px;padding-bottom:0}.categories button{width:auto;flex:none;min-height:48px;padding:8px 4px}.categories button small{display:none}.search{max-width:280px;margin-top:12px}.chapter-featured .product-image{height:190px}.product-card{grid-template-columns:115px minmax(0,1fr)}.section-title{margin-bottom:25px}.section-title h2,.locations h2{font-size:48px}.about{grid-template-columns:1fr 1fr;margin-bottom:50px;padding:30px}.about-mark{display:none}.about h2{font-size:46px}.gallery-section{padding-bottom:50px}.gallery-grid{gap:12px}.gallery-grid>button{height:170px}.gallery-grid>button:first-child{height:352px}.location-card{gap:40px}.location-address h3{font-size:32px}.bottom-cta{font-size:35px}.bottom-cta a{font-size:12px;padding:14px}.sidebar nav .nav-icon{width:22px}.admin-title h1{font-size:37px}}
@media(max-width:540px){.topbar{font-size:8px;letter-spacing:.6px;padding:9px 4%}.header{padding:0 4%;height:77px}.brand img{width:76px;height:52px}.header-actions{gap:9px}.cart-btn{padding:11px;min-height:44px}.cart-btn>.oslo-icon{display:block}.location-btn{min-height:44px}.location-btn small{font-size:8px}.location-btn b{font-size:9px}.location-btn>.oslo-icon{width:14px}.hero{grid-template-columns:1fr;padding:26px 5% 28px;gap:28px}.hero-copy{padding:0}.hero h1{font-size:18vw;letter-spacing:-1.5px;line-height:.88;margin-top:24px}.hero-copy>p{font-size:13px;margin:23px 0;max-width:340px}.hero-buttons{flex-direction:row;align-items:center;gap:17px}.hero-buttons>.primary{font-size:12px;padding:16px 20px}.hero .delivery-note{font-size:9px}.hero-proof{margin-top:24px;font-size:9px}.real-hero{min-height:350px}.hero-food{padding-top:15px;padding-bottom:48px;transform:rotate(-12deg) scale(1.06)}.hero-corner{font-size:76px;top:12px;left:15px}.hero-corner>span{font-size:8px;letter-spacing:2px}.hero-photo-index{font-size:8px;right:12px;top:18px}.maker-note{bottom:91px;right:13px;padding:7px}.maker-note>span{font-size:7px}.maker-note>.oslo-icon{width:25px;height:32px}.hero-label{padding:15px 0}.hero-label>span{font-size:25px}.hero-label small{font-size:9px}.hero-label>b{font-size:13px}.hero-label>.oslo-icon{width:24px;margin-right:3px;margin-left:8px}.service-strip{grid-template-columns:1fr;gap:0}.service-strip>span{border-right:0;border-bottom:1px solid var(--line);padding:11px 0;font-size:21px;gap:18px}.service-strip>span:last-child{border:0}.service-strip .oslo-icon{width:25px;height:25px}.menu-section{padding-top:43px}.section-title h2,.locations h2{font-size:44px;margin-top:10px}.section-title .eyebrow{font-size:9px}.categories button{gap:7px}.categories button span{font-size:11px}.categories button .oslo-icon{width:22px;height:24px}.search{max-width:none;margin-top:8px}.chapter-heading{padding-bottom:12px;margin-bottom:18px}.chapter-heading h3{font-size:30px}.chapter-products{grid-template-columns:1fr;gap:20px}.chapter-featured .chapter-products{grid-template-columns:1fr 1fr;gap:23px 17px}.chapter-featured .product-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:17px}.chapter-featured .product-card:first-child .product-image{height:215px;margin-bottom:0}.chapter-featured .product-image{height:160px;margin-bottom:16px}.chapter-featured .product-info>p{min-height:56px}.product-card{grid-template-columns:115px minmax(0,1fr);gap:17px}.product-info h3{font-size:26px}.product-info>p{font-size:11px;line-height:1.7;min-height:0}.product-bottom{margin-top:12px}.product-image{height:155px}.product-card .packaging-note{font-size:8px}.chapter-drinks .chapter-products{grid-template-columns:1fr 1fr;gap:17px}.chapter-drinks .product-card{grid-template-columns:1fr;position:relative}.chapter-drinks .product-image{position:absolute;top:0;right:0;width:25px;height:48px}.chapter-drinks .food-drawing{width:25px;height:45px}.chapter-drinks .product-info h3{padding-right:25px;font-size:23px}.chapter-drinks .product-info>p{min-height:38px}.chapter-drinks .dish-index{margin-bottom:13px}.about{grid-template-columns:1fr;gap:28px;padding:27px;margin-bottom:43px}.about h2{font-size:49px}.about-values{padding-top:22px;border-top:1px solid #596251}.about-values>div{padding-bottom:14px;margin-bottom:15px}.about-values b{font-size:13px}.about-values p{font-size:11px}.gallery-grid{grid-template-columns:1fr 1fr;gap:12px}.gallery-grid>button:first-child{grid-column:1/-1;grid-row:auto;height:260px}.gallery-grid>button{height:160px}.gallery-grid>button:last-child:nth-child(4){grid-column:1/-1;height:220px}.gallery-grid .gallery-number{font-size:8px;left:10px;top:10px}.location-card{grid-template-columns:1fr;padding:26px 0;gap:34px}.location-address h3{font-size:35px;margin-top:18px}.location-links{gap:18px}.location-links button,.location-links a{font-size:11px}.opening-hours{font-size:12px;margin-top:14px}.locations{padding-bottom:35px}.bottom-cta{flex-direction:column;align-items:flex-start;gap:23px;font-size:37px}.bottom-cta a{font-size:13px}footer{padding-top:26px;gap:20px}.footer-links{gap:8px 18px}.footer-links a{font-size:11px}.admin-header .sound-button{font-size:9px;gap:4px}.admin-header .sound-button .oslo-icon{width:18px}.admin-header>div{gap:5px}.admin-content .location-card{padding:22px}.admin-product-image .oslo-icon{width:30px}.admin-title h1{font-size:35px}}

.sidebar nav button.selected{background:#46533f;color:#fff}

.persistence-error{position:sticky;top:0;z-index:100;background:#8b2e1f;color:white;padding:14px 5%;font-size:13px;line-height:1.6}
