/*
Theme Name: SpenglerFinder Block
Theme URI: https://example.invalid/spenglerfinder
Description: Schlankes Block-Theme für das SpenglerFinder-Verzeichnis.
Version: 1.0.3
Requires at least: 7.0
Requires PHP: 8.4
Text Domain: spenglerfinder-block
*/

body { background:#fbfaf7; }
.wp-site-blocks { overflow:hidden; }
.wp-block-navigation a { text-decoration:none; }
.wp-block-button__link { transition:transform 160ms cubic-bezier(.23,1,.32,1),background 160ms; }
.wp-block-button__link:active { transform:scale(.97); }
@media (prefers-reduced-motion:no-preference) { .wp-block-group,.wp-block-cover { transition:opacity .2s ease-out; } }

/* Mobile baseline: keep all full/wide block layouts inside a predictable content gutter. */
@media (max-width:782px) {
  :root { --wp--style--root--padding-left:20px; --wp--style--root--padding-right:20px; }
  html,body { width:100%; max-width:100%; overflow-x:hidden; }
  .wp-site-blocks { width:100%; max-width:100%; overflow-x:clip; }
  .wp-site-blocks main,.wp-site-blocks header,.wp-site-blocks footer { min-width:0; }
  .wp-site-blocks .alignwide:not(.alignfull),.wp-site-blocks .wp-block-group.alignwide:not(.alignfull) { box-sizing:border-box; width:auto!important; max-width:none!important; margin-left:0!important; margin-right:0!important; padding-left:20px!important; padding-right:20px!important; }
  .wp-site-blocks main > .wp-block-group:not(.alignfull),.wp-site-blocks main > .wp-block-cover:not(.alignfull) { box-sizing:border-box; width:auto!important; max-width:none!important; margin-left:0!important; margin-right:0!important; padding-left:20px!important; padding-right:20px!important; }
  .wp-site-blocks .alignfull > .alignwide { box-sizing:border-box; width:100%!important; max-width:none!important; margin-left:0!important; margin-right:0!important; padding-left:20px!important; padding-right:20px!important; }
  .wp-site-blocks .wp-block-columns { gap:26px; }
  .wp-site-blocks h1 { overflow-wrap:anywhere; }

  header.wp-block-group.alignfull { position:relative; z-index:100; }
  header.wp-block-group.alignfull > .wp-block-group.alignwide { box-sizing:border-box; width:100%!important; margin:0!important; padding-left:20px!important; padding-right:20px!important; }
  header .wp-site-blocks,header .wp-block-group { min-width:0; }
  header .wp-block-site-title { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  header .wp-block-navigation { min-width:44px; margin-left:auto; }
  header .wp-block-navigation__responsive-container-open { display:flex; margin-left:auto; }
  .wp-block-navigation__responsive-container.is-menu-open { position:fixed!important; inset:0!important; box-sizing:border-box; width:100vw!important; max-width:none!important; min-height:100svh!important; padding:86px 24px 28px!important; transform:none!important; background:#fbfaf7!important; overflow-y:auto!important; z-index:10000!important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { position:absolute!important; top:22px!important; right:20px!important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { display:block!important; width:100%!important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { display:flex!important; flex-direction:column!important; align-items:stretch!important; width:100%!important; gap:0!important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width:100%!important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display:block!important; padding:18px 0!important; border-bottom:1px solid #e3ddd1; font-size:22px!important; }

  footer.wp-block-group.alignfull > .wp-block-group.alignwide { box-sizing:border-box; width:100%!important; margin:0!important; padding-left:20px!important; padding-right:20px!important; gap:16px; }
  footer .wp-block-navigation__container { justify-content:flex-start!important; gap:12px!important; }

  header .wp-block-navigation { display:none!important; }
  .cf-mobile-menu { display:block; margin-left:auto; }
  .cf-mobile-menu__toggle { display:grid; place-content:center; gap:5px; width:46px; height:46px; padding:0; border:0; background:transparent; color:#0a4536; cursor:pointer; }
  .cf-mobile-menu__toggle span[aria-hidden="true"] { display:block; width:27px; height:2px; border-radius:2px; background:currentColor; }
  .cf-mobile-menu__panel { position:fixed!important; z-index:10050!important; inset:0!important; box-sizing:border-box!important; width:100vw!important; min-height:100dvh!important; margin:0!important; padding:calc(env(safe-area-inset-top) + 104px) 28px 32px!important; border:0!important; background:#fbfaf7!important; overflow-y:auto!important; transform:none!important; }
  .cf-mobile-menu__panel[hidden] { display:none!important; }
  .cf-mobile-menu__panel a { display:block; padding:19px 0; border-bottom:1px solid #e3ddd1; color:#153d33; font-size:23px; font-weight:700; text-decoration:none; }
  .cf-mobile-menu__close { position:absolute; top:calc(env(safe-area-inset-top) + 20px); right:22px; width:48px; height:48px; padding:0; border:0; background:transparent; color:#153d33; font-size:44px; line-height:1; cursor:pointer; }
  body.cf-mobile-menu-open { overflow:hidden!important; }
}

@media (min-width:783px) { .cf-mobile-menu { display:none; } }
