<div class="ecp-list-item ecp-grid-row ecp-clearfix ecp-card {message:css_class}" data-ecp-id="{message:aep_id}" role="listitem" aria-level="1">
  <div class="ecp-grid">
    <div class="ecp-grid-row ecp-clearfix">
      <span class="ecp-grid-col-9">
        <ul class="ecp-item-list ecp-attributes">
          <li data-ecp-handle="attribute_1">{message:AllocationCart/Attribute1_template}</li>
          <li data-ecp-handle="attribute_2">{message:AllocationCart/Attribute2_template}</li>
          <li data-ecp-handle="attribute_3">{message:AllocationCart/Attribute3_template}</li>
        </ul>
      </span>

      <span class="ecp-grid-col-3 ecp-text-right">
        <div class="ecp-price" aria-label="{message:AllocationCart/PriceLabel}">{currency:price}</div>
      </span>
    </div>
    <div class="ecp-grid-row ecp-clearfix">
      <span class="ecp-grid-col-12">
        <div class="ecp-section-message">
          <!-- buy-only messages --->
          <span data-ecp-handle="purchase_up_to_x">{message:AllocationCart/MayPurchaseUpToX_template}</span>
          <span data-ecp-handle="purchase_exactly_x">{message:AllocationCart/MayPurchaseExactlyX_template}</span>
          <span data-ecp-handle="purchase_n_of_x">{message:AllocationCart/MayPurchaseNOfX_template}</span>
          <span data-ecp-handle="purchased_max">{message:AllocationCart/MaxPurchased_template}</span>
          <span data-ecp-handle="sold_out">{message:AllocationCart/SoldOut}</span>
          <!-- buy and limited request messages -->
          <span data-ecp-handle="purchase_up_to_x_request_up_to_y">{message:AllocationCart/MayPurchaseUpToXRequestUpToY_template}</span>
          <span data-ecp-handle="purchase_n_of_x_request_up_to_y">{message:AllocationCart/MayPurchaseNOfXRequestUpToY_template}</span>
          <span data-ecp-handle="purchased_max_request_up_to_y">{message:AllocationCart/MaxPurchasedRequestUpToY_template}</span>
          <span data-ecp-handle="purchased_max_requested_n_request_z_more">{message:AllocationCart/MaxPurchasedRequestedNRequestZMore_template}</span>
          <span data-ecp-handle="purchased_max_requested_max">{message:AllocationCart/MaxPurchasedMaxRequested_template}</span>
          <span data-ecp-handle="sold_out_request_up_to_y">{message:AllocationCart/SoldOutRequestUpToY_template}</span>
          <span data-ecp-handle="sold_out_requested_n_request_z_more">{message:AllocationCart/SoldOutRequestedNRequestZMore_template}</span>
          <span data-ecp-handle="sold_out_requested_max">{message:AllocationCart/SoldOutMaxRequested_template}</span>
          <!-- buy and unlimited request messages -->
          <span data-ecp-handle="purchase_up_to_x_request_unlimited">{message:AllocationCart/MayPurchaseUpToXRequestUnlimited_template}</span>
          <span data-ecp-handle="purchase_exactly_x_request_unlimited">{message:AllocationCart/MayPurchaseExactlyXRequestUnlimited_template}</span>
          <span data-ecp-handle="purchase_n_of_x_request_unlimited">{message:AllocationCart/MayPurchaseNOfXRequestUnlimited_template}</span>
          <span data-ecp-handle="purchased_max_request_unlimited">{message:AllocationCart/MaxPurchasedRequestUnlimited_template}</span>
          <span data-ecp-handle="sold_out_request_unlimited">{message:AllocationCart/SoldOutRequestUnlimited_template}</span>
          <!-- request-only messages -->
          <span data-ecp-handle="request_up_to_y">{message:AllocationCart/MayRequestUpToY_template}</span>
          <span data-ecp-handle="request_exactly_y">{message:AllocationCart/MayRequestExactlyY_template}</span>
          <span data-ecp-handle="request_n_of_y">{message:AllocationCart/MayRequestNofY_template}</span>
          <span data-ecp-handle="requested_max">{message:AllocationCart/MaxRequested_template}</span>
          <span data-ecp-handle="requested_once">{message:AllocationCart/RequestedOnce_template}</span>
          <span data-ecp-handle="request_unlimited">{message:AllocationCart/RequestUnlimited}</span>
        </div>
      </span>
    </div>

    <div class="ecp-grid-row ecp-clearfix" data-ecp-handle="quantity_row">
      <span class="ecp-grid-col-3"><label for="ecpi_{message:aep_id}_quantity" class="ecp-form-input-label">{message:AllocationCart/QuantityLabel}</label></span>
      <span class="ecp-grid-col-3">
        <select id="ecpi_{message:aep_id}_quantity" name="quantity" data-ecp-action="change-quantity"></select>
      </span>
      <span class="ecp-grid-col-6 ecp-text-right">
        <span class="ecp-form-input-info">{message:AllocationCart/TotalLabel}
          <span data-ecp-handle="total"></span>
        </span>
      </span>
    </div>
    <div class="ecp-grid-row ecp-clearfix" data-ecp-handle="limited_request_row">
      <span class="ecp-grid-col-3"><label for="ecpi_{message:aep_id}_request" class="ecp-form-input-label">{message:AllocationCart/LimitedRequestQuantityLabel}</label></span>
      <span class="ecp-grid-col-3">
        <select id="ecpi_{message:aep_id}_request" name="request_quantity" data-ecp-action="change-quantity"></select>
      </span>
      <span class="ecp-grid-col-6 ecp-text-right">
        <span class="ecp-form-input-info">{message:AllocationCart/LimitedRequestTotalLabel}
          <span data-ecp-handle="request_value"></span>
        </span>
      </span>
    </div>
    <div class="ecp-grid-row ecp-clearfix" data-ecp-handle="unlimited_request_row">
      <span class="ecp-grid-col-3"><label for="ecpi_{message:aep_id}_unlimited" class="ecp-form-input-label">{message:AllocationCart/UnlimitedRequestQuantityLabel}</label></span>
      <span class="ecp-grid-col-3">
        <input id="ecpi_{message:aep_id}_unlimited" type="text" name="request_quantity" data-ecp-action="change-quantity">
      </span>
      <span class="ecp-grid-col-6 ecp-text-right">
        <span class="ecp-form-input-info">{message:AllocationCart/UnlimitedRequestTotalLabel}
          <span data-ecp-handle="request_value"></span>
        </span>
      </span>
    </div>
  </div>
</div>