What Loc Size Will Look Best On Me?

<style>
.lsq-wrap{max-width:680px;margin:0 auto;padding:40px 20px;}
.lsq-modal{background:#fff;border-radius:16px;overflow:hidden;border:1.5px solid #eee;}
.lsq-header{background:#da1984;padding:20px 24px 16px;}
.lsq-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.lsq-prog-bar{background:rgba(255,255,255,0.25);border-radius:4px;height:4px;overflow:hidden;}
.lsq-prog-fill{height:100%;background:#fff;border-radius:4px;transition:width 0.3s;width:16%;}
.lsq-body{padding:28px;}
.lsq-step{display:none;animation:lsqfade 0.2s ease;}
.lsq-step.active{display:block;}
@keyframes lsqfade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.lsq-label{font-size:11px;font-weight:700;color:#da1984;text-transform:uppercase;letter-spacing:0.07em;margin:0 0 6px;}
.lsq-title{font-size:20px;font-weight:700;color:#111;margin:0 0 6px;line-height:1.3;}
.lsq-sub{font-size:13px;color:#777;margin:0 0 20px;line-height:1.5;}
.lsq-opts{display:grid;gap:8px;}
.lsq-opts.two-col{grid-template-columns:1fr 1fr;}
.lsq-opt{background:#fff;border:1.5px solid #eee;border-radius:10px;padding:13px 15px;text-align:left;cursor:pointer;width:100%;transition:border-color 0.15s,background 0.15s;}
.lsq-opt:hover{border-color:#da1984;background:#fff5fa;}
.lsq-opt.sel{border-color:#da1984;background:#fff0f7;}
.lsq-opt .ot{font-weight:600;font-size:14px;display:block;color:#111;margin-bottom:2px;}
.lsq-opt.sel .ot{color:#da1984;}
.lsq-opt .os{font-size:12px;color:#888;display:block;}
.lsq-nav{display:flex;justify-content:space-between;align-items:center;margin-top:20px;}
.lsq-nav-right{margin-left:auto;}
.lsq-nxt{background:#da1984;color:#fff;border:none;border-radius:8px;padding:12px 26px;font-size:14px;font-weight:700;cursor:pointer;}
.lsq-nxt:hover{background:#c0176e;}
.lsq-nxt:disabled{background:#eee;color:#bbb;cursor:not-allowed;}
.lsq-bck{background:none;border:1px solid #ddd;border-radius:8px;padding:11px 18px;font-size:13px;cursor:pointer;color:#666;}
.lsq-bck:hover{background:#f5f5f5;}
.lsq-size-card{background:#fff;border:2px solid #da1984;border-radius:14px;padding:22px;margin-bottom:14px;}
.lsq-alt-card{background:#f9f9f9;border-radius:12px;padding:16px;margin-bottom:14px;}
.lsq-cta-btn{display:block;background:#da1984;color:#fff;text-decoration:none;text-align:center;padding:14px;border-radius:8px;font-size:14px;font-weight:700;margin-bottom:8px;}
.lsq-cta-btn:hover{background:#c0176e;}
.lsq-cta-sec{display:block;background:#fff;color:#da1984;text-decoration:none;text-align:center;padding:12px;border-radius:8px;font-size:13px;border:1.5px solid #da1984;font-weight:600;margin-bottom:8px;}
.lsq-size-badge{display:inline-block;background:#fff0f7;color:#da1984;font-size:12px;font-weight:700;padding:4px 12px;border-radius:20px;margin-bottom:10px;}
</style>

<div class="lsq-wrap">
<div class="lsq-modal">
<div class="lsq-header">
  <div class="lsq-header-top">
    <span style="font-size:12px;font-weight:700;color:rgba(255,255,255,0.9);text-transform:uppercase;letter-spacing:0.07em;">Loc Size Quiz</span>
    <span id="lsq-step-lbl" style="font-size:12px;color:rgba(255,255,255,0.7);">Step 1 of 6</span>
  </div>
  <div class="lsq-prog-bar"><div class="lsq-prog-fill" id="lsq-prog"></div></div>
</div>
<div class="lsq-body">

<div id="lsq-s1" class="lsq-step active">
  <p class="lsq-label">Visual preference</p>
  <p class="lsq-title">How do you want your locs to read?</p>
  <p class="lsq-sub">Think about the overall impression you want your locs to make.</p>
  <div class="lsq-opts">
    <button class="lsq-opt" data-q="look" data-v="tiny" onclick="lsqpk(this)"><span class="ot">Tiny + detailed</span><span class="os">Intricate, delicate, sisterlocks-inspired look</span></button>
    <button class="lsq-opt" data-q="look" data-v="balanced" onclick="lsqpk(this)"><span class="ot">Balanced</span><span class="os">Not too small, not too big — versatile everyday look</span></button>
    <button class="lsq-opt" data-q="look" data-v="bold" onclick="lsqpk(this)"><span class="ot">Bold + statement</span><span class="os">Larger locs that command attention</span></button>
  </div>
  <div class="lsq-nav lsq-nav-right"><button class="lsq-nxt" id="lsqn1" onclick="lsq_nx(1,2)" disabled>Next &rarr;</button></div>
</div>

<div id="lsq-s2" class="lsq-step">
  <p class="lsq-label">Maintenance time</p>
  <p class="lsq-title">How much time do you want to spend on maintenance?</p>
  <div class="lsq-opts">
    <button class="lsq-opt" data-q="maint" data-v="low" onclick="lsqpk(this)"><span class="ot">Low</span><span class="os">Minimal upkeep — I want to set it and forget it</span></button>
    <button class="lsq-opt" data-q="maint" data-v="medium" onclick="lsqpk(this)"><span class="ot">Medium</span><span class="os">Some regular care is fine</span></button>
    <button class="lsq-opt" data-q="maint" data-v="high" onclick="lsqpk(this)"><span class="ot">High</span><span class="os">I love caring for my locs — it's self-care</span></button>
  </div>
  <div class="lsq-nav"><button class="lsq-bck" onclick="lsq_nx(2,1)">&larr; Back</button><button class="lsq-nxt" id="lsqn2" onclick="lsq_nx(2,3)" disabled>Next &rarr;</button></div>
</div>

<div id="lsq-s3" class="lsq-step">
  <p class="lsq-label">Scalp visibility</p>
  <p class="lsq-title">Do you prefer more scalp showing or more fullness?</p>
  <div class="lsq-opts">
    <button class="lsq-opt" data-q="scalp" data-v="show" onclick="lsqpk(this)"><span class="ot">More scalp showing</span><span class="os">Clean, defined parts are important to me</span></button>
    <button class="lsq-opt" data-q="scalp" data-v="full" onclick="lsqpk(this)"><span class="ot">More fullness</span><span class="os">I want my locs to look lush and voluminous</span></button>
    <button class="lsq-opt" data-q="scalp" data-v="either" onclick="lsqpk(this)"><span class="ot">Either is fine</span><span class="os">I'm flexible on this one</span></button>
  </div>
  <div class="lsq-nav"><button class="lsq-bck" onclick="lsq_nx(3,2)">&larr; Back</button><button class="lsq-nxt" id="lsqn3" onclick="lsq_nx(3,4)" disabled>Next &rarr;</button></div>
</div>

<div id="lsq-s4" class="lsq-step">
  <p class="lsq-label">Texture preference</p>
  <p class="lsq-title">Do you prefer a sleek look or a soft/fluffy look?</p>
  <div class="lsq-opts">
    <button class="lsq-opt" data-q="finish" data-v="sleek" onclick="lsqpk(this)"><span class="ot">Sleek + polished</span><span class="os">Neat, uniform locs with defined edges</span></button>
    <button class="lsq-opt" data-q="finish" data-v="fluffy" onclick="lsqpk(this)"><span class="ot">Soft + fluffy</span><span class="os">Natural texture, lived-in bohemian feel</span></button>
  </div>
  <div class="lsq-nav"><button class="lsq-bck" onclick="lsq_nx(4,3)">&larr; Back</button><button class="lsq-nxt" id="lsqn4" onclick="lsq_nx(4,5)" disabled>Next &rarr;</button></div>
</div>

<div id="lsq-s5" class="lsq-step">
  <p class="lsq-label">Current hair length</p>
  <p class="lsq-title">How long is your natural hair right now?</p>
  <div class="lsq-opts">
    <button class="lsq-opt" data-q="length" data-v="short" onclick="lsqpk(this)"><span class="ot">Short</span><span class="os">TWA or under 4 inches</span></button>
    <button class="lsq-opt" data-q="length" data-v="medium" onclick="lsqpk(this)"><span class="ot">Medium</span><span class="os">4–8 inches</span></button>
    <button class="lsq-opt" data-q="length" data-v="long" onclick="lsqpk(this)"><span class="ot">Long</span><span class="os">8+ inches</span></button>
  </div>
  <div class="lsq-nav"><button class="lsq-bck" onclick="lsq_nx(5,4)">&larr; Back</button><button class="lsq-nxt" id="lsqn5" onclick="lsq_nx(5,6)" disabled>Next &rarr;</button></div>
</div>

<div id="lsq-s6" class="lsq-step">
  <p class="lsq-label">Thinning areas</p>
  <p class="lsq-title">Do you have any thinning areas you want to minimize visually?</p>
  <div class="lsq-opts">
    <button class="lsq-opt" data-q="thinning" data-v="yes" onclick="lsqpk(this)"><span class="ot">Yes</span><span class="os">I have thinning edges or spots I'd like to cover</span></button>
    <button class="lsq-opt" data-q="thinning" data-v="no" onclick="lsqpk(this)"><span class="ot">No</span><span class="os">My density is even throughout</span></button>
  </div>
  <div class="lsq-nav"><button class="lsq-bck" onclick="lsq_nx(6,5)">&larr; Back</button><button class="lsq-nxt" id="lsqn6" onclick="lsq_result()" disabled>See my size &rarr;</button></div>
</div>

<div id="lsq-result" class="lsq-step">
  <p class="lsq-label">Loctician recommendation</p>
  <p class="lsq-title">Your perfect loc size</p>
  <div class="lsq-size-card">
    <span class="lsq-size-badge">Best match</span>
    <p id="lsq-res-size" style="font-size:28px;font-weight:700;color:#111;margin:0 0 6px;"></p>
    <p id="lsq-res-cm" style="font-size:14px;color:#da1984;font-weight:600;margin:0 0 10px;"></p>
    <p id="lsq-res-why" style="font-size:13px;color:#555;margin:0;line-height:1.6;"></p>
  </div>
  <div id="lsq-alt-wrap"></div>
  <div id="lsq-thin-note"></div>
  <a id="lsq-shop-btn" href="/collections/handmade-locs" class="lsq-cta-btn">Shop this size &rarr;</a>
  <a href="https://maconstyles.as.me/" class="lsq-cta-sec">Book a style consult</a>
  <div style="text-align:center;margin-top:12px;">
    <button onclick="lsq_reset()" style="background:none;border:none;font-size:12px;color:#aaa;cursor:pointer;text-decoration:underline;">Start over</button>
  </div>
</div>

</div>
</div>
</div>

<script>
var lsqa={};
var lsqnm={look:'lsqn1',maint:'lsqn2',scalp:'lsqn3',finish:'lsqn4',length:'lsqn5',thinning:'lsqn6'};
var lsqSizes={
  micro:{name:'Microlocs',cm:'0.25 cm',why:'Your preference for a tiny, detailed look with high maintenance investment makes microlocs the perfect choice. They offer the most intricate, artistic appearance and look stunning styled up or worn down.',shopLink:'/collections/handmade-locs'},
  small:{name:'Small locs',cm:'0.5 – 0.6 cm',why:'Small locs hit the sweet spot between delicate and defined. They look beautiful both down and styled, offer versatility, and tend to lock faster than microlocs with slightly less frequent maintenance.',shopLink:'/collections/handmade-locs'},
  medium:{name:'Medium locs',cm:'1.0 cm',why:'Medium locs are the most versatile size — they work for every face shape, every lifestyle, and every aesthetic. They lock at a great pace, require moderate maintenance, and look incredible styled or free.',shopLink:'/collections/handmade-locs'},
  large:{name:'Large locs',cm:'2.0 cm',why:'Large locs make a bold, beautiful statement. They lock quickly, require the least frequent maintenance, and carry incredible volume and visual impact. Perfect if you love a free-spirited, confident aesthetic.',shopLink:'/collections/handmade-locs'}
};
function lsqpk(b){
  var q=b.dataset.q;
  document.querySelectorAll('[data-q="'+q+'"]').forEach(function(x){x.classList.remove('sel');});
  b.classList.add('sel');lsqa[q]=b.dataset.v;
  var nb=document.getElementById(lsqnm[q]);if(nb)nb.disabled=false;
}
function lsq_nx(from,to){
  document.getElementById('lsq-s'+from).classList.remove('active');
  document.getElementById('lsq-s'+to).classList.add('active');
  document.getElementById('lsq-prog').style.width=Math.round((to/6)*100)+'%';
  document.getElementById('lsq-step-lbl').innerText='Step '+to+' of 6';
}
function lsq_result(){
  var scores={micro:0,small:0,medium:0,large:0};
  if(lsqa.look==='tiny'){scores.micro+=4;scores.small+=2;}
  else if(lsqa.look==='balanced'){scores.small+=2;scores.medium+=3;}
  else{scores.large+=4;scores.medium+=2;}
  if(lsqa.maint==='low'){scores.large+=2;scores.medium+=1;}
  else if(lsqa.maint==='high'){scores.micro+=2;scores.small+=1;}
  if(lsqa.scalp==='show'){scores.micro+=2;scores.small+=1;}
  else if(lsqa.scalp==='full'){scores.large+=2;scores.medium+=1;}
  if(lsqa.finish==='sleek'){scores.micro+=1;scores.small+=2;}
  else{scores.large+=1;scores.medium+=1;}
  if(lsqa.length==='short'){scores.small+=1;scores.medium+=1;}
  else if(lsqa.length==='long'){scores.large+=1;scores.medium+=1;}
  if(lsqa.thinning==='yes'){scores.small+=2;scores.medium+=1;}
  var top=Object.keys(scores).reduce(function(a,b){return scores[a]>scores[b]?a:b;});
  var sc2=Object.assign({},scores);delete sc2[top];
  var runner=Object.keys(sc2).reduce(function(a,b){return sc2[a]>sc2[b]?a:b;});
  var size=lsqSizes[top];var alt=lsqSizes[runner];
  document.getElementById('lsq-s6').classList.remove('active');
  document.getElementById('lsq-result').classList.add('active');
  document.getElementById('lsq-prog').style.width='100%';
  document.getElementById('lsq-step-lbl').innerText='Complete!';
  document.getElementById('lsq-res-size').innerText=size.name;
  document.getElementById('lsq-res-cm').innerText=size.cm;
  document.getElementById('lsq-res-why').innerText=size.why;
  document.getElementById('lsq-shop-btn').href=size.shopLink;
  document.getElementById('lsq-shop-btn').innerText='Shop '+size.name.toLowerCase()+' \u2192';
  document.getElementById('lsq-alt-wrap').innerHTML='<div class="lsq-alt-card"><p style="font-size:11px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:0.05em;margin:0 0 6px;">Runner-up: '+alt.name+' ('+alt.cm+')</p><p style="font-size:13px;color:#555;margin:0;line-height:1.5;">If you\'re drawn to a different aesthetic, '+alt.name.toLowerCase()+' could also work beautifully for your profile. <a href="'+alt.shopLink+'" style="color:#da1984;font-weight:600;">Shop '+alt.name.toLowerCase()+'</a></p></div>';
  if(lsqa.thinning==='yes'){document.getElementById('lsq-thin-note').innerHTML='<div style="background:#fff0f7;border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:13px;color:#555;line-height:1.5;"><strong style="color:#da1984;">Loctician tip:</strong> For thinning areas, slightly smaller locs around your edges can help create the appearance of fuller coverage while protecting fragile areas.</div>';}
}
function lsq_reset(){
  lsqa={};
  document.querySelectorAll('.lsq-opt').forEach(function(b){b.classList.remove('sel');});
  document.querySelectorAll('[id^="lsqn"]').forEach(function(b){if(b)b.disabled=true;});
  document.querySelectorAll('.lsq-step').forEach(function(s){s.classList.remove('active');});
  document.getElementById('lsq-s1').classList.add('active');
  document.getElementById('lsq-prog').style.width='16%';
  document.getElementById('lsq-step-lbl').innerText='Step 1 of 6';
  document.getElementById('lsq-thin-note').innerHTML='';
}
</script>