/* TAZRIRT rug customizer - scoped to enabled product pages only */
.tz-rug-card { max-width: 460px; font-family: 'Lora', Georgia, serif; color: #241F1A; background: #FAF7F2; border: 1px solid #E4D8C8; border-radius: 8px; padding: 24px; margin: 20px 0; box-shadow: 0 2px 10px rgba(36,31,26,0.06); }
.tz-rug-error { color: #98452F; font-weight: 600; }
.tz-rug-step { margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid #EFE3D3; }
.tz-rug-step:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.tz-rug-step__num { display: inline-block; font-family: 'Cormorant Garamond', serif; font-weight: 700; color: #98452F; margin-right: 8px; }
.tz-rug-step h3 { display: inline; font-family: 'Cormorant Garamond', serif; font-size: 20px; margin: 0 0 12px; }
.tz-rug-hint { font-size: 13px; color: #6b6259; margin: 4px 0 14px; }
.tz-rug-units { display: flex; gap: 10px; margin-bottom: 16px; font-size: 14px; flex-wrap: wrap; }
.tz-rug-units label {
  padding: 8px 14px; border: 1.5px solid #E4D8C8; border-radius: 20px; background: #fff;
  transition: background 150ms ease, border-color 150ms ease; cursor: pointer;
}
.tz-rug-units label.tz-rug-unit-selected, .tz-rug-units label:has(input:checked) {
  background: #F5EAD6; border-color: #98452F; border-width: 2px; font-weight: 700; color: #98452F;
}
.tz-rug-units label:has(input:focus-visible) { outline: 2px solid #98452F; outline-offset: 2px; }
.tz-rug-units label { display: flex; align-items: center; gap: 6px; cursor: pointer; }
.tz-rug-dims { display: flex; gap: 20px; flex-wrap: wrap; }
.tz-rug-dim-field { flex: 1; min-width: 140px; }
.tz-rug-dim-field label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.tz-rug-dim-inputs { display: flex; align-items: center; gap: 6px; }
.tz-rug-input { width: 64px; height: 40px; padding: 0 8px; border: 1px solid #E7DFD3; border-radius: 6px; font-size: 15px; }
.tz-rug-input:focus { outline: 2px solid #98452F; outline-offset: 1px; }
.tz-rug-input--b { width: 50px; }
.tz-rug-unit-a, .tz-rug-unit-b { font-size: 13px; color: #6b6259; }
.tz-rug-sizehint { font-size: 12.5px; color: #6b6259; margin-top: 10px; min-height: 16px; }
.tz-rug-sizehint.tz-rug-error-text { color: #98452F; font-weight: 600; }
.tz-rug-tassels { display: flex; flex-direction: column; gap: 10px; }
.tz-rug-tassel-option {
  display: flex; justify-content: space-between; align-items: center; padding: 10px 14px;
  border: 1.5px solid #E4D8C8; border-radius: 6px; cursor: pointer; font-size: 14.5px;
  background: #fff; transition: background 150ms ease, border-color 150ms ease;
}
.tz-rug-tassel-option:hover { border-color: #C58A2E; }
.tz-rug-tassel-option:has(input:focus-visible) { outline: 2px solid #98452F; outline-offset: 2px; }
.tz-rug-tassel-option--selected, .tz-rug-tassel-option:has(input:checked) {
  background: #F5EAD6 !important;
  border-color: #98452F !important;
  border-width: 2px;
  font-weight: 700;
}
.tz-rug-tassel-option input { margin-right: 8px; }
.tz-rug-tassel-price { font-weight: 600; color: #98452F; }
.tz-rug-review {
  width: 100%; border-collapse: collapse; table-layout: fixed; margin-bottom: 16px; font-size: 14.5px;
  border: 1.5px solid #C9A876; border-radius: 6px; background: #fff; overflow: hidden;
}
.tz-rug-review td {
  padding: 12px 10px;
  border-bottom: 1px solid #C9A876;
  border-right: 1px solid #C9A876;
  vertical-align: middle;
  width: 50%;
  color: #241F1A;
}
.tz-rug-review tr:last-child td { border-bottom: none; }
.tz-rug-review td:last-child { border-right: none; }
.tz-rug-review td:first-child { color: #4a4238; text-align: center; font-weight: 500; }
.tz-rug-review td:last-child { text-align: center; font-weight: 700; }
.tz-rug-review__total { background: #FBF1E4; }
.tz-rug-review__total td { font-size: 19px; font-weight: 700; padding-top: 16px; padding-bottom: 16px; color: #98452F; border-bottom: none; }
.tz-rug-qty { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; }
.tz-rug-qty button { width: 30px; height: 30px; border-radius: 50%; border: 1px solid #E7DFD3; background: #fff; cursor: pointer; font-size: 16px; }
.tz-rug-quote-reason { color: #98452F; font-size: 13.5px; margin-bottom: 12px; }
.tz-rug-add, .tz-rug-quote { width: 100%; justify-content: center; margin-bottom: 12px; }
.tz-rug-lead { font-size: 13px; color: #6b6259; margin: 4px 0; }
.tz-rug-lead--muted { font-style: italic; }

.tz-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: 'Lora', serif; font-size: 16px; font-weight: 600; min-height: 50px; padding: 0 24px; border-radius: 8px; border: none; cursor: pointer; text-decoration: none; transition: transform 150ms ease, background 150ms ease; }
.tz-btn--solid { background: #98452F; color: #FAF7F2; }
.tz-btn--solid:hover { background: #7d3a26; transform: translateY(-1px); }
.tz-btn--outline { background: transparent; color: #98452F; border: 1.5px solid #98452F; }
.tz-btn--outline:hover { background: rgba(152,69,47,0.06); }

.tz-rug-story__img { display: block; width: 100%; margin: 0; }
.tz-rug-story__img img { width: 100%; height: auto; display: block; }

.tz-rug-styled { padding: 56px 24px; max-width: 1100px; margin: 0 auto; text-align: center; }
.tz-rug-styled h2 { font-family: 'Cormorant Garamond', serif; font-size: 32px; margin-bottom: 6px; }
.tz-rug-styled__note { font-size: 12.5px; color: #6b6259; font-style: italic; margin-bottom: 24px; }
.tz-rug-styled__track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
.tz-rug-styled__slide { flex: 0 0 280px; scroll-snap-align: start; }
.tz-rug-styled__slide img { width: 100%; height: 210px; object-fit: cover; border-radius: 6px; display: block; }

/* Global FAQ accordion (all rug products). Every rule is scoped to
   .tz-rug-faq so nothing else on the page is affected. */
.tz-rug-faq { max-width: 900px; margin: 0 auto 56px; padding: 0 24px; box-sizing: border-box; background: #fff; }
.tz-rug-faq h2 { font-family: 'Cormorant Garamond', serif; font-size: 30px; text-align: center; margin-bottom: 28px; }
.tz-rug-faq__item { border-bottom: 1px solid #E7DFD3; }
.tz-rug-faq__q { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 0; padding: 20px 4px; background: none; border: none; border-radius: 0; box-shadow: none; font-size: 17px; line-height: 1.45; font-weight: 600; text-align: left; white-space: normal; cursor: pointer; font-family: 'Lora', serif; color: #241F1A; -webkit-tap-highlight-color: transparent; transition: color 200ms ease; }
.tz-rug-faq__q:hover, .tz-rug-faq__q:focus, .tz-rug-faq__q:active { background: none; border: none; box-shadow: none; color: #98452F; }
.tz-rug-faq__q:focus { outline: none; }
.tz-rug-faq__q:focus-visible { outline: 1px solid #98452F; outline-offset: 2px; }
.tz-rug-faq__q-text { flex: 1 1 auto; min-width: 0; overflow-wrap: break-word; }
.tz-rug-faq__icon { width: 9px; height: 9px; border-right: 1.5px solid #98452F; border-bottom: 1.5px solid #98452F; transform: translateY(-3px) rotate(45deg); transition: transform 300ms ease; flex-shrink: 0; margin-right: 4px; }
.tz-rug-faq__q[aria-expanded="true"] .tz-rug-faq__icon { transform: translateY(2px) rotate(225deg); }
.tz-rug-faq__a { overflow: hidden; transition: height 300ms ease; }
.tz-rug-faq__a[hidden] { display: none; }
.tz-rug-faq__a-inner { padding: 0 44px 22px 4px; font-size: 15px; line-height: 1.7; color: #4a4238; }
.tz-rug-faq__a-inner p { margin: 0 0 10px; }
.tz-rug-faq__a-inner ul { margin: 0 0 12px 1.25em; padding: 0; list-style: disc; }
.tz-rug-faq__a-inner li { margin: 0 0 4px; }
.tz-rug-faq__a-inner > :last-child { margin-bottom: 0; }
.tz-rug-faq__a-inner .tz-rug-faq__sub { margin: 18px 0 6px; font-weight: 600; color: #241F1A; }
.tz-rug-faq__a-inner .tz-rug-faq__sub:first-child { margin-top: 0; }
@media (max-width: 767px) {
  /* Same full-bleed escape the storytelling images use, so the side
     padding is exactly 20px whatever padding Astra's wrapper has. */
  .tz-rug-faq { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding: 0 20px; }
  .tz-rug-faq h2 { font-size: 26px; margin-bottom: 20px; }
  .tz-rug-faq__q { font-size: 16px; padding: 18px 0; min-height: 48px; gap: 16px; }
  .tz-rug-faq__a-inner { padding: 0 0 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .tz-rug-faq__a, .tz-rug-faq__icon, .tz-rug-faq__q { transition: none; }
}

.tz-rug-contact { max-width: 560px; margin: 0 auto 64px; padding: 0 24px; }
.tz-rug-contact h2 { font-family: 'Cormorant Garamond', serif; font-size: 28px; text-align: center; }
.tz-rug-contact p { text-align: center; font-size: 14.5px; color: #6b6259; }
.tz-rug-contact__form { display: flex; flex-direction: column; gap: 14px; margin-top: 20px; }
.tz-rug-contact__form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; }
.tz-rug-contact__form input, .tz-rug-contact__form textarea { padding: 10px 12px; border: 1px solid #E7DFD3; border-radius: 6px; font-family: 'Lora', serif; font-size: 15px; }
.tz-rug-contact__success { color: #2e7d32 !important; font-weight: 600; }

@media (max-width: 600px) {
  .tz-rug-card { padding: 18px; }
  .tz-rug-dims { flex-direction: column; }
}

/* Fix: WooCommerce's own gallery script sets the gallery to opacity:0 and
   relies on its JS to reveal it. If that JS is ever slow/blocked, the whole
   gallery is invisible (a large blank box) with no fallback. Same principle
   applied elsewhere in this project: content must be visible without
   depending on JS succeeding. */
.woocommerce-product-gallery { opacity: 1 !important; }

/* Fix: quantity stepper buttons had no box-sizing/centering, so the actual
   minus/plus characters (present in the HTML) could render clipped or
   off-center inside the 30px circle, looking like blank ovals. */
.tz-rug-qty button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
  color: #241F1A;
}
.tz-rug-equiv { font-size: 12px; color: #98452F; margin: 4px 0 0; min-height: 15px; }
@media (max-width: 600px) { .tz-rug-review { font-size: 14px; } }

/* Real flex container, top-aligned, replacing the fragile float
   wrap-around that broke when a second floated sibling was inserted. */
.product {
  display: flex !important;
  align-items: flex-start !important;
  flex-wrap: wrap;
  gap: 0;
}
.tz-rug-left-col {
  flex: 0 1 50%;
  max-width: 50%;
  box-sizing: border-box;
  padding-right: 24px;
}
.tz-rug-left-col .images {
  width: 100% !important;
  float: none !important;
}
.product .summary {
  flex: 1 1 46%;
  box-sizing: border-box;
}
.tz-rug-styled-inline {
  width: 100%;
  box-sizing: border-box;
  padding-top: 24px;
}
.tz-rug-styled-inline h2 { font-family: 'Cormorant Garamond', serif; font-size: 22px; margin: 0 0 4px; color: #241F1A; }
.tz-rug-styled__note { font-size: 12px; color: #6b6259; font-style: italic; margin: 0 0 14px; }

.tz-rug-styled-carousel { position: relative; }
.tz-rug-styled-carousel__viewport { overflow: hidden; border-radius: 6px; }
.tz-rug-styled-carousel__track { display: flex; transition: transform 350ms ease; }
.tz-rug-styled-carousel__slide {
  flex: 0 0 50%;
  aspect-ratio: 4/3;
  padding: 0 4px;
  box-sizing: border-box;
  border: none;
  background: none;
  cursor: zoom-in;
  display: block;
}
.tz-rug-styled-carousel__slide img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 6px; }
/* Carousel arrows: small round buttons. Padding, min sizes and the hover
   colours are set here on purpose, otherwise the theme's generic button
   styles stretch them into ovals and squash the chevron. */
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  box-sizing: border-box;
  width: 32px;
  height: 32px;
  min-width: 0;
  min-height: 0;
  padding: 0;
  margin: 0;
  border-radius: 50%;
  background: rgba(250,247,242,0.96);
  border: 1px solid #E7DFD3;
  box-shadow: 0 2px 8px rgba(36,31,26,0.14);
  color: #98452F;
  line-height: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  -webkit-appearance: none;
  appearance: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow span {
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 8px;
  height: 8px;
  border: 0 solid currentColor;
  border-top-width: 1.5px;
  border-right-width: 1.5px;
  display: block;
}
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow--prev { left: 12px; }
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow--prev span { transform: translateX(1.5px) rotate(-135deg); }
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow--next { right: 12px; }
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow--next span { transform: translateX(-1.5px) rotate(45deg); }
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow:hover,
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow:focus,
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow:active {
  background: rgba(250,247,242,0.96);
  border-color: #E7DFD3;
  color: #98452F;
  box-shadow: 0 2px 8px rgba(36,31,26,0.14);
}
@media (hover: hover) {
  .tz-rug-styled-carousel .tz-rug-styled-carousel__arrow:hover {
    background: #98452F;
    border-color: #98452F;
    color: #FAF7F2;
  }
}
.tz-rug-styled-carousel .tz-rug-styled-carousel__arrow:focus-visible { outline: 2px solid #98452F; outline-offset: 2px; }

.tz-rug-lightbox {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(20,17,14,0.92);
  display: flex; align-items: center; justify-content: center;
  padding: 32px;
}
.tz-rug-lightbox img { max-width: 100%; max-height: 100%; border-radius: 4px; }
.tz-rug-lightbox__close {
  position: absolute; top: 20px; right: 24px;
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(250,247,242,0.15); color: #FAF7F2;
  border: 1px solid rgba(250,247,242,0.4);
  font-size: 22px; line-height: 1; cursor: pointer;
}

@media (max-width: 900px) {
  .product { display: block !important; }
  .tz-rug-left-col { max-width: 100%; flex-basis: 100%; padding-right: 0; }
  .tz-rug-styled-carousel__slide { flex: 0 0 92%; aspect-ratio: 4/3; }
  .tz-rug-styled-carousel__track { touch-action: pan-y; }
}
/* Fix: [hidden] and .tz-rug-lightbox{display:flex} had equal CSS
   specificity, so source order decided the winner - and since this
   stylesheet loads after the browser default, display:flex won,
   permanently showing the lightbox regardless of the hidden attribute. */
.tz-rug-lightbox[hidden] { display: none !important; }

/* Mobile full-bleed for storytelling images: escapes whatever padding
   exists on ancestor containers (Astra's content wrapper), regardless
   of its exact class name - a fixed viewport-relative offset works
   no matter how deeply nested this section ends up. Guarded so it only
   applies at mobile widths and does not touch the desktop layout. */
@media (max-width: 767px) {
  .tz-rug-story__img {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
  .tz-rug-story__img img { width: 100%; height: auto; display: block; }
  /* Guards against the 100vw trick itself introducing horizontal
     scroll on browsers where 100vw includes the scrollbar width. */
  html, body { overflow-x: hidden; max-width: 100%; }
}
.tz-rug-info { max-width: 460px; margin-top: 16px; font-family: 'Lora', Georgia, serif; color: #241F1A; }
.tz-rug-acc { border-bottom: 1px solid #E4D8C8; }
.tz-rug-acc__q {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  padding: 16px 4px; background: none; border: none; text-align: left; cursor: pointer;
  font-family: 'Cormorant Garamond', serif; font-size: 18px; font-weight: 600; color: #241F1A;
}
.tz-rug-acc__q, .tz-rug-acc__q:hover, .tz-rug-acc__q:focus, .tz-rug-acc__q:active {
  background: none !important; color: #241F1A !important;
}
.tz-rug-acc__q:focus { outline: none; }
.tz-rug-acc__q:focus-visible { outline: 2px solid #98452F; outline-offset: 2px; background: none !important; }
.tz-rug-acc__icon { width: 12px; height: 12px; position: relative; flex-shrink: 0; margin-left: 12px; }
.tz-rug-acc__icon::before, .tz-rug-acc__icon::after {
  content: ''; position: absolute; background: #C58A2E; transition: transform 200ms ease;
}
.tz-rug-acc__icon::before { top: 50%; left: 0; width: 100%; height: 2px; margin-top: -1px; }
.tz-rug-acc__icon::after { left: 50%; top: 0; width: 2px; height: 100%; margin-left: -1px; }
.tz-rug-acc__q[aria-expanded="true"] .tz-rug-acc__icon::after { transform: scaleY(0); }
.tz-rug-acc__a { padding: 0 4px 18px; font-size: 15px; line-height: 1.65; color: #4a4238; }
.tz-rug-acc__a p { margin: 0 0 12px; }
.tz-rug-acc__a ul { margin: 0 0 12px; padding-left: 20px; }
.tz-rug-acc__a li { margin-bottom: 6px; }
.tz-rug-empty-note { font-style: italic; opacity: 0.7; font-size: 13.5px; }

.tz-rug-trust { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; padding: 20px 4px; border-bottom: 1px solid #E4D8C8; }
.tz-rug-trust__item { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; }
.tz-rug-trust__icon { color: #98452F; font-size: 16px; flex-shrink: 0; margin-top: 2px; }
.tz-rug-trust__item strong { font-size: 13.5px; display: block; }
.tz-rug-trust__item br + * { color: #6b6259; font-size: 12.5px; }

.tz-rug-accept { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 16px 4px 4px; }
.tz-rug-accept__label { font-size: 11px; letter-spacing: 0.5px; text-transform: uppercase; color: #6b6259; margin-right: 6px; }
.tz-rug-accept__badge {
  font-size: 12px; padding: 4px 10px; border: 1px solid #E4D8C8; border-radius: 4px; color: #4a4238;
}

@media (max-width: 600px) {
  .tz-rug-info { max-width: 100%; }
  .tz-rug-trust { grid-template-columns: 1fr; }
}
.tz-rug-acc__a h4 { font-family: 'Cormorant Garamond', serif; font-size: 17px; font-weight: 700; margin: 18px 0 8px; color: #241F1A; }
.tz-rug-acc__a h4:first-child { margin-top: 0; }
.tz-rug-size-note { font-size: 13.5px; color: #6b6259; }

.tz-rug-fringe-list { list-style: none; margin: 12px 0; padding: 0; }
.tz-rug-fringe-list li { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.tz-rug-fringe-dot {
  width: 14px; height: 14px; border-radius: 50%; border: 2px solid #C58A2E; flex-shrink: 0; margin-top: 3px;
}

.tz-rug-sizeguide-figure { margin: 16px 0 4px; text-align: center; }
.tz-rug-sizeguide-trigger {
  display: block; width: 100%; padding: 0; border: 1px solid #E4D8C8; border-radius: 6px;
  background: #FAF7F2; cursor: zoom-in; overflow: hidden;
}
.tz-rug-sizeguide-trigger img { width: 100%; height: auto; display: block; }
.tz-rug-sizeguide-trigger:focus-visible { outline: 2px solid #98452F; outline-offset: 2px; }
figcaption { font-size: 12.5px; color: #6b6259; margin-top: 8px; }
.tz-rug-sizeguide-caption--mobile { display: none; }
.tz-rug-sizeguide-download { color: #98452F; text-decoration: underline; }
@media (max-width: 600px) {
  .tz-rug-sizeguide-caption--desktop { display: none; }
  .tz-rug-sizeguide-caption--mobile { display: inline; }
}

/* Lightbox: allow native pinch-to-zoom/panning on the enlarged image
   rather than blocking default touch behavior. */
.tz-rug-lightbox { touch-action: pinch-zoom pan-x pan-y; overflow: auto; }
.tz-rug-lightbox img { touch-action: pinch-zoom pan-x pan-y; }
.tz-rug-acc__a h5 { font-size: 15px; font-weight: 700; margin: 14px 0 6px; color: #98452F; font-family: 'Lora', serif; }

.tz-rug-cta-group { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.tz-rug-btn-addcart, .tz-rug-btn-buynow {
  width: 100%; min-height: 50px; border-radius: 8px; border: none; cursor: pointer;
  font-family: 'Lora', serif; font-size: 14px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase;
  transition: transform 150ms ease, background 150ms ease;
}
.tz-rug-btn-addcart { background: #E2B755; color: #241F1A; }
.tz-rug-btn-addcart:hover { background: #D6A83F; transform: translateY(-1px); }
.tz-rug-btn-addcart:focus-visible { outline: 2px solid #98452F; outline-offset: 2px; }
.tz-rug-btn-buynow { background: #DDD3C7; color: #241F1A; border: 1px solid #C9BCAA; }
.tz-rug-btn-buynow:hover { background: #D1C4B2; }
.tz-rug-btn-buynow:focus-visible { outline: 2px solid #98452F; outline-offset: 2px; }

.tz-rug-delivery {
  background: #FAF3E8; border: 1px solid #E9D9BE; border-radius: 8px;
  padding: 12px 14px; margin-bottom: 14px; font-family: 'Lora', serif;
}
.tz-rug-delivery__badge {
  display: inline-block; font-size: 10.5px; letter-spacing: 0.5px; text-transform: uppercase;
  color: #98452F; background: #F0DFC3; padding: 3px 9px; border-radius: 3px; font-weight: 700; margin-bottom: 6px;
}
.tz-rug-delivery__text { display: block; font-size: 13.5px; color: #4a4238; margin: 4px 0 0; }
.tz-rug-delivery__note { font-size: 11px; color: #948a7c; font-style: italic; margin: 4px 0 0; }

/* The card carries four lines now - production, the date window, transit,
   and one note when the destination is still unknown - instead of a single
   date line. Same palette, same box, same position: only the number of
   lines changed, so nothing around it moves. */
.tz-rug-delivery__line,
.tz-rug-delivery__msg { font-size: 12.5px; color: #6b6259; margin: 3px 0 0; line-height: 1.45; }
.tz-rug-delivery__line--muted { color: #948a7c; font-style: italic; }
/* Wraps to a second line on a narrow phone rather than overflowing the box. */
.tz-rug-delivery__text strong { display: inline; overflow-wrap: break-word; }

/* Reassurance note. Sits under the dates, separated by a hairline in the
   card's own border colour so it reads as a second thought rather than a
   fifth data line. Slightly smaller and lighter than the estimate above it,
   same Lora face inherited from .tz-rug-delivery, so it stays quiet. */
.tz-rug-delivery__reassure {
  margin: 10px 0 0;
  padding-top: 9px;
  border-top: 1px solid rgba(201, 188, 170, 0.55);
  font-size: 12px;
  line-height: 1.6;
  color: #6b6259;
  text-wrap: pretty;
}
@media (max-width: 767px) {
  .tz-rug-delivery__reassure { font-size: 12.5px; line-height: 1.62; margin-top: 11px; }
}

/* ---- TZ CTA VISIBILITY GUARD ----
   .tz-btn sets display:inline-flex, which beats the user-agent
   [hidden]{display:none} rule - so a button JS marks as hidden was still
   painted (the ghost 'Request a quote' under Add to Cart). These rules put
   the hidden attribute back in charge for every CTA in the card. */
.tz-rug-card [hidden],
.tz-rug-cta-group [hidden],
.tz-btn[hidden],
.tz-rug-quote[hidden],
.tz-rug-btn-addcart[hidden],
.tz-rug-btn-buynow[hidden] { display: none !important; }

/* Busy state while the add-to-cart POST is in flight - prevents a double
   submit creating two cart lines. */
.tz-rug-btn-addcart:disabled,
.tz-rug-btn-buynow:disabled,
.tz-rug-btn--busy { opacity: 0.6; cursor: progress; transform: none !important; }

/* Missing-dimension feedback on the field the customer must fill. */
.tz-rug-input--flash { border-color: #98452F !important; box-shadow: 0 0 0 3px rgba(152,69,47,0.18); animation: tzRugFlash 1.2s ease; }
@keyframes tzRugFlash { 0%,100% { box-shadow: 0 0 0 3px rgba(152,69,47,0.18); } 50% { box-shadow: 0 0 0 6px rgba(152,69,47,0.08); } }


/* Optional product secondary title (H2) under the H1. Scoped to this class only. */
.tz-rug-subtitle { font-family: 'Lora', serif; font-size: 17px; font-weight: 400; font-style: italic; line-height: 1.5; color: #6b6259; margin: 6px 0 14px; }
@media (max-width: 767px) { .tz-rug-subtitle { font-size: 15px; } }


/* Minimum area per rug - notice under the size fields + disabled buy buttons */
.tz-rug-minarea { margin: 12px 0 0; padding: 14px 16px; background: #FBF8F3; border: 1px solid #E4D8C8; border-left: 3px solid #98452F; border-radius: 4px; }
.tz-rug-minarea[hidden] { display: none; }
.tz-rug-minarea__text { margin: 0 0 12px; font-size: 13.5px; line-height: 1.6; color: #4a4238; }
.tz-rug-minarea__btn { min-height: 44px; }
.tz-rug-card [data-role="addToCart"][disabled],
.tz-rug-card [data-role="buyNow"][disabled] { opacity: .45; cursor: not-allowed; pointer-events: none; }

/* "See It Styled" is printed twice (see tazrirt-rug-template.php).
   Desktop and tablet: the copy under the gallery.
   Phones: the copy above the accordions, so the purchase card comes
   straight after the photos. */
.tz-rug-styled-inline--mobile { display: none; }
@media (max-width: 767px) {
  .tz-rug-styled-inline--side { display: none; }
  .tz-rug-styled-inline--mobile { display: block; padding-top: 0; margin: 30px 0 10px; }
}

/* ---- Promo code in the Review table + countdown (tz_rug_promo_info) ----
   Rows and clock are hidden in the markup and switched on by
   tz-rug-product.js only while a promo code is running for the rug. */
.tz-rug-review__subtotal td:last-child { font-weight: 500; color: #6b6259; }
.tz-rug-review__subtotal td.tz-rug-review__was { text-decoration: line-through; text-decoration-color: rgba(107, 98, 89, 0.7); }
.tz-rug-review__promo td { background: #F4F8F3; }
.tz-rug-review__promo td:last-child { color: #2E6B4A; white-space: nowrap; }
.tz-rug-review__promo-title { display: block; }
.tz-rug-review__promo-meta { display: block; margin-top: 4px; font-size: 12px; font-weight: 600; color: #2E6B4A; }
.tz-rug-review__promo-code {
  display: inline-block; padding: 1px 7px; border: 1px dashed #2E6B4A; border-radius: 3px;
  background: #fff; letter-spacing: 0.5px; font-weight: 700;
}
.tz-rug-review__total-sub {
  display: block; margin-top: 2px; font-family: 'Lora', Georgia, serif; font-size: 11.5px; font-weight: 500;
  letter-spacing: 0.3px; color: #6b6259;
}
.tz-rug-promo-note { margin: -8px 0 14px; font-size: 12.5px; line-height: 1.45; color: #6b6259; text-align: center; }
.tz-rug-promo-note strong { color: #241F1A; letter-spacing: 0.3px; }
.tz-rug-promo-timer {
  margin: 0 0 14px; padding: 12px 12px 14px; text-align: center;
  background: #FBF1E4; border: 1px solid #E9CFA9; border-radius: 6px;
}
.tz-rug-promo-timer__title {
  margin: 0 0 8px; font-size: 11.5px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: #98452F;
}
.tz-rug-promo-timer__clock { display: flex; justify-content: center; gap: 8px; }
.tz-rug-promo-timer__cell {
  flex: 1 1 0; max-width: 78px; padding: 7px 4px 6px; background: #fff; border: 1px solid #E9CFA9; border-radius: 5px;
  display: flex; flex-direction: column; align-items: center; line-height: 1;
}
.tz-rug-promo-timer__cell strong {
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: 27px; font-weight: 700; color: #241F1A;
  font-variant-numeric: tabular-nums lining-nums; line-height: 1;
}
.tz-rug-promo-timer__cell small {
  margin-top: 5px; font-size: 10px; font-weight: 600; letter-spacing: 0.7px; text-transform: uppercase; color: #6b6259;
}
