/*
Theme Name: Randy Rice Insights
Theme URI: https://riceconsultingservices.com/insights/
Author: Randy Rice
Author URI: https://riceconsulting.com/
Description: A lightweight WordPress publishing theme for Randy Rice's articles, white papers, and software testing insights.
Version: 1.0.1
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: randy-rice-insights
*/

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');

:root {
  --cream:#f7f0e4;
  --paper:#fffdf8;
  --ink:#17324d;
  --orange:#d66a16;
  --burnt:#b85724;
  --slate:#5d6770;
  --line:#ded2bf;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:'DM Sans',sans-serif; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.screen-reader-text:focus { clip:auto!important; width:auto; height:auto; padding:12px 16px; margin:10px; background:white; z-index:10000; }

h1,h2,h3,h4,h5,h6 { font-family:'Libre Caslon Display',serif; font-weight:400; margin-top:0; }
.eyebrow { margin:0 0 24px; color:var(--burnt); font-size:13px; line-height:1.3; letter-spacing:.18em; text-transform:uppercase; font-weight:700; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; background:var(--orange); color:white; padding:16px 24px; border-radius:5px; font-weight:700; transition:transform .2s,background .2s,box-shadow .2s; }
.button:hover,.button:focus-visible { background:var(--burnt); transform:translateY(-2px); box-shadow:0 10px 24px rgba(184,87,36,.2); color:white; }
.button-small { padding:12px 19px; font-size:14px; }
.text-link { font-weight:700; border-bottom:1px solid var(--line); padding:10px 0 7px; }

.site-header { min-height:92px; padding:15px clamp(24px,4.5vw,72px); display:flex; align-items:center; justify-content:space-between; gap:30px; border-bottom:1px solid rgba(23,50,77,.13); background:var(--cream); position:relative; z-index:5; }
.wordmark { font-family:'Libre Caslon Display',serif; font-size:27px; letter-spacing:.18em; text-transform:uppercase; white-space:nowrap; }
.site-nav ul { display:flex; align-items:center; gap:32px; list-style:none; margin:0; padding:0; font-family:'Libre Caslon Display',serif; font-size:17px; }
.site-nav a { position:relative; }
.site-nav a:after { content:""; position:absolute; height:2px; background:var(--orange); left:0; right:100%; bottom:-8px; transition:right .25s; }
.site-nav a:hover:after,.site-nav a:focus-visible:after,.site-nav .current-menu-item>a:after { right:0; }
.menu-toggle { display:none; border:1px solid var(--line); background:var(--paper); color:var(--ink); padding:10px 12px; border-radius:4px; font:inherit; font-weight:700; cursor:pointer; }

.insights-hero { padding:90px clamp(24px,8vw,120px) 82px; background:linear-gradient(145deg,var(--cream),#fffaf1); border-bottom:1px solid var(--line); }
.insights-hero-inner { max-width:1180px; margin:auto; display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:end; }
.insights-hero h1 { font-size:clamp(60px,8vw,104px); line-height:.94; letter-spacing:-.04em; margin-bottom:25px; }
.insights-hero .intro { max-width:760px; color:var(--slate); font-family:'Libre Caslon Display',serif; font-size:23px; line-height:1.55; }
.hero-note { padding:28px; background:var(--paper); border:1px solid var(--line); border-radius:10px; color:var(--slate); line-height:1.65; box-shadow:0 15px 35px rgba(23,50,77,.07); }
.hero-note strong { display:block; color:var(--burnt); margin-bottom:7px; }

.content-shell { max-width:1180px; margin:auto; padding:90px 40px 125px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:35px; margin-bottom:45px; }
.section-heading h2 { font-size:clamp(43px,5vw,62px); margin-bottom:0; }
.section-heading p { max-width:500px; color:var(--slate); line-height:1.65; }
.post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.post-card { min-height:390px; display:flex; flex-direction:column; padding:31px; background:var(--paper); border:1px solid var(--line); border-radius:11px; transition:transform .2s,box-shadow .2s; }
.post-card:hover { transform:translateY(-5px); box-shadow:0 16px 36px rgba(23,50,77,.1); }
.post-card .category { color:var(--burnt); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.14em; }
.post-card h2 { font-size:33px; line-height:1.08; margin:48px 0 15px; }
.post-card p { color:var(--slate); line-height:1.6; margin:0 0 25px; }
.post-card .read-more { margin-top:auto; color:var(--burnt); font-size:13px; font-weight:700; }
.post-card .post-date { color:var(--slate); font-size:12px; margin-top:18px; }
.pagination { margin-top:55px; }
.pagination .nav-links { display:flex; flex-wrap:wrap; gap:8px; }
.pagination a,.pagination span { display:inline-flex; min-width:42px; min-height:42px; align-items:center; justify-content:center; padding:8px 12px; border:1px solid var(--line); border-radius:4px; background:var(--paper); }
.pagination .current { background:var(--ink); color:white; border-color:var(--ink); }
.empty-state { padding:45px; background:var(--paper); border:1px solid var(--line); border-radius:10px; }

.article-hero { padding:92px clamp(24px,8vw,120px) 80px; border-bottom:1px solid var(--line); background:linear-gradient(145deg,var(--cream),#fffaf1); }
.article-hero-inner { max-width:1050px; margin:auto; }
.back-link { display:inline-block; color:var(--slate); font-size:13px; font-weight:700; margin-bottom:50px; }
.article-hero h1 { font-size:clamp(54px,7vw,94px); line-height:.98; letter-spacing:-.035em; max-width:1000px; }
.article-deck { max-width:820px; margin:28px 0; color:var(--slate); font-family:'Libre Caslon Display',serif; font-size:23px; line-height:1.55; }
.article-meta { display:flex; flex-wrap:wrap; gap:12px 28px; color:var(--slate); font-size:13px; }
.article-meta span+span:before { content:'•'; color:var(--orange); margin-right:28px; }
.article-layout { max-width:1180px; margin:auto; padding:90px 40px 120px; display:grid; grid-template-columns:240px minmax(0,760px); gap:80px; justify-content:center; }
.article-sidebar { align-self:start; position:sticky; top:30px; }
.author-mini { display:flex; gap:14px; align-items:center; padding-bottom:25px; border-bottom:1px solid var(--line); }
.author-mini img { width:62px; height:62px; border-radius:50%; object-fit:cover; object-position:center 22%; }
.author-mini div { display:grid; gap:4px; }
.author-mini span { color:var(--slate); font-size:11px; line-height:1.4; }
.share-links { display:grid; gap:12px; margin-top:25px; font-size:13px; }
.share-links>span { color:var(--slate); text-transform:uppercase; letter-spacing:.12em; font-size:10px; font-weight:700; }
.share-links a,.share-links button { text-align:left; background:none; border:0; padding:0; color:var(--ink); font:inherit; font-weight:700; cursor:pointer; }
.share-links a:hover,.share-links button:hover { color:var(--orange); }
.article-body { color:#283e53; font-family:'Libre Caslon Display',serif; font-size:20px; line-height:1.78; }
.article-body p { margin:0 0 1.45em; }
.article-body>p:first-child { font-size:25px; line-height:1.62; color:var(--ink); }
.article-body h2 { color:var(--ink); font-size:42px; line-height:1.1; margin:1.65em 0 .55em; letter-spacing:-.02em; }
.article-body h3 { color:var(--ink); font-size:29px; margin:1.5em 0 .5em; }
.article-body ul,.article-body ol { padding-left:1.3em; margin:0 0 1.6em; }
.article-body li { padding-left:.35em; margin-bottom:.65em; }
.article-body li::marker { color:var(--orange); }
.article-body blockquote { margin:2.4em 0; padding:30px 38px; border-left:4px solid var(--orange); background:var(--cream); color:var(--ink); font-size:28px; line-height:1.45; }
.article-body blockquote p { margin:0; }
.article-body .wp-block-image { margin:2.2em 0; }
.article-body figcaption { color:var(--slate); font-family:'DM Sans',sans-serif; font-size:12px; text-align:center; }
.article-callout,.wp-block-group.is-style-randy-takeaway { margin:2.2em 0; padding:28px 32px; border:1px solid var(--line); border-radius:9px; background:var(--paper); box-shadow:0 12px 30px rgba(23,50,77,.06); }
.article-callout strong,.wp-block-group.is-style-randy-takeaway strong { display:block; margin-bottom:9px; color:var(--burnt); font-family:'DM Sans',sans-serif; font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.article-tags { border-top:1px solid var(--line); margin-top:70px; padding-top:25px; display:flex; flex-wrap:wrap; gap:9px; font-family:'DM Sans',sans-serif; font-size:12px; }
.article-tags span { padding:8px 0; font-weight:700; }
.article-tags a { background:var(--cream); border:1px solid var(--line); border-radius:99px; padding:7px 11px; }
.author-card { max-width:1050px; margin:0 auto 120px; padding:45px; display:grid; grid-template-columns:190px 1fr; gap:45px; align-items:center; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
.author-card img { width:190px; height:220px; object-fit:cover; object-position:center 25%; border-radius:70px 22px; }
.author-card h2 { font-size:48px; margin-bottom:10px; }
.author-card p:not(.eyebrow) { color:var(--slate); line-height:1.7; }
.article-cta { padding:85px max(30px,calc((100vw - 1180px)/2)); display:grid; grid-template-columns:1.2fr .8fr; gap:90px; align-items:center; background:var(--ink); color:white; }
.article-cta h2 { font-size:clamp(42px,5vw,66px); margin-bottom:0; }
.article-cta>div:last-child p { color:#bdc5cc; line-height:1.7; margin-bottom:25px; }
.related-section { max-width:1180px; margin:auto; padding:110px 40px 130px; }
.related-heading h2 { font-size:58px; }
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:45px; }
.related-card { min-height:310px; padding:30px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:10px; background:var(--paper); transition:transform .2s,box-shadow .2s; }
.related-card:hover { transform:translateY(-4px); box-shadow:0 14px 32px rgba(23,50,77,.09); }
.related-card>span { color:var(--burnt); text-transform:uppercase; letter-spacing:.12em; font-size:10px; font-weight:700; }
.related-card h3 { font-size:30px; margin:45px 0 12px; }
.related-card p { color:var(--slate); line-height:1.55; }
.related-card strong { margin-top:auto; color:var(--burnt); font-size:13px; }

.site-footer { padding:55px clamp(24px,6.5vw,100px) 35px; background:#10273d; color:white; display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; }
.footer-mark { font-size:22px; }
.site-footer p { text-align:right; color:#bdc5cc; margin:0; }
.site-footer .footer-links { display:flex; gap:22px; font-size:13px; }
.site-footer small { text-align:right; color:#8f9ba5; }

.wp-block-button__link { background:var(--orange); border-radius:5px; font-family:'DM Sans',sans-serif; font-weight:700; }
.wp-block-separator { border-color:var(--line); }
.alignwide { max-width:980px; margin-left:auto; margin-right:auto; }

@media(max-width:980px){
  .menu-toggle{display:block}
  .site-nav{display:none;position:absolute;left:24px;right:24px;top:80px;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:20px;box-shadow:0 15px 35px rgba(23,50,77,.12)}
  .site-nav.is-open{display:block}
  .site-nav ul{display:grid;gap:18px}
  .site-header>.button{display:none}
  .insights-hero-inner{grid-template-columns:1fr}
  .post-grid{grid-template-columns:1fr 1fr}
  .article-layout{grid-template-columns:1fr;gap:45px}
  .article-sidebar{position:static}
  .author-mini{max-width:360px}
  .share-links{display:flex;flex-wrap:wrap;gap:16px}
  .article-cta{grid-template-columns:1fr;gap:35px}
  .related-grid{grid-template-columns:1fr 1fr}
  .author-card{margin-left:24px;margin-right:24px}
}
@media(max-width:640px){
  .site-header{min-height:76px}
  .wordmark{font-size:20px}
  .insights-hero{padding:62px 24px}
  .content-shell{padding:70px 24px 90px}
  .section-heading{display:block}
  .post-grid{grid-template-columns:1fr}
  .article-hero{padding:60px 24px}
  .back-link{margin-bottom:35px}
  .article-layout{padding:60px 24px 80px}
  .article-body{font-size:18px}
  .article-body>p:first-child{font-size:22px}
  .article-body h2{font-size:34px}
  .article-body blockquote{padding:24px;font-size:23px}
  .author-card{grid-template-columns:1fr;padding:28px}
  .author-card img{width:130px;height:145px}
  .article-cta{padding:70px 24px}
  .related-section{padding:80px 24px}
  .related-grid{grid-template-columns:1fr}
  .article-meta span+span:before{display:none}
  .site-footer{grid-template-columns:1fr}
  .site-footer p,.site-footer small{text-align:left}
}
