/* ==========================================================
   GLOBAL — BASE STYLES (NO :root TOKENS HERE)
   - tokens live ONLY in tokens.css
   - base rules only: reset, typography, link defaults, a11y
   ========================================================== */


  /* ------------------------------
     RESET / DOCUMENT
     ------------------------------ */
  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;overflow-x:hidden;}

  body{
    margin:0;
    font-family:var(--font-body);
    background:var(--color-bg);
    color:var(--color-text-main);
    line-height:1.6;
    font-size:16px;
    overflow-x:hidden;
  }

  img{
    max-width:100%;
    height:auto;
    display:block;
    border-radius:12px;
  }

  p{margin:0 0 1em;}

  /* ------------------------------
     LINKS (LOCKED: interactions = turquoise)
     ------------------------------ */
  a{
    color:var(--color-link);
    text-decoration:underline;
    text-underline-offset:2px;
    text-decoration-thickness:2px;
  }
  a:hover{color:var(--color-link-hover);}

  /* Visited stays in the same system (no extra colors) */
  a:visited{color:var(--color-link);}

  a:focus-visible{
    outline:3px solid var(--color-focus);
    outline-offset:3px;
    border-radius:6px;
  }

  /* ------------------------------
     ACCESSIBILITY: SKIP LINK
     ------------------------------ */
  .skip-to-content{
    position:absolute;
    left:12px;
    top:12px;
    transform:translateY(-220%);
    background:var(--color-heading);
    color:var(--color-text-on-dark);
    padding:10px 14px;
    border-radius:10px;
    z-index:99999;
    text-decoration:none;
    transition:transform .15s ease;
  }
  .skip-to-content:focus,
  .skip-to-content:focus-visible{
    transform:translateY(0);
    outline:3px solid var(--color-focus);
    outline-offset:3px;
  }

  /* ------------------------------
     FOCUS DEFAULTS (keyboard)
     ------------------------------ */
  button:focus-visible,
  input:focus-visible,
  textarea:focus-visible,
  select:focus-visible{
    outline:3px solid var(--color-focus);
    outline-offset:2px;
  }

  /* ------------------------------
     SECTION TITLES (global)
     ------------------------------ */
  .section-title{
    color:var(--color-heading);
    font-family:var(--font-title);
  }
  .section-subtitle{
    color:var(--color-text-main);
    opacity:.95;
  }

  /* ------------------------------
     REDUCED MOTION
     ------------------------------ */
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
  }


  /* ------------------------------
     BACK TO TOP
     ------------------------------ */
  #back-to-top{
    position:fixed;
    bottom:110px;
    right:28px;
    width:48px;
    height:48px;
    background:var(--color-gold);
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    opacity:0;
    visibility:hidden;
    transition:.25s;
    z-index:99999;
    box-shadow:0 4px 14px rgba(0,0,0,.25);
  }
  #back-to-top:hover{background:var(--color-gold-dark);}
  #back-to-top.show{opacity:1;visibility:visible;}

  @media(max-width:600px){
    #back-to-top{right:16px;bottom:96px;}
  }

  /* ------------------------------
     LIGHTBOX (used by main.js)
     ------------------------------ */
  .gc-lightbox{
    position:fixed;
    inset:0;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(0,0,0,.85);
    z-index:999999;
  }
  .gc-lightbox.show{display:flex;}

  .gc-lightbox-img{
    max-width:min(1100px,92vw);
    max-height:92vh;
    width:auto;
    height:auto;
    border-radius:16px;
    box-shadow:0 10px 30px rgba(0,0,0,.35);
  }

  .gc-lightbox-close{
    position:absolute;
    top:18px;
    right:18px;
    width:44px;
    height:44px;
    border:0;
    border-radius:12px;
    background:rgba(255,255,255,.12);
    color:var(--color-text-on-dark);
    font-size:28px;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .gc-lightbox-close:hover{background:rgba(255,255,255,.22);}
  .gc-lightbox-close:focus-visible{
    outline:3px solid var(--color-focus);
    outline-offset:3px;
  }

   /* Legacy overlay safety */
  #lightbox-overlay{display:none!important;}

  /* ------------------------------
     GENERIC PAGE SPACING
     (gives space between last card and footer)
     ------------------------------ */
  .generic-page-section{
    padding-bottom:72px;
  }

  /* ------------------------------
     CARDS PAGE (used on selected slugs via page.php)
     ------------------------------ */
  .page-content.cards-page{
    display:grid;
    gap:22px;
  }

  /* Each section becomes a "card" when wrapped in a Group block */
  .page-content.cards-page .wp-block-group{
    background:#fff;
    border-radius:18px;
    padding:28px;
    margin:0;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
  }

  .page-content.cards-page .wp-block-group > *:last-child{
    margin-bottom:0;
  }

  .page-content.cards-page h2,
  .page-content.cards-page h3{
    margin-top:0;
  }


  /* ------------------------------
     HIDE ASTRA HEADER (theme override)
     ------------------------------ */
  #masthead,
  .ast-site-header,
  .ast-primary-header-bar{display:none!important;}

  /* ------------------------------
     Force content links to use tokens
     ------------------------------ */
  .site-main a,
  .entry-content a,
  .page-content a,
  .wp-block a{color:var(--color-link)!important;}

  .site-main a:hover,
  .entry-content a:hover,
  .page-content a:hover,
  .wp-block a:hover{color:var(--color-link-hover)!important;}

  /* ------------------------------
     Footer link readability safety
     - Keep text color stable (readable)
     - Show hover via underline (turquoise)
     ------------------------------ */
  .site-footer a{
    color:var(--color-text-on-dark);
    text-decoration:none;
  }

  .site-footer a:hover{
    color:var(--color-text-on-dark);
    text-decoration:underline;
    text-decoration-thickness:2px;
    text-underline-offset:3px;
    text-decoration-color:var(--color-focus);
  }

  .site-footer a:focus-visible{
    outline:2px solid var(--color-focus);
    outline-offset:3px;
    border-radius:6px;
  }

  /* Icons in footer: keep readable, hint hover with turquoise */
  .site-footer svg,
  .site-footer i{
    color:var(--color-text-on-dark);
    fill:var(--color-text-on-dark);
  }

  .site-footer a:hover svg,
  .site-footer a:hover i{
    color:var(--color-focus);
    fill:var(--color-focus);
  }

  .site-footer label,
  .site-footer select{color:var(--color-text-on-dark);}

  .site-footer select{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.25);
  }


/* A11y: screen-reader only (keeps content for SR, hides visually) */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}


