/* ====================================================
   PARSVISOR — Shared Stylesheet
   Palette: Ink navy / Gold / Cream / Teal
   ==================================================== */
:root{
  --ink:#0B1320;
  --ink-2:#121b2c;
  --gold:#C9A227;
  --gold-soft:#E4C766;
  --cream:#F4EFE4;
  --paper:#FBF8F1;
  --teal:#2F5D62;
  --charcoal:#1B1C1E;
  --maxw: 1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--charcoal);
  font-family:'Inter', sans-serif; font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Playfair Display', serif; font-weight:700; color:var(--ink); margin:0 0 .5em; letter-spacing:.2px;}
.mono{font-family:'IBM Plex Mono', monospace;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{padding:0; margin:0; list-style:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
.eyebrow{font-family:'IBM Plex Mono', monospace; font-size:12.5px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); font-weight:600; display:inline-flex; align-items:center; gap:10px;}
.eyebrow::before{content:""; width:22px; height:1px; background:var(--gold);}
.btn{display:inline-flex; align-items:center; gap:10px; padding:15px 30px; border-radius:2px; font-weight:600; font-size:15px; letter-spacing:.3px; cursor:pointer; border:1px solid transparent; transition:all .25s ease;}
.btn-gold{background:var(--gold); color:var(--ink);}
.btn-gold:hover{background:var(--gold-soft);}
.btn-ghost{border:1px solid rgba(255,255,255,.35); color:var(--paper);}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold);}
.btn-line{border:1px solid var(--ink); color:var(--ink);}
.btn-line:hover{background:var(--ink); color:var(--paper);}
.btn-sm{padding:10px 18px; font-size:13px;}
section{padding:96px 0;}
.section-head{max-width:680px; margin-bottom:56px;}
.section-head h2{font-size:clamp(28px,3.4vw,40px); line-height:1.15;}
.section-head p{color:#52514c; font-size:17px; margin-top:14px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

/* ===== TOP BAR / HEADER ===== */
.topbar{background:var(--ink); color:#cdd3da; font-size:13px; font-family:'IBM Plex Mono', monospace;}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; height:38px;}
.topbar a:hover{color:var(--gold);}
.topbar-right{display:flex; gap:22px;}
header.site{background:var(--ink); border-bottom:1px solid rgba(201,162,39,.18); position:sticky; top:0; z-index:50;}
.nav{display:flex; align-items:center; justify-content:space-between; height:84px;}
.logo{font-family:'Playfair Display', serif; font-size:25px; font-weight:800; color:var(--paper); letter-spacing:1px;}
.logo span{color:var(--gold);}
.navlinks{display:flex; gap:30px; align-items:center;}
.navlinks > a{color:#dfe3e8; font-size:14.5px; font-weight:500; letter-spacing:.2px; padding:8px 0; position:relative;}
.navlinks > a:hover, .navlinks > a.active{color:var(--gold);}
.nav-cta{display:flex; align-items:center; gap:18px;}
.nav-cta .btn{padding:11px 22px; font-size:13.5px;}
.menu-toggle{display:none; background:none; border:none; color:var(--paper); font-size:26px; cursor:pointer;}

/* ===== PAGE HEADER BANNER (inner pages) ===== */
.pv-pageheader{
  background:
    radial-gradient(700px 380px at 90% -20%, rgba(201,162,39,.18), transparent 60%),
    linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
  color:var(--paper); padding:70px 0 56px;
}
.breadcrumb{font-family:'IBM Plex Mono'; font-size:12.5px; color:#9aa3ad; margin-bottom:14px;}
.breadcrumb a:hover{color:var(--gold);}
.pv-pageheader h1{color:var(--paper); font-size:clamp(30px,4vw,46px); margin-bottom:14px;}
.pv-pageheader p{color:#c3c9d1; font-size:17px; max-width:640px;}

/* ===== HERO (home) ===== */
.hero{background:radial-gradient(900px 500px at 85% -10%, rgba(201,162,39,.18), transparent 60%), linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%); color:var(--paper); padding:110px 0 0; position:relative; overflow:hidden;}
.hero::after{content:""; position:absolute; inset:0; background-image: repeating-linear-gradient(135deg, rgba(201,162,39,.05) 0 2px, transparent 2px 34px); pointer-events:none;}
.hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center; position:relative; z-index:1;}
.hero h1{color:var(--paper); font-size:clamp(36px,5vw,58px); line-height:1.08; margin:18px 0 22px;}
.hero h1 em{color:var(--gold); font-style:normal;}
.hero p.lead{font-size:18px; color:#c3c9d1; max-width:520px; margin-bottom:34px;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:36px; margin-top:56px; flex-wrap:wrap; padding-bottom:80px;}
.hero-stats div b{display:block; font-family:'Playfair Display',serif; font-size:30px; color:var(--gold);}
.hero-stats div span{font-size:13px; color:#9aa3ad; letter-spacing:.3px;}
.hero-card{background:rgba(255,255,255,.04); border:1px solid rgba(201,162,39,.25); border-radius:4px; padding:34px; backdrop-filter:blur(6px);}
.hero-card h4{color:var(--paper); font-size:15px; letter-spacing:.5px; text-transform:uppercase; font-family:'Inter'; font-weight:600; margin-bottom:18px; display:flex; justify-content:space-between;}
.hero-card h4 small{color:var(--gold); font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:1px;}
.hero-mini-row{display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px dashed rgba(255,255,255,.12); font-size:14.5px;}
.hero-mini-row:last-child{border-bottom:none;}
.hero-mini-row .up{color:#7fd1a0;} .hero-mini-row .down{color:#e08585;}

/* ===== TICKER ===== */
.ticker-band{background:var(--gold); color:var(--ink); overflow:hidden; white-space:nowrap; border-top:1px solid rgba(0,0,0,.1); border-bottom:1px solid rgba(0,0,0,.1);}
.ticker-track{display:inline-block; padding:11px 0; font-family:'IBM Plex Mono', monospace; font-size:13.5px; font-weight:600; animation: scrollTicker 38s linear infinite;}
.ticker-track span{margin:0 26px; display:inline-flex; align-items:center; gap:8px;}
.ticker-track span::before{content:"◆"; font-size:9px; color:var(--ink); opacity:.6;}
@keyframes scrollTicker{ 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }
@media (prefers-reduced-motion: reduce){ .ticker-track{animation:none;} }

/* ===== MARKET PULSE ===== */
.pulse{background:var(--ink); color:var(--paper);}
.pulse-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:1px; background:rgba(201,162,39,.18); border:1px solid rgba(201,162,39,.18); border-radius:4px; overflow:hidden;}
.pulse-cell{background:var(--ink-2); padding:30px 24px;}
.pulse-cell .lbl{font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:#9aa3ad; font-family:'IBM Plex Mono';}
.pulse-cell .val{font-family:'Playfair Display',serif; font-size:28px; color:var(--paper); margin:10px 0 6px;}
.pulse-cell .chg{font-family:'IBM Plex Mono'; font-size:13px;}
.pulse-cell .chg.up{color:#7fd1a0;} .pulse-cell .chg.down{color:#e08585;}
.pulse-note{color:#7c8694; font-size:12.5px; margin-top:16px; font-family:'IBM Plex Mono';}

/* ===== GRIDS ===== */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}

/* ===== SERVICE CARDS ===== */
.svc-card{background:var(--paper); border:1px solid #e7e0d2; border-radius:3px; padding:34px 28px; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
.svc-card:hover{transform:translateY(-5px); box-shadow:0 18px 40px -20px rgba(11,19,32,.25); border-color:var(--gold);}
.icon-badge{width:54px; height:54px; border-radius:50%; background:var(--ink); display:flex; align-items:center; justify-content:center; margin-bottom:20px; flex-shrink:0;}
.icon-badge svg{width:26px; height:26px;}
.svc-card h3{font-size:20px; margin-bottom:10px;}
.svc-card p{color:#5b5a54; font-size:15px; margin-bottom:16px;}
.svc-card .more{font-size:13.5px; font-weight:600; color:var(--teal); display:inline-flex; gap:6px; align-items:center;}

/* ===== FEATURE BOX (exhibitions / investment) ===== */
.feature-box{background:var(--cream); border:1px solid #e7ddc1; border-radius:4px; padding:46px; margin-bottom:30px;}
.feature-box.dark{background:var(--ink); border-color:rgba(201,162,39,.25);}
.fb-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:32px; flex-wrap:wrap; gap:16px;}
.fb-head h2{font-size:28px; margin:6px 0 0;}
.exh-row, .inv-row{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.exh-card{background:var(--paper); border:1px solid #e7e0d2; border-radius:3px; padding:22px; position:relative;}
.exh-card .date-tag{position:absolute; top:-12px; left:18px; background:var(--ink); color:var(--gold); font-family:'IBM Plex Mono'; font-size:11px; padding:5px 10px; letter-spacing:.5px; border-radius:2px;}
.exh-card h4{font-size:16px; margin:14px 0 6px;}
.exh-card .loc{font-size:13px; color:#7a7568; font-family:'IBM Plex Mono';}
.exh-card p{font-size:13.5px; color:#5b5a54; margin:8px 0 0;}
.inv-card{background:var(--ink); color:var(--paper); border-radius:3px; padding:26px; position:relative; overflow:hidden;}
.inv-card .tag{font-family:'IBM Plex Mono'; font-size:11px; color:var(--gold); letter-spacing:1.5px; text-transform:uppercase;}
.inv-card h4{color:var(--paper); font-size:18px; margin:10px 0 8px;}
.inv-card p{color:#b9bfc7; font-size:14px; margin-bottom:14px;}
.inv-card .roi{font-family:'IBM Plex Mono'; font-size:13px; color:#7fd1a0;}

/* ===== CIP ===== */
.cip{background:var(--teal); color:var(--paper);}
.cip .section-head h2{color:var(--paper);}
.cip .section-head p{color:#cfe1e0;}
.cip-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.cip-card{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:3px; padding:28px 22px;}
.cip-card .icon-badge{background:var(--gold);}
.cip-card h4{color:var(--paper); font-size:16.5px; margin-bottom:8px;}
.cip-card p{color:#d6e6e5; font-size:14px;}

/* ===== ABOUT STRIP ===== */
.about-strip{background:var(--ink); color:var(--paper);}
.about-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center;}
.about-grid h2{color:var(--paper); font-size:32px;}
.about-grid p{color:#c3c9d1; font-size:16.5px;}
.stat-row{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:30px;}
.stat-row div b{font-family:'Playfair Display'; font-size:34px; color:var(--gold); display:block;}
.stat-row div span{font-size:13px; color:#9aa3ad;}

/* ===== BLOG ===== */
.blog-card{border:1px solid #e7e0d2; border-radius:3px; overflow:hidden; background:var(--paper);}
.blog-thumb{height:170px; background:linear-gradient(135deg,var(--ink),var(--teal)); display:flex; align-items:center; justify-content:center;}
.blog-thumb span{font-family:'IBM Plex Mono'; color:rgba(255,255,255,.5); font-size:12px; letter-spacing:2px;}
.blog-body{padding:24px;}
.blog-cat{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--teal); letter-spacing:1px; text-transform:uppercase;}
.blog-body h3{font-size:18px; margin:10px 0 8px;}
.blog-body p{font-size:14.5px; color:#5b5a54;}
.blog-meta{font-size:12.5px; color:#9b9587; margin-top:14px; font-family:'IBM Plex Mono';}
.filter-tabs{display:flex; gap:10px; margin-bottom:40px; flex-wrap:wrap;}
.filter-tabs span{padding:9px 18px; border:1px solid #e7e0d2; border-radius:30px; font-size:13.5px; font-weight:600; color:#5b5a54; cursor:default;}
.filter-tabs span.active{background:var(--ink); color:var(--gold); border-color:var(--ink);}
.pagination{display:flex; justify-content:center; gap:8px; margin-top:50px;}
.pagination span{width:38px; height:38px; display:flex; align-items:center; justify-content:center; border:1px solid #e7e0d2; border-radius:50%; font-family:'IBM Plex Mono'; font-size:13px; color:#5b5a54;}
.pagination span.active{background:var(--ink); color:var(--gold); border-color:var(--ink);}

/* ===== ARTICLE (blog single) ===== */
.article-body{max-width:740px; margin:0 auto; font-size:17.5px; color:#33322e;}
.article-body h2{font-size:26px; margin-top:1.6em;}
.article-body p{margin-bottom:1.3em;}
.article-body ul, .article-body ol{margin:0 0 1.3em !important; padding-left:22px;}
.article-body li{margin-bottom:.6em !important; padding:0 !important;}
.article-body header nav[aria-label="Table of Contents"]{
  background:var(--cream); border:1px solid #e7ddc1; border-radius:4px; padding:22px 26px; margin-bottom:2em;
}
.article-body header nav[aria-label="Table of Contents"] strong{display:block; font-family:'IBM Plex Mono'; font-size:12.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); margin-bottom:10px;}
.article-body header nav[aria-label="Table of Contents"] ol{margin:0; padding-left:20px; columns:2; column-gap:30px;}
.article-body header nav[aria-label="Table of Contents"] a{color:var(--teal); font-weight:600; text-decoration:underline;}
.article-body footer{background:var(--ink); border-radius:4px; padding:30px 32px; margin-top:2.4em;}
.article-body footer p{font-size:15px; color:#cdd3da; border-top:none; padding-top:0; margin:0;}
.article-body footer p strong{color:var(--gold);}
.article-body footer p a{color:var(--gold-soft); text-decoration:underline;}

/* ===== Single blog post: neutralize the theme's own narrow/white post container ===== */
body.single-post{background:var(--paper) !important;}
body.single-post .entry-content,
body.single-post #primary,
body.single-post #content,
body.single-post .site-main,
body.single-post .ast-container,
body.single-post .container,
body.single-post main,
body.single-post article{
  max-width:100% !important; width:100% !important; padding:0 !important; margin:0 !important;
  background:transparent !important; float:none !important;
}
body.single-post .comments-area, body.single-post #comments, body.single-post .comment-respond{display:none !important;}

/* WordPress block themes auto-inject vertical spacing between every
   top-level element inside post content via CSS custom properties and
   the ".is-layout-flow > * + *" selector (the "block gap" system). This
   fights with our own hand-tuned spacing and was the real cause of the
   leftover random gaps between paragraphs/sections. Neutralize it. */
.entry-content, .wp-block-post-content, body.single-post .article-body{ --wp--style--block-gap:0 !important; }
.is-layout-flow > * + *{ margin-top:0 !important; }
.pull-quote{border-left:3px solid var(--gold); padding:6px 0 6px 26px; margin:2em 0; font-family:'Playfair Display'; font-size:22px; color:var(--ink); font-weight:600;}
.author-box{display:flex; gap:18px; align-items:center; border-top:1px solid #e7e0d2; border-bottom:1px solid #e7e0d2; padding:22px 0; margin:2.4em 0;}
.author-avatar{width:52px; height:52px; border-radius:50%; background:var(--ink); flex-shrink:0;}
.author-box b{display:block; font-size:15px; color:var(--ink);}
.author-box span{font-size:13.5px; color:#7a7568;}

/* ===== CONTACT ===== */
.contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:50px;}
.contact-card{display:flex; gap:16px; padding:22px 0; border-bottom:1px solid #e7e0d2;}
.contact-card .icon-badge{background:var(--teal); margin-bottom:0;}
.contact-card b{display:block; font-size:15.5px; color:var(--ink); margin-bottom:4px;}
.contact-card span{font-size:14.5px; color:#5b5a54;}
.form-row{margin-bottom:20px;}
.form-row label{display:block; font-size:13.5px; font-weight:600; color:var(--ink); margin-bottom:8px; letter-spacing:.2px;}
.form-row input, .form-row select, .form-row textarea{
  width:100%; padding:13px 16px; border:1px solid #d8d2c2; border-radius:3px; font-family:'Inter'; font-size:15px; background:var(--paper); color:var(--charcoal);
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold);}
.map-box{height:320px; border-radius:4px; background:repeating-linear-gradient(45deg, #e9e3d3 0 12px, #f1ecdd 12px 24px); border:1px solid #e7ddc1; display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono'; color:#8a8262; font-size:13px; letter-spacing:1px;}

/* ===== CHECK LIST ===== */
.check-list li{display:flex; gap:12px; padding:10px 0; font-size:15.5px; color:#33322e; align-items:flex-start;}
.check-list li::before{content:"✓"; color:var(--gold); font-weight:700; font-size:15px; margin-top:2px;}

/* ===== STEP LIST ===== */
.step-list{display:grid; gap:18px;}
.step-item{display:flex; gap:18px; align-items:flex-start;}
.step-num{font-family:'Playfair Display'; font-size:24px; color:var(--gold); flex-shrink:0; width:38px;}
.step-item h4{font-size:16.5px; margin-bottom:4px;}
.step-item p{font-size:14.5px; color:#5b5a54; margin:0;}

/* ===== CTA BAND ===== */
.cta-band{background:linear-gradient(135deg, var(--ink), var(--ink-2)); color:var(--paper); text-align:center; padding:90px 0;}
.cta-band h2{color:var(--paper); font-size:clamp(26px,3.4vw,38px); max-width:700px; margin:18px auto 28px;}

/* ===== FOOTER ===== */
footer{background:#0a0f18; color:#9aa3ad; padding:70px 0 30px; font-size:14.5px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:50px;}
.foot-grid h4{color:var(--paper); font-size:14px; letter-spacing:1px; text-transform:uppercase; font-family:'Inter'; margin-bottom:18px;}
.foot-grid a{display:block; margin-bottom:10px; color:#9aa3ad;}
.foot-grid a:hover{color:var(--gold);}
.foot-logo{font-family:'Playfair Display'; font-size:24px; color:var(--paper); margin-bottom:14px;}
.foot-logo span{color:var(--gold);}
.foot-bottom{border-top:1px solid rgba(255,255,255,.08); padding-top:24px; display:flex; justify-content:space-between; font-size:12.5px; color:#6e7782; flex-wrap:wrap; gap:10px;}

[data-reveal]{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
[data-reveal].in{opacity:1; transform:translateY(0);}

@media (max-width: 980px){
  .hero-grid, .about-grid, .contact-grid{grid-template-columns:1fr !important;}
  .pulse-grid{grid-template-columns:repeat(auto-fit, minmax(120px, 1fr)) !important;}
  .grid-3, .exh-row, .inv-row, .cip-grid, .grid-4{grid-template-columns:repeat(2,1fr) !important;}
  .navlinks{display:none;}
  .menu-toggle{display:block;}
  .foot-grid{grid-template-columns:1fr 1fr !important;}
}
@media (max-width:560px){
  section{padding:64px 0;}
  .grid-3, .exh-row, .inv-row, .cip-grid, .grid-4, .pulse-grid, .foot-grid{grid-template-columns:1fr !important;}
}

/* Any embedded iframe (Google Maps, YouTube, etc.) copy-pasted with a
   fixed pixel width/height attribute will otherwise overflow the screen
   on mobile and force horizontal scrolling. This makes every iframe on
   the site respect its container width regardless of the width/height
   attributes in its original embed code. */
iframe{max-width:100%;}
.map-box iframe{width:100%; height:100%; border:0;}

/* =====================================================================
   Hide the Hello Elementor theme's own header/footer/title everywhere,
   since every PARSVISOR page and post renders its own header/footer.
   (Confirmed exact class names from the live site's HTML.)
   ===================================================================== */
.site-header,
.site-footer,
.page-header,
.entry-header {
  display: none !important;
}

/* =====================================================================
   v2.1 — Real mobile hamburger menu + header overlap fix
   ===================================================================== */
@media (max-width: 980px) {
  header.site { position: relative; }
  .navlinks {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--ink);
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 10px 24px 22px;
    border-top: 1px solid rgba(201, 162, 39, .18);
    box-shadow: 0 16px 28px -12px rgba(0, 0, 0, .45);
    z-index: 60;
  }
  .navlinks.pv-open {
    display: flex;
  }
  .navlinks > a {
    width: 100%;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
  }
  .menu-toggle {
    display: block;
    z-index: 61;
  }
}

@media (max-width: 768px) {
  .topbar .wrap {
    flex-wrap: wrap;
    row-gap: 4px;
    height: auto;
    padding: 8px 0;
  }
  .topbar-right {
    flex-wrap: wrap;
    gap: 10px;
  }
  .nav-cta {
    display: none !important;
  }
  .nav {
    height: auto;
    padding: 14px 0;
  }
}

/* ===== FAQ ACCORDION ===== */
.faq-list{max-width:800px; margin:0 auto;}
.faq-item{border-bottom:1px solid #e7e0d2; padding:22px 0;}
.faq-item summary{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  cursor:pointer; list-style:none;
  font-family:'Playfair Display', serif; font-weight:700; color:var(--ink);
  font-size:18px; line-height:1.4;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::marker{content:"";}
.faq-icon{
  flex:0 0 auto; width:28px; height:28px; border:1px solid var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--gold);
  font-family:'IBM Plex Mono', monospace; font-size:16px;
  transition:transform .25s ease, background .25s ease, color .25s ease;
}
.faq-item[open] .faq-icon{background:var(--gold); color:var(--ink); transform:rotate(45deg);}
.faq-answer{padding:14px 0 4px; max-width:680px;}
.faq-answer p{color:#52514c; font-size:15.5px; line-height:1.7; margin:0;}
@media (max-width: 640px){
  .faq-item summary{font-size:16.5px; gap:14px;}
}
