/* Eigenes Pizzeria-Design: inspiriert von der lebendigen Pizzer-Aesthetik,
   ohne Code oder Assets des kostenpflichtigen Themes zu uebernehmen.
   Farbabstimmung: frisches Flyer-Gruen statt Rot. */
:root {
  --forest: #164528;
  --forest2: #1d5935;
  --tomato: #218c47;
  --tomato-dark: #126733;
  --mint: #bdeac4;
  --cream: #fcfaf5;
  --cream2: #f4f0e7;
  --sand: #e7e7d8;
  --charcoal: #193524;
  --muted: #69796c;
  --border: #e4e8db;
  --leaf: #218c47;
  --leaf-light: #42a85f;
  --lime: #d4f2a0;
  --paper: #fcfaf2;
  --sun: #ffdf88;
  --radius: 18px;
  --shadow: 0 20px 55px rgba(12,54,27,.11);
}
body { background: var(--paper); color:#183423; font-family: 'Trebuchet MS', 'Segoe UI', system-ui, sans-serif; }
::selection { background: #bceca8; color: #10371f; }
a:hover { color:var(--leaf); }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible { outline:3px solid #79cd8b; outline-offset:3px; }
.container { width:min(1300px, calc(100% - 88px)); }
.button { border-radius: 999px; font-size:.85rem; letter-spacing:.005em; padding:16px 25px; min-height:55px; }
.button.primary { background:var(--leaf); box-shadow:0 15px 32px rgba(17,76,32,.19); }
.button.primary:hover { background:#166c36; }
.button.secondary:hover { border-color:var(--leaf); }
.eyebrow { color:var(--leaf); font-weight:900; letter-spacing:.19em; }
.eyebrow.light { color:#c4f5d0; }

/* Kopfzeile */
.top-notice { background:#15592e; color:#f9fff2; position:relative; z-index:11; border-bottom:1px solid #ffffff16; }
.top-notice-inner { min-height:35px; display:flex; justify-content:space-between; align-items:center; gap:20px; font-weight:850; font-size:.63rem; letter-spacing:.16em; }
.top-notice-inner span:last-child { color:#d1f4c4; }
.site-header { background:#fbf8ef; border-bottom:1px solid #dbe4d2; z-index:12; }
.header-content { height:92px; gap:20px; }
.brand,.brand:hover { color:#18472c; }
.brand { font-size:1.23rem; text-transform:uppercase; letter-spacing:-.04em; gap:13px; font-weight:950; }
.brand small { color:#609368; margin-top:8px; font-size:.51rem; letter-spacing:.235em; font-weight:850; }
.brand-icon { width:52px; height:52px; background:#218c47; font-size:1.7rem; border-radius:50%; box-shadow:0 5px 0 #d8e5cd; }
.brand-logo { width:52px; height:52px; object-fit:contain; border-radius:50%; background:white; border:2px solid #b7d6b9; }
.top-nav { color:#203c2b; font-size:.82rem; font-weight:850; gap:clamp(13px,2vw,29px); }
.top-nav a:hover,.top-nav button:hover { color:var(--leaf); }
.top-nav .nav-cta { background:var(--leaf); color:white; padding:12px 22px; border-radius:999px; border:1px solid var(--leaf); box-shadow:0 4px 0 rgba(16,93,40,.11); white-space:nowrap; }
.top-nav .nav-cta:hover { color:white; background:#145c31; border-color:#145c31; }
.nav-button { font-weight:850; }

/* Startseiten-Hero: zentriertes, bewegtes Logo */
.hero { isolation:isolate; position:relative; min-height:665px; background: radial-gradient(ellipse at 76% 28%, #3da75e 0%, #218e4a 33%, #157641 72%, #106234 100%); color:white; overflow:hidden; }
.hero:before { content:""; position:absolute; inset:0; opacity:.29; background-image: radial-gradient(#e3ffe0 1.2px, transparent 1.3px); background-size:31px 31px; mask-image:linear-gradient(90deg,transparent 1%,black 87%); z-index:-1; }
.hero:after { content:""; position:absolute; width:710px;height:710px; border:1px solid #ffffff25; border-radius:50%; right:9%;top:-240px; pointer-events:none; }
.hero-stage { min-height:625px; position:relative; display:grid; grid-template-columns: .99fr 1.1fr .43fr; align-items:center; gap:0; padding-top:20px; padding-bottom:20px; }
.hero-copy { position:relative; z-index:3; padding:42px 0 58px; }
.hero-kicker { display:inline-flex; align-items:center; gap:11px; background:#f8fff124; border:1px solid #e6ffe350; border-radius:50px; padding:10px 14px; font-size:.71rem; font-weight:900; letter-spacing:.14em; }
.kicker-dot { height:8px; width:8px; border-radius:50%; background:var(--sun); box-shadow:0 0 0 5px #ffecb122; }
.hero h1 { margin:29px 0 20px; font-size:clamp(4rem,6.5vw,7.4rem); font-family:'Arial Black','Impact','Trebuchet MS',sans-serif; font-weight:950; letter-spacing:-.065em; line-height:.92; }
.hero h1 span,.hero h1 strong { display:block; }
.hero h1 strong { font-family:Georgia,serif; font-size:1.16em; font-style:italic; font-weight:800; color:#ecffd4; letter-spacing:-.09em; text-shadow: 3px 6px 0 #124f3077; }
.hero p { color:#ecf9e9; font-size:1.06rem; line-height:1.8; max-width:455px; font-weight:550; }
.hero-actions { margin-top:32px; }
.hero-cta,.hero-cta:hover { color:#183c23!important; background:#ffdf88!important; box-shadow:0 9px 0 #0b6130,0 22px 33px #0d582a44!important; font-size:.9rem; font-weight:950; }
.hero-cta:hover { background:#ffe8a8!important; transform:translateY(-3px); }
.hero-cta span { font-size:1.2rem; }
.hero-checks { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:45px; color:#ebffed; font-size:.72rem; font-weight:800; }
.hero-checks span { white-space:nowrap; }
.hero-checks span:first-letter { color:var(--sun); }
.hero-center { position:relative; height:555px; min-width:0; display:grid; place-items:center; isolation:isolate; }
.logo-rays { position:absolute; width: min(555px,43vw); aspect-ratio:1; border-radius:50%; background: repeating-conic-gradient(from 0deg, transparent 0deg 9deg, #eeffdd20 9deg 10deg, transparent 10deg 18deg); mask: radial-gradient(circle, transparent 0 57%, black 58% 67%, transparent 68%); animation: orbitTurn 55s linear infinite; }
.logo-orbit { position:absolute; border-radius:50%; aspect-ratio:1; pointer-events:none; }
.orbit-outer { width:min(525px,40vw); border:2px dashed #e8ffda7b; animation:orbitTurn 29s linear infinite; }
.orbit-inner { width:min(414px,32vw); border:1px solid #f8ffe5ab; box-shadow: 0 0 0 9px #e4ffce1a; }
.orbit-outer i { position:absolute; display:block; width:14px;height:14px; background:#ffdc86; border:4px solid #248a4b; border-radius:50%; }
.orbit-outer i:nth-child(1) { left:50%;top:-8px; }
.orbit-outer i:nth-child(2) { top:50%;right:-8px; }
.orbit-outer i:nth-child(3) { bottom:-8px;left:50%; }
.orbit-outer i:nth-child(4) { top:50%;left:-8px; }
.logo-disc { position:relative; z-index:1; width:min(355px,30.7vw); aspect-ratio:1; border-radius:50%; padding:17px; background: #fffef6; border:11px solid #e6f0ca; box-shadow:0 0 0 9px #0a5b3044, 0 18px 0 #0f60377e, 0 30px 65px #083c2580, inset 0 0 0 3px #89be83; animation: logoBob 5s ease-in-out infinite; display:grid;place-items:center; }
.logo-disc:after { content:""; position:absolute; inset:-21px; border:2px solid #e1ffd694; border-radius:50%; }
.hero-logo-image { max-width:100%; width:100%; height:100%; object-fit:contain; border-radius:50%; display:block; }
.logo-placeholder { width:100%;height:100%; border:2px dashed #89bd8e; color:#1d7f41; border-radius:50%; display:flex; flex-direction:column; justify-content:center; text-align:center; align-items:center; background:radial-gradient(circle,#fff 0,#fbfaee 75%); line-height:1.04; }
.logo-placeholder small { font:900 .73rem/1 'Trebuchet MS',sans-serif; letter-spacing:.24em; margin-bottom:11px; }
.logo-placeholder strong { font:950 clamp(2.1rem,3.1vw,4.1rem)/.92 'Arial Black','Impact',sans-serif; letter-spacing:-.04em; transform:rotate(-7deg); }
.logo-placeholder span { font-size:.56rem; font-weight:900; letter-spacing:.16em; background:#f2e59e; color:#174029; margin-top:17px; border-radius:99px; padding:7px 12px; }
.orbit-star { position:absolute; z-index:2; filter:drop-shadow(0 4px 5px #16552c66); }
.star-one { top:8%;left:12%; font-size:3.7rem; color:#ffde82; animation:logoBob 5.5s ease-in-out infinite; }
.star-two { bottom:12%;right:3%; font-size:3.2rem; color:#e6ffcb; animation:logoBob 4.2s ease-in-out infinite reverse; }
.logo-caption { position:absolute; z-index:2; right:3%; bottom:6%; font-size:.67rem; font-weight:900; letter-spacing:.2em; transform:rotate(-10deg); color:#e7f8d4; }
.hero-right { display:flex; flex-direction:column; align-items:center; min-height:330px; justify-content:space-evenly; position:relative; z-index:2; }
.hero-badge { height:154px; width:154px; border:3px solid #ffefa6; outline:3px dashed #efffb994; outline-offset:9px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; transform:rotate(11deg); color:#ffefb4; text-align:center; }
.hero-badge span { font:italic 900 3.35rem/.95 Georgia,serif; }
.hero-badge strong { font-size:.71rem;line-height:1.45;text-transform:uppercase; letter-spacing:.13em; margin-top:8px; }
.hero-right p { font:italic 1.17rem Georgia,serif; color:#eaffdc; transform:rotate(-5deg);white-space:nowrap; }
.highlight-line { display:block; height:2px; width:47px; background:#e7ecae; margin:0 auto 16px; }
.vertical-label { writing-mode:vertical-rl; transform:rotate(180deg); font-size:.65rem; font-weight:900; color:#e3f7d1; letter-spacing:.22em; position:absolute; right:-7px; top:19%; }
.hero-decoration { position:absolute; pointer-events:none; color:#fff6bc30; font-size:10rem; font-family:Georgia,serif; }
.hero-decoration-a { top:-65px; left:-45px; transform:rotate(15deg); }
.hero-decoration-b { bottom:-110px; left:42%; font-size:17rem; transform:rotate(-10deg); }
.hero-decoration-c { top:34%; right:-75px; transform:rotate(-20deg); }
.hero-footerline { background:#145d35; border-top:1px solid #e1ffe529; padding:16px max(44px,calc((100vw - 1300px)/2)); display:flex; justify-content:space-between; gap:20px; color:#e8fae6; text-transform:uppercase; font-size:.67rem; font-weight:900; letter-spacing:.17em; }
.hero-footerline a { color:#fbe3a2; }
.hero-footerline a:hover { color:white; }
.hero-footerline span span { color:#fde29f; }
@keyframes orbitTurn { to { transform:rotate(360deg); } }
@keyframes logoBob { 0%,100% {transform:translateY(0) rotate(-4deg);} 50% {transform:translateY(-13px) rotate(4deg);} }

/* Uebergang, Intro und Speisekarte */
.benefits { background:#eaf1de; padding:17px 0; border-bottom:1px solid #d3e4cb; }
.benefit-grid span { color:#244b30; text-transform:uppercase; letter-spacing:.04em; font-size:.76rem; font-weight:900; }
.benefit-grid b { font-family:'Arial Black',sans-serif; color:#218c47; font-size:1.1rem; }
.intro-band { background:#fcfaf4; position:relative; padding:82px 0 60px; }
.intro-band-inner { display:grid; grid-template-columns:1.1fr .95fr 62px; gap:45px; align-items:center; }
.intro-band h2 { font:950 clamp(2.2rem,4.1vw,4.4rem)/1.05 'Arial Black','Impact',sans-serif; color:#173c26; letter-spacing:-.062em; margin:14px 0 0; text-transform:uppercase; }
.intro-band h2 em { font-family:Georgia,serif; font-weight:700; text-transform:none; color:var(--leaf); }
.intro-band p { margin:0; max-width:525px; color:#647967; font-size:.99rem; }
.intro-arrow { width:57px;height:57px; border-radius:50%; display:grid;place-items:center; background:#d7eccb; color:var(--leaf); font-size:1.75rem; font-weight:900; }
.intro-arrow:hover { background:var(--leaf); color:white; }
.menu-section { padding:60px 0 110px; scroll-margin-top:12px; }
.section-heading { margin-bottom:35px; }
.section-heading h2 { font:950 clamp(2.3rem,4.5vw,4.9rem)/1.08 'Arial Black','Impact',sans-serif; text-transform:uppercase; letter-spacing:-.065em; color:#143c26; margin:11px 0 13px; }
.section-heading h2 em { font-family:Georgia,serif; text-transform:none; color:var(--leaf); letter-spacing:-.06em; }
.section-heading p { font-size:.98rem; }
.menu-tag { background:#eef5e6; border:1px solid #d4e5d1; color:#23613a; padding:14px 17px; font-size:.66rem; letter-spacing:.06em; font-weight:950; }
.tag-star { color:var(--leaf); font-size:1.1rem; vertical-align:middle; margin-right:6px; }
.pizza-card { background:white; border-radius:20px; border:1px solid #dce6d6; box-shadow:0 12px 35px #11381d0b; }
.pizza-card-art { height:210px; background:radial-gradient(circle at 47% 34%,#fbf5d5,#d7e5cf 77%); }
.pizza-card-art.art-1 { background:radial-gradient(circle at 47% 34%,#fbf5de,#e7e6cf 75%); }
.pizza-card-art.art-2 { background:radial-gradient(circle at 47% 34%,#f4eed7,#cae2c5 75%); }
.pizza-card-art.art-3 { background:radial-gradient(circle at 47% 34%,#f9efd9,#e0e8ce 75%); }
.pizza-card-art:before { content:""; position:absolute; width:190px; height:190px; border:1px dashed #488d6055; border-radius:50%; }
.mini-pizza { width:142px;height:142px; border-width:9px; transform:rotate(-10deg); transition:transform .4s ease; box-shadow:0 15px 25px #75532d30,inset 0 0 0 9px #f4d186; }
.pizza-card:hover .mini-pizza { transform:rotate(4deg) scale(1.07); }
.pizza-number { top:15px;right:18px; background:#fff; border-radius:50%; width:37px;height:37px; display:grid;place-items:center; font-size:.75rem; color:var(--leaf); font-family:Arial,sans-serif; box-shadow:0 2px 9px #214a2514; }
.pizza-card-content { padding:22px; }
.pizza-title h3 { font-weight:950; font-size:1.13rem; letter-spacing:-.025em; }
.pizza-title strong { color:#207e3c; }
.pizza-card-content p { color:#6c756b; }
.allergens { color:#879385; }
.add-button { border-radius:50px; padding:5px 6px 5px 15px; background:#f5f8ee; border-color:#dbe9d6; }
.add-button:hover { background:#eaf6e9; border-color:#80bc87; }
.add-button b { border-radius:50%; background:var(--leaf); }
.pickup-explainer { background:#e2f1da; border-top:1px solid #cbe6c6; padding:76px 0; }
.explainer-grid { grid-template-columns:82px 1fr auto; }
.explainer-grid h2 { font:950 clamp(2rem,3vw,3.25rem)/1.1 'Arial Black','Impact',sans-serif; text-transform:uppercase; letter-spacing:-.057em; }
.explainer-grid h2 em { font:italic 800 1.12em Georgia,serif; color:var(--leaf); text-transform:none; }
.explainer-icon { color:var(--leaf); font-size:5.2rem; line-height:1; }
.explainer-grid p { max-width:685px; }
.explainer-grid .button { white-space:nowrap; background:white; border-color:#b7d7af; }
.footer { background:#11412a; }
.footer-inner { padding:32px 0; }

/* Ein konsistenter Gruenton auf allen Unterseiten */
.auth-page .auth-aside em,.admin-hero em,.tracking-heading em { color:#abdfad; }
.action-btn.delay { background:#f3f7e9; border-color:#c2d9b8; color:#41633d; }
.loading { border-top-color:var(--leaf); }
.cart-floating { background:var(--leaf); box-shadow:0 15px 40px #134f2c66; }
.cart-line-icon { background:#edf6e6; }
.slot-choice.selected { background:#eaf8e9; }
.pickup-notice.busy { background:#fff7dd; border-color:#e6d49d; color:#7a5b25; }
.pause-check { background:#eaf5e8; border-color:#d3e2c9; }
@media(max-width:1180px) {
  .container { width:min(100% - 58px,1300px); }
  .top-nav { gap:15px; }
  .hero-stage { grid-template-columns:1fr 1.1fr .27fr; }
  .hero h1 { font-size:clamp(3.5rem,6.2vw,6.4rem); }
  .hero-right .hero-badge { width:113px;height:113px; }
  .hero-badge span { font-size:2.4rem; }
  .hero-right .hero-badge strong { font-size:.55rem; }
  .hero-right p { font-size:.92rem; }
  .hero-checks { gap:9px; }
  .hero-checks span { font-size:.66rem; }
  .logo-disc { width:min(350px,30.5vw); }
  .intro-band-inner { gap:25px; }
  .pizza-card-art { height:190px; }
}
@media(max-width:980px) {
  .top-nav .nav-home,.top-nav .nav-how { display:none; }
  .hero-stage { grid-template-columns:1fr 1fr; min-height:560px; }
  .hero-right { display:none; }
  .hero-center { height:490px; }
  .logo-disc { width:min(340px,39vw); }
  .orbit-outer { width:min(460px,48vw); }
  .orbit-inner { width:min(400px,43vw); }
  .hero h1 { font-size:clamp(3.9rem,7.3vw,6.1rem); }
  .intro-band-inner { grid-template-columns:1fr 1fr; }
  .intro-arrow { display:none; }
  .menu-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .explainer-grid { grid-template-columns:60px 1fr; }
  .explainer-grid .button { grid-column:2; justify-self:start; }
}
@media(max-width:740px) {
  .container { width:min(100% - 34px,1300px); }
  .top-notice-inner { justify-content:center; min-height:31px; font-size:.56rem; }
  .top-notice-inner>span:last-child { display:none; }
  .header-content { min-height:75px; height:auto; flex-direction:row; padding:14px 0; align-items:center; justify-content:space-between; gap:15px; }
  .brand { font-size:1rem; gap:9px; }
  .brand-icon,.brand-logo { width:42px;height:42px; flex:0 0 auto; }
  .brand small { font-size:.43rem; letter-spacing:.13em; margin-top:6px; }
  .top-nav { gap:10px; font-size:.7rem; width:100%; justify-content:space-between; }
  .top-nav .nav-cta { padding:8px 14px; }
  .top-nav a[href="/#speisekarte"] { display:none; }
  .hero { min-height:unset; }
  .hero-stage { display:flex; flex-direction:column; min-height:unset; gap:0; padding:55px 0 30px; }
  .hero-copy { padding:0; text-align:center; width:100%; }
  .hero h1 { font-size:clamp(4rem,13vw,6.3rem); margin:24px 0 18px; }
  .hero p { max-width:540px; margin:0 auto; font-size:.95rem; }
  .hero-actions,.hero-checks { justify-content:center; }
  .hero-actions { margin-top:26px; }
  .hero-checks { margin-top:26px; gap:6px 13px; font-size:.7rem; }
  .hero-center { width:100%; height:385px; margin-top:5px; }
  .logo-disc { width:259px; border-width:9px; padding:12px; }
  .orbit-outer { width:345px; }
  .orbit-inner { width:290px; }
  .logo-rays { width:355px; }
  .logo-placeholder strong { font-size:2.7rem; }
  .star-one { top:5%;left:8%; }
  .logo-caption { bottom:5%;right:12%; }
  .hero-footerline { padding:14px 18px; justify-content:center; text-align:center; }
  .hero-footerline>span { display:none; }
  .benefit-grid { display:grid; grid-template-columns:1fr; gap:10px; padding:8px 0; }
  .benefit-grid span { justify-content:center; font-size:.67rem; }
  .intro-band { padding:55px 0 18px; }
  .intro-band-inner { grid-template-columns:1fr; gap:24px; }
  .intro-band h2 { font-size:clamp(2rem,7.7vw,3.5rem); }
  .menu-section { padding:55px 0 75px; }
  .section-heading { gap:8px; }
  .section-heading h2 { font-size:clamp(2.5rem,9vw,4rem); }
  .menu-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
  .pizza-card-art { height:154px; }
  .pizza-card-art:before { width:135px;height:135px; }
  .mini-pizza { width:108px;height:108px; border-width:6px; }
  .pizza-card-content { padding:12px; }
  .pizza-title h3 { font-size:.98rem; }
  .pizza-title strong { font-size:.86rem; }
  .pizza-card-content p { font-size:.74rem; margin:8px 0; min-height:60px; }
  .allergens { font-size:.63rem; min-height:32px; }
  .add-button { margin-top:9px; font-size:.71rem; padding-left:9px; }
  .add-button b { width:31px;height:31px; }
  .pickup-explainer { padding:45px 0; }
  .explainer-grid { grid-template-columns:43px 1fr;gap:17px; }
  .explainer-icon { font-size:2.65rem; }
  .explainer-grid h2 { font-size:clamp(1.85rem,7vw,2.5rem); }
  .explainer-grid .button { grid-column:1/-1; }
  .footer-inner { flex-wrap:wrap; justify-content:center; text-align:center; }
}
@media(max-width:430px) {
  .hero-stage { padding-top:37px; }
  .hero-kicker { font-size:.59rem; padding:9px 11px; }
  .hero h1 { font-size:clamp(3.45rem,14.6vw,4.5rem); }
  .hero-cta { width:100%; }
  .hero-checks { font-size:.64rem; }
  .hero-center { height:335px; }
  .logo-disc { width:222px; }
  .orbit-outer { width:290px; }
  .orbit-inner { width:255px; }
  .logo-rays { width:320px; }
  .logo-placeholder strong { font-size:2.2rem; }
  .logo-placeholder small { font-size:.58rem; }
  .star-one { font-size:2.4rem; }
  .star-two { font-size:2.3rem; }
  .logo-caption { font-size:.5rem; }
  .menu-grid { grid-template-columns:1fr 1fr; }
  .pizza-card-art { height:132px; }
  .mini-pizza { width:92px; height:92px; }
  .pizza-card-art:before { width:112px;height:112px; }
  .pizza-card-content p { min-height:76px; }
  .add-button span { font-size:.69rem; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after {scroll-behavior:auto!important; animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important;} }
.branding-admin { padding-bottom:100px; }
.branding-admin-grid { display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start; }
.branding-admin .panel h2 { margin:0 0 12px; }
.branding-admin .panel>p { color:var(--muted); }
.branding-logo-preview { display:grid;place-items:center;width:250px;height:250px;max-width:100%;border-radius:50%;background:white;border:12px solid #d6eaca;box-shadow:0 15px 40px #17412924;margin:22px auto;overflow:hidden; }
.branding-logo-preview img { width:100%;height:100%;object-fit:contain;border-radius:50%; }
.branding-logo-preview span { color:#2b7b43;font-size:.85rem;font-weight:950;text-align:center; }
@media(max-width:740px){.branding-admin-grid{grid-template-columns:1fr;}}
