/*
Theme Name: Restaurant Studio
Description: Zwei anpassbare Restaurantlayouts für Restaurant Core, ohne externe Schrift- oder Buchungsdienste.
Version: 0.1.0
Requires at least: 6.5
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: restaurant-studio
*/
:root { --paper:#f7f3e9; --surface:#eee9dc; --ink:#253026; --muted:#566154; --accent:#596648; --on-accent:#fff; --line:#d8d9c9; --heading:Georgia,'Times New Roman',serif; --radius:3px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial,Helvetica,sans-serif; font-size:17px; line-height:1.65; }
body.rst-modern { --paper:#fffdf7; --surface:#f0ede5; --ink:#23211f; --muted:#635e56; --accent:#b84b2b; --line:#d9d5ce; --heading:Arial,Helvetica,sans-serif; --radius:0; }
a { color:inherit; text-underline-offset:4px; }
a:hover { text-decoration-thickness:2px; }
button,input,select,textarea { font:inherit; }
img { max-width:100%; height:auto; vertical-align:middle; }
figure { margin:0; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3,.rst-brand { overflow-wrap:anywhere; }
h1,h2 { font-family:var(--heading); font-weight:400; letter-spacing:-.045em; line-height:1.08; }
h1 { font-size:clamp(2.8rem,6vw,5.4rem); }
h2 { font-size:clamp(2.3rem,4vw,3.9rem); }
h3 { font-size:1.25rem; line-height:1.35; }
.rst-modern h1,.rst-modern h2 { font-weight:700; letter-spacing:-.055em; }
:focus-visible { outline:3px solid currentColor; outline-offset:5px; }
.rst-container { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
.rst-section { padding-block:105px; }
.rst-kicker { font-size:.72rem; line-height:1.5; font-weight:700; letter-spacing:.17em; text-transform:uppercase; margin-bottom:25px; }
.rst-button { display:inline-flex; justify-content:center; align-items:center; gap:24px; text-decoration:none; font-size:.88rem; font-weight:700; line-height:1.4; background:var(--accent); color:var(--on-accent); border:1px solid transparent; padding:17px 24px; border-radius:var(--radius); min-height:48px; }
.rst-button:hover { box-shadow:inset 0 0 0 2px currentColor; }
.rst-text-link { display:inline-flex; align-items:center; gap:20px; font-weight:700; font-size:.9rem; padding-block:10px; }
.rst-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.rst-skip { position:fixed; z-index:100; top:10px; left:10px; transform:translateY(-180%); background:var(--paper); color:var(--ink); padding:12px; }
.rst-skip:focus { transform:none; }
.rst-header { background:var(--paper); border-bottom:1px solid var(--line); position:relative; z-index:20; }
.rst-header-inner { display:flex; justify-content:space-between; align-items:center; gap:26px; min-height:105px; }
.rst-brand { max-width:260px; font-family:var(--heading); font-size:1.65rem; line-height:1.1; }
.rst-brand a { text-decoration:none; }
.rst-brand .custom-logo { max-height:64px; width:auto; }
.rst-modern .rst-brand { font-weight:800; font-size:1.3rem; letter-spacing:-.03em; }
.rst-nav-list { display:flex; list-style:none; padding:0; margin:0; gap:30px; font-size:.85rem; }
.rst-nav-list a { text-decoration:none; padding-block:14px; display:block; }
.rst-nav-list a:hover { text-decoration:underline; }
.rst-header-book { padding:13px 18px; font-size:.8rem; }
.rst-menu-toggle { display:none; background:transparent; color:inherit; border:1px solid var(--line); padding:10px 14px; cursor:pointer; }
.rst-hero-warm { position:relative; min-height:700px; display:grid; place-items:center; text-align:center; color:#fff7e5; overflow:hidden; }
.rst-hero-background { position:absolute; inset:0; background:radial-gradient(ellipse at 25% 25%,#596548 0,transparent 60%),radial-gradient(ellipse at 90% 75%,#5e6346 0,transparent 50%),#27372d; }
.rst-hero-background:before { content:''; position:absolute; width:800px; height:800px; border:1px solid #fff2; border-radius:50%; top:-420px; left:-220px; box-shadow:0 0 0 80px #ffffff04,0 0 0 160px #ffffff03; }
.rst-hero-background img { width:100%; height:100%; object-fit:cover; }
.rst-hero-background:after { content:''; position:absolute; inset:0; background:linear-gradient(#0a180b72,#081509a3); }
.rst-hero-warm .rst-hero-copy { position:relative; z-index:1; max-width:880px; padding-block:90px; }
.rst-hero-warm h1 { margin-bottom:28px; }
.rst-hero-text { max-width:500px; margin-bottom:34px; color:inherit; opacity:.9; }
.rst-hero-warm .rst-hero-text { margin-inline:auto; }
.rst-hero-warm .rst-actions { justify-content:center; }
.rst-hero-warm .rst-button { background:#f4e7cb; color:#243026; }
.rst-hero-warm .rst-button-light { background:transparent; color:#fff7e5; border-color:#fff7e580; }
.rst-hero-signature { margin-top:64px; margin-bottom:0; font-family:Georgia,serif; font-size:1.4rem; font-style:italic; opacity:.8; }
.rst-hero-modern { display:grid; grid-template-columns:1.08fr 1fr; gap:65px; padding-block:80px 95px; align-items:center; }
.rst-hero-modern h1 { font-size:clamp(3.2rem,6vw,6rem); max-width:660px; margin-bottom:28px; }
.rst-hero-modern .rst-hero-text { color:var(--muted); }
.rst-hero-visual { position:relative; min-height:565px; background:#e3d6b7; }
.rst-hero-visual>img { width:100%; height:565px; object-fit:cover; }
.rst-visual-caption { position:absolute; bottom:20px; left:20px; right:20px; width:fit-content; padding:8px 12px; background:#fffdf7; color:#23211f; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; }
.rst-art { min-height:565px; position:relative; overflow:hidden; background:linear-gradient(145deg,#ecdcbc,#dbc698); }
.rst-art-plate { width:360px; height:360px; border-radius:50%; background:#faf3e6; box-shadow:inset 0 0 0 25px #e9e0ce,inset 0 0 0 27px #d7cebb,20px 20px 30px #7c65452b; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); }
.rst-art-circle { width:140px; height:140px; border-radius:50%; background:#a9583c; position:absolute; right:-30px; top:60px; }
.rst-art-line { width:110px; height:350px; position:absolute; top:40px; left:30px; border:1px solid #8c735775; border-radius:100% 0; transform:rotate(-20deg); }
.rst-art span { position:absolute; inset:0; display:grid; place-content:center; font-family:Georgia,serif; font-size:2.8rem; text-align:center; line-height:1.1; color:#49392b; }
.rst-story { display:grid; grid-template-columns:1fr 1fr; gap:35px 110px; align-items:start; }
.rst-story h2 { max-width:520px; margin-bottom:0; }
.rst-story-body { color:var(--muted); padding-top:46px; max-width:500px; }
.rst-story-body .rst-text-link { color:var(--ink); }
.rst-story-image { grid-column:1/-1; margin-top:25px; }
.rst-story-image img { width:100%; max-height:520px; object-fit:cover; }
.rst-modern .rst-story { border-bottom:1px solid var(--line); }
.rst-modern .rst-story-with-image { grid-template-columns:1fr 1fr; }
.rst-modern .rst-story-with-image .rst-story-heading { grid-column:2; grid-row:1; }
.rst-modern .rst-story-with-image .rst-story-body { grid-column:2; grid-row:2; padding:0; }
.rst-modern .rst-story-with-image .rst-story-image { grid-column:1; grid-row:1/3; margin:0; height:100%; }
.rst-modern .rst-story-image img { height:100%; min-height:400px; }
.rst-section-heading { display:flex; justify-content:space-between; gap:60px; align-items:end; margin-bottom:50px; }
.rst-section-heading h2 { margin-bottom:0; }
.rst-section-heading>p { max-width:330px; color:var(--muted); margin-bottom:5px; }
.rst-menu-section { background:var(--surface); }
.rst-modern .rst-menu-section { border-top:1px solid var(--line); background:var(--paper); }
.rc-menu { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px 70px; }
.rc-menu-category { min-width:0; }
.rc-menu-category>h2 { font-family:Arial,Helvetica,sans-serif; font-size:.8rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; border-bottom:1px solid var(--ink); padding-bottom:17px; }
.rc-menu-dish { position:relative; padding:18px 95px 20px 0; border-bottom:1px solid var(--line); }
.rc-menu-dish h3 { font-family:var(--heading); font-size:1.4rem; font-weight:400; margin:0 0 8px; letter-spacing:-.02em; }
.rc-menu-dish p { font-size:.88rem; margin:0 0 7px; color:var(--muted); }
.rc-menu-dish .rc-menu-price { position:absolute; right:0; top:21px; color:var(--ink); font-weight:700; }
.rc-menu-dish .rc-menu-labels { font-size:.72rem; }
.rst-modern .rc-menu { grid-template-columns:1fr; }
.rst-modern .rc-menu-category { display:grid; grid-template-columns:220px 1fr; gap:0 30px; }
.rst-modern .rc-menu-category>h2 { grid-column:1; grid-row:1/100; padding-top:20px; border-bottom:none; }
.rst-modern .rc-menu-dish { grid-column:2; }
.rst-modern .rc-menu-dish h3 { font-family:Arial,Helvetica,sans-serif; font-weight:700; font-size:1.15rem; }
.rst-gallery-section { padding-top:45px; }
.rst-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:22px; }
.rst-gallery img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.rst-warm .rst-gallery figure:nth-child(2) { transform:translateY(35px); }
.rst-modern .rst-gallery img { aspect-ratio:1; }
.rst-booking-section { background:#e8e6d8; }
.rst-modern .rst-booking-section { background:#252622; color:#fffdf7; }
.rst-booking-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:start; }
.rst-booking-intro { position:sticky; top:50px; padding-top:30px; }
.rst-booking-intro h2 { max-width:500px; }
.rst-booking-intro p:not(.rst-kicker) { max-width:350px; }
.rst-booking-card { background:var(--paper); color:var(--ink); padding:38px; border:1px solid var(--line); }
.rst-booking-card .rc-booking { max-width:none; font-size:.88rem; gap:18px; }
.rst-booking-card .rc-booking h2 { font-family:Arial,Helvetica,sans-serif; font-size:1.3rem; font-weight:700; letter-spacing:-.02em; margin:0; }
.rst-booking-card .rc-booking p { margin:0; }
.rst-booking-card .rc-booking input:not([type=checkbox]),.rst-booking-card .rc-booking select,.rst-booking-card .rc-booking textarea { background:#fff; color:#23211f; border:1px solid #a9aaa0; border-radius:var(--radius); padding:12px; min-height:46px; }
.rst-booking-card .rc-booking input[type=checkbox] { width:18px; height:18px; vertical-align:middle; accent-color:var(--accent); }
.rst-booking-card .rc-booking button { background:var(--accent); color:var(--on-accent); border:1px solid transparent; padding:14px; min-height:48px; font-weight:700; border-radius:var(--radius); }
.rst-booking-card .rc-booking [data-load] { background:transparent; color:var(--ink); border:1px solid var(--ink); }
.rst-booking-card .rc-check { font-size:.8rem; }
.rst-contact-section { border-top:1px solid var(--line); }
.rst-contact-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; }
.rst-contact-grid h2 { font-size:2.8rem; }
.rst-contact-grid h3 { font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; margin-bottom:25px; }
.rst-contact-grid p,.rst-contact-grid address { font-size:.95rem; font-style:normal; overflow-wrap:anywhere; }
.rst-footer { border-top:1px solid var(--line); padding-block:35px; }
.rst-footer-inner { display:flex; justify-content:space-between; align-items:center; gap:25px; flex-wrap:wrap; }
.rst-footer-brand { font-family:var(--heading); text-decoration:none; font-size:1.4rem; }
.rst-footer-links { display:flex; gap:25px; margin:0; padding:0; list-style:none; font-size:.78rem; }
.rst-footer small { font-size:.7rem; color:var(--muted); }
.rst-prose { max-width:840px; overflow-wrap:anywhere; }
.rst-prose article { margin-bottom:45px; }
.rst-prose h1 { font-size:clamp(2.3rem,5vw,4rem); }
.rst-prose h2 { font-size:2.1rem; }
.rst-prose p { margin-bottom:1.3em; }
.rst-prose .alignwide { max-width:1100px; }
.rst-prose .alignfull { width:100%; }
.rst-prose .rc-booking { margin-inline:auto; }
.rst-prose table { border-collapse:collapse; width:100%; }
.rst-prose td,.rst-prose th { padding:10px; border:1px solid var(--line); }
.rst-prose .rc-menu { grid-template-columns:1fr; }
@media (max-width:1000px) {
  .rst-container { width:calc(100% - 48px); }
  .rst-header-inner { gap:18px; }
  .rst-nav-list { gap:18px; }
  .rst-header-book { padding:12px; }
  .rst-brand { max-width:180px; font-size:1.4rem; }
  .rst-hero-modern { gap:35px; }
  .rst-hero-visual,.rst-art { min-height:470px; }
  .rst-hero-visual>img { height:470px; }
  .rst-booking-grid,.rst-story { gap:50px; }
  .rst-booking-card { padding:28px; }
  .rst-modern .rc-menu-category { grid-template-columns:180px 1fr; }
}
@media (max-width:760px) {
  html { scroll-padding-top:20px; }
  .rst-container { width:calc(100% - 36px); }
  .rst-section { padding-block:65px; }
  .rst-header-inner { min-height:88px; flex-wrap:wrap; padding-block:16px; }
  .rst-brand { flex:1; }
  .rst-brand .custom-logo { max-height:50px; }
  .rst-header-book { font-size:.7rem; min-height:44px; gap:8px; padding:12px; }
  .rst-menu-toggle:not([hidden]) { display:block; }
  .rst-navigation { width:100%; order:4; }
  .rst-navigation[hidden] { display:none; }
  .rst-nav-list { flex-wrap:wrap; gap:10px 24px; font-size:.9rem; }
  .rst-hero-warm { min-height:590px; }
  .rst-hero-warm .rst-hero-copy { padding-block:75px; }
  .rst-hero-warm h1 { font-size:clamp(2.7rem,9vw,4rem); }
  .rst-hero-signature { margin-top:40px; }
  .rst-hero-modern { grid-template-columns:1fr; padding-block:55px 60px; gap:40px; }
  .rst-hero-modern h1 { font-size:clamp(3rem,11vw,4.8rem); }
  .rst-hero-visual,.rst-art { min-height:400px; }
  .rst-hero-visual>img { height:400px; }
  .rst-art-plate { width:280px; height:280px; }
  .rst-art span { font-size:2.5rem; }
  .rst-story,.rst-modern .rst-story-with-image { grid-template-columns:1fr; gap:25px; }
  .rst-story-body { padding-top:0; }
  .rst-modern .rst-story-with-image .rst-story-heading,.rst-modern .rst-story-with-image .rst-story-body,.rst-modern .rst-story-with-image .rst-story-image { grid-column:auto; grid-row:auto; }
  .rst-modern .rst-story-image img { min-height:0; max-height:380px; }
  .rst-section-heading { display:block; margin-bottom:30px; }
  .rst-section-heading>p { margin-top:20px; }
  .rc-menu { grid-template-columns:1fr; gap:35px; }
  .rst-modern .rc-menu-category { display:block; }
  .rst-modern .rc-menu-category>h2 { padding-bottom:15px; border-bottom:1px solid var(--ink); }
  .rst-gallery { grid-template-columns:1fr; gap:18px; }
  .rst-gallery img { aspect-ratio:5/4; }
  .rst-warm .rst-gallery figure:nth-child(2) { transform:none; }
  .rst-booking-grid { grid-template-columns:1fr; gap:30px; }
  .rst-booking-intro { position:static; padding:0; }
  .rst-booking-card { padding:22px; }
  .rst-contact-grid { grid-template-columns:1fr; gap:32px; }
  .rst-contact-grid h3 { margin-bottom:15px; }
  .rst-footer-inner { align-items:start; flex-direction:column; }
}
@media (max-width:400px) {
  .rst-header-inner { gap:10px; }
  .rst-brand { max-width:145px; font-size:1.1rem; }
  .rst-header-book { padding:10px; }
  .rst-menu-toggle { font-size:.8rem; padding:9px; }
  .rst-actions .rst-button { width:100%; }
  .rc-menu-dish { padding-right:82px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { transition:none!important; animation:none!important; } }
