/* ===========
   Honor & Oak Woodcraft
   Rustic + Americana theme
   =========== */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #f6f1e8; /* warm parchment */
  color: #221811;      /* deep brown */
  line-height: 1.6;
}

/* Global links inherit color by default */
a {
  color: inherit;
  text-decoration: none;
}

a:visited {
  color: inherit;
}

/* Make sure the brand link in the header is NEVER purple/underlined */
.site-header .brand,
.site-header .brand:link,
.site-header .brand:visited,
.site-header .brand:hover,
.site-header .brand:active {
  color: #f6f1e8;        /* same as header text */
  text-decoration: none; /* kill underline */
}

.wrapper {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 1rem 3rem;
}

/* --- Top bar & nav --- */

.site-header {
  background: #26150f; /* dark walnut */
  color: #f6f1e8;
  border-bottom: 4px solid #7f2a22; /* deep red accent */
}

.site-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1rem;
  max-width: 1100px;
  margin: 0 auto;
}

.brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.brand img {
  height: 60px;
  width: auto;
}

.brand-text {
  display: flex;
  flex-direction: column;
}

.brand-text .title {
  font-size: 1.1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}

.brand-text .subtitle {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  opacity: 0.85;
}

/* Flag-style accent under the header */
.flag-strip {
  background: linear-gradient(
      to right,
      #7f2a22 0%,
      #7f2a22 33%,
      #f6f1e8 33%,
      #f6f1e8 66%,
      #1a2740 66%,
      #1a2740 100%
  );
  height: 6px;
}

/* --- Navigation --- */

.nav {
  display: flex;
  gap: 1.5rem;
  font-size: 0.95rem;
}

.nav a {
  color: #f6f1e8;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.78rem;
  position: relative;
  padding-bottom: 0.2rem;
}

.nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 0;
  background: #c39a4a; /* brass/gold */
  transition: width 0.2s ease;
}

.nav a:hover::after,
.nav a.active::after {
  width: 100%;
}

/* --- Hero section (home) --- */

.hero {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 2.5rem;
  padding: 2.5rem 0 2rem;
  align-items: center;
}

.hero-text h1 {
  font-size: 2.3rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 0.6rem;
}

.hero-text p.lead {
  font-size: 1.05rem;
  margin-bottom: 1.2rem;
}

.hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.4rem;
}

.badge {
  border-radius: 999px;
  border: 1px solid #c39a4a;
  padding: 0.35rem 0.8rem;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  background: #fdf9f2;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 1.3rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease,
    transform 0.1s ease;
}

.btn-primary {
  background: #7f2a22;
  color: #f6f1e8;
  border-color: #7f2a22;
}

.btn-primary:hover {
  background: #a0352b;
  transform: translateY(-1px);
}

.btn-outline {
  background: transparent;
  color: #26150f;
  border-color: #c39a4a;
}

.btn-outline:hover {
  background: #c39a4a;
  color: #26150f;
}

.hero-panel {
  background: #26150f;
  color: #f6f1e8;
  border-radius: 12px;
  padding: 1.5rem 1.3rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
  border: 1px solid #3a2419;
}

.hero-panel h2 {
  font-size: 1rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 0.6rem;
}

.hero-panel ul {
  list-style: none;
  font-size: 0.86rem;
}

.hero-panel li + li {
  margin-top: 0.4rem;
}

/* --- Sections --- */

.section {
  padding: 2rem 0 0;
}

.section-header {
  margin-bottom: 1rem;
}

.section-header h2 {
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.9rem;
  color: #7f2a22;
}

.section-header h3 {
  font-size: 1.4rem;
  margin-top: 0.35rem;
}

/* --- Cards (projects, highlights) --- */

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
}

.card {
  background: #fffdf7;
  border-radius: 12px;
  border: 1px solid #e1d1b9;
  padding: 1rem;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.04);
}

.card h4 {
  margin-bottom: 0.4rem;
}

.card p {
  font-size: 0.9rem;
}

/* --- About layout --- */

.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 2rem;
  padding-top: 2rem;
}

.about-highlight {
  background: #26150f;
  color: #f6f1e8;
  border-radius: 12px;
  padding: 1.5rem;
  border: 1px solid #3a2419;
}

.about-highlight h3 {
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 0.5rem;
}

.about-list {
  list-style: none;
  font-size: 0.9rem;
}

.about-list li + li {
  margin-top: 0.4rem;
}

/* --- Projects grid --- */

.project-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
  padding-top: 1.5rem;
}

.project-card {
  background: #fffdf7;
  border-radius: 12px;
  border: 1px solid #e1d1b9;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.project-card-image {
  background: #d1b28a;
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #4b3221;
}

.project-card-body {
  padding: 1rem;
}

.project-card-body h4 {
  margin-bottom: 0.3rem;
}

/* --- Contact form --- */

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 2rem;
  padding-top: 2rem;
}

form .field {
  margin-bottom: 1rem;
}

.field label {
  display: block;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 0.3rem;
}

.field input,
.field textarea {
  width: 100%;
  padding: 0.6rem 0.7rem;
  border-radius: 8px;
  border: 1px solid #ccbda6;
  font-size: 0.9rem;
  background: #fffdf7;
}

.field textarea {
  min-height: 140px;
  resize: vertical;
}

/* --- Sidebar panel on contact page --- */

.contact-panel {
  background: #26150f;
  color: #f6f1e8;
  border-radius: 12px;
  padding: 1.5rem;
  border: 1px solid #3a2419;
  font-size: 0.9rem;
}

.contact-panel h3 {
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 0.7rem;
}

.contact-panel ul {
  list-style: none;
}

.contact-panel li + li {
  margin-top: 0.4rem;
}

/* --- Footer --- */

.site-footer {
  border-top: 1px solid #ddcdb4;
  margin-top: 3rem;
  padding-top: 1.2rem;
  font-size: 0.8rem;
  color: #7a6650;
}

.footer-inner {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* --- Small screens --- */

@media (max-width: 768px) {
  .site-header-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.6rem;
  }

  .hero,
  .about-layout,
  .contact-layout {
    grid-template-columns: 1fr;
  }

  .hero-panel {
    order: -1;
  }
}

/* Top logo sizing */
.top-logo img {
  width: 350px;        /* <-- try this size */
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.project-card {
  background: #f6f1e8;
  border: 1px solid #e2d8c7;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

.project-card img {
  width: 100%;
  height: auto;
  display: block;
}

.project-card-body {
  padding: 1rem;
}

.project-card-body h3 {
  margin-bottom: 0.4rem;
  font-size: 1.25rem;
  color: #221811;
}

.project-card-body p {
  margin: 0;
  line-height: 1.5;
  color: #4b3c2f;
}
.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.3fr);
  gap: 2rem;
  align-items: flex-start;
}

.about-main p {
  margin-bottom: 1rem;
}

.about-photo {
  width: 360px;
  max-width: 100%;
  display: block;
  border-radius: 12px;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 10px rgba(0,0,0,0.25);
}

@media (max-width: 768px) {
  .about-layout {
    grid-template-columns: 1fr;
  }
}

/* --- ERPNext-backed Available Pieces storefront --- */
.shop-page { padding-bottom: 1rem; }
.shop-hero {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  gap: 2rem;
  align-items: center;
  padding: 2.5rem 0 1.25rem;
}
.shop-hero h1 {
  font-size: clamp(2rem, 5vw, 3.25rem);
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: .045em;
  margin: .35rem 0 .8rem;
}
.shop-hero .lead { max-width: 720px; font-size: 1.05rem; color: #4b3c2f; }
.eyebrow {
  display: block;
  color: #7f2a22;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.shop-note {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  padding: 1.2rem 1.25rem;
  border: 1px solid #c39a4a;
  border-radius: 12px;
  background: #fffdf7;
  box-shadow: 0 8px 22px rgba(38, 21, 15, .08);
}
.shop-note strong { text-transform: uppercase; letter-spacing: .1em; }
.shop-note small { margin-top: .45rem; color: #6e5a48; }
.shop-heading-row { display: flex; justify-content: space-between; align-items: end; gap: 1rem; }
.cart-button {
  border: 1px solid #7f2a22;
  color: #f6f1e8;
  background: #7f2a22;
  border-radius: 999px;
  padding: .65rem 1rem;
  font: inherit;
  font-size: .8rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}
.cart-button span {
  display: inline-grid;
  place-items: center;
  min-width: 1.5rem;
  height: 1.5rem;
  margin-left: .35rem;
  padding: 0 .3rem;
  border-radius: 999px;
  background: #f6f1e8;
  color: #26150f;
}
.store-status {
  margin: .5rem 0 1.2rem;
  padding: .75rem 1rem;
  border-left: 3px solid #c39a4a;
  background: rgba(255,253,247,.65);
  color: #5f4b3b;
  font-size: .9rem;
}
.store-status.is-error { border-left-color: #7f2a22; }
.store-status[hidden] { display: none; }
.shop-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.25rem;
}
.shop-product {
  overflow: hidden;
  border: 1px solid #dfcfb6;
  border-radius: 14px;
  background: #fffdf7;
  box-shadow: 0 5px 18px rgba(38,21,15,.07);
}
.shop-product-image-wrap { position: relative; aspect-ratio: 4 / 3; background: #e8dcc8; overflow: hidden; }
.shop-product img { width: 100%; height: 100%; object-fit: cover; display: block; }
.stock-pill {
  position: absolute;
  top: .75rem;
  right: .75rem;
  padding: .3rem .55rem;
  border-radius: 999px;
  background: rgba(38,21,15,.9);
  color: #fffdf7;
  font-size: .72rem;
  font-weight: 750;
}
.shop-product-body { padding: 1rem; }
.shop-product-title-row { display: flex; align-items: start; justify-content: space-between; gap: .75rem; }
.shop-product h3 { font-size: 1.15rem; line-height: 1.2; }
.shop-price { color: #7f2a22; font-weight: 850; white-space: nowrap; }
.shop-product p { margin: .6rem 0 1rem; color: #5a4738; font-size: .9rem; }
.shop-product-actions { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.shop-item-code { font-size: .7rem; color: #8a755e; letter-spacing: .06em; }
.shop-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.text-link { color: #7f2a22; text-decoration: underline; text-decoration-color: #c39a4a; text-underline-offset: 3px; }
.btn-full { width: 100%; }
.btn[disabled] { opacity: .5; cursor: not-allowed; transform: none; }

.cart-panel {
  position: fixed;
  z-index: 50;
  top: 0;
  right: 0;
  width: min(430px, 92vw);
  height: 100dvh;
  padding: 1.25rem;
  background: #fffdf7;
  border-left: 1px solid #d9c7aa;
  box-shadow: -12px 0 40px rgba(0,0,0,.18);
  transform: translateX(105%);
  transition: transform .22s ease;
  display: flex;
  flex-direction: column;
}
.cart-panel.is-open { transform: translateX(0); }
.cart-panel-header, .checkout-header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.cart-panel-header h2, .checkout-header h2 { text-transform: uppercase; letter-spacing: .06em; }
.icon-button { border: 0; background: transparent; font-size: 1.8rem; line-height: 1; cursor: pointer; color: #26150f; }
.cart-items { flex: 1; overflow-y: auto; padding: 1rem 0; }
.cart-empty { color: #76614e; padding: 2rem 0; text-align: center; }
.cart-line { display: grid; grid-template-columns: 1fr auto; gap: .5rem 1rem; padding: .85rem 0; border-bottom: 1px solid #eadfcd; }
.cart-line small { color: #806b55; }
.cart-line button { border: 0; background: transparent; color: #7f2a22; cursor: pointer; font: inherit; font-size: .8rem; text-decoration: underline; }
.cart-summary { border-top: 2px solid #26150f; padding-top: 1rem; }
.cart-summary > div { display: flex; justify-content: space-between; font-size: 1.05rem; margin-bottom: .3rem; }
.cart-summary p { font-size: .76rem; color: #7a6650; margin-bottom: .9rem; }
.cart-backdrop { position: fixed; z-index: 40; inset: 0; background: rgba(22,13,9,.48); }

.checkout-dialog { width: min(680px, 94vw); border: 1px solid #cdbb9e; border-radius: 14px; padding: 0; background: #fffdf7; color: #221811; box-shadow: 0 22px 70px rgba(0,0,0,.3); }
.checkout-dialog::backdrop { background: rgba(22,13,9,.55); }
.checkout-dialog form { padding: 1.3rem; }
.checkout-copy { margin: 1rem 0; color: #66513f; }
.checkout-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.checkout-grid label, .checkout-note { display: flex; flex-direction: column; gap: .25rem; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.checkout-grid input, .checkout-grid select, .checkout-note textarea { width: 100%; padding: .7rem .75rem; border-radius: 8px; border: 1px solid #cdbb9e; background: white; font: inherit; color: #221811; text-transform: none; letter-spacing: normal; }
.checkout-note { margin-top: .85rem; }
.checkout-actions { display: flex; justify-content: flex-end; gap: .65rem; margin-top: 1rem; }
.checkout-message { min-height: 1.2rem; margin-top: .75rem; color: #7f2a22; font-size: .85rem; }
.checkout-message.is-success { color: #2f6239; }

@media (max-width: 768px) {
  .shop-hero, .shop-info-grid { grid-template-columns: 1fr; }
  .shop-heading-row { align-items: center; }
  .checkout-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Generic ERPNext product variants
   ============================================================ */
.variant-selectors {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: .65rem;
  margin: .2rem 0 1rem;
}
.variant-field { display: grid; gap: .3rem; font-size: .76rem; font-weight: 700; color: #5a4738; }
.variant-field span { text-transform: uppercase; letter-spacing: .06em; }
.variant-field select {
  width: 100%;
  min-height: 40px;
  padding: .45rem .65rem;
  border: 1px solid #d7b879;
  border-radius: 8px;
  background: #fffdf8;
  color: #251a14;
  font: inherit;
  font-weight: 600;
}
.variant-field select:focus { outline: 2px solid rgba(146,43,33,.15); border-color: #922b21; }
.shop-product-variant .shop-item-code { max-width: 62%; overflow-wrap: anywhere; }

/* Honor & Oak umbrella-site additions */
.nav { flex-wrap: wrap; }
.eyebrow { display: inline-block; margin-bottom: .55rem; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 700; color: #6f4f36; }
@media (max-width: 900px) {
  .site-header-inner { align-items: flex-start; }
  .nav { width: 100%; }
}
.shipping-fields { margin-top: 1rem; padding: 1rem; border: 1px solid #d8c6a6; border-radius: 10px; background: #faf7ef; }
.shipping-fields h3 { margin: 0 0 .8rem; }
.shipping-fields.is-hidden { display:none; }
.shipping-rate-results { display:grid; gap:.5rem; margin-top:.75rem; }
.shipping-rate-option { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem .8rem; border:1px solid #d8c6a6; border-radius:8px; background:white; }
.shipping-rate-option label { display:flex; gap:.6rem; align-items:center; flex:1; cursor:pointer; }
.shipping-rate-option small { display:block; color:#66513f; }
.shipping-rate-box { font-size:.8rem; color:#66513f; margin:.5rem 0 0; }
.wide-field { grid-column:1 / -1; }
@media (max-width: 680px){ .wide-field{grid-column:auto;} .shipping-rate-option{align-items:flex-start;} }


/* Temporary private-preview notice. Remove at public launch. */
.test-site-banner {
  position: sticky;
  top: 0;
  z-index: 9999;
  padding: 9px 16px;
  background: #f4d27a;
  color: #2b2417;
  border-bottom: 1px solid #a9842e;
  text-align: center;
  font: 700 13px/1.35 Arial, Helvetica, sans-serif;
  letter-spacing: .035em;
}


/* Checkout: make the shipping-rate step impossible to miss. */
#getShippingRates.shipping-rates-cta {
  background: #7f2a22 !important;
  color: #ffffff !important;
  border: 3px solid #7f2a22 !important;
  font-weight: 800 !important;
  font-size: 1rem !important;
  letter-spacing: 0.12em;
  padding: 0.9rem 1.6rem;
  box-shadow: 0 4px 10px rgba(38, 21, 15, 0.22);
}

#getShippingRates.shipping-rates-cta:hover,
#getShippingRates.shipping-rates-cta:focus-visible {
  background: #a0352b !important;
  border-color: #a0352b !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}


/* --- Home page refresh v12 --- */
.home-page { padding-top: 0; }
.home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: 2.25rem;
  align-items: center;
  padding: 3.25rem 0 2.75rem;
}
.home-hero-copy h1 {
  margin: .4rem 0 .85rem;
  font-size: clamp(2.7rem, 6vw, 5.2rem);
  line-height: .96;
  letter-spacing: -.025em;
  text-transform: uppercase;
}
.home-hero-copy .lead { max-width: 680px; font-size: 1.08rem; color: #4b3c2f; }
.home-hero-media {
  position: relative;
  min-height: 460px;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 45px rgba(38,21,15,.18);
  border: 1px solid #d8c5a8;
  background: #d1b28a;
}
.home-hero-media img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; display: block; }
.home-hero-caption {
  position: absolute;
  left: 1rem; right: 1rem; bottom: 1rem;
  display: flex; flex-direction: column;
  padding: .85rem 1rem;
  border-radius: 12px;
  background: rgba(38,21,15,.9);
  color: #f6f1e8;
  backdrop-filter: blur(4px);
}
.home-hero-caption strong { text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; }
.home-hero-caption span { opacity: .88; font-size: .85rem; margin-top: .15rem; }
.home-intro { max-width: 850px; padding: 1.5rem 0 2rem; }
.home-intro h2, .home-story-band h2, .home-coming-soon h2 {
  margin: .35rem 0 .7rem;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  line-height: 1.08;
}
.home-intro p, .home-story-band p, .home-coming-soon p { color: #4b3c2f; }
.home-path-grid {
  display: grid;
  grid-template-columns: 1.5fr .75fr .75fr;
  gap: 1rem;
  padding: .75rem 0 2.5rem;
}
.home-path-card {
  min-height: 255px;
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  border: 1px solid #ddcdb4;
  box-shadow: 0 8px 24px rgba(38,21,15,.08);
}
.home-path-card > span:not(.home-path-overlay) { display:flex; flex-direction:column; justify-content:flex-end; height:100%; min-height:255px; padding:1.35rem; }
.home-path-card small { text-transform:uppercase; letter-spacing:.14em; font-size:.68rem; font-weight:800; opacity:.78; }
.home-path-card strong { display:block; font-size:1.55rem; margin:.1rem 0 .2rem; }
.home-path-card em { font-style:normal; font-size:.85rem; }
.home-path-photo img { width:100%; height:100%; min-height:255px; object-fit:cover; display:block; }
.home-path-overlay {
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:1.35rem;
  color:#f6f1e8; background:linear-gradient(to top, rgba(38,21,15,.88), rgba(38,21,15,.08) 65%);
}
.home-path-dark { background:#26150f; color:#f6f1e8; }
.home-path-light { background:#fffdf7; color:#26150f; }
.home-work-section { padding-top: 2.2rem; }
.home-section-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; }
.home-work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.15rem; }
.home-work-card { background:#fffdf7; border:1px solid #dfcfb6; border-radius:14px; overflow:hidden; box-shadow:0 6px 18px rgba(38,21,15,.07); }
.home-work-card img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.home-work-card div { display:flex; flex-direction:column; padding:.9rem 1rem 1rem; }
.home-work-card strong { font-size:1rem; }
.home-work-card span { color:#6e5a48; font-size:.82rem; margin-top:.18rem; }
.home-story-band {
  display:grid; grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr); gap:2rem; align-items:center;
  margin:3.25rem 0 1rem; padding:1.25rem; background:#fffdf7; border:1px solid #dfcfb6; border-radius:18px;
}
.home-story-band img { width:100%; max-height:360px; object-fit:cover; border-radius:12px; display:block; }
.home-coming-soon { max-width:820px; margin:3rem auto 0; text-align:center; padding:2rem 1rem 0; }
.text-link { color:#7f2a22; font-weight:750; }
.text-link:hover { text-decoration:underline; }

@media (max-width: 860px) {
  .home-hero { grid-template-columns:1fr; padding-top:2rem; }
  .home-hero-media, .home-hero-media img { min-height:360px; }
  .home-path-grid { grid-template-columns:1fr 1fr; }
  .home-path-photo { grid-column:1 / -1; }
  .home-work-grid { grid-template-columns:1fr; }
  .home-story-band { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .home-path-grid { grid-template-columns:1fr; }
  .home-path-photo { grid-column:auto; }
  .home-section-heading { align-items:flex-start; flex-direction:column; }
  .home-hero-copy h1 { font-size:2.55rem; }
}

/* --- Woodcraft landing page refresh --- */
.woodcraft-page { padding-top: 2rem; }
.woodcraft-hero {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);
  gap:2rem;
  align-items:stretch;
}
.woodcraft-hero-copy { align-self:center; padding:1.25rem 0 1.5rem; }
.woodcraft-hero-copy h1 { font-size:clamp(2.55rem,5vw,4.5rem); line-height:.98; margin:.55rem 0 1rem; }
.woodcraft-hero-copy .lead { max-width:720px; font-size:1.08rem; color:#4b3c2f; }
.woodcraft-hero-photo { position:relative; margin:0; min-height:500px; overflow:hidden; border-radius:18px; border:1px solid #d8c5a7; box-shadow:0 18px 38px rgba(38,21,15,.12); }
.woodcraft-hero-photo img { width:100%; height:100%; min-height:500px; object-fit:cover; display:block; }
.woodcraft-hero-photo figcaption { position:absolute; left:0; right:0; bottom:0; padding:1rem 1.15rem; color:white; background:linear-gradient(transparent,rgba(24,13,9,.88)); display:flex; flex-direction:column; padding-top:3.25rem; }
.woodcraft-hero-photo figcaption strong { text-transform:uppercase; letter-spacing:.12em; font-size:.77rem; }
.woodcraft-hero-photo figcaption span { opacity:.9; font-size:.86rem; margin-top:.15rem; }
.woodcraft-intro-section { padding-top:2.75rem; }
.woodcraft-gallery-section { padding-top:2.6rem; }
.woodcraft-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.15rem; margin-top:1rem; }
.woodcraft-gallery-card { background:#fffdf7; border:1px solid #dfcfb6; border-radius:14px; overflow:hidden; box-shadow:0 6px 18px rgba(38,21,15,.07); }
.woodcraft-gallery-card img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.woodcraft-gallery-card div { display:flex; flex-direction:column; padding:.95rem 1rem 1rem; }
.woodcraft-gallery-card strong { font-size:1rem; }
.woodcraft-gallery-card span { color:#6e5a48; font-size:.84rem; margin-top:.2rem; }
.woodcraft-process-band { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:2rem; align-items:center; background:#f3eadc; border:1px solid #dbc7a6; border-radius:18px; padding:1.6rem; }
.woodcraft-process-band h2 { margin:.45rem 0 .65rem; }
.woodcraft-process-band p { color:#554438; max-width:760px; }
.woodcraft-process-band img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; border:1px solid #d4bf9d; }
.woodcraft-photo-note { font-size:.88rem; font-style:italic; color:#806b58 !important; }
.woodcraft-cta { display:flex; justify-content:space-between; align-items:center; gap:2rem; border-top:1px solid #dbc7a6; margin-top:2.5rem; padding-top:2.25rem; padding-bottom:1rem; }
.woodcraft-cta h2 { margin:.4rem 0 .55rem; }
.woodcraft-cta p { max-width:720px; color:#5c493a; }
@media (max-width: 860px) {
  .woodcraft-hero, .woodcraft-process-band { grid-template-columns:1fr; }
  .woodcraft-hero-photo, .woodcraft-hero-photo img { min-height:360px; }
  .woodcraft-gallery-grid { grid-template-columns:1fr; }
  .woodcraft-cta { align-items:flex-start; flex-direction:column; }
}

/* --- Woodcraft photographic workshop background v5 clean ---
   Unique asset/version to avoid browser and Cloudflare cache reuse. */
body.woodcraft-body {
  background-color: #8f765c;
  background-image:
    linear-gradient(rgba(246,241,232,.34), rgba(246,241,232,.34)),
    url("assets/woodcraft-workshop-floor-clean-v5.jpg?v=5");
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

/* Keep page surfaces readable while allowing the shop floor to show between them. */
body.woodcraft-body .woodcraft-intro-section,
body.woodcraft-body .woodcraft-gallery-section,
body.woodcraft-body .woodcraft-process-band,
body.woodcraft-body .woodcraft-cta {
  background: rgba(255,253,247,.94);
  border-radius: 18px;
  padding-left: 1.35rem;
  padding-right: 1.35rem;
  box-shadow: 0 12px 30px rgba(38,21,15,.18);
}
body.woodcraft-body .woodcraft-hero-copy {
  background: rgba(246,241,232,.88);
  border: 1px solid rgba(216,197,167,.8);
  border-radius: 18px;
  padding: 1.35rem 1.5rem 1.55rem;
  box-shadow: 0 12px 30px rgba(38,21,15,.14);
}

@media (max-width: 860px) {
  body.woodcraft-body {
    background-attachment: scroll;
    background-size: auto 1000px;
  }
}


/* --- Product detail pages v1 --- */
.shop-product-link{display:block;width:100%;height:100%}.shop-product-title-link{color:inherit;text-decoration:none}.shop-product-title-link:hover{text-decoration:underline}.product-detail-page{padding-top:2rem;padding-bottom:3rem}.product-back-link{display:inline-block;margin-bottom:1.2rem;color:#7f2a22;font-weight:800;text-decoration:none}.product-back-link:hover{text-decoration:underline}.product-detail{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:2.25rem;align-items:start}.product-gallery{min-width:0}.product-main-image-wrap{aspect-ratio:4/3;background:#e8dcc8;border:1px solid #d8c5a8;border-radius:18px;overflow:hidden;box-shadow:0 14px 36px rgba(38,21,15,.12)}.product-main-image-wrap img{width:100%;height:100%;object-fit:cover;display:block}.product-thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;margin-top:.75rem}.product-thumb{padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:#fff;aspect-ratio:1/1;cursor:pointer}.product-thumb.is-active{border-color:#8f2d22}.product-thumb img{width:100%;height:100%;object-fit:cover;display:block}.product-detail-info{background:#fffdf7;border:1px solid #dfcfb6;border-radius:18px;padding:1.5rem;box-shadow:0 10px 28px rgba(38,21,15,.08);position:sticky;top:1rem}.product-detail-info h1{font-size:clamp(2rem,4vw,3.3rem);line-height:1.02;margin:.45rem 0 .7rem}.product-detail-price{font-family:Georgia,serif;font-size:1.65rem;font-weight:800;color:#7f2a22;margin-bottom:1rem}.product-detail-description{color:#554438;line-height:1.65;font-size:1rem}.detail-variant-selectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1.15rem 0}.detail-variant-field span{display:block;font-size:.72rem;font-weight:900;letter-spacing:.08em;margin-bottom:.35rem}.detail-variant-field select{width:100%;padding:.8rem;border:1px solid #ccb98f;border-radius:10px;background:#fff;font:inherit}.product-detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1.15rem 0}.product-detail-meta div{background:#f3eadc;border-radius:11px;padding:.8rem}.product-detail-meta span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#7b6756;font-weight:800}.product-detail-meta strong{display:block;margin-top:.18rem;overflow-wrap:anywhere}.product-add-button{width:100%;margin-top:.35rem}.product-fulfillment-note{font-size:.82rem;color:#715f50;line-height:1.45;margin:.8rem 0 0}
@media(max-width:860px){.product-detail{grid-template-columns:1fr}.product-detail-info{position:static}.product-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:520px){.detail-variant-selectors,.product-detail-meta{grid-template-columns:1fr}.product-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* --- Shop card description clamp restored --- */
.shop-product-body > p{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  overflow:hidden;
  line-height:1.55;
  max-height:4.65em;
}

/* --- Product waitlist / Notify Me v2 --- */
.shop-notify-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.product-waitlist{margin-top:1rem;padding:1.1rem;border:1px solid #d8c5a8;border-radius:14px;background:#f3eadc}
.product-waitlist[hidden]{display:none}
.product-waitlist h2{font-family:Georgia,serif;font-size:1.25rem;margin:.25rem 0 .45rem}
.product-waitlist p{margin:0 0 .85rem;color:#5b4a3e;line-height:1.5;font-size:.9rem}
.waitlist-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem}
.waitlist-row input{width:100%;min-width:0;padding:.8rem .9rem;border:1px solid #cbb58e;border-radius:9px;background:#fff;font:inherit}
.waitlist-message{min-height:1.2em;margin-top:.65rem;font-size:.85rem;font-weight:700}
.waitlist-message.is-success{color:#315c3b}.waitlist-message.is-error{color:#8f2d22}
.waitlist-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:520px){.waitlist-row{grid-template-columns:1fr}.waitlist-row .btn{width:100%}}

/* --- Notify Me button parity / route-safe v5 --- */
.shop-notify-link, .shop-notify-link:link, .shop-notify-link:visited, .shop-notify-link:hover, .shop-notify-link:active { color:#f6f1e8 !important; }
.shop-notify-link { min-height:44px; text-align:center; }


/* --- Final image-fit + Our Story corrections (v18) --- */
.about-layout-story {
  grid-template-columns: minmax(0, 1fr);
  max-width: 940px;
}
.about-story-copy {
  max-width: 940px;
}
.about-story-copy p {
  line-height: 1.72;
}

/* Show the complete product photo instead of cropping it to the frame. */
.shop-product-image-wrap,
.product-main-image-wrap,
.product-thumb {
  background: #f6f1e8;
}
.shop-product img,
.product-main-image-wrap img,
.product-thumb img {
  object-fit: contain;
  object-position: center;
}


/* --- Homepage final layout polish v19 --- */
/* The three main paths should feel intentional, not like two empty placeholder boxes. */
.home-path-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.home-path-card {
  min-height: 300px;
}
.home-path-photo img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
  object-position: center;
}
.home-path-farm {
  color: #f8f2e7;
  background:
    radial-gradient(circle at 78% 18%, rgba(255,255,255,.12) 0 2px, transparent 3px),
    radial-gradient(circle at 68% 28%, rgba(255,255,255,.09) 0 2px, transparent 3px),
    linear-gradient(145deg, #31432f 0%, #425840 48%, #243422 100%);
}
.home-path-farm::before {
  content: "GROW";
  position: absolute;
  right: -0.08em;
  top: .08em;
  font-family: Georgia, serif;
  font-size: clamp(4.7rem, 8vw, 7.5rem);
  font-weight: 800;
  letter-spacing: -.06em;
  color: rgba(255,255,255,.055);
  line-height: 1;
  pointer-events: none;
}
.home-path-farm-copy {
  position: relative;
  z-index: 1;
  display: flex !important;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  min-height: 300px !important;
  padding: 1.5rem !important;
}
.home-path-farm-copy em {
  max-width: 22rem;
  line-height: 1.45;
  opacity: .9;
}
.home-path-farm-copy b {
  margin-top: .8rem;
  font-size: .83rem;
  font-weight: 800;
}
.home-path-shop img {
  object-position: center 42%;
}

/* The Nathan + Laura portrait is vertical; never force it through a landscape crop. */
.home-story-band {
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  align-items: center;
}
.home-story-band img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: center;
  align-self: center;
}

@media (max-width: 860px) {
  .home-path-grid { grid-template-columns: 1fr 1fr; }
  .home-path-card:first-child { grid-column: 1 / -1; }
  .home-story-band { grid-template-columns: 1fr; }
  .home-story-band img { max-width: 430px; margin: 0 auto; }
}
@media (max-width: 620px) {
  .home-path-grid { grid-template-columns: 1fr; }
  .home-path-card:first-child { grid-column: auto; }
}

/* Product quantity selector */
.product-purchase-row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:.75rem;align-items:end;margin-top:.35rem}.product-quantity-field>span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#7b6756;font-weight:800;margin-bottom:.35rem}.product-quantity-control{display:grid;grid-template-columns:36px minmax(44px,1fr) 36px;border:1px solid #ccb98f;border-radius:10px;overflow:hidden;background:#fff;height:46px}.product-quantity-control button{border:0;background:#f3eadc;font:inherit;font-size:1.25rem;font-weight:800;cursor:pointer}.product-quantity-control button:disabled{opacity:.4;cursor:not-allowed}.product-quantity-control input{width:100%;min-width:0;border:0;border-left:1px solid #dfcfb6;border-right:1px solid #dfcfb6;text-align:center;font:inherit;font-weight:800;background:#fff;appearance:textfield;-moz-appearance:textfield}.product-quantity-control input::-webkit-outer-spin-button,.product-quantity-control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.product-purchase-row .product-add-button{width:100%;margin-top:0;height:46px}@media(max-width:520px){.product-purchase-row{grid-template-columns:1fr}.product-quantity-field{max-width:150px}}

/* --- Launch polish v23: policies, footer, mobile, accessibility --- */
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem 1.1rem;padding:1rem 0 .65rem;border-top:1px solid rgba(121,91,64,.18)}
.footer-links a{color:#6a4a36;font-weight:750;text-decoration:none;font-size:.88rem}.footer-links a:hover,.footer-links a:focus-visible{text-decoration:underline}
.policy-page{max-width:960px}.policy-card{background:#fffdf7;border:1px solid #dfcfb6;border-radius:18px;padding:clamp(1.2rem,3vw,2rem);box-shadow:0 10px 28px rgba(38,21,15,.08);line-height:1.7;color:#514135}.policy-card h4{font-family:Georgia,serif;font-size:1.25rem;color:#33241d;margin:1.5rem 0 .35rem}.policy-card h4:first-child{margin-top:0}.policy-card a{color:#7f2a22;font-weight:800}.policy-updated{margin-top:2rem;font-size:.82rem;color:#776559}.error-page{max-width:800px;padding-top:clamp(3rem,10vw,7rem);padding-bottom:5rem}.error-page h1{font-family:Georgia,serif;font-size:clamp(2.3rem,7vw,4rem);margin:.4rem 0 .8rem}
:focus-visible{outline:3px solid #8f2d22;outline-offset:3px}
@media(max-width:760px){.site-header-inner{align-items:center}.brand{min-width:0}.brand img{max-width:88px}.brand-text .subtitle{font-size:.66rem}.nav{width:100%;justify-content:center;gap:.3rem .75rem}.nav a{padding:.42rem .15rem;min-height:40px;display:inline-flex;align-items:center}.footer-inner{gap:.5rem;text-align:center;justify-content:center}.footer-inner span{width:100%}.home-hero-copy,.product-detail-info,.policy-card{overflow-wrap:anywhere}}
@media(max-width:520px){.wrapper{width:min(100% - 1.25rem,1200px)}.brand-text .title{font-size:1.25rem}.brand-text .subtitle{display:none}.nav{font-size:.82rem}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .btn{width:100%}.product-purchase-row{grid-template-columns:1fr}.product-quantity-field{max-width:none}.product-quantity-control{max-width:170px}.footer-links{gap:.65rem 1rem}.footer-links a{min-height:36px;display:inline-flex;align-items:center}}

/* V79: clearer shipping vs. local-pickup choice */
.checkout-fulfillment-intro { margin: 1rem 0 .85rem; }
.checkout-fulfillment-intro h3 { margin: 0 0 .25rem; font-size: 1.05rem; }
.checkout-fulfillment-intro p { margin: 0; color: #66513f; line-height: 1.45; }
.fulfillment-choice { margin: 0; padding: 0; border: 0; min-width: 0; }
.fulfillment-choice legend { display:block; width:100%; margin:0 0 .55rem; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.09em; color:#4f392c; }
.fulfillment-options { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.fulfillment-option { position:relative; display:grid; grid-template-columns:auto 1fr; gap:.75rem; align-items:start; min-height:100px; padding:1rem; border:2px solid #d8c6a6; border-radius:12px; background:#fffdf8; cursor:pointer; transition:border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.fulfillment-option:hover { border-color:#a75a4f; }
.fulfillment-option:has(input:checked) { border-color:#8f2d22; background:#fbf1e8; box-shadow:0 0 0 2px rgba(143,45,34,.08); }
.fulfillment-option input { position:absolute; opacity:0; pointer-events:none; }
.fulfillment-radio { width:20px; height:20px; margin-top:2px; border:2px solid #8d7967; border-radius:50%; background:#fff; box-shadow:inset 0 0 0 4px #fff; }
.fulfillment-option:has(input:checked) .fulfillment-radio { border-color:#8f2d22; background:#8f2d22; }
.fulfillment-option-copy strong { display:block; margin-bottom:.3rem; font-size:1rem; color:#26150f; }
.fulfillment-option-copy small { display:block; color:#66513f; font-size:.82rem; line-height:1.45; }
.pickup-info { margin-top:1rem; padding:1rem; border:1px solid #d7b879; border-radius:10px; background:#faf3df; }
.pickup-info strong, .pickup-info span { display:block; }
.pickup-info strong { margin-bottom:.25rem; color:#26150f; }
.pickup-info span { color:#66513f; line-height:1.45; }
.pickup-info.is-hidden { display:none; }
@media (max-width:680px) { .fulfillment-options { grid-template-columns:1fr; } .fulfillment-option { min-height:0; } }

/* v82 — payment choice cards match fulfillment choice cards */
.payment-choice { border:0; padding:0; margin:1.1rem 0; min-width:0; }
.payment-choice > legend { font-weight:800; font-size:1rem; margin-bottom:.55rem; color:#26150f; }
.payment-options { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.payment-option { position:relative; display:grid; grid-template-columns:auto 1fr; gap:.75rem; align-items:start; min-height:88px; padding:1rem; border:2px solid #d8c6a6; border-radius:12px; background:#fffdf8; cursor:pointer; transition:border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.payment-option:hover { border-color:#a75a4f; }
.payment-option:has(input:checked) { border-color:#8f2d22; background:#fbf1e8; box-shadow:0 0 0 2px rgba(143,45,34,.08); }
.payment-option input { position:absolute; opacity:0; pointer-events:none; }
.payment-radio { width:18px; height:18px; margin-top:2px; border:2px solid #a98d72; border-radius:50%; background:#fff; box-shadow:inset 0 0 0 4px #fff; }
.payment-option:has(input:checked) .payment-radio { border-color:#8f2d22; background:#8f2d22; }
.payment-option-copy strong { display:block; margin-bottom:.3rem; font-size:1rem; color:#26150f; }
.payment-option-copy small { display:block; color:#66513f; font-size:.82rem; line-height:1.45; }
@media (max-width:680px) { .payment-options { grid-template-columns:1fr; } .payment-option { min-height:0; } }
