﻿/* =============================================================
   library.css - Shared styles for all /library/ pages
   aivisible.co.uk | Updated: 2026-05-12
   ============================================================= */

/* Pull in shared component stylesheets via relative paths
   (these are also linked explicitly in each page's <head>,
   but the @import ensures they load even from staging subdirs) */
@import url('../css/nav.css');
@import url('../css/footer.css');

/* --- Reset & Base ------------------------------------------- */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',sans-serif; background:var(--bg); color:var(--text); overflow-x:hidden; transition:background .3s,color .3s; }
h1,h2,h3,h4 { font-family:'DM Serif Display',serif; line-height:1.2; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-thumb { background:var(--coral); border-radius:3px; }

/* --- Tokens Light ------------------------------------------- */
:root, [data-theme="light"] {
  --bg:           #FBF7F5;
  --bg-white:     #FFFFFF;
  --bg-blush:     #F2D9D2;
  --bg-dark:      #180F0B;
  --bg-secondary: #F0EBE8;
  --text:         #1A1614;
  --text-mid:     #4A3F3A;
  --text-muted:   #9B8880;
  --coral:        #E84C2B;
  --coral-a:      #E84C2B;
  --coral-h:      #C73A1E;
  --coral-t:      rgba(232,76,43,0.09);
  --coral-b:      rgba(232,76,43,0.20);
  --blue:         #007BBD;
  --blue-t:       rgba(0,123,189,0.09);
  --blue-b:       rgba(0,123,189,0.20);
  --green:        #059669;
  --green-t:      rgba(5,150,105,0.09);
  --green-b:      rgba(5,150,105,0.20);
  --orange:       #F97316;
  --border:       rgba(26,22,20,0.10);
  --radius:       16px;
  --radius-lg:    24px;
  --radius-xl:    40px;
  --pill:         100px;
  --ease:         cubic-bezier(0.16,1,0.3,1);
  --sh-sm:        0 2px 16px rgba(26,22,20,0.06);
  --sh-md:        0 8px 40px rgba(26,22,20,0.10);
  --sh-lg:        0 24px 80px rgba(26,22,20,0.13);
  --nav-bg:       rgba(251,247,245,0.90);
}

/* --- Tokens Dark -------------------------------------------- */
[data-theme="dark"] {
  --bg:           #0F172A;
  --bg-white:     #1E293B;
  --bg-blush:     #162032;
  --bg-dark:      #040C1A;
  --bg-secondary: #1E293B;
  --text:         #F1F5F9;
  --text-mid:     #94A3B8;
  --text-muted:   #64748B;
  --coral:        #F97316;
  --coral-a:      #F97316;
  --coral-h:      #EA6C0A;
  --coral-t:      rgba(249,115,22,0.10);
  --coral-b:      rgba(249,115,22,0.22);
  --blue:         #38BDF8;
  --blue-t:       rgba(56,189,248,0.09);
  --blue-b:       rgba(56,189,248,0.20);
  --green:        #10B981;
  --green-t:      rgba(16,185,129,0.09);
  --green-b:      rgba(16,185,129,0.20);
  --orange:       #F97316;
  --border:       rgba(255,255,255,0.08);
  --sh-sm:        0 2px 16px rgba(0,0,0,0.30);
  --sh-md:        0 8px 40px rgba(0,0,0,0.40);
  --sh-lg:        0 24px 80px rgba(0,0,0,0.55);
  --nav-bg:       rgba(15,23,42,0.92);
}

/* --- Read Progress Bar -------------------------------------- */
#read-progress { position:fixed; top:0; left:0; height:3px; background:var(--coral); width:0%; z-index:1001; transition:width .1s linear; }

/* --- Breadcrumb Bar ----------------------------------------- */
.guide-breadcrumb-bar { padding: 92px 0 12px; }
.guide-breadcrumb-bar-inner { max-width:1100px; margin:0 auto; padding:0 24px; display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-muted); flex-wrap:wrap; }
.guide-breadcrumb-bar-inner a { color:var(--text-muted); transition:color .2s; }
.guide-breadcrumb-bar-inner a:hover { color:var(--coral); }
.guide-breadcrumb-bar-inner .bc-sep { color:var(--border); padding:0 2px; }
.guide-breadcrumb-bar-inner .bc-current { color:var(--text-mid); font-weight:500; }

/* --- Page Width Container ----------------------------------- */
.guide-page-wrap { max-width:1100px; margin:0 auto; }

/* --- Guide Header ------------------------------------------- */
.guide-header { padding:48px 0 0; background:var(--bg); position:relative; overflow:hidden; }
.guide-header-inner { max-width:1100px; margin:0 auto; position:relative; }
.guide-header h1 { font-size:clamp(30px,4.5vw,52px); color:var(--text); margin-bottom:20px; line-height:1.1; }
.guide-header .subtitle { font-size:18px; color:var(--text-mid); line-height:1.75; max-width:800px; }

/* --- Article Wrap & Body ------------------------------------ */
.article-wrap { max-width:1100px; margin:0 auto; padding:56px 24px 80px; }
.article-intro { font-size:19px; line-height:1.85; color:var(--text-mid); margin-bottom:48px; }
.article-body h2 { font-size:clamp(22px,3vw,34px); color:var(--text); margin:56px 0 20px; margin-bottom:48px; }
.article-body h3 { font-size:20px; color:var(--text); margin:32px 0 12px; }
.article-body p { font-size:17px; line-height:2.3; color:var(--text-mid); margin-bottom:20px; }
.article-body strong { color:var(--text); }
.article-body a:not(.btn) { color:var(--coral); }
.article-body ul { margin:16px 0 24px; padding-left:0; list-style:none; display:flex; flex-direction:column; gap:24px; }
.article-body li { font-size:16px; line-height:2.3; color:var(--text-mid); padding-left:24px; position:relative; }
.article-body li::before { content:''; position:absolute; left:0; top:10px; width:8px; height:10px; border-radius:50%; background:var(--coral); }

/* --- Short Answer Box --------------------------------------- */
.short-answer { background:var(--blue-t); border-left:4px solid var(--blue); border-radius:0 var(--radius) var(--radius) 0; padding:20px 24px; margin:0 0 28px; }
.short-answer-label { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--blue); margin-bottom:8px; }
.short-answer p { font-size:16px; line-height:1.7; color:var(--text); margin:0; }

/* --- Pull Quote -------------------------------------------- */
.pull-quote { border-left:4px solid var(--coral); padding:20px 28px; margin:36px 0; background:var(--coral-t); border-radius:0 var(--radius) var(--radius) 0; }
.pull-quote p { font-family:'DM Serif Display',serif; font-size:22px; line-height:1.5; color:var(--text); font-style:italic; margin:0; }

/* --- Inline CTA -------------------------------------------- */
.cta-inline { background:var(--bg-dark); border-left:4px solid var(--coral); border-radius:var(--radius-lg); padding:32px 36px; margin:48px 0; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.cta-inline-text h3 { font-size:22px; color:#fff; margin-bottom:8px; }
.cta-inline-text p { font-size:15px; color:rgba(255,255,255,.72); margin:0; }

/* --- Key Takeaway ------------------------------------------ */
.key-takeaway { background:linear-gradient(135deg,rgba(232,76,43,.08),rgba(0,123,189,.08)); border:1px solid var(--coral-b); border-radius:var(--radius-lg); padding:32px 36px; margin:48px 0; }
.key-takeaway h3 { font-size:22px; color:var(--text); margin-bottom:12px; }
.key-takeaway p { font-size:16px; color:var(--text-mid); line-height:1.8; margin:0; }

/* --- Buttons ----------------------------------------------- */
.btn { display:inline-flex; align-items:center; gap:8px; font-family:'Inter',sans-serif; font-weight:700; font-size:15px; padding:14px 28px; border-radius:var(--pill); border:none; cursor:pointer; transition:all .25s; text-decoration:none; white-space:nowrap; }
.btn-primary { background:var(--coral); color:#fff; }
.btn-primary:hover { background:var(--coral-h); transform:translateY(-2px); box-shadow:0 10px 32px rgba(232,76,43,.3); }
.btn-white { background:#fff; color:#1A1614; }
.btn-white:hover { transform:translateY(-2px); box-shadow:0 12px 40px rgba(0,0,0,.3); }
.btn-sm { font-size:13px; padding:9px 20px; }

/* --- FAQ Section ------------------------------------------- */
.faq-section { margin:56px 0; }
.faq-section h2 { font-size:32px; color:var(--text); margin-bottom:28px; }
.faq-item { border:1px solid var(--border); border-radius:var(--radius); margin-bottom:8px; overflow:hidden; transition:border-color .2s; }
.faq-item:hover { border-color:var(--coral-b); }
.faq-q { display:flex; justify-content:space-between; align-items:center; padding:20px 24px; cursor:pointer; gap:16px; }
.faq-q span { font-size:16px; font-weight:600; color:var(--text); line-height:1.4; }
.faq-icon { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:var(--coral-t); color:var(--coral); display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; transition:transform .2s; }
.faq-item.open .faq-icon { transform:rotate(45deg); }
.faq-a { display:none; padding:0 24px 20px; font-size:15px; color:var(--text-mid); line-height:1.75; }
.faq-item.open .faq-a { display:block; }

/* --- Related Section --------------------------------------- */
.related-section { background:var(--bg-white); padding:56px 24px; border-top:1px solid var(--border); }
.related-inner { max-width:1100px; margin:0 auto; }
.related-section h2 { font-size:28px; color:var(--text); margin-bottom:28px; }
.related-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.related-card { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px; transition:all .2s; text-decoration:none; display:block; }
.related-card:hover { border-color:var(--coral-b); transform:translateY(-3px); box-shadow:var(--sh-md); }
.related-card .rc-tag { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--coral); margin-bottom:10px; }
.related-card h3 { font-size:18px; color:var(--text); line-height:1.3; margin-bottom:10px; }
.related-card p { font-size:14px; color:var(--text-muted); line-height:1.6; margin:0; }

/* --- CTA Section ------------------------------------------- */
.cta-section { background:var(--bg-dark); padding:72px 24px; text-align:center; border-radius:var(--radius-lg); margin:0 0 40px; }
.cta-section-inner { max-width:560px; margin:0 auto; }
.cta-section h2 { font-family:'DM Serif Display',serif; font-size:clamp(26px,4vw,42px); color:#fff; margin-bottom:18px; }
.cta-section p { font-size:17px; color:rgba(255,255,255,.55); line-height:1.8; margin-bottom:36px; }

/* --- Guide Meta Elements ------------------------------------ */
.guide-label { display:inline-flex; align-items:center; gap:6px; background:var(--coral-t); color:var(--coral); border:1px solid var(--coral-b); border-radius:var(--pill); padding:5px 14px; margin-bottom:20px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; }
.guide-num { display:inline-flex; align-items:center; background:var(--blue-t); color:var(--blue); border:1px solid var(--blue-b); border-radius:var(--pill); padding:5px 14px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; }
.guide-meta { display:flex; align-items:center; gap:12px; margin-bottom:24px; flex-wrap:wrap; }
.guide-topic { font-size:13px; color:var(--text-muted); font-weight:500; }
.guide-series { display:inline-flex; align-items:center; gap:8px; margin-bottom:22px; }
.series-pip { width:8px; height:8px; border-radius:50%; background:var(--coral); }
.series-text { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--text-muted); }

/* --- Industry / D-series Components ------------------------ */
.query-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.query-card { background:var(--bg-white); border:1px solid var(--border); border-radius:8px; padding:12px 14px; font-size:0.9rem; font-style:italic; color:var(--text-mid); }
.reason-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.reason-card { border:1px solid var(--border); border-radius:var(--radius); padding:18px; }
.reason-card h3 { font-family:'Inter',sans-serif; font-weight:700; font-size:0.95rem; margin-bottom:8px; color:var(--text); }
.reason-card p { font-size:0.85rem; color:var(--text-muted); margin:0; line-height:1.55; }
.step-list { display:flex; flex-direction:column; gap:12px; }
.step-item { display:flex; gap:14px; align-items:flex-start; font-size:0.95rem; color:var(--text-mid); line-height:1.65; }
.step-num { width:26px; height:26px; border-radius:50%; background:var(--coral); color:#fff; display:flex; align-items:center; justify-content:center; font-size:0.75rem; font-weight:700; flex-shrink:0; margin-top:2px; }
.trust-box { background:var(--bg-secondary); border-radius:var(--radius); padding:20px; min-width:200px; max-width:240px; text-align:center; flex-shrink:0; }
.trust-icon { font-size:2.5rem; margin-bottom:8px; }
.trust-label { font-size:0.75rem; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.06em; }
.trust-title { font-size:1rem; font-weight:700; margin-top:6px; color:var(--text); }
.trust-sub { font-size:0.82rem; color:var(--text-muted); margin-top:4px; }
.section-label { font-size:0.75rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); margin-bottom:16px; }
.cross-link-card { border:1px solid var(--border); border-radius:var(--radius); padding:20px; display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 0 40px; }
.cross-link-card .cl-meta { font-size:0.8rem; color:var(--text-muted); margin-bottom:4px; }
.cross-link-card .cl-title { font-weight:700; color:var(--text); font-size:1rem; }
.cross-link-card .cl-desc { font-size:0.85rem; color:var(--text-muted); margin-top:4px; }
.industry-cta { background:var(--bg-dark); border-radius:var(--radius-lg); padding:36px; text-align:center; color:#fff; margin:0 0 48px; }
.industry-cta h2 { font-size:1.4rem; font-weight:800; margin:0 0 12px; color:#fff; }
.industry-cta p { margin:0 0 24px; opacity:0.85; font-size:0.95rem; }
.page-header-grid { padding:48px 24px 36px; display:flex; gap:32px; align-items:flex-start; justify-content:space-between; }
.page-header-grid .header-body { flex:1; }
.industry-badge { display:inline-block; background:var(--bg-white); border:1px solid var(--border); color:var(--text-muted); font-size:0.75rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:4px 12px; border-radius:20px; margin-bottom:16px; }

/* --- Nav (injected via header-loader.js) ------------------- */
nav { position:fixed; top:14px; left:50%; transform:translateX(-50%); width:calc(100% - 32px); max-width:1100px; z-index:1000; background:var(--nav-bg); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:1px solid var(--coral-b); border-radius:var(--pill); padding:10px 18px; display:flex; align-items:center; justify-content:space-between; gap:12px; animation:navIn .8s var(--ease) both; }
@keyframes navIn { from { opacity:0; } to { opacity:1; } }
.nav-logo { display:flex; align-items:center; gap:9px; flex-shrink:0; }
.nav-logo-svg { width:38px; height:38px; flex-shrink:0; }
.nav-logo-name { display:flex; font-size:17px; font-weight:800; line-height:1; }
.nav-logo-name .ai  { color:var(--blue); }
.nav-logo-name .vis { color:var(--coral); margin-left:3px; }
.nav-logo-sub { font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--text-muted); margin-top:3px; display:block; }
.nav-links { display:flex; align-items:center; gap:2px; list-style:none; }
.nav-links a { font-size:14px; font-weight:500; color:var(--text-mid); padding:7px 14px; border-radius:var(--pill); transition:all .2s; }
.nav-links a:hover, .nav-links a.active { color:var(--coral); background:var(--coral-t); }
.nav-right { display:flex; align-items:center; gap:8px; }
.theme-btn { width:34px; height:34px; border-radius:50%; border:1px solid var(--border); background:var(--bg-white); cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--text-mid); flex-shrink:0; transition:all .2s; }
.theme-btn:hover { border-color:var(--coral); color:var(--coral); }
.i-sun  { display:none; }
.i-moon { display:block; }
[data-theme="dark"] .i-sun  { display:block; }
[data-theme="dark"] .i-moon { display:none; }
.nav-hamburger { display:none; background:none; border:none; cursor:pointer; color:var(--text); padding:4px; }
.nav-cta { font-size:13px; font-weight:700; padding:9px 20px; border-radius:var(--pill); background:var(--coral); color:#fff; border:none; cursor:pointer; transition:background .2s; text-decoration:none; white-space:nowrap; }
.nav-cta:hover { background:var(--coral-h); }

/* --- Prose Utility (bare content outside .article-body) ---- */
/* Apply .prose to any section wrapper that contains raw p/ul/h2/h3 tags */
.prose p,
.tab-panel p,
.guide-content p,
.content-section p {
  font-size: 16px;
  line-height: 1.85;
  color: var(--text-mid);
  margin-bottom: 18px;
  max-width: 720px;
}

.prose h2,
.tab-panel h2,
.guide-content h2,
.content-section h2 {
  font-size: clamp(20px, 2.8vw, 30px);
  color: var(--text);
  margin-top: 40px;
  margin-bottom: 16px;
  padding-bottom: 8px;
}

.prose h3,
.tab-panel h3,
.guide-content h3,
.content-section h3 {
  font-size: 18px;
  color: var(--text);
  margin-top: 28px;
  margin-bottom: 12px;
}

.prose ul,
.tab-panel ul,
.guide-content ul,
.content-section ul {
  list-style: none;
  padding: 0;
  margin: 12px 0 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.prose li,
.tab-panel li,
.guide-content li,
.content-section li {
  font-size: 15px;
  line-height: 1.75;
  color: var(--text-mid);
  padding-left: 22px;
  position: relative;
}

.prose li::before,
.tab-panel li::before,
.guide-content li::before,
.content-section li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--coral);
}

/* First h2 on a page/panel shouldn't have top margin */
.prose h2:first-child,
.tab-panel h2:first-child { margin-top: 0; }

/* --- Responsive -------------------------------------------- */
@media(max-width:900px) {
  .reason-grid { grid-template-columns:1fr 1fr; }
  .page-header-grid { flex-direction:column; }
  .trust-box { max-width:100%; min-width:0; }
}
@media(max-width:768px) {
  nav { padding:9px 14px; }
  .nav-links { display:none; }
  .nav-hamburger { display:block; }
  .guide-breadcrumb-bar { padding-top:68px; }
  .guide-header { padding:36px 0 0; }
  .article-wrap { padding:40px 24px 60px; }
  .cta-inline { flex-direction:column; align-items:flex-start; }
  .related-grid { grid-template-columns:1fr; }
  .cta-section { border-radius:var(--radius); }
  .query-grid { grid-template-columns:1fr; }
  .reason-grid { grid-template-columns:1fr; }
  .cross-link-card { flex-direction:column; }
}
