/* TODO PROMO v1.2 — styles limited to our dedicated archive/grid.
   WoodMart's other categories, shop and product pages are untouched. */

/* WoodMart renders shop content and the sidebar as Bootstrap-style columns.
   Hiding the sidebar without changing .site-content keeps the old 9/12 column
   width and leaves a blank right-hand strip. Reclaim BOTH parent and column.
   Everything is strictly scoped to the todo-promo category body class. */
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper > .sidebar-container,
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper > .shop-sidebar,
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper > aside,
body.tdp-promo-archive .main-page-wrapper .wd-sidebar,
body.tdp-promo-archive .main-page-wrapper .shop-sidebar,
body.tdp-promo-archive .main-page-wrapper .sidebar-container,
body.tdp-promo-archive .main-page-wrapper .area-sidebar-shop,
body.tdp-promo-archive .main-page-wrapper .wd-sidebar-opener,
body.tdp-promo-archive .main-page-wrapper .wd-shop-tools,
body.tdp-promo-archive .main-page-wrapper .wd-shop-filters {
  display: none !important;
}
/* WoodMart archive column is generally .site-content.col-lg-9, not
   .content-area. This is the key missing override from the previous ZIP. */
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper > .site-content,
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper > .wd-content-area,
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper > .content-area,
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper > .shop-content-area,
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper > [class*="col-lg-9"],
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper > [class*="col-md-9"] {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  min-width: 0;
}
body.tdp-promo-archive .main-page-wrapper .content-layout-wrapper,
body.tdp-promo-archive .main-page-wrapper .site-content,
body.tdp-promo-archive .main-page-wrapper .wd-content-area,
body.tdp-promo-archive .main-page-wrapper .content-area,
body.tdp-promo-archive .main-page-wrapper .shop-content-area {
  max-width: 100% !important;
}
/* Expand the actual theme container, not only the grid within the 9/12 col. */
body.tdp-promo-archive .main-page-wrapper > .container,
body.tdp-promo-archive .main-page-wrapper > .container-fluid {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: clamp(12px, 2.75vw, 52px) !important;
  padding-right: clamp(12px, 2.75vw, 52px) !important;
}

.tdp-archive, .tdp-archive *, .tdp-grid, .tdp-grid * { box-sizing: border-box; }
.tdp-archive {
  --tdp-green: #157c43;
  --tdp-deep: #17251d;
  --tdp-muted: #69746d;
  --tdp-line: #e1eae2;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 18px 0 82px;
  color: var(--tdp-deep);
}
.tdp-archive__header {
  position: relative;
  isolation: isolate;
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 204px;
  padding: clamp(24px, 4.3vw, 58px);
  margin: 0 0 32px;
  overflow: hidden;
  background: linear-gradient(111deg, #eef8ed 0%, #f5faf3 64%, #e8f3e4 100%);
  border: 1px solid #e0eddf;
  border-radius: 14px;
}
.tdp-archive__header::before, .tdp-archive__header::after {
  content: '';
  position: absolute;
  z-index: -1;
  border: 1px solid rgba(21,124,67,.11);
  border-radius: 50%;
}
.tdp-archive__header::before { width: 355px; height: 355px; top: -230px; right: -55px; }
.tdp-archive__header::after { width: 450px; height: 450px; bottom: -370px; right: 105px; }
.tdp-archive__copy { min-width: 0; max-width: 780px; }
.tdp-archive__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  color: #27663c;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .18em;
}
.tdp-archive__eyebrow-dot, .tdp-card__ribbon-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #27af5c;
}
.tdp-archive__header h1 {
  font-size: clamp(36px, 5.2vw, 62px) !important;
  font-weight: 850 !important;
  letter-spacing: -.055em;
  line-height: 1.03 !important;
  color: #17271d;
  margin: 0 0 13px !important;
}
.tdp-archive__header h1 span { color: var(--tdp-green); }
.tdp-archive__intro { margin: 0 !important; color: #596c5d; font-size: 15px; line-height: 1.6; }
.tdp-archive__seal {
  display: grid;
  align-content: center;
  justify-items: center;
  flex: 0 0 auto;
  width: 118px;
  height: 118px;
  margin-left: 22px;
  border: 2px dashed rgba(21,124,67,.52);
  border-radius: 50%;
  color: var(--tdp-green);
  background: #fff9;
  transform: rotate(9deg);
}
.tdp-archive__seal span { font-size: 10px; line-height: 1.3; font-weight: 800; letter-spacing: .1em; }
.tdp-archive__seal strong { font-size: 23px; line-height: 1.2; font-weight: 900; }

.tdp-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 22px;
}
.tdp-card {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--tdp-line, #e1eae2);
  border-radius: 10px;
  box-shadow: 0 3px 14px rgba(18, 41, 25, .035);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tdp-card:hover { transform: translateY(-4px); border-color: #a6cdb0; box-shadow: 0 16px 35px rgba(24, 68, 39, .1); }
.tdp-card__link, .tdp-card__link:hover, .tdp-card__link:focus {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none !important;
}
.tdp-card__link:focus-visible { outline: 3px solid #19834c; outline-offset: -3px; }
.tdp-card__visual { position: relative; min-width: 0; background: #fff; overflow: hidden; }
.tdp-card__ribbon {
  position: absolute;
  z-index: 2;
  top: 10px;
  left: 10px;
  right: 10px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  min-height: 0;
  padding: 0;
  pointer-events: none;
  color: #27663c;
}
/* Artwork already says "Vente flash": do not reserve a bar above the image. */
.tdp-card__ribbon-title { display: none !important; }
.tdp-card__ribbon-title { display: inline-flex; align-items: center; gap: 7px; font-size: 10px; font-weight: 850; letter-spacing: .11em; white-space: nowrap; }
.tdp-card__badge { display: inline-flex; align-items: center; padding: 6px 10px; background: #11733d; color: #fff; border-radius: 5px; font-size: 13px; font-weight: 850; line-height: 1.1; white-space: nowrap; }
.tdp-card__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden;
  line-height: 0;
  background: #fff;
}
/* Full-bleed artwork: it spans the FULL card width with NO horizontal or
   vertical margins. Keep intrinsic aspect ratio to avoid cutting off printed
   prices on the promo posters. Only the card information below gets padding. */
.tdp-card__image img,
.tdp-card__image .tdp-card__photo {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  mix-blend-mode: normal;
  transform: none !important;
}
.tdp-card__info {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  padding: 17px 17px 18px;
  border-top: 1px solid #eff2ef;
  background: #fff;
}
.tdp-card__name {
  margin: 0 !important;
  color: #1b271f !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  letter-spacing: -.01em;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tdp-card__attributes { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 11px; }
.tdp-card__attribute { display: inline-block; padding: 5px 8px; background: #f2f7f3; border: 1px solid #e4eee6; border-radius: 4px; color: #2e6d43; font-size: 11px; line-height: 1.35; font-weight: 700; overflow-wrap: anywhere; }
.tdp-card__bottom { margin-top: auto; padding-top: 16px; }
.tdp-card__prices { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 12px; margin-bottom: 15px; direction: ltr; unicode-bidi: isolate; }
.tdp-money { display: inline-flex !important; flex: 0 0 auto; align-items: baseline; direction: ltr !important; unicode-bidi: isolate; white-space: nowrap; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.tdp-money__number { direction: ltr; unicode-bidi: isolate; }
.tdp-money__currency { margin-left: 4px; font-size: .65em; font-weight: 700; text-decoration: inherit; }
.tdp-money--old { font-size: 13px; font-weight: 500; color: #85908a; text-decoration: line-through; text-decoration-thickness: 1px; }
.tdp-money--sale { font-size: clamp(20px, 1.8vw, 26px); font-weight: 900; line-height: 1.1; color: #d02b35; }
.tdp-card__cta { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 44px; padding: 10px 14px; border-radius: 6px; background: #177c43; color: #fff !important; font-size: 12px; font-weight: 850; line-height: 1.3; transition: background .2s ease; }
.tdp-card__cta span { font-size: 20px; line-height: .7; transition: transform .2s ease; }
.tdp-card:hover .tdp-card__cta { background: #0e6334; }
.tdp-card:hover .tdp-card__cta span { transform: translateX(3px); }
.tdp-empty { padding: 50px 20px; border: 1px solid #e1eae2; background: #f7faf7; text-align: center; font-size: 16px; color: #405446; }
@media(max-width:1199px) { .tdp-grid { gap: 15px; } .tdp-card__info { padding: 13px; } }
@media(max-width:1024px) { .tdp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .tdp-archive { padding: 14px 0 65px; } }
@media(max-width:767px) {
  .tdp-archive { padding: 5px 0 48px; }
  .tdp-archive__header { min-height: 154px; margin-bottom: 18px; padding: 26px 20px; border-radius: 10px; }
  .tdp-archive__eyebrow { font-size: 9px; letter-spacing: .1em; margin-bottom: 9px; }
  .tdp-archive__header h1 { font-size: clamp(31px, 9vw, 46px) !important; margin-bottom: 9px !important; }
  .tdp-archive__intro { font-size: 12px; line-height: 1.5; }
  .tdp-archive__seal { display: none; }
  .tdp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .tdp-card { border-radius: 7px; }
  .tdp-card__ribbon { top: 7px; left: 7px; right: 7px; min-height: 0; padding: 0; }
  .tdp-card__ribbon-title { font-size: 8px; gap: 4px; letter-spacing: .05em; }
  .tdp-card__ribbon-dot { width: 5px; height: 5px; }
  .tdp-card__badge { font-size: 11px; padding: 5px 7px; border-radius: 4px; }
  .tdp-card__image { padding: 0 !important; margin: 0 !important; }
  .tdp-card__info { padding: 10px 9px 10px; }
  .tdp-card__name { font-size: 12px !important; line-height: 1.35 !important; }
  .tdp-card__attributes { gap: 4px; margin-top: 7px; }
  .tdp-card__attribute { padding: 3px 5px; font-size: 10px; }
  .tdp-card__bottom { padding-top: 10px; }
  .tdp-card__prices { gap: 3px 7px; margin-bottom: 11px; }
  .tdp-money--old { font-size: 11px; }
  .tdp-money--sale { font-size: 18px; }
  .tdp-card__cta { min-height: 39px; padding: 9px 8px; border-radius: 4px; font-size: 11px; }
  .tdp-card__cta span { font-size: 18px; }
}
@media(max-width:360px) { .tdp-archive { padding-right: 0; padding-left: 0; } .tdp-grid { gap: 7px; } .tdp-card__ribbon-title { font-size: 7px; } .tdp-card__badge { font-size: 10px; } .tdp-money--sale { font-size: 16px; } }
@media(prefers-reduced-motion:reduce) { .tdp-card, .tdp-card__cta, .tdp-card__cta span { transition: none; } .tdp-card:hover { transform: none; } }
