/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}
/* HTML5 display-role reset for older browsers */
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}
ul,ol{padding-inline-start:0;margin-block-start:0;margin-block-end:0;}

*, *::before, *::after { box-sizing: border-box; }

/* utility classes */
.nowrap{white-space:nowrap;}
.hidden{display:none;}
.screen-reader-only{clip:rect(1px,1px,1px,1px);height:1px;width:1px;overflow:hidden;position:absolute;}
.clearfix::after{content:'';display:table;clear:both;}
.uppercase{text-transform:uppercase;}

@font-face {
  font-family: Maragsa;
  src: url(/staging/wp-content/themes/castirontheme/assets/fonts/MaragsaDisplay-GO6PD.otf);
  font-weight: normal;
}

/* color, font and size variables */
:root {
  --black: #222;
  --dark-gray: #293039;
  --white: #fff;
  --highlight: #fa573e;

  --body-font: 'Montserrat';
  --display-font: 'Maragsa';

  --half-space: .5rem;
  --single-space: 1rem;
  --mid-space: 1.5rem;
  --double-space: 2rem;
  --max-width: 80rem;
  --narrow-max-width: 56.25rem;

  --header-height: 4rem;
  --footer-height: 4rem;
  --mobile-padding-x: 1rem;
  --mobile-padding-y: 2rem;
  --mid-padding-x: 1.5rem;
  --mid-padding-y: 3rem;
  --desktop-padding-x: 2rem;
  --desktop-padding-y: 4rem;
  --content-max-width: 75rem;
}

body {
  background: #FFF;
  color: #222;
  font-size: 16px;
  line-height: 1.2;
  font-family: 'Montserrat', sans-serif;
  font-family: var(--body-font);
  font-weight: 300;
  font-optical-sizing: auto;
}
img {
  height: auto;
  max-width: 100%;
}
/* ============================
   LAYOUT
   ============================ */

.page-wrapper,
.main {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  width: 100%;
}
.main {
  min-height: calc(100dvh - var(--header-height) - var(--footer-height, 0));
  justify-content: center;
}

/* ============================
   HEADER / NAV
   ============================ */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--white);
  border-bottom: 1px solid #e8e4df;
  /* needed so the mobile dropdown positions relative to the header */
  isolation: isolate;
}
.header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 0 var(--mobile-padding-x);
  height: var(--header-height);
}
.header-logo img {
  display: block;
  height: 2.25rem;
  width: auto;
}
.nav-list {
  display: flex;
  gap: 2rem;
  list-style: none;
}
.nav-list a {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--black);
  transition: color 0.2s ease;
}
.nav-list a:hover,
.nav-list a:focus,
.nav-list a:active,
.nav-list a.current-page {
  color: var(--highlight);
}
.nav-list a.current-page {
  pointer-events: none;
  cursor: default;
}

/* Hamburger button — visible only below 900px */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  margin: -0.5rem;
}
.nav-toggle-bar {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--black);
  border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.25s ease;
  transform-origin: center;
}
/* Animate bars to X when open */
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2) {
  opacity: 0;
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 56.25em) { /* 900px */
  .nav-toggle {
    display: flex;
  }
  .nav {
    display: none;
    position: absolute;
    top: var(--header-height);
    left: 0;
    right: 0;
    background: var(--white);
    border-bottom: 1px solid #e8e4df;
    padding: 1rem var(--mobile-padding-x) 1.5rem;
  }
  .nav.is-open {
    display: block;
  }
  .nav-list {
    flex-direction: column;
    gap: 0;
  }
  .nav-list a {
    display: block;
    padding: 0.875rem 0;
    border-bottom: 1px solid #e8e4df;
    font-size: 0.8125rem;
  }
  .nav-list li:last-child a {
    border-bottom: none;
  }
}

/* ============================
   SECTIONS
   ============================ */
.section {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: var(--mobile-padding-y) var(--mobile-padding-x);
}
@media only screen and (min-width: 37.5em) { /* 600px */
  .section {
    padding: var(--mid-padding-y) var(--mid-padding-x);
  }
}
@media only screen and (min-width: 56.25em) { /* 900px */
  .section {
    padding: var(--desktop-padding-y) var(--desktop-padding-x);
  }
}

/* ============================
   FOOTER
   ============================ */
.footer {
  border-top: 1px solid #e8e4df;
  margin-top: auto;
}
.footer-content {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 0 var(--mobile-padding-x);
  text-align: center;
  height: var(--footer-height);
  display: flex;
  justify-content: center;
  align-items: center;
}
h1, .head-one, h2, .head-two, h3, .head-three {
  text-wrap: balance;
  line-height: 1;
  font-family: var(--display-font);
  letter-spacing: .02em;
}
h1, .head-one {
  font-size: 4rem;
  color: var(--highlight);
  margin-bottom: 2rem;
}
h2, .head-two {
  font-size: 1.75rem;
  color: var(--highlight);
  font-weight: 500;
}
h3, .head-three {
  font-family: var(--body-font);
  text-transform: uppercase;
  color: var(--black);
  font-family: var(--body-font);
  font-size: .875rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .1em;
  margin-bottom: 1em;
}
p {
  margin-bottom: 2rem;
  text-wrap: pretty;
}
p strong {
  font-weight: 600;
}
.footer-copyright {
  font-size: .75em;
} 
a {
  color: inherit;
}
.head-three a {
  color: var(--black);
  text-decoration: none;
  transition: all .3s ease-in-out;
}
.head-three a:active,
.head-three a:hover,
.head-three a:focus {
  color: var(--highlight);
}
@media only screen and ( min-width: 37.5em ) { /* 600px */
  h1, .head-one {
    font-size: 4rem;
  }
  h2, .head-two {
    font-size: 1.5rem;
  }
  h3, .head-three {
    font-size: 1rem;
  }
  p {
    font-size: 1.25rem;
  }
}
@media only screen and ( min-width: 46.875em ) { /* 750px */
  .header .content, 
  .main .content, 
  .footer .content{
    padding: 2em;
  }
  h1, .head-one {
    font-size: 5rem;
  }
  h2, .head-two {
    font-size: 2rem;
  }
  p {
    font-size: 1.25rem;
  }
}
@media only screen and ( min-width: 56.25em ) { /* 900px */
  .header .content, 
  .main .content, 
  .footer .content{
    padding: 2em;
  }
  h1, .head-one {
    font-size: 6rem;
  }
  h2, .head-two {
    font-size: 2rem;
  }
  h3, .head-three {
    font-size: 1.125rem;
  }
  p {
    font-size: 1.5rem;
  }
}
@media only screen and (min-width: 65.625em) { /* 1050px */
  h1, .head-one {
    font-size: 6.75rem;
  }
  h2, .head-two {
    font-size: 3rem;
  }
  h3, .head-three {
    font-size: 1.25rem;
  }
}

.home-page {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  text-align: center;
  height: 100%;
  width: auto;
}
.home-page > * {
  flex: 1 0 100%;
}

.hero-section {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mobile-padding-x);
  max-width: 75em;
}
.hero-text {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: var(--mobile-padding-x);
}
.hero-section h1 {
  margin-bottom: 0;
}
.prehead {
  display: block;
}
.title-row {
  display: flex;
  justify-content: end;
  gap: var(--mobile-padding-x);
}
.cast-iron-logo {
  flex: 0 1 5.75em;
  display: block;
}
.title-list {
  flex: 0 1 13em;
  display: flex;
  flex-direction: column;
  row-gap: var(--mobile-padding-x);
  max-width: 16em;
  text-transform: uppercase;
  font-size: .875em;
  font-weight:  400;
  letter-spacing: .15em;
  max-width: 16em;
}
.title-list li + li {
  padding-top: var(--mobile-padding-x);
  border-top: 1px solid var(--black);
}
.email-row p {
  color: var(--highlight);
  text-align: right;
}
@media only screen and (min-width: 37.5em) {
  .hero-section {
    flex-wrap: nowrap;
    align-items: center;
  }
  .hero-image {
    flex: 0 1 50%;
  }
}
@media only screen and (min-width: 56.25em) {
  .hero-text {
    flex: 1 1 75%;
  }
  .hero-image {
    flex: 1 1 50%;
  }
  .cast-iron-logo {
    flex-basis: 6.25em;
  }
  .title-list {
    font-size: .9375rem
  }
}
@media only screen and (min-width: 65.625em) {
  .hero-section {
    gap: 4em;
  }
  .cast-iron-logo {
    flex-basis: 6.75em;
  }
  .title-list {
    font-size: 1rem
  }
}

/* ============================
   LOVE SECTION
   ============================ */
.love-section {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

/* Images: stacked/offset pair */
.love-images {
  display: grid;
  grid-template-columns: 50% calc(50% - var(--mobile-padding-x));
  grid-template-rows: auto auto;
  gap: var(--mobile-padding-x);
}
.love-image {
  min-width: 0; /* prevent grid blowout from intrinsic image size */
  overflow: hidden;
}
.love-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.love-image--blowtorch {
  grid-column: 1;
  grid-row: 1;
  aspect-ratio: 4 / 5;
}
.love-image--waffle {
  grid-column: 2;
  grid-row: 1;
  aspect-ratio: 4 / 5;
  margin-top: 4rem; /* offset downward to create staggered effect */
}

/* Text */
.love-text h2 {
  margin-bottom: 1.5rem;
}
.love-text p:last-child {
  margin-bottom: 0;
}

/* Desktop: images left, text right */
@media only screen and (min-width: 56.25em) { /* 900px */
  .love-section {
    flex-direction: row;
    align-items: flex-start;
    gap: 5rem;
  }
  .love-images {
    flex: 0 0 45%;
    max-width: 45%;
    padding-right: 0;
  }
  .love-text {
    flex: 1;
    padding-top: 2rem;
  }
}

/* ============================
   FOOD STATS SECTION
   ============================ */
.food-section {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.food-image-large {
  min-width: 0;
  overflow: hidden;
}
.food-image-large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  aspect-ratio: 4 / 3;
}

.food-right {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.food-stat {
  font-family: var(--display-font);
  font-size: clamp(2rem, 8vw, 3.5rem);
  line-height: 1.1;
  color: var(--dark-gray);
  text-align: center;
  text-wrap: balance;
  margin-bottom: 0;
}

.food-image-small {
  min-width: 0;
  overflow: hidden;
}
.food-image-small img {
  width: 100%;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Desktop: artichoke left, right column alongside */
@media only screen and (min-width: 37.5em) { /* 600px */
  .food-section {
    flex-direction: row;
    align-items: stretch;
    gap: var(--mid-padding-x);
  }
  .food-image-large {
    flex: 0 0 calc(50% - var(--mid-padding-x));
  }
  .food-image-large img {
    aspect-ratio: auto;
    height: 100%;
  }
  .food-right {
    flex: 1;
    justify-content: space-between;
    gap: 2rem;
    padding: 1rem 0;
  }
  .food-stat {
    font-size: clamp(2.5rem, 4vw, 4rem);
  }
}
@media only screen and (min-width: 56.25em) { /* 900px */
  .food-section {
    flex-direction: row;
    align-items: stretch;
    gap: var(--desktop-padding-x);
  }
}

/* ============================
   AUTHOR SECTION
   ============================ */
.author-section {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

/* Mobile: featured cover on top, small grid below */
.author-books {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.author-book-featured {
  min-width: 0;
  overflow: hidden;
}
.author-book-featured img {
  width: 100%;
  height: 100%;
}
.author-books-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
}
.book-thumb {
  overflow: hidden;
  margin-bottom: 0;
}
.book-thumb img {
  width: 100%;
  display: block;
}
/* Proportional widths: flex-basis = each cover's aspect ratio share within its row,
   minus 0.667em per item to account for the 2 gaps (2em / 3 items) per row */
.author-books-grid .book-thumb:nth-of-type(1) { flex: 0 0 calc(32.84% - 0.333em); } /* Five Mary's     368×480  */
.author-books-grid .book-thumb:nth-of-type(2) { flex: 0 0 calc(33.58% - 0.333em); } /* Rocky Horror    784×1000 */
.author-books-grid .book-thumb:nth-of-type(3) { flex: 0 0 calc(33.58% - 0.333em); } /* Clueless        392×500  */
.author-books-grid .book-thumb:nth-of-type(4) { flex: 0 0 calc(33.34% - 0.333em); } /* Yellowstone     830×1000 */
.author-books-grid .book-thumb:nth-of-type(5) { flex: 0 0 calc(36.03% - 0.333em); } /* Dessert of Day  643×717  */
.author-books-grid .book-thumb:nth-of-type(6) { flex: 0 0 calc(30.63% - 0.333em); } /* Emily in Paris  1525×2000 */

/* Author text */
.author-subhead {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.875rem;
  margin-bottom: 1rem;
}
.author-text h2 {
  margin-bottom: 1.25rem;
}
.author-text p:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 37.5em) { /* 600px */
  .author-books {
    gap: 0.625rem;
    flex-direction: row;
    align-items: flex-start;
  }
  .author-books-grid {
    flex: 0 0 calc(40.1% - 0.375rem);
    align-self: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
    align-content: flex-start;
  }
  .book-thumb {
    margin-bottom: 0;
  }
  .book-thumb img {
    width: 100%;
    display: block;
  }
  /* Proportional widths for 2-per-row desktop layout, gap deduction = 0.3125rem per item */
  .author-books-grid .book-thumb:nth-of-type(1) { flex: 0 0 calc(49.44% - 0.3125rem); } /* Five Mary's    */
  .author-books-grid .book-thumb:nth-of-type(2) { flex: 0 0 calc(50.56% - 0.3125rem); } /* Rocky Horror   */
  .author-books-grid .book-thumb:nth-of-type(3) { flex: 0 0 calc(48.58% - 0.3125rem); } /* Clueless       */
  .author-books-grid .book-thumb:nth-of-type(4) { flex: 0 0 calc(51.42% - 0.3125rem); } /* Yellowstone    */
  .author-books-grid .book-thumb:nth-of-type(5) { flex: 0 0 calc(54.05% - 0.3125rem); } /* Dessert of Day */
  .author-books-grid .book-thumb:nth-of-type(6) { flex: 0 0 calc(45.95% - 0.3125rem); } /* Emily in Paris */
  .author-book-featured {
    flex: 0 0 calc(59.9% - 0.375rem);
  }
  .author-book-featured img {
    width: 100%;
    display: block;
  }
}
/* Desktop: small grid + featured cover side by side on left, text right */
@media only screen and (min-width: 56.25em) { /* 900px */
  .author-section {
    flex-direction: row-reverse;
    align-items: center;
    gap: 4rem;
  }
  .author-books {
    flex: 0 0 55%;
  }
  .author-book-featured img {
    width: 100%;
    display: block;
  }
  .author-text {
    flex: 0 0 calc(40% - 0.375rem);
    padding-top: 1rem;
  }
}

/* ============================
   RECIPE SECTION
   ============================ */
.recipe-section {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
.recipe-text h2 {
  margin-bottom: 1.25rem;
}
.recipe-subhead {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.875rem;
  margin-bottom: 1rem;
}
.recipe-text p:last-child {
  margin-bottom: 0;
}

/* Mobile: pies full width, then books in 3-col proportional row */
.recipe-media {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.recipe-featured {
  min-width: 0;
}
.recipe-featured img {
  width: 100%;
  display: block;
}
/* Mobile: left-col books shown as a proportional row */
.recipe-books-col {
  display: flex;
  gap: 0.5rem;
}
/* brown-sugar 0.730, barbie-bakes 0.902, american-girl 0.873 — total 2.505 */
.recipe-books-col .book-thumb:nth-of-type(1) { flex: 0 0 calc(29.14% - 0.333em); } /* brown-sugar    */
.recipe-books-col .book-thumb:nth-of-type(2) { flex: 0 0 calc(36.01% - 0.333em); } /* barbie-bakes   */
.recipe-books-col .book-thumb:nth-of-type(3) { flex: 0 0 calc(34.85% - 0.333em); } /* american-girl  */
.recipe-books-col .book-thumb img {
  width: 100%;
  display: block;
}
.recipe-bottom-books {
  display: flex;
  gap: 0.5rem;
}
/* alfresco 0.866, disney-princess 0.867, baby-toddler 0.896 — total 2.629 */
.recipe-bottom-books .book-thumb:nth-of-type(1) { flex: 0 0 calc(32.94% - 0.333em); } /* alfresco        */
.recipe-bottom-books .book-thumb:nth-of-type(2) { flex: 0 0 calc(32.98% - 0.333em); } /* disney-princess */
.recipe-bottom-books .book-thumb:nth-of-type(3) { flex: 0 0 calc(34.08% - 0.333em); } /* baby-toddler    */

/* Desktop: text left | left-col books | right-col (pies + 3 books) */
@media only screen and (min-width: 37.5em) { /* 600px */
  .recipe-media {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: auto auto auto auto;
    gap: .625em;
  }
  .recipe-books-col {
    grid-column: 1 / span 1;
    grid-row: 1 / span 3;
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
  }
  .recipe-books-col .book-thumb:nth-of-type(n) {
    flex: 1 0 100%;
  }
  .recipe-featured {
    grid-column: 2 / span 3;
    grid-row: 1 / span 3 ;
  }
  .recipe-featured img {
    width: 100%;
    object-fit: cover;
    height: 100%;
  }
  .recipe-bottom-books {
    grid-column: 1 / span 3;
    grid-row: 4 / span 1;
    display: flex;
    gap: 0.625rem;
  }
  .recipe-bottom-books .book-thumb:nth-of-type(1) { /* alfresco */
    flex: 0 0 calc(34% - 0.625rem); 
  } 
}

/* Desktop: text left | left-col books | right-col (pies + 3 books) */
@media only screen and (min-width: 56.25em) { /* 900px */
  .recipe-section {
    flex-direction: row;
    align-items: flex-start;
    gap: 4rem;
  }
  .recipe-text {
    flex: 1;
    padding-top: 1rem;
  }
  .recipe-media {
    flex: 0 0 58%;
  }
}

/* ============================
   PROJECT EDITOR SECTION
   ============================ */
.project-section {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.project-text h2 {
  margin-bottom: 1.25rem;
}
.project-subhead {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.875rem;
  margin-bottom: 1rem;
}
.project-text {
  margin-bottom: 2.5rem;
}
.project-text p:last-child {
  margin-bottom: 0;
}

/* Top: Convivir + right stack */
.project-media {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.project-top {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
}
.project-convivir {
  flex: 0 0 calc(67.6% - 0.25rem);
  min-width: 0;
}
.project-convivir img {
  width: 100%;
  display: block;
}
.project-stack {
  flex: 0 0 calc(32.74% - 0.25rem);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.project-stack-img img {
  width: 100%;
  display: block;
}

/* Bottom row: 7 books, uniform height via object-fit cover */
.project-bottom-row {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}
.project-bottom-row .book-thumb {
  min-width: 0;
  overflow: hidden;
}
.project-bottom-row .book-thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
/* Proportional widths — 6 gaps of 0.5rem, deduction per item = 3rem/7 = 0.4286rem */
.project-bottom-row .book-thumb:nth-of-type(1) { flex: 0 0 calc(14.27% - 0.4286rem); } /* Whole Duck           922×1115  */
.project-bottom-row .book-thumb:nth-of-type(2) { flex: 0 0 calc(13.14% - 0.4286rem); } /* Weber Ultimate       685×900   */
.project-bottom-row .book-thumb:nth-of-type(3) { flex: 0 0 calc(13.37% - 0.4286rem); } /* Weber Greatest Hits  1983×2560 */
.project-bottom-row .book-thumb:nth-of-type(4) { flex: 0 0 calc(13.79% - 0.4286rem); } /* Curated Board        404×505   */
.project-bottom-row .book-thumb:nth-of-type(5) { flex: 0 0 calc(17.28% - 0.4286rem); } /* Season               1002×1001 */
.project-bottom-row .book-thumb:nth-of-type(6) { flex: 0 0 calc(13.48% - 0.4286rem); } /* Impossible           781×1000  */
.project-bottom-row .book-thumb:nth-of-type(7) { flex: 0 0 calc(14.67% - 0.4286rem); } /* Our American Dream   425×500   */

.project-bottom-row {
  flex-wrap: wrap;
}
.project-bottom-row .book-thumb img {
  height: auto;
  object-fit: unset;
}
/* Row 1: Whole Duck, Weber Ult, Weber GH, Curated Board */
.project-bottom-row .book-thumb:nth-of-type(1) { flex: 0 0 calc(26.15% - 0.375rem); }
.project-bottom-row .book-thumb:nth-of-type(2) { flex: 0 0 calc(24.07% - 0.375rem); }
.project-bottom-row .book-thumb:nth-of-type(3) { flex: 0 0 calc(24.48% - 0.375rem); }
.project-bottom-row .book-thumb:nth-of-type(4) { flex: 0 0 calc(25.30% - 0.375rem); }
/* Row 2: Season, Impossible, Our American Dream */
.project-bottom-row .book-thumb:nth-of-type(5) { flex: 0 0 calc(38.04% - 0.333rem); }
.project-bottom-row .book-thumb:nth-of-type(6) { flex: 0 0 calc(29.67% - 0.333rem); }
.project-bottom-row .book-thumb:nth-of-type(7) { flex: 0 0 calc(32.29% - 0.333rem); }

@media only screen and (min-width: 37.5em) {
  .project-media,
  .project-top,
  .project-stack,
  .project-bottom-row {
    gap: 0.625rem;
  }
  .project-convivir {
    flex: 0 0 calc(67.9% - 0.25rem);
  }
  /* Row 1: Whole Duck, Weber Ultimate, Weber Greatest Hits, Curated Board */
  .project-bottom-row .book-thumb:nth-of-type(1) { flex: 0 0 calc(26.15% - 0.4688rem); }
  .project-bottom-row .book-thumb:nth-of-type(2) { flex: 0 0 calc(24.07% - 0.4688rem); }
  .project-bottom-row .book-thumb:nth-of-type(3) { flex: 0 0 calc(24.48% - 0.4688rem); }
  .project-bottom-row .book-thumb:nth-of-type(4) { flex: 0 0 calc(25.30% - 0.4688rem); }
  /* Row 2: Season, Impossible, Our American Dream */
  .project-bottom-row .book-thumb:nth-of-type(5) { flex: 0 0 calc(38.04% - 0.4167rem); }
  .project-bottom-row .book-thumb:nth-of-type(6) { flex: 0 0 calc(29.67% - 0.4167rem); }
  .project-bottom-row .book-thumb:nth-of-type(7) { flex: 0 0 calc(32.29% - 0.4167rem); }
}

/* Desktop: CSS Grid — media + text in row 1, bottom row spans full width in row 2 */
@media only screen and (min-width: 56.25em) {
  .project-section {
    display: grid;
    grid-template-columns: 50fr 50fr;
        grid-template-columns: 58fr 42fr;

    grid-template-rows: auto auto;
    column-gap: 4rem;
    row-gap: 0.5rem;
  }
  .project-media {
    grid-column: 1;
    grid-row: 1;
  }
  .project-text {
    margin-bottom: 0;
    grid-column: 2;
    grid-row: 1;
    margin-top: 0;
  }
  .project-text p:not(.project-subhead){
    font-size: 1.375rem;
  }
  .project-bottom-row {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  /* Proportional widths — 6 gaps of 0.5rem, deduction per item = 3rem/7 = 0.5357rem */
  .project-bottom-row .book-thumb:nth-of-type(1) { flex: 0 0 calc(14.27% - 0.5357rem); } /* Whole Duck           922×1115  */
  .project-bottom-row .book-thumb:nth-of-type(2) { flex: 0 0 calc(13.14% - 0.5357rem); } /* Weber Ultimate       685×900   */
  .project-bottom-row .book-thumb:nth-of-type(3) { flex: 0 0 calc(13.37% - 0.5357rem); } /* Weber Greatest Hits  1983×2560 */
  .project-bottom-row .book-thumb:nth-of-type(4) { flex: 0 0 calc(13.79% - 0.5357rem); } /* Curated Board        404×505   */
  .project-bottom-row .book-thumb:nth-of-type(5) { flex: 0 0 calc(17.1% - 0.5357rem); } /* Season               1002×1001 */
  .project-bottom-row .book-thumb:nth-of-type(6) { flex: 0 0 calc(13.48% - 0.5357rem); } /* Impossible           781×1000  */
  .project-bottom-row .book-thumb:nth-of-type(7) { flex: 0 0 calc(14.67% - 0.5357rem); } /* Our American Dream   425×500   */
}
@media only screen and (min-width: 59em) {
  .project-text p:not(.project-subhead){
    font-size: 1.5rem;
  }
}

/* ============================
   WORK WITH ME SECTION
   ============================ */
.work-section {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
.work-text h2 {
  margin-bottom: 1.5rem;
}
.work-text p:last-child {
  margin-bottom: 0;
}
.work-email a {
  color: var(--highlight);
  text-decoration: none;
}
.work-email a:hover {
  text-decoration: underline;
}

/* 2-column staggered photo grid */
.work-photos {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
}
.work-col {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-width: 0;
}
/* Left col drops down to create offset */
.work-col--left {
  padding-top: 3.5rem;
  justify-content: flex-end;
}
.work-photo {
  min-width: 0;
  overflow: hidden;
}
.work-photo img {
  width: 100%;
  display: block;
}
.work-col ,.work-col--left .work-photo:nth-of-type(2),
.work-col ,.work-col--right .work-photo:nth-of-type(1) {
  flex: 0 1 80%;
}
@media only screen and (min-width: 37.5em) {
  .work-photos,
  .work-col {
    gap: 0.625rem;
  }
}
/* Desktop: text left, photos right */
@media only screen and (min-width: 56.25em) {
  .work-section {
    flex-direction: row;
    align-items: center;
    gap: 4rem;
  }
  .work-text {
    flex: 1;
    padding-top: 1rem;
  }
  .work-photos {
    flex: 0 0 52%;
  }
}

/* ============================
   BIO SECTION
   ============================ */
.bio-section {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
.bio-media {
  min-width: 0;
  overflow: hidden;
}
.bio-media img {
  width: 100%;
  display: block;
}
.bio-text h2 {
  margin-bottom: 1.25rem;
}
.bio-text p {
  font-size: 1rem;
  line-height: 1.3;
  margin-bottom: 1.25rem;
}
.bio-text p:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 37.5em) {
  .bio-text {
    max-width: 80%;
  }
  .bio-text p {
    font-size: 1.125rem;
  }
}
@media only screen and (min-width: 56.25em) {
  .bio-section {
    flex-direction: row-reverse;
    align-items: flex-start;
    gap: 4rem;
  }
  .bio-media {
    flex: 0 0 32%;
  }
  .bio-text {
    width: 100%;
    flex: 1;
    padding-top: 0.25rem;
  }
  .bio-text p {
    font-size: 1.25rem;
  }
  .bio-text h2 {
    margin-bottom: 1.5rem;
  }
}

p.footer-copyright {
  margin-bottom: 0;
}
