/* Sidefolio — vertical sidebar layout (no hard-coded branding) */
:root{--bg:#fff;--text:#0f0f0f;--muted:#666;--link:#0f0f0f;--border:#e6e6e6;--maxw:1120px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--sidebar-w:280px;}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif;line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
.sr-only,.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:var(--space-4);top:var(--space-4);background:#000;color:#fff;padding:var(--space-2) var(--space-3);z-index:1000}
.layout{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100dvh}
.sidebar{border-right:1px solid var(--border);position:sticky;top:0;height:100dvh;background:#fff}
.sidebar-inner{display:flex;flex-direction:column;height:100%}
.site-header{padding:var(--space-6) var(--space-4) var(--space-4);border-bottom:1px solid var(--border)}
.branding{display:flex;align-items:center;gap:var(--space-3)}.logo img{width:48px;height:auto}
.site-title{font-weight:700;font-size:1.05rem;letter-spacing:.02em}.site-tagline{margin:0;color:var(--muted);font-size:.88rem}
.nav-toggle{display:none;margin-left:auto;background:none;border:0;cursor:pointer}.nav-toggle__bar{display:block;width:22px;height:2px;background:#111;margin:4px 0}
.site-nav{flex:1 1 auto;overflow:auto;padding:var(--space-4)}
.site-nav ul{list-style:none;margin:0;padding:0}
.site-nav li{margin-bottom:.5rem}
.site-nav>ul>li>a{font-weight:600;text-transform:uppercase;font-size:.85rem}
.site-nav a:hover{text-decoration:none;opacity:.75}
.site-nav ul ul.sub-menu{display:none;margin-left:1rem;border-left:1px solid var(--border);padding-left:.75rem}
.site-nav li.open>ul.sub-menu{display:block}
.site-nav>ul>li>a[href="#"]{cursor:pointer}
.sidebar-footer{border-top:1px solid var(--border);padding:var(--space-4)}
.sidebar-footer .footer-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:.75rem;margin:0;padding:0}
.sidebar-footer .footer-nav a{font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.sidebar-footer .copyright{margin:.75rem 0 0;color:var(--muted);font-size:.86rem}
.site-content{padding:var(--space-6)}
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--space-2)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-4);padding-block:var(--space-6)}
.grid-item{grid-column:span 6;position:relative}
@media (min-width:700px){.grid-item{grid-column:span 4}}
@media (min-width:1100px){.grid-item{grid-column:span 3}}
.grid-figure{position:relative;overflow:hidden;border:1px solid var(--border);background:#fafafa}
.grid-thumb{width:100%;height:auto;display:block;transition:transform .5s ease}
.grid-link:hover .grid-thumb{transform:scale(1.02)}
.grid-caption{position:absolute;inset:auto 0 0 0;display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:.85rem;color:#111;background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.95) 60%);opacity:0;transform:translateY(6px);transition:.2s ease}
.grid-link:hover .grid-caption{opacity:1;transform:translateY(0)}
.grid-title{font-weight:600}.grid-placeholder{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;color:var(--muted)}
.single,.page{padding-block:var(--space-6)}
.single-title,.page-title{font-family:"Playfair Display",Georgia,serif;font-size:2rem;margin:0 0 var(--space-4)}
.single-hero{margin:0 0 var(--space-5)}.single-content{font-size:1.06rem}
.search-form{display:flex;gap:var(--space-2)}.search-field{flex:1;padding:.6rem .8rem;border:1px solid var(--border);border-radius:6px}
.search-submit{padding:.6rem .9rem;border:1px solid var(--border);background:#fff;border-radius:6px;cursor:pointer}.search-submit:hover{background:#f6f6f6}
@media (max-width:900px){
  .layout{grid-template-columns:1fr}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(86vw,340px);transform:translateX(-100%);transition:transform .25s ease;z-index:1000;box-shadow:0 10px 30px rgba(0,0,0,.12)}
  .sidebar.is-open{transform:translateX(0)}
  .site-header{display:flex;align-items:center;gap:var(--space-3)}
  .nav-toggle{display:block}
  .site-content{padding-top:calc(var(--space-6) + 8px)}
}
