.featured-offers{
  padding:40px 0 36px;
  border-bottom:1px solid var(--line);
  background:#fff;
}

.featured-carousel{
  width:100%;
  --cards-per-view:3;
  --carousel-gap:14px;
}

.hero-carousel{
  width:100%;
  padding:14px;
  --cards-per-view:2;
  --carousel-gap:12px;
}

.hero-carousel-frame,
.featured-carousel-frame{
  position:relative;
  overflow:hidden;
  padding:2px;
  background:#fff;
}

.hero-carousel-frame{
  border:1px solid rgba(217,225,232,.82);
  border-radius:8px;
  box-shadow:0 18px 42px rgba(29,39,48,.14);
}

.hero-carousel-track,
.featured-carousel-track{
  display:flex;
  gap:var(--carousel-gap);
  transition:transform .42s ease;
  will-change:transform;
}

.hero-slide,
.featured-slide{
  flex:0 0 calc((100% - (var(--carousel-gap) * (var(--cards-per-view) - 1))) / var(--cards-per-view));
  min-width:0;
  margin:0;
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  box-shadow:0 14px 34px rgba(29,39,48,.12);
  cursor:pointer;
}

.hero-slide{
  box-shadow:none;
  border:0;
}

.hero-product-slide{
  position:relative;
  flex:0 0 calc((100% - (var(--carousel-gap) * (var(--cards-per-view) - 1))) / var(--cards-per-view));
  min-width:0;
  aspect-ratio:1/1;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:
    linear-gradient(160deg, rgba(39,169,216,.10), transparent 42%),
    linear-gradient(180deg, #ffffff 0%, #eef4f8 100%);
  color:var(--ink);
  box-shadow:0 10px 24px rgba(29,39,48,.10);
}

.hero-product-slide:only-child{
  flex-basis:100%;
}

.hero-product-slide img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.hero-empty-state{
  min-height:300px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:8px;
  padding:24px;
  color:var(--muted);
  text-align:center;
}

.hero-empty-state strong{
  color:var(--ink);
  font-size:20px;
}

.hero-empty-state span{
  max-width:320px;
  line-height:1.45;
}

.hero-slide img,
.featured-slide img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.carousel-arrow{
  position:absolute;
  top:50%;
  width:38px;
  height:38px;
  border:1px solid rgba(217,225,232,.85);
  border-radius:6px;
  background:rgba(255,255,255,.92);
  color:var(--ink);
  font-size:28px;
  line-height:1;
  cursor:pointer;
  transform:translateY(-50%);
  box-shadow:0 10px 24px rgba(29,39,48,.14);
}

.carousel-arrow:hover{
  background:var(--soft);
  color:var(--brand-dark);
}

.carousel-prev{
  left:10px;
}

.carousel-next{
  right:10px;
}

.carousel-dots{
  display:flex;
  justify-content:center;
  gap:7px;
  margin-top:12px;
}

.carousel-dots button{
  width:9px;
  height:9px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#bac7d1;
  cursor:pointer;
}

.carousel-dots button.is-active{
  width:24px;
  border-radius:999px;
  background:var(--brand);
}

.offer-lightbox{
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(10,15,20,.88);
  touch-action:pan-y;
}

.offer-lightbox[hidden]{
  display:none;
}

.lightbox-stage{
  width:min(92vw, 900px);
  height:min(78vh, 820px);
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
}

.lightbox-stage img{
  max-width:100%;
  max-height:100%;
  display:block;
  border-radius:8px;
  background:#fff;
  box-shadow:0 24px 70px rgba(0,0,0,.45);
}

.lightbox-close,
.lightbox-nav{
  position:absolute;
  border:1px solid rgba(255,255,255,.24);
  border-radius:6px;
  background:rgba(255,255,255,.12);
  color:#fff;
  cursor:pointer;
}

.lightbox-close{
  top:18px;
  right:18px;
  width:42px;
  height:42px;
  font-size:32px;
  line-height:1;
}

.lightbox-nav{
  top:50%;
  width:46px;
  height:52px;
  font-size:38px;
  line-height:1;
  transform:translateY(-50%);
}

.lightbox-prev{
  left:18px;
}

.lightbox-next{
  right:18px;
}

.lightbox-actions{
  position:absolute;
  left:50%;
  bottom:22px;
  display:flex;
  gap:10px;
  transform:translateX(-50%);
}

.lightbox-action{
  min-width:118px;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 18px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:6px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-weight:700;
}

.lightbox-close:hover,
.lightbox-action:hover,
.lightbox-nav:hover{
  background:rgba(39,169,216,.72);
}

.home-hero{
  padding:30px 0 24px;
  background:
    linear-gradient(180deg, rgba(39,169,216,.12) 0%, rgba(234,246,251,.72) 28%, #ffffff 72%, #f4f7fa 100%);
}

.hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(420px, 560px);
  gap:32px;
  align-items:center;
}

.hero-copy h1{
  margin:0;
  max-width:660px;
  font-size:clamp(34px, 5vw, 56px);
  line-height:1.02;
  letter-spacing:0;
}

.hero-text{
  max-width:620px;
  margin:14px 0 0;
  color:var(--muted);
  font-size:18px;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.hero-visual{
  position:relative;
  min-height:300px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:
    radial-gradient(circle at 22% 20%, rgba(39,169,216,.20), transparent 30%),
    linear-gradient(145deg, #f9fbfd, #dfe8ef);
}

.photo-card{
  position:absolute;
  border:1px solid rgba(29,39,48,.16);
  border-radius:8px;
  background:#fff;
  box-shadow:0 24px 50px rgba(29,39,48,.18);
}

.main-photo{
  left:54px;
  right:48px;
  top:58px;
  padding:18px;
}

.side-photo{
  right:26px;
  bottom:46px;
  width:176px;
  padding:12px;
}

.photo-screen{
  aspect-ratio:16/10;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  padding:18px;
  border:10px solid #2a323a;
  border-radius:8px 8px 4px 4px;
  background:
    linear-gradient(135deg, rgba(39,169,216,.86), rgba(255,255,255,.18)),
    linear-gradient(160deg, #45515c, #121820);
}

.photo-screen span{
  display:block;
  width:44%;
  height:36%;
  border-radius:5px;
  background:rgba(255,255,255,.86);
}

.photo-screen.small{
  border-width:7px;
  padding:0;
}

.photo-keyboard{
  height:28px;
  margin:0 -12px;
  border-radius:0 0 18px 18px;
  background:linear-gradient(180deg, #c4c9ce, #8f969d);
}

.photo-keyboard.compact{
  height:18px;
  margin:0 -8px;
}

.highlights-section{
  padding:24px 0 22px;
  border-bottom:1px solid var(--line);
  background:#fff;
}

.highlights-carousel{
  position:relative;
  --cards-per-view:6;
  --carousel-gap:18px;
}

.highlights-frame{
  position:relative;
  overflow:hidden;
  padding:0 42px;
}

.highlights-track{
  display:flex;
  gap:var(--carousel-gap);
  transition:transform .42s ease;
  will-change:transform;
}

.highlight-topic{
  flex:0 0 calc((100% - (var(--carousel-gap) * (var(--cards-per-view) - 1))) / var(--cards-per-view));
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ink);
  cursor:pointer;
  font:inherit;
  text-align:center;
}

.highlight-topic-image{
  width:102px;
  height:102px;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:5px;
  border:2px solid #d8e0e6;
  border-radius:50%;
  background:#fff;
  box-shadow:0 8px 18px rgba(29,39,48,.10);
  transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.highlight-topic-image img{
  width:100%;
  height:100%;
  display:block;
  border-radius:50%;
  object-fit:cover;
  background:var(--soft);
}

.highlight-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(180deg, #f8fbfd 0%, #e9f2f7 100%);
  color:var(--brand-dark);
  font-size:28px;
  font-weight:900;
}

.highlight-topic-title{
  width:100%;
  color:#111820;
  font-size:15px;
  font-weight:700;
  line-height:1.2;
}

.highlight-topic:hover .highlight-topic-image{
  border-color:var(--brand);
  box-shadow:0 12px 24px rgba(19,125,166,.16);
  transform:translateY(-2px);
}

.highlights-prev{
  left:0;
}

.highlights-next{
  right:0;
}

.category-section{
  padding:28px 0 34px;
  background:var(--bg);
}

.category-switcher{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  box-shadow:0 12px 30px rgba(29,39,48,.05);
}

.shop-strip{
  border-bottom:1px solid var(--line);
  background:#fff;
}

.shop-strip-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
}

.shop-strip-grid > .category-tab{
  min-height:64px;
  padding:14px 18px;
  border-right:1px solid var(--line);
}

.shop-strip-grid > .category-tab:last-child{
  border-right:0;
}

.category-tab{
  border:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
  font:inherit;
  font-weight:700;
  text-align:left;
}

.category-tab:hover,
.category-tab.is-active{
  color:var(--brand-dark);
}

.category-carousel-area{
  padding:18px;
  background:linear-gradient(180deg, #f8fbfd 0%, #eef4f8 100%);
}

.category-panel[hidden]{
  display:none;
}

.category-carousel{
  width:100%;
  --cards-per-view:3;
  --carousel-gap:14px;
}

.catalog-card{
  flex:0 0 calc((100% - (var(--carousel-gap) * (var(--cards-per-view) - 1))) / var(--cards-per-view));
  min-width:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  box-shadow:0 14px 34px rgba(29,39,48,.10);
  cursor:pointer;
}

.catalog-photo{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:
    linear-gradient(160deg, rgba(39,169,216,.12), transparent 42%),
    linear-gradient(180deg, #ffffff 0%, #eef4f8 100%);
}

.catalog-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.category-section .catalog-photo{
  padding:0;
  overflow:hidden;
}

.category-section .catalog-photo img{
  object-fit:cover;
}

.catalog-placeholder{
  width:min(124px, 70%);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border:1px solid rgba(39,169,216,.24);
  border-radius:8px;
  background:#fff;
  color:var(--brand-dark);
  font-size:36px;
  font-weight:900;
}

.catalog-body{
  padding:18px 18px 16px;
}

.category-empty{
  min-height:180px;
  display:grid;
  place-items:center;
  border:1px dashed var(--line);
  border-radius:8px;
  background:#fff;
  color:var(--muted);
  text-align:center;
}

.category-empty p{
  margin:0;
  font-weight:700;
}

.flip-collection-section{
  padding:38px 0 36px;
  border-bottom:1px solid var(--line);
  background:
    linear-gradient(180deg, #fff 0%, #f8fbfd 100%);
}

.flip-carousel{
  width:100%;
  --cards-per-view:4;
  --carousel-gap:14px;
}

.flip-carousel-frame{
  position:relative;
  overflow:hidden;
  padding:2px;
}

.flip-carousel-track{
  display:flex;
  align-items:stretch;
  gap:var(--carousel-gap);
  transition:transform .42s ease;
  will-change:transform;
}

.flip-card{
  flex:0 0 calc((100% - (var(--carousel-gap) * (var(--cards-per-view) - 1))) / var(--cards-per-view));
  min-width:0;
  min-height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  box-shadow:0 14px 34px rgba(29,39,48,.10);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.flip-card:hover{
  border-color:rgba(39,169,216,.46);
  box-shadow:0 18px 42px rgba(29,39,48,.14);
  transform:translateY(-2px);
}

.flip-card-media{
  min-height:220px;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:12px;
  background:
    linear-gradient(160deg, rgba(39,169,216,.12), transparent 42%),
    linear-gradient(180deg, #ffffff 0%, #eef4f8 100%);
}

.flip-card-media img{
  display:block;
  width:100%;
  height:100%;
  max-height:260px;
  object-fit:contain;
}

.flip-card-body{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:8px;
  padding:15px;
}

.flip-card-body strong{
  color:var(--ink);
  font-size:18px;
  line-height:1.18;
}

.flip-card-body span{
  color:var(--muted);
  font-size:14px;
  line-height:1.45;
}

.flip-card-body .product-card-indicators{
  display:grid;
  gap:8px;
}

.flip-card-body .product-card-indicator-badges{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.flip-card-body .product-card-indicator-badges span{
  min-height:26px;
  color:var(--ink);
  font-size:12px;
  line-height:1;
}

.flip-card-body .product-card-indicator-flags{
  color:var(--muted);
  font-size:13px;
  font-weight:700;
  line-height:1.35;
}

.flip-card-body em{
  align-self:flex-start;
  margin-top:auto;
  padding:8px 11px;
  border-radius:6px;
  background:var(--soft);
  color:var(--brand-dark);
  font-size:18px;
  font-style:normal;
  font-weight:900;
  line-height:1;
}

.catalog-brand{
  display:block;
  color:var(--brand-dark);
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.catalog-body h3{
  margin:8px 0 8px;
  color:var(--ink);
  font-size:24px;
  line-height:1.15;
  letter-spacing:0;
}

.catalog-body p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.5;
}

.product-card-indicators{
  display:grid;
  gap:8px;
  margin:0;
}

.product-card-indicator-badges{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.product-card-indicator-badges span{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#f8fbfd;
  color:var(--ink);
  font-size:12px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}

.product-card-indicator-flags{
  color:var(--muted);
  font-size:13px;
  font-weight:700;
  line-height:1.35;
}

.catalog-price{
  display:inline-flex;
  margin-top:16px;
  padding:9px 13px;
  border-radius:6px;
  background:var(--soft);
  color:var(--brand-dark);
  font-size:20px;
  line-height:1;
}

.catalog-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:10px 14px;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
}

.catalog-badges span{
  display:inline-flex;
  align-items:center;
  gap:7px;
}

.catalog-badges span:before{
  content:"";
  width:16px;
  height:16px;
  flex:0 0 16px;
  border:2px solid var(--brand);
  border-radius:50%;
  background:#fff;
}

.section-heading{
  display:flex;
  align-items:flex-end;
  justify-content:flex-start;
  gap:18px;
  margin-bottom:18px;
}

.section-heading h2{
  margin:0;
  line-height:1.2;
  letter-spacing:0;
}

.section-title{
  margin:0;
  color:var(--brand-dark);
  font-size:18px;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.how-it-works{
  padding:38px 0 36px;
  border-bottom:1px solid var(--line);
  background:#fff;
}

.how-it-works h2{
  margin:0;
}

.how-accordion{
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  overflow:hidden;
}

.how-item + .how-item{
  border-top:1px solid var(--line);
}

.how-trigger{
  width:100%;
  min-height:60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 16px;
  border:0;
  background:#fff;
  color:var(--ink);
  cursor:pointer;
  font:inherit;
  font-weight:700;
  text-align:left;
}

.how-trigger:hover,
.how-item.is-open .how-trigger{
  background:var(--soft);
  color:var(--brand-dark);
}

.how-toggle{
  position:relative;
  width:22px;
  height:22px;
  flex:0 0 22px;
  border:1px solid rgba(19,125,166,.34);
  border-radius:6px;
  background:#fff;
}

.how-toggle:before,
.how-toggle:after{
  content:"";
  position:absolute;
  left:5px;
  right:5px;
  top:50%;
  height:2px;
  background:var(--brand-dark);
  transform:translateY(-50%);
}

.how-toggle:after{
  left:50%;
  right:auto;
  top:5px;
  bottom:5px;
  width:2px;
  height:auto;
  transform:translateX(-50%);
}

.how-item.is-open .how-toggle:after{
  display:none;
}

.how-content{
  max-height:0;
  overflow:hidden;
  transition:max-height .26s ease;
}

.how-item.is-open .how-content{
  max-height:360px;
}

.how-content p{
  margin:0;
  padding:0 16px 15px;
  color:var(--muted);
  line-height:1.58;
}

.product-card{
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface);
}

.product-card{
  overflow:hidden;
}

.product-media{
  min-height:170px;
}

.product-media-student{
  background-image:
    linear-gradient(160deg, rgba(39,169,216,.20), transparent 38%),
    linear-gradient(180deg, #f9fbfd, #d2dbe3);
}

.product-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:14px 14px 0;
}

.product-meta span{
  color:var(--muted);
  font-size:13px;
}

.product-card p{
  margin:10px 14px 0;
  color:var(--muted);
}

.product-status{
  display:inline-flex;
  margin:14px;
  padding:6px 8px;
  border-radius:6px;
  background:var(--soft);
  color:var(--brand-dark);
  font-size:13px;
  font-weight:700;
}

@media (max-width:1100px) and (min-width:861px){
  .flip-carousel{
    --cards-per-view:3;
  }
}

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

  .featured-offers{
    padding:36px 0 32px;
  }

  .featured-offers-copy{
    text-align:left;
  }

  .featured-carousel{
    width:100%;
    margin:0 auto;
    --cards-per-view:2;
    --carousel-gap:12px;
  }

  .category-carousel{
    --cards-per-view:2;
    --carousel-gap:12px;
  }

  .flip-carousel{
    --cards-per-view:2;
    --carousel-gap:12px;
  }

  .highlights-carousel{
    --cards-per-view:5;
    --carousel-gap:14px;
  }

  .highlights-frame{
    padding:0 36px;
  }

  .highlight-topic-image{
    width:90px;
    height:90px;
  }

  .hero-carousel{
    padding:12px;
    --cards-per-view:2;
    --carousel-gap:10px;
  }

  .shop-strip-grid > .category-tab{
    min-height:56px;
    padding:13px 14px;
  }
}

@media (max-width:520px){
  .hero-carousel,
  .featured-carousel,
  .category-carousel,
  .flip-carousel{
    --cards-per-view:1;
  }

  .home-hero{
    padding:28px 0 24px;
  }

  .featured-offers{
    padding:32px 0 30px;
  }

  .category-carousel-area{
    padding:14px;
  }

  .highlights-section{
    padding:22px 0 20px;
  }

  .section-title{
    font-size:17px;
  }

  .highlights-carousel{
    --cards-per-view:3;
    --carousel-gap:12px;
  }

  .highlights-frame{
    padding:0 34px;
  }

  .highlight-topic{
    gap:8px;
  }

  .highlight-topic-image{
    width:72px;
    height:72px;
    padding:4px;
  }

  .highlight-topic-title{
    font-size:13px;
  }

  .how-it-works{
    padding:32px 0 30px;
  }

  .how-trigger{
    min-height:56px;
    padding:12px 14px;
  }

  .how-content p{
    padding:0 14px 14px;
  }

  .carousel-arrow{
    width:34px;
    height:34px;
    font-size:25px;
  }

  .offer-lightbox{
    padding:12px;
  }

  .lightbox-stage{
    width:96vw;
    height:76vh;
  }

  .lightbox-nav{
    display:none;
  }

  .lightbox-actions{
    bottom:16px;
    width:calc(100% - 32px);
    justify-content:center;
  }

  .lightbox-action{
    min-width:0;
    flex:1;
  }
}
