/*
Theme Name: GtSV Schach
Theme URI: https://www.gtsv23.de
Author: Guetersloher Schachverein von 1923 e.V.
Description: Schlankes, sicheres Theme fuer den Guetersloher Schachverein - ohne Page-Builder und ohne unnoetige Plugins.
Version: 1.2.0
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gtsv-schach
*/

:root{
  --gold:#d6a333;
  --gold-dark:#b8891f;
  --gold-light:#f6e7c4;
  --dark:#181818;
  --dark-soft:#262626;
  --green:#2f7d46;
  --green-dark:#1f5c32;
  --whatsapp:#118539;
  --whatsapp-dark:#0d6c2e;
  --text:#242424;
  --muted:#6b6b6b;
  --card-bg:#ffffff;
  --card-accent:#f9f5ec;
  --border:#e6e2da;
  --radius:10px;
  --radius-sm:7px;
  --maxw:1180px;
  --shadow-sm:0 1px 2px rgba(24,24,24,.05),0 1px 1px rgba(24,24,24,.04);
  --shadow-md:0 6px 20px rgba(24,24,24,.08);
  --shadow-lift:0 10px 26px rgba(24,24,24,.12);
  --ease:.2s ease;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:#f7f6f3;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--green-dark);text-decoration:none;transition:color var(--ease),background-color var(--ease);}
a:hover{color:var(--green);text-decoration:underline;}
h1,h2,h3,h4{font-family:Georgia,'Times New Roman',serif;line-height:1.25;color:var(--dark);font-weight:700;letter-spacing:-.01em;}
p{margin:0 0 1em;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 20px;}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;padding:10px 16px;z-index:1000;border-radius:0 0 8px 0;box-shadow:var(--shadow-md);}
.skip-link:focus{left:0;top:0;}

/* Focus visibility (accessible + on-brand) */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--green-dark);
  outline-offset:2px;
  border-radius:3px;
}

/* Bewegung reduzieren, wenn vom Betriebssystem gewünscht */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}

/* Header */
.site-header{
  background-image:
    linear-gradient(45deg, rgba(255,255,255,.05) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.05) 75%),
    linear-gradient(45deg, rgba(255,255,255,.05) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.05) 75%),
    linear-gradient(165deg,var(--gold) 0%,var(--gold-dark) 100%);
  background-size:28px 28px,28px 28px,100% 100%;
  background-position:0 0,14px 14px,0 0;
  box-shadow:0 2px 10px rgba(0,0,0,.12);position:relative;z-index:30;
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px;}
.site-branding{display:flex;align-items:center;gap:14px;}
.site-branding a{display:flex;align-items:center;gap:14px;color:#1a1a1a;text-decoration:none;}
.site-branding a:hover{text-decoration:none;}
.site-branding a:hover .site-title{color:#000;}
.site-logo{width:52px;height:52px;flex:none;}
.site-title{font-family:Georgia,'Times New Roman',serif;font-size:1.4rem;font-weight:700;margin:0;color:#181818;transition:color var(--ease);}

/* Das Vereinssiegel enthält feine Rundschrift und braucht mehr Fläche als ein
   einfaches Icon, damit sie nicht "verwaschen"/verzerrt wirkt – daher größer
   als ein normales Icon-Logo und mit Ring vom goldenen Hintergrund abgesetzt. */
.custom-logo{width:72px;height:72px;flex:none;border-radius:50%;background:#fff;object-fit:cover;box-shadow:0 0 0 3px rgba(255,255,255,.55),0 2px 6px rgba(0,0,0,.2);}

@media (max-width:480px){
  .site-header .container{padding-top:12px;padding-bottom:12px;}
  .site-branding,.site-branding a{gap:10px;}
  .site-logo{width:42px;height:42px;}
  .custom-logo{width:54px;height:54px;box-shadow:0 0 0 2px rgba(255,255,255,.55),0 1px 4px rgba(0,0,0,.2);}
  .site-title{font-size:1.05rem;line-height:1.3;}
  .menu-toggle{padding:6px 8px;}
  .menu-toggle svg{width:20px;height:20px;}
}

.menu-toggle{display:none;background:rgba(0,0,0,.08);border:2px solid rgba(26,26,26,.55);border-radius:8px;padding:8px 10px;cursor:pointer;transition:background-color var(--ease),border-color var(--ease);}
.menu-toggle:hover{background:rgba(0,0,0,.14);}
.menu-toggle svg{display:block;width:22px;height:22px;overflow:visible;}
.menu-toggle svg line{transition:transform .25s ease,opacity .2s ease;transform-origin:12px 12px;}
.menu-toggle.is-active svg line:nth-child(1){transform:translateY(6px) rotate(45deg);}
.menu-toggle.is-active svg line:nth-child(2){opacity:0;}
.menu-toggle.is-active svg line:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

.primary-nav{background:var(--dark);position:sticky;top:0;z-index:25;box-shadow:0 2px 8px rgba(0,0,0,.18);}
.primary-nav .container{padding-top:0;padding-bottom:0;}
.primary-menu{list-style:none;display:flex;flex-wrap:wrap;gap:2px;margin:0;padding:0;}
.primary-menu li{position:relative;}
.primary-menu a{display:block;padding:15px 17px;color:#eee;font-size:.92rem;letter-spacing:.02em;transition:background-color var(--ease),color var(--ease);position:relative;}
.primary-menu a:hover,.primary-menu a:focus{background:var(--gold-dark);color:#181818;text-decoration:none;}
.primary-menu li.current-menu-item > a,.primary-menu li.current_page_item > a,.primary-menu li.current-menu-ancestor > a{color:#fff;box-shadow:inset 0 -3px 0 var(--gold);}
.primary-menu li.current-menu-item > a:hover,.primary-menu li.current_page_item > a:hover{color:#181818;}
.primary-menu li.menu-item-has-children > a{padding-right:30px;}
.primary-menu li.menu-item-has-children > a::after{content:"";position:absolute;right:13px;top:50%;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-65%) rotate(45deg);opacity:.75;transition:transform var(--ease);}
.primary-menu ul{list-style:none;margin:0;padding:0;position:absolute;background:#222;min-width:230px;display:none;z-index:20;box-shadow:var(--shadow-lift);}
.primary-menu > li > ul{left:0;top:100%;border-radius:0 0 8px 8px;}
.primary-menu ul ul{left:100%;top:-6px;margin-left:2px;border-radius:8px;}
.primary-menu > li:nth-child(n+5) ul ul{left:auto;right:100%;margin-left:0;margin-right:2px;}
.primary-menu li:hover > ul,.primary-menu li:focus-within > ul{display:block;}
.primary-menu ul a{padding:12px 16px;white-space:nowrap;}
.primary-menu ul li.menu-item-has-children > a::after{transform:translateY(-65%) rotate(-45deg);}
.primary-menu > li:nth-child(n+5) ul ul li.menu-item-has-children > a::after{transform:translateY(-65%) rotate(135deg);}

@media (max-width:820px){
  .menu-toggle{display:block;}
  .primary-nav{position:static;}
  .primary-nav .container{padding:0;}
  .primary-menu{display:none;flex-direction:column;}
  .primary-menu.is-open{display:flex;animation:gtsv-menu-in .18s ease;}
  .primary-menu ul{position:static;display:none;background:#1c1c1c;box-shadow:none;border-radius:0;}
  .primary-menu ul ul{background:#171717;}
  .primary-menu ul ul ul{background:#101010;}
  .primary-menu ul a{padding-left:30px;}
  .primary-menu ul ul a{padding-left:44px;}
  .primary-menu ul ul ul a{padding-left:58px;}
  .primary-menu li.submenu-open > ul{display:block;}
  .primary-menu li.menu-item-has-children > a::after{transform:translateY(-65%) rotate(45deg);}
  .primary-menu li.submenu-open > a::after{transform:translateY(-35%) rotate(-135deg);}
  .primary-menu li.current-menu-item > a,.primary-menu li.current_page_item > a{box-shadow:inset 3px 0 0 var(--gold);}
}
@keyframes gtsv-menu-in{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:translateY(0);}}

/* Layout */
.content-wrap{max-width:var(--maxw);margin:36px auto;padding:0 20px;display:grid;grid-template-columns:2fr 1fr;gap:32px;align-items:start;}
@media (max-width:900px){.content-wrap{grid-template-columns:1fr;margin:28px auto;}}

.card{position:relative;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:28px 30px;margin-bottom:24px;box-shadow:var(--shadow-sm);}
.card.featured{background:linear-gradient(180deg,var(--card-accent) 0%,#fff 65%);border:1px solid var(--gold);box-shadow:0 4px 16px rgba(214,163,51,.14);}
.card--post{transition:box-shadow var(--ease),transform var(--ease),border-color var(--ease);}
.card--post:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:#d8d2c4;}
.card--post:hover .entry-title a{color:var(--green-dark);}

.badge-new{position:absolute;top:-11px;left:26px;background:var(--gold);color:#1a1a1a;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px;border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.15);}

h1.entry-title{font-size:1.95rem;margin:6px 0 6px;}
h2.entry-title{font-size:1.4rem;margin-top:0;}
.entry-title a{color:var(--dark);transition:color var(--ease);}
.entry-meta{color:var(--muted);font-size:.85rem;margin-bottom:16px;display:block;}
.entry-thumb{margin:4px 0 18px;border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm);}
.entry-thumb img{border-radius:8px;transition:transform .35s ease;}
.card--post .entry-thumb{aspect-ratio:16/9;}
.card--post .entry-thumb img{width:100%;height:100%;object-fit:cover;}
.card--post:hover .entry-thumb img{transform:scale(1.03);}

.entry-content p{margin:0 0 1em;}
.entry-content img{border-radius:8px;margin:.4em 0;box-shadow:var(--shadow-sm);}
.entry-content .alignleft{float:left;margin:.3em 1.4em 1em 0;}
.entry-content .alignright{float:right;margin:.3em 0 1em 1.4em;}
.entry-content .aligncenter{display:block;margin:1em auto;}
.entry-content .wp-caption{max-width:100%;}
.entry-content .wp-caption img{margin-bottom:0;}
.entry-content .wp-caption-text,.entry-content figcaption{margin-top:.5em;font-size:.85rem;color:var(--muted);text-align:center;font-style:italic;}
.entry-content a{text-decoration:underline;text-decoration-color:rgba(31,92,50,.35);text-underline-offset:2px;}
.entry-content ul,.entry-content ol{padding-left:1.35em;margin:0 0 1em;}
.entry-content li{margin-bottom:.35em;}
.entry-content ul li::marker{color:var(--gold-dark);}
.entry-content ol li::marker{color:var(--gold-dark);font-weight:700;}
.entry-content strong{color:#181818;}
.entry-content blockquote{margin:1.3em 0;padding:.6em 1.2em;border-left:4px solid var(--gold);background:var(--card-accent);border-radius:0 8px 8px 0;color:#4a4536;font-style:italic;}
.entry-content hr{border:none;border-top:1px solid var(--border);margin:1.6em 0;}
.entry-content table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.95rem;}
.entry-content table th,.entry-content table td{border:1px solid var(--border);padding:8px 12px;text-align:left;vertical-align:top;}
.entry-content table th{background:var(--dark);color:#fff;font-weight:600;}
.entry-content table tr:nth-child(even) td{background:#faf9f6;}
.entry-content{overflow-x:auto;}
.entry-content iframe,.entry-content embed{max-width:100%;}

.read-more{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-weight:600;color:var(--green-dark);}
.read-more .arrow{display:inline-block;transition:transform var(--ease);}
.read-more:hover .arrow{transform:translateX(4px);}

.pagination{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:28px 0 8px;}
.pagination a,.pagination span{padding:9px 15px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;transition:background-color var(--ease),color var(--ease),border-color var(--ease);}
.pagination a:hover{background:var(--dark);color:#fff;border-color:var(--dark);text-decoration:none;}
.pagination .current{background:var(--dark);color:#fff;border-color:var(--dark);font-weight:700;}
.pagination .dots{border:none;background:none;padding:9px 4px;}

/* Sidebar */
.widget{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:20px;box-shadow:var(--shadow-sm);}
.widget-title{margin:0 0 16px;font-size:1.05rem;border-bottom:2px solid var(--gold);padding-bottom:10px;}

/* Termine: auf der Startseite mobil zwischen 1. und 2. Beitrag, auf dem
   Desktop weiterhin nur in der Seitenleiste – Duplikat je nach Breite ausblenden. */
.termine-mobile-insert{display:none;}
@media (max-width:900px){
	.termine-mobile-insert{display:block;}
	.widget--termine-desktop-only{display:none;}
}
.search-form{display:flex;gap:8px;}
.search-form input[type=search]{flex:1;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.95rem;transition:border-color var(--ease),box-shadow var(--ease);}
.search-form input[type=search]:focus{outline:none;border-color:var(--green-dark);box-shadow:0 0 0 3px rgba(31,92,50,.12);}
.search-form button{background:var(--dark);color:#fff;border:none;border-radius:var(--radius-sm);padding:0 16px;cursor:pointer;font-weight:600;transition:background-color var(--ease);}
.search-form button:hover{background:var(--dark-soft);}
.termin-admin-hint{background:#fff8e6;border:1px solid var(--gold);border-radius:8px;padding:10px 12px;font-size:.85rem;}
.empty-state{color:var(--muted);font-style:italic;padding:6px 0;}
.termin-list--full{max-height:none;}
.termin-list--full li{align-items:flex-start;}

.termin-list{list-style:none;margin:0;padding:0;}
.termin-list li{display:flex;gap:14px;padding:12px 4px;border-bottom:1px solid var(--border);border-radius:6px;transition:background-color var(--ease);}
.termin-list li:hover{background:#faf8f3;}
.termin-list li:last-child{border-bottom:none;}
.termin-date{flex:none;width:54px;text-align:center;background:linear-gradient(165deg,var(--gold),var(--gold-dark));color:#1a1a1a;border-radius:7px;padding:7px 4px;font-size:.75rem;line-height:1.2;font-weight:600;box-shadow:var(--shadow-sm);}
.termin-date strong{display:block;font-size:1.2rem;}
.termin-info a{font-weight:600;color:var(--dark);}
.termin-meta{color:var(--muted);font-size:.82rem;}

.whatsapp-cta{display:flex;align-items:center;justify-content:center;gap:9px;background:var(--whatsapp);color:#fff;text-align:center;padding:16px;border-radius:var(--radius);font-weight:700;box-shadow:0 4px 14px rgba(17,133,57,.3);transition:background-color var(--ease),box-shadow var(--ease),transform var(--ease);}
.whatsapp-cta svg{flex:none;}
.whatsapp-cta:hover{background:var(--whatsapp-dark);color:#fff;text-decoration:none;box-shadow:0 6px 18px rgba(17,133,57,.4);transform:translateY(-1px);}

/* Footer */
.site-footer{background:var(--dark);color:#e9e9e9;margin-top:36px;border-top:1px solid rgba(212,166,58,.55);}
.site-footer .container{padding:22px 20px;max-width:760px;}
.site-footer a{color:#f2d47a;}
.site-footer a:hover{color:#f8e3a3;}
.footer-main{text-align:center;}

table.spielbetrieb{width:100%;border-collapse:collapse;margin:1.2em 0;border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm);}
table.spielbetrieb th,table.spielbetrieb td{border:1px solid var(--border);padding:9px 12px;text-align:left;}
table.spielbetrieb th{background:var(--dark);color:#fff;font-weight:600;}
table.spielbetrieb tr:nth-child(even) td{background:#faf9f6;}

.sponsors-label{margin:0 0 12px;font-size:.8rem;color:#b8b8b8;}
.sponsors{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:nowrap;}
.sponsors img{max-height:46px;width:auto;max-width:100%;background:#fff;padding:5px 10px;border-radius:6px;transition:transform var(--ease),box-shadow var(--ease);}
.sponsors img:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.25);}
@media (max-width:600px){.sponsors{gap:8px;}.sponsors img{max-height:34px;padding:4px 6px;}}
@media (max-width:400px){.sponsors{gap:5px;}.sponsors img{max-height:26px;padding:3px 4px;}}
