/* Shared styles for every page on sherwoodwilson.com.
   Page-specific styles stay in each page's own <style> block, which loads after this file. */
  /* ============ TOKENS ============ */
  :root{
    --navy-950:#111a2e;
    --navy-900:#152040;
    --navy-800:#1d2c4f;
    --navy-700:#28395f;
    --gold-600:#a97e34;
    --gold-700:#86621f; /* text-safe gold on cream (~5:1) */
    --gold-500:#c69a44;
    --gold-400:#d7ae5e;
    --gold-300:#e6c886;
    --cream-50:#faf7f0;
    --cream-100:#f5f0e4;
    --cream-200:#ece3ce;
    --cream-300:#e0d3b3;
    --ink-900:#20242c;
    --ink-700:#3c414c;
    --ink-500:#666c78;
    --ink-on-navy:#c9cedc;
    --line:rgba(32,36,44,0.12);
    --line-navy:rgba(230,200,134,0.22);
    --shadow:0 18px 40px -22px rgba(17,26,46,0.35);
    --bg:var(--cream-50);
    --fg:var(--ink-900);
  }

  /* ============ RESET / BASE ============ */
  *,*::before,*::after{box-sizing:border-box;}
  h1,h2,h3,h4,p,figure{margin:0;}
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}
  button{font:inherit;}

  body{
    margin:0;
    background:var(--bg);
    color:var(--fg);
    font-family:"Jost", ui-sans-serif, system-ui, sans-serif;
    font-weight:400;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  .serif{font-family:"Playfair Display", Georgia, "Times New Roman", serif;}

  .eyebrow{
    font-family:"Jost", sans-serif;
    font-size:0.76rem;
    font-weight:600;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--gold-700);
  }
  .eyebrow.on-navy{color:var(--gold-400);}

  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 32px;
  }

  h1,h2,h3{text-wrap:balance;}
  /* Headings default to tight line spacing (the body's 1.6 is too loose for large type).
     Headings with their own line-height, like the hero titles, keep it. */
  h1,h2{line-height:1.15;}
  h3{line-height:1.3;}

  a:focus-visible,button:focus-visible{
    outline:2px solid var(--gold-500);
    outline-offset:3px;
  }

  @media (prefers-reduced-motion:no-preference){
    .reveal{
      animation:rise .7s ease both;
    }
  }
  @keyframes rise{
    from{opacity:0;transform:translateY(10px);}
    to{opacity:1;transform:translateY(0);}
  }

  /* ============ BUTTONS ============ */
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 30px;
    font-size:0.82rem;
    font-weight:600;
    letter-spacing:0.13em;
    text-transform:uppercase;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease;
    white-space:nowrap;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-gold{background:var(--gold-500);color:var(--navy-950);}
  .btn-gold:hover{background:var(--gold-400);}
  .btn-line-dark{border-color:rgba(32,36,44,0.3);color:var(--ink-900);}
  .btn-line-dark:hover{border-color:var(--ink-900);}
  .btn-navy{background:var(--navy-900);color:#fff;}
  .btn-navy:hover{background:var(--navy-800);}
  .btn-donate{background:var(--navy-900);border-color:var(--gold-500);color:var(--gold-400);padding:9px 18px;font-size:0.78rem;gap:7px;}
  .btn-donate:hover{background:var(--navy-800);border-color:var(--gold-400);color:var(--gold-300);}
  .btn-donate .i-heart{flex:none;}

  /* Small screens: long uppercase button labels must not force horizontal scroll */
  @media (max-width:560px){
    .btn{padding:14px 22px;letter-spacing:0.1em;}
    .btn-full{white-space:normal;text-align:center;}
  }

  /* ============ LOGO ============ */
  .logo{display:inline-flex;align-items:center;gap:12px;}
  .logo-mark{width:44px;height:44px;flex:none;object-fit:contain;display:block;}
  .logo-word{display:flex;flex-direction:column;line-height:1.1;}
  .logo-word .l1{
    font-family:"Playfair Display", serif;
    font-weight:700;
    font-size:1.02rem;
    letter-spacing:0.01em;
    color:var(--navy-900);
  }
  .logo-word .l2{
    font-size:0.62rem;
    font-weight:600;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--gold-600);
    margin-top:2px;
  }
  .logo.on-navy .logo-word .l1{color:#fff;}
  .logo.on-navy .logo-word .l2{color:var(--gold-400);}

  /* ============ NAV ============ */
  .site-nav{
    position:sticky;top:0;z-index:40;
    background:rgba(250,247,240,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .site-nav .wrap{
    display:flex;align-items:center;justify-content:space-between;
    height:84px;
  }
  .nav-links{display:flex;align-items:center;gap:30px;}
  .nav-links a{
    font-size:0.8rem;
    font-weight:500;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--ink-700);
    padding:6px 0;
    position:relative;
  }
  .nav-links a:hover{color:var(--navy-900);}
  .nav-links a.current{color:var(--navy-900);font-weight:600;}
  .nav-links a.current::after{
    content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--gold-500);
  }
  .nav-cta{display:flex;align-items:center;gap:18px;}
  .nav-toggle{display:none;}
  @media (max-width:1040px){
    .nav-links{display:none;}
    .nav-toggle{
      display:inline-flex;align-items:center;justify-content:center;
      width:44px;height:44px;padding:0;
      color:var(--ink-700);border:1px solid var(--line);border-radius:2px;background:none;cursor:pointer;
    }
    .nav-toggle-bars{position:relative;display:block;}
    .nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{
      width:18px;height:2px;background:currentColor;border-radius:1px;
      transition:transform .2s ease, background-color .2s ease;
    }
    .nav-toggle-bars::before,.nav-toggle-bars::after{content:"";position:absolute;left:0;}
    .nav-toggle-bars::before{top:-6px;}
    .nav-toggle-bars::after{top:6px;}
    .nav-toggle[aria-expanded="true"] .nav-toggle-bars{background:transparent;}
    .nav-toggle[aria-expanded="true"] .nav-toggle-bars::before{transform:translateY(6px) rotate(45deg);}
    .nav-toggle[aria-expanded="true"] .nav-toggle-bars::after{transform:translateY(-6px) rotate(-45deg);}
    .nav-links.open{display:flex;flex-direction:column;align-items:flex-start;gap:2px;position:absolute;top:100%;left:0;right:0;background:var(--cream-50);border-bottom:1px solid var(--line);padding:10px 30px 22px;box-shadow:var(--shadow);}
    .nav-links.open a{display:block;width:100%;padding:12px 0;border-bottom:1px solid var(--line);}
    .nav-links.open a:last-child{border-bottom:none;}
  }
  @media (max-width:560px){
    /* Phone: monogram only - the wordmark wraps and crowds the nav */
    .site-nav .logo-word{display:none;}
  }
  @media (max-width:480px){
    .site-nav .wrap{padding:0 16px;}
    .nav-cta{gap:8px;}
    .btn-donate{padding:8px 12px;font-size:0.72rem;gap:5px;}
  }

  /* ============ NEWSLETTER ============ */
  .newsletter{background:var(--cream-100);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .newsletter-copy{display:flex;align-items:center;gap:18px;max-width:420px;}
  .newsletter-copy .env{
    width:44px;height:44px;border:1px solid var(--line);border-radius:2px;
    display:flex;align-items:center;justify-content:center;flex:none;background:#fff;color:var(--gold-500);
  }
  .newsletter-copy .env svg{width:20px;height:20px;}
  .newsletter-copy h4{font-family:"Playfair Display",serif;font-size:1.05rem;color:var(--navy-900);}
  .newsletter-copy p{font-size:0.86rem;color:var(--ink-500);margin-top:4px;}
  .newsletter-form{display:flex;gap:12px;flex-wrap:wrap;}
  .newsletter-form-wrap{min-width:280px;}
  .newsletter-form input{
    font-family:"Jost",sans-serif;font-size:0.86rem;
    padding:13px 16px;border:1px solid var(--line);border-radius:2px;background:#fff;
    min-width:190px;
  }
  .newsletter-form input:focus-visible{outline:2px solid var(--gold-500);outline-offset:2px;}
  .newsletter-form button{border:none;}

  /* ============ FOOTER ============ */
  footer.site-footer{background:var(--navy-950);color:var(--ink-on-navy);}
  .footer-top{
    display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;
    padding-top:48px;padding-bottom:32px;border-bottom:1px solid var(--line-navy);
  }
  .footer-top p{margin-top:16px;font-size:0.86rem;color:var(--ink-on-navy);max-width:30ch;}
  .footer-col h5{
    font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold-400);margin-bottom:18px;
  }
  .footer-col ul li{margin-bottom:11px;font-size:0.88rem;}
  @media (max-width:560px){
    /* Touch: use the existing row gap as tap area instead of dead space */
    .footer-col ul:not(.footer-contact) li{margin-bottom:0;}
    .footer-col ul:not(.footer-contact) li a{display:block;padding:6px 0;}
  }
  .footer-col ul li a:hover{color:#fff;}
  .footer-contact li{display:flex;align-items:center;gap:10px;}
  .footer-contact svg{width:15px;height:15px;color:var(--gold-500);flex:none;}

  @media (max-width:860px){
    .footer-top{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:560px){
    .footer-top{grid-template-columns:1fr;}
  }
