/* ==========================================================================
   Punta Brava Foundation - shared site chrome
   Single source of truth for design tokens, base type, and the nav/menu shell.
   Every page loads this: index.html and every page under /events/.
   Page-specific rules stay in that page's own <style> block.
   Do not copy rules out of here into a page. If a page needs the chrome, it
   links this file.
   ========================================================================== */

  html[data-theme="light"]{
    color-scheme:light;
    --ground:#eceae5; --rail-top:#f3f2ee; --panel:#ffffff; --panel-2:#f6f5f1; --panel-3:#efeee9;
    --hair:#e5e4df; --hair-2:#cfcec8;
    --text:#1c1b19; --text-2:#43413c; --text-3:#706e69; --text-4:#9a988f;
    --blue:#497585; --blue-deep:#3c6373; --warn:#9a6f1f;
    --shadow:0 16px 44px rgba(28,27,25,.16);
    --scrim:rgba(28,27,25,.32);
  }
  html[data-theme="dark"]{
    color-scheme:dark;
    --ground:#0b0b0a; --rail-top:#0d0d0c; --panel:#131312; --panel-2:#1a1a18; --panel-3:#201f1d;
    --hair:#242421; --hair-2:#302f2a;
    --text:#ece9e3; --text-2:#b6b3aa; --text-3:#86837b; --text-4:#5b5953;
    --blue:#5f93a6; --blue-deep:#497585; --warn:#c9a24b;
    --shadow:0 18px 50px rgba(0,0,0,.55);
    --scrim:rgba(0,0,0,.55);
  }
  :root{
    --font:'EB Garamond',Georgia,serif;
    --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
    --radius:10px; --radius-sm:7px;
    --pad:22px; --nav-h:62px;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{-webkit-text-size-adjust:100%;background:var(--ground)}
  body{font-family:var(--font);background:var(--ground);color:var(--text);font-size:17px;line-height:1.55;
       -webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .35s ease,color .35s ease}
  ::selection{background:rgba(73,117,133,.22)}
  a{color:inherit;text-decoration:none}
  button{font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
  img{display:block;max-width:100%}
  :focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}
  .skip{position:absolute;left:-9999px;top:0;background:var(--panel);color:var(--text);padding:12px 18px;z-index:200;
        font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
  .skip:focus{left:12px;top:12px}
  .wrap{max-width:960px;margin:0 auto;padding-left:max(var(--pad),env(safe-area-inset-left));
        padding-right:max(var(--pad),env(safe-area-inset-right))}
  .eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--blue)}
  .eyebrow.q{color:var(--text-4)}
  .rule{width:52px;height:1px;background:var(--blue);margin-top:20px;opacity:.9}
  html[data-theme="light"] .only-dark{display:none}
  html[data-theme="dark"] .only-light{display:none}

  /* ================= NAV ================= */
  .nav{position:fixed;top:0;left:0;right:0;z-index:60;height:calc(var(--nav-h) + env(safe-area-inset-top));
       padding-top:env(safe-area-inset-top);
       display:flex;align-items:center;justify-content:space-between;
       padding-left:max(var(--pad),env(safe-area-inset-left));
       padding-right:max(calc(var(--pad) - 10px),env(safe-area-inset-right));
       background:var(--ground);
       background:color-mix(in srgb, var(--ground) 92%, transparent);
       backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
       border-bottom:1px solid var(--hair);transition:background .35s ease,border-color .35s ease}
  .lockup{display:flex;align-items:center;gap:12px}
  .lockup img{width:30px;height:auto}
  .lockup .lk-t{display:flex;flex-direction:column;line-height:1}
  .lockup .lk-1{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--text)}
  .lockup .lk-2{font-family:var(--mono);font-size:8px;letter-spacing:.42em;text-transform:uppercase;color:var(--text-3);margin-top:4px}
  .nav-right{display:flex;align-items:center;gap:2px}
  .nav-links{display:none}
  .nav-give{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
            color:var(--blue);padding:14px 10px}
  .theme-btn{background:none;border:none;color:var(--text-3);width:44px;height:44px;
             display:flex;align-items:center;justify-content:center;transition:color .2s}
  .theme-btn:hover{color:var(--text)}
  .theme-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.3;stroke-linecap:round}
  .menu-btn{background:none;border:none;color:var(--text);width:44px;height:44px;position:relative;transition:color .2s}
  .menu-btn:hover{color:var(--blue)}
  .menu-btn svg,.menu-btn .mi-w{position:absolute;top:50%;left:50%;
                transition:opacity .24s ease,transform .3s ease}
  .menu-btn svg{width:20px;height:20px;margin:-10px 0 0 -10px;
                stroke:currentColor;fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
  .menu-btn .mi-w{width:26px;height:8px;margin:-4px 0 0 -13px;background:currentColor;
                -webkit-mask:url("data:image/png;base64,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") center / contain no-repeat;
                mask:url("data:image/png;base64,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") center / contain no-repeat}
  .menu-btn:hover:not(.open) .mi-w{transform:translateX(2px)}
  .menu-btn .mi-x{opacity:0;transform:translateX(7px) rotate(-45deg)}
  .menu-btn.open .mi-w{opacity:0;transform:translateX(-8px)}
  .menu-btn.open .mi-x{opacity:1;transform:none}
  @media(min-width:960px){
    .nav-links{display:flex;gap:22px;align-items:center;margin-right:14px}
    .nav-links a{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
                 color:var(--text-3);padding:10px 2px;transition:color .2s;border-bottom:1px solid transparent}
    .nav-links a:hover{color:var(--text)}
    .nav-links a[aria-current="page"]{color:var(--text);border-bottom-color:var(--blue)}
    .nav-links a.give{color:var(--blue)}
    .menu-btn{display:none}
    .nav-give{display:none}
    /* Nested nav groups (PT IA 2026-08-13): Foundation > Team/Financials,
       Events > event pages. Hover/focus-within reveal; keyboard-reachable. */
    .nav-group{position:relative;display:inline-flex;align-items:center}
    .nav-group > a::after{content:"";display:inline-block;width:4px;height:4px;margin-left:7px;
      border-right:1px solid currentColor;border-bottom:1px solid currentColor;
      transform:rotate(45deg) translateY(-1px);opacity:.5}
    .nav-sub{position:absolute;top:100%;left:-14px;min-width:206px;
      background:var(--panel);border:1px solid var(--hair-2);border-radius:var(--radius-sm);
      box-shadow:var(--shadow);padding:6px 0;
      opacity:0;visibility:hidden;transform:translateY(-4px);
      transition:opacity .18s ease,transform .18s ease,visibility .18s;
      display:flex;flex-direction:column}
    .nav-group:hover .nav-sub,.nav-group:focus-within .nav-sub{opacity:1;visibility:visible;transform:none}
    .nav-sub a{padding:9px 16px;border-bottom:none;white-space:nowrap;letter-spacing:.14em}
    .nav-sub a:hover{color:var(--text);background:var(--panel-2)}
  }
  /* Side-menu nested items */
  .menu a.m-sub{padding-left:18px;font-size:17px;color:var(--text-2)}
  .menu a.m-sub::before{content:"";display:inline-block;width:9px;height:1px;background:var(--hair-2);
    vertical-align:middle;margin-right:11px;margin-left:-20px}

  /* side panel menu */
  .scrim{position:fixed;inset:0;z-index:54;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .3s ease}
  .scrim.open{opacity:1;pointer-events:auto}
  /* Closed with visibility, not transform alone: a transformed-off-screen panel
     stays in the tab order, so keyboard users met six hidden links before the
     first real control on the page. Visibility flips after the slide so the
     close animation still plays. */
  .menu{position:fixed;top:0;right:0;bottom:0;z-index:56;width:min(300px,82vw);
        background:var(--ground);border-left:1px solid var(--hair);
        transform:translateX(102%);visibility:hidden;
        transition:transform .32s cubic-bezier(.32,.72,.28,1),visibility 0s linear .32s;
        display:flex;flex-direction:column;
        padding:calc(var(--nav-h) + env(safe-area-inset-top) + 8px) 24px calc(24px + env(safe-area-inset-bottom))}
  .menu.open{transform:translateX(0);visibility:visible;
             transition:transform .32s cubic-bezier(.32,.72,.28,1),visibility 0s}
  .menu a{display:block;padding:17px 2px;border-bottom:1px solid var(--hair);color:var(--text);font-size:19px;min-height:48px}
  .menu a[aria-current="page"]{color:var(--blue)}
  .menu .m-foot{margin-top:auto;padding-top:22px;font-family:var(--mono);font-size:8.5px;letter-spacing:.16em;
                text-transform:uppercase;color:var(--text-4);line-height:2}

/* The hidden attribute is only display:none in the user agent sheet, so ANY
   author rule that sets display beats it and the element stays on screen while
   the code believes it is gone. That shipped twice: once on the event page and
   again on the give page, where a fee offer for cards stayed visible on bank
   transfers showing a stale figure. Global, because scoping the fix to one page
   is what let it happen a second time. */
[hidden] { display: none !important; }
