.gift-product-page {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 60px;
  max-width: 1400px;
  margin: 60px auto;
  padding: 0 40px;
}

.gift-product-right {
  background: #f7f1ea;
  padding: 40px;
  border-radius: 24px;
  position: sticky;
  top: 40px;
  height: fit-content;
}
.gift-summary-row.includes-keepsake,
.gift-summary-row.includes-keepsake-2 {
  display: none;
}
.gift-summary-row.includes-keepsake-1 {
  display: flex;
}

.gift-summary-row.delivery-7-days {
  display: none;
}
.seven {
  display: none;
}

.fourteen {
  display: block;
}
.gift-summary-row.delivery-14-days {
  display: flex;
}
.gift-cart-form {
  margin-top: 30px;
}

.gift-hero {
  background: #24000f;
  color: white;
  padding: 80px 40px;
}

.gift-hero-inner {
  max-width: 1020px;
  margin: 0 auto;
}

.gift-eyebrow {
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.gift-hero h1 {
  font-size: 45px;
  line-height: 1;
  margin-bottom: 30px;
  color: white;
  font-weight: 400;
}

.gift-hero-text {
  max-width: 760px;
  font-size: 15px;
  line-height: 1.7;
  opacity: 0.9;
}

.gift-summary-box {
  background: #f7f1ea;
  border-radius: 24px;
  padding: 40px;
}

.gift-summary-box h2 {
  font-size: 38px;
  margin-bottom: 10px;
}

.gift-summary-subtitle {
  font-size: 16px;
  line-height: 1.7;
  opacity: 0.7;
  margin-bottom: 30px;
}

.gift-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 0;
  border-top: 1px solid rgba(0,0,0,0.08);
}

.gift-summary-row span {
  opacity: 0.7;
}

.gift-summary-row strong {
  text-align: right;
}
.meta {
    font-size: 11.5px;
    color: rgba(15, 23, 42, 0.62);
    margin: 0 0 14px 0;
    text-align: center;
    letter-spacing: 0.01em;
}
.form-item-field-addons-new-framed-keepsake-second-song-ps24-99,
.form-item-field-add-ons-gift-framed-keepsake-second-song-ps49,
.field--name-field-keepsake-photo-2
 {
  display: none;
}
.live-price {
  font-size: 28px;
}

#edit-group-section-6,
#edit-group-personal-details-and-key-t,
#edit-group-musical-direction {
  display: none;
}

#edit-group-section-6,
#edit-group-personal-details-and-key-t,
#edit-group-musical-direction {
 position: relative;
  padding: 35px;
  padding-top: 55px;
}

#edit-group-section-6::before,
#edit-group-personal-details-and-key-t::before,
#edit-group-musical-direction::before {
  display: block;
  font-size: 16px;
  line-height: 1.7;
  color: #6f625b;
  max-width: 780px;
  margin-bottom: 35px;
}
#edit-group-section-6::before {
content: "If you are adding an Additional Companion Song, use this section to tell us who the song is for and how you would like it to differ from the main piece. This could be for another child, a different moment, mood or style, or simply an additional keepsake connected to the same celebration.";
}

#edit-group-personal-details-and-key-t::before {
content: "These details often make the finished song feel instantly personal, warm and recognisable.";
}

#edit-group-musical-direction::before {
content: "Guide us towards the style and feel that would suit the occasion and the person best.";
}

#edit-group-section-6 legend,
#edit-group-personal-details-and-key-t legend,
#edit-group-musical-direction legend{
   position: absolute;
  top: -8px;
  left: 25px;
  padding: 0 12px;
  background: #f7f3ee;
}
/*
|--------------------------------------------------------------------------
| CART
|--------------------------------------------------------------------------
*/

.cart-form,
.view-commerce-cart-form,
.views-form {
  max-width: 1180px;
  margin: 0 auto;
  padding: 50px 40px 90px;
  box-sizing: border-box;
}

/*
|--------------------------------------------------------------------------
| Table
|--------------------------------------------------------------------------
*/

.views-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 24px;
  margin-top: 20px;
  padding: 30px;
}

.views-table thead th {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #8b8076;
  padding: 18px 28px;
  border: 0;
  font-weight: 600;
  background: #f5f0eb;
  white-space: nowrap;
}

.views-table tbody tr {
  background: #fff;
  border: 1px solid #e7ddd3;
  border-radius: 32px;
  overflow: hidden;
  box-shadow: 0 2px 14px rgba(0,0,0,.03);
}

.views-table tbody td {
  padding: 42px 28px;
  vertical-align: middle;
  border-top: 1px solid #f3ede7;
}

.views-table tbody td:first-child {
  border-radius: 32px 0 0 32px;
}

.views-table tbody td:last-child {
  border-radius: 0 32px 32px 0;
}

/*
|--------------------------------------------------------------------------
| Column widths
|--------------------------------------------------------------------------
*/


.views-table tbody tr {
  height: 64px;
}
.views-table thead th:first-child {
  border-radius: 18px 0 0 18px;
}

.views-table thead th:last-child {
  border-radius: 0 18px 18px 0;
}
/*
|--------------------------------------------------------------------------
| Product title
|--------------------------------------------------------------------------
*/

.views-field-purchased-entity {
  padding-left: 24px;
}

.views-field-purchased-entity a {
  font-size: 22px;
  line-height: 1.2;
  font-weight: 600;
  color: #3d0c19;
  text-decoration: none;
  font-family: "Cormorant Garamond";
}

/*
|--------------------------------------------------------------------------
| Addons
|--------------------------------------------------------------------------
*/

.gift-cart-addons {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.gift-cart-addon {
  position: relative;
  padding-left: 22px;
  color: #746c64;
  font-size: 15px;
  line-height: 1.5;
}

.gift-cart-addon::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #5b001d;
  font-weight: 700;
}

/*
|--------------------------------------------------------------------------
| Pricing
|--------------------------------------------------------------------------
*/

.views-field-unit-price__number,
.views-field-total-price__number {
  font-size: 20px;
  font-weight: 600;
  color: #2d0c14;
}

/*
|--------------------------------------------------------------------------
| Quantity
|--------------------------------------------------------------------------
*/

.quantity-edit-input {
  width: 110px !important;
  height: 64px;
  margin: 0 auto;
  border-radius: 20px;
  border: 1px solid #ddd2c6;
  text-align: center;
  font-size: 20px;
  background: #fff;
}

/*
|--------------------------------------------------------------------------
| Remove button
|--------------------------------------------------------------------------
*/

.delete-order-item {
  min-width: 190px;
  height: 62px;
  background: #5b001d !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 18px !important;
  padding: 16px 28px !important;
  font-weight: 600;
  transition: all .2s ease;
}

.delete-order-item:hover {
  background: #430016 !important;
}

/*
|--------------------------------------------------------------------------
| Totals
|--------------------------------------------------------------------------
*/

.view-commerce-cart-summary {
  width: 320px;
  margin: 24px 0 34px auto;
}

.order-total-line {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 20px;
  margin-bottom: 22px;
  font-size: 18px;
}

.order-total-line-value {
  font-weight: 700;
}

/*
|--------------------------------------------------------------------------
| Bottom buttons
|--------------------------------------------------------------------------
*/

#edit-actions {
  margin-top: -10px;
  padding-bottom: 10px;
  display: flex;
  gap: 40px;
}

#edit-actions .button {
  flex: 1;
  height: 68px;
  border-radius: 26px;
  border: 0;
  font-size: 22px;
  font-weight: 600;
  transition: all .2s ease;
}

#edit-submit {
  background: #7a0028 !important;
  color: #fff !important;
}

#edit-submit:hover {
  background: #5b001d !important;
}

#edit-checkout {
  background: #2d0c14 !important;
  color: #fff !important;
}

#edit-checkout:hover {
  background: #18070c !important;
}

/*
|--------------------------------------------------------------------------
| Mobile
|--------------------------------------------------------------------------
*/

@media (max-width: 1100px) {

  .views-table tbody td {
    padding: 32px 22px;
  }

}

@media (max-width: 900px) {

  .views-table thead {
    display: none;
  }

  .views-table,
  .views-table tbody,
  .views-table tr,
  .views-table td {
    display: block;
    width: 100%;
  }

  .views-table tbody tr {
    margin-bottom: 24px;
  }

  .views-table tbody td {
    border: 0;
    padding: 16px 20px;
  }

  #edit-actions {
    flex-direction: column;
    gap: 20px;
  }

}

/* Form sections */

.gift-form-section {
  margin-bottom: 40px;
}

.gift-form-section h2,
.field--name-field-addons-new legend,
.field--name-field-add-ons-gift legend,
.field--name-field-final-options legend {
  font-size: 36px;
  line-height: 1.1;
  margin-bottom: 18px;
  font-family: 'Cormorant Garamond', serif;
}

.gift-form-intro {
  font-size: 16px;
  line-height: 1.7;
  color: #746c64;
  margin-bottom: 30px;
  max-width: 760px;
}

.gift-section-divider {
  height: 1px;
  background: rgba(0,0,0,0.08);
  margin: 60px 0;
}

/* Normal form fields */

.gift-cart-form .form-item {
  margin-bottom: 28px;
}

.gift-cart-form label {
  display: block;
  margin-bottom: 10px;
  font-weight: 600;
  font-size: 15px;
}

.gift-cart-form input[type="text"],
.gift-cart-form textarea,
.gift-cart-form select {
  width: 100%;
  border: 1px solid #d7d0c7;
  border-radius: 18px;
  padding: 18px 20px;
  font-size: 16px;
  line-height: 1.5;
  background: #fff;
}

.gift-cart-form textarea {
  min-height: 180px;
  resize: vertical;
}

.gift-cart-form input[type="text"]:focus,
.gift-cart-form textarea:focus,
.gift-cart-form select:focus {
  border-color: #24000f;
  outline: none;
}

/* Addons + Final Options large cards */

.field--name-field-addons-new .form-checkboxes,
.field--name-field-add-ons-gift .form-checkboxes,
.field--name-field-final-options .form-checkboxes {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 30px 0;
}

.field--name-field-addons-new .form-type-checkbox,
.field--name-field-add-ons-gift .form-type-checkbox,
.field--name-field-final-options .form-type-checkbox {
  position: relative;
  margin: 0;
}
.field--name-field-addons-new input[type="checkbox"],
.field--name-field-add-ons-gift input[type="checkbox"],
.field--name-field-final-options input[type="checkbox"] {
  position: absolute;
  opacity: 0;
}

.field--name-field-addons-new label,
.field--name-field-add-ons-gift label,
.field--name-field-final-options label {
  display: block;
  position: relative;
  gap: 24px;
  padding: 28px 30px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 22px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 18px;
  line-height: 1.45;
  font-weight: 600;
  margin: 0;
}
.field--name-field-addons-new .form-item,
.field--name-field-add-ons-gift .form-item,
.field--name-field-final-options .form-item {
  margin-bottom: 0;
}

.field--name-field-addons-new label,
.field--name-field-add-ons-gift label,
.field--name-field-final-options label {
  padding: 34px 90px 30px 32px;
}

.field--name-field-addons-new input[type="checkbox"]:checked + label::after,
.field--name-field-add-ons-gift input[type="checkbox"]:checked + label::after,
.field--name-field-final-options input[type="checkbox"]:checked + label::after {
  position: absolute;
  top: 32px;
  right: 28px;
}
.field--name-field-addons-new label:hover,
.field--name-field-add-ons-gift label:hover,
.field--name-field-final-options label:hover {
  border-color: #24000f;
  transform: translateY(-2px);
}

.field--name-field-addons-new input[type="checkbox"]:checked + label,
.field--name-field-add-ons-gift input[type="checkbox"]:checked + label,
.field--name-field-final-options input[type="checkbox"]:checked + label {
  border-color: #24000f;
  background: #fff8f4;
  box-shadow: 0 0 0 2px rgba(36,0,15,0.08);
}

.field--name-field-addons-new input[type="checkbox"]:checked + label::after,
.field--name-field-add-ons-gift input[type="checkbox"]:checked + label::after,
.field--name-field-final-options input[type="checkbox"]:checked + label::after {
  content: "✓";
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #24000f;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}

/* Addon description text */

.addon-description {
  display: block;
  margin-top: 12px;
  color: #7a6f68;
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
}

/* Submit button */

#edit-actions {
  margin-top: 60px;
}

#edit-submit {
  width: 100%;
  background: #5b001d !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 20px !important;
  padding: 28px 40px !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  cursor: pointer;
  transition: all 0.25s ease;
  appearance: none;
  box-shadow: none !important;
}

#edit-submit:hover {
  background: #430016 !important;
  transform: translateY(-2px);
}

/* Mobile */

@media (max-width: 900px) {

  .gift-product-page {
    grid-template-columns: 1fr;
    padding: 0 20px;
  }

  .gift-product-right {
    position: relative;
    top: auto;
  }

  .gift-hero {
    padding: 60px 20px;
  }

  .gift-hero h1 {
    font-size: 36px;
  }

}