/* ===== Homepage sections + factory page ===== */
.eyebrow{display:block;color:var(--accent-dark);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;}
.cart-summary{position:static!important;}
.err-line{color:#c0392b;font-size:13px;min-height:18px;margin-top:4px;}

/* ---- Featured slider ---- */
.feat{background:var(--bg-soft);padding:64px 0 70px;}
.feat-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:30px;}
.feat-head h2{font-size:34px;margin:0;}
.feat-nav{display:flex;align-items:center;gap:10px;}
.feat-all{font-weight:600;font-size:14px;color:var(--accent-dark);margin-right:8px;border-bottom:1.5px solid transparent;transition:border-color .2s;}
.feat-all:hover{border-color:var(--accent-dark);}
.feat-btn{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);background:#fff;display:grid;place-items:center;transition:all .25s var(--ease);}
.feat-btn:hover{background:var(--ink);border-color:var(--ink);color:#fff;}
.feat-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px;}
.feat-track::-webkit-scrollbar{display:none;}
.fcard{flex:0 0 calc((100% - 80px) / 5);scroll-snap-align:start;display:block;min-width:0;}
.fimg{aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:#e9e7e2;}
.fimg img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.fcard:hover .fimg img{transform:scale(1.05);}
.fmeta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;}
.fmeta h3{font-size:15.5px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fmeta svg{flex-shrink:0;transition:transform .25s var(--ease);}
.fcard:hover .fmeta svg{transform:translateX(4px);color:var(--accent-dark);}
.ftags{margin-top:6px;font-size:12.5px;color:var(--ink-soft);display:flex;align-items:center;gap:9px;}
.ftags i{width:1px;height:11px;background:#c9c6bf;display:inline-block;}

/* ---- Why section ---- */
.why{background:#fff;}
.why-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:center;}
.why-collage{display:grid;grid-template-columns:1.1fr .9fr;grid-template-rows:auto auto;gap:16px;}
.why-collage figure{margin:0;overflow:hidden;border-radius:6px;background:#e9e7e2;}
.why-collage img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.why-collage figure:hover img{transform:scale(1.04);}
.wc-tall{grid-row:1 / 3;aspect-ratio:3/4.4;}
.wc-wide{aspect-ratio:4/3;}
.wc-small{aspect-ratio:4/3;}
.why-copy h2{font-size:34px;line-height:1.2;margin-bottom:18px;}
.why-copy p{color:var(--ink-soft);line-height:1.8;margin:0 0 16px;max-width:60ch;}
.why-points{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px;margin:26px 0 32px;}
.why-points li{padding-left:16px;border-left:2px solid var(--accent);}
.why-points b{display:block;font-size:14.5px;margin-bottom:2px;}
.why-points span{font-size:13px;color:var(--ink-soft);line-height:1.5;}

/* ---- Process ---- */
.proc{background:#14110c;color:#fff;overflow:hidden;}
.proc .eyebrow{color:var(--accent);}
.proc-head{text-align:center;max-width:620px;margin:0 auto 60px;}
.proc-head h2{font-size:36px;margin-bottom:12px;}
.proc-head p{color:#c9c3b6;line-height:1.7;margin:0;}
.proc-row{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:18px;}
.proc-line{position:absolute;left:8%;right:8%;top:79px;height:0;border-top:2px dashed rgba(255,255,255,.14);}
.proc-line i{position:absolute;left:0;top:-2px;height:0;width:0;border-top:2px dashed var(--accent);transition:width 2.6s cubic-bezier(.4,0,.2,1) .2s;}
.proc-row.in .proc-line i{width:100%;}
.pstep{position:relative;text-align:center;opacity:0;transform:translateY(26px) scale(.94);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.proc-row.in .pstep{opacity:1;transform:none;}
.proc-row.in .pstep:nth-of-type(1){transition-delay:.15s}.proc-row.in .pstep:nth-of-type(2){transition-delay:.6s}.proc-row.in .pstep:nth-of-type(3){transition-delay:1.05s}
.proc-row.in .pstep:nth-of-type(4){transition-delay:1.5s}.proc-row.in .pstep:nth-of-type(5){transition-delay:1.95s}.proc-row.in .pstep:nth-of-type(6){transition-delay:2.4s}
.pring{position:relative;width:132px;height:132px;margin:14px auto 20px;}
.pring img{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);border-radius:50%;object-fit:cover;transition:transform .6s var(--ease);}
.pring svg{position:absolute;inset:0;width:100%;height:100%;animation:ringSpin 28s linear infinite;}
.pring circle{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-dasharray:5 5;stroke-linecap:round;}
.pstep:hover .pring img{transform:scale(1.08);}
.pstep h3{font-size:15.5px;margin:0 0 8px;}
.pstep p{font-size:13px;line-height:1.6;color:#b9b2a3;margin:0;padding:0 4px;}
@keyframes ringSpin{to{transform:rotate(360deg)}}

/* ---- Categories intro ---- */
.cats-intro{padding:64px 0 0;text-align:center;}
.cats-intro h2{font-size:34px;margin:0;}
.cat-parent h2{font-size:26px;}

/* ---- scroll reveal ---- */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
[data-reveal].in{opacity:1;transform:none;}

/* ---- Factory page ---- */
.fx-hero{position:relative;background:#14110c;color:#fff;overflow:hidden;}
.fx-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.38;}
.fx-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#14110c 8%,rgba(20,17,12,.55) 60%,rgba(20,17,12,.2));}
.fx-hero .container{position:relative;z-index:2;padding-top:96px;padding-bottom:84px;}
.fx-hero h1{font-size:clamp(34px,5.4vw,60px);line-height:1.08;max-width:12em;margin:0 0 18px;}
.fx-hero p{max-width:52ch;color:#d8d2c4;line-height:1.75;font-size:16px;margin:0 0 30px;}
.fx-badges{display:flex;gap:26px;flex-wrap:wrap;color:#e9e4d8;font-size:14px;font-weight:500;}
.fx-badges span{display:inline-flex;align-items:center;gap:9px;}
.fx-badges svg{color:var(--accent);}
.fx-journey-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;flex-wrap:wrap;margin-bottom:38px;}
.fx-journey-head h2{font-size:36px;margin:0;}
.fx-journey-head p{max-width:46ch;color:var(--ink-soft);line-height:1.7;margin:0;}
.fx-steps{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.fx-step{display:grid;grid-template-columns:42% 1fr;background:var(--bg-soft);border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.fx-step:nth-child(4n+3),.fx-step:nth-child(4n+4){}
.fx-step .fx-img{position:relative;min-height:230px;background:#e9e7e2;overflow:hidden;}
.fx-step .fx-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.fx-step:hover .fx-img img{transform:scale(1.05);}
.fx-body{padding:24px 24px 22px;}
.fx-no{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--ink);color:var(--accent);font-weight:700;font-size:15px;margin-bottom:12px;}
.fx-body h3{font-size:18px;margin-bottom:10px;}
.fx-body ul{display:grid;gap:6px;margin:0 0 14px;}
.fx-body li{position:relative;padding-left:16px;font-size:13.5px;color:var(--ink-soft);line-height:1.5;}
.fx-body li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--accent);}
.fx-tools{font-size:11.5px;color:#7a7b80;background:#eceae5;border-radius:4px;padding:6px 10px;display:inline-block;}
.fx-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.fx-col{padding:30px 28px;border-right:1px solid var(--line);}
.fx-col:last-child{border-right:0;}
.fx-col h3{font-size:18px;margin-bottom:8px;}
.fx-col>p{font-size:13.5px;color:var(--ink-soft);line-height:1.6;margin:0 0 16px;}
.fx-col li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;margin-bottom:9px;color:#333;}
.fx-col li svg{flex-shrink:0;margin-top:2px;color:var(--accent-dark);}
.fx-cta{background:#14110c;color:#fff;text-align:center;padding:64px 0;}
.fx-cta h2{font-size:32px;margin-bottom:10px;}
.fx-cta p{color:#c9c3b6;max-width:52ch;margin:0 auto 26px;line-height:1.7;}

/* ---- responsive ---- */
@media (max-width:1100px){
  .fcard{flex-basis:calc((100% - 40px) / 3);}
  .why-grid{gap:40px;}
  .proc-row{grid-template-columns:repeat(3,1fr);row-gap:44px;}
  .proc-line{display:none;}
  .fx-steps{grid-template-columns:1fr;}
}
@media (max-width:820px){
  .why-grid{grid-template-columns:1fr;}
  .fx-trio{grid-template-columns:1fr;}
  .fx-col{border-right:0;border-bottom:1px solid var(--line);}
  .fx-col:last-child{border-bottom:0;}
}
@media (max-width:640px){
  .feat{padding:48px 0;}
  .feat-head h2,.why-copy h2,.proc-head h2,.cats-intro h2,.fx-journey-head h2{font-size:27px;}
  .fcard{flex-basis:calc((100% - 16px) / 1.55);}
  .feat-track{gap:16px;}
  .feat-all{display:none;}
  .why-points{grid-template-columns:1fr;}
  .proc-row{grid-template-columns:1fr 1fr;gap:34px 14px;}
  .pring{width:112px;height:112px;}
  .fx-step{grid-template-columns:1fr;}
  .fx-step .fx-img{min-height:200px;}
  .fx-hero .container{padding-top:64px;padding-bottom:56px;}
}
@media (prefers-reduced-motion:reduce){
  .pstep,[data-reveal]{opacity:1!important;transform:none!important;transition:none!important;}
  .proc-line i{width:100%!important;transition:none!important;}
  .pring svg{animation:none!important;}
}

.fx-step.rev{grid-template-columns:1fr 42%;}
.fx-step.rev .fx-img{order:2;}
@media (max-width:640px){.fx-step.rev{grid-template-columns:1fr;}.fx-step.rev .fx-img{order:0;}}

/* factory: odd last step centred */
.fx-step:last-child:nth-child(odd){grid-column:1/-1;width:calc(50% - 11px);justify-self:center;}
@media (max-width:1100px){.fx-step:last-child:nth-child(odd){width:100%;}}

/* custom branding */
.brand-sec{background:#fff;}
.brand-head{text-align:center;max-width:640px;margin:0 auto 40px;}
.brand-head h2{font-size:34px;margin:0 0 12px;}
.brand-head p{color:var(--ink-soft);line-height:1.7;margin:0;}
.brand-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;align-items:stretch;}
.brand-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px 14px 26px;text-align:center;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.brand-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.brand-img{aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:var(--bg-soft);}
.brand-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.brand-card:hover .brand-img img{transform:scale(1.06);}
.brand-card h3{font-size:19px;margin:20px 0 10px;}
.brand-card p{font-size:13.5px;line-height:1.7;color:var(--ink-soft);margin:0;padding:0 8px;}
@media (max-width:1100px){.brand-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.brand-grid{grid-template-columns:1fr;}.brand-head h2{font-size:27px;}}

/* ===== Sub-category cards: entrance + hover animation (home page) ===== */
.cat-card{border-radius:14px;}
.cat-card.anim:not(.show){opacity:0;}
.cat-card.anim.show{animation:catIn .8s var(--ease) backwards;animation-delay:calc(var(--i,0) * 110ms);}
@keyframes catIn{from{opacity:0;transform:translateY(46px) scale(.92);}to{opacity:1;transform:none;}}
.cat-card::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);transform:translateX(-120%);pointer-events:none;}
.cat-card:hover::after{transform:translateX(120%);transition:transform .9s var(--ease);}
.cat-card .overlay{transition:opacity .4s;}
.cat-card:hover .overlay{background:linear-gradient(180deg,rgba(0,0,0,.05) 25%,rgba(0,0,0,.82) 100%);}
.cat-card .cat-info{transition:transform .45s var(--ease);}
.cat-card .cat-info::before{content:"";display:block;width:28px;height:3px;border-radius:3px;background:var(--accent);margin-bottom:10px;transition:width .45s var(--ease);}
.cat-card:hover .cat-info::before{width:62px;}
.cat-card .cat-info h4{font-size:17px;}
.cat-card .cat-go{display:flex;align-items:center;gap:6px;font-style:normal;font-size:12.5px;font-weight:600;color:#fff;max-height:0;opacity:0;overflow:hidden;transition:max-height .4s var(--ease),opacity .35s,margin .4s;margin-top:0;}
.cat-card:hover .cat-go{max-height:24px;opacity:1;margin-top:8px;}
.cat-card:hover{transform:translateY(-8px);box-shadow:0 18px 40px rgba(20,20,20,.18);}
.cat-card:hover .cat-go svg{animation:nudge .9s ease-in-out infinite;}
@keyframes nudge{0%,100%{transform:translateX(0);}50%{transform:translateX(4px);}}
@media (hover:none){.cat-card .cat-go{max-height:24px;opacity:1;margin-top:8px;}.cat-card .arrow-chip{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.cat-card.anim:not(.show){opacity:1;}.cat-card.anim.show{animation:none;}}

/* three cards per row on desktop so 6 sub-categories make two even rows (no lonely card) */
@media (min-width:861px){
  .cat-grid .cat-card{flex:0 0 calc((100% - 44px) / 3);aspect-ratio:1/1.08;}
}
