/*
Theme Name: Graveiens AI Blog
Theme URI: https://www.graveiensai.com/blog/
Author: Graveiens AI
Author URI: https://www.graveiensai.com/
Description: Custom, fully-branded blog theme for Graveiens AI. Reproduces the main static site's design system (Sora/Inter typography, navy + blue/cyan gradient, Bootstrap 5) with an automated, SEO-first single-post experience: sticky table of contents, reading progress bar, auto reading time, author box, related posts, JSON-LD schema, and a pre-styled content template.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.0.1
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: graveiensai-blog
*/

/* =====================================================================
   GRAVEIENS AI — DESIGN SYSTEM (mirrors main static site, class body.gv)
   ===================================================================== */
:root{
  --gv-bg:#0a0f1e; --gv-bg2:#0e1526; --gv-card:#111c31; --gv-card2:#0f1830;
  --gv-line:rgba(255,255,255,.09); --gv-text:#e8eef8; --gv-muted:#93a1ba;
  --gv-blue:#3b82f6; --gv-cyan:#22d3ee; --gv-teal:#2dd4bf;
  --gv-grad:linear-gradient(120deg,#3b82f6 0%,#22d3ee 100%); --gv-radius:16px;
  --gv-maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body.gv,body{
  background:var(--gv-bg); color:var(--gv-text);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  line-height:1.7; margin:0; overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
body.gv h1,body.gv h2,body.gv h3,body.gv h4,body.gv h5{
  font-family:'Sora','Inter',sans-serif; line-height:1.18; letter-spacing:-.01em;
  color:#fff; margin:0 0 .5em;
}
body.gv a{color:inherit; text-decoration:none;}
body.gv a:hover{color:var(--gv-cyan);}
body.gv p{margin:0 0 1rem; color:var(--gv-muted);}
img{max-width:100%; height:auto;}
.gv-wrap{max-width:var(--gv-maxw); margin:0 auto; padding:0 22px;}
.gv-grad-text{background:var(--gv-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;}
.gv-eyebrow{display:inline-block; font-size:12.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gv-cyan); margin-bottom:14px;}
:focus-visible{outline:2px solid var(--gv-cyan); outline-offset:2px; border-radius:4px;}
.gv-skip{position:absolute; left:-999px; top:0; background:var(--gv-cyan); color:#04121f; padding:10px 16px; z-index:2000; border-radius:0 0 10px 0;}
.gv-skip:focus{left:0;}

/* Buttons */
.gv-btn{display:inline-flex; align-items:center; gap:9px; font-weight:600; font-size:15px; padding:14px 26px; border-radius:100px; border:1px solid transparent; cursor:pointer; transition:.25s; white-space:nowrap; text-decoration:none; line-height:1;}
.gv-btn-primary{background:var(--gv-grad); color:#04121f; box-shadow:0 8px 30px rgba(34,211,238,.25);}
.gv-btn-primary:hover{transform:translateY(-2px); box-shadow:0 12px 38px rgba(34,211,238,.38); color:#04121f;}
.gv-btn-ghost{background:rgba(255,255,255,.04); color:#fff; border-color:var(--gv-line);}
.gv-btn-ghost:hover{background:rgba(255,255,255,.09); color:#fff;}
.gv-btn-sm{padding:10px 18px; font-size:14px;}

/* =====================================================================
   NAVBAR
   ===================================================================== */
.gv-nav{position:sticky; top:0; z-index:1000; background:rgba(10,15,30,.82); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--gv-line);}
.gv-nav .navbar{padding:0;}
.gv-nav .navbar-brand{display:flex; align-items:center; padding:13px 0;}
.gv-nav .nav-link{color:var(--gv-text)!important; font-size:15px; font-weight:500; padding:10px 15px!important; opacity:.86;}
.gv-nav .nav-link:hover,.gv-nav .nav-link.gv-on{opacity:1; color:#fff!important;}
.gv-nav .dropdown-menu{background:var(--gv-card); border:1px solid var(--gv-line); border-radius:14px; padding:10px; margin-top:8px; box-shadow:0 20px 50px rgba(0,0,0,.5);}
.gv-nav .dropdown-menu.gv-mega{min-width:520px;}
.gv-nav .dropdown-header{color:#fff; font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:6px 14px;}
.gv-nav .dropdown-item{color:var(--gv-muted)!important; border-radius:9px; padding:9px 14px; font-size:14.5px;}
.gv-nav .dropdown-item:hover{background:rgba(59,130,246,.14); color:#fff!important;}
.gv-nav .navbar-toggler{border:1px solid var(--gv-line); color:#fff; padding:6px 10px;}
.gv-nav .navbar-toggler:focus{box-shadow:none;}
.gv-nav .navbar-toggler i{color:#fff; font-size:20px;}
.gv-brand-cta{margin-left:8px;}
@media(min-width:992px){
  .gv-nav .dropdown:hover>.dropdown-menu{display:block;}
}
@media(max-width:991px){
  .gv-nav .navbar-collapse{background:var(--gv-bg2); border:1px solid var(--gv-line); border-radius:14px; padding:14px; margin-top:10px; max-height:80vh; overflow:auto;}
  .gv-nav .dropdown-menu.gv-mega{min-width:auto;}
}

/* =====================================================================
   FOOTER
   ===================================================================== */
.gv-footer{background:#070b16; border-top:1px solid var(--gv-line); padding:64px 0 28px; margin-top:70px;}
.gv-footer h5{font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:#fff; margin-bottom:18px;}
.gv-footer a{color:var(--gv-muted); display:block; margin-bottom:11px; font-size:14.5px;}
.gv-footer a:hover{color:var(--gv-cyan);}
.gv-footer .gv-foot-brand p{font-size:14.5px; max-width:340px;}
.gv-soc{display:inline-flex!important; align-items:center; justify-content:center; width:40px; height:40px; border-radius:11px; background:rgba(255,255,255,.05); border:1px solid var(--gv-line); color:#fff!important; margin:0 9px 0 0!important; font-size:17px; line-height:1; padding:0; text-decoration:none;}
.gv-soc:hover{background:var(--gv-grad); color:#04121f!important;}
.gv-divider{border:0; border-top:1px solid var(--gv-line); margin:40px 0 22px;}
.gv-footer .gv-copy{color:var(--gv-muted); font-size:13.5px; margin:0;}
.gv-footer address{color:var(--gv-muted); font-style:normal; font-size:14.5px; line-height:1.7; margin-bottom:12px;}
.gv-footer address i{margin-right:8px; color:var(--gv-cyan);}

/* =====================================================================
   BLOG LISTING
   ===================================================================== */
.gv-hero{position:relative; padding:64px 0 40px; overflow:hidden;}
.gv-hero:before{content:""; position:absolute; inset:-40% 30% auto -10%; height:520px; background:radial-gradient(closest-side,rgba(59,130,246,.20),transparent 70%); pointer-events:none;}
.gv-hero:after{content:""; position:absolute; inset:-30% -15% auto 55%; height:520px; background:radial-gradient(closest-side,rgba(34,211,238,.16),transparent 70%); pointer-events:none;}
.gv-hero .gv-wrap{position:relative; z-index:1;}
.gv-hero-grid{display:grid; grid-template-columns:1.35fr .9fr; gap:44px; align-items:center;}
.gv-hero h1{font-size:clamp(30px,4.4vw,52px); margin-bottom:18px;}
.gv-hero .gv-lead{font-size:18px; color:var(--gv-muted); max-width:640px; margin-bottom:26px;}
.gv-hero-art{width:100%; border-radius:var(--gv-radius); border:1px solid var(--gv-line); background:var(--gv-card); box-shadow:0 30px 70px rgba(0,0,0,.45);}
.gv-search{display:flex; align-items:center; gap:10px; background:var(--gv-card); border:1px solid var(--gv-line); border-radius:100px; padding:6px 6px 6px 20px; max-width:560px;}
.gv-search input{flex:1; background:transparent; border:0; color:#fff; font-size:15.5px; outline:none; font-family:inherit;}
.gv-search input::placeholder{color:var(--gv-muted);}
.gv-search button{border:0;}
.gv-chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
.gv-chip{display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:500; color:var(--gv-text); background:rgba(255,255,255,.04); border:1px solid var(--gv-line); border-radius:100px; padding:8px 16px; transition:.2s; cursor:pointer;}
.gv-chip:hover,.gv-chip.is-active{background:var(--gv-grad); color:#04121f; border-color:transparent;}

.gv-section-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin:14px 0 24px;}
.gv-section-head h2{font-size:26px;}

/* Featured */
.gv-featured{display:grid; grid-template-columns:1.15fr 1fr; gap:0; background:var(--gv-card); border:1px solid var(--gv-line); border-radius:var(--gv-radius); overflow:hidden; margin-bottom:52px;}
.gv-featured .gv-feat-media{position:relative; min-height:320px; background:var(--gv-bg2);}
.gv-featured .gv-feat-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.gv-featured .gv-feat-body{padding:38px;}
.gv-featured h2{font-size:clamp(22px,2.4vw,32px); margin:14px 0 14px;}
.gv-featured p{font-size:16px;}

/* Post cards grid */
.gv-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.gv-card{display:flex; flex-direction:column; background:var(--gv-card); border:1px solid var(--gv-line); border-radius:var(--gv-radius); overflow:hidden; height:100%; transition:transform .25s, box-shadow .25s, border-color .25s;}
.gv-card:hover{transform:translateY(-6px); box-shadow:0 22px 50px rgba(0,0,0,.5); border-color:rgba(34,211,238,.35);}
.gv-card-media{position:relative; aspect-ratio:16/9; background:var(--gv-bg2); overflow:hidden;}
.gv-card-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s;}
.gv-card:hover .gv-card-media img{transform:scale(1.05);}
.gv-cat{display:inline-block; font-size:11.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--gv-cyan); background:rgba(34,211,238,.10); border:1px solid rgba(34,211,238,.25); padding:4px 11px; border-radius:100px;}
.gv-card-body{display:flex; flex-direction:column; flex:1; padding:22px;}
.gv-card-body h3{font-size:19px; margin:12px 0 10px; line-height:1.32;}
.gv-card-body h3 a:hover{color:var(--gv-cyan);}
.gv-card-body .gv-excerpt{font-size:14.5px; color:var(--gv-muted); margin-bottom:16px;}
.gv-meta{display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:12.5px; color:var(--gv-muted); margin-top:auto;}
.gv-meta .gv-dot{opacity:.5;}
.gv-meta .gv-author-mini{display:inline-flex; align-items:center; gap:7px;}
.gv-meta .gv-author-mini img{width:22px; height:22px; border-radius:50%; object-fit:cover;}
.gv-card-cta{margin-top:16px; align-self:flex-start;}

/* Layout with sidebar */
.gv-with-side{display:grid; grid-template-columns:1fr 330px; gap:40px; align-items:start; padding:8px 0 20px;}
.gv-side{position:sticky; top:90px; display:flex; flex-direction:column; gap:22px;}
.gv-box{background:var(--gv-card); border:1px solid var(--gv-line); border-radius:var(--gv-radius); padding:22px;}
.gv-box h4{font-size:15px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:16px;}
.gv-box ul{list-style:none; margin:0; padding:0;}
.gv-box ul li{margin-bottom:11px; font-size:14.5px;}
.gv-box ul li a{color:var(--gv-muted); display:flex; justify-content:space-between; gap:10px;}
.gv-box ul li a:hover{color:var(--gv-cyan);}
.gv-box .gv-count{font-size:12px; color:var(--gv-muted); background:rgba(255,255,255,.05); border-radius:100px; padding:1px 9px;}
.gv-recent{display:flex; gap:12px; margin-bottom:16px;}
.gv-recent img{width:64px; height:56px; border-radius:10px; object-fit:cover; flex:none; background:var(--gv-bg2);}
.gv-recent .gv-rt{font-size:13.5px; color:#fff; line-height:1.35;}
.gv-recent .gv-rd{font-size:11.5px; color:var(--gv-muted); margin-top:4px;}
.gv-newsletter p{font-size:13.5px;}
.gv-newsletter .gv-search{max-width:none; margin-top:12px;}
.gv-cta-banner{background:var(--gv-grad); color:#04121f; border-radius:var(--gv-radius); padding:24px;}
.gv-cta-banner h4{color:#04121f; margin-bottom:8px;}
.gv-cta-banner p{color:#083041; font-size:13.5px; margin-bottom:14px;}
.gv-cta-banner .gv-btn{background:#04121f; color:#fff;}

/* Pagination */
.gv-pagination{display:flex; justify-content:center; gap:8px; margin:44px 0 10px; flex-wrap:wrap;}
.gv-pagination .page-numbers{display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 12px; border-radius:12px; border:1px solid var(--gv-line); background:var(--gv-card); color:var(--gv-text); font-size:14.5px;}
.gv-pagination .page-numbers.current{background:var(--gv-grad); color:#04121f; border-color:transparent;}
.gv-pagination .page-numbers:hover{border-color:var(--gv-cyan);}

/* =====================================================================
   SINGLE POST
   ===================================================================== */
.gv-progress{position:fixed; top:0; left:0; height:4px; width:0; z-index:1500; background:var(--gv-grad); transition:width .1s linear;}
.gv-breadcrumb{font-size:13px; color:var(--gv-muted); padding:22px 0 0;}
.gv-breadcrumb a{color:var(--gv-muted);}
.gv-breadcrumb a:hover{color:var(--gv-cyan);}
.gv-breadcrumb .sep{opacity:.5; margin:0 6px;}
.gv-post-hero{padding:14px 0 6px;}
.gv-post-hero h1{font-size:clamp(28px,3.8vw,44px); margin:14px 0 18px; max-width:900px;}
.gv-post-meta{display:flex; flex-wrap:wrap; align-items:center; gap:14px; color:var(--gv-muted); font-size:14px; margin-bottom:22px;}
.gv-post-meta .gv-am-author{display:inline-flex; align-items:center; gap:9px; color:#fff;}
.gv-post-meta .gv-am-author img{width:34px; height:34px; border-radius:50%; object-fit:cover;}
.gv-post-meta .gv-dot{opacity:.5;}
.gv-feature-img{width:100%; border-radius:var(--gv-radius); border:1px solid var(--gv-line); margin:8px 0 30px; aspect-ratio:16/7; object-fit:cover;}

.gv-post-layout{display:grid; grid-template-columns:260px minmax(0,1fr); gap:44px; align-items:start;}
.gv-toc{position:sticky; top:90px; background:var(--gv-card); border:1px solid var(--gv-line); border-radius:var(--gv-radius); padding:20px; max-height:calc(100vh - 120px); overflow:auto;}
.gv-toc h4{font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:#fff; margin-bottom:14px;}
.gv-toc ul{list-style:none; margin:0; padding:0;}
.gv-toc li{margin:0;}
.gv-toc a{display:block; color:var(--gv-muted); font-size:13.5px; padding:6px 10px; border-left:2px solid transparent; line-height:1.4;}
.gv-toc a:hover{color:#fff;}
.gv-toc a.is-active{color:#fff; border-left-color:var(--gv-cyan); background:rgba(34,211,238,.07);}
.gv-toc a.lvl-3{padding-left:22px; font-size:13px;}
.gv-toc-toggle{display:none;}

.gv-post-aside{position:sticky; top:90px; display:flex; flex-direction:column; gap:20px;}

/* Share */
.gv-share{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:6px 0 24px;}
.gv-share span.gv-share-label{font-size:13px; color:var(--gv-muted);}
.gv-share a,.gv-share button{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:11px; background:rgba(255,255,255,.05); border:1px solid var(--gv-line); color:#fff; font-size:16px; cursor:pointer; transition:.2s;}
.gv-share a:hover,.gv-share button:hover{background:var(--gv-grad); color:#04121f;}

/* Author box */
.gv-author-box{display:flex; gap:20px; align-items:flex-start; background:var(--gv-card); border:1px solid var(--gv-line); border-radius:var(--gv-radius); padding:26px; margin:40px 0;}
.gv-author-box .gv-ab-photo{width:84px; height:84px; border-radius:50%; object-fit:cover; flex:none; background:var(--gv-bg2); border:2px solid rgba(34,211,238,.4);}
.gv-author-box .gv-ab-name{font-size:19px; margin-bottom:2px;}
.gv-author-box .gv-ab-role{font-size:13px; color:var(--gv-cyan); font-weight:600; letter-spacing:.04em; text-transform:uppercase; margin-bottom:10px;}
.gv-author-box .gv-ab-bio{font-size:14.5px; color:var(--gv-muted); margin-bottom:12px;}
.gv-author-box .gv-ab-soc a{display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:10px; background:rgba(255,255,255,.05); border:1px solid var(--gv-line); color:#fff; margin-right:8px; font-size:15px;}
.gv-author-box .gv-ab-soc a:hover{background:var(--gv-grad); color:#04121f;}

/* Related + prev/next */
.gv-related{margin:52px 0 10px;}
.gv-related h2{font-size:24px; margin-bottom:22px;}
.gv-prevnext{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:34px 0;}
.gv-prevnext a{display:block; background:var(--gv-card); border:1px solid var(--gv-line); border-radius:var(--gv-radius); padding:20px;}
.gv-prevnext a:hover{border-color:rgba(34,211,238,.35);}
.gv-prevnext .gv-pn-label{font-size:12px; color:var(--gv-muted); text-transform:uppercase; letter-spacing:.08em;}
.gv-prevnext .gv-pn-title{font-size:15.5px; color:#fff; margin-top:8px; line-height:1.4;}
.gv-prevnext .gv-pn-next{text-align:right;}

/* Newsletter + contact CTA (post) */
.gv-cta-strip{background:linear-gradient(180deg,var(--gv-card),var(--gv-card2)); border:1px solid var(--gv-line); border-radius:var(--gv-radius); padding:34px; text-align:center; margin:44px 0;}
.gv-cta-strip.gv-cta-contact{background:var(--gv-grad); border:0;}
.gv-cta-strip.gv-cta-contact h3,.gv-cta-strip.gv-cta-contact p{color:#04121f;}
.gv-cta-strip h3{font-size:24px; margin-bottom:10px;}
.gv-cta-strip p{max-width:620px; margin:0 auto 20px;}
.gv-cta-contact .gv-btn{background:#04121f; color:#fff;}

/* =====================================================================
   CONTENT STYLE TEMPLATE (.gv-article) — auto-styles pasted content
   ===================================================================== */
.gv-article{font-size:17px; color:#cdd7e6; line-height:1.85;}
.gv-article > *:first-child{margin-top:0;}
.gv-article h2{font-size:29px; margin:44px 0 16px; scroll-margin-top:88px;}
.gv-article h3{font-size:23px; margin:34px 0 12px; scroll-margin-top:88px;}
.gv-article h4{font-size:19px; margin:26px 0 10px; scroll-margin-top:88px;}
.gv-article p{margin:0 0 18px; color:#cdd7e6;}
.gv-article a{color:var(--gv-cyan); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(34,211,238,.4);}
.gv-article a:hover{text-decoration-color:var(--gv-cyan);}
.gv-article strong{color:#fff;}
.gv-article ul,.gv-article ol{margin:0 0 20px; padding-left:24px;}
.gv-article li{margin-bottom:9px;}
.gv-article ul li::marker{color:var(--gv-cyan);}
.gv-article ol li::marker{color:var(--gv-cyan); font-weight:700;}
.gv-article blockquote{margin:26px 0; padding:18px 24px; border-left:4px solid var(--gv-cyan); background:rgba(34,211,238,.06); border-radius:0 12px 12px 0; color:#e8eef8; font-size:18px; font-style:italic;}
.gv-article blockquote p:last-child{margin-bottom:0;}
.gv-article code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:14.5px; background:rgba(255,255,255,.08); padding:2px 7px; border-radius:6px; color:#a7f3ef;}
.gv-article pre{background:#060a14; border:1px solid var(--gv-line); border-radius:12px; padding:20px; overflow:auto; margin:24px 0;}
.gv-article pre code{background:none; padding:0; color:#cdd7e6; font-size:14px; line-height:1.7;}
.gv-article img{border-radius:12px; border:1px solid var(--gv-line); margin:10px 0;}
.gv-article figure{margin:26px 0;}
.gv-article figcaption{font-size:13.5px; color:var(--gv-muted); text-align:center; margin-top:10px;}
.gv-article hr{border:0; border-top:1px solid var(--gv-line); margin:36px 0;}
.gv-article table{width:100%; border-collapse:collapse; margin:26px 0; font-size:15px; overflow:hidden; border-radius:12px; border:1px solid var(--gv-line);}
.gv-article table th{background:var(--gv-bg2); color:#fff; text-align:left; padding:13px 16px; font-weight:600; border-bottom:1px solid var(--gv-line);}
.gv-article table td{padding:13px 16px; border-bottom:1px solid var(--gv-line); color:#cdd7e6;}
.gv-article table tr:last-child td{border-bottom:0;}
.gv-article table tr:hover td{background:rgba(255,255,255,.02);}

/* Callouts / boxes (add class to a paragraph or div) */
.gv-callout{position:relative; padding:18px 20px 18px 54px; border-radius:12px; margin:26px 0; font-size:15.5px; border:1px solid var(--gv-line);}
.gv-callout:before{position:absolute; left:18px; top:17px; font-family:"bootstrap-icons"; font-size:20px;}
.gv-tip{background:rgba(45,212,191,.08); border-color:rgba(45,212,191,.35);}
.gv-tip:before{content:"\F633"; color:var(--gv-teal);}      /* lightbulb */
.gv-note{background:rgba(59,130,246,.08); border-color:rgba(59,130,246,.35);}
.gv-note:before{content:"\F431"; color:var(--gv-blue);}     /* info-circle */
.gv-warning{background:rgba(245,158,11,.08); border-color:rgba(245,158,11,.35);}
.gv-warning:before{content:"\F33A"; color:#f59e0b;}         /* exclamation-triangle */

/* Key takeaways */
.gv-takeaways{background:var(--gv-card); border:1px solid var(--gv-line); border-left:4px solid var(--gv-cyan); border-radius:12px; padding:22px 24px; margin:28px 0;}
.gv-takeaways h4{font-size:14px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; color:#fff;}
.gv-takeaways ul{margin:0; padding-left:20px;}

/* Stat boxes */
.gv-stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:16px; margin:28px 0;}
.gv-stat{background:var(--gv-card); border:1px solid var(--gv-line); border-radius:14px; padding:22px; text-align:center;}
.gv-stat .gv-stat-num{font-family:'Sora',sans-serif; font-size:30px; font-weight:800; background:var(--gv-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;}
.gv-stat .gv-stat-lbl{font-size:13px; color:var(--gv-muted); margin-top:6px;}

/* Pros / cons */
.gv-proscons{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:28px 0;}
.gv-pros,.gv-cons{background:var(--gv-card); border:1px solid var(--gv-line); border-radius:14px; padding:20px;}
.gv-pros h4,.gv-cons h4{font-size:16px; margin-bottom:12px;}
.gv-pros h4{color:var(--gv-teal);}
.gv-cons h4{color:#f59e0b;}
.gv-pros ul,.gv-cons ul{margin:0; padding-left:20px;}

/* Comparison table = use table.gv-compare for zebra emphasis */
.gv-article table.gv-compare th:first-child{background:var(--gv-card);}

/* FAQ block */
.gv-faq{margin:32px 0;}
.gv-faq details{background:var(--gv-card); border:1px solid var(--gv-line); border-radius:12px; padding:2px 20px; margin-bottom:12px;}
.gv-faq summary{cursor:pointer; list-style:none; padding:16px 0; font-weight:600; color:#fff; font-size:16.5px; display:flex; justify-content:space-between; align-items:center;}
.gv-faq summary::-webkit-details-marker{display:none;}
.gv-faq summary:after{content:"\F282"; font-family:"bootstrap-icons"; color:var(--gv-cyan); transition:.2s;}
.gv-faq details[open] summary:after{transform:rotate(180deg);}
.gv-faq details[open] summary{border-bottom:1px solid var(--gv-line);}
.gv-faq .gv-faq-a{padding:14px 0 18px; color:#cdd7e6; font-size:15.5px;}

/* In-content CTA + conclusion */
.gv-content-cta{background:var(--gv-grad); color:#04121f; border-radius:14px; padding:24px 26px; margin:32px 0; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.gv-content-cta p{color:#083041; margin:0; font-weight:600; font-size:16px;}
.gv-content-cta .gv-btn{background:#04121f; color:#fff;}
.gv-conclusion{background:var(--gv-card2); border:1px solid var(--gv-line); border-radius:14px; padding:24px; margin:32px 0;}
.gv-conclusion h2{margin-top:0;}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media(max-width:992px){
  .gv-hero-grid{grid-template-columns:1fr;}
  .gv-hero-art{display:none;}
  .gv-featured{grid-template-columns:1fr;}
  .gv-featured .gv-feat-media{min-height:220px;}
  .gv-grid{grid-template-columns:repeat(2,1fr);}
  .gv-with-side{grid-template-columns:1fr;}
  .gv-side{position:static; margin-top:20px;}
  /* Single-post: TOC moves above content and becomes collapsible */
  .gv-post-layout{grid-template-columns:1fr;}
  .gv-toc{position:static; top:auto; max-height:none; margin:0 0 24px; order:-1;}
  .gv-toc h4{display:none;}
  .gv-toc-toggle{display:flex; align-items:center; justify-content:space-between; width:100%; cursor:pointer; background:var(--gv-card); border:1px solid var(--gv-line); border-radius:12px; padding:14px 18px; color:#fff; font-weight:600; font-size:15px; margin:0;}
  .gv-toc-toggle i{color:var(--gv-cyan); transition:.2s;}
  .gv-toc-toggle.is-open i{transform:rotate(180deg);}
  .gv-toc-list{display:none; margin-top:12px;}
  .gv-toc-list.is-open{display:block;}
  .gv-prevnext{grid-template-columns:1fr;}
  .gv-proscons{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .gv-grid{grid-template-columns:1fr;}
  .gv-hero{padding:40px 0 24px;}
  .gv-author-box{flex-direction:column;}
  .gv-content-cta{flex-direction:column; align-items:flex-start;}
}
