/*
Theme Name: Marktmechanismus
Description: Sales-Promotion mit editierbaren WordPress-Blockinhalten, lokalen Assets und zugänglicher Navigation.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 7.4
Author: Marktmechanismus
License: GPL-2.0-or-later
Text Domain: marktmechanismus
*/
/* Gutenberg groups use the page's design spacing, without extra flow gaps. */
.wp-block-group > * { margin-block-start:0; margin-block-end:0; }
:root { --navy:#142c39; --navy-light:#203e4d; --cream:#f6f4ec; --paper:#eae9df; --lime:#d0f55b; --ink:#172d39; --muted:#5e6c70; --line:rgba(20,44,57,.2); --width:1360px; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; scroll-padding-top:110px; }
    body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased; }
    a { color:inherit; }
    button { font:inherit; }
    ::selection { background:var(--lime); color:var(--navy); }
    :focus-visible { outline:3px solid #738d16; outline-offset:6px; }
    .wrap { width:min(var(--width),calc(100% - 112px)); margin-inline:auto; }
    .skip { position:fixed; top:12px; left:12px; padding:14px 20px; background:var(--lime); transform:translateY(-180%); z-index:20; }
    .skip:focus { transform:translateY(0); }
    .header { position:sticky; top:0; z-index:10; background:var(--cream); border-bottom:1px solid var(--line); }
    .header-inner { display:flex; justify-content:space-between; align-items:center; min-height:94px; gap:36px; }
    .brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-size:16px; font-weight:900; line-height:1.08; letter-spacing:-.035em; }
    .brand-mark { width:35px; height:35px; position:relative; flex:none; background:var(--navy); }
    .brand-mark::before { content:""; position:absolute; width:14px; height:14px; top:5px; right:5px; background:var(--lime); }
    .brand-mark::after { content:""; position:absolute; width:14px; height:14px; bottom:5px; left:5px; border:2px solid var(--cream); }
    .nav { display:flex; align-items:center; gap:34px; }
    .nav a { font-size:14px; text-decoration:none; font-weight:700; }
    .nav a:not(.nav-cta):hover { text-decoration:underline; text-underline-offset:6px; }
    .nav-cta { padding:14px 19px; border:1px solid var(--navy); transition:background .2s,color .2s; }
    .nav-cta:hover { background:var(--navy); color:var(--cream); }
    .menu-toggle { display:none; border:1px solid var(--navy); background:transparent; padding:10px 13px; font-weight:700; cursor:pointer; }
    .hero { background:var(--navy); color:var(--cream); position:relative; overflow:hidden; }
    .hero-inner { padding-block:71px 39px; }
    .eyebrow { margin:0; display:flex; align-items:center; gap:10px; font-size:12px; line-height:1.5; letter-spacing:.11em; text-transform:uppercase; font-weight:700; }
    .eyebrow::before { content:""; display:block; width:7px; height:7px; background:currentColor; flex:none; }
    .hero .eyebrow { color:var(--lime); }
    .hero-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:38px; align-items:center; margin-top:33px; }
    h1 { font-size:clamp(58px,5.65vw,83px); line-height:1.04; letter-spacing:-.065em; margin:0; font-weight:700; }
    h1 .highlight { color:var(--lime); }
    .hero-copy { max-width:540px; font-size:18px; line-height:1.65; color:#d8dfdc; margin:29px 0 29px; }
    .button { display:inline-flex; align-items:center; justify-content:space-between; gap:34px; min-height:55px; padding:16px 22px; background:var(--lime); color:var(--navy); text-decoration:none; font-size:14px; font-weight:700; transition:transform .2s,background .2s; }
    .button:hover { background:#defc86; transform:translateY(-2px); }
    .arrow { font-size:24px; line-height:1; font-weight:400; }
    .hero-art { aspect-ratio:1; position:relative; isolation:isolate; display:flex; align-items:center; justify-content:center; }
    .art-grid { position:absolute; inset:3%; background-image:linear-gradient(to right,rgba(246,244,236,.09) 1px,transparent 1px),linear-gradient(to bottom,rgba(246,244,236,.09) 1px,transparent 1px); background-size:20% 20%; }
    .orbit { position:absolute; width:89%; height:89%; border:1px solid rgba(246,244,236,.35); border-radius:50%; }
    .orbit::before { content:""; position:absolute; width:15px; height:15px; border-radius:50%; top:12%; left:13%; background:var(--lime); }
    .art-disc { width:76%; height:76%; border-radius:50%; background:var(--lime); color:var(--navy); display:flex; flex-direction:column; align-items:center; justify-content:center; transform:rotate(-9deg); position:relative; box-shadow:24px 20px 0 rgba(0,0,0,.1); }
    .art-disc span { font-size:clamp(25px,3.6vw,51px); line-height:.97; font-weight:800; letter-spacing:-.055em; }
    .art-disc svg { width:61%; height:49px; margin-top:22px; }
    .art-note { position:absolute; right:-2%; bottom:6%; padding:11px 14px; color:var(--cream); background:var(--navy); border:1px solid rgba(246,244,236,.4); font-size:10px; line-height:1.4; letter-spacing:.1em; transform:rotate(5deg); }
    .hero-bottom { border-top:1px solid rgba(246,244,236,.22); margin-top:50px; padding-top:21px; display:flex; align-items:center; justify-content:space-between; gap:25px; }
    .hero-bottom p { margin:0; color:#ccd4d1; font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
    .hero-bottom a { font-size:12px; text-decoration:none; display:flex; align-items:center; gap:17px; }
    .hero-bottom a:hover { color:var(--lime); }
    .intro { padding-block:86px 65px; display:grid; grid-template-columns:1fr 2fr; gap:60px; }
    .intro .eyebrow { padding-top:9px; }
    h2 { font-size:clamp(36px,3.85vw,56px); line-height:1.12; letter-spacing:-.045em; margin:0; font-weight:700; }
    .intro p:not(.eyebrow) { max-width:650px; font-size:17px; line-height:1.7; color:var(--muted); margin:24px 0 0; }
    .services { padding-bottom:88px; }
    .service-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
    .service { padding:35px 38px 32px; min-height:378px; display:flex; flex-direction:column; position:relative; overflow:hidden; border:1px solid var(--line); background:var(--paper); }
    .service-top { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
    .service-number { font-size:11px; font-weight:700; letter-spacing:.09em; }
    .service-symbol { height:88px; width:108px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; opacity:.95; }
    .service h3 { font-size:clamp(29px,3vw,41px); line-height:1.05; margin:21px 0 16px; letter-spacing:-.04em; }
    .service p { font-size:15px; line-height:1.7; max-width:440px; margin:0 0 25px; }
    .service-tag { align-self:flex-start; margin-top:auto; padding-top:15px; border-top:1px solid currentColor; font-size:10px; line-height:1.5; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
    .service-food { background:var(--paper); }
    .service-nonfood { background:var(--navy); color:var(--cream); border-color:var(--navy); }
    .service-nonfood .service-symbol { color:var(--lime); }
    .service-connect { background:var(--lime); }
    .service-auto { background:var(--cream); }
    .process { background:var(--navy); color:var(--cream); padding-block:83px 91px; }
    .section-heading { display:flex; justify-content:space-between; gap:45px; align-items:flex-start; margin-bottom:45px; }
    .section-heading .eyebrow { color:var(--lime); padding-top:7px; }
    .section-heading h2 { width:66%; }
    .steps { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; list-style:none; padding:0; margin:0; }
    .step { border-top:1px solid rgba(246,244,236,.35); padding-top:23px; }
    .step-label { font-size:12px; color:var(--lime); letter-spacing:.09em; font-weight:700; }
    .step h3 { font-size:25px; line-height:1.2; letter-spacing:-.03em; margin:33px 0 15px; }
    .step p { color:#ccd4d1; font-size:15px; line-height:1.7; margin:0; max-width:355px; }
    .contact { padding-block:92px 93px; }
    .contact-panel { background:var(--lime); padding:54px 58px; display:grid; grid-template-columns:1.5fr 1fr; gap:70px; align-items:end; }
    .contact-panel h2 { margin-top:24px; }
    .contact-copy { font-size:16px; line-height:1.7; margin:0 0 25px; }
    .contact .button { width:100%; background:var(--navy); color:var(--cream); }
    .contact .button:hover { background:var(--navy-light); }
    .contact .button-phone { margin-top:11px; background:transparent; color:var(--navy); border:1px solid var(--navy); }
    .contact .button-phone:hover { background:rgba(20,44,57,.07); }
    .contact-email { display:block; margin-top:15px; font-size:12px; line-height:1.6; overflow-wrap:anywhere; text-underline-offset:3px; }
    .footer { padding-block:30px; border-top:1px solid var(--line); }
    .footer-inner { display:flex; justify-content:space-between; align-items:center; gap:24px; }
    .footer p { margin:0; font-size:12px; line-height:1.6; color:var(--muted); }
    .footer-links { display:flex; flex-wrap:wrap; gap:20px; font-size:12px; }
    .footer-links a { text-decoration:none; text-underline-offset:4px; }
    .footer-links a:hover { text-decoration:underline; }
    @media (min-width:1600px) { h1 { font-size:87px; } }
    @media (max-width:1100px) {
      .wrap { width:calc(100% - 64px); }
      .nav { gap:23px; }
      .hero-grid { grid-template-columns:1.25fr 1fr; gap:20px; }
      h1 { font-size:clamp(48px,6.6vw,73px); }
      .hero-copy { font-size:16px; }
      .art-disc span { font-size:4vw; }
      .intro { gap:35px; }
      .contact-panel { gap:42px; padding:45px 38px; }
      .service { padding:29px 30px; }
    }
    @media (max-width:760px) {
      html { scroll-padding-top:90px; }
      .wrap { width:calc(100% - 40px); }
      .header-inner { min-height:77px; gap:15px; flex-wrap:wrap; }
      .brand { font-size:14px; gap:9px; }
      .brand-mark { width:31px; height:31px; }
      .brand-mark::before,.brand-mark::after { width:12px; height:12px; }
      .menu-toggle { display:block; font-size:12px; }
      .nav { display:none; width:100%; flex-direction:column; align-items:stretch; gap:0; padding:0 0 18px; }
      .nav.is-open { display:flex; }
      .nav a { padding:15px 0; border-top:1px solid var(--line); }
      .nav .nav-cta { padding:15px; text-align:center; border:1px solid var(--navy); margin-top:9px; }
      .hero-inner { padding-block:40px 26px; }
      .eyebrow { font-size:10px; letter-spacing:.1em; }
      .hero-grid { grid-template-columns:1fr; margin-top:25px; gap:25px; }
      h1 { font-size:clamp(44px,9.5vw,71px); }
      .hero-copy { max-width:520px; font-size:16px; margin:24px 0; }
      .hero-art { width:min(78%,360px); margin:0 auto; }
      .art-disc span { font-size:clamp(25px,7.4vw,38px); }
      .art-disc svg { margin-top:15px; height:33px; }
      .art-note { font-size:8px; right:-6%; }
      .hero-bottom { margin-top:26px; padding-top:20px; align-items:flex-start; }
      .hero-bottom p { font-size:9px; line-height:1.8; max-width:180px; }
      .hero-bottom a { font-size:11px; gap:9px; white-space:nowrap; }
      .intro { padding-block:56px 34px; grid-template-columns:1fr; gap:23px; }
      h2 { font-size:clamp(33px,7.6vw,48px); }
      .intro p:not(.eyebrow) { font-size:16px; margin-top:19px; }
      .services { padding-bottom:55px; }
      .service-grid { grid-template-columns:1fr; gap:14px; }
      .service { padding:28px; min-height:348px; }
      .service h3 { font-size:35px; margin-top:20px; }
      .service-symbol { width:96px; height:75px; }
      .service p { font-size:15px; }
      .process { padding-block:55px 58px; }
      .section-heading { flex-direction:column; gap:24px; margin-bottom:35px; }
      .section-heading h2 { width:100%; }
      .steps { grid-template-columns:1fr; gap:30px; }
      .step { padding-top:18px; }
      .step h3 { margin:17px 0 12px; font-size:24px; }
      .step p { max-width:100%; }
      .contact { padding-block:55px; }
      .contact-panel { padding:33px 25px; grid-template-columns:1fr; gap:27px; }
      .contact-panel h2 { margin-top:22px; }
      .contact-copy { font-size:15px; margin-bottom:20px; }
      .footer { padding-block:25px; }
      .footer-inner { align-items:flex-start; flex-direction:column; gap:18px; }
    }
    @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; } }
    .legal-hero { background:var(--navy); color:var(--cream); padding-block:65px 62px; }
    .eyebrow { display:flex; align-items:center; gap:10px; margin:0; font-size:12px; line-height:1.5; letter-spacing:.11em; text-transform:uppercase; font-weight:700; }
    .eyebrow::before { content:""; display:block; width:7px; height:7px; background:currentColor; flex:none; }
    .legal-hero .eyebrow { color:var(--lime); }
    .legal-hero h1 { font-size:clamp(52px,6vw,82px); line-height:1.05; letter-spacing:-.055em; margin:27px 0 0; }
    .legal-content { display:grid; grid-template-columns:1fr 2fr; gap:70px; padding-block:66px 82px; }
    .aside { font-size:15px; line-height:1.65; color:var(--muted); max-width:260px; }
    .aside p { margin:0 0 22px; }
    .back-link { color:var(--ink); font-weight:700; font-size:13px; }
    .legal-body { max-width:760px; }
    .legal-section { padding-bottom:27px; margin-bottom:27px; border-bottom:1px solid var(--line); }
    .legal-section:last-child { margin:0; }
    .legal-content h2 { font-size:25px; line-height:1.2; letter-spacing:-.03em; margin:0 0 18px; }
    .legal-content p,.legal-content address { font-style:normal; font-size:16px; line-height:1.75; margin:0; }
    .operator { font-weight:700; font-size:21px; line-height:1.5; margin-bottom:5px; }
    .operator-description { margin-bottom:16px; color:var(--muted); }
    .legal-body a { overflow-wrap:anywhere; }
    .legal-content dl { margin:0; display:grid; grid-template-columns:190px 1fr; gap:17px 24px; font-size:16px; line-height:1.65; }
    .legal-content dt { color:var(--muted); }
    .legal-content dd { margin:0; }

/* Native WordPress navigation and branding. */
.brand-icon { display:block; flex:none; width:35px; height:35px; }
.custom-logo-link { display:block; }
.custom-logo { display:block; width:auto; max-width:240px; max-height:54px; }
.nav-list,.footer-menu { display:flex; align-items:center; list-style:none; padding:0; margin:0; gap:34px; }
.nav-list li,.footer-menu li { margin:0; }
.footer-menu { gap:20px; flex-wrap:wrap; }
.nav li.nav-cta { padding:0; border:0; }
.nav li.nav-cta > a { display:block; padding:14px 19px; border:1px solid var(--navy); }
.nav li.nav-cta > a:hover { background:var(--navy); color:var(--cream); }
.nav a[aria-current="page"],.footer-menu a[aria-current="page"] { text-decoration:underline; }
.admin-bar .header { top:32px; }

/* Genuine Gutenberg buttons retain the original visual design. */
.wp-block-button__link { display:inline-flex; align-items:center; justify-content:space-between; gap:34px; min-height:55px; padding:16px 22px; border:0; border-radius:0; background:var(--lime); color:var(--navy); text-decoration:none; font-size:14px; font-weight:700; line-height:1.4; transition:transform .2s,background .2s; }
.wp-block-button__link:hover { background:#defc86; transform:translateY(-2px); }
.contact .wp-block-buttons,.contact .wp-block-button { width:100%; }
.contact .wp-block-button__link { width:100%; background:var(--navy); color:var(--cream); }
.contact .wp-block-button__link:hover { background:var(--navy-light); }
.contact .button-phone { margin-top:11px; }
.contact .button-phone .wp-block-button__link { background:transparent; color:var(--navy); border:1px solid var(--navy); }
.contact .button-phone .wp-block-button__link:hover { background:rgba(20,44,57,.07); }
.contact-email a.contact-email { margin-top:0; }

/* Decorative elements remain CSS/local assets rather than locked content. */
.hero-art::before { content:""; position:absolute; inset:3%; z-index:-1; background-image:linear-gradient(to right,rgba(246,244,236,.09) 1px,transparent 1px),linear-gradient(to bottom,rgba(246,244,236,.09) 1px,transparent 1px); background-size:20% 20%; }
.hero-art::after { content:""; position:absolute; width:89%; height:89%; border:1px solid rgba(246,244,236,.35); border-radius:50%; z-index:-1; }
.art-disc p { font-size:clamp(25px,3.6vw,51px); line-height:.97; font-weight:800; letter-spacing:-.055em; margin:0; }
.art-disc::after { content:""; width:61%; height:34px; margin-top:22px; background:currentColor; clip-path:polygon(0 44%,86% 44%,76% 0,83% 0,100% 50%,83% 100%,76% 100%,86% 56%,0 56%); }
.art-note p { margin:0; font-size:inherit; line-height:inherit; }
.hero-bottom p:has(a) { text-transform:none; letter-spacing:normal; }
.service-top::after { content:""; display:block; height:88px; width:108px; flex:none; background-size:contain; background-repeat:no-repeat; background-position:center; }
.service-food .service-top::after { background-image:url('assets/service-food.svg'); }
.service-nonfood .service-top::after { background-image:url('assets/service-nonfood.svg'); }
.service-connect .service-top::after { background-image:url('assets/service-connect.svg'); }
.service-auto .service-top::after { background-image:url('assets/service-auto.svg'); }
.service .service-number { font-size:11px; line-height:1.5; margin:0; }
.service .service-tag { margin:auto 0 0; font-size:10px; line-height:1.5; }
.step p.step-label { font-size:12px; color:var(--lime); line-height:1.5; }
.legal-content p,.legal-content address { font-style:normal; font-size:16px; line-height:1.75; }
.legal-content .operator { font-size:21px; line-height:1.5; margin-bottom:5px; }
.legal-content .operator-description { margin-bottom:16px; }
.legal-content .aside p { font-size:15px; line-height:1.65; }
.legal-content .back-link { font-size:13px; }
.legal-facts { list-style:none; padding:0; margin:0; display:grid; gap:17px; font-size:16px; line-height:1.65; }
.legal-facts li { margin:0; }
.legal-facts strong { color:var(--muted); font-weight:400; }
.legal-content .privacy-paragraph { margin-top:17px; }
.legal-content .privacy-date { font-size:12px; }
.privacy-nav { display:flex; flex-direction:column; gap:12px; margin-bottom:29px; font-size:13px; }
.privacy-nav p,.legal-content .privacy-nav p { font-size:13px; margin:0; display:flex; flex-direction:column; gap:12px; }
.privacy-nav a { text-decoration:none; }
.privacy-nav a:hover { text-decoration:underline; }
.privacy-notice { margin-top:21px; padding:22px 24px; border-left:4px solid var(--lime); background:#eae9df; }
.privacy-notice h3 { font-size:17px; line-height:1.4; margin:0 0 10px; }
.legal-hero h1 { font-size:clamp(42px,6vw,82px); }
.standard-content { padding-block:70px 85px; }
.standard-content h1 { font-size:clamp(42px,6vw,76px); margin-bottom:30px; }
.standard-content h2 { font-size:36px; margin-bottom:22px; }
.standard-content article + article { margin-top:45px; }
.standard-content p,.page-links { font-size:16px; line-height:1.7; }
.page-content > :not(.wp-block-group):not(.legal-hero) { max-width:900px; margin-inline:auto; padding-inline:20px; }
.page-links { padding-block:25px; }
@media (max-width:1100px) {
    .nav-list { gap:23px; }
    .legal-content { gap:40px; }
    .art-disc p { font-size:4vw; }
}
@media (max-width:782px) { .admin-bar .header { top:46px; } }
@media (max-width:760px) {
    .brand-icon { width:31px; height:31px; }
    .custom-logo { max-width:190px; max-height:42px; }
    .menu-toggle { display:none; }
    .has-js .menu-toggle { display:block; }
    .nav { display:flex; }
    .has-js .nav { display:none; }
    .has-js .nav.is-open { display:flex; }
    .nav-list { flex-direction:column; align-items:stretch; width:100%; gap:0; }
    .nav-list a { display:block; }
    .nav li.nav-cta > a { padding:15px; margin-top:9px; text-align:center; }
    .art-disc p { font-size:clamp(25px,7.4vw,38px); }
    .art-disc::after { margin-top:15px; height:28px; }
    .service-top::after { width:96px; height:75px; }
    .legal-hero { padding-block:42px 43px; }
    .legal-hero h1 { font-size:clamp(40px,10vw,70px); margin-top:23px; overflow-wrap:anywhere; }
    .legal-content { grid-template-columns:1fr; gap:36px; padding-block:40px 54px; }
    .aside { max-width:100%; }
    .aside p { margin-bottom:17px; }
    .legal-content h2 { font-size:23px; }
    .legal-content p,.legal-content address,.legal-facts { font-size:15px; }
    .legal-content .operator { font-size:20px; }
    .legal-section { padding-bottom:23px; margin-bottom:25px; }
    .legal-content .privacy-date { font-size:12px; }
    .standard-content { padding-block:45px 55px; }
}
@media (max-width:600px) { .admin-bar .header { top:0; } }
@media (prefers-reduced-motion:reduce) { .wp-block-button__link { transition:none; } }
