/* ============================================
   FORMS
   ============================================ */
input, textarea, select { font-family: inherit; font-size: inherit; padding: 0.75em 1em; border: 1px solid var(--pp-border); border-radius: var(--pp-border-radius); background: var(--pp-secondary-bg); color: var(--pp-text-primary); transition: border-color var(--pp-transition-fast), box-shadow var(--pp-transition-fast); }
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--pp-accent); box-shadow: 0 0 0 3px var(--pp-accent-light); }
textarea { min-height: 150px; resize: vertical; }
label { display: block; margin-bottom: 0.5em; font-weight: 600; color: var(--pp-text-secondary); }
button, .button, input[type="submit"], input[type="button"] { display: inline-block; padding: 0.75em 1.5em; font-family: inherit; font-size: var(--pp-fs-base); font-weight: 600; color: var(--pp-primary-bg); background: var(--pp-accent); border: none; border-radius: var(--pp-border-radius); cursor: pointer; transition: background var(--pp-transition-fast), transform var(--pp-transition-fast); }
button:hover, .button:hover, input[type="submit"]:hover, input[type="button"]:hover { background: var(--pp-accent-hover); color: var(--pp-primary-bg); text-decoration: none; transform: translateY(-1px); }
button:active, .button:active { transform: translateY(0); }

/* ============================================
   LAYOUT
   ============================================ */
.site { display: flex; flex-direction: column; min-height: 100vh; }
.site-content { flex: 1; }
.container { width: 100%; max-width: var(--pp-container-width); margin: 0 auto; padding: 0 var(--pp-spacing); }

/* Sidebar Layouts */
.has-left-sidebar .site-content .container { display: grid; grid-template-columns: var(--pp-sidebar-width) 1fr; gap: var(--pp-spacing); }
.has-right-sidebar .site-content .container { display: grid; grid-template-columns: 1fr var(--pp-sidebar-width); gap: var(--pp-spacing); }
.has-both-sidebars .site-content .container { display: grid; grid-template-columns: var(--pp-sidebar-width) 1fr var(--pp-sidebar-width); gap: var(--pp-spacing); }
.has-sidebar .content-area { max-width: var(--pp-content-width); }
.has-left-sidebar .content-area { grid-column: 2; grid-row: 1; }
.has-right-sidebar .content-area { grid-column: 1; grid-row: 1; }
.has-both-sidebars .content-area { grid-column: 2; }
.sidebar { background: var(--pp-secondary-bg); padding: var(--pp-spacing); border-radius: var(--pp-border-radius); height: fit-content; }
.sidebar-left { grid-column: 1; grid-row: 1; }
.sidebar-right { grid-column: 3; grid-row: 1; }

/* ============================================
   HEADER
   ============================================ */
.site-header { background: var(--pp-primary-bg); border-bottom: 1px solid var(--pp-border); padding: var(--pp-spacing) 0; position: sticky; top: 0; z-index: 1000; }
.site-header .container { display: flex; align-items: center; justify-content: space-between; gap: var(--pp-spacing); }
.site-branding { display: flex; align-items: center; gap: 1rem; }
.site-logo img { max-height: 60px; width: auto; }
.site-title { font-family: var(--pp-font-heading); font-size: var(--pp-fs-2xl); font-weight: 700; margin: 0; line-height: 1.2; }
.site-title a { color: var(--pp-text-primary); }
.site-title a:hover { color: var(--pp-accent); text-decoration: none; }
.site-description { font-size: var(--pp-fs-sm); color: var(--pp-text-muted); margin: 0.25em 0 0; }
.header-widget-area { display: flex; align-items: center; gap: 1rem; }

/* ============================================
   NAVIGATION
   ============================================ */
.main-navigation { flex: 1; display: flex; justify-content: flex-end; }
.main-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.5rem; }
.main-navigation li { position: relative; margin: 0; }
.main-navigation a { display: block; padding: 0.75em 1.25em; color: var(--pp-text-secondary); font-weight: 500; border-radius: var(--pp-border-radius); transition: color var(--pp-transition-fast), background var(--pp-transition-fast); }
.main-navigation a:hover, .main-navigation a:focus { color: var(--pp-accent); background: var(--pp-secondary-bg); text-decoration: none; }
.main-navigation .current-menu-item > a, .main-navigation .current-menu-ancestor > a { color: var(--pp-accent); background: var(--pp-secondary-bg); }
.main-navigation ul ul { display: none; position: absolute; top: 100%; left: 0; min-width: 220px; background: var(--pp-secondary-bg); border: 1px solid var(--pp-border); border-radius: var(--pp-border-radius); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); flex-direction: column; gap: 0; z-index: 1001; }
.main-navigation ul li:hover > ul, .main-navigation ul li:focus-within > ul { display: flex; }
.main-navigation ul ul a { padding: 0.75em 1.25em; border-bottom: 1px solid var(--pp-border); }
.main-navigation ul ul li:last-child a { border-bottom: none; }
.main-navigation ul ul ul { top: 0; left: 100%; }
.menu-toggle { display: none; padding: 0.5em; background: none; border: none; color: var(--pp-text-primary); cursor: pointer; }
.menu-toggle svg { width: 28px; height: 28px; }