:root{--white:#f2f5f7;--navy:#1c2b3a;--blue:#7fa8bf;--blue-soft:#a8c8d8;--navy-dim:rgba(28,43,58,0.78);--navy-mute:rgba(28,43,58,0.58);--navy-faint:rgba(28,43,58,0.08);}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{min-height:100vh;background:var(--white);}
html{scroll-behavior:smooth;}
.hm-wrap{background:var(--white);color:var(--navy);font-family:'Jost',sans-serif;font-weight:400;min-height:100vh;display:flex;flex-direction:column;}

/* TICKER */
.hm-ticker{background:var(--navy);overflow:hidden;padding:8px 0;}
.hm-ticker-inner{display:flex;animation:hmTicker 28s linear infinite;white-space:nowrap;width:max-content;}
.hm-ticker-item{display:inline-flex;align-items:center;gap:20px;padding:0 32px;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(242,245,247,0.55);}
.hm-dot{width:3px;height:3px;border-radius:50%;background:var(--blue);display:inline-block;opacity:0.6;}
@keyframes hmTicker{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* NAV */
.hm-nav{background:var(--navy);padding:0 40px;display:flex;align-items:center;justify-content:space-between;height:60px;position:sticky;top:0;z-index:100;border-bottom:0.5px solid rgba(255,255,255,0.06);}
.hm-logo{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:20px;letter-spacing:0.22em;text-transform:uppercase;color:var(--white);text-decoration:none;}
.hm-nav-links{display:flex;gap:36px;list-style:none;}
.hm-nav-links a{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(242,245,247,0.45);text-decoration:none;transition:color 0.2s;}
.hm-nav-links a:hover,.hm-nav-links a.hm-active{color:var(--white);}
.hm-season{color:var(--blue)!important;}
.hm-nav-actions{display:flex;gap:20px;align-items:center;}
.hm-nav-btn{color:rgba(242,245,247,0.55);display:flex;align-items:center;text-decoration:none;transition:color 0.2s;}
.hm-nav-btn:hover{color:var(--white);}

/* BREADCRUMB */
.hm-breadcrumb{padding:14px 48px;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--navy-dim);border-bottom:0.5px solid var(--navy-faint);display:flex;align-items:center;gap:10px;}
.hm-breadcrumb a{color:var(--navy-dim);text-decoration:none;transition:color 0.2s;}
.hm-breadcrumb a:hover{color:var(--navy);}
.hm-bc-sep{opacity:0.3;}
.hm-bc-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50vw;}

/* ── PRODUCT LAYOUT ── */
.hm-product-layout{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:start;}

/* ── LEFT: GALLERY ── */
.hm-gallery-col{--rail-w:0px;--rail-gap:0px;padding:34px 0 34px 48px;position:sticky;top:60px;}
.hm-gallery-col:has(.hm-color-rail){--rail-w:26px;--rail-gap:18px;}
.hm-gallery-stage{display:flex;align-items:flex-start;gap:var(--rail-gap);}
.hm-gallery-stage .hm-gallery-main{flex:1 1 auto;min-width:0;}

.hm-gallery-main{
  position:relative;
  background:#fff;
  border:none;
  overflow:hidden;
  margin-bottom:12px;
}

.hm-gallery-tag{
  position:absolute;top:16px;left:16px;z-index:2;
  background:var(--navy);color:var(--white);
  font-size:9px;letter-spacing:0.18em;text-transform:uppercase;
  padding:6px 12px;
}
.hm-tag-sale{background:#8a3a3a;}

.hm-slide{display:none;}
.hm-slide.active{display:block;animation:hmFade 0.35s ease;}
@keyframes hmFade{from{opacity:0.4;}to{opacity:1;}}
.hm-slide img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  display:block;
}
.hm-no-img{
  width:100%;
  aspect-ratio:1/1;
  background:linear-gradient(160deg,#dde8ee,#c8d8e2);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(28,43,58,0.25);
}

/* Arrows */
.hm-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(242,245,247,0.75);
  backdrop-filter:blur(4px);
  border:none;
  width:44px;height:44px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  color:rgba(28,43,58,0.45);
  z-index:2;
  transition:color 0.2s,background 0.2s;
  padding:0;
}
.hm-arrow:hover{color:var(--navy);background:rgba(242,245,247,0.95);}
.hm-arrow svg{width:22px;height:22px;stroke:currentColor;stroke-width:1;fill:none;}
.hm-arrow-prev{left:12px;}
.hm-arrow-next{right:12px;}

/* Hide WC reset variations */
.hm-atc-wrap .reset_variations,
.hm-atc-wrap .reset-variations { display:none !important; }

/* Thumbnails */
.hm-thumbs-row{display:flex;gap:8px;flex-wrap:wrap;padding:12px 0 0 calc(var(--rail-w) + var(--rail-gap));}
.hm-thumb{
  width:72px;height:72px;
  border:0.5px solid rgba(28,43,58,0.1);
  background:#fff;
  cursor:pointer;
  overflow:hidden;
  transition:border-color 0.2s;
  flex-shrink:0;
}
.hm-thumb img{width:100%;height:100%;object-fit:contain;padding:4px;}
.hm-thumb.active{border-color:var(--navy);}
.hm-thumb:hover{border-color:var(--navy-dim);}

/* ── RIGHT: INFO ── */
.hm-info-col{
  padding:36px 48px 56px 44px;
  border-left:0.5px solid var(--navy-faint);
  display:flex;
  flex-direction:column;
  gap:0;
}

.hm-product-eyebrow{font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--blue);margin-bottom:12px;display:flex;align-items:center;gap:10px;}
.hm-product-eyebrow::before{content:'';width:24px;height:0.5px;background:var(--blue);}

.hm-product-title{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(28px,3vw,46px);line-height:1.05;color:var(--navy);letter-spacing:-0.01em;margin-bottom:20px;}

.hm-price-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding-bottom:18px;border-bottom:0.5px solid var(--navy-faint);}
.hm-product-price{font-size:24px;font-weight:400;color:var(--navy);}
.hm-product-price .woocommerce-Price-amount{font-size:24px;color:var(--navy);}
.hm-product-price del{font-size:16px;color:var(--navy-dim);margin-right:8px;}
.hm-product-price del .woocommerce-Price-amount{font-size:16px;color:var(--navy-dim);}
.hm-product-price ins{text-decoration:none;}

.hm-stock{display:flex;align-items:center;gap:7px;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;}
.hm-stock-dot{width:6px;height:6px;border-radius:50%;}
.hm-instock{color:#3f7150;}
.hm-instock .hm-stock-dot{background:#3f7150;animation:hmBlink 1.8s ease-in-out infinite;}
@keyframes hmBlink{0%,100%{box-shadow:0 0 0 0 rgba(63,113,80,.55);opacity:1;}50%{box-shadow:0 0 0 5px rgba(63,113,80,0);opacity:.55;}}
.hm-outofstock{color:var(--navy-dim);}
.hm-outofstock .hm-stock-dot{background:var(--navy-dim);}
.hm-lowstock{color:#9a6b2f;}
.hm-lowstock .hm-stock-dot{background:#c8873a;box-shadow:0 0 0 3px rgba(200,135,58,0.18);animation:hmPulse 1.6s ease infinite;}
@keyframes hmPulse{0%,100%{box-shadow:0 0 0 3px rgba(200,135,58,0.18);}50%{box-shadow:0 0 0 5px rgba(200,135,58,0.08);}}

/* ── RATING ── */
.hm-rating-row{display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;text-decoration:none;width:fit-content;}
.hm-stars{position:relative;display:inline-block;font-size:14px;line-height:1;color:rgba(28,43,58,0.18);letter-spacing:2px;}
.hm-stars-bg{display:block;}
.hm-stars-fill{position:absolute;top:0;left:0;overflow:hidden;white-space:nowrap;color:#c8a95a;}
.hm-rating-count{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--navy-dim);border-bottom:0.5px solid var(--blue);padding-bottom:1px;transition:color 0.2s;}
.hm-rating-row:hover .hm-rating-count{color:var(--navy);}

/* ── FABRIC SPEC CHIPS ── */
.hm-specs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.hm-spec-chip{
  font-size:10px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--navy-dim);
  border:0.5px solid rgba(28,43,58,0.18);
  padding:7px 13px;
  border-radius:100px;
  background:#fff;
  white-space:nowrap;
  cursor:default;
  position:relative;
  overflow:hidden;
  transition:color .28s ease,border-color .28s ease,transform .28s cubic-bezier(.34,1.4,.5,1),box-shadow .28s ease;
}
.hm-spec-chip::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 20%,rgba(168,200,216,.55) 50%,transparent 80%);
  transform:translateX(-120%);
  transition:transform .6s ease;
}
.hm-spec-chip:hover{
  color:var(--navy);
  border-color:var(--navy);
  transform:translateY(-3px);
  box-shadow:0 6px 16px rgba(28,43,58,.10);
}
.hm-spec-chip:hover::before{transform:translateX(120%);}

.hm-short-desc{font-size:13px;line-height:1.8;color:var(--navy-dim);letter-spacing:0.02em;margin-bottom:20px;}

/* ── SIZE GUIDE ── */
.hm-size-guide-row{margin-bottom:14px;}
.hm-size-guide-link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:10px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--navy-dim);text-decoration:none;
  border-bottom:0.5px solid var(--blue);
  padding-bottom:2px;
  transition:color 0.2s;
}
.hm-size-guide-link:hover{color:var(--navy);}
.hm-size-guide-link svg{stroke:var(--blue);}

/* ── ADD TO CART ── */
.hm-atc-wrap{margin-bottom:16px;}

/* WooCommerce ships the variation picker as a <table>; flatten it to a normal
   stacked form group so the label sits above its options with no table chrome. */
.hm-atc-wrap .variations,
.hm-atc-wrap .variations tbody,
.hm-atc-wrap .variations tr,
.hm-atc-wrap .variations th,
.hm-atc-wrap .variations td{
  display:block;width:100%;
  margin:0;padding:0;border:none;background:none;
  text-align:left;
}
.hm-atc-wrap .variations{margin-bottom:22px;}
.hm-atc-wrap .variations tr{margin-bottom:18px;}
.hm-atc-wrap .variations tr:last-child{margin-bottom:0;}
.hm-atc-wrap .variations th.label,
.hm-atc-wrap .variations td.value{padding:0;}
.hm-atc-wrap .variations label{
  display:block;margin-bottom:10px;
  font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:var(--navy-mute);
}
.hm-atc-wrap .variations select{width:100%;border:0.5px solid rgba(28,43,58,0.2);background:#fff;padding:10px 14px;font-family:'Jost',sans-serif;font-size:13px;color:var(--navy);border-radius:1px;outline:none;cursor:pointer;}
.hm-atc-wrap .variations select:focus{border-color:var(--navy);}
.hm-select-hidden{display:none!important;}

/* Variation pill swatches */
.hm-swatch-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.hm-swatch{
  min-width:48px;
  padding:0 16px;height:42px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#fff;
  border:0.5px solid rgba(28,43,58,0.2);
  border-radius:1px;
  font-family:'Jost',sans-serif;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--navy);
  cursor:pointer;
  transition:border-color 0.15s,background 0.15s,color 0.15s;
}
.hm-swatch:hover{border-color:var(--navy);}
.hm-swatch.active{background:var(--navy);color:var(--white);border-color:var(--navy);}

.hm-atc-wrap form.cart{display:flex;gap:10px;align-items:stretch;}
.hm-atc-wrap form.variations_form{display:block;}
.hm-atc-wrap .woocommerce-variation-add-to-cart{
  display:flex;gap:10px;align-items:stretch;
}
.hm-atc-wrap .woocommerce-variation-price{margin-bottom:14px;}
.hm-atc-wrap .woocommerce-variation-price .price{font-size:20px;color:var(--navy);}
.hm-atc-wrap .woocommerce-variation-availability{margin-bottom:10px;font-size:11px;color:var(--navy-dim);}
.hm-atc-wrap .woocommerce-variation-description p{font-size:12.5px;line-height:1.75;color:var(--navy-dim);margin-bottom:12px;}

.hm-atc-wrap .quantity{display:flex;align-items:stretch;flex:0 0 auto;border:0.5px solid rgba(28,43,58,0.2);border-radius:1px;background:#fff;}
.hm-atc-wrap .quantity input[type="number"]{
  width:48px;height:54px;
  border:none;
  background:transparent;
  font-family:'Jost',sans-serif;font-size:15px;color:var(--navy);
  text-align:center;outline:none;
  -moz-appearance:textfield;
}
.hm-atc-wrap .quantity input[type="number"]::-webkit-inner-spin-button,
.hm-atc-wrap .quantity input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;}
.hm-qty-btn{
  width:36px;height:54px;
  background:transparent;border:none;
  font-family:'Jost',sans-serif;font-size:17px;font-weight:300;
  color:var(--navy-dim);cursor:pointer;
  transition:color 0.15s;
}
.hm-qty-btn:hover{color:var(--navy);}

.hm-atc-wrap .single_add_to_cart_button,
.hm-atc-wrap button[type="submit"],
.hm-atc-wrap input[type="submit"],
.hm-atc-wrap .button{
  flex:1;
  width:100%;
  background:var(--navy)!important;
  color:var(--white)!important;
  border:none!important;
  font-family:'Jost',sans-serif!important;
  font-size:11px!important;
  letter-spacing:0.22em!important;
  text-transform:uppercase!important;
  height:54px!important;
  padding:0 32px!important;
  border-radius:1px!important;
  cursor:pointer!important;
  transition:background 0.25s,color 0.25s,transform 0.15s!important;
  font-weight:500!important;
  white-space:nowrap;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.hm-atc-wrap .single_add_to_cart_button:hover,
.hm-atc-wrap button[type="submit"]:hover,
.hm-atc-wrap input[type="submit"]:hover,
.hm-atc-wrap .button:hover{background:var(--blue)!important;color:var(--navy)!important;}
.hm-atc-wrap .single_add_to_cart_button:active{transform:scale(0.985);}

/* ── DELIVERY ESTIMATE ── */
.hm-delivery-line{
  display:flex;align-items:center;gap:9px;
  font-size:11.5px;letter-spacing:0.03em;color:var(--navy-dim);
  margin-bottom:12px;
}
.hm-delivery-line svg{stroke:var(--blue);flex-shrink:0;}
.hm-delivery-line strong{color:var(--navy);font-weight:500;}

/* ── SHIPPING NUDGE ── */
.hm-ship-nudge{
  background:rgba(168,200,216,0.14);
  border:0.5px solid rgba(168,200,216,0.5);
  padding:11px 16px 12px;
  border-radius:2px;
  margin-bottom:14px;
}
.hm-ship-nudge-row{display:flex;align-items:center;gap:10px;font-size:11.5px;letter-spacing:0.03em;color:var(--navy-dim);margin-bottom:8px;}
.hm-ship-nudge svg{stroke:var(--navy);flex-shrink:0;opacity:0.6;}
.hm-ship-nudge strong{color:var(--navy);font-weight:500;}
.hm-ship-progress{height:3px;background:rgba(28,43,58,0.08);border-radius:2px;overflow:hidden;}
.hm-ship-progress span{display:block;height:100%;background:var(--blue);border-radius:2px;transition:width 0.4s ease;}

/* ── PAYMENT ROW ── */
.hm-pay-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:24px;}
.hm-pay-badge{
  background:#fff;border:0.5px solid rgba(28,43,58,0.12);
  border-radius:3px;padding:5px 10px;
  font-size:9px;letter-spacing:0.06em;color:var(--navy-dim);text-transform:uppercase;
}
.hm-pay-secure{
  display:inline-flex;align-items:center;gap:5px;
  font-size:9.5px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--navy-dim);margin-left:auto;
}
.hm-pay-secure svg{stroke:#4a7c59;}

/* ── TRUST BADGES ── */
.hm-trust{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:28px;
  padding:20px;
  background:var(--navy-faint);
  border-radius:2px;
}
.hm-trust-item{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:0.04em;color:var(--navy-dim);}
.hm-trust-item svg{stroke:var(--blue);flex-shrink:0;}

/* ── ACCORDION ── */
.hm-accordion{border-top:0.5px solid var(--navy-faint);}
.hm-accordion-item{border-bottom:0.5px solid var(--navy-faint);}
.hm-accordion-item summary{
  list-style:none;display:flex;justify-content:space-between;align-items:center;
  padding:16px 0;
  font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);
  cursor:pointer;user-select:none;
  transition:color 0.2s;
}
.hm-accordion-item summary:hover{color:var(--navy-dim);}
.hm-accordion-item summary::-webkit-details-marker{display:none;}
.hm-accordion-item summary::after{content:'+';font-size:18px;font-weight:300;color:var(--navy-dim);transition:transform 0.2s;}
.hm-accordion-item[open] summary::after{content:'−';}
.hm-accordion-body{padding:0 0 20px;}
.hm-accordion-body p{font-size:13px;line-height:1.9;color:var(--navy-dim);margin-bottom:10px;letter-spacing:0.02em;}
.hm-accordion-body p:last-child{margin-bottom:0;}
.hm-accordion-body a{color:var(--navy);border-bottom:0.5px solid var(--blue);text-decoration:none;}
.hm-accordion-body a:hover{color:var(--blue);}

/* ── REVIEWS ── */
.hm-review{padding:14px 0;border-bottom:0.5px solid var(--navy-faint);}
.hm-review:last-child{border-bottom:none;padding-bottom:0;}
.hm-review-head{display:flex;align-items:center;gap:12px;margin-bottom:6px;flex-wrap:wrap;}
.hm-review-author{font-size:12px;font-weight:500;color:var(--navy);letter-spacing:0.04em;}
.hm-review-date{font-size:10px;color:var(--navy-dim);letter-spacing:0.06em;margin-left:auto;}
.hm-review-body{font-size:13px;line-height:1.8;color:var(--navy-dim);letter-spacing:0.02em;}

/* ── RELATED PRODUCTS ── */
.hm-related{padding:64px 48px 72px;border-top:0.5px solid var(--navy-faint);}
.hm-related-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:32px;}
.hm-related-title{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(24px,2.5vw,36px);color:var(--navy);letter-spacing:-0.01em;}
.hm-related-link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:10px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--navy-dim);text-decoration:none;transition:color 0.2s;
}
.hm-related-link:hover{color:var(--navy);}
.hm-related-link svg{stroke:var(--blue);}

.hm-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.hm-rel-card{text-decoration:none;color:var(--navy);display:block;group:card;}
.hm-rel-img{
  position:relative;aspect-ratio:1/1;background:#fff;overflow:hidden;
  border:0.5px solid rgba(28,43,58,0.06);
  margin-bottom:14px;
}
.hm-rel-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.5s ease;}
.hm-rel-card:hover .hm-rel-img img{transform:scale(1.04);}
.hm-rel-noimg{
  width:100%;height:100%;
  background:linear-gradient(160deg,#dde8ee,#c8d8e2);
  display:flex;align-items:center;justify-content:center;
  color:rgba(28,43,58,0.25);
}
.hm-rel-view{
  position:absolute;left:0;right:0;bottom:0;
  background:rgba(28,43,58,0.85);color:var(--white);
  font-size:9px;letter-spacing:0.18em;text-transform:uppercase;
  text-align:center;padding:11px 0;
  transform:translateY(100%);transition:transform 0.3s ease;
}
.hm-rel-card:hover .hm-rel-view{transform:translateY(0);}
.hm-rel-name{font-size:13px;letter-spacing:0.03em;margin-bottom:5px;color:var(--navy);}
.hm-rel-price{font-size:12.5px;color:var(--navy-dim);}
.hm-rel-price del{margin-right:6px;}
.hm-rel-price ins{text-decoration:none;color:var(--navy);}

/* ── STICKY MOBILE ATC BAR ── */
.hm-sticky-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:200;
  background:#fff;
  border-top:0.5px solid rgba(28,43,58,0.12);
  box-shadow:0 -6px 24px rgba(28,43,58,0.08);
  display:flex;align-items:center;gap:12px;
  padding:10px 16px;
  transform:translateY(110%);
  transition:transform 0.3s ease;
}
.hm-sticky-bar.show{transform:translateY(0);}
.hm-sticky-img{width:44px;height:44px;object-fit:cover;flex-shrink:0;border:0.5px solid rgba(28,43,58,0.08);}
.hm-sticky-info{flex:1;min-width:0;}
.hm-sticky-name{font-size:12px;letter-spacing:0.02em;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px;}
.hm-sticky-price{font-size:12px;color:var(--navy-dim);}
.hm-sticky-price del{margin-right:5px;}
.hm-sticky-price ins{text-decoration:none;color:var(--navy);}
.hm-sticky-btn{
  background:var(--navy);color:var(--white);border:none;
  font-family:'Jost',sans-serif;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;
  padding:0 22px;height:44px;border-radius:1px;cursor:pointer;font-weight:500;
  transition:background 0.2s,color 0.2s;flex-shrink:0;
}
.hm-sticky-btn:hover{background:var(--blue);color:var(--navy);}

/* ── FOOTER ── */
.hm-footer{background:var(--navy);padding:56px 48px 32px;margin-top:auto;}
.hm-footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:0.5px solid rgba(255,255,255,0.06);margin-bottom:32px;}
.hm-footer-logo{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:28px;letter-spacing:0.2em;text-transform:uppercase;color:var(--white);display:block;margin-bottom:16px;}
.hm-footer-desc{font-size:11px;line-height:1.8;letter-spacing:0.04em;color:rgba(242,245,247,0.3);max-width:220px;margin-bottom:24px;font-family:'Jost',sans-serif;}
.hm-footer-socials{display:flex;gap:14px;}
.hm-footer-social{width:32px;height:32px;border:0.5px solid rgba(255,255,255,0.1);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color 0.2s,background 0.2s;text-decoration:none;}
.hm-footer-social:hover{border-color:var(--blue);background:rgba(168,200,216,0.08);}
.hm-footer-social:hover svg{stroke:var(--blue)!important;}
.hm-footer-col-title{font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(242,245,247,0.25);margin-bottom:20px;font-family:'Jost',sans-serif;}
.hm-footer-links{list-style:none;display:flex;flex-direction:column;gap:10px;}
.hm-footer-links a{font-size:12px;letter-spacing:0.04em;color:rgba(242,245,247,0.4);text-decoration:none;transition:color 0.2s;font-family:'Jost',sans-serif;}
.hm-footer-links a:hover{color:var(--white);}
.hm-footer-bottom{display:flex;align-items:center;justify-content:space-between;}
.hm-footer-copy{font-size:10px;letter-spacing:0.08em;color:rgba(242,245,247,0.18);font-family:'Jost',sans-serif;}
.hm-footer-payments{display:flex;gap:8px;align-items:center;}
.hm-payment-badge{background:rgba(255,255,255,0.05);border:0.5px solid rgba(255,255,255,0.08);border-radius:3px;padding:4px 8px;font-size:9px;letter-spacing:0.06em;color:rgba(242,245,247,0.25);text-transform:uppercase;font-family:'Jost',sans-serif;}

/* ── TABLET ── */
@media(max-width:1024px){
  .hm-related-grid{grid-template-columns:repeat(2,1fr);}
}

/* ── MOBILE ── */
@media(max-width:768px){
  .hm-nav{padding:0 20px;}
  .hm-nav-links{display:none;}
  .hm-breadcrumb{padding:12px 20px;}
  .hm-product-layout{grid-template-columns:1fr;}
  .hm-gallery-col{position:static;padding:0;}
  .hm-thumbs-row{padding:12px 16px 0;}
  .hm-thumbs-row{padding:0 16px 8px;}
  .hm-info-col{padding:24px 20px 40px;border-left:none;border-top:0.5px solid var(--navy-faint);}
  .hm-related{padding:48px 20px 56px;}
  .hm-related-grid{gap:16px;}
  .hm-pay-secure{margin-left:0;width:100%;margin-top:4px;}
  .hm-footer{padding:40px 20px 96px;}
  .hm-footer-top{grid-template-columns:1fr 1fr;gap:32px;}
  .hm-footer-bottom{flex-direction:column;gap:16px;align-items:flex-start;}
}

/* ── COLOUR RAIL (left of the gallery) ── */
.hm-color-rail{
  display:flex;flex-direction:column;gap:10px;
  padding-top:4px;
  flex:0 0 var(--rail-w);width:var(--rail-w);
  position:sticky;top:76px;
}
.hm-color-dot{
  width:26px;height:26px;padding:0;
  border-radius:50%;
  border:0.5px solid rgba(28,43,58,.22);
  background:transparent;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s cubic-bezier(.34,1.4,.5,1),border-color .2s,box-shadow .2s;
}
.hm-color-dot span{
  display:block;width:100%;height:100%;
  border-radius:50%;
  background:var(--sw,#ccc);
  border:0.5px solid rgba(28,43,58,.10);
  transition:transform .2s;
}
.hm-color-dot:hover{transform:scale(1.12);border-color:rgba(28,43,58,.45);}
.hm-color-dot.hm-active{
  border-color:var(--navy);
  box-shadow:0 0 0 1px var(--navy);
  transform:scale(1.06);
}
.hm-color-dot.hm-active span{transform:scale(.74);}

@media(max-width:768px){
  .hm-color-rail{
    flex-direction:row;flex-wrap:wrap;position:static;
    width:auto;flex:0 0 auto;
    padding:0 16px 12px;
  }
  .hm-gallery-stage{flex-direction:column-reverse;gap:12px;}
}

/* WooCommerce emits visually-hidden a11y labels. These templates bypass the
   theme stylesheet, so without this rule they render as stray visible text
   ('Remove item', 'Thumbnail image', duplicated product names...). */
.screen-reader-text,
.woocommerce-form__label-for-checkbox .screen-reader-text{
  position:absolute !important;
  width:1px;height:1px;
  margin:-1px;padding:0;border:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}

/* ── DISPLAY TYPE ──────────────────────────────────────────────────────────
   Cormorant Garamond at 300 was too light to read on the pale background.
   Fraunces keeps the editorial serif character with far more presence.
   The SAEBA wordmark stays in Cormorant so the logo is untouched.          */
.hm-product-title,
.hm-related-title,
.hm-accordion-item summary,
.hm-empty-title{
  font-family:'Fraunces', 'Cormorant Garamond', serif;
}
.hm-product-title{
  font-weight:600;
  font-size:clamp(30px,3.1vw,44px);
  line-height:1.08;
  letter-spacing:-0.015em;
  color:#16232f;
}
.hm-related-title{font-weight:600;letter-spacing:-0.01em;color:#16232f;}
.hm-accordion-item summary{
  font-family:'Jost',sans-serif;
  font-weight:500;color:#16232f;
}

/* ── THUMBNAIL HOVER ──────────────────────────────────────────────────── */
.hm-thumb{
  position:relative;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1),
             border-color .2s ease,
             box-shadow .3s ease;
  will-change:transform;
}
.hm-thumb img{transition:transform .4s cubic-bezier(.34,1.3,.64,1);}
.hm-thumb:hover{
  transform:translateY(-7px) scale(1.07) rotate(-2deg);
  border-color:var(--navy);
  box-shadow:0 12px 22px rgba(28,43,58,.18);
  z-index:3;
}
.hm-thumb:hover img{transform:scale(1.14);}
.hm-thumb:active{transform:translateY(-2px) scale(1.02) rotate(0deg);}
.hm-thumb.active{
  border-color:var(--navy);
  box-shadow:0 0 0 1px var(--navy);
}
@media(prefers-reduced-motion:reduce){
  .hm-thumb,.hm-thumb img{transition:none;}
  .hm-thumb:hover{transform:none;}
  .hm-thumb:hover img{transform:none;}
}

/* ── COLOURWAY FILTER ─────────────────────────────────────────────────── */
.hm-thumb.hm-hidden{display:none;}
.hm-slide.hm-hidden{display:none !important;}

/* Breathing room between the gallery and the info column divider */
.hm-gallery-col{padding-right:48px;}
.hm-info-col{padding-left:52px;}
@media(max-width:768px){
  .hm-gallery-col{padding-right:0;}
  .hm-info-col{padding-left:20px;}
}

/* Hairline frame on the main shot — same 0.5px navy rule as the thumbnails */
.hm-gallery-main{
  border:0.5px solid rgba(28,43,58,.16);
  border-radius:2px;
  box-shadow:0 1px 2px rgba(28,43,58,.04);
}

/* ── SIZE + ADD TO CART BLOCK ─────────────────────────────────────────── */
.hm-atc-wrap .variations tr{margin-bottom:22px;}

/* label row carries the size-guide link on the right */
.hm-atc-wrap .variations th.label,
.hm-atc-wrap .variations th{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  margin-bottom:12px;
}
.hm-atc-wrap .variations label{margin-bottom:0;font-size:10px;letter-spacing:0.2em;color:var(--navy-mute);}
.hm-size-guide-inline{
  font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--navy-mute);text-decoration:none;
  border-bottom:0.5px solid var(--blue-soft);padding-bottom:1px;
  transition:color .2s,border-color .2s;white-space:nowrap;
}
.hm-size-guide-inline:hover{color:var(--navy);border-color:var(--navy);}

/* size pills */
.hm-swatch-row{gap:9px;margin-top:0;}
.hm-swatch{
  min-width:58px;height:48px;padding:0 15px;
  border:0.5px solid rgba(28,43,58,.2);
  border-radius:2px;
  font-size:11.5px;font-weight:500;letter-spacing:0.1em;
  color:var(--navy);background:#fff;
  transition:transform .2s cubic-bezier(.34,1.5,.6,1),
             border-color .18s,background .18s,color .18s,box-shadow .2s;
}
.hm-swatch:hover{
  border-color:var(--navy);
  transform:translateY(-2px);
  box-shadow:0 5px 12px rgba(28,43,58,.10);
}
.hm-swatch.active{
  background:var(--navy);color:var(--white);border-color:var(--navy);
  box-shadow:0 5px 14px rgba(28,43,58,.22);
  transform:translateY(-1px);
}
.hm-swatch:active{transform:translateY(0);}

/* quantity + CTA share one balanced row */
.hm-atc-wrap .woocommerce-variation-add-to-cart,
.hm-atc-wrap form.cart{gap:12px;align-items:stretch;}
.hm-atc-wrap .quantity{
  flex:0 0 136px;width:136px;height:56px;
  border:0.5px solid rgba(28,43,58,.2);
  border-radius:2px;background:#fff;
}
.hm-atc-wrap .quantity input[type=number]{height:54px;width:52px;font-size:14px;}
.hm-qty-btn{height:54px;width:41px;font-size:18px;}

.hm-atc-wrap .single_add_to_cart_button,
.hm-atc-wrap button[type=submit]{
  height:56px !important;
  border-radius:2px !important;
  letter-spacing:0.2em !important;
  font-size:11.5px !important;
  box-shadow:0 5px 16px rgba(28,43,58,.18) !important;
}
.hm-atc-wrap .single_add_to_cart_button:hover{
  box-shadow:0 7px 20px rgba(28,43,58,.24) !important;
}
.hm-atc-wrap .single_add_to_cart_button.disabled,
.hm-atc-wrap .single_add_to_cart_button:disabled{
  background:rgba(28,43,58,.28) !important;
  box-shadow:none !important;cursor:not-allowed !important;
}

@media(max-width:520px){
  .hm-atc-wrap .woocommerce-variation-add-to-cart{flex-wrap:wrap;}
  .hm-atc-wrap .quantity{flex:0 0 136px;}
  .hm-atc-wrap .single_add_to_cart_button{flex:1 1 100%;}
}

/* Drop the column divider and the related-products rule — the whitespace
   already separates these blocks. */
.hm-info-col{border-left:none;}
.hm-related{border-top:none;}

/* ── NAV: true centring ──────────────────────────────────────────────────
   space-between only centres the middle item when the logo and the action
   icons happen to be the same width, so the links drifted right. A 3-column
   grid with equal outer tracks pins them to the real centre.              */
.hm-nav{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
}
.hm-nav-links{justify-self:center;}
.hm-nav-actions{justify-self:end;}

/* ── SIZE GUIDE LINK ─────────────────────────────────────────────────── */
.hm-size-guide-link{
  position:relative;
  transition:color .22s ease;
  padding-bottom:3px;
  border-bottom:none;
}
.hm-size-guide-link::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:100%;height:0.5px;
  background:var(--blue-soft);
  transform:scaleX(1);transform-origin:right;
  transition:transform .34s cubic-bezier(.65,0,.35,1);
}
.hm-size-guide-link:hover{color:var(--navy);}
.hm-size-guide-link:hover::after{
  transform:scaleX(0);transform-origin:right;
}
.hm-size-guide-link::before{
  content:"";
  position:absolute;left:0;bottom:0;
  width:100%;height:0.5px;
  background:var(--navy);
  transform:scaleX(0);transform-origin:left;
  transition:transform .34s cubic-bezier(.65,0,.35,1) .1s;
}
.hm-size-guide-link:hover::before{transform:scaleX(1);}
.hm-size-guide-link svg{
  transition:transform .35s cubic-bezier(.34,1.5,.6,1);
}
.hm-size-guide-link:hover svg{transform:rotate(-14deg) scale(1.15);}
@media(prefers-reduced-motion:reduce){
  .hm-size-guide-link::after,.hm-size-guide-link::before,
  .hm-size-guide-link svg{transition:none;}
}

/* ── GALLERY ARROWS ─────────────────────────────────────────────────────
   The theme styles bare <button>, which was painting the arrow solid blue
   on focus. Reset it, then give the control some spring.                 */
.hm-gallery-main button.hm-arrow{
  background:rgba(242,245,247,.82) !important;
  color:rgba(28,43,58,.5) !important;
  border:0.5px solid rgba(28,43,58,.10) !important;
  border-radius:50% !important;
  box-shadow:0 2px 8px rgba(28,43,58,.06) !important;
  width:48px;height:48px;
  backdrop-filter:blur(4px);
  transition:transform .3s cubic-bezier(.34,1.6,.6,1),
             background .22s ease, color .22s ease,
             box-shadow .3s ease, border-color .22s ease !important;
}
.hm-gallery-main button.hm-arrow svg{
  transition:transform .3s cubic-bezier(.34,1.7,.6,1);
}
.hm-gallery-main button.hm-arrow:hover{
  background:#1c2b3a !important;
  color:#f2f5f7 !important;
  border-color:#1c2b3a !important;
  box-shadow:0 8px 20px rgba(28,43,58,.28) !important;
  transform:translateY(-50%) scale(1.14);
}
.hm-arrow-prev:hover svg{transform:translateX(-4px);}
.hm-arrow-next:hover svg{transform:translateX(4px);}

.hm-gallery-main button.hm-arrow:active{
  transform:translateY(-50%) scale(.94);
  box-shadow:0 3px 10px rgba(28,43,58,.22) !important;
}
.hm-arrow-prev:active svg{transform:translateX(-8px);}
.hm-arrow-next:active svg{transform:translateX(8px);}

/* keyboard focus stays visible without the solid theme fill */
.hm-gallery-main button.hm-arrow:focus{outline:none !important;}
.hm-gallery-main button.hm-arrow:focus-visible{
  outline:none !important;
  box-shadow:0 0 0 3px rgba(168,200,216,.75), 0 8px 20px rgba(28,43,58,.2) !important;
}

@media(prefers-reduced-motion:reduce){
  .hm-gallery-main button.hm-arrow,
  .hm-gallery-main button.hm-arrow svg{transition:none !important;}
  .hm-gallery-main button.hm-arrow:hover{transform:translateY(-50%);}
}

/* pin the links to the middle track regardless of inherited margins */
.hm-nav-links{
  grid-column:2;
  justify-self:center;
  margin-left:auto;margin-right:auto;
}
.hm-logo{grid-column:1;justify-self:start;}
.hm-nav-actions{grid-column:3;justify-self:end;}

/* ── MAIN IMAGE TRANSITION ────────────────────────────────────────────── */
@keyframes hmSlideIn{
  0%  {opacity:0;transform:scale(1.035) translateY(8px);}
  60% {opacity:1;}
  100%{opacity:1;transform:scale(1) translateY(0);}
}
.hm-slide.active{
  animation:hmSlideIn .5s cubic-bezier(.22,.85,.28,1) both;
}
.hm-slide.active img{will-change:transform,opacity;}
@media(prefers-reduced-motion:reduce){
  .hm-slide.active{animation:none;}
}

/* ── "VIEW ALL" LINK ─────────────────────────────────────────────────── */
.hm-related-link{
  position:relative;
  padding-bottom:4px;
  transition:color .22s ease;
  overflow:visible;
}
.hm-related-link::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:100%;height:0.5px;
  background:var(--navy);
  transform:scaleX(0);transform-origin:left;
  transition:transform .38s cubic-bezier(.65,0,.35,1);
}
.hm-related-link:hover{color:var(--navy);}
.hm-related-link:hover::after{transform:scaleX(1);}
.hm-related-link svg{
  transition:transform .38s cubic-bezier(.34,1.6,.6,1);
}
.hm-related-link:hover svg{transform:translateX(7px);}
.hm-related-link:active svg{transform:translateX(11px);}
@media(prefers-reduced-motion:reduce){
  .hm-related-link::after,.hm-related-link svg{transition:none;}
}

/* ── "VIEW ALL" — punchier ───────────────────────────────────────────── */
.hm-related-link{
  transition:color .22s ease, letter-spacing .3s cubic-bezier(.34,1.5,.6,1),
             transform .3s cubic-bezier(.34,1.5,.6,1);
}
.hm-related-link:hover{
  color:var(--navy);
  letter-spacing:0.22em;
  transform:translateX(-3px);
}
.hm-related-link::after{
  height:1px;
  transition:transform .42s cubic-bezier(.16,1.1,.3,1);
}
.hm-related-link svg{
  transition:transform .42s cubic-bezier(.2,1.8,.4,1);
}
.hm-related-link:hover svg{transform:translateX(12px) scale(1.2);}
.hm-related-link:active svg{transform:translateX(18px) scale(1.05);}

/* ── RELATED CARDS — lift, zoom, spring-up label ─────────────────────── */
.hm-rel-card{
  display:block;
  transition:transform .38s cubic-bezier(.34,1.45,.6,1);
}
.hm-rel-card:hover{transform:translateY(-8px);}
.hm-rel-card:active{transform:translateY(-3px);}

.hm-rel-img{
  transition:box-shadow .38s ease, border-color .3s ease;
}
.hm-rel-card:hover .hm-rel-img{
  box-shadow:0 16px 30px rgba(28,43,58,.18);
  border-color:rgba(28,43,58,.18);
}
.hm-rel-img img{
  transition:transform .6s cubic-bezier(.2,.8,.25,1);
}
.hm-rel-card:hover .hm-rel-img img{transform:scale(1.09) rotate(-1deg);}

.hm-rel-view{
  transition:transform .38s cubic-bezier(.2,1.5,.4,1), letter-spacing .38s ease;
}
.hm-rel-card:hover .hm-rel-view{transform:translateY(0);letter-spacing:0.24em;}

.hm-rel-name{transition:color .25s ease, transform .3s cubic-bezier(.34,1.4,.6,1);}
.hm-rel-card:hover .hm-rel-name{color:#16232f;transform:translateX(3px);}
.hm-rel-price{transition:transform .3s cubic-bezier(.34,1.4,.6,1) .04s;}
.hm-rel-card:hover .hm-rel-price{transform:translateX(3px);}

@media(prefers-reduced-motion:reduce){
  .hm-related-link,.hm-related-link svg,.hm-related-link::after,
  .hm-rel-card,.hm-rel-img,.hm-rel-img img,.hm-rel-view,
  .hm-rel-name,.hm-rel-price{transition:none !important;}
  .hm-rel-card:hover,.hm-related-link:hover{transform:none;}
}

/* breadcrumb slash */
.hm-bc-sep{opacity:.42;font-size:11px;line-height:1;}

/* ── FRAMED GALLERY: dark hairline, softly rounded corners ───────────── */
.hm-gallery-main{
  border:1px solid rgba(28,43,58,.82) !important;
  border-radius:10px !important;
  overflow:hidden;
  box-shadow:none !important;
  background:#fff;
}
.hm-slide img{border-radius:9px;}

/* keep the NEW / SALE tag inside the rounded corner */
.hm-gallery-tag{border-radius:0 0 6px 0;top:0;left:0;}

/* thumbnails echo the same frame, smaller radius */
.hm-thumb{
  border:1px solid rgba(28,43,58,.28);
  border-radius:7px;
}
.hm-thumb img{border-radius:6px;}
.hm-thumb.active{
  border-color:rgba(28,43,58,.9);
  box-shadow:0 0 0 1px rgba(28,43,58,.9);
}

/* no rule under the price */
.hm-price-row{border-bottom:none !important;padding-bottom:6px;}

/* quantity: let the box hug its own controls so the + cannot spill out */
.hm-atc-wrap .quantity{
  width:auto !important;
  flex:0 0 auto !important;
}
.hm-atc-wrap .hm-qty-btn{
  width:44px !important;min-width:44px !important;max-width:44px !important;
  flex:0 0 44px !important;
  padding:0 !important;margin:0 !important;
}
.hm-atc-wrap .quantity input[type=number]{
  width:54px !important;min-width:54px !important;
  padding:0 !important;margin:0 !important;
}

/* ── SIZE GUIDE LINK — maximum umpf ──────────────────────────────────── */
.hm-size-guide-row{display:block;margin-bottom:22px;}
.hm-size-guide-link{
  display:inline-flex;align-items:center;gap:10px;
  font-size:10px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--navy-dim);
  transition:color .25s ease,
             letter-spacing .4s cubic-bezier(.34,1.5,.6,1),
             transform .4s cubic-bezier(.34,1.5,.6,1);
}
.hm-size-guide-link:hover{
  color:#16232f;
  letter-spacing:0.2em;
  transform:translateX(4px);
}
.hm-size-guide-link::after{
  height:1px;background:var(--navy);
  transition:transform .45s cubic-bezier(.16,1.1,.3,1);
}
.hm-size-guide-link::before{
  height:1px;
  transition:transform .45s cubic-bezier(.16,1.1,.3,1);
}
/* the ruler spins and pops */
.hm-size-guide-link svg{
  stroke:var(--blue);
  transition:transform .5s cubic-bezier(.28,1.7,.4,1), stroke .25s ease;
}
.hm-size-guide-link:hover svg{
  transform:rotate(-32deg) scale(1.35);
  stroke:#16232f;
}
.hm-size-guide-link:active svg{transform:rotate(-14deg) scale(1.12);}

/* ── IN STOCK — whole label pulses, brighter green ───────────────────── */
.hm-instock{
  color:#00a34a !important;
  animation:hmStockPulse 1.6s ease-in-out infinite;
}
.hm-instock .hm-stock-dot{
  background:#00c853 !important;
  animation:hmStockDot 1.6s ease-in-out infinite;
}
@keyframes hmStockPulse{
  0%,100%{opacity:1;}
  50%    {opacity:.45;}
}
@keyframes hmStockDot{
  0%,100%{box-shadow:0 0 0 0 rgba(0,200,83,.6);transform:scale(1);}
  50%    {box-shadow:0 0 0 6px rgba(0,200,83,0);transform:scale(1.25);}
}
@media(prefers-reduced-motion:reduce){
  .hm-instock,.hm-instock .hm-stock-dot{animation:none;}
  .hm-size-guide-link,.hm-size-guide-link svg{transition:none;}
}

/* ── GALLERY SCROLL FIX ──────────────────────────────────────────────────
   The column was declared sticky but never stuck (it is taller than the
   viewport), so it only confused the layout. Dropping it, and dropping the
   will-change layers that made the 1px frame flicker on scroll direction. */
.hm-gallery-col{position:static !important;top:auto !important;}
.hm-color-rail{position:static !important;top:auto !important;}

.hm-slide.active img{will-change:auto !important;}
.hm-thumb{will-change:auto !important;}

/* keep the frame crisp while the entry animation runs */
.hm-gallery-main{
  transform:translateZ(0);
  background-clip:padding-box;
}
.hm-slide.active{animation-fill-mode:both;}

/* ════════════════════════════════════════════════════════════════════════
   BUY BLOCK — one consistent vertical rhythm instead of ad-hoc margins.
   Groups: identity (eyebrow/title/price) - specs - choose - act - reassure
   ════════════════════════════════════════════════════════════════════════ */
.hm-info-col{padding-top:40px;}

.hm-product-eyebrow{margin-bottom:14px;}
.hm-product-title{margin-bottom:18px;}

.hm-price-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  margin-bottom:0 !important;padding-bottom:0 !important;
}
.hm-product-price{font-size:26px;line-height:1;}
.hm-product-price .woocommerce-Price-amount{font-size:26px;}

/* specs sit close under the price, as supporting detail */
.hm-specs{margin:22px 0 0;}
.hm-short-desc{margin:18px 0 0;}

/* ── CHOOSE ── size guide reads as the header of the size block */
.hm-size-guide-row{margin:30px 0 0;}
.hm-atc-wrap{margin:14px 0 0;}
.hm-atc-wrap .variations{margin-bottom:20px;}
.hm-atc-wrap .variations tr{margin-bottom:16px;}
.hm-atc-wrap .variations th,
.hm-atc-wrap .variations th.label{margin-bottom:11px;}

/* ── ACT ── quantity and CTA are one balanced control row */
.hm-atc-wrap .woocommerce-variation-add-to-cart,
.hm-atc-wrap form.cart{gap:12px;align-items:stretch;}
.hm-atc-wrap .quantity{border-radius:2px;height:58px;}
.hm-atc-wrap .quantity input[type=number]{height:56px;}
.hm-qty-btn{height:56px;}
.hm-atc-wrap .single_add_to_cart_button,
.hm-atc-wrap button[type=submit]{
  height:58px !important;
  flex:1 1 auto !important;
  border-radius:2px !important;
}

/* ── REASSURE ── */
.hm-delivery-line{margin:16px 0 0;font-size:12px;}
.hm-trust{
  margin:26px 0 0 !important;
  padding:20px 22px !important;
  background:transparent !important;
  border:0.5px solid rgba(28,43,58,.12);
  border-radius:3px;
  row-gap:14px;
}
.hm-trust-item{font-size:11.5px;}

.hm-accordion{margin-top:34px;}

@media(max-width:768px){
  .hm-info-col{padding-top:28px;}
  .hm-size-guide-row{margin-top:24px;}
  .hm-trust{padding:18px !important;}
}

/* ── NAV: kill the theme ul margins that pushed the links off centre ──── */
.hm-nav ul.hm-nav-links{
  margin:0 !important;padding:0 !important;
  list-style:none !important;
  align-self:center;
}
.hm-nav ul.hm-nav-links li{margin:0 !important;padding:0 !important;list-style:none !important;}
.hm-nav ul.hm-nav-links li::marker{content:none;}

/* ══ SIZE PILLS + CTA — maximum umpf ═══════════════════════════════════ */
.hm-swatch{
  position:relative;overflow:hidden;
  transition:transform .28s cubic-bezier(.34,1.7,.5,1),
             border-color .2s ease, color .2s ease, box-shadow .28s ease;
}
/* sweeping fill that rises from the bottom */
.hm-swatch::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:#1c2b3a;
  transform:translateY(101%);
  transition:transform .34s cubic-bezier(.65,0,.35,1);
}
.hm-swatch:hover::before{transform:translateY(0);}
.hm-swatch.active::before{transform:translateY(0);}
.hm-swatch > *,.hm-swatch{isolation:isolate;}
.hm-swatch{color:var(--navy);}
.hm-swatch:hover{
  color:#f2f5f7;
  border-color:#1c2b3a;
  transform:translateY(-4px) scale(1.05);
  box-shadow:0 10px 20px rgba(28,43,58,.20);
}
.hm-swatch.active{
  color:#f2f5f7;border-color:#1c2b3a;
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(28,43,58,.26);
}
.hm-swatch:active{transform:translateY(-1px) scale(.98);}
/* keep the label above the sweep */
.hm-swatch{text-indent:0;}
.hm-swatch::after{
  content:attr(data-value);
  position:relative;z-index:1;
}
.hm-swatch{font-size:0;}
.hm-swatch::after{font-size:11.5px;letter-spacing:0.1em;font-weight:500;}

/* quantity stepper */
.hm-qty-btn{
  transition:background .2s ease, color .2s ease, transform .25s cubic-bezier(.34,1.7,.5,1);
}
.hm-qty-btn:hover{background:rgba(28,43,58,.06) !important;color:#16232f !important;transform:scale(1.25);}
.hm-qty-btn:active{transform:scale(.9);}

/* ADD TO CART */
.hm-atc-wrap .single_add_to_cart_button{
  position:relative;overflow:hidden;
  transition:transform .28s cubic-bezier(.34,1.6,.5,1),
             box-shadow .28s ease, letter-spacing .34s ease, background .25s ease !important;
}
.hm-atc-wrap .single_add_to_cart_button::before{
  content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(242,245,247,.28),transparent);
  transform:skewX(-18deg);
  transition:left .55s cubic-bezier(.4,0,.2,1);
}
.hm-atc-wrap .single_add_to_cart_button:hover::before{left:120%;}
.hm-atc-wrap .single_add_to_cart_button:hover{
  transform:translateY(-3px);
  letter-spacing:0.26em !important;
  box-shadow:0 14px 28px rgba(28,43,58,.30) !important;
}
.hm-atc-wrap .single_add_to_cart_button:active{
  transform:translateY(-1px) scale(.99);
  box-shadow:0 6px 14px rgba(28,43,58,.24) !important;
}

@media(prefers-reduced-motion:reduce){
  .hm-swatch,.hm-swatch::before,.hm-qty-btn,
  .hm-atc-wrap .single_add_to_cart_button,
  .hm-atc-wrap .single_add_to_cart_button::before{transition:none !important;}
  .hm-swatch:hover,.hm-atc-wrap .single_add_to_cart_button:hover{transform:none;}
}

/* ── ACCORDION — springy marker, sliding body, travelling rule ────────── */
.hm-accordion-item{
  position:relative;
  transition:background .25s ease;
}
.hm-accordion-item summary{
  position:relative;
  transition:color .22s ease, letter-spacing .35s cubic-bezier(.34,1.5,.6,1),
             padding-left .35s cubic-bezier(.34,1.5,.6,1);
}
.hm-accordion-item summary:hover{
  color:#16232f;
  letter-spacing:0.18em;
  padding-left:6px;
}

/* the +/- becomes a rotating, scaling control */
.hm-accordion-item summary::after{
  transition:transform .42s cubic-bezier(.28,1.6,.4,1), color .22s ease;
  display:inline-block;
}
.hm-accordion-item summary:hover::after{color:#16232f;transform:scale(1.35);}
.hm-accordion-item[open] summary::after{transform:rotate(180deg);}
.hm-accordion-item[open] summary:hover::after{transform:rotate(180deg) scale(1.35);}

/* a rule that sweeps in under the row on hover */
.hm-accordion-item::after{
  content:"";position:absolute;left:0;bottom:0;
  width:100%;height:1px;background:var(--navy);
  transform:scaleX(0);transform-origin:left;
  transition:transform .45s cubic-bezier(.16,1.1,.3,1);
}
.hm-accordion-item:hover::after{transform:scaleX(1);}

/* body slides down instead of snapping */
.hm-accordion-item[open] .hm-accordion-body{
  animation:hmAccOpen .38s cubic-bezier(.22,1,.36,1) both;
}
@keyframes hmAccOpen{
  from{opacity:0;transform:translateY(-8px);}
  to  {opacity:1;transform:none;}
}

@media(prefers-reduced-motion:reduce){
  .hm-accordion-item summary,
  .hm-accordion-item summary::after,
  .hm-accordion-item::after{transition:none;}
  .hm-accordion-item[open] .hm-accordion-body{animation:none;}
}

/* ── COLOUR SWATCH TOOLTIP — reads the colourway name on hover ────────── */
.hm-color-rail{overflow:visible;}
.hm-color-dot{overflow:visible;}
.hm-color-dot::after{
  content:attr(data-color);
  position:absolute;
  left:calc(100% + 12px);
  top:50%;
  transform:translateY(-50%) translateX(-6px) scale(.92);
  background:#1c2b3a;color:#f2f5f7;
  font-family:'Jost',sans-serif;
  font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;
  white-space:nowrap;
  padding:7px 11px;
  border-radius:2px;
  opacity:0;pointer-events:none;
  box-shadow:0 6px 16px rgba(28,43,58,.22);
  transition:opacity .24s ease, transform .32s cubic-bezier(.34,1.6,.5,1);
  z-index:20;
}
/* little pointer */
.hm-color-dot::before{
  content:"";
  position:absolute;
  left:calc(100% + 6px);
  top:50%;
  width:7px;height:7px;
  background:#1c2b3a;
  transform:translateY(-50%) rotate(45deg) scale(.6);
  opacity:0;pointer-events:none;
  transition:opacity .24s ease, transform .32s cubic-bezier(.34,1.6,.5,1);
  z-index:19;
}
.hm-color-dot:hover::after,
.hm-color-dot:focus-visible::after{
  opacity:1;
  transform:translateY(-50%) translateX(0) scale(1);
}
.hm-color-dot:hover::before,
.hm-color-dot:focus-visible::before{
  opacity:1;
  transform:translateY(-50%) rotate(45deg) scale(1);
}
/* the dot itself keeps its own swatch fill */
.hm-color-dot span{position:relative;z-index:1;}

/* ── BREADCRUMB — umpf ───────────────────────────────────────────────── */
.hm-breadcrumb a{
  position:relative;
  padding-bottom:2px;
  transition:color .24s ease, letter-spacing .38s cubic-bezier(.34,1.5,.6,1);
}
.hm-breadcrumb a::after{
  content:"";position:absolute;left:0;bottom:0;
  width:100%;height:1px;background:var(--navy);
  transform:scaleX(0);transform-origin:left;
  transition:transform .4s cubic-bezier(.16,1.1,.3,1);
}
.hm-breadcrumb a:hover{color:var(--navy);letter-spacing:0.18em;}
.hm-breadcrumb a:hover::after{transform:scaleX(1);}
.hm-bc-sep{
  display:inline-block;
  transition:transform .4s cubic-bezier(.34,1.6,.5,1), opacity .3s ease;
}
.hm-breadcrumb:hover .hm-bc-sep{transform:rotate(18deg) scale(1.2);opacity:.7;}

@media(prefers-reduced-motion:reduce){
  .hm-color-dot::after,.hm-color-dot::before,
  .hm-breadcrumb a,.hm-breadcrumb a::after,.hm-bc-sep{transition:none;}
}
