/* ============================================
   GRAND VISION — SHARED ARTICLE STYLES
   Single source for the .gv-article template (hero, body, headings,
   series-nav, disclaimer, responsive). Link this in every article:
     <link rel="stylesheet" href="/assets/css/article.css">
   The P.S. + Keep-reading blocks are injected separately by
   /assets/js/gv-article-end.js.
   ============================================ */
*, *::before, *::after { box-sizing: border-box; }
    body { margin: 0; background: #fdfbf7; }

    .gv-article { font-family: 'Newsreader', Georgia, serif; color: #25304a; }

    /* Hero (text) */
    .gv-article .art-hero { max-width: 820px; margin: 0 auto; padding: 56px 32px 36px; text-align: center; }
    .gv-article .art-back { display: inline-flex; align-items: center; gap: 9px; font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: #1a2744; background: #fff; border: 0.5px solid rgba(26,39,68,0.18); border-radius: 100px; padding: 10px 20px 10px 16px; text-decoration: none; margin-bottom: 38px; box-shadow: 0 1px 2px rgba(26,39,68,0.04); transition: border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; }
    .gv-article .art-back:hover { color: #c9a84c; border-color: rgba(201,168,76,0.65); box-shadow: 0 6px 16px -8px rgba(26,39,68,0.22); }
    .gv-article .art-back .arr { font-size: 14px; line-height: 1; transition: transform 0.2s ease; }
    .gv-article .art-back:hover .arr { transform: translateX(-3px); color: #c9a84c; }
    .gv-article .art-tag { display: inline-block; font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: #c9a84c; margin-bottom: 22px; }
    .gv-article .art-tag.series { color: #1a2744; }
    .gv-article .art-title { font-family: 'Cormorant Garamond', serif; font-size: 56px; font-weight: 400; font-style: italic; line-height: 1.08; color: #1a2744; margin: 0 0 26px; letter-spacing: -0.005em; }
    .gv-article .art-meta { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(37,48,74,0.55); }
    .gv-article .art-meta .dot { color: #c9a84c; margin: 0 8px; }

    /* Hero image */
    .gv-article .art-hero-image { max-width: 1100px; margin: 12px auto 56px; padding: 0 32px; }
    .gv-article .art-hero-image img { width: 100%; height: auto; display: block; border-radius: 3px; box-shadow: 0 30px 70px -30px rgba(26,39,68,0.4); }

    /* Body */
    .gv-article .art-body { max-width: 760px; margin: 0 auto; padding: 0 32px 64px; font-size: 19px; line-height: 1.78; font-weight: 400; }
    .gv-article .art-body p { margin: 0 0 26px; }
    .gv-article .art-body p.lead { font-size: 23px; line-height: 1.6; color: #1a2744; }
    .gv-article .art-body strong { font-weight: 500; color: #1a2744; }
    .gv-article .art-body em { font-style: italic; }
    .gv-article .art-body h2 { font-family: 'Cormorant Garamond', serif; font-size: 34px; font-weight: 500; font-style: italic; line-height: 1.15; color: #1a2744; margin: 52px 0 22px; }
    .gv-article .art-body h3 { font-family: 'Montserrat', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #c9a84c; margin: 36px 0 14px; }
    .gv-article .art-body p.callout { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-style: italic; font-weight: 400; line-height: 1.4; color: #1a2744; text-align: center; margin: 40px 0; padding: 0 8px; }
    .gv-article .art-rule { width: 44px; height: 1px; background: #c9a84c; opacity: 0.6; margin: 48px auto; border: none; }

    /* Sign-off */
    .gv-article .art-signoff { margin: 44px 0 0; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 22px; color: #1a2744; line-height: 1.4; }
    .gv-article .art-signoff strong { font-weight: 600; font-style: normal; }
    .gv-article .art-signoff .role { display: block; font-family: 'Montserrat', sans-serif; font-size: 11px; font-style: normal; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(37,48,74,0.5); margin-top: 8px; }

    /* Series prev/next nav */
    .gv-article .art-series-nav { max-width: 760px; margin: 8px auto 0; padding: 0 32px; display: flex; gap: 16px; }
    .gv-article .art-series-nav a { flex: 1; display: block; text-decoration: none; padding: 20px 22px; background: #fff; border: 0.5px solid rgba(26,39,68,0.1); border-radius: 4px; transition: border-color 0.2s ease, transform 0.2s ease; }
    .gv-article .art-series-nav a:hover { border-color: rgba(201,168,76,0.5); transform: translateY(-2px); }
    .gv-article .art-series-nav .dir { font-family: 'Montserrat', sans-serif; font-size: 9px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #c9a84c; margin-bottom: 8px; }
    .gv-article .art-series-nav .ttl { font-family: 'Cormorant Garamond', serif; font-size: 18px; font-style: italic; color: #1a2744; line-height: 1.25; }
    .gv-article .art-series-nav .next-link { text-align: right; }

    /* Disclaimer */
    .gv-article .art-disclaimer { background: #fdfbf7; padding: 40px 32px 72px; }
    .gv-article .art-disclaimer .inner { max-width: 760px; margin: 0 auto; text-align: center; }
    .gv-article .art-disclaimer p { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 300; line-height: 1.7; color: rgba(37,48,74,0.45); margin: 0; font-style: italic; }
    .gv-article .art-disclaimer a { color: rgba(37,48,74,0.6); }

    @media (max-width: 700px) {
      .gv-article .art-hero { padding: 40px 24px 28px; }
      .gv-article .art-title { font-size: 38px; }
      .gv-article .art-hero-image { padding: 0 20px; margin-bottom: 40px; }
      .gv-article .art-body { font-size: 18px; padding: 0 24px 48px; }
      .gv-article .art-body p.lead { font-size: 20px; }
      .gv-article .art-body h2 { font-size: 28px; margin: 40px 0 18px; }
      .gv-article .art-body h3 { font-size: 13px; margin: 30px 0 12px; }
      .gv-article .art-body p.callout { font-size: 22px; }
      .gv-article .art-series-nav { flex-direction: column; }
    }
