/*
Theme Name: Odeso
Theme URI: https://odeso.nl
Author: Odeso / Feeling Content
Author URI: https://odeso.nl
Description: Schoon, snel en eigen magazine-thema voor Odeso. Vervangt het vorige (Soledad) thema en blijft volledig compatibel met Elementor. Lettertypes Work Sans en Source Sans Pro, accentkleur #304ffe.
Version: 1.0.2
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: odeso
Tags: blog, news, magazine, two-columns, right-sidebar, custom-logo, custom-menu, featured-images, translation-ready
*/

/* ===== Design tokens ===== */
:root{
  --accent:#304ffe;
  --accent-dark:#2438c4;
  --ink:#1c1c1c;
  --body:#313131;
  --muted:#777;
  --line:#e7e7e7;
  --bg:#ffffff;
  --soft:#f6f7f9;
  --maxw:1200px;
  --radius:8px;
  --font-head:'Work Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --font-body:'Source Sans Pro',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--bg);color:var(--body);
  font-family:var(--font-body);font-size:18px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--accent);text-decoration:none;}
a:hover{color:var(--accent-dark);}
h1,h2,h3,h4,h5,h6{font-family:var(--font-head);color:var(--ink);line-height:1.25;font-weight:700;margin:0 0 .5em;}
h1{font-size:2.2rem;}
h2{font-size:1.6rem;}
h3{font-size:1.25rem;}
p{margin:0 0 1.2em;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 20px;}

/* ===== Header ===== */
.site-header{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:50;}
.site-header .container{display:flex;align-items:center;justify-content:space-between;min-height:78px;gap:20px;}
.site-branding .site-title{font-family:var(--font-head);font-weight:800;font-size:1.7rem;margin:0;letter-spacing:-.5px;}
.site-branding .site-title a{color:var(--ink);}
.site-branding img{max-height:46px;width:auto;}
.site-description{margin:0;font-size:.8rem;color:var(--muted);}

/* Nav */
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:26px;}
.main-nav a{color:var(--ink);font-family:var(--font-head);font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:.3px;padding:6px 0;position:relative;}
.main-nav a:hover{color:var(--accent);}
.main-nav .current-menu-item > a{color:var(--accent);}
.main-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--accent);transition:width .2s;}
.main-nav a:hover::after,.main-nav .current-menu-item>a::after{width:100%;}
.menu-toggle{display:none;background:none;border:0;font-size:1.6rem;cursor:pointer;color:var(--ink);}

/* ===== Layout ===== */
.site-main{padding:36px 0 60px;}
.content-area{display:grid;grid-template-columns:1fr 320px;gap:46px;}
.content-area.full{grid-template-columns:1fr;}
@media(max-width:980px){.content-area{grid-template-columns:1fr;}}

/* ===== Category labels ===== */
.cat-label{display:inline-block;font-family:var(--font-head);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.6px;color:#fff;background:var(--accent);padding:4px 10px;border-radius:4px;}
.cat-label:hover{background:var(--accent-dark);color:#fff;}

/* ===== Post cards (archive/blog) ===== */
.posts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:34px;}
@media(max-width:680px){.posts-grid{grid-template-columns:1fr;}}
.card{background:#fff;}
.card .thumb{display:block;overflow:hidden;border-radius:var(--radius);aspect-ratio:16/10;background:var(--soft);}
.card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.card:hover .thumb img{transform:scale(1.05);}
.card .card-body{padding:14px 0;}
.card h2{font-size:1.3rem;margin:10px 0 8px;}
.card h2 a{color:var(--ink);}
.card h2 a:hover{color:var(--accent);}
.card .excerpt{color:var(--body);font-size:.98rem;margin:0 0 10px;}
.entry-meta{font-size:.82rem;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.entry-meta .by-author{font-weight:600;color:var(--ink);}
.entry-meta .avatar{border-radius:50%;width:26px;height:26px;}

/* Featured / first post on blog */
.lead-post .thumb{aspect-ratio:16/8;}
.lead-post h2{font-size:1.9rem;}

/* ===== Single post ===== */
.single-header{max-width:820px;margin:0 auto 26px;text-align:center;}
.single-header .cat-label{margin-bottom:14px;}
.single-header h1{font-size:2.5rem;margin:.2em 0;}
.single-header .entry-meta{justify-content:center;margin-top:14px;}
.featured-wrap{margin:0 auto 30px;max-width:980px;}
.featured-wrap img{width:100%;border-radius:var(--radius);}
.entry-content{max-width:760px;margin:0 auto;font-size:1.12rem;}
/* Elementor / full-width content (homepage en Elementor-pagina's): geen breedtebeperking */
.entry-content--full{max-width:none;margin:0;font-size:inherit;}
.home .site-main,.elementor-page .site-main{padding-top:0;padding-bottom:0;}
.entry-content h2{margin-top:1.6em;}
.entry-content h3{margin-top:1.3em;}
.entry-content ul,.entry-content ol{margin:0 0 1.2em 1.2em;}
.entry-content li{margin-bottom:.5em;}
.entry-content img{border-radius:var(--radius);margin:1.5em auto;}
.entry-content a{text-decoration:underline;text-underline-offset:2px;}
.entry-content table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:1rem;}
.entry-content th,.entry-content td{border:1px solid var(--line);padding:10px 12px;text-align:left;}
.entry-content thead th{background:var(--soft);}
.entry-content blockquote{border-left:4px solid var(--accent);margin:1.5em 0;padding:.4em 1.2em;color:var(--ink);font-style:italic;}

/* ===== Author box ===== */
.author-box{max-width:760px;margin:40px auto 0;display:flex;gap:20px;align-items:flex-start;background:var(--soft);border-radius:var(--radius);padding:24px;}
.author-box img{width:84px;height:84px;border-radius:50%;flex:0 0 auto;object-fit:cover;}
.author-box .ab-name{font-family:var(--font-head);font-weight:700;font-size:1.15rem;color:var(--ink);margin:0 0 4px;}
.author-box .ab-role{color:var(--accent);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.4px;margin:0 0 8px;}
.author-box p{margin:0;font-size:.98rem;}

/* ===== About Susie (homepage) ===== */
.about-susie{background:var(--soft);border-radius:12px;padding:40px;margin:50px 0;display:flex;gap:36px;align-items:center;}
.about-susie img{width:200px;height:260px;object-fit:cover;border-radius:12px;flex:0 0 auto;}
.about-susie .as-kicker{color:var(--accent);font-family:var(--font-head);font-weight:700;text-transform:uppercase;letter-spacing:.6px;font-size:.8rem;margin:0 0 8px;}
.about-susie h2{font-size:1.8rem;margin:0 0 12px;}
.about-susie p{font-size:1.05rem;}
@media(max-width:680px){.about-susie{flex-direction:column;text-align:center;padding:28px;}.about-susie img{width:160px;height:200px;}}

/* ===== Sidebar ===== */
.sidebar .widget{margin-bottom:34px;}
.sidebar .widget-title{font-family:var(--font-head);font-size:1.05rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--accent);padding-bottom:8px;margin-bottom:16px;display:inline-block;}
.sidebar ul{list-style:none;margin:0;padding:0;}
.sidebar li{padding:8px 0;border-bottom:1px solid var(--line);font-size:.96rem;}
.mini-post{display:flex;gap:12px;align-items:center;}
.mini-post img{width:64px;height:64px;border-radius:6px;object-fit:cover;flex:0 0 auto;}
.mini-post a{color:var(--ink);font-family:var(--font-head);font-weight:600;font-size:.92rem;line-height:1.3;}
.mini-post a:hover{color:var(--accent);}

/* ===== Pagination ===== */
.pagination{display:flex;gap:8px;justify-content:center;margin-top:46px;flex-wrap:wrap;}
.pagination .page-numbers{display:inline-block;padding:9px 15px;border:1px solid var(--line);border-radius:6px;color:var(--ink);font-family:var(--font-head);font-weight:600;}
.pagination .page-numbers.current{background:var(--accent);color:#fff;border-color:var(--accent);}
.pagination a.page-numbers:hover{border-color:var(--accent);color:var(--accent);}

/* ===== Footer ===== */
.site-footer{background:#14161a;color:#cfd3da;padding:50px 0 26px;margin-top:40px;}
.site-footer a{color:#fff;}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
@media(max-width:780px){.footer-cols{grid-template-columns:1fr;}}
.site-footer .widget-title{color:#fff;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.5px;font-size:1rem;margin-bottom:14px;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{padding:5px 0;border-bottom:1px solid #262a31;}
.footer-bottom{border-top:1px solid #262a31;margin-top:34px;padding-top:18px;font-size:.85rem;color:#8b919b;text-align:center;}

/* ===== Mobile nav ===== */
@media(max-width:860px){
  .menu-toggle{display:block;}
  .main-nav{position:absolute;top:78px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);display:none;}
  .main-nav.open{display:block;}
  .main-nav ul{flex-direction:column;gap:0;padding:10px 20px;}
  .main-nav li{border-bottom:1px solid var(--line);}
  .main-nav a{display:block;padding:12px 0;}
}

/* Accessibility */
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);}
.skip-link{position:absolute;left:-9999px;}
.skip-link:focus{left:10px;top:10px;background:#fff;padding:8px 14px;z-index:100;}
