/* ==========================================================
   Basler Stadtspaziergänge – main.css v1.0
   Nachbau der bisherigen Neve/Elementor-Startseite
   Titel: Libre Baskerville #591925 · Text: Source Sans Pro #272626
   Karten/Buttons: Poppins · Akzente: grün / rot / lila / orange
   ========================================================== */

:root {
  --bordeaux:   #591925;
  --rot-ci:     #bf1728;
  --text:       #272626;
  --text-dark:  #313131;
  --text-muted: #616161;
  --grau-hell:  #d8d8d8;
  --grau:       #8b8b8b;
  --bg:         #ffffff;
  --bg-soft:    #f7f7f7;
  --link:       #2f5aae;

  --gruen:      #00ba78;  --gruen-h: #38c695;
  --rot:        #f34123;  --rot-h:   #fc5f45;
  --lila:       #b27cf5;
  --orange:     #feb960;
  --stripe: linear-gradient(90deg, #fc5f45 0 25%, #38c695 25% 50%, #b27cf5 50% 75%, #feb960 75% 100%);

  --overlay:    rgba(38, 39, 50, .62);
  --shadow:     0 0 25px rgba(0, 0, 0, .06);

  --f-title: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --f-text:  'Source Sans Pro', Arial, Helvetica, sans-serif;
  --f-ui:    'Poppins', Arial, Helvetica, sans-serif;

  --box: 1140px;
}

/* ── BASIS ───────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { margin:0; font-family:var(--f-text); font-size:18px; font-weight:500; line-height:1.8;
       color:var(--text); background:var(--bg); overflow-x:hidden; }
img { max-width:100%; height:auto; display:block; }
a { color:var(--link); text-decoration:none; transition:color .2s, background-color .2s, border-color .2s; }
a:hover { color:var(--bordeaux); }
p { margin:0 0 1em; }
strong, b { font-weight:700; }
:target { scroll-margin-top:20px; }

h1,h2,h3,h4,h5,h6 { font-family:var(--f-title); color:var(--bordeaux); margin:0 0 .5em; line-height:1.3; }
h1 { font-size:42px; font-weight:400; }
h2 { font-size:36px; font-weight:700; line-height:1.2; }
h3 { font-size:27px; font-weight:400; }
h4 { font-size:22px; font-weight:400; }
h5 { font-size:18px; font-weight:700; }
h6 { font-size:16px; font-weight:700; }

.container { max-width:var(--box); margin:0 auto; padding:0 20px; }
.container--narrow { max-width:860px; }
.container-box { max-width:var(--box); margin-left:auto; margin-right:auto; }
.center { text-align:center; }

.screen-reader-text { position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }
.skip-link { position:absolute; left:20px; top:-100px; z-index:9999; padding:8px 16px; background:var(--bordeaux); color:#fff; }
.skip-link:focus { top:12px; color:#fff; }
:focus-visible { outline:2px solid var(--bordeaux); outline-offset:3px; }

/* ── BUTTONS ─────────────────────────────────────── */
.btn { display:inline-flex; align-items:center; justify-content:center; font-family:var(--f-ui);
       font-size:16px; font-weight:500; text-transform:uppercase; letter-spacing:0; line-height:1;
       border-radius:30px; padding:0 40px; height:50px; border:2px solid transparent; cursor:pointer; }
.btn--pill { color:#fff; }
.btn--gruen { background:var(--gruen); }
.btn--gruen:hover { background:var(--gruen-h); color:#fff; }
.btn--rot { background:var(--rot); }
.btn--rot:hover { background:var(--rot-h); color:#fff; }
.btn--outline { height:46px; font-weight:400; color:var(--accent, var(--bordeaux)); border-color:var(--accent, var(--bordeaux)); background:transparent; }
.btn--outline:hover { background:var(--accent, var(--bordeaux)); color:#fff; }

/* ── HEADER ──────────────────────────────────────── */
.site-header { background:#fff; border-bottom:1px solid #f0f0f0; position:relative; z-index:100; }
.header-inner { display:flex; align-items:center; gap:32px; min-height:173px; padding-top:16px; padding-bottom:16px; }
.site-logo { flex:0 0 auto; margin-right:auto; }
.site-logo img { width:270px; max-width:100%; height:auto; }

.primary-nav .menu { list-style:none; display:flex; align-items:center; gap:36px; margin:0; padding:0; }
.primary-nav .menu > li { position:relative; }
.primary-nav .menu a { display:inline-flex; align-items:center; gap:6px; font-family:var(--f-text); font-size:18px;
                       font-weight:500; color:var(--text); padding:8px 0; }
.primary-nav .menu > li:first-child > a,
.primary-nav .menu a:hover,
.primary-nav .current-menu-item > a { color:var(--bordeaux); }
.primary-nav .caret { margin-top:2px; }
.primary-nav .sub-menu { list-style:none; margin:0; padding:10px 0; position:absolute; top:100%; left:-20px; min-width:220px;
                         background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.1); opacity:0; visibility:hidden;
                         transform:translateY(6px); transition:opacity .2s, transform .2s, visibility .2s; }
.primary-nav li:hover > .sub-menu,
.primary-nav li:focus-within > .sub-menu { opacity:1; visibility:visible; transform:none; }
.primary-nav .sub-menu a { display:block; padding:6px 20px; font-size:16px; }
.nav-close { display:none; }

.header-actions { display:flex; align-items:center; gap:22px; }
.search-toggle, .menu-toggle { background:none; border:0; padding:4px; cursor:pointer; color:var(--text); display:flex; }
.search-toggle:hover { color:var(--bordeaux); }
.header-cart { position:relative; display:flex; color:var(--text); }
.header-cart:hover { color:var(--bordeaux); }
.header-cart-count { position:absolute; right:-8px; bottom:-6px; min-width:15px; height:15px; padding:0 3px;
                     background:#fff; color:var(--text); font-size:10px; font-weight:700; line-height:15px;
                     text-align:center; border-radius:8px; }
.menu-toggle { display:none; flex-direction:column; gap:5px; }
.menu-toggle span { display:block; width:24px; height:2px; background:currentColor; }

/* Such-Overlay */
.search-overlay { position:fixed; inset:0; z-index:2000; background:rgba(255,255,255,.97); display:flex;
                  align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .2s; }
.search-overlay.active { opacity:1; pointer-events:auto; }
.search-overlay-inner { position:relative; width:90%; max-width:640px; }
.search-close { position:absolute; top:-56px; right:0; background:none; border:0; font-size:34px; cursor:pointer; color:var(--text); }
.search-form { display:flex; gap:12px; }
.search-field { flex:1; font:inherit; font-size:22px; padding:12px 0; border:0; border-bottom:2px solid var(--bordeaux); background:transparent; outline:none; }
.search-submit { font-family:var(--f-text); font-weight:700; font-size:15px; background:var(--bordeaux); color:#fff; border:0; border-radius:3px; padding:0 24px; cursor:pointer; }
.page-main .search-field { font-size:18px; }

/* ── HERO ────────────────────────────────────────── */
.hero { position:relative; min-height:658px; display:flex; align-items:center; background-size:cover; background-position:center; }
.hero::before { content:""; position:absolute; inset:0; background:var(--overlay); }
.hero-inner { position:relative; width:100%; padding:110px 0 90px; text-align:center; }
.hero-title { font-family:var(--f-title); font-size:60px; line-height:85px; font-weight:500; color:#fff; max-width:860px; margin:0 auto 70px; }
.hero-buttons { display:flex; justify-content:space-between; gap:24px; padding:0 60px 0 82px; }

/* ── ABSCHNITTE ALLGEMEIN ────────────────────────── */
.sec { position:relative; }
.sec-head { position:relative; text-align:center; padding-top:120px; margin-bottom:60px; }
.sec-nr { position:absolute; left:50%; top:0; transform:translateX(-50%); font-family:var(--f-ui); font-size:273px;
          font-weight:700; line-height:1; color:rgba(224,224,224,.3); pointer-events:none; user-select:none; z-index:0; white-space:nowrap; }
.sec-title { position:relative; z-index:1; font-family:var(--f-title); font-size:50px; line-height:1.5; font-weight:600;
             color:var(--text-dark); margin:0; }
.sec-sub { position:relative; z-index:1; font-size:18px; color:var(--text); margin:6px 0 0; }
.sec-head--light .sec-title, .sec-head--light .sec-sub { color:#fff; }
.sec-head--light .sec-nr { color:rgba(224,224,224,.3); }

.card { background:#fff; box-shadow:var(--shadow); position:relative; }
.card--stripe::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--stripe); }

/* ── AUSSCHREIBUNGEN ─────────────────────────────── */
.sec-aus { padding:60px 0 40px; }
.aus-heading { font-size:36px; font-weight:700; color:var(--bordeaux); margin-bottom:24px; }
.aus-item { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding:0 0 60px; }
.aus-title { font-size:27px; font-weight:400; margin:0 0 20px; }
.aus-title a { color:var(--bordeaux); }
.aus-map { display:block; max-width:283px; margin:0 auto; }
.aus-map img { width:100%; }
.aus-date { font-family:var(--f-title); font-size:16px; font-weight:700; color:var(--bordeaux); margin:8px 0 22px; }
.aus-pdf { font-family:var(--f-title); font-size:16px; font-weight:700; margin:0 0 22px; }
.aus-text { font-size:18px; line-height:1.8; }
.aus-text p:first-letter { font-weight:700; }
.aus-treff { margin-top:1.2em; }
.aus-anmelden { display:inline-block; margin-top:4px; font-family:var(--f-ui); font-size:15px; font-weight:500; color:var(--gruen); }
.aus-anmelden:hover { color:var(--bordeaux); }
.aus-plan { padding-top:20px; }
.aus-plan-title { font-size:27px; font-weight:400; margin-bottom:30px; }
.aus-plan .aus-text p:first-letter { font-weight:inherit; }
.aus-empty { color:var(--text-muted); }

/* ── 01 ÜBER UNS ─────────────────────────────────── */
.sec-about { padding:80px 0 40px; }
.about-grid { display:flex; align-items:center; justify-content:center; }
.about-img { margin:0; flex:0 0 400px; max-width:400px; }
.about-img img { width:100%; height:600px; object-fit:cover; }
.about-card { flex:0 1 490px; margin-left:-30px; padding:60px 70px 70px 90px; overflow:hidden; }
.about-card .sec-title { text-align:left; font-size:50px; margin-bottom:24px; }
.sec-nr--card { left:20px; top:-10px; transform:none; font-size:200px; }
.about-text { font-size:16px; font-weight:400; color:var(--text-muted); line-height:1.7; position:relative; z-index:1; }
.about-text p { margin-bottom:1.3em; }

/* ── 02 SPAZIERGÄNGE ─────────────────────────────── */
.sec-walks { padding-bottom:80px; }
.walks { max-width:780px; margin:0 auto; display:flex; flex-direction:column; gap:40px; }
.walk { display:grid; grid-template-columns:380px 400px; align-items:start; }
.walk--rev { grid-template-columns:400px 380px; }
.walk--rev .walk-img { order:2; }
.walk--rev .walk-card { order:1; }
.walk-img { margin:40px 0 0; }
.walk-img img { width:100%; aspect-ratio:3/2; object-fit:cover; }
.walk-img figcaption { text-align:center; font-size:12px; color:var(--text-muted); margin-top:6px; }
.walk-card { padding:40px 40px 40px 60px; border-bottom:3px solid var(--accent); z-index:1; }
.walk-nr { position:absolute; left:18px; top:12px; font-family:var(--f-title); font-size:40px; line-height:1; color:#e6e6e6; }
.walk-title { font-family:var(--f-ui); font-size:25px; line-height:40px; font-weight:400; margin:0 0 18px; }
.walk-title a { color:var(--bordeaux); }
.walk-title a:hover { color:var(--accent); }
.walk-text { font-family:var(--f-ui); font-size:15px; line-height:27px; color:var(--text-muted); }
.walk-text p:first-letter, .walk-text strong:first-child { color:var(--bordeaux); font-weight:700; }

/* ── 03 UNSER FOKUS ──────────────────────────────── */
.sec-focus { min-height:811px; background-size:cover; background-position:center; padding:0 25px 110px; }
.sec-focus .sec-head { padding-top:110px; margin-bottom:90px; }
.focus-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:30px; }
.focus-card { padding:50px 22px 40px; text-align:center; border-bottom:3px solid var(--accent); }
.focus-icon { display:inline-flex; color:var(--accent); margin-bottom:18px; }
.focus-title { font-family:var(--f-ui); font-size:20px; line-height:33px; font-weight:500; color:var(--text-dark); margin:0 0 14px; }
.focus-card p { font-family:var(--f-ui); font-size:15px; line-height:27px; color:var(--text-dark); margin:0; }

/* ── 04 TEAM ─────────────────────────────────────── */
.sec-team { background:var(--bg-soft); padding:0 35px 160px; }
.team-grid { display:flex; justify-content:space-between; gap:40px; }
.team-card { flex:0 0 410px; display:flex; flex-direction:column; padding:4px 4px 18px; border-bottom:3px solid var(--accent); text-align:center; color:inherit; }
.team-photo { width:221px; height:300px; object-fit:cover; }
.team-name { font-family:var(--f-ui); font-size:18px; color:var(--accent); margin-top:14px; }
.team-role { font-family:var(--f-ui); font-size:13px; color:var(--text); }
.team-card:hover .team-name { color:var(--bordeaux); }

/* ── 05 ANGEBOTE ─────────────────────────────────── */
.sec-offers { background:var(--bg-soft); padding-bottom:150px; }
.offers-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; max-width:1100px; margin:0 auto; align-items:start; }
.offer { border-top:3px solid var(--accent); padding:40px 34px 46px; text-align:left; }
.offer-title { font-family:var(--f-title); font-size:20px; line-height:33px; font-weight:500; color:var(--text-dark); text-align:center; margin:0 0 26px; }
.offer:nth-child(2) .offer-title { color:var(--bordeaux); }
.offer-badge { width:120px; height:120px; margin:0 auto 34px; border-radius:50%; background:var(--accent); color:#fff;
               display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:0 0 0 6px rgba(255,255,255,.9), 0 0 0 7px var(--accent); }
.offer-price { font-family:var(--f-ui); font-size:28px; line-height:1.1; }
.offer-unit { font-family:var(--f-ui); font-size:12px; margin-top:4px; }
.offer-list { list-style:none; margin:0 0 26px; padding:0; }
.offer-list li { position:relative; padding-left:18px; font-size:16px; line-height:2; margin-bottom:6px; }
.offer-list li::before { content:""; position:absolute; left:2px; top:.85em; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.offer-buttons { display:flex; flex-direction:column; align-items:center; gap:14px; }

/* ── 06 RÜCKMELDUNGEN ────────────────────────────── */
.sec-testi { padding-bottom:140px; }
.band { position:relative; background-size:cover; background-position:center; }
.band::before { content:""; position:absolute; inset:0; background:var(--overlay); }
.band > * { position:relative; }
.sec-testi .band { min-height:441px; padding-bottom:110px; }
/* Zitatbox sitzt auf der Unterkante des Bildbands, Name/Datum darunter */
.testi { position:relative; max-width:940px; margin:-62px auto 0; z-index:2; }
.testi-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; scroll-behavior:smooth; }
.testi-track::-webkit-scrollbar { display:none; }
.testi-slide { flex:0 0 100%; scroll-snap-align:center; margin:0; text-align:center; }
.testi-quote { margin:0; background:#f9fafa; padding:30px 40px; font-family:'Roboto', var(--f-text); font-style:italic;
               font-size:23.4px; line-height:1.5; color:var(--link); }
.testi-quote p { margin:0 0 .4em; }
.testi-quote p:last-child { margin-bottom:0; }
.testi-bezug { font-weight:700; }
.testi-img { width:60px; height:60px; border-radius:50%; object-fit:cover; margin:16px auto 0; }
.testi-slide figcaption { margin-top:14px; display:flex; flex-direction:column; font-size:14px; line-height:21px; }
.testi-name { font-weight:700; }
.testi-nav { position:absolute; top:40px; width:36px; height:36px; border:0; border-radius:50%; background:#fff; color:var(--bordeaux);
             box-shadow:var(--shadow); font-size:26px; line-height:1; cursor:pointer; }
.testi-prev { left:-56px; } .testi-next { right:-56px; }
.testi-nav:hover { background:var(--bordeaux); color:#fff; }
.testi-dots { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:20px; }
.testi-dots button { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:var(--grau-hell); cursor:pointer; }
.testi-dots button[aria-selected="true"] { background:var(--bordeaux); }

/* ── 07 KONTAKT ──────────────────────────────────── */
.sec-contact { padding-bottom:60px; }
.sec-contact .band { min-height:852px; padding:0 5px 90px; }
.sec-contact .sec-head { margin-bottom:40px; }
.contact-form-wrap { max-width:var(--box); margin:0 auto; }

.bsp-form p { margin:0 0 14px; }
.bsp-form label { display:block; font-size:14px; font-weight:600; margin-bottom:4px; }
.bsp-form input[type=text], .bsp-form input[type=email], .bsp-form input[type=tel],
.bsp-form input[type=number], .bsp-form textarea { width:100%; font:inherit; font-size:15px; font-weight:400; color:var(--text);
  background:#fff; border:1px solid #ddd; border-radius:3px; padding:10px 12px; }
.bsp-form textarea { min-height:110px; resize:vertical; }
.bsp-form input:focus, .bsp-form textarea:focus { outline:2px solid var(--bordeaux); outline-offset:0; border-color:var(--bordeaux); }
.btn-submit { width:100%; height:40px; font-family:var(--f-text); font-size:15px; font-weight:700; color:#fff;
              background:var(--bordeaux); border:0; border-radius:3px; cursor:pointer; }
.btn-submit:hover { background:var(--rot-ci); }
.contact-form label { color:#fff; }
.hp-field { position:absolute!important; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.form-msg { padding:14px 18px; border-radius:3px; font-weight:600; }
.form-msg--ok { background:#e6f7ef; color:#0b6b48; }
.form-msg--err { background:#fdecea; color:#a3261a; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.form-check label { font-weight:400; display:flex; gap:8px; align-items:center; }
.form-hint { font-size:14px; color:var(--grau); }

/* ── FOOTER ──────────────────────────────────────── */
.site-footer { padding:30px 0 40px; text-align:center; font-size:16px; }
.footer-menu { list-style:none; margin:0 0 6px; padding:0; display:flex; justify-content:center; flex-wrap:wrap; gap:6px 28px; }
.footer-menu a { color:var(--text); }
.footer-menu a:hover { color:var(--bordeaux); }
.footer-copy { margin:0; color:var(--text); }
.to-top { position:fixed; right:22px; bottom:22px; width:34px; height:34px; display:flex; align-items:center; justify-content:center;
          background:var(--bordeaux); color:#fff; border-radius:3px; opacity:0; visibility:hidden; transition:opacity .25s, visibility .25s; z-index:90; }
.to-top.show { opacity:1; visibility:visible; }
.to-top:hover { color:#fff; background:var(--rot-ci); }

/* ── INHALTSSEITEN ───────────────────────────────── */
.page-main { padding:60px 0 100px; }
.page-head { margin-bottom:40px; }
.entry-title { font-size:42px; font-weight:400; color:var(--bordeaux); margin-bottom:30px; }
.entry-kicker { font-size:15px; margin-bottom:8px; }
.entry-thumb { margin:0 0 30px; }
.entry-content { font-size:18px; }
.entry-content::after { content:""; display:table; clear:both; }
.entry-content img { height:auto; }
.entry-content figure { margin:0 0 1.5em; }
.entry-content figcaption, .wp-caption-text { font-size:13px; color:var(--text-muted); text-align:center; margin-top:6px; }
.entry-content .alignleft { float:left; margin:0 30px 20px 0; }
.entry-content .alignright { float:right; margin:0 0 20px 30px; }
.entry-content .aligncenter { margin-left:auto; margin-right:auto; }
.entry-content ul, .entry-content ol { padding-left:1.3em; }
.entry-content blockquote { margin:1.5em 0; padding:10px 24px; border-left:3px solid var(--bordeaux); font-style:italic; }
.entry-content table { border-collapse:collapse; width:100%; }
.entry-content td, .entry-content th { border:1px solid #e5e5e5; padding:8px 12px; }
.entry-content .wp-block-columns { gap:30px; }
.entry-content .gallery, .entry-content .wp-block-gallery { gap:10px; }
.entry-content iframe { max-width:100%; }
.post-nav { display:flex; justify-content:space-between; gap:20px; margin-top:60px; padding-top:20px; border-top:1px solid #eee; }

/* Ausschreibung (Einzelseite) */
.badge-past { display:inline-block; background:var(--bg-soft); color:var(--grau); padding:6px 14px; font-size:15px; }
.sp-layout { display:grid; grid-template-columns:1fr 300px; gap:40px; align-items:start; }
.sp-layout:not(:has(.sp-map)) { grid-template-columns:1fr; }
.sp-table { width:100%; border-collapse:collapse; margin-bottom:24px; }
.sp-table th, .sp-table td { text-align:left; vertical-align:top; padding:10px 0; border-bottom:1px solid #eee; }
.sp-table th { width:40%; font-family:var(--f-title); font-size:15px; font-weight:700; color:var(--bordeaux); padding-right:16px; }
.sp-map { margin:0; }
.anmeldung { margin-top:60px; padding:40px; }
.anmeldung h2 { font-size:30px; }

/* Ausschreibungen (Archiv) */
.sp-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:30px; }
.sp-card { display:flex; flex-direction:column; color:var(--text); border-bottom:3px solid var(--gruen-h); }
.sp-card.is-past { border-bottom-color:var(--grau-hell); opacity:.75; }
.sp-card img { width:100%; aspect-ratio:3/2; object-fit:cover; }
.sp-card-body { display:flex; flex-direction:column; gap:4px; padding:20px 24px 24px; }
.sp-card-date { font-family:var(--f-title); font-size:14px; font-weight:700; color:var(--bordeaux); }
.sp-card-title { font-family:var(--f-ui); font-size:21px; line-height:1.4; color:var(--bordeaux); }
.sp-card-meta { font-size:15px; color:var(--text-muted); }
.sp-card:hover .sp-card-title { color:var(--gruen); }

/* Listen / Suche */
.list { display:flex; flex-direction:column; gap:30px; }
.list-item { display:grid; grid-template-columns:200px 1fr; gap:24px; align-items:start; }
.list-item:not(:has(.list-thumb)) { grid-template-columns:1fr; }
.list-title { font-size:24px; font-weight:400; margin-bottom:6px; }
.list-title a { color:var(--bordeaux); }
.nav-links { display:flex; gap:10px; margin-top:40px; }
.nav-links .page-numbers { padding:4px 12px; border:1px solid #ddd; color:var(--text); }
.nav-links .current { background:var(--bordeaux); color:#fff; border-color:var(--bordeaux); }
.sec-nr--inline { position:static; transform:none; display:block; font-size:160px; color:#eee; }

/* ── RESPONSIVE ──────────────────────────────────── */
@media (max-width: 1240px) {
  .testi { max-width:820px; }
}
@media (max-width: 1024px) {
  .header-inner { min-height:110px; }
  .site-logo img { width:200px; }
  .menu-toggle { display:flex; }
  .primary-nav { position:fixed; top:0; left:0; bottom:0; width:min(340px, 85vw); background:#fff; z-index:1200;
                 padding:70px 30px 30px; overflow-y:auto; transform:translateX(-100%); transition:transform .3s ease; }
  body.menu-open .primary-nav { transform:none; box-shadow:0 0 40px rgba(0,0,0,.2); }
  .nav-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:1100; }
  .nav-close { display:block; position:absolute; top:14px; right:18px; background:none; border:0; font-size:34px; cursor:pointer; color:var(--text); }
  .primary-nav .menu { flex-direction:column; align-items:flex-start; gap:0; }
  .primary-nav .menu > li { width:100%; border-bottom:1px solid #eee; }
  .primary-nav .sub-menu { position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; padding:0 0 10px 14px; min-width:0; }
  .primary-nav .caret { display:none; }
  .header-actions { gap:18px; }

  .hero { min-height:520px; }
  .hero-title { font-size:46px; line-height:1.4; }
  .hero-buttons { padding:0 30px; }
  .focus-grid { grid-template-columns:repeat(2, 1fr); }
  .team-card { flex-basis:auto; flex:1; }
  .offers-grid { grid-template-columns:1fr 1fr; }
  .testi-prev { left:6px; } .testi-next { right:6px; }
  .testi-nav { top:auto; bottom:-60px; }
}
@media (max-width: 860px) {
  .walk, .walk--rev { grid-template-columns:1fr; }
  .walk--rev .walk-img { order:0; }
  .walk-img { margin:0; }
  .walk-card { margin:-30px 16px 0; }
  .about-grid { flex-direction:column; }
  .about-img { flex:none; max-width:100%; width:100%; }
  .about-img img { height:auto; max-height:520px; }
  .about-card { flex:none; align-self:stretch; margin:-60px 16px 0; padding:50px 30px 40px; }
  .aus-item { grid-template-columns:1fr; gap:10px; }
  .aus-plan .aus-left { display:none; }
  .sp-layout { grid-template-columns:1fr; }
}
@media (max-width: 680px) {
  body { font-size:17px; }
  .header-inner { min-height:86px; gap:12px; }
  .site-logo img { width:150px; }
  .hero { min-height:440px; }
  .hero-title { font-size:32px; margin-bottom:40px; }
  .hero-buttons { flex-direction:column; align-items:center; padding:0 20px; }
  .sec-head { padding-top:70px; margin-bottom:40px; }
  .sec-nr { font-size:150px; }
  .sec-title, .about-card .sec-title { font-size:34px; }
  .sec-focus { padding:0 16px 60px; min-height:0; }
  .sec-focus .sec-head { padding-top:70px; margin-bottom:40px; }
  .focus-grid, .offers-grid { grid-template-columns:1fr; }
  .sec-team { padding:0 16px 80px; }
  .team-grid { flex-direction:column; align-items:center; }
  .team-card { width:100%; max-width:410px; }
  .sec-offers { padding-bottom:80px; }
  .testi { margin-top:-80px; padding:0 12px; }
  .testi-quote { font-size:19px; padding:24px 20px; }
  .sec-contact .band { min-height:0; padding:0 16px 50px; }
  .form-row { grid-template-columns:1fr; }
  .walk-card { padding:36px 24px 30px 40px; }
  .entry-title { font-size:32px; }
  .list-item { grid-template-columns:1fr; }
  .anmeldung { padding:28px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none!important; animation:none!important; }
}
