/* Masterblog 3.0 — structure/motion from design-reference; colors from old verbouwingaanhuis.nl */
/* Tokens injected via lbds_brand_css_variables() */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-sans);font-weight:700;margin:0;letter-spacing:var(--ls-tight);text-wrap:balance}
p{margin:0}
img{max-width:100%;height:auto;display:block}
ul{margin:0;padding:0}
button{font-family:inherit}
.lbds-skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.lbds-skip:focus{left:16px;top:16px;width:auto;height:auto;z-index:100;padding:12px 18px;background:var(--brand);color:#fff;border-radius:var(--radius-pill)}

.mb-root{min-height:100vh}
.mb-page{max-width:1200px;margin:0 auto;padding:0 24px}

@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes popIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes floatSoft{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

.reveal{opacity:0;transform:translateY(14px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ——— Chrome ——— */
.site-chrome{position:sticky;top:0;z-index:50}
.topbar{background:var(--topbar);color:rgba(255,255,255,.82);font-size:12.5px;font-weight:600;padding:8px 0}
.topbar .mb-page{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.topbar a{color:rgba(255,255,255,.9);transition:color var(--dur-fast) var(--ease-out)}
.topbar a:hover{color:#fff}
.topbar-util{display:flex;align-items:center;gap:8px}
.topbar-sep{opacity:.5}

.site-header{background:rgba(255,255,255,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);transition:box-shadow var(--dur-base) var(--ease-out)}
.site-chrome.is-scrolled .site-header{box-shadow:var(--shadow-sm)}
.site-header-in{padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{font-size:21px;font-weight:700;letter-spacing:var(--ls-tight);white-space:nowrap}
.logo span{color:var(--brand)}
.logo img{max-height:40px;width:auto}
.primary-nav{display:flex;gap:4px;list-style:none;margin:0;padding:0;font-size:14.5px;font-weight:600;flex-wrap:wrap}
.primary-nav a{display:block;padding:8px 14px;border-radius:var(--radius-pill);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.primary-nav a:hover,.primary-nav .current-menu-item>a{background:var(--surface-sunken)}
.header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}
.header-actions svg{width:19px;height:19px;stroke:var(--text-strong);fill:none;stroke-width:2;stroke-linecap:round;transition:stroke var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-spring)}
.header-actions a:hover svg{stroke:var(--brand);transform:scale(1.1)}
.btn-cta{display:inline-flex;align-items:center;height:40px;padding:0 18px;font-size:14px;font-weight:700;border-radius:var(--radius-pill);background:var(--brand);color:#fff;transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-spring)}
.btn-cta:hover{background:var(--brand-hover);box-shadow:0 10px 24px color-mix(in srgb,var(--brand) 35%,transparent);transform:translateY(-1px)}
.btn-cta:active{transform:scale(.96)}

/* ——— Buttons ——— */
.btn,.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;height:50px;padding:0 26px;border-radius:var(--radius-pill);font-size:16px;font-weight:700;border:2px solid transparent;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-spring)}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-hover);box-shadow:0 12px 28px color-mix(in srgb,var(--brand) 38%,transparent);transform:translateY(-2px)}
.btn-primary:active{transform:scale(.97)}
.btn-secondary{background:transparent;color:var(--brand);border-color:var(--brand)}
.btn-secondary:hover{background:var(--brand-subtle);transform:translateY(-2px)}
.btn-ghost{background:var(--btn-secondary);color:#fff;border:none;height:44px;padding:0 22px;border-radius:var(--radius-sm);font-weight:700;font-size:14px;display:inline-flex;align-items:center;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-spring)}
.btn-ghost:hover{background:color-mix(in srgb,var(--btn-secondary) 85%,black);transform:translateY(-1px)}

/* ——— Badges / meta ——— */
.kicker{font-size:11px;font-weight:700;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted)}
.badge-brand,.badge-cat,.tag-accent{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:var(--ls-wide);text-transform:uppercase;padding:6px 12px;border-radius:var(--radius-pill);background:var(--brand-subtle);color:var(--brand-active);width:fit-content}
.badge-brand{font-size:11.5px;padding:7px 14px}
.badge-brand svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round}
.meta{font-size:12.5px;font-weight:600;color:var(--text-muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.meta .dot{width:3px;height:3px;border-radius:50%;background:var(--text-faint);flex-shrink:0}

.ph{position:relative;background:linear-gradient(135deg,var(--ink-50),var(--ink-100));overflow:hidden;flex-shrink:0;border-radius:var(--radius-lg)}
.ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-slow) var(--ease-out)}
.ph .ph-in,.ph>svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:32%;transition:transform var(--dur-slow) var(--ease-out)}
.ph>svg,.ph .ph-in svg{display:block;width:100%;stroke:var(--ink-300);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* ——— Home hero ——— */
.hero{padding:56px 0 48px}
.hero-in{max-width:760px}
.hero h1{font-size:clamp(36px,5vw,52px);line-height:1.05;margin-top:18px;color:var(--text-strong)}
.hero h1 span{color:var(--brand)}
.hero p.dek{font-size:18px;color:var(--text-muted);font-weight:500;line-height:1.6;margin-top:18px;max-width:540px}
.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.stat-row{display:flex;gap:40px;margin-top:52px;flex-wrap:wrap}
.stat b{display:block;font-weight:700;font-size:36px;letter-spacing:var(--ls-tight);color:var(--text-strong)}
.stat span{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide)}

.featured{margin-top:44px;display:grid;grid-template-columns:1fr 1.3fr;gap:0;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-md);transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);background:var(--surface-raised);color:inherit}
.featured:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.featured .ph{border-radius:0;aspect-ratio:4/3;min-height:220px}
.featured:hover .ph img,.featured:hover .ph .ph-in,.featured:hover .ph>svg{transform:translate(-50%,-50%) scale(1.08)}
.featured:hover .ph img{transform:scale(1.08)}
.featured-body{padding:32px 36px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.featured-body h2{font-size:26px;line-height:1.2}

/* ——— Sections / cards ——— */
.cat-strip{display:flex;gap:6px;padding:8px;margin:32px 0 24px;background:var(--surface-sunken);border-radius:var(--radius-pill);width:fit-content;max-width:100%;overflow-x:auto}
.cat-strip button,.cat-strip a{font:inherit;border:none;cursor:pointer;font-size:13.5px;font-weight:700;padding:10px 18px;border-radius:var(--radius-pill);color:var(--text-muted);background:transparent;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);display:inline-flex}
.cat-strip button.active,.cat-strip a.active{background:var(--brand);color:#fff}
.cat-strip button:not(.active):hover,.cat-strip a:not(.active):hover{color:var(--text-strong)}

.section{padding:8px 0 48px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.section-title{font-size:24px;color:var(--text-strong)}
.section-link{font-size:13.5px;font-weight:700;color:var(--brand)}
.section-link:hover{color:var(--brand-hover)}

.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.card{display:flex;flex-direction:column;gap:12px;border-radius:var(--radius-lg);padding:14px;background:var(--surface-raised);transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.card:hover .ph img{transform:scale(1.06)}
.card:hover .ph .ph-in,.card:hover .ph>svg{transform:translate(-50%,-50%) scale(1.1)}
.card .ph{aspect-ratio:4/3}
.card h3{font-size:18px;line-height:1.3;transition:color var(--dur-fast) var(--ease-out)}
.card:hover h3{color:var(--brand)}
.card p.excerpt{font-size:13.5px;color:var(--text-muted);font-weight:500;line-height:1.55}
.card.hidden{display:none}

.split{display:grid;grid-template-columns:1.4fr 1fr;gap:48px}
.list-row{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--border-subtle);transition:padding var(--dur-fast) var(--ease-out);color:inherit}
.list-row:first-child{padding-top:0}
.list-row:hover{padding-left:6px}
.list-row .ph{width:104px;height:76px;border-radius:var(--radius-md)}
.list-row h3{font-size:15.5px;transition:color var(--dur-fast) var(--ease-out)}
.list-row:hover h3{color:var(--brand)}

.sidebar-block{margin-bottom:32px;background:var(--surface-raised);border-radius:var(--radius-lg);padding:22px}
.sidebar-title{font-size:11px;font-weight:700;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}
.popular-row{display:flex;gap:14px;align-items:baseline;padding:11px 0;transition:transform var(--dur-fast) var(--ease-out)}
.popular-row:hover{transform:translateX(4px)}
.popular-row .num{font-weight:700;font-size:19px;color:var(--brand);width:22px;flex-shrink:0}
.popular-row a{font-size:14.5px;font-weight:600;line-height:1.4}

/* ——— Footer ——— */
.site-footer{background:var(--topbar);color:var(--ink-100);padding:56px 0 28px;margin-top:32px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px}
.footer-col h4{font-size:12px;font-weight:700;letter-spacing:var(--ls-caps);text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:14px}
.footer-col a{display:block;color:rgba(255,255,255,.88);font-size:14px;padding:5px 0;font-weight:500;transition:color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.footer-col a:hover{color:#fff;transform:translateX(3px)}
.footer-col p{color:rgba(255,255,255,.65);font-size:13.5px;line-height:1.6;font-weight:500}
.footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.5)}

/* ——— Article ——— */
.progress-track{position:fixed;top:0;left:0;height:3px;width:100%;background:transparent;z-index:60;pointer-events:none}
.progress-bar{height:100%;width:0%;background:var(--brand);transition:width 80ms linear}

.crumbs{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--text-muted);padding:20px 0;flex-wrap:wrap}
.crumbs a:hover{color:var(--brand)}
.crumbs .sep{color:var(--text-faint)}
.crumbs .current{color:var(--text-strong)}

.article-head{max-width:760px;padding-bottom:32px}
.article-head h1{font-size:clamp(28px,4vw,42px);line-height:1.1;margin-top:16px;color:var(--text-strong)}
.dek{font-size:18px;color:var(--text-muted);font-weight:500;line-height:1.55;margin-top:16px}
.byline{display:flex;align-items:center;gap:12px;margin-top:28px;padding-top:24px;border-top:1px solid var(--border-subtle)}
.avatar{width:44px;height:44px;border-radius:50%;background:var(--surface-sunken);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:var(--text-muted)}
.byline-name{font-size:14.5px;font-weight:700}
.byline-meta{font-size:12.5px;color:var(--text-muted);font-weight:600}

.hero-img{max-width:1000px;margin:0 auto;aspect-ratio:16/8;background:linear-gradient(135deg,var(--ink-50),var(--ink-100));position:relative;overflow:hidden;border-radius:var(--radius-xl)}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero-img>svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16%;stroke:var(--ink-300);fill:none;stroke-width:1.2}

.article-body-wrap{display:grid;grid-template-columns:200px 1fr 240px;gap:48px;padding:48px 0 72px;align-items:start}
.toc{position:sticky;top:96px;background:var(--surface-raised);border-radius:var(--radius-lg);padding:20px 18px}
.toc-title{font-size:11px;font-weight:700;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted);margin-bottom:14px}
.toc ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.toc li{font-size:13.5px;font-weight:600;line-height:1.4;color:var(--text-muted);transition:color var(--dur-fast) var(--ease-out)}
.toc li:hover,.toc li.active{color:var(--brand)}

.prose{max-width:680px;font-size:18px;line-height:1.72;color:var(--text-body)}
.prose>*+*{margin-top:22px}
.prose h2{font-size:28px;margin-top:48px;color:var(--text-strong)}
.prose h3{font-size:21px;font-weight:600;margin-top:36px}
.prose blockquote{font-weight:600;font-size:24px;line-height:1.4;color:var(--text-strong);background:var(--brand-subtle);border-radius:var(--radius-lg);padding:24px 28px;margin:36px 0}
.prose ul,.prose ol{padding-left:22px;display:flex;flex-direction:column;gap:10px}
.prose a{position:relative;color:var(--brand);font-weight:600;background-image:linear-gradient(var(--brand),var(--brand));background-size:0% 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--dur-base) var(--ease-out);padding-bottom:2px}
.prose a:hover{background-size:100% 2px}
.prose img{border-radius:var(--radius-lg)}
.callout{background:var(--brand-subtle);border-radius:var(--radius-lg);padding:20px 22px;margin-top:36px}
.callout-label{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--brand-active);margin-bottom:8px}

.faq{display:flex;flex-direction:column;margin-top:36px}
.faq-item{border-bottom:1px solid var(--border-subtle)}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:15px;font-weight:700;cursor:pointer;padding:16px 0;user-select:none;background:none;border:none;width:100%;text-align:left;color:var(--text-strong);font-family:inherit}
.faq-q svg{width:16px;height:16px;stroke:var(--text-muted);fill:none;stroke-width:2;flex-shrink:0;transition:transform var(--dur-base) var(--ease-out)}
.faq-item.open .faq-q svg,.faq-item.is-open .faq-q svg{transform:rotate(180deg);stroke:var(--brand)}
.faq-a{font-size:14.5px;color:var(--text-muted);font-weight:500;line-height:1.6;max-height:0;opacity:0;overflow:hidden;transition:max-height var(--dur-base) var(--ease-out),opacity var(--dur-fast) var(--ease-out),margin-bottom var(--dur-base) var(--ease-out)}
.faq-item.open .faq-a,.faq-item.is-open .faq-a{max-height:480px;opacity:1;margin-bottom:16px}

.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:1000px;margin:0 auto;padding:8px 0 32px}
.pn-item{background:var(--surface-raised);border-radius:var(--radius-lg);padding:22px 28px;display:flex;flex-direction:column;gap:6px;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}
.pn-item:hover{background:var(--brand-subtle);transform:translateY(-2px)}
.pn-item.next{text-align:right;align-items:flex-end}
.pn-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-muted)}
.pn-label svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.pn-title{font-weight:700;font-size:17px}

.share-rail{display:flex;flex-direction:column;gap:10px;position:sticky;top:96px}
.share-icon{width:38px;height:38px;border-radius:50%;background:var(--surface-raised);display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-spring)}
.share-icon:hover{background:var(--brand-subtle);transform:scale(1.08) translateY(-2px)}
.share-icon svg{width:16px;height:16px;stroke:var(--text-strong);fill:none;stroke-width:2;stroke-linecap:round}
.author-card{background:var(--surface-raised);border-radius:var(--radius-lg);padding:22px;margin-top:32px}
.author-card .byline{margin:0;padding:0;border:none}
.author-card p{font-size:13px;color:var(--text-muted);font-weight:500;line-height:1.55;margin-top:12px}

.related-section{max-width:1000px;margin:0 auto;padding:56px 24px;border-top:1px solid var(--border-subtle)}
.related-section .section-title{font-size:26px;margin-bottom:28px}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}

/* ——— Category / archive ——— */
.cat-head{padding:8px 0 28px;max-width:720px}
.cat-head h1{font-size:clamp(32px,4vw,44px);margin-top:10px;color:var(--text-strong)}
.cat-head p{margin-top:14px;font-size:17px;color:var(--text-muted);font-weight:500;line-height:1.55}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;font-size:13px;font-weight:700;padding:8px 14px;border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text-muted);border:1px solid var(--border-subtle);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.chip.active,.chip:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
.sort{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--text-muted)}
.sort select{font:inherit;font-weight:700;padding:10px 14px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--surface-raised);color:var(--text-strong);cursor:pointer}

.pagination{display:flex;align-items:center;justify-content:center;gap:8px;padding:40px 0 56px;flex-wrap:wrap}
.page-btn,.page-arrow{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:40px;height:40px;padding:0 14px;border-radius:var(--radius-pill);font-size:14px;font-weight:700;background:var(--surface-raised);color:var(--text-muted);border:1px solid var(--border-subtle);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.page-btn.active,.page-btn:hover,.page-arrow:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
.page-arrow.is-disabled,.page-arrow.disabled{opacity:.4;pointer-events:none}
.page-arrow svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}

/* ——— Author ——— */
.profile{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;padding:40px 0 24px;background:var(--surface-raised);border-radius:var(--radius-xl);padding:36px;margin:24px 0}
.avatar-lg{width:96px;height:96px;border-radius:50%;background:var(--brand-subtle);display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700;color:var(--brand-active);transition:transform var(--dur-base) var(--ease-spring)}
.avatar-lg:hover{transform:scale(1.05) rotate(-3deg)}
.profile h1{font-size:36px;margin-top:8px}
.profile .role{font-size:14px;font-weight:600;color:var(--brand);margin-top:6px}
.profile .bio{margin-top:14px;font-size:15.5px;color:var(--text-muted);font-weight:500;line-height:1.6;max-width:560px}
.profile .stat-row{margin-top:24px}

/* ——— Search / utility ——— */
.search-head{margin:8px 0 20px}
.search-head h1{font-size:36px;margin-top:10px}
.search-bar{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.search-bar input{flex:1;min-width:200px;font:inherit;font-size:15px;padding:0 20px;height:52px;border-radius:var(--radius-pill);border:2px solid var(--border-subtle);background:var(--surface-raised)}
.search-bar input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-subtle)}
.search-bar button{font:inherit;font-weight:700;height:52px;padding:0 26px;border-radius:var(--radius-pill);background:var(--brand);color:#fff;border:none;cursor:pointer}
.search-bar button:hover{background:var(--brand-hover)}
.result-count{font-size:13.5px;font-weight:600;color:var(--text-muted);margin-bottom:16px}
.result-row{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--border-subtle);transition:padding var(--dur-fast) var(--ease-out)}
.result-row:hover{padding-left:6px}
.result-row .ph{width:120px;height:88px;border-radius:var(--radius-md)}
.result-row h3{font-size:17px;transition:color var(--dur-fast) var(--ease-out)}
.result-row:hover h3{color:var(--brand)}

.empty{text-align:center;padding:80px 24px 100px;max-width:480px;margin:0 auto}
.empty .code{font-size:72px;font-weight:700;letter-spacing:var(--ls-tight);color:var(--brand);animation:floatSoft 4s ease-in-out infinite}
.empty h2{margin-top:16px;font-size:28px}
.empty p{margin:14px 0 28px;color:var(--text-muted);font-weight:500;line-height:1.55}

/* ——— Business template ——— */
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:32px 0}
.service{background:var(--surface-raised);border-radius:var(--radius-lg);padding:28px;transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}
.service:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.service .icon{width:48px;height:48px;border-radius:var(--radius-md);background:var(--brand-subtle);display:flex;align-items:center;justify-content:center;margin-bottom:16px;transition:transform var(--dur-base) var(--ease-spring)}
.service:hover .icon{transform:scale(1.1) rotate(-4deg)}
.service h3{font-size:18px;margin-bottom:8px}
.service p{font-size:14.5px;color:var(--text-muted);font-weight:500;line-height:1.55}
.testimonial-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:32px 0}
.testimonial{background:var(--surface-raised);border-radius:var(--radius-lg);padding:28px;transition:box-shadow var(--dur-base) var(--ease-out)}
.testimonial:hover{box-shadow:var(--shadow-md)}
.testimonial .stars{color:var(--brand);letter-spacing:2px;margin-bottom:12px}
.t-name{font-weight:700;margin-top:16px;font-size:14px}
.t-role{font-size:12.5px;color:var(--text-muted);font-weight:600}
.split-cta{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;background:var(--brand);color:#fff;border-radius:var(--radius-xl);padding:48px;margin:40px 0}
.split-cta h2{color:#fff;font-size:32px}
.split-cta p{color:rgba(255,255,255,.8);margin-top:12px;font-weight:500;line-height:1.55}
.split-cta .btn-primary{background:#fff;color:var(--brand)}
.info-list{display:flex;flex-direction:column;gap:12px}
.info-row{display:flex;gap:12px;align-items:flex-start;transition:transform var(--dur-fast) var(--ease-out)}
.info-row:hover{transform:translateX(4px)}
.contact-block{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:40px 0 64px}
.contact-info h2{font-size:28px;margin-bottom:16px}

/* ——— Directory ——— */
.dir-head{padding:40px 0 24px;max-width:640px}
.dir-head h1{font-size:42px;margin-top:10px}
.dir-head p{margin-top:14px;color:var(--text-muted);font-weight:500;line-height:1.55}
.az-nav{position:sticky;top:88px;z-index:20;display:flex;flex-wrap:wrap;gap:6px;padding:12px 0;background:var(--surface-page);margin-bottom:24px}
.az-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font-size:13px;font-weight:700;background:var(--surface-raised);color:var(--text-muted);border:1px solid var(--border-subtle);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-spring)}
.az-btn:hover,.az-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.az-btn.active:hover{transform:scale(1.12)}
.az-btn.disabled,.az-btn[aria-disabled="true"]{opacity:.35;pointer-events:none}
.az-list{display:flex;flex-direction:column;gap:32px;padding-bottom:64px}
.az-row{scroll-margin-top:120px}
.az-letter{font-size:28px;font-weight:700;color:var(--brand);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}
.az-items{display:flex;flex-direction:column}
.az-item{display:block;padding:12px 0;font-size:16px;font-weight:600;border-bottom:1px solid var(--border-subtle);transition:padding var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
.az-item:hover{padding-left:8px;color:var(--brand);background:var(--brand-subtle)}

/* ——— Responsive ——— */
@media (max-width:960px){
  .primary-nav{display:none}
  .featured{grid-template-columns:1fr}
  .cards-grid,.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split,.article-body-wrap,.footer-grid,.services-grid,.testimonial-row,.split-cta,.contact-block{grid-template-columns:1fr}
  .toc,.share-rail{position:static}
  .article-body-wrap{gap:28px}
  .hero h1{font-size:40px}
  .profile{grid-template-columns:1fr;text-align:center}
  .avatar-lg{margin:0 auto}
}
@media (max-width:640px){
  .mb-page{padding:0 16px}
  .cards-grid,.related-grid,.prevnext{grid-template-columns:1fr}
  .hero{padding:36px 0 28px}
  .hero h1{font-size:32px}
  .stat-row{gap:24px}
  .stat b{font-size:28px}
  .featured-body{padding:24px}
  .site-footer{padding:40px 0 24px}
}
