/*
Theme Name: Best Time To Study
Theme URI: https://www.besttimetostudy.com/
Author: Ahuseed
Author URI: https://www.besttimetostudy.com/
Description: An education theme built for besttimetostudy.com, pairing a study-features showcase with a clean, readable blog. Organizes content around study techniques, timing, and focus, with a warm, academic visual identity.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: besttimetostudy
Tags: education, blog, e-learning, custom-post-type, custom-menu, featured-images, translation-ready
*/

/* =========================================================
   TOKENS
   ========================================================= */
:root{
  --ink: #1B2430;
  --ink-soft: #2C3A4D;
  --paper: #F5F2EA;
  --paper-dim: #EBE6D8;
  --sun: #E2A93B;
  --sun-deep: #C88A22;
  --sage: #5E7A5F;
  --clay: #B5502F;
  --slate: #5B6472;
  --line: rgba(27,36,48,0.16);
  --line-strong: rgba(27,36,48,0.34);

  --font-display: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --measure: 68ch;
  --radius: 2px;
}

/* Category accent colors, cycled by index — used to color-code sections */
.cat-0{ --cat: var(--sun-deep); }
.cat-1{ --cat: var(--sage); }
.cat-2{ --cat: var(--clay); }

/* =========================================================
   RESET / BASE
   ========================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; }
body{
  margin:0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  font-weight: 400;
}
img{ max-width:100%; height:auto; display:block; }
a{ color: inherit; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

:focus-visible{
  outline: 2px solid var(--sun-deep);
  outline-offset: 3px;
}

.screen-reader-text{
  position:absolute !important;
  width:1px;height:1px;
  overflow:hidden;
  clip:rect(1px,1px,1px,1px);
  white-space:nowrap;
}
.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  background:var(--ink);
  color:var(--paper);
  padding:0.75em 1.25em;
  z-index:10000;
}
.skip-link:focus{ left:1rem; top:1rem; }

.container{
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  margin: 0 0 0.5em;
  color: var(--ink);
}
h1{ font-size: clamp(2.1rem, 4vw, 3.4rem); }
h2{ font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
h3{ font-size: 1.3rem; }
p{ margin: 0 0 1.1em; }

.lede{
  font-size: 1.2rem;
  color: var(--ink-soft);
  max-width: var(--measure);
}

/* =========================================================
   BUTTONS / LINKS
   ========================================================= */
.btn{
  display:inline-flex;
  align-items:center;
  gap:0.5em;
  padding: 0.8em 1.5em;
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  font-weight: 600;
  text-decoration:none;
  background: transparent;
  color: var(--ink);
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}
.btn:hover{ background: var(--ink); color: var(--paper); }
.btn-solid{
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.btn-solid:hover{ background: var(--sun-deep); border-color: var(--sun-deep); color: var(--ink); }

.text-link{
  text-decoration: underline;
  text-decoration-color: var(--line-strong);
  text-underline-offset: 3px;
}
.text-link:hover{ text-decoration-color: var(--sun-deep); }

/* =========================================================
   SITE HEADER — magazine masthead
   ========================================================= */
.site-header{
  background: var(--paper);
  position: sticky;
  top:0;
  z-index: 500;
  border-bottom: 3px solid var(--ink);
}
.masthead-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--line);
  font-size: 0.82rem;
  color: var(--slate);
}
.masthead-date{ display:flex; align-items:center; gap:0.5em; }
.masthead-date svg{ width:14px; height:14px; }

.site-header-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.35rem;
  padding: 1.6rem 0 1.2rem;
  text-align:center;
}
.site-branding{ display:inline-flex; align-items:center; gap:0.55rem; text-decoration:none; }
.site-branding .mark{ width:30px; height:30px; flex:none; }
.site-title{
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 4vw, 2.7rem);
  font-weight: 700;
  color: var(--ink);
  margin:0;
  letter-spacing: -0.01em;
}
.site-title a{ text-decoration:none; }
.site-description{
  font-size: 0.88rem;
  color: var(--slate);
  margin:0;
  font-style: italic;
  font-family: var(--font-display);
}

.header-nav-bar{
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.header-nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.main-navigation{ display:flex; align-items:center; }
.main-navigation ul{ display:flex; gap:2rem; flex-wrap:wrap; }
.main-navigation a{
  text-decoration:none;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--ink-soft);
  padding: 0.85em 0.1em;
  display:inline-block;
  border-bottom: 3px solid transparent;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a{
  color: var(--ink);
  border-bottom-color: var(--sun);
}

.header-search-toggle{
  background:none;
  border:none;
  cursor:pointer;
  color: var(--ink);
  padding: 0.6em;
  display:flex;
}
.header-search-toggle svg{ width:19px; height:19px; }

.menu-toggle{
  display:none;
  background:none;
  border:1px solid var(--ink);
  border-radius: var(--radius);
  padding: 0.5em 0.7em;
  cursor:pointer;
}
.menu-toggle span{
  display:block;
  width:20px;
  height:2px;
  background: var(--ink);
  margin: 4px 0;
}

.header-search-panel{ padding: 1rem 0 1.3rem; border-top: 1px solid var(--line); }
.header-search-panel .search-form{ display:flex; gap:0.6rem; max-width: 420px; }
.header-search-panel input[type="search"]{
  flex:1;
  padding: 0.6em 0.9em;
  border: 1px solid var(--line-strong);
  background: var(--paper);
  color: var(--ink);
  font-family: inherit;
}
.header-search-panel input[type="submit"]{
  padding: 0.6em 1.1em;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  cursor:pointer;
  font-weight:600;
}

@media (max-width: 780px){
  .menu-toggle{ display:block; }
  .main-navigation{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    display:none;
  }
  .main-navigation.is-open{ display:block; }
  .main-navigation ul{
    flex-direction:column;
    gap:0;
    padding: 0.5rem 1.5rem 1.25rem;
  }
  .main-navigation li{ border-top: 1px solid var(--line); }
  .main-navigation a{ display:block; padding: 0.85em 0; border-bottom:none; }
  .masthead-date span.long{ display:none; }
}

/* =========================================================
   FEATURED STORY (magazine front page lead)
   ========================================================= */
.featured-section{
  padding: 2.5rem 0 3rem;
  border-bottom: 1px solid var(--line);
}
.featured-grid{
  display:grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 0;
  border-top: 1px solid var(--ink);
}
.featured-lead{
  position:relative;
  border-right: 1px solid var(--line);
  text-decoration:none;
  color: inherit;
  display:block;
  min-height: 460px;
  background: var(--ink);
  overflow:hidden;
}
.featured-lead img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0.72;
  transition: transform 400ms ease, opacity 300ms ease;
}
.featured-lead:hover img{ transform: scale(1.03); opacity:0.6; }
.featured-lead .lead-body{
  position:relative;
  z-index:2;
  padding: 2.4rem 2.4rem 2.6rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height: 460px;
  color: var(--paper);
}
.featured-lead .cat-pill{
  align-self:flex-start;
  margin-bottom: 0.9rem;
}
.featured-lead h1{
  color: var(--paper);
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  margin-bottom:0.5rem;
}
.featured-lead p{
  color: rgba(245,242,234,0.82);
  max-width: 46ch;
  margin:0;
}
.featured-lead .post-meta{ color: rgba(245,242,234,0.7); }

.featured-side{ display:flex; flex-direction:column; }
.featured-side-item{
  display:flex;
  gap:1rem;
  padding: 1.4rem 1.6rem;
  border-bottom: 1px solid var(--line);
  text-decoration:none;
  color:inherit;
}
.featured-side-item:hover .side-title{ color: var(--sun-deep); }
.featured-side-item .side-thumb{
  width:84px; height:64px; flex:none;
  overflow:hidden;
  background: var(--paper-dim);
  border: 1px solid var(--line);
}
.featured-side-item .side-thumb img{ width:100%; height:100%; object-fit:cover; }
.side-title{
  font-family: var(--font-display);
  font-weight:600;
  font-size: 1.02rem;
  line-height:1.3;
  margin:0 0 0.3em;
}

.cat-pill{
  display:inline-block;
  font-size: 0.72rem;
  font-weight:700;
  letter-spacing:0.03em;
  padding: 0.28em 0.7em;
  color: var(--paper);
  background: var(--cat, var(--sage));
}

@media (max-width: 900px){
  .featured-grid{ grid-template-columns: 1fr; }
  .featured-lead, .featured-lead .lead-body{ min-height: 340px; }
  .featured-lead{ border-right:none; border-bottom: 1px solid var(--line); }
}

/* =========================================================
   SECTION HEADINGS
   ========================================================= */
.section{ padding: 4rem 0; }
.section + .section{ border-top: 1px solid var(--line); }
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:1.5rem;
  margin-bottom: 2.25rem;
  flex-wrap:wrap;
}
.section-head p{ margin:0; color: var(--slate); max-width: 46ch; }

/* =========================================================
   STUDY FEATURES GRID
   ========================================================= */
.features-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.feature-card{
  padding: 2rem 1.9rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-decoration:none;
  color: inherit;
  display:flex;
  flex-direction:column;
  gap:0.8rem;
  transition: background 160ms ease;
}
.feature-card:hover{ background: var(--paper-dim); }
.feature-icon{
  width:40px; height:40px;
  color: var(--sun-deep);
}
.feature-card h3{ margin:0; }
.feature-card p{ margin:0; color: var(--slate); font-size:0.97rem; }
.feature-time{
  margin-top:auto;
  padding-top: 0.9rem;
  font-size: 0.85rem;
  color: var(--sage);
  font-weight:600;
}

@media (max-width: 860px){
  .features-grid{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 560px){
  .features-grid{ grid-template-columns: 1fr; }
}

/* =========================================================
   CATEGORY SHELVES + MAGAZINE CARD GRID
   ========================================================= */
.section-head{
  border-bottom: 2px solid var(--ink);
  padding-bottom: 0.9rem;
}
.section-head .cat-pill{ margin-bottom:0.6rem; }
.section-head h2{ margin:0; }
.section-head-flex{ display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; }
.section-head-flex .see-all{ font-size:0.88rem; font-weight:600; text-decoration:none; color: var(--ink-soft); white-space:nowrap; padding-bottom: 0.3rem; }
.section-head-flex .see-all:hover{ color: var(--sun-deep); }

.card-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
.article-card{
  text-decoration:none;
  color:inherit;
  padding: 1.6rem 1.7rem 1.8rem 0;
  border-right: 1px solid var(--line);
}
.card-grid .article-card:nth-child(3n){ border-right:none; padding-right:0; }
.card-grid .article-card:not(:nth-child(3n)){ padding-right: 1.7rem; }
.card-grid .article-card:nth-child(n+2){ padding-left: 1.7rem; }
.card-grid .article-card:nth-child(3n+1){ padding-left:0; }

.article-thumb{
  width:100%; aspect-ratio: 4/3;
  overflow:hidden;
  background: var(--paper-dim);
  border: 1px solid var(--line);
  margin-bottom: 1rem;
}
.article-thumb img{ width:100%; height:100%; object-fit:cover; transition: transform 350ms ease; }
.article-card:hover .article-thumb img{ transform: scale(1.04); }
.article-card .cat-pill{ margin-bottom: 0.6rem; }
.article-card h3{ font-size:1.15rem; margin: 0.5rem 0 0.4rem; }
.article-card .post-excerpt{ color: var(--slate); font-size:0.93rem; margin: 0 0 0.6rem; }

@media (max-width: 900px){
  .card-grid{ grid-template-columns: repeat(2,1fr); }
  .card-grid .article-card{ border-right:1px solid var(--line) !important; padding-right:1.7rem !important; padding-left:0 !important; }
  .card-grid .article-card:nth-child(2n){ border-right:none !important; padding-right:0 !important; padding-left:1.7rem !important; }
}
@media (max-width: 560px){
  .card-grid{ grid-template-columns: 1fr; }
  .card-grid .article-card{ border-right:none !important; padding:1.6rem 0 !important; border-bottom: 1px solid var(--line); }
}

/* =========================================================
   TOOLKIT SHELF (Study Features)
   ========================================================= */
.toolkit-shelf{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ink);
  border-left: 1px solid var(--line);
}
.toolkit-item{
  padding: 1.8rem 1.7rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-decoration:none;
  color: inherit;
  display:flex;
  gap:1rem;
}
.toolkit-item:hover{ background: var(--paper-dim); }
.toolkit-num{
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight:600;
  color: var(--line-strong);
  flex:none;
  width: 1.6em;
}
.toolkit-item h3{ margin:0 0 0.35rem; font-size:1.1rem; }
.toolkit-item p{ margin:0; color: var(--slate); font-size:0.92rem; }
.toolkit-time{
  display:inline-block;
  margin-top:0.6rem;
  font-size: 0.78rem;
  font-weight:700;
  color: var(--sage);
}

@media (max-width: 860px){ .toolkit-shelf{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .toolkit-shelf{ grid-template-columns: 1fr; } }

/* =========================================================
   SIDEBAR — Most Read, Newsletter, Tags
   ========================================================= */
.most-read-list{ counter-reset: mr; }
.most-read-item{
  counter-increment: mr;
  display:flex;
  gap:0.9rem;
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration:none;
  color:inherit;
}
.most-read-item::before{
  content: counter(mr);
  font-family: var(--font-display);
  font-size:1.3rem;
  font-weight:700;
  color: var(--line-strong);
  flex:none;
  width:1.3rem;
}
.most-read-item h4{
  font-family: var(--font-display);
  font-size:0.98rem;
  font-weight:600;
  margin:0;
  line-height:1.35;
}

.newsletter-box{
  background: var(--ink);
  color: var(--paper);
  padding: 1.8rem 1.6rem;
}
.newsletter-box h4{ color: var(--paper); font-family: var(--font-display); margin: 0 0 0.5em; }
.newsletter-box p{ color: rgba(245,242,234,0.75); font-size:0.9rem; margin:0 0 1rem; }
.newsletter-box input[type="email"]{
  width:100%;
  padding: 0.7em 0.9em;
  border: 1px solid rgba(245,242,234,0.4);
  background: transparent;
  color: var(--paper);
  margin-bottom: 0.7rem;
}
.newsletter-box input::placeholder{ color: rgba(245,242,234,0.5); }
.newsletter-box .btn{ width:100%; justify-content:center; border-color: var(--paper); color: var(--paper); }
.newsletter-box .btn:hover{ background: var(--sun); border-color: var(--sun); color: var(--ink); }

.tag-cloud-list{ display:flex; flex-wrap:wrap; gap:0.5rem; }

.cat-list-widget li{ display:flex; justify-content:space-between; }
.cat-list-widget a{ text-decoration:none; }
.cat-list-widget a:hover{ color: var(--sun-deep); }

/* =========================================================
   BLOG / ARTICLE LISTS  (compact reading-list style, used in loops without images or search results)
   ========================================================= */
.post-list{ border-top: 1px solid var(--line); }
.post-row{
  display:grid;
  grid-template-columns: 130px 1fr auto;
  gap: 1.75rem;
  align-items:start;
  padding: 1.9rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration:none;
  color: inherit;
}
.post-row .post-thumb{
  width:130px; height:92px;
  overflow:hidden;
  background: var(--paper-dim);
  border: 1px solid var(--line);
}
.post-row .post-thumb img{ width:100%; height:100%; object-fit:cover; }
.post-row .post-meta{
  font-size: 0.82rem;
  color: var(--slate);
  margin-bottom: 0.35rem;
}
.post-row .post-meta a{ text-decoration:none; color: var(--sage); font-weight:600; }
.post-row h3{ margin: 0 0 0.35rem; font-size:1.2rem; }
.post-row .post-excerpt{ color: var(--slate); font-size:0.95rem; margin:0; }
.post-row .read-more{
  align-self:center;
  font-size:0.85rem;
  font-weight:600;
  white-space:nowrap;
  color: var(--ink);
}

@media (max-width: 640px){
  .post-row{ grid-template-columns: 1fr; }
  .post-row .post-thumb{ width:100%; height:170px; }
  .post-row .read-more{ display:none; }
}

/* =========================================================
   SINGLE POST / PAGE
   ========================================================= */
.entry-header{ padding: 3rem 0 1.5rem; border-bottom: 1px solid var(--line); }
.entry-meta{ color: var(--slate); font-size:0.9rem; margin-bottom:0.6rem; }
.entry-meta a{ color: var(--sage); font-weight:600; text-decoration:none; }
.entry-thumb{ margin: 2rem 0; border: 1px solid var(--line); }

.entry-content{
  max-width: var(--measure);
  margin: 2.5rem auto 0;
  font-size: 1.08rem;
}
.entry-content h2{ margin-top: 1.6em; }
.entry-content h3{ margin-top: 1.4em; }
.entry-content p{ margin-bottom: 1.3em; }
.entry-content ul, .entry-content ol{ margin: 0 0 1.3em 1.4em; list-style:revert; }
.entry-content blockquote{
  margin: 1.8em 0;
  padding: 0.2em 0 0.2em 1.3em;
  border-left: 3px solid var(--sun);
  font-family: var(--font-display);
  font-size: 1.15rem;
  color: var(--ink-soft);
}
.entry-content img{ margin: 1.5em 0; border: 1px solid var(--line); }
.entry-content a{ color: var(--sage); text-decoration-color: var(--line-strong); }
.entry-content pre{
  background: var(--ink);
  color: var(--paper);
  padding: 1.2em;
  overflow:auto;
  font-size: 0.9em;
}
.entry-footer{
  max-width: var(--measure);
  margin: 2.5rem auto 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  display:flex;
  flex-wrap:wrap;
  gap: 0.6rem;
  align-items:center;
}
.tag-list a{
  display:inline-block;
  padding: 0.3em 0.8em;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  font-size: 0.82rem;
  text-decoration:none;
  margin: 0 0.35em 0.35em 0;
}
.tag-list a:hover{ border-color: var(--sun-deep); color: var(--sun-deep); }

.author-box{
  max-width: var(--measure);
  margin: 2.5rem auto 0;
  padding: 1.6rem;
  background: var(--paper-dim);
  display:flex;
  gap:1rem;
  align-items:flex-start;
}
.author-box img{ border-radius:50%; width:56px; height:56px; }
.author-box h4{ margin:0 0 0.3em; font-size:1rem; }
.author-box p{ margin:0; color: var(--slate); font-size:0.92rem; }

/* =========================================================
   COMMENTS
   ========================================================= */
.comments-area{ max-width: var(--measure); margin: 3rem auto 0; }
.comment-list{ margin: 0 0 2rem; }
.comment-body{ padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.comment-author{ font-weight:600; font-size:0.95rem; }
.comment-metadata{ font-size:0.8rem; color: var(--slate); margin-bottom:0.5em; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea{
  width:100%;
  padding: 0.7em 0.9em;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  font-family: inherit;
  font-size: 0.98rem;
  margin-bottom: 1rem;
  background: var(--paper);
  color: var(--ink);
}
.comment-form textarea{ min-height: 120px; }

/* =========================================================
   SIDEBAR / WIDGETS
   ========================================================= */
.content-wrap{
  display:grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  padding: 2.5rem 0 1rem;
}
@media (min-width: 900px){
  .content-wrap{ grid-template-columns: 2.1fr 1fr; align-items:start; }
}
.widget{ margin-bottom: 2.5rem; }
.widget-title{
  font-family: var(--font-display);
  font-size:1.05rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: 0.5em;
  margin-bottom: 0.9em;
}
.widget ul li{ padding: 0.4em 0; border-bottom: 1px solid var(--line); font-size:0.95rem; }

/* =========================================================
   PAGINATION
   ========================================================= */
.pagination{
  display:flex;
  gap:0.6rem;
  justify-content:center;
  padding: 2.5rem 0;
  flex-wrap:wrap;
}
.pagination a, .pagination span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2.4em;
  height:2.4em;
  padding: 0 0.5em;
  border: 1px solid var(--line-strong);
  text-decoration:none;
  font-size:0.9rem;
}
.pagination .current{ background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pagination a:hover{ border-color: var(--sun-deep); color: var(--sun-deep); }

/* =========================================================
   CTA BAND
   ========================================================= */
.cta-band{
  background: var(--ink);
  color: var(--paper);
  padding: 3.5rem 0;
  text-align:center;
}
.cta-band h2{ color: var(--paper); }
.cta-band p{ color: rgba(247,245,240,0.75); max-width: 52ch; margin: 0 auto 1.6rem; }
.cta-band .btn{ border-color: var(--paper); color: var(--paper); }
.cta-band .btn:hover{ background: var(--sun); border-color: var(--sun); color: var(--ink); }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{
  border-top: 3px solid var(--ink);
  padding: 3rem 0 2rem;
  margin-top: 2rem;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 2.5rem;
  margin-bottom: 2.5rem;
}
.footer-grid h4{
  font-family: var(--font-body);
  font-weight:600;
  font-size:0.95rem;
  margin-bottom:0.9em;
}
.footer-grid ul li{ margin-bottom: 0.55em; }
.footer-grid a{ text-decoration:none; color: var(--slate); font-size:0.93rem; }
.footer-grid a:hover{ color: var(--ink); }
.footer-bottom{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:0.8rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  font-size: 0.85rem;
  color: var(--slate);
}
@media (max-width: 700px){
  .footer-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 460px){
  .footer-grid{ grid-template-columns: 1fr; }
}

/* =========================================================
   MISC
   ========================================================= */
.no-results{ padding: 3rem 0; }
.page-title-band{ padding: 3rem 0 2rem; border-bottom:1px solid var(--line); }
.page-title-band p{ color: var(--slate); margin:0; }

.alignwide{ max-width: 1140px; margin-left:auto; margin-right:auto; }
.alignfull{ max-width:none; }
