/*
Theme Name: The Shiny Way
Theme URI: https://shaunie.life/
Author: Custom theme conversion
Description: An editorial journal theme with a masonry home, flexible WordPress pages, post archives, mobile menu and customizable featured story.
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: the-shiny-way
License: GPL-2.0-or-later
*/


.shiny-site {
  --ink: #111;
  --paper: #fff;
  --muted: #8a8a8a;
  --line: #d8d8d8;
  width: 100%;
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
}

.shiny-site,
.shiny-site * {
  box-sizing: border-box;
}

.shiny-site a {
  color: inherit;
  text-decoration: none;
}

.shiny-site img {
  max-width: 100%;
}

.shiny-site .page {
  width: min(1240px, calc(100% - 72px));
  margin: 0 auto;
}

/* HEADER */

.shiny-site .site-header {
  min-height: 170px;
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 46px;
  align-items: center;
  border-bottom: 4px solid var(--ink);
}

.shiny-site .logo img {
  display: block;
  width: 166px;
  height: 166px;
  object-fit: contain;
}

.shiny-site .header-right {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 32px;
}

.shiny-site .nav {
  display: flex;
  gap: 40px;
  align-items: center;
  font-size: 11px;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.shiny-site .nav a {
  padding: 10px 0;
  border-bottom: 1px solid transparent;
}

.shiny-site .nav a:first-child {
  border-bottom-color: var(--ink);
}

.shiny-site .social {
  border-left: 1px solid var(--ink);
  padding-left: 25px;
  font-size: 10px;
  letter-spacing: .17em;
  text-transform: uppercase;
}

/* FEATURED ARTICLE */

.shiny-site .featured {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(340px, .72fr);
  gap: 64px;
  align-items: center;
  padding: 70px 0 88px;
}

.shiny-site .feature-shadow {
  padding: 1px 18px 18px 1px;
  overflow: visible;
}

.shiny-site .feature-frame {
  position: relative;
  z-index: 1;
  display: block;
  padding: 9px;
  background: #fff;
  box-shadow:
    0 0 0 1px var(--ink),
    10px 10px 0 var(--ink);
  transition:
    transform .22s ease,
    box-shadow .22s ease;
}

.shiny-site .feature-shadow:hover .feature-frame {
  transform: translate(-7px, -7px);
  box-shadow:
    0 0 0 1px var(--ink),
    17px 17px 0 var(--ink);
}

.shiny-site .feature-frame img {
  display: block;
  width: 100%;
  aspect-ratio: 1.46 / 1;
  object-fit: cover;
  object-position: center 43%;
}

.shiny-site .feature-copy {
  position: relative;
  padding: 28px 8px 28px 0;
}

.shiny-site .feature-copy::before {
  content: "";
  position: absolute;
  left: -31px;
  top: 16px;
  bottom: 16px;
  width: 1px;
  background: var(--ink);
}

.shiny-site .eyebrow {
  margin: 0 0 20px;
  font-size: 9px;
  letter-spacing: .28em;
  text-transform: uppercase;
}

.shiny-site .feature-title {
  margin: 0 0 17px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(43px, 4.1vw, 64px);
  line-height: .98;
  font-weight: 400;
  letter-spacing: -.036em;
}

.shiny-site .feature-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 23px;
  color: #8d8d8d;
  font-size: 8px;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.shiny-site .feature-meta span + span::before {
  content: "";
  display: inline-block;
  width: 23px;
  height: 1px;
  margin-right: 14px;
  vertical-align: middle;
  background: var(--ink);
}

.shiny-site .feature-deck {
  max-width: 390px;
  margin: 0 0 25px;
  color: #444;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  line-height: 1.6;
}

.shiny-site .read-link {
  display: inline-flex;
  gap: 13px;
  align-items: center;
  border: 1px solid var(--ink);
  padding: 11px 15px;
  font-size: 9px;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.shiny-site .read-link::after {
  content: "→";
  font-size: 15px;
}

/* JOURNAL */

.shiny-site .journal {
  padding: 0 0 26px;
}

.shiny-site .section-head {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.shiny-site .section-head h2 {
  margin: 0;
  white-space: nowrap;
  font-size: 9px;
  font-weight: 400;
  letter-spacing: .29em;
  text-transform: uppercase;
}

.shiny-site .section-head::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--ink);
}

/* MASONRY GRID */

.shiny-site .journal-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 4px;
  grid-auto-flow: dense;
  column-gap: 33px;
  row-gap: 19px;
  align-items: start;
}

.shiny-site .tile {
  min-width: 0;
  margin: 0;
}

.shiny-site .tile.wide {
  grid-column: span 2;
}

.shiny-site .article-card {
  position: relative;
  padding-bottom: 30px;
}

.shiny-site .card-shell {
  width: 100%;
  background: var(--ink);
}

.shiny-site .card-inner {
  position: relative;
  display: block;
  width: 100%;
  padding: 7px;
  border: 1px solid var(--ink);
  background: #fff;
  transition: transform .22s ease;
}

.shiny-site .article-card:hover .card-inner {
  transform: translate(-7px, -7px);
}

.shiny-site .card-inner img {
  display: block;
  width: 100%;
  object-fit: cover;
}

.shiny-site .article-card.portrait .card-inner img {
  aspect-ratio: 2 / 3;
}

.shiny-site .article-card.landscape .card-inner img {
  aspect-ratio: 3 / 2;
}

.shiny-site .article-card.square .card-inner img {
  aspect-ratio: 1 / 1;
}

.shiny-site .caption {
  position: absolute;
  left: 50%;
  bottom: -24px;
  z-index: 2;
  width: min(84%, 310px);
  transform: translateX(-50%);
  border: 1px solid var(--ink);
  padding: 10px 12px 9px;
  background: #fff;
  text-align: center;
}

.shiny-site .caption-title {
  display: block;
  font-size: 12px;
  line-height: 1.18;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.shiny-site .caption-date {
  display: block;
  margin-top: 5px;
  color: #aaa;
  font-size: 7px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

/* QUOTE TILES */

.shiny-site .quote-card {
  position: relative;
  display: flex;
  min-height: 150px;
  border: 1px solid var(--ink);
  padding: 15px;
  background: #fff;
}

.shiny-site .quote-card::after {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid var(--line);
  pointer-events: none;
}

.shiny-site .quote-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  padding: 13px 15px 11px;
  text-align: center;
}

.shiny-site .quote-mark {
  height: 18px;
  margin-bottom: 6px;
  color: #aaa;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 38px;
  line-height: .6;
}

.shiny-site .quote-text {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  line-height: 1.35;
  font-style: italic;
}

.shiny-site .quote-source {
  margin-top: 11px;
  color: #888;
  font-size: 7px;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.shiny-site .quote-card.wide {
  min-height: 132px;
}

.shiny-site .quote-card.wide .quote-text {
  max-width: 560px;
  margin-inline: auto;
  font-size: 20px;
}

/* IMAGE CROPS */

.shiny-site .cake img {
  object-position: center 45%;
}

.shiny-site .hawk img {
  object-position: center 46%;
}

.shiny-site .tater img {
  object-position: center 49%;
}

.shiny-site .door img {
  object-position: center 50%;
}

.shiny-site .carrot img {
  object-position: center 50%;
}

.shiny-site .gratitude img {
  object-position: center 38%;
}

.shiny-site .onion img {
  object-position: center 49%;
}

.shiny-site .children img {
  object-position: center 45%;
}

.shiny-site .harvest img {
  object-position: center 55%;
}

.shiny-site .table img {
  object-position: center 47%;
}

.shiny-site .beets img {
  object-position: center 50%;
}

/* FOOTER */

.shiny-site .site-footer {
  border-top: 1px solid var(--ink);
}

.shiny-site .footer-main {
  width: min(1240px, calc(100% - 72px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 145px 1fr auto;
  align-items: center;
  gap: 44px;
  padding: 34px 0;
}

.shiny-site .footer-logo img {
  display: block;
  width: 120px;
  height: 120px;
  object-fit: contain;
}

.shiny-site .footer-copy {
  max-width: 600px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  line-height: 1.18;
}

.shiny-site .footer-copy span {
  display: block;
  margin-top: 12px;
  color: #777;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 8px;
  letter-spacing: .23em;
  text-transform: uppercase;
}

.shiny-site .footer-links {
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 12px 28px;
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.shiny-site .footer-links a {
  padding-bottom: 5px;
  border-bottom: 1px solid #bbb;
}

.shiny-site .footer-bottom {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 max(36px, calc((100vw - 1240px) / 2));
  background: var(--ink);
  color: #fff;
  font-size: 7px;
  letter-spacing: .19em;
  text-transform: uppercase;
}

/* TABLET */

@media (max-width: 980px) {
  .shiny-site .page {
    width: min(calc(100% - 34px), 780px);
  }

  .shiny-site .site-header {
    grid-template-columns: 132px 1fr;
    min-height: 142px;
    gap: 20px;
  }

  .shiny-site .logo img {
    width: 126px;
    height: 126px;
  }

  .shiny-site .nav {
    display: none;
  }

  .shiny-site .social {
    border: 0;
    padding: 0;
  }

  .shiny-site .featured {
    grid-template-columns: 1fr;
    gap: 34px;
    padding: 50px 0 66px;
  }

  .shiny-site .feature-copy {
    padding: 0;
  }

  .shiny-site .feature-copy::before {
    display: none;
  }

  .shiny-site .journal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 26px;
    row-gap: 16px;
  }

  .shiny-site .tile.wide {
    grid-column: span 2;
  }

  .shiny-site .footer-main {
    width: min(calc(100% - 36px), 700px);
    grid-template-columns: 110px 1fr;
    gap: 26px;
  }

  .shiny-site .footer-links {
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, 1fr);
    width: 100%;
  }
}

/* MOBILE */

@media (max-width: 620px) {
  .shiny-site .page {
    width: calc(100% - 24px);
  }

  .shiny-site .site-header {
    grid-template-columns: 100px 1fr;
    min-height: 112px;
    border-bottom-width: 3px;
  }

  .shiny-site .logo img {
    width: 96px;
    height: 96px;
  }

  .shiny-site .social {
    font-size: 8px;
  }

  .shiny-site .feature-title {
    font-size: 43px;
  }

  .shiny-site .journal-grid {
    display: block;
  }

  .shiny-site .tile,
  .shiny-site .tile.wide {
    width: 100%;
    margin-bottom: 24px;
  }

  .shiny-site .article-card.portrait {
    width: 84%;
    margin-inline: auto;
  }

  .shiny-site .quote-card {
    min-height: 140px;
  }

  .shiny-site .footer-main {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 38px 0;
    text-align: center;
  }

  .shiny-site .footer-copy {
    font-size: 22px;
  }

  .shiny-site .footer-links {
    grid-template-columns: repeat(2, 1fr);
  }

  .shiny-site .footer-bottom {
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    padding: 13px 20px;
    text-align: center;
  }
}

/* WordPress integration and accessibility */
body {margin:0;background:#fff;color:#111;}
.shiny-site{min-height:100vh;}
.shiny-site .logo-text,.shiny-site .footer-logo-text{font-family:Georgia,serif;font-size:24px;line-height:1.1;}
.shiny-site .logo-text{display:block;max-width:180px;}
.shiny-site .nav .current-menu-item > a,.shiny-site .nav .current_page_item > a{border-bottom-color:#111;}
.shiny-site .nav ul,.shiny-site .footer-links ul{display:flex;gap:40px;list-style:none;margin:0;padding:0;}
.shiny-site .footer-links ul{display:contents;}
.shiny-site .menu-toggle{display:none;border:1px solid #111;background:#fff;color:#111;padding:10px 13px;letter-spacing:.15em;text-transform:uppercase;font-size:10px;cursor:pointer;}
.shiny-site .social a{border-bottom:1px solid #aaa;padding-bottom:4px;}
.shiny-site .journal-grid .tile{align-self:start;}
.shiny-site .article-card .card-inner:focus-visible,.shiny-site a:focus-visible,.shiny-site button:focus-visible{outline:2px solid #333;outline-offset:4px;}
.shiny-site .card-inner img{background:#eee;}
.shiny-site .article-placeholder{width:100%;aspect-ratio:1;background:#f4f4f4;display:flex;align-items:center;justify-content:center;color:#777;font-family:Georgia,serif;font-size:24px;}
.shiny-site .article-card.portrait .article-placeholder{aspect-ratio:2/3;}
.shiny-site .article-card.landscape .article-placeholder{aspect-ratio:3/2;}
.shiny-site .caption{color:#111;}
.shiny-site .journal-pagination{margin:32px 0 65px;font-size:12px;letter-spacing:.08em;}
.shiny-site .journal-pagination .nav-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;}
.shiny-site .journal-pagination a,.shiny-site .journal-pagination .current{border:1px solid #111;padding:10px 13px;}
.shiny-site .journal-pagination .current{background:#111;color:#fff;}
.shiny-site .content-wrap{max-width:820px;margin:70px auto 100px;padding:0 22px;}
.shiny-site .content-title{font-family:Georgia,serif;font-size:clamp(42px,5vw,70px);font-weight:400;line-height:1.05;letter-spacing:-.04em;margin:18px 0;}
.shiny-site .content-meta{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:#777;margin:0 0 35px;}
.shiny-site .content-body{font-family:Georgia,serif;font-size:19px;line-height:1.8;overflow-wrap:break-word;}
.shiny-site .content-body p{margin:0 0 1.35em;}
.shiny-site .content-body h2,.shiny-site .content-body h3{line-height:1.2;margin:1.8em 0 .7em;font-weight:400;}
.shiny-site .content-body h2{font-size:36px;}.shiny-site .content-body h3{font-size:28px;}
.shiny-site .content-body a{text-decoration:underline;text-underline-offset:3px;}
.shiny-site .content-body img{height:auto;max-width:100%;}
.shiny-site .content-body .alignwide{max-width:1100px;}.shiny-site .content-body .aligncenter{margin-left:auto;margin-right:auto;display:block;}
.shiny-site .single-image{width:100%;height:auto;display:block;margin-bottom:34px;}
.shiny-site .entry-tags{margin:30px 0;font-size:12px;}
.shiny-site .entry-tags a{text-decoration:underline;}
.shiny-site .post-navigation{display:flex;justify-content:space-between;gap:22px;border-top:1px solid #ddd;padding-top:25px;font-size:12px;}
.shiny-site .post-navigation a{text-decoration:underline;}
.shiny-site .search-form{display:flex;max-width:550px;gap:8px;margin:20px 0 32px;}
.shiny-site .search-form input{padding:12px;min-width:0;flex:1;border:1px solid #aaa;}
.shiny-site .search-form button{background:#111;border:1px solid #111;color:#fff;padding:10px 18px;cursor:pointer;}
.shiny-site .footer-bottom a{color:#fff;}
.shiny-site .wp-block-image img{height:auto;}
.shiny-site .screen-reader-text,.screen-reader-text{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}
.shiny-site .screen-reader-text:focus{position:fixed;z-index:9999;left:10px;top:10px;width:auto;height:auto;background:#fff;padding:12px;color:#111;}
@media(max-width:980px){
 .shiny-site .menu-toggle{display:inline-flex;}
 .shiny-site .header-right{position:relative;gap:20px;}
 .shiny-site .nav{display:none;position:absolute;right:0;top:calc(100% + 8px);width:min(280px,80vw);background:#fff;z-index:10;border:1px solid #111;padding:14px 20px;box-shadow:6px 6px 0 #111;}
 .shiny-site .nav.is-open{display:block;}
 .shiny-site .nav ul{flex-direction:column;gap:10px;}
 .shiny-site .nav a{display:block;}
}
@media(max-width:620px){.shiny-site .footer-copy{font-size:22px;}.shiny-site .content-wrap{margin:40px auto 70px;padding:0 16px;}.shiny-site .content-body{font-size:17px;}.shiny-site .header-right{gap:10px;}.shiny-site .social{display:none;}}

/* Version 2 editorial templates */
.shiny-site .editorial-hero{position:relative;margin:55px 0 65px;}
.shiny-site .editorial-hero-image{display:block;width:100%;max-height:650px;object-fit:cover;}
.shiny-site .editorial-hero-copy{position:relative;max-width:690px;margin:-55px auto 0;padding:35px 40px;background:#fff;border:1px solid #111;text-align:center;}
.shiny-site .editorial-body{max-width:860px;margin:0 auto 95px;}
.shiny-site .gallery-heading{max-width:850px;margin:65px auto 40px;text-align:center;}
.shiny-site .gallery-heading .feature-deck{max-width:650px;margin:24px auto;}
.shiny-site .gallery-cover img,.shiny-site .gallery-cover{width:100%;height:auto;display:block;margin:0 0 40px;}
.shiny-site .gallery-content{margin:0 auto 85px;max-width:1120px;}
.shiny-site .gallery-content .wp-block-gallery{gap:16px;}
.shiny-site .gallery-content .wp-block-image img{width:100%;height:auto;}
.shiny-site .collection-page .editorial-hero-image{max-height:510px;}
.shiny-site .author-intro{display:grid;grid-template-columns:minmax(250px,0.85fr) minmax(0,1.15fr);gap:65px;align-items:start;margin:75px auto 95px;max-width:1150px;}
.shiny-site .author-photo img{display:block;width:100%;height:auto;}
.shiny-site .recipe-box{border:1px solid #111;padding:36px;margin:65px 0;background:#fff;}
.shiny-site .recipe-box>h2{font:normal 34px Georgia,serif;margin:10px 0 20px;}
.shiny-site .recipe-columns{display:grid;grid-template-columns:1fr 1.3fr;gap:45px;margin-top:30px;}
.shiny-site .recipe-columns li{padding-bottom:10px;line-height:1.6;}
.shiny-site .recipe-meta{display:flex;flex-wrap:wrap;gap:20px;font-size:12px;}
.shiny-site .recipe-print{border:1px solid #111;background:white;padding:12px 22px;cursor:pointer;text-transform:uppercase;letter-spacing:.12em;}
@media(max-width:700px){.shiny-site .author-intro,.shiny-site .recipe-columns{grid-template-columns:1fr;gap:25px}.shiny-site .editorial-hero-copy{margin:-25px 12px 0;padding:25px 16px}.shiny-site .recipe-box{padding:20px}}
@media print{.shiny-site .site-header,.shiny-site .site-footer,.shiny-site .recipe-print,.shiny-site .recipe-story>.content-body,.shiny-site .recipe-story>.single-image,.shiny-site .recipe-story>.content-meta,.shiny-site .recipe-story>.eyebrow,.shiny-site .recipe-story>.content-title{display:none!important}.shiny-site .recipe-box{border:none;padding:0;margin:0}.shiny-site .recipe-columns{display:grid;grid-template-columns:1fr 1fr}}

.shiny-site .related-stories{margin:65px 0}.shiny-site .related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.shiny-site .related-grid img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.shiny-site .related-grid a span{display:block;padding:12px 0;text-transform:uppercase;letter-spacing:.08em;font-size:12px}@media(max-width:620px){.shiny-site .related-grid{grid-template-columns:1fr 1fr}}
