/* Homepage Products — Smith+Nephew-inspired layout */

.sn-home-products.products-section{
  padding:var(--sec-pad) 0 0;
  background:transparent;
  background-image:none;
  overflow:visible;
}
.sn-home-products.products-section::after{display:none}

.sn-home-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--page-gutter);
}

/* ── Top products — 4 per page carousel, full container width ── */
.sn-top-products{padding:0 0 72px}
.sn-top-products__header{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px 24px;margin-bottom:28px;
}
.sn-top-products__title{
  font-size:clamp(22px,2.4vw,28px);
  font-weight:700;
  color:#2a3340;
  letter-spacing:-.02em;
  line-height:1.25;
  margin:0;
  text-align:start;
}
/* Carousel — no overflow clip on viewport so card shadows match news grid */
.sn-top-carousel{
  position:relative;width:100%;
  padding:16px 0 0;margin:-16px 0 0;
  overflow:visible;
}
.sn-top-carousel__viewport{
  overflow-x:clip;
  overflow-y:visible;
  width:100%;
}
.sn-top-carousel__track{
  display:flex;width:100%;
  overflow:visible;
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  will-change:transform;
}
.sn-top-slide,
.sn-top-grid{overflow:visible}
/* Shadow paints below card — reserve space inside grid */
.sn-home-products .sn-top-grid{padding-bottom:56px}
.sn-top-carousel__track{display:flex;width:100%}
.sn-top-slide{
  flex:0 0 100%;min-width:100%;scroll-snap-align:start;
  box-sizing:border-box;
}
.sn-top-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  width:100%;
}
.sn-top-card{
  min-width:0;
  background:#fff;
  border:1px solid #e8ecf0;
  border-radius:var(--radius-module);
  overflow:hidden;
  display:flex;flex-direction:column;
  box-shadow:none;
  transition:
    border-color .35s ease,
    box-shadow .35s ease,
    transform .35s ease;
  text-decoration:none;color:inherit;
}
.sn-home-products .sn-top-card:hover,
.sn-home-news .sn-top-card:hover{
  border-color:#cfd8e4;
  box-shadow:0 14px 40px rgba(8,28,64,.08);
  transform:translateY(-3px);
}
.sn-top-card__media{
  aspect-ratio:4/3;
  background:#f5f7fa;
  overflow:hidden;
  position:relative;
}
.sn-top-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s ease;
}
.sn-home-products .sn-top-card:hover .sn-top-card__media img{
  transform:scale(1.05);
}
.sn-top-card__body{padding:22px 24px 26px;flex:1;display:flex;flex-direction:column}
.sn-top-card__name{
  font-size:17px;font-weight:700;color:#2a3340;
  line-height:1.35;margin:0 0 10px;letter-spacing:-.01em;
  flex:0 0 auto;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
h3.sn-top-card__name{
  font-size:17px!important;font-weight:700!important;line-height:1.35!important;
  min-height:calc(1.35em * 2);
}
.sn-top-card__desc{
  font-size:14px;line-height:1.65;color:#5a6472;
  margin:0 0 18px;flex:0 0 auto;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
  min-height:calc(1.65em * 4);
}
.sn-top-card__cta{
  display:inline-flex;align-items:center;gap:6px;
  align-self:flex-start;
  margin-top:auto;
  padding:10px 18px;
  font-size:13px;font-weight:700;line-height:1.2;
  color:#fff;
  background:var(--zd-blue,#003B8E);
  border-radius:9999px;
  transition:background-color .2s ease,gap .2s ease,box-shadow .2s ease;
}
.sn-top-card__cta svg,
.sn-bu-teaser__cta svg{width:14px;height:14px;flex-shrink:0}
.sn-home-products .sn-top-card:hover .sn-top-card__cta,
.sn-top-card:hover .sn-top-card__cta{
  gap:8px;
  background:#002d6b;
  box-shadow:0 4px 14px rgba(0,59,142,.22);
}

.sn-top-footer{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px 32px;margin-top:28px;flex-wrap:wrap;
}
.sn-top-stats{
  display:flex;align-items:center;gap:0;flex-wrap:wrap;
}
.sn-top-stat{
  display:flex;align-items:baseline;gap:6px;
  padding-right:22px;margin-right:22px;
  border-right:1px solid #e8ebef;
  white-space:nowrap;
}
.sn-top-stat:last-child{
  padding-right:0;margin-right:0;border-right:none;
}
.sn-top-stat__num{
  font-size:22px;font-weight:700;color:#b0b8c4;
  line-height:1;letter-spacing:-.02em;flex-shrink:0;
}
.sn-top-stat__label{
  font-size:12px;font-weight:500;color:#b0b8c4;
  line-height:1.3;letter-spacing:.01em;
}
.sn-top-carousel__nav{
  display:flex;justify-content:flex-end;gap:12px;margin-top:0;
  flex-shrink:0;
}
.sn-top-carousel__btn{
  width:44px;height:44px;padding:0;
  border:1.5px solid var(--zd-blue);border-radius:var(--radius);
  background:#fff;color:var(--zd-blue);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .2s ease,color .2s ease;
}
.sn-top-carousel__btn:hover{background:var(--zd-blue);color:#fff}
.sn-top-carousel__btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}
.sn-top-carousel__btn svg{width:18px;height:18px}

/* ── Business unit blocks ── */
.sn-bu-list{display:flex;flex-direction:column;gap:0}
.sn-bu-block{padding:64px 0;border-top:1px solid #eef1f5}
.sn-bu-block:first-child{border-top:none;padding-top:0}

.sn-bu-header{
  display:grid;grid-template-columns:1fr 1fr;gap:40px 56px;
  align-items:center;margin-bottom:0;
}
.sn-bu-header__title{
  font-size:clamp(26px,3vw,34px);font-weight:700;
  color:#2a3340;letter-spacing:-.03em;line-height:1.2;
  margin:0 0 16px;
}
.sn-bu-header__desc{
  font-size:16px;line-height:1.7;color:#5a6472;margin:0;
  max-width:520px;
}
.sn-bu-visual{
  display:flex;justify-content:center;align-items:center;
}
.sn-bu-visual img{
  width:100%;max-width:480px;height:auto;max-height:360px;
  object-fit:cover;border-radius:var(--radius-module);
  box-shadow:0 12px 40px rgba(8,24,48,.08);
}

/* Card-grid variant (Wound Care style) */
.sn-bu-block--cards .sn-bu-header{margin-bottom:40px}
.sn-bu-cards-wrap{
  background:#f4f6f9;
  margin:0 calc(-1 * var(--page-gutter));padding:40px var(--page-gutter) 48px;
}
.sn-bu-cards{
  max-width:var(--max);margin:0 auto;
  display:grid;grid-template-columns:repeat(2,1fr);gap:24px;
}
.sn-bu-card{
  background:#fff;border-radius:var(--radius-module);padding:32px 28px 28px;
  box-shadow:0 2px 12px rgba(8,24,48,.04);
  display:flex;flex-direction:column;
}
.sn-bu-card__title{
  font-size:20px;font-weight:700;color:var(--zd-rose);
  margin:0 0 12px;line-height:1.3;
}
.sn-bu-card__desc{
  font-size:14px;line-height:1.65;color:#5a6472;
  margin:0 0 20px;flex:1;
}
.sn-bu-card__link{
  display:inline-flex;align-items:center;gap:4px;
  font-size:13px;font-weight:400;color:var(--zd-rose);
  text-decoration:none;transition:gap .2s ease,color .2s ease;
}
.sn-bu-card__link:hover{gap:8px;color:#a00d58}
.sn-bu-card__link svg{width:16px;height:16px;flex-shrink:0}

/* Teaser variant (Sports Medicine style) */
.sn-bu-teaser{
  display:grid;grid-template-columns:1fr 1fr;gap:40px 56px;
  align-items:center;
}
.sn-bu-teaser--reverse .sn-bu-teaser__text{order:2}
.sn-bu-teaser--reverse .sn-bu-teaser__visual{order:1}
.sn-bu-teaser__title{
  font-size:clamp(26px,3vw,34px);font-weight:700;
  color:#2a3340;letter-spacing:-.03em;line-height:1.2;
  margin:0 0 16px;
}
.sn-bu-teaser__desc{
  font-size:16px;line-height:1.7;color:#5a6472;
  margin:0 0 24px;max-width:480px;
}
.sn-bu-teaser__cta{
  display:inline-flex;align-items:center;gap:8px;
  font-size:14px;font-weight:400;color:var(--zd-rose);
  text-decoration:none;transition:gap .2s ease,color .2s ease;
}
.sn-bu-teaser__cta:hover{gap:12px;color:#a00d58}
.sn-bu-teaser__cta svg{width:18px;height:18px}
.sn-bu-teaser__visual img{
  width:100%;max-width:520px;height:auto;max-height:380px;
  object-fit:cover;border-radius:var(--radius-module);
  box-shadow:0 12px 40px rgba(8,24,48,.08);
}

@media(max-width:960px){
  .sn-top-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .sn-bu-header,.sn-bu-teaser{grid-template-columns:1fr;gap:28px}
  .sn-bu-teaser--reverse .sn-bu-teaser__text,
  .sn-bu-teaser--reverse .sn-bu-teaser__visual{order:unset}
  .sn-bu-visual img{max-height:280px}
  .sn-bu-cards{grid-template-columns:1fr}
}
@media(max-width:640px){
  .sn-top-grid{grid-template-columns:1fr;gap:14px}
  .sn-top-products{padding-bottom:56px}
  .sn-top-products__header{align-items:flex-end;margin-bottom:20px}
  .sn-top-footer{flex-direction:column;align-items:stretch;margin-top:20px}
  .sn-top-stats{gap:16px 0}
  .sn-top-stat{padding-right:16px;margin-right:16px}
  .sn-top-stat__num{font-size:18px}
  .sn-top-stat__label{font-size:11px}
  .sn-top-carousel__nav{margin-left:0;justify-content:flex-end}
  .sn-bu-block{padding:48px 0}
  .sn-bu-cards-wrap{padding:28px var(--page-gutter) 36px;margin:0 calc(-1 * var(--page-gutter))}
}
