/* ==========================================================================
   Gistlet — Book Summaries &amp; Reviews
   Design system
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;600;700;800;900&family=Tajawal:wght@400;500;700;800&display=swap');

:root{
  --navy:#0B1F3A;
  --navy-2:#132F55;
  --primary:#1D4ED8;
  --primary-2:#3B6FF5;
  --accent:#F59E0B;
  --accent-2:#FBBF24;
  --bg:#F6F8FC;
  --card:#FFFFFF;
  --text:#12203A;
  --muted:#61708A;
  --line:#E4EAF3;
  --green:#059669;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 6px 24px rgba(11,31,58,.08);
  --shadow-lg:0 14px 44px rgba(11,31,58,.14);
  --max:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:'Tajawal','Cairo',system-ui,'Segoe UI',Arial,sans-serif;
  font-size:17px;line-height:1.85;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Cairo','Tajawal',sans-serif;line-height:1.35;margin:0 0 .5em;font-weight:800;color:var(--navy)}
h1{font-size:2.15rem}
h2{font-size:1.6rem}
h3{font-size:1.22rem}
p{margin:0 0 1.05em}
a{color:var(--primary);text-decoration:none;transition:color .15s}
a:hover{color:var(--accent)}
img{max-width:100%;height:auto;display:block}
ul,ol{padding-inline-start:1.35em;margin:0 0 1.1em}
li{margin-bottom:.5em}

.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.center{text-align:center}

/* ---------- skip link ---------- */
.skip{position:absolute;inset-inline-start:-9999px;top:0;background:var(--accent);color:#000;padding:10px 16px;z-index:999}
.skip:focus{inset-inline-start:12px;top:12px}

/* ---------- header ---------- */
.site-header{background:var(--navy);color:#fff;position:sticky;top:0;z-index:60;box-shadow:0 2px 14px rgba(0,0,0,.16)}
.site-header .wrap{display:flex;align-items:center;gap:18px;min-height:68px}
.brand{display:flex;align-items:center;gap:11px;color:#fff;font-family:'Cairo';font-weight:900;font-size:1.42rem;letter-spacing:-.3px}
.brand:hover{color:#fff}
.brand .mark{
  width:40px;height:40px;border-radius:11px;flex:0 0 auto;display:block;
  box-shadow:0 4px 14px rgba(245,158,11,.35)
}
.brand small{display:block;font-family:'Tajawal';font-weight:400;font-size:.62rem;color:#9FB3D1;letter-spacing:.5px;line-height:1}

.main-nav{margin-inline-start:auto;display:flex;align-items:center;gap:4px}
.main-nav a{color:#CBD8EC;padding:9px 13px;border-radius:9px;font-weight:500;font-size:.94rem}
.main-nav a:hover{background:rgba(255,255,255,.09);color:#fff}
.main-nav a.active{background:rgba(255,255,255,.14);color:#fff;font-weight:700}

.nav-toggle{display:none;margin-inline-start:auto;background:rgba(255,255,255,.1);border:0;color:#fff;
  width:42px;height:42px;border-radius:10px;font-size:1.25rem;cursor:pointer}

.search-mini{position:relative;margin-inline-start:8px}
.search-mini input{
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);color:#fff;
  border-radius:10px;padding:9px 14px;font-family:inherit;font-size:.9rem;width:190px;outline:none
}
.search-mini input::placeholder{color:#9FB3D1}
.search-mini input:focus{background:rgba(255,255,255,.17);border-color:var(--accent-2)}

/* ---------- hero ---------- */
.hero{
  background:radial-gradient(1100px 460px at 82% -12%,#1E4E9C 0%,transparent 60%),
             linear-gradient(160deg,var(--navy),#0E2A50);
  color:#fff;padding:56px 0 60px;position:relative;overflow:hidden
}
.hero::after{content:"";position:absolute;inset:auto -60px -120px auto;width:340px;height:340px;
  background:radial-gradient(circle,rgba(245,158,11,.28),transparent 68%);border-radius:50%}
.hero h1{color:#fff;font-size:2.5rem;max-width:760px;margin-bottom:.35em}
.hero p.lead{color:#C6D6EE;font-size:1.12rem;max-width:660px;margin-bottom:1.6em}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.hero-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:30px;align-items:center;position:relative;z-index:2}
.hero-copy{min-width:0}
.hero-art{width:100%;max-width:520px;height:auto;display:block;margin-inline-start:auto;
  filter:drop-shadow(0 24px 48px rgba(3,12,30,.35))}
.btn{display:inline-block;padding:13px 26px;border-radius:12px;font-weight:700;font-family:'Cairo';
  border:0;cursor:pointer;font-size:.98rem;transition:transform .16s,box-shadow .16s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--accent);color:#22160A;box-shadow:0 8px 24px rgba(245,158,11,.34)}
.btn-primary:hover{color:#22160A}
.btn-ghost{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.25)}
.btn-ghost:hover{color:#fff;background:rgba(255,255,255,.18)}
.btn-outline{background:#fff;color:var(--navy);border:2px solid var(--line)}
.btn-outline:hover{color:var(--primary);border-color:var(--primary)}

.stats{display:flex;gap:34px;margin-top:34px;flex-wrap:wrap}
.stat b{display:block;font-family:'Cairo';font-size:1.7rem;color:var(--accent-2)}
.stat span{color:#9FB3D1;font-size:.88rem}

/* ---------- section ---------- */
.section{padding:52px 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px;flex-wrap:wrap}
.section-head h2{margin:0}
.section-head p{color:var(--muted);margin:.2em 0 0;font-size:.98rem}
.eyebrow{display:inline-block;background:#E8EFFD;color:var(--primary);font-weight:700;font-size:.76rem;
  padding:4px 12px;border-radius:99px;margin-bottom:12px;letter-spacing:.4px;font-family:'Cairo'}

/* ---------- grids ---------- */
.grid{display:grid;gap:22px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px;align-items:start}

/* ---------- category cards ---------- */
.cat-card{
  background:var(--card);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);
  border:1px solid var(--line);display:block;color:var(--text);transition:transform .18s,box-shadow .18s
}
.cat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);color:var(--text)}
.cat-ico{width:56px;height:56px;border-radius:15px;display:grid;place-items:center;font-size:1.7rem;margin-bottom:14px}
.cat-ico.fin{background:#E7F6EF;color:#059669}
.cat-ico.tech{background:#E8EEFC;color:#1D4ED8}
.cat-ico.self{background:#FDF1E3;color:#D97706}
.cat-card h3{margin-bottom:.25em}
.cat-card p{color:var(--muted);font-size:.92rem;margin:0}
.cat-card .count{margin-top:12px;font-size:.84rem;color:var(--primary);font-weight:700;font-family:'Cairo'}

/* ---------- book card ---------- */
.book-card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
  border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}
.book-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.cover{
  position:relative;height:172px;display:flex;flex-direction:column;justify-content:space-between;
  padding:18px;color:#fff;overflow:hidden
}
.cover::before{content:"";position:absolute;inset:0;background:
  repeating-linear-gradient(115deg,rgba(255,255,255,.07) 0 2px,transparent 2px 11px)}
.cover .ct{position:relative;font-family:'Cairo';font-weight:800;font-size:1.06rem;line-height:1.4;
  text-shadow:0 2px 10px rgba(0,0,0,.3)}
.cover .ca{position:relative;font-size:.82rem;opacity:.92}
.cover .badge{position:absolute;top:14px;inset-inline-end:14px;background:rgba(0,0,0,.35);
  backdrop-filter:blur(4px);border-radius:8px;padding:3px 10px;font-size:.74rem;font-weight:700;font-family:'Cairo';z-index:2}
.cover.has-img{height:230px;padding:10px;background:#eef2fa}
.cover.has-img::before{display:none}
.cover-img{width:100%;height:100%;object-fit:contain;border-radius:8px;display:block}
.post-cover{width:auto;max-width:230px;max-height:330px;display:block;margin:0 auto 18px;
  border-radius:12px;box-shadow:var(--shadow-lg)}
.g1{background:linear-gradient(140deg,#0F3D2E,#059669)}
.g2{background:linear-gradient(140deg,#12224A,#1D4ED8)}
.g3{background:linear-gradient(140deg,#5A2A0A,#D97706)}
.g4{background:linear-gradient(140deg,#2A1046,#7C3AED)}
.g5{background:linear-gradient(140deg,#4A0E1F,#DC2626)}
.g6{background:linear-gradient(140deg,#0A2E3D,#0891B2)}

.book-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.book-body h3{font-size:1.02rem;margin:0 0 6px;line-height:1.45}
.book-body h3 a{color:var(--navy)}
.book-body h3 a:hover{color:var(--primary)}
.book-body .meta{font-size:.82rem;color:var(--muted);margin-bottom:8px}
.book-body p{font-size:.88rem;color:var(--muted);margin:0 0 12px}
.stars{color:var(--accent);font-size:.86rem;letter-spacing:1px;margin-bottom:10px}
.tag{display:inline-block;background:#EEF3FB;color:var(--primary);font-size:.74rem;font-weight:700;
  padding:3px 10px;border-radius:99px;font-family:'Cairo'}
.book-body .foot{margin-top:auto;display:flex;gap:8px;align-items:center;padding-top:10px}

/* ---------- article list ---------- */
.art-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);margin-bottom:16px;display:flex;align-items:stretch;color:var(--text);transition:transform .16s,box-shadow .16s}
.art-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);color:var(--text)}
.art-thumb{width:236px;min-width:236px;aspect-ratio:1200/630;object-fit:cover;display:block;background:#0B1F3A}
.art-body{padding:18px 22px;flex:1;min-width:0}
.art-item h3{margin:0 0 7px;font-size:1.1rem;color:var(--navy)}
.art-item p{margin:0 0 10px;color:var(--muted);font-size:.92rem}
.art-meta{font-size:.8rem;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap}
@media(max-width:620px){.art-item{flex-direction:column}.art-thumb{width:100%;min-width:0}}

/* ---------- article hero art ---------- */
.post-art{width:100%;max-width:760px;height:auto;display:block;border-radius:14px;margin:0 auto 22px;
  box-shadow:var(--shadow-lg);aspect-ratio:1200/630;background:#0B1F3A}

/* ---------- single ---------- */
.crumbs{font-size:.85rem;color:var(--muted);padding:18px 0 0}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--primary)}
.crumbs span{margin:0 7px;opacity:.55}

article.post{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:34px 38px;box-shadow:var(--shadow)}
article.post h2{margin-top:1.5em}
article.post h3{margin-top:1.3em;color:var(--navy-2)}
article.post .post-head{border-bottom:2px solid var(--line);padding-bottom:20px;margin-bottom:24px}
article.post .post-head h1{font-size:1.95rem;margin-bottom:.3em}
article.post .post-meta{color:var(--muted);font-size:.87rem;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.lead-p{font-size:1.09rem;color:#33415C;background:#F2F6FD;border-inline-start:5px solid var(--primary);
  padding:16px 20px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:1.6em}

.callout{background:#FFFBEB;border:1px solid #FDE68A;border-radius:var(--radius-sm);padding:18px 20px;margin:1.6em 0}
.callout strong{color:#92400E}
.cta-box{background:linear-gradient(140deg,var(--navy),#14325C);color:#fff;border-radius:var(--radius);
  padding:26px 28px;margin:2em 0;text-align:center}
.cta-box h3{color:#fff;margin-bottom:.4em}
.cta-box p{color:#C6D6EE;font-size:.95rem}

.key-ideas{background:#F5F9F7;border:1px solid #CFE7DC;border-radius:var(--radius);padding:22px 26px;margin:1.8em 0}
.key-ideas h3{color:#065F46;margin-top:0}
.key-ideas ol{padding-inline-start:1.3em;margin-bottom:0}
.key-ideas li{margin-bottom:.7em}

/* ---------- sidebar ---------- */
.sidebar{position:sticky;top:88px;display:flex;flex-direction:column;gap:20px}
.widget{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.widget h4{margin:0 0 14px;font-size:1.02rem;padding-bottom:10px;border-bottom:2px solid var(--line)}
.widget ul{list-style:none;padding:0;margin:0}
.widget li{margin-bottom:11px;font-size:.9rem;line-height:1.6}
.widget li a{color:var(--text);font-weight:500}
.widget li a:hover{color:var(--primary)}
.widget li .d{display:block;font-size:.76rem;color:var(--muted)}
.ad-slot{
  background:#FBFCFE;border:1px dashed #C7D4E8;border-radius:var(--radius);padding:22px 16px;text-align:center;
  color:#93A4BE;font-size:.8rem;min-height:250px;display:grid;place-items:center;font-family:'Cairo'
}
.ad-slot.h{min-height:100px}
.ad-slot small{display:block;opacity:.7;margin-top:4px}

/* ---------- table ---------- */
table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:.92rem}
th,td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:start}
th{background:#EEF3FB;color:var(--navy);font-family:'Cairo';font-weight:700}
tbody tr:hover{background:#FAFCFF}

/* ---------- library ---------- */
.lib-item{display:flex;gap:18px;align-items:flex-start;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);margin-bottom:14px}
.lib-ico{width:52px;height:52px;flex:0 0 auto;border-radius:13px;background:#EEF3FB;display:grid;place-items:center;font-size:1.5rem}
.lib-item h3{margin:0 0 5px;font-size:1.05rem}
.lib-item p{margin:0 0 8px;font-size:.88rem;color:var(--muted)}
.source-row{display:flex;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:18px 22px;box-shadow:var(--shadow)}
.source-row .logo{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;font-size:1.6rem;
  background:#EEF3FB;flex:0 0 auto}
.source-row h3{margin:0 0 4px;font-size:1.06rem}
.source-row p{margin:0;font-size:.88rem;color:var(--muted)}

/* ---------- footer ---------- */
.site-footer{background:var(--navy);color:#AFC1DA;margin-top:56px;padding:48px 0 26px;font-size:.92rem}
.site-footer h4{color:#fff;font-size:1rem;margin-bottom:14px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:34px;margin-bottom:34px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:9px}
.site-footer a{color:#AFC1DA}
.site-footer a:hover{color:var(--accent-2)}
.site-footer .brand{font-size:1.2rem;margin-bottom:12px}
.site-footer .brand .mark{width:34px;height:34px;border-radius:9px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;display:flex;
  justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.84rem;color:#7E93B4}
.disclosure{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.34);border-radius:var(--radius-sm);
  padding:12px 16px;font-size:.82rem;color:#F2D79B;margin-top:18px}

/* ---------- pagination ---------- */
.pager{display:flex;gap:8px;justify-content:center;margin-top:32px;flex-wrap:wrap}
.pager a,.pager span{padding:8px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;
  color:var(--text);font-weight:600;font-size:.9rem;font-family:'Cairo'}
.pager a:hover{border-color:var(--primary);color:var(--primary)}
.pager .cur{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---------- misc ---------- */
.notice{background:#FFF7ED;border:1px solid #FED7AA;border-radius:var(--radius-sm);padding:16px 20px;font-size:.9rem;color:#7C2D12}
.badge-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.progress-bar{height:7px;background:var(--line);border-radius:99px;overflow:hidden;margin:8px 0 0}
.progress-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:99px}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .layout{grid-template-columns:1fr}
  .sidebar{position:static}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  body{font-size:16px}
  .main-nav{display:none;position:absolute;top:68px;inset-inline:0;background:var(--navy-2);
    flex-direction:column;padding:12px;gap:2px;box-shadow:0 12px 30px rgba(0,0,0,.3)}
  .main-nav.open{display:flex}
  .main-nav a{width:100%}
  .search-mini{display:none}
  .nav-toggle{display:block}
  .hero h1{font-size:1.85rem}
  .hero-grid{grid-template-columns:1fr;gap:4px}
  .hero-art{max-width:370px;margin:20px auto 0}
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr}
  article.post{padding:22px 20px}
  .foot-grid{grid-template-columns:1fr}
  .section{padding:38px 0}
}
@media print{
  .site-header,.site-footer,.sidebar,.hero-cta,.ad-slot{display:none}
  body{background:#fff}
  article.post{box-shadow:none;border:0}
}
