:root { --afs-pink:#ec0c6e; --afs-purple:#4a1a7d; --afs-cream:#fff8f2; --afs-lilac:#f3e8ff; }
body { font-family: Outfit, sans-serif; background: #fff; }
.afs-exclusive { color: var(--afs-pink) !important; font-weight: 700; }
.afs-call, .afs-pink { background: #111 !important; color: #fff !important; text-transform: uppercase; font-weight: 600; letter-spacing: .04em; }
.afs-pink { background: var(--afs-pink) !important; }
.afs-call:hover, .afs-pink:hover { opacity: .88; }
.afs-card-cta { padding: 0 14px 16px; }
.product-card-wrapper { background: #fff; border-radius: 10px; box-shadow: 0 7px 18px #1717170d; }
.afs-archive, .afs-product, .afs-desc { padding-top: 24px; padding-bottom: 24px; }
.page-width { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.collection-hero { position: relative; background: var(--afs-lilac); overflow: hidden; }
.collection-hero-img { width: 100%; height: auto; display: block; }
.collection-hero-content { position: absolute; top: 50%; left: 5%; transform: translateY(-50%); max-width: 600px; }
.collection-hero--plain .collection-hero-content { position: relative; transform: none; top: 0; padding: 64px 5%; }
.collection-hero-title { font-size: 36px; font-weight: 700; margin: 0; color: #121212; }
.afs-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.afs-chip { border: 1px solid #ddd; border-radius: 999px; padding: 6px 16px; text-decoration: none; color: #111; font-size: 14px; }
.afs-chip:hover { border-color: var(--afs-pink); color: var(--afs-pink); }
.afs-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; font-size: 14px; }
.afs-toolbar select { border: 0; font: inherit; }
.afs-crumbs { font-size: 14px; padding-top: 20px; }
.afs-crumbs a { text-decoration: none; }
.afs-product { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.afs-main-img img { width: 100%; height: auto; border-radius: 10px; }
.afs-thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.afs-thumb { border: 1px solid #ddd; background: #fff; padding: 2px; cursor: pointer; width: 78px; }
.afs-thumb.on { border-color: #111; }
.afs-thumb img { width: 100%; display: block; }
.afs-title { font-size: 2.4rem; font-weight: 600; margin: 6px 0 14px; }
.afs-usps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 16px 0; font-size: 13px; }
.afs-usps b { display: block; font-size: 12px; text-transform: uppercase; }
.afs-usps span { color: #666; }
.afs-instock { font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: #108474; font-weight: 600; }
.afs-instock:before { content: ""; display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #108474; margin-right: 8px; }
.afs-note { color: #666; margin: 14px 0; }
.afs-desc { background: var(--afs-cream); max-width: none; }
.afs-desc > * { max-width: 1160px; margin-left: auto; margin-right: auto; }
.afs-tab { color: var(--afs-pink); text-transform: uppercase; font-size: 13px; letter-spacing: .1em; border-bottom: 2px solid var(--afs-pink); display: inline-block; margin-bottom: 20px; }
.afs-related { background: var(--afs-cream); padding: 40px 0 60px; }
.pagination-wrapper ul { display: flex; gap: 8px; justify-content: center; list-style: none; padding: 30px 0; }
.pagination-wrapper a, .pagination-wrapper span { padding: 6px 12px; text-decoration: none; }
.pagination-wrapper .current { text-decoration: underline; }
@media (max-width: 749px) { .afs-product { grid-template-columns: 1fr; } .afs-usps { grid-template-columns: 1fr; } .collection-hero-title { font-size: 24px; } }
.header__inline-menu .list-menu--inline { flex-wrap: nowrap; }
.header__menu-item { white-space: nowrap; }
.header__inline-menu .afs-exclusive { background: var(--afs-pink); color: #fff !important; border-radius: 999px; padding: 6px 14px !important; margin-left: 10px; }
.header__inline-menu .afs-exclusive:hover { opacity: .9; text-decoration: none; }
.menu-drawer .afs-exclusive { color: var(--afs-pink) !important; }
.afs-crumbs a { color: inherit; }
.afs-crumbs { text-align: left; }
.afs-desc { margin-top: 40px; }
.afs-gallery { position: sticky; top: 90px; }
@media (max-width: 749px) { .afs-gallery { position: static; } }
.product-card-wrapper { display: flex; flex-direction: column; height: 100%; }
.product-card-wrapper > .card { flex: 1 1 auto; height: auto; }
.afs-card-cta { margin-top: auto; padding-top: 10px; }
.afs-catdesc{max-width:720px;margin:24px 0 8px;font-size:1.5rem;line-height:1.6;opacity:.8}
.afs-collage{position:absolute;right:0;top:0;bottom:0;width:62%;display:flex;gap:14px;align-items:center;justify-content:flex-end;padding:16px 4% 16px 0}
.afs-collage img{height:78%;max-height:300px;width:auto;max-width:24%;object-fit:contain;background:#fff;border-radius:16px;padding:8px;box-shadow:0 10px 24px #4a1a7d22}
.afs-collage img:nth-child(even){transform:translateY(14px)}
.collection-hero{position:relative}
.collection-hero-content{position:relative;z-index:1}
.afs-seo{padding-top:28px;padding-bottom:8px}
.afs-seo .rte{max-width:860px}
.afs-seo h2{font-size:2.2rem;margin:22px 0 8px}
.afs-seo p{font-size:1.5rem;line-height:1.7;margin:0 0 12px}
.afs-seo-cta{background:#f3e8ff;border-radius:12px;padding:14px 18px}
@media (max-width:749px){.afs-collage{width:60%;gap:8px}.afs-collage img:nth-child(n+3){display:none}.afs-collage img{max-width:46%}}

/* ---- category hero ---- */
.afs-hero{position:relative;overflow:hidden;background:linear-gradient(115deg,var(--hA,#f3e8ff),var(--hB,#e2c8ff));color:var(--hT,#1b1b1b)}
.afs-hero:before{content:"";position:absolute;left:-40px;top:-30px;width:300px;height:200px;background-image:radial-gradient(currentColor 1.6px,transparent 1.8px);background-size:15px 15px;opacity:.18;-webkit-mask-image:linear-gradient(135deg,#000,transparent 70%);mask-image:linear-gradient(135deg,#000,transparent 70%)}
.afs-hero:after{content:"";position:absolute;right:-90px;top:50%;width:520px;height:520px;margin-top:-260px;border-radius:50%;background:rgba(255,255,255,.38)}
.afs-hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:24px;align-items:center;min-height:330px;padding-top:34px;padding-bottom:34px}
.afs-crumbs{font-size:1.25rem;letter-spacing:.06em;text-transform:uppercase;opacity:.75;margin-bottom:10px}
.afs-crumbs a{color:inherit;text-decoration:none}.afs-crumbs a:hover{text-decoration:underline}
.afs-hero h1{font-family:var(--font-heading-family);font-weight:800;font-size:clamp(3.4rem,5.2vw,5.6rem);line-height:1.02;margin:0 0 12px;letter-spacing:-.01em}
.afs-hero__tag{font-size:1.7rem;line-height:1.5;max-width:46ch;margin:0 0 20px;opacity:.9}
.afs-hero__meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.afs-pill{display:inline-block;background:rgba(255,255,255,.75);color:#1b1b1b;border-radius:99px;padding:8px 16px;font-size:1.3rem;font-weight:600}
.afs-btn{display:inline-block;background:#111;color:#fff!important;border-radius:9px;padding:11px 20px;font-size:1.35rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-decoration:none}
.afs-hero.is-dark .afs-btn{background:#ec0c6e}
.afs-art{display:flex;justify-content:center;align-items:center;min-height:260px}
.afs-art img{width:clamp(110px,14vw,190px);aspect-ratio:1;object-fit:contain;background:#fff;border-radius:22px;padding:10px;margin-left:-20px;box-shadow:0 16px 30px rgba(40,10,70,.22);border:4px solid #fff}
.afs-art img:first-child{margin-left:0}
.afs-art img:nth-child(1){transform:rotate(-6deg) translateY(14px)}
.afs-art img:nth-child(2){transform:rotate(3deg) translateY(-14px);z-index:2;width:clamp(125px,16vw,215px)}
.afs-art img:nth-child(3){transform:rotate(-3deg) translateY(10px);z-index:1}
.afs-art img:nth-child(4){transform:rotate(6deg) translateY(-6px)}
.afs-art--illus img{width:100%;max-width:640px;aspect-ratio:auto;background:none;border:0;border-radius:0;padding:0;box-shadow:none;margin:0;transform:none}
@media(max-width:749px){
 .afs-hero__inner{grid-template-columns:1fr;min-height:0;padding-top:24px;padding-bottom:20px;gap:10px}
 .afs-hero__tag{font-size:1.5rem;margin-bottom:14px}
 .afs-art{min-height:170px}
 .afs-art img{width:96px;margin-left:-14px;border-width:3px;padding:6px;border-radius:16px}
 .afs-art img:nth-child(2){width:112px}
 .afs-art img:nth-child(4){display:none}
 .afs-hero:after{right:-160px;width:400px;height:400px;margin-top:-120px}}
/* ---- category text ---- */
.afs-seo{max-width:var(--page-width);margin-left:auto;margin-right:auto}
.afs-seo .rte{max-width:900px;margin:0}
.afs-seo h2{font-family:var(--font-heading-family);color:#4a1a7d;font-size:2.4rem;margin:26px 0 8px}
.afs-seo p{font-size:1.6rem;line-height:1.75}
.afs-seo{max-width:1200px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box}

.afs-hero h1,.afs-hero__tag,.afs-crumbs,.afs-crumbs a{color:var(--hT)}
.afs-hero.is-dark .afs-pill{background:#fff}

.afs-art--illus img,.afs-art--illus img:nth-child(1){transform:none!important;margin:0!important;width:100%!important;max-width:620px}

/* ---- category mosaic ---- */
.afs-mosaic{padding-top:34px;padding-bottom:10px}
.afs-mosaic__title{font-family:var(--font-heading-family);font-weight:800;font-size:2.8rem;margin:0 0 18px}
.afs-mosaic__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.afs-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:240px;border-radius:20px;overflow:hidden;padding:16px 18px;text-decoration:none;color:#2a0f45;background:linear-gradient(135deg,var(--tA),var(--tB));transition:transform .2s,box-shadow .2s}
.afs-tile:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(40,10,70,.2)}
.afs-tile img{position:absolute;right:-6px;top:-6px;width:52%;aspect-ratio:1;object-fit:contain;background:#fff;border:4px solid #fff;border-radius:18px;padding:6px;transform:rotate(6deg);box-shadow:0 10px 22px rgba(40,10,70,.22)}
.afs-tile__name{position:relative;font-family:var(--font-heading-family);font-weight:800;font-size:2rem;line-height:1.1;max-width:100%}
.afs-tile__count{position:relative;font-size:1.25rem;opacity:.8;margin-top:4px}
.afs-tile.is-dark{color:#fff}
@media(max-width:989px){.afs-mosaic__grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:749px){.afs-mosaic__grid{grid-template-columns:repeat(2,1fr);gap:10px}.afs-tile{min-height:200px;padding:12px}.afs-tile__name{font-size:1.6rem}}
.afs-tile:not(:has(img))::after{content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.5)}
.afs-card-cta .afs-call{height:auto;min-height:4.4rem;line-height:1.25;padding:1rem 1.2rem;text-align:center;white-space:normal}
@media(max-width:749px){.afs-card-cta{padding:0 10px 14px}.afs-card-cta .afs-call{font-size:1.15rem;letter-spacing:.03em;padding:.9rem .8rem}}

/* Header search: the Shopify layout hid it on desktop because our header has no icon group */
@media screen and (min-width: 990px) {
  header.header:not(.header--top-center) > details-modal.header__search { display: flex; grid-area: icons; justify-self: end; align-self: center; margin-left: 8px; }
  header.header details-modal.header__search .header__icon--search { display: flex; align-items: center; justify-content: center; width: 4.4rem; height: 4.4rem; }
}

/* Search suggestions dropdown */
.search-modal__form { position: relative; }
.afs-suggest { position: absolute; top: 100%; left: 0; right: 0; z-index: 10; background: #fff; border-radius: 0 0 1.2rem 1.2rem; box-shadow: 0 1.2rem 2.4rem rgba(0,0,0,.18); max-height: 60vh; overflow: auto; margin-top: .8rem; }
.afs-suggest ul { list-style: none; margin: 0; padding: .4rem 0; }
.afs-suggest li a { display: flex; align-items: center; gap: 1.2rem; padding: .8rem 1.6rem; color: rgb(var(--color-foreground)); text-decoration: none; }
.afs-suggest li a:hover { background: rgba(var(--color-foreground), .06); }
.afs-suggest img, .afs-suggest__ph { width: 5.2rem; height: 5.2rem; object-fit: contain; background: #fff; border-radius: .6rem; flex: none; }
.afs-suggest__all { display: block; padding: 1.2rem 1.6rem; font-weight: 600; text-align: center; border-top: 1px solid rgba(var(--color-foreground), .1); color: #e8096b; text-decoration: none; }
.afs-suggest__empty { margin: 0; padding: 1.6rem; }
