Size Guide

{% comment %}
  VERACITY — INTERACTIVE SIZE FINDER

  Recommendation is based on measured foot length.
  Customers should still check model-specific fit notes.

  Change the collection link below when needed.
{% endcomment %}

{% assign vct_size_shop_link = '/collections/all' %}

<section
  id="VctSizeFinder-{{ section.id }}"
  class="vct-size-finder"
  aria-labelledby="VctSizeHeading-{{ section.id }}"
>
  <div class="vct-size-finder__container">

    <header class="vct-size-finder__header">
      <div>
        <span class="vct-size-finder__eyebrow">
          Less guessing. Better stepping.
        </span>

        <h2 id="VctSizeHeading-{{ section.id }}">
          Find your size.
          <em>Without the drama.</em>
        </h2>

        <p>
          Measure your foot, choose how you like your sneakers to fit,
          and we’ll give you a suggested starting size.
        </p>
      </div>

      <div class="vct-size-finder__badge" aria-hidden="true">
        <span>Two minutes</span>
        <strong>Better fit</strong>
      </div>
    </header>

    <div class="vct-size-finder__layout">

      <!-- MEASURING GUIDE -->
      <article class="vct-size-guide">
        <div class="vct-size-guide__top">
          <span class="vct-size-guide__number">
            01
          </span>

          <div>
            <small>Before you begin</small>
            <h3>Measure your foot</h3>
          </div>
        </div>

        <div class="vct-size-guide__illustration" aria-hidden="true">
          <svg viewBox="0 0 420 250">
            <rect
              x="58"
              y="35"
              width="300"
              height="175"
              rx="10"
            />

            <path
              d="M173 74c-17 9-29 28-31 51-2 19 4 35 16 43 10 7 27 8 45 5 20-4 39-13 50-27 12-15 12-35 4-49-10-18-31-28-51-30-12-1-24 1-33 7Z"
            />

            <path d="M142 205h115"/>
            <path d="m142 205 15-10"/>
            <path d="m142 205 15 10"/>
            <path d="m257 205-15-10"/>
            <path d="m257 205-15 10"/>

            <text x="163" y="233">
              heel to longest toe
            </text>
          </svg>
        </div>

        <ol class="vct-size-guide__steps">
          <li>
            Place a sheet of paper against a wall.
          </li>

          <li>
            Stand on it with your heel gently touching the wall.
          </li>

          <li>
            Mark the end of your longest toe.
          </li>

          <li>
            Measure the distance in centimetres.
          </li>
        </ol>

        <div class="vct-size-guide__tip">
          <span aria-hidden="true">✦</span>

          <p>
            Measure both feet and use the longer measurement.
            Try measuring later in the day when feet are naturally fuller.
          </p>
        </div>
      </article>

      <!-- SIZE FINDER FORM -->
      <article class="vct-size-tool">
        <div class="vct-size-tool__progress">
          <span>Fit helper</span>

          <div aria-hidden="true">
            <i></i>
            <i></i>
            <i></i>
          </div>
        </div>

        <form
          class="vct-size-tool__form"
          data-vct-size-form
          novalidate
        >
          <div class="vct-size-tool__field">
            <label for="VctFootLength-{{ section.id }}">
              Foot length
            </label>

            <div class="vct-size-tool__input-wrap">
              <input
                id="VctFootLength-{{ section.id }}"
                name="foot_length"
                type="number"
                min="22"
                max="31"
                step="0.1"
                inputmode="decimal"
                placeholder="Example: 26.5"
                required
                data-vct-foot-length
              >

              <span>CM</span>
            </div>

            <small>
              Enter a measurement between 22 and 31 cm.
            </small>

            <p
              class="vct-size-tool__error"
              data-vct-size-error
              role="alert"
            ></p>
          </div>

          <fieldset class="vct-size-tool__field">
            <legend>
              How do you like your sneakers to fit?
            </legend>

            <div class="vct-size-tool__options">

              <label class="vct-size-option">
                <input
                  type="radio"
                  name="fit_preference"
                  value="snug"
                >

                <span>
                  <strong>Snug</strong>
                  <small>Close and secure</small>
                </span>
              </label>

              <label class="vct-size-option">
                <input
                  type="radio"
                  name="fit_preference"
                  value="regular"
                  checked
                >

                <span>
                  <strong>Regular</strong>
                  <small>Balanced everyday fit</small>
                </span>
              </label>

              <label class="vct-size-option">
                <input
                  type="radio"
                  name="fit_preference"
                  value="relaxed"
                >

                <span>
                  <strong>Relaxed</strong>
                  <small>A little extra room</small>
                </span>
              </label>

            </div>
          </fieldset>

          <fieldset class="vct-size-tool__field">
            <legend>
              Are your feet wider than average?
            </legend>

            <div class="vct-size-tool__binary">

              <label>
                <input
                  type="radio"
                  name="wide_foot"
                  value="no"
                  checked
                >

                <span>No</span>
              </label>

              <label>
                <input
                  type="radio"
                  name="wide_foot"
                  value="yes"
                >

                <span>Yes</span>
              </label>

            </div>
          </fieldset>

          <button
            type="submit"
            class="vct-size-tool__submit"
          >
            Find my suggested size
            <span aria-hidden="true">→</span>
          </button>
        </form>

        <!-- RESULT -->
        <div
          class="vct-size-result"
          data-vct-size-result
          hidden
          aria-live="polite"
        >
          <span class="vct-size-result__eyebrow">
            Your suggested starting point
          </span>

          <div class="vct-size-result__size">
            <small>EU</small>
            <strong data-vct-result-size>42</strong>
          </div>

          <h3 data-vct-result-heading>
            This should feel just right.
          </h3>

          <p data-vct-result-copy>
            Start with this size and review the fit note on the product page.
          </p>

          <div class="vct-size-result__actions">
            <a href="{{ vct_size_shop_link }}">
              Shop available pairs
              <span aria-hidden="true">→</span>
            </a>

            <button
              type="button"
              data-vct-size-reset
            >
              Measure again
            </button>
          </div>

          <small class="vct-size-result__note">
            This tool provides a general recommendation. Fit may differ
            between sneaker models, materials and silhouettes.
          </small>
        </div>

      </article>

    </div>

    <div class="vct-size-finder__footer">
      <div>
        <span aria-hidden="true">✓</span>
        <p>
          Still unsure? Choose your usual size and contact us before ordering.
        </p>
      </div>

      <a href="/pages/contact">
        Ask about sizing
        <span aria-hidden="true">→</span>
      </a>
    </div>

  </div>

  <div class="vct-size-finder__doodle" aria-hidden="true">
    <svg viewBox="0 0 240 110">
      <path d="M8 71c27-42 55 18 85-18s59 11 86-8 38-7 53 8"/>
      <path d="m215 43 17 10-13 15"/>
    </svg>
  </div>
</section>

<style>
  #VctSizeFinder-{{ section.id }} {
    --vct-cream: #f1ebdf;
    --vct-soft-cream: #faf7ef;
    --vct-coral: #df7a5e;
    --vct-blue: #8bbad9;
    --vct-sage: #aebd98;
    --vct-olive: #5a6047;
    --vct-deep-olive: #3e462e;
    --vct-ink: #232323;

    position: relative;
    width: 100%;
    overflow: hidden;
    padding: 70px 0 76px;
    background: var(--vct-deep-olive);
    color: var(--vct-cream);
  }

  #VctSizeFinder-{{ section.id }} * {
    box-sizing: border-box;
  }

  #VctSizeFinder-{{ section.id }} button,
  #VctSizeFinder-{{ section.id }} input {
    font: inherit;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__container {
    position: relative;
    z-index: 2;
    width: min(100% - 28px, 1320px);
    margin: 0 auto;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__header {
    display: grid;
    gap: 24px;
    margin-bottom: 33px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--vct-sage);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.18em;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }} h2 {
    margin: 0;
    color: var(--vct-cream);
    font-family: "Bebas Neue", "Arial Narrow", sans-serif;
    font-size: clamp(52px, 14vw, 86px);
    font-weight: 400;
    line-height: 0.87;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }} h2 em {
    display: block;
    margin-top: 8px;
    color: var(--vct-coral);
    font-family: "Caveat Brush", cursive;
    font-size: 0.58em;
    font-style: normal;
    line-height: 1;
    text-transform: none;
    transform: rotate(-1.5deg);
    transform-origin: left center;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-finder__header > div:first-child > p {
    max-width: 510px;
    margin: 18px 0 0;
    color: rgba(241, 235, 223, 0.72);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 14px;
    line-height: 1.62;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__badge {
    display: grid;
    width: 115px;
    height: 115px;
    place-items: center;
    align-content: center;
    border-radius: 50%;
    background: var(--vct-coral);
    color: var(--vct-ink);
    text-align: center;
    transform: rotate(7deg);
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__badge span {
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 0.13em;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__badge strong {
    margin-top: 3px;
    font-family: "Caveat Brush", cursive;
    font-size: 22px;
    font-weight: 400;
    line-height: 0.9;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__layout {
    display: grid;
    gap: 15px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide,
  #VctSizeFinder-{{ section.id }} .vct-size-tool {
    padding: 23px;
    border-radius: 24px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide {
    background: var(--vct-sage);
    color: var(--vct-ink);
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool {
    background: var(--vct-soft-cream);
    color: var(--vct-ink);
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__top {
    display: flex;
    gap: 13px;
    align-items: flex-start;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__number {
    color: var(--vct-coral);
    font-family: "Bebas Neue", "Arial Narrow", sans-serif;
    font-size: 36px;
    line-height: 1;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__top small {
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 0.15em;
    opacity: 0.62;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__top h3 {
    margin: 0;
    font-family: "Bebas Neue", "Arial Narrow", sans-serif;
    font-size: 36px;
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__illustration {
    overflow: hidden;
    margin: 21px 0;
    border-radius: 17px;
    background: rgba(241, 235, 223, 0.48);
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-guide__illustration svg {
    display: block;
    width: 100%;
    fill: none;
    stroke: var(--vct-deep-olive);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-guide__illustration text {
    fill: var(--vct-deep-olive);
    stroke: none;
    font-family: Arial, sans-serif;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__steps {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    counter-reset: vctsteps;
    list-style: none;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__steps li {
    display: grid;
    grid-template-columns: 27px 1fr;
    gap: 10px;
    align-items: start;
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 12px;
    line-height: 1.5;
    counter-increment: vctsteps;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-guide__steps li::before {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    border-radius: 50%;
    background: var(--vct-deep-olive);
    color: var(--vct-cream);
    content: counter(vctsteps);
    font-size: 9px;
    font-weight: 900;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__tip {
    display: flex;
    gap: 10px;
    margin-top: 22px;
    padding: 14px;
    border-radius: 12px;
    background: rgba(241, 235, 223, 0.5);
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__tip > span {
    color: var(--vct-coral);
    font-size: 18px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-guide__tip p {
    margin: 0;
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 10px;
    line-height: 1.5;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 28px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__progress > span {
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.15em;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-tool__progress > div {
    display: flex;
    gap: 5px;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-tool__progress i {
    display: block;
    width: 23px;
    height: 3px;
    background: rgba(35, 35, 35, 0.14);
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-tool__progress i:first-child {
    background: var(--vct-coral);
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__form {
    display: grid;
    gap: 25px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__field {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__field > label,
  #VctSizeFinder-{{ section.id }} .vct-size-tool__field legend {
    display: block;
    width: 100%;
    margin-bottom: 10px;
    color: var(--vct-ink);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 12px;
    font-weight: 900;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__input-wrap {
    position: relative;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__input-wrap input {
    width: 100%;
    min-height: 58px;
    padding: 14px 65px 14px 16px;
    border: 1px solid rgba(35, 35, 35, 0.15);
    border-radius: 8px;
    outline: none;
    background: #ffffff;
    color: var(--vct-ink);
    font-size: 16px;
    font-weight: 800;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-tool__input-wrap input:focus {
    border-color: var(--vct-deep-olive);
    box-shadow: 0 0 0 3px rgba(174, 189, 152, 0.32);
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-tool__input-wrap > span {
    position: absolute;
    top: 50%;
    right: 16px;
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.12em;
    transform: translateY(-50%);
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-tool__field > small {
    display: block;
    margin-top: 7px;
    color: rgba(35, 35, 35, 0.55);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 9px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__error {
    min-height: 16px;
    margin: 5px 0 0;
    color: #a63d2a;
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 10px;
    font-weight: 700;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__options {
    display: grid;
    gap: 8px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-option {
    position: relative;
    display: block;
    cursor: pointer;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-option > span {
    display: flex;
    min-height: 57px;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    border: 1px solid rgba(35, 35, 35, 0.12);
    border-radius: 9px;
    background: #ffffff;
    transition:
      border 180ms ease,
      background 180ms ease,
      color 180ms ease;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-option strong,
  #VctSizeFinder-{{ section.id }} .vct-size-option small {
    display: block;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-option strong {
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 11px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-option small {
    color: rgba(35, 35, 35, 0.54);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 9px;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-option input:checked + span {
    border-color: var(--vct-deep-olive);
    background: var(--vct-deep-olive);
    color: var(--vct-cream);
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-option input:checked + span small {
    color: rgba(241, 235, 223, 0.66);
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__binary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__binary label {
    position: relative;
    cursor: pointer;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__binary input {
    position: absolute;
    opacity: 0;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__binary span {
    display: grid;
    min-height: 48px;
    place-items: center;
    border: 1px solid rgba(35, 35, 35, 0.13);
    border-radius: 8px;
    background: #ffffff;
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-tool__binary input:checked + span {
    border-color: var(--vct-coral);
    background: var(--vct-coral);
  }

  #VctSizeFinder-{{ section.id }} .vct-size-tool__submit {
    display: flex;
    width: 100%;
    min-height: 55px;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border: 0;
    border-radius: 6px;
    background: var(--vct-deep-olive);
    color: var(--vct-cream);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-result {
    text-align: center;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-result__eyebrow {
    display: block;
    margin-bottom: 18px;
    color: var(--vct-olive);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-result__size {
    display: grid;
    width: 150px;
    height: 150px;
    margin: 0 auto 22px;
    place-items: center;
    align-content: center;
    border-radius: 50%;
    background: var(--vct-coral);
    color: var(--vct-ink);
    transform: rotate(-3deg);
  }

  #VctSizeFinder-{{ section.id }} .vct-size-result__size small {
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.15em;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-result__size strong {
    font-family: "Bebas Neue", "Arial Narrow", sans-serif;
    font-size: 72px;
    font-weight: 400;
    line-height: 0.9;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-result h3 {
    margin: 0;
    font-family: "Bebas Neue", "Arial Narrow", sans-serif;
    font-size: 37px;
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-result > p {
    max-width: 390px;
    margin: 12px auto 22px;
    color: rgba(35, 35, 35, 0.64);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 12px;
    line-height: 1.55;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-result__actions {
    display: grid;
    gap: 9px;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-result__actions a,
  #VctSizeFinder-{{ section.id }}
  .vct-size-result__actions button {
    display: flex;
    min-height: 51px;
    align-items: center;
    justify-content: space-between;
    padding: 13px 17px;
    border-radius: 6px;
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-result__actions a {
    background: var(--vct-deep-olive);
    color: var(--vct-cream);
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-result__actions button {
    justify-content: center;
    border: 1px solid rgba(35, 35, 35, 0.17);
    background: transparent;
    color: var(--vct-ink);
    cursor: pointer;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-result__note {
    display: block;
    margin-top: 18px;
    color: rgba(35, 35, 35, 0.5);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 8px;
    line-height: 1.5;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__footer {
    display: grid;
    gap: 15px;
    margin-top: 18px;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-finder__footer > div {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-finder__footer > div > span {
    display: grid;
    flex: 0 0 auto;
    width: 27px;
    height: 27px;
    place-items: center;
    border-radius: 50%;
    background: var(--vct-coral);
    color: var(--vct-ink);
    font-size: 11px;
    font-weight: 900;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__footer p {
    margin: 0;
    color: rgba(241, 235, 223, 0.7);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 10px;
    line-height: 1.5;
  }

  #VctSizeFinder-{{ section.id }}
  .vct-size-finder__footer > a {
    display: flex;
    min-height: 51px;
    align-items: center;
    justify-content: space-between;
    padding: 13px 17px;
    border: 1px solid rgba(241, 235, 223, 0.3);
    border-radius: 6px;
    color: var(--vct-cream);
    font-family: var(--font-body-family, Inter, Arial, sans-serif);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__doodle {
    position: absolute;
    right: -65px;
    bottom: 20px;
    width: 220px;
    color: rgba(139, 186, 217, 0.55);
    transform: rotate(-7deg);
  }

  #VctSizeFinder-{{ section.id }} .vct-size-finder__doodle svg {
    display: block;
    width: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  @media screen and (min-width: 750px) {
    #VctSizeFinder-{{ section.id }} {
      padding: 110px 0 116px;
    }

    #VctSizeFinder-{{ section.id }} .vct-size-finder__header {
      grid-template-columns: 1fr auto;
      align-items: end;
      gap: 60px;
      margin-bottom: 45px;
    }

    #VctSizeFinder-{{ section.id }} .vct-size-finder__layout {
      grid-template-columns: 0.92fr 1.08fr;
      gap: 18px;
      align-items: stretch;
    }

    #VctSizeFinder-{{ section.id }} .vct-size-guide,
    #VctSizeFinder-{{ section.id }} .vct-size-tool {
      padding: 34px;
    }

    #VctSizeFinder-{{ section.id }} .vct-size-tool__options {
      grid-template-columns: repeat(3, 1fr);
    }

    #VctSizeFinder-{{ section.id }} .vct-size-option > span {
      min-height: 90px;
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
    }

    #VctSizeFinder-{{ section.id }} .vct-size-result__actions {
      grid-template-columns: 1fr auto;
    }

    #VctSizeFinder-{{ section.id }}
    .vct-size-result__actions button {
      min-width: 155px;
    }

    #VctSizeFinder-{{ section.id }} .vct-size-finder__footer {
      grid-template-columns: 1fr auto;
      align-items: center;
      margin-top: 25px;
    }

    #VctSizeFinder-{{ section.id }}
    .vct-size-finder__footer > a {
      min-width: 200px;
    }

    #VctSizeFinder-{{ section.id }} .vct-size-finder__doodle {
      right: 2%;
      width: 285px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #VctSizeFinder-{{ section.id }} * {
      scroll-behavior: auto !important;
    }
  }
</style>

<script>
  (() => {
    const initializeVeracitySizeFinder = () => {
      const section = document.querySelector(
        '#VctSizeFinder-{{ section.id }}'
      );

      if (!section || section.dataset.initialized === 'true') return;

      section.dataset.initialized = 'true';

      const form = section.querySelector('[data-vct-size-form]');
      const footInput = section.querySelector('[data-vct-foot-length]');
      const error = section.querySelector('[data-vct-size-error]');
      const result = section.querySelector('[data-vct-size-result]');
      const resultSize = section.querySelector('[data-vct-result-size]');
      const resultHeading = section.querySelector(
        '[data-vct-result-heading]'
      );
      const resultCopy = section.querySelector('[data-vct-result-copy]');
      const resetButton = section.querySelector('[data-vct-size-reset]');

      if (!form || !footInput || !result) return;

      const sizeChart = [
        { max: 22.3, size: 36 },
        { max: 22.9, size: 37 },
        { max: 23.6, size: 38 },
        { max: 24.3, size: 39 },
        { max: 24.9, size: 40 },
        { max: 25.6, size: 41 },
        { max: 26.3, size: 42 },
        { max: 26.9, size: 43 },
        { max: 27.6, size: 44 },
        { max: 28.3, size: 45 },
        { max: 29.1, size: 46 },
        { max: 30, size: 47 },
        { max: 31, size: 48 }
      ];

      const getBaseSize = (length) => {
        const match = sizeChart.find((entry) => length <= entry.max);
        return match ? match.size : null;
      };

      form.addEventListener('submit', (event) => {
        event.preventDefault();

        const length = Number.parseFloat(footInput.value);

        if (!Number.isFinite(length) || length < 22 || length > 31) {
          error.textContent =
            'Please enter a valid foot length between 22 and 31 cm.';

          footInput.focus();
          return;
        }

        error.textContent = '';

        const fitPreference =
          form.querySelector(
            'input[name="fit_preference"]:checked'
          )?.value || 'regular';

        const wideFoot =
          form.querySelector(
            'input[name="wide_foot"]:checked'
          )?.value === 'yes';

        let recommendedSize = getBaseSize(length);

        if (!recommendedSize) return;

        if (fitPreference === 'relaxed') {
          recommendedSize += 1;
        }

        if (fitPreference === 'snug' && length < 29) {
          recommendedSize -= 0;
        }

        if (wideFoot && fitPreference !== 'relaxed') {
          recommendedSize += 1;
        }

        recommendedSize = Math.max(
          36,
          Math.min(48, recommendedSize)
        );

        resultSize.textContent = recommendedSize;

        if (wideFoot) {
          resultHeading.textContent =
            'A little extra room should help.';

          resultCopy.textContent =
            `Start with EU ${recommendedSize}. Your width preference moved the recommendation up for a more comfortable fit.`;
        } else if (fitPreference === 'relaxed') {
          resultHeading.textContent =
            'Room to move. No toe drama.';

          resultCopy.textContent =
            `Start with EU ${recommendedSize} for a more relaxed fit. Check the product page in case that model runs large.`;
        } else if (fitPreference === 'snug') {
          resultHeading.textContent =
            'Close, secure and ready.';

          resultCopy.textContent =
            `Start with EU ${recommendedSize} for a closer fit. Avoid sizing down when the product note says the model runs small.`;
        } else {
          resultHeading.textContent =
            'This should feel just right.';

          resultCopy.textContent =
            `Start with EU ${recommendedSize} for a balanced everyday fit. Review the individual product fit note before ordering.`;
        }

        form.hidden = true;
        result.hidden = false;

        result.scrollIntoView({
          behavior: 'smooth',
          block: 'nearest'
        });
      });

      resetButton?.addEventListener('click', () => {
        result.hidden = true;
        form.hidden = false;
        error.textContent = '';

        window.setTimeout(() => {
          footInput.focus();
        }, 50);
      });
    };

    if (document.readyState === 'loading') {
      document.addEventListener(
        'DOMContentLoaded',
        initializeVeracitySizeFinder
      );
    } else {
      initializeVeracitySizeFinder();
    }

    document.addEventListener(
      'shopify:section:load',
      initializeVeracitySizeFinder
    );
  })();
</script>