/* ========================================
   YALLA DOUGH IT — ORDER PAGE
======================================== */


/* ========================================
   PAGE BASE
======================================== */

.order-orderPage,
.order-emptyPage {
  width: 100%;
  min-height: 100vh;

  background: #f7f0e8;
  color: #321a12;
}


/* ========================================
   DARK HERO
======================================== */

.order-hero,
.order-emptyHero {
  width: 100%;
  min-height: 340px;

  padding: 155px 30px 60px;

  display: flex;
  align-items: flex-end;

  background:
    radial-gradient(
      circle at 75% 20%,
      rgba(231, 134, 156, 0.1),
      transparent 36%
    ),
    #301c15;

  color: #fff7ef;
}


.order-heroContainer {
  width: 100%;
  max-width: 1500px;

  margin: 0 auto;
}


.order-eyebrow {
  display: block;

  margin-bottom: 18px;

  color: #e7869c;

  font-size: 11px;
  line-height: 1;
  font-weight: 700;

  letter-spacing: 5px;
  text-transform: uppercase;
}


.order-heroTitle {
  display: flex;
  align-items: flex-end;

  gap: 24px;
}


.order-heroTitle > span {
  margin-bottom: 15px;

  color: #e7869c;

  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  line-height: 1;
}


.order-heroTitle h1 {
  margin: 0;

  color: #fff7ef;

  font-family: Georgia, "Times New Roman", serif;

  font-size: clamp(70px, 9vw, 145px);
  line-height: 0.85;

  font-weight: 400;

  letter-spacing: -5px;
}


.order-heroContainer > p {
  max-width: 560px;

  margin: 32px 0 0 49px;

  color: #d8c2b9;

  font-size: 15px;
  line-height: 1.65;
}


/* ========================================
   MAIN ORDER SECTION
======================================== */

.order-orderSection {
  width: 100%;

  padding: 80px 30px 115px;

  background:
    radial-gradient(
      circle at 35% 40%,
      rgba(255, 255, 255, 0.7),
      transparent 40%
    ),
    #f7f0e8;
}


.order-orderContainer {
  width: 100%;
  max-width: 1500px;

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    minmax(0, 1.25fr)
    minmax(390px, 0.75fr);

  align-items: start;

  gap: clamp(50px, 7vw, 110px);
}


/* ========================================
   CART PRODUCTS
======================================== */

.order-itemsPanel {
  width: 100%;
}


.order-itemsHeader {
  min-height: 48px;

  margin-bottom: 20px;

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 20px;
}


.order-itemsHeader > span {
  color: #4c271a;

  font-family: Georgia, "Times New Roman", serif;

  font-size: 20px;
}


.order-itemsHeader button {
  padding: 8px 0;

  border: 0;
  border-bottom: 1px solid transparent;

  background: transparent;

  color: #9f7f70;

  font-family: inherit;

  font-size: 13px;

  cursor: pointer;

  transition:
    color 0.3s ease,
    border-color 0.3s ease;
}


.order-itemsHeader button:hover {
  color: #d96f89;

  border-color: #d96f89;
}


.order-itemsList {
  display: flex;

  flex-direction: column;

  gap: 12px;
}


/* ========================================
   CART ITEM
======================================== */

.order-cartItem {
  min-height: 92px;

  padding: 20px 24px;

  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  align-items: center;

  gap: 24px;

  border: 1px solid rgba(231, 134, 156, 0.55);

  border-radius: 18px;

  background: rgba(255, 252, 248, 0.7);

  transition:
    transform 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}


.order-cartItem:hover {
  transform: translateY(-2px);

  border-color: #e7869c;

  box-shadow:
    0 14px 32px
    rgba(77, 38, 25, 0.07);
}


/* PRODUCT INFO */

.order-itemInfo h2 {
  margin: 0 0 6px;

  color: #432116;

  font-family: Georgia, "Times New Roman", serif;

  font-size: 21px;
  line-height: 1.2;

  font-weight: 400;
}


.order-itemInfo p {
  margin: 0;

  color: #d96f89;

  font-size: 13px;
  line-height: 1.4;
}


/* ACTIONS */

.order-itemActions {
  display: flex;

  align-items: center;
  justify-content: flex-end;

  gap: 25px;
}


/* ========================================
   QUANTITY
======================================== */

.order-quantity {
  min-width: 112px;

  height: 42px;

  padding: 4px;

  display: grid;

  grid-template-columns:
    34px
    1fr
    34px;

  align-items: center;

  border-radius: 999px;

  background: #ede2cd;
}


.order-quantity button {
  width: 34px;
  height: 34px;

  display: grid;

  place-items: center;

  border: 0;

  border-radius: 50%;

  background: transparent;

  color: #47241a;

  font-size: 19px;

  cursor: pointer;

  transition:
    background-color 0.25s ease,
    color 0.25s ease;
}


.order-quantity button:hover {
  background: #e7869c;

  color: #321710;
}


.order-quantity strong {
  color: #3c1d14;

  font-size: 14px;

  text-align: center;
}


.order-lineTotal {
  min-width: 92px;

  color: #d96f89;

  font-size: 14px;

  text-align: right;

  white-space: nowrap;
}


/* REMOVE */

.order-removeButton {
  width: 30px;
  height: 30px;

  display: grid;

  place-items: center;

  border: 0;

  border-radius: 50%;

  background: transparent;

  color: #ad8c7c;

  font-size: 22px;
  font-weight: 300;

  cursor: pointer;

  transition:
    color 0.25s ease,
    background-color 0.25s ease;
}


.order-removeButton:hover {
  background: rgba(231, 134, 156, 0.14);

  color: #d96f89;
}


/* ========================================
   CUSTOMER DETAILS CARD
======================================== */

.order-detailsCard {
  position: sticky;

  top: 115px;

  width: 100%;

  padding: 32px;

  border-radius: 26px;

  background:
    radial-gradient(
      circle at 90% 5%,
      rgba(231, 134, 156, 0.13),
      transparent 35%
    ),
    #4a281d;

  color: #fff6ef;

  box-shadow:
    0 30px 70px
    rgba(55, 25, 17, 0.15);
}


/* CARD TITLE */

.order-detailsTitle {
  display: flex;

  align-items: center;

  gap: 10px;

  margin-bottom: 23px;

  color: #efb1bf;

  font-size: 10px;
  line-height: 1;

  font-weight: 700;

  letter-spacing: 4px;

  text-transform: uppercase;
}


.order-detailsTitle > span {
  color: #e7869c;

  font-size: 18px;

  letter-spacing: 0;
}


/* ========================================
   FORM FIELDS
======================================== */

.order-field {
  position: relative;

  display: block;

  margin-bottom: 11px;
}


.order-field input,
.order-field textarea,
.order-field select {
  width: 100%;

  border: 1px solid transparent;

  border-radius: 12px;

  outline: none;

  background: rgba(255, 244, 236, 0.12);

  color: #fff7f1;

  font-family: inherit;

  font-size: 14px;

  transition:
    border-color 0.25s ease,
    background-color 0.25s ease,
    box-shadow 0.25s ease;
}


/* INPUT */

.order-field input {
  height: 50px;

  padding: 0 16px;
}


/* TEXTAREA */

.order-field textarea {
  min-height: 105px;

  padding: 15px 16px;

  resize: vertical;

  line-height: 1.6;
}


/* SELECT */

.order-field select {
  height: 50px;

  padding:
    0
    42px
    0
    16px;

  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  cursor: pointer;
}


/* CUSTOM SELECT ARROW */

.order-selectField::after {
  content: "";

  position: absolute;

  top: 21px;
  right: 17px;

  width: 8px;
  height: 8px;

  border-right:
    1.5px solid
    rgba(255, 239, 230, 0.65);

  border-bottom:
    1.5px solid
    rgba(255, 239, 230, 0.65);

  transform: rotate(45deg);

  pointer-events: none;
}


/* SELECT OPTIONS */

.order-field select option,
.order-field select optgroup {
  background: #fff8f2;

  color: #3b1e15;

  font-family: Arial, sans-serif;
}


.order-field select optgroup {
  font-weight: 700;
}


/* PLACEHOLDERS */

.order-field input::placeholder,
.order-field textarea::placeholder {
  color: rgba(255, 239, 230, 0.52);
}


/* FOCUS */

.order-field input:focus,
.order-field textarea:focus,
.order-field select:focus {
  border-color: #e7869c;

  background: rgba(255, 244, 236, 0.17);

  box-shadow:
    0 0 0 3px
    rgba(231, 134, 156, 0.08);
}


/* ========================================
   ORDER SUMMARY
======================================== */

.order-summary {
  margin-top: 26px;

  padding-top: 24px;

  border-top:
    1px solid
    rgba(255, 239, 229, 0.15);
}


.order-summaryRow {
  width: 100%;

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 20px;

  margin-bottom: 14px;
}


.order-summaryRow span {
  color: #e8d6cd;

  font-size: 13px;
  line-height: 1.4;
}


.order-summaryRow strong {
  color: #fff6ef;

  font-size: 14px;
  line-height: 1;

  font-weight: 500;

  white-space: nowrap;
}


.order-summaryDivider {
  width: 100%;
  height: 1px;

  margin:
    21px
    0;

  background:
    rgba(255, 239, 229, 0.14);
}


/* GRAND TOTAL */

.order-grandTotal {
  margin-bottom: 0;

  align-items: flex-end;
}


.order-grandTotal span {
  color: #fff6ef;

  font-family: Georgia, "Times New Roman", serif;

  font-size: 18px;
}


.order-grandTotal strong {
  color: #e7869c;

  font-family: Georgia, "Times New Roman", serif;

  font-size: 24px;

  font-weight: 500;
}


/* ========================================
   SUBMIT BUTTON
======================================== */

.order-submitButton {
  width: 100%;

  min-height: 55px;

  margin-top: 26px;

  padding: 10px 22px;

  display: flex;

  align-items: center;
  justify-content: center;

  gap: 14px;

  border: 0;

  border-radius: 999px;

  background: #e7869c;

  color: #321710;

  font-family: Georgia, "Times New Roman", serif;

  font-size: 16px;

  font-weight: 700;

  cursor: pointer;

  transition:
    transform 0.3s ease,
    background-color 0.3s ease,
    box-shadow 0.3s ease;
}


.order-submitButton:hover {
  transform: translateY(-3px);

  background: #ef9caf;

  box-shadow:
    0 14px 30px
    rgba(231, 134, 156, 0.24);
}


.order-submitButton span {
  font-family: Arial, sans-serif;
}


/* CONFIRMATION NOTE */

.order-detailsCard small,
.order-confirmationNote {
  display: block;

  margin-top: 15px;

  color: rgba(255, 237, 228, 0.48);

  font-size: 10px;
  line-height: 1.5;

  text-align: center;
}


/* ========================================
   EMPTY CART
======================================== */

.order-emptyContent {
  min-height: 480px;

  padding: 90px 30px;

  display: flex;

  flex-direction: column;

  align-items: center;
  justify-content: center;

  background: #f7f0e8;

  color: #3a1d14;

  text-align: center;
}


.order-emptyContent > span {
  margin-bottom: 17px;

  color: #d96f89;

  font-size: 11px;

  font-weight: 700;

  letter-spacing: 4px;

  text-transform: uppercase;
}


.order-emptyContent h2 {
  margin: 0 0 18px;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(43px, 6vw, 75px);

  line-height: 1;

  font-weight: 400;
}


.order-emptyContent p {
  max-width: 550px;

  margin: 0 0 30px;

  color: #8a6959;

  font-size: 16px;

  line-height: 1.7;
}


.order-emptyContent a {
  min-height: 55px;

  padding:
    10px
    23px
    10px
    28px;

  display: inline-flex;

  align-items: center;

  gap: 20px;

  border-radius: 999px;

  background: #e7869c;

  color: #321710;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 16px;

  font-weight: 700;

  text-decoration: none;

  transition:
    transform 0.3s ease,
    background-color 0.3s ease;
}


.order-emptyContent a:hover {
  transform: translateY(-3px);

  background: #ef9caf;
}


/* ========================================
   SUCCESSFUL ORDER
======================================== */

.order-successPage {
  width: 100%;

  min-height: 100vh;

  padding:
    150px
    20px
    80px;

  display: flex;

  align-items: center;
  justify-content: center;

  background:
    radial-gradient(
      circle at 50% 40%,
      rgba(231, 134, 156, 0.18),
      transparent 38%
    ),
    #301c15;
}


.order-successCard {
  width: 100%;

  max-width: 620px;

  padding:
    65px
    55px;

  display: flex;

  flex-direction: column;

  align-items: center;

  border:
    1px solid
    rgba(231, 134, 156, 0.35);

  border-radius: 36px;

  background: #f7f0e8;

  color: #321a12;

  text-align: center;

  box-shadow:
    0 35px 90px
    rgba(0, 0, 0, 0.3);
}


.order-successIcon {
  width: 72px;
  height: 72px;

  margin-bottom: 24px;

  display: grid;

  place-items: center;

  border-radius: 50%;

  background: #e7869c;

  color: #301710;

  font-family: Arial, sans-serif;

  font-size: 32px;

  font-weight: 700;
}


.order-successLabel {
  margin-bottom: 16px;

  color: #d96f89;

  font-size: 11px;

  font-weight: 700;

  letter-spacing: 4px;

  text-transform: uppercase;
}


.order-successCard h1 {
  margin: 0 0 22px;

  color: #3b1d14;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(65px, 9vw, 110px);

  line-height: 0.9;

  font-weight: 400;
}


.order-successCard > p {
  max-width: 470px;

  margin: 0;

  color: #806052;

  font-size: 16px;

  line-height: 1.7;
}


/* SUCCESS DETAILS */

.order-successDetails {
  width: 100%;

  margin:
    38px
    0
    30px;

  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  overflow: hidden;

  border:
    1px solid
    rgba(75, 37, 24, 0.13);

  border-radius: 18px;
}


.order-successDetails div {
  min-width: 0;

  padding: 20px;

  display: flex;

  flex-direction: column;

  gap: 7px;
}


.order-successDetails div + div {
  border-left:
    1px solid
    rgba(75, 37, 24, 0.13);
}


.order-successDetails .order-successAddress {
  grid-column: 1 / -1;

  border-top:
    1px solid
    rgba(75, 37, 24, 0.13);

  border-left: 0;
}


.order-successDetails span {
  color: #aa8879;

  font-size: 12px;

  letter-spacing: 2px;

  text-transform: uppercase;
}


.order-successDetails strong {
  color: #432116;

  font-size: 17px;

  font-weight: 500;

  overflow-wrap: anywhere;
}


/* SUCCESS BUTTON */

.order-successButton {
  min-height: 56px;

  padding:
    10px
    22px
    10px
    27px;

  display: inline-flex;

  align-items: center;
  justify-content: center;

  gap: 18px;

  border-radius: 999px;

  background: #e7869c;

  color: #301710;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 16px;

  font-weight: 700;

  text-decoration: none;

  transition:
    transform 0.3s ease,
    background-color 0.3s ease;
}


.order-successButton:hover {
  transform: translateY(-3px);

  background: #ef9caf;
}


/* ========================================
   ACCESSIBILITY
======================================== */

.order-visuallyHidden {
  position: absolute;

  width: 1px;
  height: 1px;

  padding: 0;

  margin: -1px;

  overflow: hidden;

  clip: rect(0, 0, 0, 0);

  white-space: nowrap;

  border: 0;
}


/* ========================================
   TABLET
======================================== */

@media (max-width: 1050px) {

  .order-orderContainer {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(340px, 0.75fr);

    gap: 40px;
  }


  .order-itemActions {
    gap: 14px;
  }


  .order-lineTotal {
    min-width: 78px;
  }


  .order-detailsCard {
    padding: 27px;
  }

}


/* ========================================
   MOBILE
======================================== */

@media (max-width: 820px) {

  .order-hero,
  .order-emptyHero {
    min-height: 290px;

    padding:
      130px
      20px
      48px;
  }


  .order-heroTitle {
    gap: 13px;
  }


  .order-heroTitle > span {
    margin-bottom: 9px;

    font-size: 19px;
  }


  .order-heroTitle h1 {
    font-size:
      clamp(60px, 17vw, 92px);

    letter-spacing: -3px;
  }


  .order-heroContainer > p {
    margin:
      25px
      0
      0;

    font-size: 14px;
  }


  .order-orderSection {
    padding:
      55px
      18px
      75px;
  }


  .order-orderContainer {
    grid-template-columns: 1fr;

    gap: 45px;
  }


  .order-detailsCard {
    position: relative;

    top: auto;
  }


  .order-cartItem {
    grid-template-columns: 1fr;

    gap: 17px;
  }


  .order-itemActions {
    justify-content: space-between;
  }


  .order-successPage {
    padding:
      120px
      16px
      60px;
  }


  .order-successCard {
    padding:
      48px
      28px;

    border-radius: 27px;
  }

}


/* ========================================
   SMALL MOBILE
======================================== */

@media (max-width: 520px) {

  .order-hero,
  .order-emptyHero {
    padding-inline: 16px;
  }


  .order-orderSection {
    padding-inline: 14px;
  }


  .order-itemsHeader > span {
    font-size: 18px;
  }


  .order-cartItem {
    min-height: 0;

    padding: 18px;

    border-radius: 15px;
  }


  .order-itemInfo h2 {
    font-size: 19px;
  }


  .order-itemActions {
    display: grid;

    grid-template-columns:
      auto
      1fr
      auto;

    gap: 11px;
  }


  .order-quantity {
    min-width: 105px;
  }


  .order-lineTotal {
    min-width: 0;

    text-align: center;
  }


  .order-detailsCard {
    padding:
      25px
      19px;

    border-radius: 22px;
  }


  .order-detailsTitle {
    margin-bottom: 20px;
  }


  .order-field input,
  .order-field select {
    height: 48px;
  }


  .order-field textarea {
    min-height: 95px;
  }


  .order-summary {
    margin-top: 22px;

    padding-top: 20px;
  }


  .order-grandTotal strong {
    font-size: 22px;
  }


  .order-submitButton {
    min-height: 52px;

    font-size: 15px;
  }


  .order-successCard {
    padding:
      44px
      21px;
  }


  .order-successDetails {
    grid-template-columns: 1fr;
  }


  .order-successDetails div + div {
    border-left: 0;

    border-top:
      1px solid
      rgba(75, 37, 24, 0.13);
  }


  .order-successDetails .order-successAddress {
    grid-column: auto;
  }

}


/* ========================================
   ORDER TYPOGRAPHY OVERRIDE
   KEEP THIS AT THE VERY END OF order.css
======================================== */

/* YOUR DETAILS */
.order-detailsTitle {
  font-size: 14px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  letter-spacing: 4px !important;
  margin-bottom: 30px !important;
}

.order-detailsTitle > span {
  font-size: 22px !important;
}


/* NAME / PHONE / AREA / ADDRESS */
.order-field input,
.order-field select,
.order-field textarea {
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;

  /* يخلي الأرقام والموبايل أوضح */
  font-family: Arial, Helvetica, sans-serif !important;
}

.order-field input,
.order-field select {
  height: 60px !important;
  padding-left: 18px !important;
  padding-right: 18px !important;
}

.order-field textarea {
  min-height: 125px !important;
  padding: 18px !important;
}


/* PLACEHOLDERS */
.order-field input::placeholder,
.order-field textarea::placeholder {
  font-size: 16px !important;
}


/* SELECT */
.order-field select {
  padding-right: 50px !important;
}

.order-selectField::after {
  top: 24px !important;
  right: 20px !important;

  width: 9px !important;
  height: 9px !important;
}


/* ORDER SUBTOTAL / DELIVERY */
.order-summaryRow span {
  font-size: 16px !important;
  line-height: 1.5 !important;
}

.order-summaryRow strong {
  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 18px !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;

  font-variant-numeric: tabular-nums !important;
}


/* TOTAL */
.order-grandTotal span {
  font-size: 23px !important;
  font-weight: 700 !important;
}

.order-grandTotal strong {
  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 34px !important;
  line-height: 1 !important;
  font-weight: 700 !important;

  font-variant-numeric: tabular-nums !important;
}


/* PLACE ORDER */
.order-submitButton {
  min-height: 62px !important;
  font-size: 20px !important;
}


/* SMALL TEXT UNDER BUTTON */
.order-detailsCard small,
.order-confirmationNote {
  font-size: 12px !important;
  line-height: 1.6 !important;
}