/*
Theme Name: Recurrent Requester
Author: Open Access Solutions
Version: 2.0.0
Text Domain: recurrentrequester
*/

/* Tokens */
:root{
  --rr-line:rgba(11,18,32,.14);
  --rr-panel:rgba(11,18,32,.03);
  --rr-muted:rgba(11,18,32,.65);
  --rr-gutter:20px;

  /* Compatibility aliases */
  --dw-line:var(--rr-line);
  --dw-panel:var(--rr-panel);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.6;
  color:#0b1220;
  background:#fff;
}

a{color:inherit;text-decoration:underline}
a:hover{text-decoration:none}

a:focus-visible,
button:focus-visible,
input:focus-visible{
  outline:3px solid rgba(45,108,255,.35);
  outline-offset:2px;
}

.rr-container{
  max-width:1100px;
  margin:0 auto;
  padding:0 var(--rr-gutter);
}

/* Accessibility */
.rr-visually-hidden{
  position:absolute!important;
  height:1px;width:1px;
  overflow:hidden;
  clip:rect(1px,1px,1px,1px);
  white-space:nowrap;
}
.rr-skip-link{
  position:absolute;
  left:-999px;
  top:10px;
  z-index:9999;
  background:#fff;
  border:1px solid var(--rr-line);
  border-radius:999px;
  padding:10px 14px;
}
.rr-skip-link:focus{
  left:var(--rr-gutter);
  outline:3px solid rgba(45,108,255,.30);
  outline-offset:2px;
}

/* Header */
.site-header{border-bottom:1px solid var(--rr-line)}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:112px;
  gap:14px;
}
.site-brand,
.site-brand-wrap a{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
}
.site-brand--text{font-weight:600}

/* WP custom logo */
.site-brand-wrap .custom-logo-link{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}
.site-brand-wrap .custom-logo{
  display:block;
  height:96px;
  width:auto;
  max-width:320px;
}

/* Theme fallback <img> logo */
.rr-site-logo{
  display:block;
  height:96px;
  width:auto;
  max-width:320px;
}

/* Nav */
.rr-nav-toggle{display:none}
.primary-nav{display:block}
.primary-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
}
.primary-nav a{
  text-decoration:none;
  border-bottom:1px solid transparent;
  padding:6px 0;
}
.primary-nav a:hover{border-bottom-color:var(--rr-line)}

/* Main */
.site-main{padding:30px 0}

/* Panels */
.dw-panel{
  padding:20px;
  border:1px solid var(--rr-line);
  border-radius:16px;
  background:var(--rr-panel);
  margin:20px 0;
}
.dw-muted{color:var(--rr-muted)}

/* Footer */
.site-footer{
  border-top:1px solid var(--rr-line);
  margin-top:40px;
  padding:20px 0;
  font-size:14px;
  width:100%;
}
.footer-single{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:nowrap;
}
.footer-copy{white-space:nowrap}
.footer-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:.75rem;
}
.footer-nav li{margin:0;padding:0}
.footer-nav a{text-decoration:none;white-space:nowrap}
.footer-nav li::after{content:"·";margin-left:.5rem}
.footer-nav li:last-child::after{content:""}

@media (max-width: 640px){
  .footer-single{
    flex-wrap:wrap;
    justify-content:center;
    text-align:center;
  }
}

/* Forms */
.search-form{display:flex;gap:10px;flex-wrap:wrap;margin:0}
.search-field{
  flex:1 1 220px;
  padding:10px 12px;
  border:1px solid var(--rr-line);
  border-radius:10px;
}
.search-submit{
  padding:10px 14px;
  border:1px solid var(--rr-line);
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}
.rr-search-results{margin:0;padding-left:18px}
.rr-search-results li{margin:10px 0}

/* Mobile */
@media (max-width: 780px){
  .rr-nav-toggle{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:#fff;
    border:1px solid var(--rr-line);
    border-radius:999px;
    padding:8px 12px;
    cursor:pointer;
    white-space:nowrap;
  }
  .primary-nav{display:none;width:100%}
  .primary-nav.is-open{display:block}
  .primary-nav ul{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    padding:12px 0 0 0;
  }
  .header-inner{flex-wrap:wrap}
}
@media (max-width: 768px){
  .site-brand-wrap .custom-logo{height:56px;max-width:220px}
  .rr-site-logo{height:56px;max-width:220px}
}

/* Print */
@media print{
  body{color:#000;background:#fff}
  .site-header,.site-footer,.rr-nav-toggle{display:none !important}
  a{text-decoration:none}
  .dw-panel{
    background:#fff;
    border:1px solid #000;
    border-radius:0;
    page-break-inside:avoid;
  }
}
