/*
Theme Name: The Pashupatinath
Theme URI: https://thepashupatinath.example
Author: Araniko Studio
Author URI: https://thepashupatinath.example
Description: A reverent, editorial WordPress theme for The Pashupatinath — the definitive digital gateway to Pashupatinath Temple. Built with a custom static-template router for content/marketing pages, and native dynamic WordPress templates for the Journal (blog list & detail). Includes the full bento/meru/puja/trust/gallery/donate design system.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pashupatinath
*/

/* =====================================================================
   This file is the theme's root stylesheet (required by WordPress).
   It is enqueued directly via get_stylesheet_uri() in functions.php.
   Section 1: Design system, extracted 1:1 from the approved
              ThePashupatinath.html mockup (fonts, colors, components).
   Section 2: WordPress-specific additions — Journal (blog) list/detail,
              pagination, comments, search, 404, forms, alignments.
   ===================================================================== */

/* ---------------------------------------------------------------------
   SECTION 1 — DESIGN SYSTEM (from ThePashupatinath.html)
   --------------------------------------------------------------------- */

  :root{
    --ivory: #F4EEE2;
    --ivory-deep: #ECE2CE;
    --gold: #B8923E;
    --gold-bright: #D8B564;
    --saffron: #A6431C;
    --maroon: #3B1F1A;
    --charcoal: #201A16;
    --white: #FFFDF8;
    --line: rgba(59,31,26,0.14);
    --shadow-soft: 0 20px 60px rgba(32,26,22,0.18);
    --ease: cubic-bezier(.22,.61,.36,1);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ivory);
    color:var(--charcoal);
    font-family:'Manrope',sans-serif;
    font-weight:400;
    line-height:1.6;
    overflow-x:hidden;
  }
  h1,h2,h3,h4,.serif{font-family:'Fraunces',serif;font-weight:500;letter-spacing:-0.01em;}
  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}
  ul{list-style:none;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
  .container{max-width:1240px;margin:0 auto;padding:0 32px;}
  .eyebrow{
    font-size:0.72rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    font-weight:700;
    color:var(--saffron);
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{content:'';width:26px;height:1px;background:var(--saffron);display:inline-block;}
  .om-mark{font-family:'Fraunces',serif;font-size:1.1em;}

  /* scroll reveal */
  .reveal{opacity:0;transform:translateY(28px);transition:opacity 0.9s var(--ease), transform 0.9s var(--ease);}
  .reveal.in{opacity:1;transform:translateY(0);}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .reveal{opacity:1;transform:none;transition:none;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  /* ---------- NAV ---------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:200;
    padding:22px 0;
    transition:background 0.5s var(--ease), padding 0.4s var(--ease), box-shadow 0.4s var(--ease);
  }
  header.scrolled{
    background:rgba(244,238,226,0.92);
    backdrop-filter:blur(14px);
    padding:14px 0;
    box-shadow:0 1px 0 var(--line);
  }
  .nav-inner{display:flex;align-items:center;justify-content:space-between;}
  .logo{
    display:flex;align-items:center;gap:10px;
    font-family:'Fraunces',serif;font-size:1.28rem;font-weight:600;
    color:var(--white);
    transition:color 0.4s var(--ease);
    letter-spacing:0.01em;
  }
  header.scrolled .logo{color:var(--maroon);}
  .logo .mark{
    width:34px;height:34px;border-radius:50%;
    border:1.4px solid currentColor;
    display:flex;align-items:center;justify-content:center;
    font-size:1.05rem;
  }
  .nav-links{display:flex;gap:34px;align-items:center;}
  .nav-links a{
    font-size:0.86rem;font-weight:600;color:var(--white);opacity:0.88;
    position:relative;transition:color 0.4s var(--ease), opacity 0.3s;
  }
  header.scrolled .nav-links a{color:var(--maroon);opacity:0.85;}
  .nav-links a:hover{opacity:1;}
  .nav-links a::after{
    content:'';position:absolute;left:0;bottom:-6px;width:0;height:1px;background:currentColor;
    transition:width 0.35s var(--ease);
  }
  .nav-links a:hover::after{width:100%;}
  .nav-cta{
    padding:11px 22px;border-radius:100px;
    background:var(--gold);color:var(--charcoal) !important;
    font-size:0.82rem;font-weight:700;letter-spacing:0.02em;
    transition:background 0.35s var(--ease), transform 0.3s var(--ease);
  }
  .nav-cta:hover{background:var(--gold-bright);transform:translateY(-1px);}
  .nav-cta::after{display:none;}
  .burger{display:none;width:26px;height:20px;position:relative;}
  .burger span{position:absolute;left:0;right:0;height:1.5px;background:var(--white);transition:0.3s;}
  header.scrolled .burger span{background:var(--maroon);}
  .burger span:nth-child(1){top:0;}
  .burger span:nth-child(2){top:9px;}
  .burger span:nth-child(3){top:18px;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;min-height:100vh;display:flex;align-items:flex-end;
    background:
      linear-gradient(180deg, rgba(20,14,10,0.35) 0%, rgba(20,14,10,0.35) 40%, rgba(20,14,10,0.82) 100%),
      url('https://images.unsplash.com/photo-1605649487212-47bdab064df7?q=80&w=1920&auto=format&fit=crop') center/cover no-repeat;
    color:var(--white);
    padding-bottom:110px;
  }
  .hero-inner{width:100%;}
  .hero .eyebrow{color:var(--gold-bright);}
  .hero .eyebrow::before{background:var(--gold-bright);}
  .hero h1{
    font-size:clamp(2.6rem, 6vw, 5.4rem);
    line-height:1.03;
    max-width:16ch;
    margin:22px 0 26px;
    font-weight:500;
  }
  .hero h1 em{font-style:italic;color:var(--gold-bright);}
  .hero p.lead{
    max-width:46ch;font-size:1.08rem;color:rgba(255,253,248,0.86);
    margin-bottom:38px;font-weight:400;
  }
  .cta-row{display:flex;gap:18px;flex-wrap:wrap;align-items:center;}
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:16px 30px;border-radius:100px;
    font-size:0.92rem;font-weight:700;letter-spacing:0.01em;
    transition:transform 0.35s var(--ease), background 0.35s var(--ease), box-shadow 0.35s var(--ease), color 0.35s var(--ease);
  }
  .btn-primary{background:var(--gold);color:var(--charcoal);}
  .btn-primary:hover{background:var(--gold-bright);transform:translateY(-2px);box-shadow:0 12px 28px rgba(184,146,62,0.35);}
  .btn-ghost{border:1.4px solid rgba(255,253,248,0.5);color:var(--white);}
  .btn-ghost:hover{background:rgba(255,253,248,0.12);border-color:var(--white);}
  .btn-text{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--white);}
  .btn-text svg{transition:transform 0.3s var(--ease);}
  .btn-text:hover svg{transform:translateX(4px);}

  .scroll-cue{
    position:absolute;right:32px;bottom:36px;display:flex;flex-direction:column;align-items:center;gap:10px;
    color:rgba(255,253,248,0.7);font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;
  }
  .scroll-cue .stem{width:1px;height:52px;background:linear-gradient(180deg, rgba(255,253,248,0.8), transparent);position:relative;overflow:hidden;}
  .scroll-cue .stem::after{
    content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;
    background:var(--gold-bright);
    animation:flow 2.4s var(--ease) infinite;
  }
  @keyframes flow{ to{top:100%;} }

  /* ---------- MERU DIVIDER (signature element) ---------- */
  .meru{
    background:var(--white);
    padding:64px 0 10px;
    display:flex;justify-content:center;
  }
  .meru svg{width:min(560px, 80vw);height:auto;}
  .meru path{
    fill:none;stroke:var(--gold);stroke-width:1.4;
    stroke-dasharray:1400;stroke-dashoffset:1400;
    transition:stroke-dashoffset 2.2s var(--ease);
  }
  .meru.in path{stroke-dashoffset:0;}
  .meru .fill-tier{fill:var(--ivory-deep);stroke:none;opacity:0;transition:opacity 1s ease 1.6s;}
  .meru.in .fill-tier{opacity:1;}

  /* ---------- MISSION ---------- */
  .mission{background:var(--white);padding:40px 0 130px;}
  .mission-grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:70px;align-items:start;}
  .mission-quote{
    font-family:'Fraunces',serif;font-style:italic;font-weight:400;
    font-size:clamp(1.6rem, 2.6vw, 2.4rem);line-height:1.35;color:var(--maroon);
  }
  .mission-side p{color:rgba(32,26,22,0.72);margin-bottom:28px;font-size:1.02rem;}
  .pillars{display:grid;gap:22px;margin-top:8px;}
  .pillar{display:flex;gap:16px;align-items:flex-start;padding-top:20px;border-top:1px solid var(--line);}
  .pillar:first-child{border-top:none;padding-top:0;}
  .pillar .icon{
    width:42px;height:42px;border-radius:50%;background:var(--ivory);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--saffron);
  }
  .pillar h4{font-size:1.02rem;margin-bottom:4px;color:var(--charcoal);}
  .pillar p{font-size:0.9rem;color:rgba(32,26,22,0.62);margin:0;}

  /* ---------- SECTION HEADS ---------- */
  .section-head{max-width:640px;margin-bottom:56px;}
  .section-head h2{font-size:clamp(2rem, 3.4vw, 2.9rem);margin-top:16px;color:var(--maroon);}
  .section-head p{margin-top:16px;color:rgba(32,26,22,0.66);font-size:1.03rem;max-width:56ch;}
  .light-on-dark .section-head h2, .light-on-dark .eyebrow{color:var(--gold-bright);}
  .light-on-dark .section-head p{color:rgba(244,238,226,0.72);}

  /* ---------- BENTO EXPLORE ---------- */
  .explore{padding:70px 0 140px;background:var(--ivory);}
  .bento{
    display:grid;grid-template-columns:repeat(4, 1fr);grid-auto-rows:230px;gap:22px;
  }
  .card{
    position:relative;border-radius:18px;overflow:hidden;background:var(--maroon);
    box-shadow:var(--shadow-soft);
  }
  .card.b-wide{grid-column:span 2;}
  .card.b-tall{grid-row:span 2;}
  .card img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    transition:transform 1.1s var(--ease);
    opacity:0.92;
  }
  .card:hover img{transform:scale(1.07);}
  .card::before{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(20,14,10,0.05) 0%, rgba(20,14,10,0.78) 100%);
    z-index:1;
  }
  .card-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:26px;color:var(--white);}
  .card-tag{font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold-bright);font-weight:700;margin-bottom:8px;}
  .card h3{font-size:1.35rem;margin-bottom:6px;font-weight:500;}
  .card p{font-size:0.86rem;color:rgba(244,238,226,0.78);max-width:32ch;}
  .card-arrow{
    position:absolute;top:22px;right:22px;z-index:2;width:36px;height:36px;border-radius:50%;
    border:1px solid rgba(255,253,248,0.5);display:flex;align-items:center;justify-content:center;color:var(--white);
    transition:background 0.3s var(--ease), transform 0.3s var(--ease);
  }
  .card:hover .card-arrow{background:var(--gold);border-color:var(--gold);transform:rotate(45deg);}

  /* ---------- STATS ---------- */
  .stats{background:var(--charcoal);color:var(--ivory);padding:110px 0;position:relative;overflow:hidden;}
  .stats::before{
    content:'ॐ';position:absolute;right:-40px;top:50%;transform:translateY(-50%);
    font-family:'Fraunces',serif;font-size:34rem;color:rgba(184,146,62,0.045);line-height:1;pointer-events:none;
  }
  .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;position:relative;z-index:1;}
  .stat h3{font-size:clamp(2.2rem,3.6vw,3.4rem);color:var(--gold-bright);font-weight:500;margin-bottom:10px;}
  .stat p{font-size:0.88rem;color:rgba(244,238,226,0.66);letter-spacing:0.01em;}

  /* ---------- PUJA SPOTLIGHT ---------- */
  .puja{padding:140px 0;background:var(--white);}
  .puja-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:70px;align-items:center;}
  .puja-img{position:relative;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-soft);aspect-ratio:4/5;}
  .puja-img img{width:100%;height:100%;object-fit:cover;}
  .puja-badge{
    position:absolute;left:20px;bottom:20px;background:rgba(244,238,226,0.94);
    border-radius:14px;padding:16px 18px;display:flex;gap:12px;align-items:center;
    box-shadow:0 10px 30px rgba(0,0,0,0.2);max-width:260px;
  }
  .puja-badge .icon{color:var(--saffron);flex-shrink:0;}
  .puja-badge strong{display:block;font-size:0.86rem;color:var(--charcoal);}
  .puja-badge span{font-size:0.78rem;color:rgba(32,26,22,0.6);}
  .puja-types{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:36px 0 40px;}
  .puja-type{
    padding:20px;border-radius:14px;border:1px solid var(--line);background:var(--ivory);
    transition:border-color 0.3s, transform 0.3s var(--ease);
  }
  .puja-type:hover{border-color:var(--gold);transform:translateY(-3px);}
  .puja-type h4{font-size:1rem;margin-bottom:6px;color:var(--maroon);}
  .puja-type p{font-size:0.84rem;color:rgba(32,26,22,0.6);margin:0;}

  /* ---------- TRUST ---------- */
  .trust{background:var(--ivory-deep);padding:130px 0;}
  .trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:20px;}
  .trust-card{
    background:var(--white);border-radius:18px;padding:38px 32px;box-shadow:0 14px 40px rgba(59,31,26,0.06);
    border:1px solid var(--line);
  }
  .trust-card .icon{
    width:52px;height:52px;border-radius:50%;background:var(--maroon);color:var(--gold-bright);
    display:flex;align-items:center;justify-content:center;margin-bottom:22px;
  }
  .trust-card h3{font-size:1.2rem;margin-bottom:12px;color:var(--maroon);}
  .trust-card p{font-size:0.92rem;color:rgba(32,26,22,0.68);}
  .trust-card .stat-line{margin-top:18px;font-size:0.82rem;font-weight:700;color:var(--saffron);}

  /* ---------- GALLERY ---------- */
  .gallery{padding:140px 0;background:var(--white);}
  .gal-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;gap:14px;}
  .gal-grid a{position:relative;grid-column:span 2;border-radius:14px;overflow:hidden;}
  .gal-grid a:nth-child(1),.gal-grid a:nth-child(4){grid-row:span 2;}
  .gal-grid img{width:100%;height:100%;object-fit:cover;transition:transform 0.8s var(--ease);}
  .gal-grid a:hover img{transform:scale(1.08);}
  .gal-grid a::after{
    content:'';position:absolute;inset:0;background:rgba(20,14,10,0);transition:background 0.3s;
  }
  .gal-grid a:hover::after{background:rgba(20,14,10,0.15);}
  .gallery-foot{display:flex;justify-content:space-between;align-items:center;margin-top:44px;flex-wrap:wrap;gap:20px;}

  /* ---------- TESTIMONIALS ---------- */
  .testimonials{background:var(--maroon);color:var(--white);padding:130px 0;overflow:hidden;}
  .t-track{display:flex;gap:24px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none;}
  .t-track::-webkit-scrollbar{display:none;}
  .t-card{
    flex:0 0 auto;width:380px;background:rgba(244,238,226,0.06);border:1px solid rgba(244,238,226,0.14);
    border-radius:18px;padding:32px;
  }
  .t-card p.quote{font-family:'Fraunces',serif;font-style:italic;font-size:1.12rem;line-height:1.5;margin-bottom:24px;color:var(--ivory);}
  .t-person{display:flex;align-items:center;gap:12px;}
  .t-avatar{width:38px;height:38px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--maroon);font-family:'Fraunces',serif;}
  .t-person strong{display:block;font-size:0.9rem;}
  .t-person span{font-size:0.78rem;color:rgba(244,238,226,0.6);}

  /* ---------- DONATION ---------- */
  .donate{padding:140px 0;background:var(--ivory);}
  .donate-box{
    background:linear-gradient(135deg, var(--maroon), #4a2620);
    border-radius:26px;padding:70px;display:grid;grid-template-columns:1.2fr 0.8fr;gap:50px;color:var(--white);
    position:relative;overflow:hidden;
  }
  .donate-box::before{
    content:'';position:absolute;width:480px;height:480px;border-radius:50%;
    border:1px solid rgba(216,181,100,0.18);right:-160px;top:-160px;
  }
  .donate-box h2{font-size:clamp(1.9rem,3vw,2.6rem);margin:16px 0 18px;}
  .donate-box p{color:rgba(244,238,226,0.78);max-width:52ch;margin-bottom:10px;}
  .donate-meter{margin-top:30px;}
  .donate-meter .bar{height:8px;border-radius:100px;background:rgba(244,238,226,0.16);overflow:hidden;margin-bottom:10px;}
  .donate-meter .fill{height:100%;width:5%;background:var(--gold-bright);border-radius:100px;}
  .donate-meter span{font-size:0.8rem;color:rgba(244,238,226,0.65);}
  .donate-side{
    background:rgba(244,238,226,0.06);border:1px solid rgba(244,238,226,0.16);border-radius:18px;
    padding:32px;align-self:center;
  }
  .donate-side .amounts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 22px;}
  .donate-side .amounts button{
    padding:12px;border-radius:10px;border:1px solid rgba(244,238,226,0.24);color:var(--white);font-weight:700;font-size:0.9rem;
    transition:border-color 0.3s, background 0.3s;
  }
  .donate-side .amounts button:hover, .donate-side .amounts button.active{background:var(--gold);border-color:var(--gold);color:var(--maroon);}
  .donate-side .btn-primary{width:100%;justify-content:center;}

  /* ---------- FAQ ---------- */
  .faq{padding:130px 0;background:var(--white);}
  .faq-list{max-width:800px;}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{
    width:100%;display:flex;justify-content:space-between;align-items:center;
    padding:26px 4px;text-align:left;font-size:1.06rem;font-weight:600;color:var(--maroon);
  }
  .faq-q svg{transition:transform 0.35s var(--ease);flex-shrink:0;color:var(--saffron);}
  .faq-item.open .faq-q svg{transform:rotate(45deg);}
  .faq-a{max-height:0;overflow:hidden;transition:max-height 0.45s var(--ease);}
  .faq-a p{padding:0 4px 26px;color:rgba(32,26,22,0.68);max-width:65ch;font-size:0.96rem;}

  /* ---------- NEWSLETTER ---------- */
  .newsletter{background:var(--ivory-deep);padding:110px 0;text-align:center;}
  .newsletter h2{font-size:clamp(1.7rem,2.6vw,2.3rem);margin:16px 0 14px;color:var(--maroon);}
  .newsletter p{color:rgba(32,26,22,0.66);max-width:50ch;margin:0 auto 34px;}
  .news-form{display:flex;gap:12px;max-width:460px;margin:0 auto;}
  .news-form input{
    flex:1;padding:15px 20px;border-radius:100px;border:1px solid var(--line);background:var(--white);
    font-family:inherit;font-size:0.92rem;color:var(--charcoal);
  }
  .news-form input:focus{outline:2px solid var(--gold);outline-offset:2px;}
  .news-form button{
    padding:15px 26px;border-radius:100px;background:var(--maroon);color:var(--white);font-weight:700;font-size:0.9rem;
    transition:background 0.3s;
  }
  .news-form button:hover{background:var(--saffron);}

  /* ---------- FOOTER ---------- */
  footer{background:var(--charcoal);color:rgba(244,238,226,0.62);padding:90px 0 40px;}
  .footer-top{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px;padding-bottom:60px;border-bottom:1px solid rgba(244,238,226,0.1);}
  .footer-brand .logo{color:var(--ivory);margin-bottom:16px;}
  .footer-brand p{font-size:0.88rem;max-width:32ch;line-height:1.7;}
  .footer-col h4{color:var(--ivory);font-size:0.82rem;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:18px;font-family:'Manrope',sans-serif;font-weight:700;}
  .footer-col ul li{margin-bottom:12px;}
  .footer-col a{font-size:0.88rem;transition:color 0.3s;}
  .footer-col a:hover{color:var(--gold-bright);}
  .footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:32px;flex-wrap:wrap;gap:16px;font-size:0.8rem;}
  .socials{display:flex;gap:14px;}
  .socials a{
    width:34px;height:34px;border-radius:50%;border:1px solid rgba(244,238,226,0.2);
    display:flex;align-items:center;justify-content:center;transition:border-color 0.3s, color 0.3s;
  }
  .socials a:hover{border-color:var(--gold-bright);color:var(--gold-bright);}
  .disclaimer{font-size:0.76rem;color:rgba(244,238,226,0.4);max-width:900px;margin-top:14px;line-height:1.6;}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:1080px){
    .bento{grid-template-columns:repeat(2,1fr);}
    .card.b-wide{grid-column:span 2;}
    .stats-grid{grid-template-columns:repeat(2,1fr);gap:44px;}
    .puja-grid, .mission-grid{grid-template-columns:1fr;}
    .puja-img{max-width:420px;}
    .trust-grid{grid-template-columns:1fr;}
    .donate-box{grid-template-columns:1fr;padding:50px 34px;}
    .footer-top{grid-template-columns:1fr 1fr;}
    .gal-grid{grid-template-columns:repeat(4,1fr);}
    .gal-grid a{grid-column:span 2;}
  }
  @media (max-width:720px){
    .nav-links{position:fixed;top:0;right:0;height:100vh;width:78%;background:var(--maroon);
      flex-direction:column;justify-content:center;align-items:flex-start;padding:40px;gap:26px;
      transform:translateX(100%);transition:transform 0.45s var(--ease);z-index:150;}
    .nav-links.open{transform:translateX(0);}
    .nav-links a{color:var(--ivory) !important;font-size:1.05rem;}
    .nav-links .nav-cta{margin-top:10px;}
    .burger{display:block;z-index:160;}
    .hero{padding-bottom:70px;}
    .cta-row{flex-direction:column;align-items:flex-start;}
    .scroll-cue{display:none;}
    .mission-grid, .puja-grid{gap:36px;}
    .stats-grid{grid-template-columns:1fr 1fr;}
    .footer-top{grid-template-columns:1fr;gap:32px;}
    .gal-grid{grid-template-columns:repeat(2,1fr);}
    .gal-grid a{grid-column:span 2 !important;grid-row:auto !important;height:220px;}
    .donate-side .amounts{grid-template-columns:1fr 1fr;}
    .news-form{flex-direction:column;}
  }

/* ---------------------------------------------------------------------
   SECTION 2 — WORDPRESS ADDITIONS
   --------------------------------------------------------------------- */

/* Admin bar offset for fixed header */
body.admin-bar header{ top:32px; }
@media (max-width:782px){
  body.admin-bar header{ top:46px; }
}

/* Screen-reader text (accessibility, used by skip link / labels) */
.screen-reader-text{
  position:absolute !important; width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:9999;
  background:var(--maroon);color:var(--white);padding:14px 22px;border-radius:0 0 10px 0;
  font-weight:700;font-size:0.85rem;
}
.skip-link:focus{ left:0; }

/* Alignment helpers used by the block/classic editor inside static content */
.alignwide{ max-width:1000px;margin-left:auto;margin-right:auto; }
.alignfull{ width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw; }
.aligncenter{ display:block;margin-left:auto;margin-right:auto; }

/* ---------- PAGE HERO (secondary, non-home pages) ---------- */
.page-hero{
  position:relative;padding:220px 0 90px;background:var(--maroon);color:var(--white);
  background:linear-gradient(180deg, rgba(20,14,10,0.55) 0%, rgba(20,14,10,0.86) 100%), var(--maroon);
}
.page-hero .eyebrow{ color:var(--gold-bright); }
.page-hero .eyebrow::before{ background:var(--gold-bright); }
.page-hero h1{
  font-size:clamp(2.1rem, 4.4vw, 3.6rem);margin:18px 0 16px;max-width:22ch;font-weight:500;
}
.page-hero p.lead{ max-width:56ch;color:rgba(255,253,248,0.82);font-size:1.05rem; }
.breadcrumb{
  display:flex;gap:8px;align-items:center;font-size:0.8rem;color:rgba(255,253,248,0.6);
  margin-bottom:18px;letter-spacing:0.02em;
}
.breadcrumb a{ color:rgba(255,253,248,0.85);transition:color 0.3s; }
.breadcrumb a:hover{ color:var(--gold-bright); }

/* ---------- ARTICLE / STATIC PAGE BODY ---------- */
.article-body{ background:var(--white);padding:100px 0 130px; }
.article-grid{ display:grid;grid-template-columns:0.72fr 0.28fr;gap:70px; }
.prose{ max-width:70ch;color:rgba(32,26,22,0.78);font-size:1.04rem; }
.prose h2{ font-size:1.7rem;color:var(--maroon);margin:44px 0 16px; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:1.25rem;color:var(--maroon);margin:32px 0 12px; }
.prose p{ margin-bottom:20px; }
.prose ul, .prose ol{ margin:0 0 22px 22px; }
.prose li{ margin-bottom:10px; }
.prose ul{ list-style:disc; }
.prose ol{ list-style:decimal; }
.prose blockquote{
  border-left:3px solid var(--gold);margin:32px 0;padding:6px 0 6px 24px;
  font-family:'Fraunces',serif;font-style:italic;font-size:1.2rem;color:var(--maroon);
}
.prose img{ border-radius:16px;margin:28px 0;box-shadow:var(--shadow-soft); }
.prose a{ color:var(--saffron);text-decoration:underline;text-underline-offset:3px; }
.article-aside{ align-self:start;position:sticky;top:120px; }
.aside-card{
  background:var(--ivory);border:1px solid var(--line);border-radius:16px;padding:26px;margin-bottom:20px;
}
.aside-card h4{ font-size:0.95rem;color:var(--maroon);margin-bottom:14px; }
.aside-card ul li{ margin-bottom:10px;font-size:0.9rem; }
.aside-card ul li a{ color:rgba(32,26,22,0.72);transition:color 0.3s; }
.aside-card ul li a:hover{ color:var(--saffron); }
@media (max-width:980px){
  .article-grid{ grid-template-columns:1fr; }
  .article-aside{ position:static; }
}

/* ---------- JOURNAL / BLOG LIST ---------- */
.journal-hero{ padding:200px 0 60px;background:var(--ivory);text-align:left; }
.journal{ background:var(--white);padding:20px 0 130px; }
.journal-grid{ display:grid;grid-template-columns:repeat(3, 1fr);gap:32px; }
.journal-card{
  border-radius:18px;overflow:hidden;background:var(--ivory);border:1px solid var(--line);
  transition:transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.journal-card:hover{ transform:translateY(-4px);box-shadow:var(--shadow-soft); }
.journal-card a.thumb{ display:block;aspect-ratio:16/11;overflow:hidden; }
.journal-card img{ width:100%;height:100%;object-fit:cover;transition:transform 0.8s var(--ease); }
.journal-card:hover img{ transform:scale(1.06); }
.journal-card .jc-body{ padding:24px; }
.journal-card .card-tag{
  font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--saffron);font-weight:700;margin-bottom:10px;display:block;
}
.journal-card h3{ font-size:1.18rem;margin-bottom:10px;color:var(--maroon); }
.journal-card h3 a{ color:inherit; }
.journal-card p{ font-size:0.9rem;color:rgba(32,26,22,0.64);margin-bottom:14px; }
.journal-card .jc-meta{ font-size:0.78rem;color:rgba(32,26,22,0.5);display:flex;gap:10px;align-items:center; }
@media (max-width:980px){ .journal-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .journal-grid{ grid-template-columns:1fr; } }

.no-posts{ padding:40px 0;color:rgba(32,26,22,0.6); }

/* ---------- PAGINATION ---------- */
.pagination{ display:flex;gap:10px;justify-content:center;margin-top:60px;flex-wrap:wrap; }
.pagination a, .pagination span{
  display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 14px;
  border-radius:100px;border:1px solid var(--line);font-size:0.88rem;font-weight:700;color:var(--maroon);
  transition:background 0.3s, color 0.3s, border-color 0.3s;
}
.pagination a:hover{ background:var(--gold);border-color:var(--gold);color:var(--charcoal); }
.pagination span.current{ background:var(--maroon);border-color:var(--maroon);color:var(--white); }

/* ---------- SINGLE BLOG DETAIL ---------- */
.single-hero{ padding:210px 0 70px;background:var(--maroon);color:var(--white); }
.single-hero .eyebrow{ color:var(--gold-bright); }
.single-hero .eyebrow::before{ background:var(--gold-bright); }
.single-hero h1{ font-size:clamp(2.1rem,4.2vw,3.4rem);margin:18px 0 20px;max-width:24ch; }
.single-meta{ display:flex;gap:18px;align-items:center;flex-wrap:wrap;color:rgba(244,238,226,0.7);font-size:0.86rem; }
.single-meta .author{ display:flex;gap:10px;align-items:center; }
.single-meta .avatar{ width:32px;height:32px;border-radius:50%;object-fit:cover; }
.single-feature-img{ margin-top:-70px;position:relative;z-index:2; }
.single-feature-img img{
  width:100%;max-height:520px;object-fit:cover;border-radius:20px;box-shadow:var(--shadow-soft);
}
.single-tags{ display:flex;gap:10px;flex-wrap:wrap;margin-top:36px; }
.single-tags a{
  padding:8px 16px;border-radius:100px;background:var(--ivory);border:1px solid var(--line);
  font-size:0.78rem;font-weight:700;color:var(--maroon);transition:background 0.3s;
}
.single-tags a:hover{ background:var(--gold);border-color:var(--gold); }
.post-nav{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:60px;padding-top:40px;border-top:1px solid var(--line);
}
.post-nav a{ display:block;padding:20px;border-radius:14px;border:1px solid var(--line);transition:border-color 0.3s; }
.post-nav a:hover{ border-color:var(--gold); }
.post-nav .dir{ font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--saffron);font-weight:700;margin-bottom:8px;display:block; }
.post-nav .prev{ text-align:left; }
.post-nav .next{ text-align:right;grid-column:2; }
@media (max-width:640px){ .post-nav{ grid-template-columns:1fr; } .post-nav .next{ grid-column:1; text-align:left;} }

/* ---------- COMMENTS ---------- */
.comments-area{ margin-top:70px;padding-top:50px;border-top:1px solid var(--line); }
.comments-title{ font-size:1.5rem;color:var(--maroon);margin-bottom:30px; }
.comment-list{ list-style:none; }
.comment-list .comment{ margin-bottom:26px;padding-bottom:26px;border-bottom:1px solid var(--line); }
.comment-author-wrap{ display:flex;gap:12px;align-items:center;margin-bottom:10px; }
.comment-author-wrap img{ border-radius:50%; }
.comment-author-wrap .fn{ font-style:normal;font-weight:700;color:var(--maroon);font-size:0.94rem; }
.comment-meta{ font-size:0.78rem;color:rgba(32,26,22,0.5); }
.comment-content p{ color:rgba(32,26,22,0.72);font-size:0.94rem; }
.comment-reply-link{ font-size:0.78rem;font-weight:700;color:var(--saffron); }
.comment-respond{ margin-top:40px; }
.comment-form input, .comment-form textarea{
  width:100%;padding:14px 18px;border-radius:12px;border:1px solid var(--line);background:var(--ivory);
  font-family:inherit;font-size:0.92rem;color:var(--charcoal);margin-bottom:16px;
}
.comment-form textarea{ min-height:140px;resize:vertical; }
.comment-form input:focus, .comment-form textarea:focus{ outline:2px solid var(--gold);outline-offset:2px; }
.comment-form label{ display:block;font-size:0.8rem;font-weight:700;color:var(--maroon);margin-bottom:6px; }
.comment-form .comment-form-submit button{
  padding:15px 30px;border-radius:100px;background:var(--gold);color:var(--charcoal);font-weight:700;
  transition:background 0.3s, transform 0.3s;
}
.comment-form .comment-form-submit button:hover{ background:var(--gold-bright);transform:translateY(-2px); }

/* ---------- CONTACT FORM ---------- */
.contact-grid{ display:grid;grid-template-columns:1fr 1fr;gap:60px; }
.contact-form-wrap{ background:var(--ivory);border-radius:20px;padding:44px;border:1px solid var(--line); }
.contact-form .field{ margin-bottom:20px; }
.contact-form label{ display:block;font-size:0.82rem;font-weight:700;color:var(--maroon);margin-bottom:8px; }
.contact-form input, .contact-form select, .contact-form textarea{
  width:100%;padding:14px 18px;border-radius:12px;border:1px solid var(--line);background:var(--white);
  font-family:inherit;font-size:0.92rem;color:var(--charcoal);
}
.contact-form textarea{ min-height:150px;resize:vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{ outline:2px solid var(--gold);outline-offset:2px; }
.contact-info{ padding-top:10px; }
.contact-info .info-item{ display:flex;gap:16px;margin-bottom:26px;align-items:flex-start; }
.contact-info .icon{
  width:44px;height:44px;border-radius:50%;background:var(--ivory);color:var(--saffron);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.contact-info h4{ font-size:1rem;color:var(--maroon);margin-bottom:4px; }
.contact-info p{ font-size:0.9rem;color:rgba(32,26,22,0.66); }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }

/* ---------- 404 ---------- */
.error-404{
  min-height:80vh;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:200px 0 120px;background:var(--ivory);
}
.error-404 .code{ font-family:'Fraunces',serif;font-size:clamp(4rem,10vw,8rem);color:var(--gold);line-height:1; }
.error-404 h1{ font-size:1.8rem;color:var(--maroon);margin:16px 0 14px; }
.error-404 p{ color:rgba(32,26,22,0.66);max-width:50ch;margin:0 auto 32px; }

/* ---------- SEARCH ---------- */
.search-form-wrap{ padding:200px 0 40px;background:var(--ivory); }
.search-form{ display:flex;gap:12px;max-width:560px; }
.search-form input[type="search"]{
  flex:1;padding:16px 22px;border-radius:100px;border:1px solid var(--line);background:var(--white);
  font-family:inherit;font-size:0.96rem;
}
.search-form button{
  padding:16px 28px;border-radius:100px;background:var(--maroon);color:var(--white);font-weight:700;
}

/* WP core image/caption/gallery classes used inside prose */
.wp-caption{ max-width:100%; }
.wp-caption-text{ font-size:0.82rem;color:rgba(32,26,22,0.55);margin-top:8px;text-align:center; }
.wp-block-gallery{ display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:28px 0; }
.wp-block-gallery img{ border-radius:12px; }

/* ---------------------------------------------------------------------
   SECTION 3 — ENCYCLOPEDIA (pillar portal, pillar hub, supporting pages)
   --------------------------------------------------------------------- */

/* ---------- HOME: 14-pillar portal grid ---------- */
.portal-grid{
  display:grid;grid-template-columns:repeat(4, 1fr);gap:22px;
}
.portal-card{
  position:relative;background:var(--ivory);border:1px solid var(--line);border-radius:18px;
  padding:26px 24px 60px;transition:transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s;
}
.portal-card:hover{ transform:translateY(-4px);box-shadow:var(--shadow-soft);border-color:var(--gold); }
.portal-count{
  display:inline-block;font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:700;
  color:var(--saffron);background:rgba(184,146,62,0.12);padding:5px 12px;border-radius:100px;margin-bottom:14px;
}
.portal-card h3{ font-size:1.12rem;color:var(--maroon);margin-bottom:10px; }
.portal-card p{ font-size:0.86rem;color:rgba(32,26,22,0.62);line-height:1.55; }
.portal-arrow{
  position:absolute;right:22px;bottom:22px;width:34px;height:34px;border-radius:50%;
  background:var(--white);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  color:var(--maroon);transition:background 0.3s, color 0.3s, border-color 0.3s;
}
.portal-card:hover .portal-arrow{ background:var(--gold);border-color:var(--gold);color:var(--charcoal); }
@media (max-width:1080px){ .portal-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px){ .portal-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .portal-grid{ grid-template-columns:1fr; } }

/* ---------- PILLAR HUB: A–Z children grid ---------- */
.pillar-grid{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:14px;
}
.pillar-card{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 20px;border-radius:12px;background:var(--ivory);border:1px solid var(--line);
  font-size:0.92rem;font-weight:600;color:var(--charcoal);transition:background 0.3s, border-color 0.3s, color 0.3s;
}
.pillar-card svg{ flex-shrink:0;opacity:0.5;transition:opacity 0.3s, transform 0.3s; }
.pillar-card:hover{ background:var(--maroon);border-color:var(--maroon);color:var(--white); }
.pillar-card:hover svg{ opacity:1;transform:translate(2px,-2px); }
@media (max-width:900px){ .pillar-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .pillar-grid{ grid-template-columns:1fr; } }

/* ---------- PILLAR HUB: related pillars ---------- */
.related-pillars{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:22px;
}
.related-pillar-card{
  display:block;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:26px;
  transition:transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s;
}
.related-pillar-card:hover{ transform:translateY(-4px);box-shadow:var(--shadow-soft);border-color:var(--gold); }
.related-pillar-card .card-tag{
  font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--saffron);font-weight:700;
  display:block;margin-bottom:10px;
}
.related-pillar-card h3{ font-size:1.05rem;color:var(--maroon);margin-bottom:8px; }
.related-pillar-card p{ font-size:0.86rem;color:rgba(32,26,22,0.6); }
@media (max-width:900px){ .related-pillars{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .related-pillars{ grid-template-columns:1fr; } }

/* ---------- SUPPORTING PAGE: internal linking system ---------- */
.linking-system .aside-card ul li{ font-size:0.88rem; }
.linking-system .aside-card{ margin-bottom:18px; }
