/* =================================================================
   Canada Peptides — header + footer
   Uses the same variables as styles.css
   ================================================================= */

/* =================================================================
   HEADER
   ================================================================= */

.site-header{
  position:sticky;
  top:0;
  z-index:500;
  background:#fff;
  border-bottom:1px solid var(--line-soft);
}

.site-header__inner{
  display:flex;
  align-items:center;
  gap:32px;
  /* LOGO SIZE: header height = logo height + ~30px  */
  min-height:150px;
}

/* ---- logo ---- */

.site-logo{
  flex:none;
  display:flex;
  align-items:center;
}
.site-logo__img{
  width:auto;
  /* ---- DESKTOP LOGO HEIGHT ---- change this one first ---- */
  height:120px;
  object-fit:contain;
}
.site-logo__text{
  font-size:22px;
  font-weight:800;
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--ink);
  line-height:1;
}

/* ---- nav ---- */

.site-nav{
  flex:1 1 auto;
  display:flex;
  justify-content:center;
}

.site-nav__list{
  display:flex;
  align-items:center;
  gap:46px;
  list-style:none;
  margin:0;
  padding:0;
}

.site-nav__list > li{ position:relative; }

.site-nav__list a{
  display:block;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--ink);
  line-height:1;
  padding:10px 0;
  transition:color .18s ease;
}
.site-nav__list a:hover,
.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a{ color:var(--red); }

/* underline on hover / active */
.site-nav__list > li > a::after{
  content:"";
  display:block;
  height:2px;
  margin-top:7px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s ease;
}
.site-nav__list > li:hover > a::after,
.site-nav__list > li.current-menu-item > a::after,
.site-nav__list > li.current_page_item > a::after{ transform:scaleX(1); }

/* dropdown */
.site-nav__list .sub-menu{
  position:absolute;
  top:100%;
  left:-18px;
  min-width:220px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:3px;
  box-shadow:0 14px 34px rgba(12,12,14,.09);
  padding:8px 0;
  list-style:none;
  margin:0;
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.site-nav__list > li:hover .sub-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.site-nav__list .sub-menu a{
  padding:11px 20px;
  letter-spacing:.05em;
  font-size:12px;
}
.site-nav__list .sub-menu a::after{ display:none; }
.site-nav__list .sub-menu a:hover{ background:var(--soft); }

/* ---- account + cart ---- */

.site-tools{
  flex:none;
  display:flex;
  align-items:center;
  gap:22px;
}

.site-tools__link{
  position:relative;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  color:var(--ink);
  transition:color .18s ease;
}
.site-tools__link:hover{ color:var(--red); }
.site-tools__link svg{ width:23px; height:23px; display:block; }

.site-cart__count{
  position:absolute;
  top:-4px;
  right:-6px;
  min-width:18px;
  height:18px;
  padding:0 5px;
  display:grid;
  place-items:center;
  background:var(--red);
  color:#fff;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  line-height:1;
}

/* ---- burger (mobile only) ---- */

.site-burger{
  display:none;
  width:38px;
  height:34px;
  padding:0;
  border:0;
  background:none;
  cursor:pointer;
  flex-direction:column;
  justify-content:center;
  gap:6px;
}
.site-burger span{
  display:block;
  height:2px;
  width:24px;
  margin-inline:auto;
  background:var(--ink);
  border-radius:2px;
  transition:transform .22s ease, opacity .18s ease;
}
.site-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.site-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.site-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }


/* =================================================================
   FOOTER
   ================================================================= */

.site-footer{
  background:var(--black);
  color:#c9c9d1;
}

.site-footer__grid{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1.25fr;
  gap:48px;
  padding-top:60px;
  padding-bottom:52px;
}

/* ---- brand column ---- */

.footer-logo{ display:inline-flex; margin-bottom:20px; }
.footer-logo__img{ width:auto; height:52px; object-fit:contain; }
.footer-logo__text{
  font-size:20px;
  font-weight:800;
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:#fff;
  line-height:1;
}

.footer-brand__text{
  font-size:14px;
  line-height:1.75;
  color:#a9a9b3;
  max-width:34ch;
  margin-bottom:22px;
}

.footer-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 15px;
  border:1px solid #2b2b31;
  border-radius:3px;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#fff;
}
.footer-badge svg{ width:17px; height:17px; color:var(--red); flex:none; }

/* ---- link columns ---- */

.footer-col h3{
  font-size:12px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#fff;
  margin-bottom:22px;
}

.footer-list{ list-style:none; margin:0; padding:0; }
.footer-list li{ margin-bottom:13px; }
.footer-list a{
  font-size:14px;
  line-height:1.5;
  color:#a9a9b3;
  transition:color .18s ease;
}
.footer-list a:hover{ color:var(--red); }

/* ---- contact column ---- */

.footer-contact{ list-style:none; margin:0 0 20px; padding:0; }
.footer-contact li{
  display:flex;
  align-items:center;
  gap:11px;
  font-size:14px;
  color:#a9a9b3;
  margin-bottom:13px;
}
.footer-contact svg{ width:17px; height:17px; color:var(--red); flex:none; }
.footer-contact a{ color:#a9a9b3; transition:color .18s ease; }
.footer-contact a:hover{ color:var(--red); }

.footer-col__note{
  font-size:13.5px;
  line-height:1.7;
  color:#8d8d97;
  max-width:30ch;
  margin-bottom:20px;
}

.btn--sm{ height:44px; padding:0 22px; font-size:11.5px; }

/* ---- research use only strip ---- */

.footer-disclaimer{
  border-top:1px solid #1e1e24;
  border-bottom:1px solid #1e1e24;
  background:#08080a;
  padding:22px 0;
}
.footer-disclaimer p{
  font-size:12.5px;
  line-height:1.72;
  color:#8d8d97;
  max-width:110ch;
}
.footer-disclaimer strong{ color:var(--red); font-weight:700; }

/* ---- bottom bar ---- */

.footer-bottom{ padding:24px 0; }

.footer-bottom__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.footer-bottom p{ font-size:13px; color:#7d7d87; }

.footer-legal{
  display:flex;
  align-items:center;
  gap:26px;
  list-style:none;
  margin:0;
  padding:0;
}
.footer-legal a{
  font-size:13px;
  color:#7d7d87;
  transition:color .18s ease;
}
.footer-legal a:hover{ color:var(--red); }


/* =================================================================
   RESPONSIVE
   ================================================================= */

@media (max-width:1100px){
  .site-nav__list{ gap:30px; }
  .site-header__inner{ gap:20px; }
  .site-footer__grid{ grid-template-columns:1fr 1fr; gap:44px 40px; }
}

@media (max-width:900px){

  .site-burger{ display:flex; }

  .site-header__inner{ min-height:82px; justify-content:space-between; }
  /* ---- TABLET LOGO HEIGHT ---- */
  .site-logo__img{ height:60px; }

  /* nav becomes a dropdown panel */
  .site-nav{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 34px rgba(12,12,14,.10);
    display:none;
    padding:8px 0 18px;
  }
  .site-nav.is-open{ display:block; }

  .site-nav__list{
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding-inline:var(--pad);
  }
  .site-nav__list a{
    padding:15px 0;
    border-bottom:1px solid var(--line-soft);
  }
  .site-nav__list > li > a::after{ display:none; }

  .site-nav__list .sub-menu{
    position:static;
    opacity:1;
    visibility:visible;
    transform:none;
    border:0;
    box-shadow:none;
    padding:0 0 0 16px;
    min-width:0;
  }
}

@media (max-width:640px){
  .site-header__inner{ min-height:72px; }
  /* ---- PHONE LOGO HEIGHT ---- keep 56px or below ---- */
  .site-logo__img{ height:48px; }
  .site-tools{ gap:14px; }

  .site-footer__grid{
    grid-template-columns:1fr;
    gap:38px;
    padding-top:44px;
    padding-bottom:38px;
  }
  .footer-brand__text{ max-width:none; }
  .footer-col__note{ max-width:none; }

  .footer-bottom__inner{ flex-direction:column; align-items:flex-start; gap:16px; }
  .footer-legal{ flex-wrap:wrap; gap:8px 20px; }
}


/* =================================================================
   PAGE HEAD (shared by inner pages)
   ================================================================= */

.pagehead{
  background:var(--soft);
  border-bottom:1px solid var(--line-soft);
  padding:54px 0 50px;
  text-align:center;
}

.pagehead__title{
  font-size:45px;
  line-height:1.1;
  letter-spacing:-.015em;
  margin-bottom:14px;
}

.pagehead__sub{
  font-size:17px;
  line-height:1.6;
  color:#4a4a52;
  max-width:60ch;
  margin-inline:auto;
}


/* =================================================================
   CONTACT PAGE
   ================================================================= */

.contact{ background:#fff; padding:64px 0 72px; }

.contact__grid{
  display:grid;
  grid-template-columns:400fr 620fr;
  gap:46px;
  align-items:start;
}

/* ---- info cards ---- */

.infocard{
  display:flex;
  align-items:flex-start;
  gap:18px;
  padding:22px 0;
  border-bottom:1px solid var(--line-soft);
}
.infocard:first-child{ padding-top:0; }

.infocard__icon{
  flex:none;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  background:var(--red-tint);
  border-radius:6px;
  color:var(--red);
}
.infocard__icon svg{ width:23px; height:23px; }

.infocard__body h3{
  font-size:13px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:8px;
}
.infocard__body p{
  font-size:15.5px;
  font-weight:600;
  color:var(--ink);
  line-height:1.4;
  margin-bottom:5px;
}
.infocard__body a{ color:var(--ink); transition:color .18s ease; }
.infocard__body a:hover{ color:var(--red); }

.infocard__note{
  display:block;
  font-size:13.5px;
  line-height:1.55;
  color:var(--muted);
}

.contact__badge{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-top:28px;
  padding:20px 22px;
  background:var(--soft);
  border-left:3px solid var(--red);
  border-radius:0 3px 3px 0;
}
.contact__badge svg{ flex:none; width:26px; height:26px; color:var(--red); }
.contact__badge p{ font-size:13.5px; line-height:1.7; color:#43434b; }
.contact__badge strong{ color:var(--ink); font-weight:700; }

/* ---- form card ---- */

.formcard{
  background:#fff;
  border:1px solid var(--line);
  border-radius:3px;
  padding:38px 40px 42px;
  box-shadow:0 14px 40px rgba(12,12,14,.05);
}

.formcard__title{
  font-size:26px;
  letter-spacing:-.015em;
  margin-bottom:10px;
}
.formcard__sub{
  font-size:14.5px;
  line-height:1.65;
  color:#4a4a52;
  margin-bottom:30px;
}

/* -----------------------------------------------------------------
   Form field styling.
   Covers Fluent Forms, Contact Form 7 and WPForms so the form
   matches the site whichever plugin is used.
----------------------------------------------------------------- */

.formcard label,
.formcard .ff-el-input--label label,
.formcard .wpforms-field-label{
  display:block;
  font-size:12px !important;
  font-weight:700 !important;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink) !important;
  margin-bottom:9px;
}

.formcard input[type="text"],
.formcard input[type="email"],
.formcard input[type="tel"],
.formcard input[type="url"],
.formcard input[type="number"],
.formcard select,
.formcard textarea,
.formcard .ff-el-form-control,
.formcard .wpforms-field input,
.formcard .wpforms-field textarea{
  width:100% !important;
  font-family:var(--font) !important;
  font-size:14.5px !important;
  color:var(--ink) !important;
  background:#fff !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  padding:14px 15px !important;
  line-height:1.5 !important;
  box-shadow:none !important;
  transition:border-color .18s ease, box-shadow .18s ease;
}

.formcard input:focus,
.formcard select:focus,
.formcard textarea:focus,
.formcard .ff-el-form-control:focus{
  border-color:var(--red) !important;
  box-shadow:0 0 0 3px rgba(207,3,14,.10) !important;
  outline:none !important;
}

.formcard textarea{ min-height:150px !important; resize:vertical; }

.formcard ::placeholder{ color:#9d9da5; opacity:1; }

/* spacing between fields */
.formcard .ff-el-group,
.formcard .wpforms-field,
.formcard p{ margin-bottom:20px; }

/* submit button */
.formcard input[type="submit"],
.formcard button[type="submit"],
.formcard .ff-btn-submit,
.formcard .wpforms-submit{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  height:52px;
  padding:0 34px !important;
  background:var(--red) !important;
  color:#fff !important;
  border:1px solid var(--red) !important;
  border-radius:var(--radius) !important;
  font-family:var(--font) !important;
  font-size:12px !important;
  font-weight:700 !important;
  letter-spacing:.085em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:none !important;
  transition:background-color .18s ease, border-color .18s ease;
}
.formcard input[type="submit"]:hover,
.formcard button[type="submit"]:hover,
.formcard .ff-btn-submit:hover,
.formcard .wpforms-submit:hover{
  background:var(--red-dark) !important;
  border-color:var(--red-dark) !important;
}

/* validation + success messages */
.formcard .ff-el-is-error .ff-el-form-control,
.formcard .wpforms-error{ border-color:var(--red) !important; }

.formcard .error,
.formcard .ff-el-is-error .text-danger,
.formcard .wpforms-error-container,
.formcard .wpcf7-not-valid-tip{
  font-size:13px !important;
  color:var(--red) !important;
  margin-top:7px;
}

.formcard .ff-message-success,
.formcard .wpforms-confirmation-container-full,
.formcard .wpcf7-response-output{
  font-size:14.5px !important;
  border:1px solid var(--line) !important;
  border-left:3px solid var(--red) !important;
  border-radius:0 3px 3px 0 !important;
  background:var(--soft) !important;
  color:var(--ink) !important;
  padding:16px 18px !important;
  margin:0 !important;
}

/* two fields side by side (Fluent Forms columns) */
.formcard .ff-t-cell{ padding-inline:0; }
.formcard .ff-t-container{ gap:18px; }


/* ---- contact responsive ---- */

@media (max-width:1040px){
  .contact{ padding:52px 0 60px; }
  .contact__grid{ grid-template-columns:1fr; gap:40px; }
  .pagehead{ padding:46px 0 42px; }
  .pagehead__title{ font-size:36px; }
}

@media (max-width:640px){
  .pagehead__title{ font-size:29px; }
  .pagehead__sub{ font-size:15.5px; }
  .formcard{ padding:26px 22px 30px; }
  .formcard__title{ font-size:22px; }
  .formcard input[type="submit"],
  .formcard button[type="submit"],
  .formcard .ff-btn-submit{ width:100%; }
}


/* =================================================================
   ABOUT TESTING PAGE
   ================================================================= */

/* ---- trust but verify ---- */

.verify-intro{ background:#fff; padding:66px 0 58px; }

.verify-intro__grid{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:56px;
  align-items:start;
}

.verify-intro__lead .section-title{
  font-size:38px;
  line-height:1.14;
  margin-bottom:0;
}

.verify-intro__body p{
  font-size:16px;
  line-height:1.82;
  color:#43434b;
  margin-bottom:20px;
}
.verify-intro__body p:last-child{ margin-bottom:0; }
.verify-intro__body p:first-child{
  font-size:17.5px;
  color:#2f2f36;
}

/* ---- the two labs ---- */

.labs{ background:var(--soft); padding:58px 0 62px; }

.labs__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
}

.labcard-big{
  background:#fff;
  border:1px solid var(--line);
  border-top:3px solid var(--red);
  border-radius:0 0 3px 3px;
  padding:32px 34px 34px;
}

.labcard-big__tag{
  display:inline-flex;
  align-items:center;
  padding:7px 13px;
  margin-bottom:18px;
  background:var(--red-tint);
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--red);
}

.labcard-big h3{
  font-size:25px;
  letter-spacing:-.018em;
  margin-bottom:14px;
}

.labcard-big > p{
  font-size:15px;
  line-height:1.78;
  color:#43434b;
  margin-bottom:22px;
}

.ticklist{ list-style:none; margin:0; padding:0; }
.ticklist li{
  position:relative;
  padding:9px 0 9px 30px;
  font-size:14px;
  line-height:1.55;
  color:#33333a;
  border-top:1px solid var(--line-soft);
}
.ticklist li::before{
  content:"";
  position:absolute;
  left:2px; top:15px;
  width:13px; height:8px;
  border-left:2.2px solid var(--red);
  border-bottom:2.2px solid var(--red);
  transform:rotate(-45deg);
}

.labs__note{
  margin-top:26px;
  padding:16px 20px;
  background:#fff;
  border:1px solid var(--line);
  border-left:3px solid #c7c7cf;
  border-radius:0 3px 3px 0;
  font-size:13.5px;
  line-height:1.7;
  color:var(--muted);
}

/* ---- the methods ---- */

.methods{ background:#fff; padding:58px 0 62px; }
.methods .section-head{ margin-bottom:38px; }

.methods__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
}

.method{
  padding:6px 30px;
  border-left:1px solid var(--line-soft);
}
.method:first-child{ border-left:0; padding-left:0; }
.method:last-child{ padding-right:0; }

.method__num{
  display:block;
  font-size:13px;
  font-weight:800;
  letter-spacing:.12em;
  color:var(--red);
  margin-bottom:14px;
}

.method h3{
  font-size:20px;
  letter-spacing:-.015em;
  margin-bottom:7px;
}

.method__full{
  font-size:12.5px !important;
  font-weight:600;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--muted) !important;
  line-height:1.5;
  margin-bottom:15px !important;
}

.method p{
  font-size:14.5px;
  line-height:1.78;
  color:#43434b;
}

/* ---- closing band ---- */

.verify-close{
  background:var(--black);
  color:#fff;
  padding:46px 0;
}

.verify-close__inner{
  display:flex;
  align-items:center;
  gap:34px;
}

.verify-close__icon{ flex:none; width:64px; height:66px; color:var(--red); }
.verify-close__icon svg{ width:100%; height:100%; display:block; }

.verify-close__text h2{
  font-size:26px;
  font-weight:700;
  color:#fff;
  line-height:1.28;
  letter-spacing:-.008em;
  margin-bottom:11px;
}
.verify-close__text p{
  font-size:14.5px;
  line-height:1.7;
  color:#c9c9d1;
  max-width:78ch;
}

/* ---- results section ---- */

.labresults{ background:var(--soft); padding:54px 0 66px; }
.labresults .section-head{ margin-bottom:26px; }

/* search */

.labsearch{
  display:flex;
  align-items:center;
  gap:12px;
  max-width:620px;
  margin:0 auto 40px;
}
.labsearch input[type="search"]{
  flex:1 1 auto;
  height:52px;
  font-family:var(--font);
  font-size:14.5px;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:0 16px;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.labsearch input[type="search"]:focus{
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(207,3,14,.10);
  outline:none;
}
.labsearch input::placeholder{ color:#9d9da5; }
.labsearch .btn{ flex:none; }
.labsearch__clear{
  flex:none;
  font-size:13px;
  color:var(--muted);
  white-space:nowrap;
}
.labsearch__clear:hover{ color:var(--red); }

/* grid */

.labgrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}

.labcard{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  border-radius:3px;
  padding:22px 22px 24px;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.labcard:hover{
  border-color:#d6d6de;
  box-shadow:0 14px 32px rgba(12,12,14,.08);
  transform:translateY(-2px);
}

.labcard__media{
  display:block;
  background:var(--soft);
  border:1px solid var(--line-soft);
  border-radius:3px;
  padding:14px;
  margin-bottom:18px;
}
.labcard__media img{
  width:100%;
  height:170px;
  object-fit:contain;
  margin-inline:auto;
}
.labcard__noimg{
  display:block;
  height:170px;
  background:repeating-linear-gradient(45deg,#f1f1f5,#f1f1f5 8px,#e9e9ef 8px,#e9e9ef 16px);
  border-radius:2px;
}

.labcard__title{
  font-size:16px;
  font-weight:800;
  line-height:1.4;
  letter-spacing:-.005em;
  margin-bottom:16px;
}
.labcard__title a{ color:var(--ink); transition:color .18s ease; }
.labcard__title a:hover{ color:var(--red); }

.labcard__rows{ margin:0 0 18px; }
.labcard__rows > div{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  padding:9px 0;
  border-bottom:1px solid var(--line-soft);
}
.labcard__rows dt{
  font-size:12.5px;
  color:var(--muted);
  white-space:nowrap;
}
.labcard__rows dd{
  margin:0;
  font-size:13.5px;
  font-weight:700;
  color:var(--ink);
  text-align:right;
  word-break:break-word;
}

.labcard__verified{
  display:inline-flex;
  align-items:center;
  gap:8px;
  align-self:flex-start;
  padding:7px 12px;
  margin-bottom:18px;
  background:var(--red-tint);
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:var(--red);
}
.labcard__verified svg{ width:14px; height:14px; flex:none; }

/* push the button to the bottom of every card */
.labcard__btn{ margin-top:auto; }

/* pagination */

.labpager{ margin-top:42px; }
.labpager ul{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  list-style:none;
  margin:0;
  padding:0;
}
.labpager a,
.labpager span{
  display:grid;
  place-items:center;
  min-width:42px;
  height:42px;
  padding:0 12px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  font-size:14px;
  font-weight:600;
  color:var(--ink);
  transition:background-color .18s ease, border-color .18s ease, color .18s ease;
}
.labpager a:hover{ border-color:var(--red); color:var(--red); }
.labpager span.current{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}
.labpager span.dots{ border-color:transparent; background:transparent; }

.labempty{
  max-width:520px;
  margin:0 auto;
  padding:52px 32px 46px;
  text-align:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:3px;
}
.labempty__icon{
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  margin:0 auto 22px;
  background:var(--red-tint);
  border-radius:8px;
  color:var(--red);
}
.labempty__icon svg{ width:30px; height:30px; }
.labempty h3{
  font-size:20px;
  letter-spacing:-.01em;
  margin-bottom:12px;
}
.labempty p{
  font-size:14.5px;
  line-height:1.72;
  color:#43434b;
  margin-bottom:24px;
}


/* =================================================================
   SINGLE PRODUCT — LAB PANEL
   ================================================================= */

.labpanel{
  background:#fff;
  border:1px solid var(--line);
  border-left:3px solid var(--red);
  border-radius:0 3px 3px 0;
  padding:24px 26px;
  margin:30px 0;
}

.labpanel__head{
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:18px;
}
.labpanel__head svg{ width:20px; height:20px; color:var(--red); flex:none; }
.labpanel__head h3{
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--ink);
}

.labpanel__rows{ margin:0 0 20px; }
.labpanel__rows > div{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  padding:11px 0;
  border-bottom:1px solid var(--line-soft);
}
.labpanel__rows dt{ font-size:13.5px; color:var(--muted); }
.labpanel__rows dd{
  margin:0;
  font-size:14px;
  font-weight:700;
  color:var(--ink);
  text-align:right;
}

.labpanel .btn{ height:46px; }

/* pending state */
.labpanel--pending{
  border-left-color:#c7c7cf;
  background:var(--soft);
}
.labpanel--pending p{
  font-size:14px;
  line-height:1.65;
  color:#43434b;
}
.labpanel--pending strong{ color:var(--ink); }


/* ---- about testing responsive ---- */

@media (max-width:1040px){
  .labgrid{ grid-template-columns:repeat(2,1fr); gap:22px; }
  .labresults{ padding:44px 0 54px; }

  .verify-intro{ padding:48px 0 44px; }
  .verify-intro__grid{ grid-template-columns:1fr; gap:26px; }
  .verify-intro__lead .section-title{ font-size:32px; }
  .verify-intro__lead .section-title br{ display:none; }

  .labs{ padding:44px 0 48px; }
  .labs__grid{ grid-template-columns:1fr; gap:20px; }
  .labcard-big{ padding:26px 26px 28px; }

  .methods{ padding:46px 0 50px; }
  .methods__grid{ grid-template-columns:1fr; gap:34px; }
  .method{ border-left:0; padding:0; }

  .verify-close{ padding:38px 0; }
  .verify-close__inner{ gap:24px; }
}

@media (max-width:640px){
  .labgrid{ grid-template-columns:1fr; }

  .verify-intro__lead .section-title{ font-size:27px; }
  .verify-intro__body p:first-child{ font-size:16px; }
  .labcard-big h3{ font-size:21px; }

  .verify-close__inner{ flex-direction:column; align-items:flex-start; gap:20px; }
  .verify-close__icon{ width:52px; height:54px; }
  .verify-close__text h2{ font-size:22px; }
  .labsearch{ flex-wrap:wrap; }
  .labsearch input[type="search"]{ flex:1 1 100%; }
  .labsearch .btn{ flex:1 1 auto; }
  .labcard__media img,
  .labcard__noimg{ height:150px; }
  .labpanel{ padding:20px; }
}


/* =================================================================
   HIDE THE PARENT THEME HERO ON WOOCOMMERCE + INNER PAGES
   The site renders its own .pagehead instead.
   ================================================================= */

.woocommerce .hero-section,
.woocommerce-page .hero-section,
.woocommerce .page-header,
.woocommerce-page .page-header,
.woocommerce header.entry-header,
.woocommerce-page header.entry-header,
.woocommerce .ct-container > .page-title,
.woocommerce-page .ct-container > .page-title,
.woocommerce-products-header{
  display:none !important;
}

/* the theme adds big top padding for its hero - remove it */
.woocommerce-page #main-container,
.woocommerce-page .ct-container,
.woocommerce-page .site-main,
.woocommerce .site-main{
  padding-top:0 !important;
}


/* =================================================================
   WOOCOMMERCE ARCHIVE LAYOUT
   ================================================================= */

.woocommerce-page .site-main,
.woocommerce .site-main{
  background:var(--soft);
}

/* give the shop grid breathing room inside the grey band */
.woocommerce .woocommerce-notices-wrapper,
.woocommerce-page .woocommerce-notices-wrapper{ padding-top:22px; }

/* toolbar row: result count + sorting */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count{
  margin:0;
  font-size:12px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--muted);
}

.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select{
  height:48px;
  font-family:var(--font);
  font-size:14px;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:0 14px;
  cursor:pointer;
}
.woocommerce .woocommerce-ordering select:focus{
  border-color:var(--red);
  outline:none;
}

/* archive description under the title, if a category has one */
.woocommerce .term-description{
  max-width:70ch;
  margin:0 auto 26px;
  text-align:center;
  font-size:15px;
  line-height:1.75;
  color:#43434b;
}


/* =================================================================
   WOOCOMMERCE PAGINATION — brand colors
   ================================================================= */

.woocommerce nav.woocommerce-pagination ul,
.woocommerce-page nav.woocommerce-pagination ul{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:8px;
  border:0 !important;
  margin:0;
  padding:0;
}

.woocommerce nav.woocommerce-pagination ul li,
.woocommerce-page nav.woocommerce-pagination ul li{
  border:0 !important;
  margin:0 !important;
  overflow:visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce-page nav.woocommerce-pagination ul li a,
.woocommerce-page nav.woocommerce-pagination ul li span{
  display:grid !important;
  place-items:center;
  min-width:44px;
  height:44px;
  padding:0 13px !important;
  background:#fff !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  font-family:var(--font);
  font-size:14px !important;
  font-weight:600 !important;
  color:var(--ink) !important;
  line-height:1 !important;
  transition:background-color .18s ease, border-color .18s ease, color .18s ease;
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce-page nav.woocommerce-pagination ul li a:hover{
  background:#fff !important;
  border-color:var(--red) !important;
  color:var(--red) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a.current,
.woocommerce-page nav.woocommerce-pagination ul li span.current{
  background:var(--red) !important;
  border-color:var(--red) !important;
  color:#fff !important;
}

/* the "..." gap */
.woocommerce nav.woocommerce-pagination ul li span.dots,
.woocommerce-page nav.woocommerce-pagination ul li span.dots{
  background:transparent !important;
  border-color:transparent !important;
  color:var(--muted) !important;
}

/* prev / next arrows */
.woocommerce nav.woocommerce-pagination ul li a.prev,
.woocommerce nav.woocommerce-pagination ul li a.next,
.woocommerce-page nav.woocommerce-pagination ul li a.prev,
.woocommerce-page nav.woocommerce-pagination ul li a.next{
  gap:8px;
  padding:0 20px !important;
  font-size:12px !important;
  font-weight:700 !important;
  letter-spacing:.085em;
  text-transform:uppercase;
}

/* Blocksy renders its own prev/next buttons outside the list */
.woocommerce .ct-pagination .page-numbers,
.ct-pagination .page-numbers{
  background:#fff !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  color:var(--ink) !important;
}
.woocommerce .ct-pagination .page-numbers:hover,
.ct-pagination .page-numbers:hover{
  border-color:var(--red) !important;
  color:var(--red) !important;
}
.woocommerce .ct-pagination .page-numbers.current,
.ct-pagination .page-numbers.current{
  background:var(--red) !important;
  border-color:var(--red) !important;
  color:#fff !important;
}


/* =================================================================
   CATCH-ALL: remove the parent theme's blue accent
   ================================================================= */

:root{
  --theme-palette-color-1:var(--red);
  --theme-palette-color-2:var(--red-dark);
  --theme-link-initial-color:var(--red);
  --theme-link-hover-color:var(--red-dark);
  --theme-button-background-initial-color:var(--red);
  --theme-button-background-hover-color:var(--red-dark);
  --paletteColor1:var(--red);
  --paletteColor2:var(--red-dark);
  --linkInitialColor:var(--red);
  --linkHoverColor:var(--red-dark);
}

/* focus rings */
.woocommerce input:focus,
.woocommerce select:focus,
.woocommerce textarea:focus,
.woocommerce-page input:focus,
.woocommerce-page select:focus,
.woocommerce-page textarea:focus{
  border-color:var(--red) !important;
  box-shadow:0 0 0 3px rgba(207,3,14,.10) !important;
  outline:none !important;
}

/* generic links inside Woo content */
.woocommerce a:not(.button):not(.btn):hover,
.woocommerce-page a:not(.button):not(.btn):hover{
  color:var(--red);
}


/* =================================================================
   PRODUCT CAROUSEL (home page)
   ================================================================= */

.ledger{ padding:52px 0 62px; background:var(--soft); }
.ledger .section-head{ margin-bottom:34px; }

.ledger__empty{
  text-align:center;
  font-size:15px;
  color:var(--muted);
  padding:30px 0;
}

.carousel{ position:relative; }

/* ---- nav row: arrows + dots ---- */

.carousel__nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin-top:28px;
}

.carousel__arrow{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  padding:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  color:var(--ink);
  cursor:pointer;
  transition:background-color .18s ease, border-color .18s ease, color .18s ease;
}
.carousel__arrow svg{ width:19px; height:19px; }
.carousel__arrow:hover{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}
.carousel__arrow:focus-visible{
  outline:none;
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(207,3,14,.14);
}

.carousel__dots{
  display:flex;
  align-items:center;
  gap:9px;
}

.carousel__dot{
  width:9px;
  height:9px;
  padding:0;
  background:#cfcfd8;
  border:0;
  border-radius:999px;
  cursor:pointer;
  transition:background-color .2s ease, width .2s ease;
}
.carousel__dot:hover{ background:#a9a9b5; }
.carousel__dot.is-active{
  width:26px;
  background:var(--red);
}
.carousel__dot:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(207,3,14,.18);
}

/* ---- carousel responsive ---- */

@media (max-width:1040px){
  .carousel__slide .ledger-row__grid{
    grid-template-columns:1fr 1fr;
    row-gap:26px;
    padding:24px;
  }
  .ledger-row__media{ max-width:280px; }
  .carousel__slide .batchcard{ grid-column:1 / -1; }
  .ledger-row__info .product__headline h3{ font-size:26px; }
}

@media (max-width:640px){
  .ledger{ padding:40px 0 48px; }
  .carousel__slide .ledger-row__grid{
    grid-template-columns:1fr;
    padding:18px;
  }
  .ledger-row__media{ max-width:none; }
  .ledger-row__info .product__headline h3{ font-size:23px; }
  .ledger-row__cart,
  .ledger-row__cart .btn{ width:100%; }

  .carousel__nav{ gap:16px; margin-top:22px; }
  .carousel__arrow{ width:44px; height:44px; }
}


/* =================================================================
   MINIMUM ORDER NOTICES
   ================================================================= */

.cp-minbar{
  background:var(--red-tint);
  border-left:3px solid var(--red);
  border-radius:0 3px 3px 0;
  padding:16px 20px;
  margin-bottom:24px;
  font-size:14px;
  line-height:1.65;
  color:#43434b;
}
.cp-minbar strong{ color:var(--red); font-weight:700; }

.cp-minnote{
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:16px;
}


/* ---- ledger responsive ---- */

@media (max-width:1040px){
  .ledger-row__grid{ grid-template-columns:1fr 1fr; row-gap:26px; }
  .ledger-row__media{ max-width:280px; }
  .ledger-row .batchcard{ grid-column:1 / -1; }
  .ledger-row__info .product__headline h3{ font-size:27px; }
}

@media (max-width:640px){
  .ledger{ padding-top:40px; }
  .ledger-row{ padding:28px 0; }
  .ledger-row__grid{ grid-template-columns:1fr; }
  .ledger-row__media{ max-width:none; }
  .ledger-row__info .product__headline h3{ font-size:24px; }
  .ledger-row__cart,
  .ledger-row__cart .btn{ width:100%; }
}


/* =================================================================
   CART / CHECKOUT POLISH
   ================================================================= */

/* ---- "View cart" link that appears after Add to Cart ---- */

.woocommerce a.added_to_cart,
.woocommerce-page a.added_to_cart{
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:100%;
  height:46px;
  margin-top:8px !important;
  padding:0 22px !important;
  background:#fff !important;
  color:var(--ink) !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  font-family:var(--font);
  font-size:12px !important;
  font-weight:700 !important;
  letter-spacing:.085em;
  text-transform:uppercase;
  transition:border-color .18s ease, color .18s ease;
}
.woocommerce a.added_to_cart:hover,
.woocommerce-page a.added_to_cart:hover{
  border-color:var(--red) !important;
  color:var(--red) !important;
  background:#fff !important;
}

/* ---- UPDATE CART button: grey when nothing changed ---- */

.woocommerce .cart button[name="update_cart"],
.woocommerce .cart input[name="update_cart"]{
  background:#fff !important;
  color:var(--ink) !important;
  border:1px solid var(--line) !important;
}
.woocommerce .cart button[name="update_cart"]:hover:not(:disabled),
.woocommerce .cart input[name="update_cart"]:hover:not(:disabled){
  border-color:var(--red) !important;
  color:var(--red) !important;
}
.woocommerce .cart button[name="update_cart"]:disabled,
.woocommerce .cart input[name="update_cart"]:disabled{
  background:#f1f1f5 !important;
  color:#a8a8b2 !important;
  border-color:var(--line) !important;
  cursor:not-allowed;
  opacity:1 !important;
}

/* ---- notices ---- */

.woocommerce-error,
.woocommerce-message,
.woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error{
  display:flex;
  align-items:flex-start;
  gap:14px;
  background:#fff !important;
  border:1px solid var(--line) !important;
  border-left:3px solid var(--red) !important;
  border-radius:0 3px 3px 0 !important;
  padding:18px 22px !important;
  margin-bottom:24px !important;
  font-family:var(--font);
  font-size:14.5px !important;
  line-height:1.65;
  color:var(--ink) !important;
  list-style:none;
}
.woocommerce-error li,
.woocommerce-message li{ list-style:none; margin:0; }

.woocommerce-message{ border-left-color:#2e9e5b !important; }
.woocommerce-info{ border-left-color:#c7c7cf !important; }

.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before{
  position:static !important;
  color:var(--red) !important;
  font-size:16px;
}
.woocommerce-message::before{ color:#2e9e5b !important; }

/* button inside a notice */
.woocommerce-message .button,
.woocommerce-error .button{
  margin-left:auto;
  flex:none;
}

/* ---- disabled checkout button ---- */

.btn--locked,
.woocommerce .checkout-button.btn--locked,
.wc-proceed-to-checkout a.checkout-button.btn--locked{
  background:#d8d8de !important;
  border-color:#d8d8de !important;
  color:#fff !important;
  cursor:not-allowed;
  pointer-events:none;
}

.cp-lockmsg{
  display:block;
  margin-top:12px;
  font-size:13px;
  line-height:1.6;
  color:var(--muted);
  text-align:center;
}


/* =================================================================
   NOTICE BUTTONS (Undo, View cart, Continue shopping)
   ================================================================= */

.woocommerce-message a.button,
.woocommerce-message .button,
.woocommerce-error a.button,
.woocommerce-info a.button,
.woocommerce a.restore-item,
.woocommerce-message a.restore-item{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  height:40px;
  padding:0 20px !important;
  background:#fff !important;
  color:var(--ink) !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  font-family:var(--font) !important;
  font-size:11.5px !important;
  font-weight:700 !important;
  letter-spacing:.085em;
  text-transform:uppercase;
  text-decoration:none !important;
  box-shadow:none !important;
  transition:border-color .18s ease, color .18s ease;
}

.woocommerce-message a.button:hover,
.woocommerce-error a.button:hover,
.woocommerce a.restore-item:hover{
  background:#fff !important;
  border-color:var(--red) !important;
  color:var(--red) !important;
}


/* =================================================================
   CART / CHECKOUT RESPONSIVE
   ================================================================= */

@media (max-width:900px){

  /* stack the cart totals under the table */
  .woocommerce .cart-collaterals,
  .woocommerce-page .cart-collaterals{
    width:100% !important;
    float:none !important;
  }
  .woocommerce .cart-collaterals .cart_totals,
  .woocommerce-page .cart-collaterals .cart_totals{
    width:100% !important;
    float:none !important;
  }

  .woocommerce table.shop_table_responsive,
  .woocommerce-page table.shop_table_responsive{ width:100% !important; }

  /* coupon row stacks */
  .woocommerce .cart .actions .coupon{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    width:100%;
    margin-bottom:14px;
  }
  .woocommerce .cart .actions .coupon input#coupon_code{
    flex:1 1 160px;
    width:auto !important;
    height:46px;
  }
  .woocommerce .cart .actions .coupon .button{ flex:0 0 auto; }
  .woocommerce .cart .actions > .button{ width:100%; }
}

@media (max-width:640px){

  /* cart table rows become cards */
  .woocommerce table.shop_table_responsive tr,
  .woocommerce-page table.shop_table_responsive tr{
    display:block;
    background:#fff;
    border:1px solid var(--line);
    border-radius:3px;
    margin-bottom:14px;
    padding:8px 14px;
  }
  .woocommerce table.shop_table_responsive td,
  .woocommerce-page table.shop_table_responsive td{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    text-align:right !important;
    border:0 !important;
    border-bottom:1px solid var(--line-soft) !important;
    padding:12px 0 !important;
  }
  .woocommerce table.shop_table_responsive td:last-child{ border-bottom:0 !important; }

  .woocommerce table.shop_table_responsive td::before,
  .woocommerce-page table.shop_table_responsive td::before{
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.09em;
    text-transform:uppercase;
    color:var(--muted);
  }

  .woocommerce td.product-thumbnail img{ width:70px; margin-left:auto; }

  /* checkout form fields full width */
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last,
  .woocommerce-page form .form-row-first,
  .woocommerce-page form .form-row-last{
    width:100% !important;
    float:none !important;
    margin-right:0 !important;
  }

  .woocommerce #order_review,
  .woocommerce #customer_details,
  .woocommerce-page #order_review,
  .woocommerce-page #customer_details{
    width:100% !important;
    float:none !important;
  }

  /* notice buttons drop below the text */
  .woocommerce-message,
  .woocommerce-error,
  .woocommerce-info{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .woocommerce-message .button,
  .woocommerce-error .button{ margin-left:0; }
}




/* =================================================================
   QUANTITY STEPPER
   Uses the theme's own markup from
   woocommerce/global/quantity-input.php
   ================================================================= */

.cp-qty{
  display:inline-flex;
  align-items:center;
  height:46px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  vertical-align:middle;
}

.cp-qty__btn{
  flex:0 0 42px;
  display:grid;
  place-items:center;
  width:42px;
  height:44px;
  margin:0;
  padding:0;
  background:#fff;
  color:var(--muted);
  border:0;
  border-radius:0;
  box-shadow:none;
  font-family:var(--font);
  font-size:19px;
  font-weight:400;
  line-height:1;
  cursor:pointer;
  user-select:none;
  transition:background-color .15s ease, color .15s ease;
}
.cp-qty__btn:hover{
  background:var(--red-tint);
  color:var(--red);
}
.cp-qty__btn:active{ background:#fbd9dc; }

.cp-qty__input{
  flex:0 0 54px;
  width:54px;
  height:44px;
  margin:0;
  padding:0;
  border:0;
  border-left:1px solid var(--line-soft);
  border-right:1px solid var(--line-soft);
  border-radius:0;
  background:#fff;
  box-shadow:none;
  outline:none;
  text-align:center;
  font-family:var(--font);
  font-size:15px;
  font-weight:700;
  color:var(--ink);
  -moz-appearance:textfield;
  appearance:textfield;
}
.cp-qty__input:focus{
  box-shadow:none;
  background:#fff;
}
.cp-qty__input::-webkit-outer-spin-button,
.cp-qty__input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

/* fixed-quantity products */
.cp-qty--static{ padding:0 18px; }
.cp-qty__value{
  font-size:15px;
  font-weight:700;
  color:var(--ink);
}

/* neutralise the parent theme's own stepper wrapper */
.woocommerce .quantity,
.woocommerce-page .quantity,
.ct-quantity{
  border:0 !important;
  background:none !important;
  padding:0 !important;
  margin:0 !important;
  height:auto !important;
  min-width:0 !important;
  overflow:visible !important;
  display:inline-block !important;
}

td.product-quantity{ min-width:150px; }

/* single product page: stepper and button on one line */
.woocommerce div.product form.cart{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
}
.woocommerce div.product form.cart .cp-qty{ margin:0; }
.woocommerce div.product form.cart .button{ margin:0 !important; }

@media (max-width:640px){
  .woocommerce div.product form.cart{ gap:12px; }
  .woocommerce div.product form.cart .button{ flex:1 1 100%; }
}


/* =================================================================
   CART TABLE SPACING
   ================================================================= */

.woocommerce table.shop_table,
.woocommerce-page table.shop_table{
  background:#fff;
  border:1px solid var(--line) !important;
  border-radius:3px !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  overflow:hidden;
  margin-bottom:32px;
}

/* header row */
.woocommerce table.shop_table thead th,
.woocommerce-page table.shop_table thead th{
  padding:20px 22px !important;
  background:var(--soft);
  border-bottom:1px solid var(--line) !important;
  font-size:11.5px !important;
  font-weight:700 !important;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--ink);
}

/* body cells */
.woocommerce table.shop_table td,
.woocommerce-page table.shop_table td{
  padding:24px 22px !important;
  border-top:0 !important;
  border-bottom:1px solid var(--line-soft) !important;
  vertical-align:middle;
}
.woocommerce table.shop_table tbody tr:last-child td{
  border-bottom:1px solid var(--line-soft) !important;
}

/* product image */
.woocommerce td.product-thumbnail{ width:110px; }
.woocommerce td.product-thumbnail img{
  width:84px;
  height:auto;
  border:1px solid var(--line-soft);
  border-radius:3px;
}

/* product name */
.woocommerce td.product-name{ padding-left:6px !important; }
.woocommerce td.product-name a{
  font-size:15.5px;
  font-weight:700;
  line-height:1.45;
  color:var(--ink);
  transition:color .18s ease;
}
.woocommerce td.product-name a:hover{ color:var(--red); }
.woocommerce td.product-name .woocommerce-Price-amount{
  display:block;
  margin-top:7px;
  font-size:14px;
  font-weight:500;
  color:var(--muted);
}

/* price / subtotal columns */
.woocommerce td.product-price,
.woocommerce td.product-subtotal{
  font-size:15.5px;
  font-weight:700;
  color:var(--ink);
  text-align:right;
}
.woocommerce th.product-subtotal,
.woocommerce th.product-price{ text-align:right !important; }

/* quantity column */
.woocommerce td.product-quantity,
.woocommerce th.product-quantity{ text-align:center !important; }

/* remove (bin) button */
.woocommerce td.product-remove{ width:60px; text-align:center; }
.woocommerce a.remove{
  display:inline-grid !important;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:var(--radius);
  color:var(--muted) !important;
  font-size:18px;
  line-height:1;
  transition:background-color .16s ease, color .16s ease;
}
.woocommerce a.remove:hover{
  background:var(--red-tint) !important;
  color:var(--red) !important;
}

/* actions row (coupon + update cart) */
.woocommerce table.shop_table td.actions,
.woocommerce-page table.shop_table td.actions{
  padding:22px !important;
  background:var(--soft);
  border-bottom:0 !important;
}

.woocommerce .cart .actions .coupon{
  display:inline-flex;
  align-items:center;
  gap:12px;
}
.woocommerce .cart .actions .coupon input#coupon_code{
  height:48px;
  min-width:200px;
  padding:0 15px !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  font-family:var(--font);
  font-size:14.5px;
}
.woocommerce .cart .actions .coupon input#coupon_code:focus{
  border-color:var(--red) !important;
  outline:none;
}
.woocommerce .cart .actions .coupon .button,
.woocommerce .cart .actions > .button{
  height:48px;
  padding:0 26px !important;
}

/* ---- cart totals box ---- */

.woocommerce .cart_totals,
.woocommerce-page .cart_totals{
  background:#fff;
  border:1px solid var(--line);
  border-radius:3px;
  padding:28px 28px 30px;
}

.woocommerce .cart_totals h2{
  font-size:19px;
  letter-spacing:-.01em;
  margin-bottom:20px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line-soft);
}

.woocommerce .cart_totals table.shop_table{
  border:0 !important;
  margin-bottom:24px;
}
.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td{
  padding:14px 0 !important;
  background:none !important;
  border-bottom:1px solid var(--line-soft) !important;
}
.woocommerce .cart_totals table.shop_table th{
  font-size:11.5px !important;
  letter-spacing:.1em;
  color:var(--muted);
}
.woocommerce .cart_totals table.shop_table td{
  text-align:right;
  font-size:15px;
  font-weight:700;
  color:var(--ink);
}
.woocommerce .cart_totals tr.order-total td{
  font-size:20px;
  font-weight:800;
}

.woocommerce .wc-proceed-to-checkout{ padding:0 !important; }


/* ---- cart table responsive ---- */

@media (max-width:640px){
  .woocommerce table.shop_table thead{ display:none; }

  .woocommerce table.shop_table td,
  .woocommerce-page table.shop_table td{
    padding:14px 16px !important;
  }
  .woocommerce table.shop_table td.actions{ padding:18px 16px !important; }

  .woocommerce td.product-thumbnail img{ width:64px; }

  .woocommerce .cart .actions .coupon{
    display:flex;
    flex-wrap:wrap;
    width:100%;
  }
  .woocommerce .cart .actions .coupon input#coupon_code{
    flex:1 1 150px;
    min-width:0;
  }

  .woocommerce .cart_totals{ padding:22px 20px 24px; }
}

/* minus button greyed out at the minimum */
.cp-qty__btn.is-disabled{
  color:#c9c9d1;
  cursor:not-allowed;
}
.cp-qty__btn.is-disabled:hover{
  background:#fff;
  color:#c9c9d1;
}


/* =================================================================
   CHECKOUT — ORDER REVIEW + PAYMENT
   ================================================================= */

/* ---- order review table ---- */

.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order{
  background:#fff;
  border:1px solid var(--line);
  border-radius:3px;
  overflow:hidden;
}

.woocommerce-checkout table.shop_table{
  border:0 !important;
  border-radius:0 !important;
  margin-bottom:0 !important;
}

.woocommerce-checkout table.shop_table thead th{
  padding:18px 22px !important;
  background:var(--soft);
  border-bottom:1px solid var(--line) !important;
}

.woocommerce-checkout table.shop_table td,
.woocommerce-checkout table.shop_table th{
  padding:18px 22px !important;
  border-bottom:1px solid var(--line-soft) !important;
}

.woocommerce-checkout td.product-name{
  font-size:14.5px;
  line-height:1.55;
  color:var(--ink);
}
.woocommerce-checkout td.product-name .product-quantity{
  font-weight:700;
  color:var(--red);
}

.woocommerce-checkout tr.order-total th,
.woocommerce-checkout tr.order-total td{
  border-bottom:0 !important;
  font-size:19px;
  font-weight:800;
  color:var(--ink);
}

/* ---- payment box ---- */

#payment,
.woocommerce-checkout #payment{
  background:#fff !important;
  border:1px solid var(--line);
  border-radius:3px;
  margin-top:24px;
  padding:0 !important;
}

#payment ul.payment_methods,
.woocommerce-checkout #payment ul.payment_methods{
  padding:8px 22px !important;
  margin:0 !important;
  border-bottom:1px solid var(--line-soft) !important;
  list-style:none;
}

/* hide the empty spacer WooCommerce prints above the methods */
#payment ul.payment_methods > li:empty,
#payment ul.payment_methods li.woocommerce-notice:empty,
#payment > .woocommerce-NoticeGroup:empty,
.woocommerce-checkout .woocommerce-NoticeGroup:empty,
.woocommerce-checkout-review-order + div:empty{
  display:none !important;
}

#payment ul.payment_methods li{
  padding:18px 0 !important;
  margin:0 !important;
  border-bottom:1px solid var(--line-soft);
  background:none !important;
  list-style:none;
}
#payment ul.payment_methods li:last-child{ border-bottom:0; }

#payment ul.payment_methods li label{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:15px !important;
  font-weight:700 !important;
  color:var(--ink) !important;
  letter-spacing:0;
  text-transform:none;
  cursor:pointer;
  margin:0 !important;
}

#payment ul.payment_methods li img{
  max-height:32px;
  width:auto;
  margin:0 0 0 auto !important;
  float:right;
}

/* ---- payment method description box ---- */

#payment div.payment_box,
.woocommerce-checkout #payment div.payment_box{
  position:relative;
  background:var(--soft) !important;
  border:1px solid var(--line-soft);
  border-left:3px solid var(--red);
  border-radius:0 3px 3px 0 !important;
  padding:16px 20px !important;
  margin:14px 0 4px !important;
  font-size:14px;
  line-height:1.7;
  color:#43434b;
}
#payment div.payment_box::before{ display:none !important; }
#payment div.payment_box p:last-child{ margin-bottom:0; }

/* ---- place order button ---- */

#payment .form-row.place-order,
.woocommerce-checkout #payment .place-order{
  padding:22px !important;
  margin:0 !important;
  background:var(--soft);
  border-top:1px solid var(--line-soft);
}

#place_order,
.woocommerce #place_order{
  width:100%;
  height:56px !important;
  font-size:13px !important;
  letter-spacing:.1em;
}

/* terms checkbox row */
.woocommerce-terms-and-conditions-wrapper{
  margin-bottom:16px;
  font-size:13.5px;
  line-height:1.65;
}

/* ---- checkout form fields ---- */

.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading{
  font-size:19px;
  letter-spacing:-.01em;
  margin-bottom:20px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line-soft);
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2{ margin-bottom:26px; }

.woocommerce form .form-row label{
  font-size:12px !important;
  font-weight:700 !important;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink) !important;
  margin-bottom:8px;
}
.woocommerce form .form-row .required{ color:var(--red); border:0; }

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single{
  height:48px;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  font-family:var(--font);
  font-size:14.5px;
}
.woocommerce form .form-row textarea{ height:auto; min-height:110px; }

.select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:46px !important;
  padding-left:14px;
  color:var(--ink);
}
.select2-container--default .select2-selection--single .select2-selection__arrow{ height:46px; }
.select2-container--default .select2-results__option--highlighted[aria-selected]{
  background:var(--red) !important;
}


@media (max-width:900px){
  .woocommerce-checkout table.shop_table td,
  .woocommerce-checkout table.shop_table th{ padding:14px 16px !important; }
  #payment ul.payment_methods{ padding:6px 16px !important; }
  #payment .form-row.place-order{ padding:16px !important; }
}


/* =================================================================
   PRODUCT CAROUSEL  (single, consolidated block)
   One card at a time. Arrows sit at the sides of the card.
   ================================================================= */

.ledger{ padding:64px 0 78px; background:var(--soft); }
.ledger .section-head{ margin-bottom:30px; }

.ledger__empty{
  text-align:center;
  font-size:15px;
  color:var(--muted);
  padding:30px 0;
}

.carousel{
  position:relative;
  display:flex;
  flex-direction:column;
}

/* ---- drag hint ---- */

.carousel__hint{
  align-self:center;
  display:inline-flex;
  align-items:center;
  gap:11px;
  margin:0 auto 20px;
  padding:9px 18px 9px 14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  transition:opacity .5s ease, transform .5s ease;
}
.carousel__hint-icon{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  color:var(--red);
}
.carousel__hint-icon svg{ width:19px; height:19px; }
.carousel__hint:not(.is-done) .carousel__hint-icon{
  animation:cpSwipe 2.4s ease-in-out infinite;
}
@keyframes cpSwipe{
  0%,100% { transform:translateX(-3px); }
  50%     { transform:translateX(5px); }
}
.carousel__hint.is-done{
  opacity:0;
  transform:translateY(-6px);
  pointer-events:none;
}

/* ---- scroll track: one full-width card at a time ---- */

.carousel__viewport{
  display:flex;
  gap:0;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  -ms-overflow-style:none;
  touch-action:pan-y;
  overscroll-behavior-x:contain;
  padding:14px 0 22px;
  margin:-14px 0 -22px;
  cursor:grab;
}
.carousel__viewport::-webkit-scrollbar{ display:none; }
.carousel__viewport.is-dragging{ cursor:grabbing; scroll-behavior:auto; scroll-snap-type:none; }
.carousel__viewport.is-dragging *{ user-select:none; }
.carousel__viewport img{ -webkit-user-drag:none; user-select:none; }

.carousel__track{ display:contents; }

.carousel__slide{
  flex:0 0 100%;
  max-width:100%;
  min-width:100%;
  scroll-snap-align:center;
}

/* ---- the card ---- */

.slide__card{
  height:100%;
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 2px 6px rgba(12,12,14,.03);
  cursor:default;
  transition:box-shadow .35s ease, border-color .35s ease;
}
.carousel__slide:hover .slide__card{
  border-color:#dcdce3;
  box-shadow:0 20px 46px rgba(12,12,14,.09);
}
.carousel__viewport.is-dragging .slide__card{ transition:none; }

/* everything inside the card stays clickable */
.carousel__slide a,
.carousel__slide button,
.batchstrip__btn,
.slide__buy .btn,
.slide__cart button{
  pointer-events:auto;
  position:relative;
  z-index:2;
}

.slide__top{
  display:grid;
  grid-template-columns:1fr 380px;
  gap:48px;
  padding:46px 48px 40px;
  align-items:center;
}

/* ---- left column ---- */

.slide__info{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.slide__info .eyebrow{ margin-bottom:16px; }

.slide__headline{
  display:flex;
  align-items:flex-start;
  gap:18px;
  margin-bottom:14px;
}
.slide__headline h3{
  font-size:38px;
  font-weight:800;
  letter-spacing:-.024em;
  line-height:1.1;
  margin:0;
}
.slide__headline h3 a{ color:var(--ink); transition:color .25s ease; }
.slide__headline h3 a:hover{ color:var(--red); }
.slide__headline .pill{ flex:none; margin-top:8px; }

.slide__subtitle{
  font-size:13px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:20px;
}

.slide__desc{
  font-size:16px;
  line-height:1.8;
  color:#43434b;
  max-width:54ch;
  margin-bottom:26px;
}

.slide__specs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px 34px;
  margin-bottom:30px;
}
.slide__specs li{ padding:6px 0; font-size:14.5px; }

.slide__buy{
  margin-top:auto;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px 28px;
  padding-top:26px;
  border-top:1px solid var(--line-soft);
}

.slide__price{
  display:flex;
  align-items:baseline;
  gap:10px;
  font-size:30px;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--ink);
  margin:0;
}
.slide__price del{ color:var(--muted); font-weight:500; font-size:20px; }
.slide__price ins{ color:var(--red); text-decoration:none; }
.slide__unit{
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--muted);
}

.slide__buy .product__actions{ margin:0; gap:14px; }
.slide__buy .btn{ height:52px; padding:0 30px; }
.slide__cart{ margin:0; }

/* ---- right column: image ---- */

.slide__media{
  display:block;
  align-self:center;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:5px;
  padding:14px;
  overflow:hidden;
}
.slide__media img{
  width:100%;
  height:auto;
  display:block;
  border-radius:3px;
  transition:transform .5s cubic-bezier(.22,.61,.36,1);
}
.slide__media:hover img{ transform:scale(1.035); }

/* ---- bottom batch strip ---- */

.batchstrip{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px 38px;
  padding:16px 48px;
  background:var(--soft);
  border-top:1px solid var(--line);
}
.batchstrip__item{
  display:flex;
  align-items:baseline;
  gap:10px;
  min-width:0;
}
.batchstrip__label{
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted);
  white-space:nowrap;
}
.batchstrip__value{
  font-size:14px;
  font-weight:700;
  color:var(--ink);
}
.batchstrip__value .pill{ font-size:10.5px; padding:5px 11px; }

.batchstrip__btn{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-left:auto;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--red);
  transition:gap .25s ease, opacity .25s ease;
}
.batchstrip__btn svg{ width:15px; height:15px; flex:none; }
.batchstrip__btn:hover{ gap:13px; opacity:.78; }
.batchstrip__btn--off{ color:#a8a8b2; pointer-events:none; }

/* pending pill */
.pill--muted{
  color:var(--muted);
  background:#eeeef2;
  border-radius:999px;
  padding:7px 14px;
  font-size:11.5px;
}

/* ---- arrows at the sides, dots below ---- */

.carousel__nav{
  display:block;
  margin-top:22px;
  text-align:center;
}

.carousel__arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:54px;
  height:54px;
  padding:0;
  display:grid;
  place-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--ink);
  cursor:pointer;
  box-shadow:0 8px 22px rgba(12,12,14,.10);
  transition:background-color .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease, opacity .25s ease;
}
.carousel__arrow svg{ width:20px; height:20px; }
.carousel__arrow--prev{ left:-26px; }
.carousel__arrow--next{ right:-26px; }

.carousel__arrow:hover:not(:disabled){
  background:var(--red);
  border-color:var(--red);
  color:#fff;
  box-shadow:0 12px 28px rgba(207,3,14,.26);
}
.carousel__arrow:disabled{
  opacity:.3;
  cursor:not-allowed;
  box-shadow:none;
}
.carousel__arrow:focus-visible{
  outline:none;
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(207,3,14,.18);
}

.carousel__dots{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.carousel__dot{
  width:10px;
  height:10px;
  padding:0;
  background:#d3d3db;
  border:0;
  border-radius:999px;
  cursor:pointer;
  transition:background-color .3s ease, width .35s cubic-bezier(.22,.61,.36,1);
}
.carousel__dot:hover{ background:#a9a9b5; }
.carousel__dot.is-active{ width:32px; background:var(--red); }
.carousel__dot:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(207,3,14,.18);
}

@media (prefers-reduced-motion:reduce){
  .carousel__hint-icon{ animation:none !important; }
  .carousel__viewport{ scroll-behavior:auto !important; }
}

/* ---- responsive ---- */

@media (max-width:1240px){
  .slide__top{
    grid-template-columns:1fr 320px;
    gap:38px;
    padding:38px 38px 34px;
  }
  .slide__headline h3{ font-size:32px; }
  .batchstrip{ padding:16px 38px; }
  .carousel__arrow--prev{ left:-18px; }
  .carousel__arrow--next{ right:-18px; }
}

@media (max-width:1040px){
  .ledger{ padding:52px 0 62px; }
  .slide__top{
    grid-template-columns:1fr 270px;
    gap:30px;
    padding:30px 30px 28px;
  }
  .slide__headline h3{ font-size:27px; }
  .slide__desc{ font-size:15px; }
  .slide__price{ font-size:26px; }
  .batchstrip{ padding:14px 30px; gap:10px 26px; }

  .carousel__arrow{ width:48px; height:48px; }
  .carousel__arrow svg{ width:18px; height:18px; }
  .carousel__arrow--prev{ left:-8px; }
  .carousel__arrow--next{ right:-8px; }
}

@media (max-width:768px){
  .ledger{ padding:42px 0 52px; }
  .carousel__slide:hover .slide__card{ box-shadow:0 2px 6px rgba(12,12,14,.03); }

  .slide__top{
    grid-template-columns:1fr;
    gap:24px;
    padding:22px;
  }
  .slide__media{ order:-1; max-width:240px; margin-inline:auto; }
  .slide__headline{ gap:12px; }
  .slide__headline h3{ font-size:22px; }
  .slide__headline .pill{ margin-top:3px; }
  .slide__desc{ max-width:none; font-size:14.5px; margin-bottom:20px; }
  .slide__specs{ grid-template-columns:1fr; gap:0; margin-bottom:22px; }

  .slide__buy{ flex-direction:column; align-items:stretch; gap:16px; padding-top:20px; }
  .slide__buy .product__actions{ flex-direction:column; }
  .slide__buy .btn{ width:100%; }

  .batchstrip{ padding:16px 20px; gap:12px 20px; }
  .batchstrip__btn{ margin-left:0; width:100%; }

  /* arrows move below the card on phones */
  .carousel__nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    margin-top:20px;
  }
  .carousel__arrow{
    position:static;
    transform:none;
    width:44px;
    height:44px;
    box-shadow:none;
  }
  .carousel__arrow--prev,
  .carousel__arrow--next{ left:auto; right:auto; }

  .carousel__hint{ font-size:11px; padding:8px 15px 8px 12px; margin-bottom:16px; }
}

/* carousel sits inside the page container, arrows tucked into the gutter */
.ledger .container{ position:relative; }

.carousel__arrow--prev{ left:-22px; }
.carousel__arrow--next{ right:-22px; }

@media (max-width:1400px){
  .carousel__arrow--prev{ left:-14px; }
  .carousel__arrow--next{ right:-14px; }
}

/* =================================================================
   CAROUSEL — wider card, arrows pushed further out
   ================================================================= */

/* let the carousel run a little wider than the standard container */
.ledger .container{
  max-width:1480px;
  padding-inline:88px;
}

/* arrows sit clear of the card edge */
.carousel__arrow--prev{ left:6px; }
.carousel__arrow--next{ right:6px; }

@media (max-width:1600px){
  .ledger .container{ max-width:100%; padding-inline:82px; }
}

@media (max-width:1240px){
  .ledger .container{ padding-inline:70px; }
  .carousel__arrow--prev{ left:2px; }
  .carousel__arrow--next{ right:2px; }
}

@media (max-width:1040px){
  .ledger .container{ padding-inline:58px; }
  .carousel__arrow--prev{ left:0; }
  .carousel__arrow--next{ right:0; }
}

@media (max-width:768px){
  .ledger .container{ padding-inline:var(--pad); }
}

/* =================================================================
   CAROUSEL — arrows fully outside the card
   ================================================================= */

.ledger .container{
  max-width:1480px;
  padding-inline:110px;   /* room for the arrows beside the card */
}

.carousel__arrow--prev{ left:-76px; }
.carousel__arrow--next{ right:-76px; }

@media (max-width:1600px){
  .ledger .container{ max-width:100%; padding-inline:104px; }
  .carousel__arrow--prev{ left:-72px; }
  .carousel__arrow--next{ right:-72px; }
}

@media (max-width:1240px){
  .ledger .container{ padding-inline:88px; }
  .carousel__arrow--prev{ left:-64px; }
  .carousel__arrow--next{ right:-64px; }
}

@media (max-width:1040px){
  .ledger .container{ padding-inline:74px; }
  .carousel__arrow{ width:44px; height:44px; }
  .carousel__arrow--prev{ left:-56px; }
  .carousel__arrow--next{ right:-56px; }
}

@media (max-width:768px){
  .ledger .container{ padding-inline:var(--pad); }
}

/* =================================================================
   CAROUSEL — a little more card width
   ================================================================= */

.ledger .container{
  max-width:1560px;
  padding-inline:92px;
}

.carousel__arrow--prev{ left:-70px; }
.carousel__arrow--next{ right:-70px; }

@media (max-width:1600px){
  .ledger .container{ max-width:100%; padding-inline:86px; }
  .carousel__arrow--prev{ left:-66px; }
  .carousel__arrow--next{ right:-66px; }
}

@media (max-width:1240px){
  .ledger .container{ padding-inline:76px; }
  .carousel__arrow--prev{ left:-60px; }
  .carousel__arrow--next{ right:-60px; }
}

@media (max-width:1040px){
  .ledger .container{ padding-inline:66px; }
  .carousel__arrow{ width:42px; height:42px; }
  .carousel__arrow--prev{ left:-52px; }
  .carousel__arrow--next{ right:-52px; }
}

@media (max-width:768px){
  .ledger .container{ padding-inline:var(--pad); }
}

/* =================================================================
   CAROUSEL — dots removed, looping arrows
   ================================================================= */

.carousel__dots{ display:none !important; }

/* nav row only holds the arrows now */
.carousel__nav{
  margin-top:0;
  min-height:0;
}

/* arrows always active since the carousel loops */
.carousel__arrow:disabled{
  opacity:1;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(12,12,14,.10);
}

@media (max-width:768px){
  .carousel__nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    margin-top:20px;
  }
}

/* =================================================================
   STICKY HEADER — shrinks smoothly, logo scales instead of cropping
   ================================================================= */

.site-header{
  transition:min-height .28s ease, box-shadow .28s ease, background-color .28s ease;
  will-change:min-height;
}

.site-header__inner{
  transition:min-height .28s cubic-bezier(.4,0,.2,1);
}

.site-logo{
  display:flex;
  align-items:center;
  overflow:visible;          /* never clip the logo */
}

.site-logo__img{
  width:auto;
  max-width:none;
  object-fit:contain;
  transform-origin:left center;
  transition:height .28s cubic-bezier(.4,0,.2,1);
}

/* compact state once the page is scrolled */
.site-header.is-compact{
  box-shadow:0 6px 22px rgba(12,12,14,.07);
}
.site-header.is-compact .site-header__inner{
  min-height:86px;
}
.site-header.is-compact .site-logo__img{
  height:64px;
}

/* the nav and icons settle with it */
.site-header.is-compact .site-nav__list a{
  transition:color .18s ease;
}

@media (max-width:1040px){
  .site-header.is-compact .site-header__inner{ min-height:74px; }
  .site-header.is-compact .site-logo__img{ height:52px; }
}

@media (max-width:768px){
  .site-header.is-compact .site-header__inner{ min-height:64px; }
  .site-header.is-compact .site-logo__img{ height:42px; }
}

@media (prefers-reduced-motion:reduce){
  .site-header,
  .site-header__inner,
  .site-logo__img{ transition:none !important; }
}


/* =================================================================
   BACK TO TOP — match the site style
   ================================================================= */

.ct-back-to-top,
.cp-totop{
  border-radius:50% !important;
  background:var(--red) !important;
  color:#fff !important;
  box-shadow:0 10px 26px rgba(207,3,14,.28) !important;
  transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease !important;
}
.ct-back-to-top:hover,
.cp-totop:hover{
  background:var(--red-dark) !important;
  transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(207,3,14,.34) !important;
}

/* =================================================================
   BACK TO TOP — our own button, theme's one switched off
   ================================================================= */

/* hide the parent theme's version so only one exists */
.ct-back-to-top,
#ct-back-to-top,
[data-back-to-top]{
  display:none !important;
}

.cp-totop{
  position:fixed;
  right:28px;
  bottom:28px;
  z-index:600;

  display:grid;
  place-items:center;
  width:50px;
  height:50px;
  padding:0;

  background:var(--red);
  color:#fff;
  border:0;
  border-radius:50%;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(207,3,14,.28);

  opacity:0;
  visibility:hidden;
  transform:translateY(14px);
  transition:opacity .3s ease, transform .3s cubic-bezier(.4,0,.2,1),
             background-color .25s ease, box-shadow .25s ease, visibility .3s;
}

.cp-totop.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.cp-totop svg{ width:20px; height:20px; }

.cp-totop:hover{
  background:var(--red-dark);
  transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(207,3,14,.34);
}
.cp-totop:active{ transform:translateY(0); }

.cp-totop:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px rgba(207,3,14,.22), 0 10px 26px rgba(207,3,14,.28);
}

@media (max-width:768px){
  .cp-totop{
    right:18px;
    bottom:18px;
    width:44px;
    height:44px;
  }
  .cp-totop svg{ width:18px; height:18px; }
}

@media (prefers-reduced-motion:reduce){
  .cp-totop{ transition:opacity .2s ease, visibility .2s; }
  .cp-totop:hover{ transform:none; }
}

/* back-to-top: smaller button */
.cp-totop{
  width:42px;
  height:42px;
  right:24px;
  bottom:24px;
  box-shadow:0 8px 20px rgba(207,3,14,.24);
}
.cp-totop svg{ width:16px; height:16px; stroke-width:2.2; }

.cp-totop:hover{
  box-shadow:0 11px 26px rgba(207,3,14,.30);
}

@media (max-width:768px){
  .cp-totop{
    width:38px;
    height:38px;
    right:16px;
    bottom:16px;
  }
  .cp-totop svg{ width:15px; height:15px; }
}
