/* LPO22 PC: styles supplied from Ptengine. */
.pt-pc-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background-color: rgba(0, 0, 0, 0.5); display: flex; align-items: center;
  justify-content: center; z-index: 2147483647; transition: opacity 0.5s ease; opacity: 1;
}
.pt-pc-content {
  position: relative; background-color: #ffffff; width: 500px; border-radius: 24px;
  padding: 0 0 40px 0; text-align: center; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.4);
  box-sizing: border-box; overflow: hidden; animation: pt-pc-fadein 0.4s ease-out;
}
@keyframes pt-pc-fadein {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
.pt-pc-image-container { width: 100%; height: 380px; background-color: #ffffff; }
.pt-pc-top-image { width: 100%; height: 100%; object-fit: contain; background-color: #ffffff; }
.pt-pc-title-area { margin: 20px 40px 32px 40px; line-height: 1.4; }
.pt-pc-main-title { font-size: 22px; font-weight: 800; color: #1f2937; margin: 0 0 6px 0; }
.pt-pc-sub-title { font-size: 15px; font-weight: normal; color: #6b7280; margin: 0; }
.pt-pc-btn-group { padding: 0 40px; }
.pt-pc-btn {
  display: flex; align-items: center; justify-content: center; width: 100%;
  margin: 0 auto 16px auto; padding: 18px; border-radius: 14px; font-size: 16px;
  font-weight: bold; cursor: pointer; border: none; transition: all 0.3s; box-sizing: border-box;
}
.pt-pc-btn-now { background-color: #c29b47; color: #ffffff; box-shadow: 0 4px 15px rgba(194, 155, 71, 0.3); }
.pt-pc-btn-now:hover { background-color: #a68233; transform: translateY(-2px); }
.pt-pc-btn-think { background-color: #f9fafb; color: #374151; border: 1px solid #d1d5db; }
.pt-pc-btn-think:hover { background-color: #f3f4f6; transform: translateY(-2px); }
.pt-pc-loading-wrapper { padding: 40px 20px; }
.pt-pc-loader {
  border: 5px solid #f3f3f3; border-top: 5px solid #c29b47; border-radius: 50%;
  width: 56px; height: 56px; animation: pt-pc-spin 1s linear infinite; margin: 0 auto 24px auto;
}
@keyframes pt-pc-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.pt-pc-loading-text { font-size: 18px; font-weight: 800; color: #1f2937; margin-bottom: 8px; }
.pt-pc-loading-subtext { font-size: 14px; color: #6b7280; }
.pt-pc-hidden { display: none !important; }

/* LPO22 SP: styles supplied from Ptengine. */
.pt-sp-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background-color: rgba(0, 0, 0, 0.55); display: flex; align-items: center;
  justify-content: center; z-index: 2147483647; transition: opacity 0.5s ease; opacity: 1;
}
.pt-sp-content {
  position: relative; background-color: #ffffff; width: 90%; max-width: 380px;
  border-radius: 20px; padding: 0 0 24px 0; text-align: center;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2); box-sizing: border-box;
  overflow: hidden; animation: pt-sp-pop 0.3s ease-out;
}
@keyframes pt-sp-pop { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } }
.pt-popup-image-container { width: 100%; height: 240px; background-color: #ffffff; overflow: hidden; }
.pt-popup-top-image { width: 100%; height: 100%; object-fit: contain; background-color: #ffffff; }
.pt-sp-title-area { margin: 15px 20px 20px 20px; line-height: 1.4; }
.pt-sp-main-title { font-size: 17px; font-weight: 800; color: #1f2937; margin: 0 0 4px 0; }
.pt-sp-sub-title { font-size: 12px; font-weight: normal; color: #6b7280; margin: 0; }
.pt-sp-btn {
  display: flex; align-items: center; justify-content: center; width: calc(100% - 40px);
  margin: 0 auto 10px auto; padding: 14px; border-radius: 12px; font-size: 14px;
  font-weight: bold; cursor: pointer; border: none; transition: transform 0.1s; box-sizing: border-box;
}
.pt-sp-btn:active { transform: scale(0.96); }
.pt-sp-btn-now { background-color: #c29b47; color: #ffffff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }
.pt-sp-btn-think { background-color: #f3f4f6; color: #374151; border: 1px solid #d1d5db; }
.pt-sp-emoji { margin-left: 8px; font-size: 18px; }
.pt-loading-wrapper { padding: 40px 20px; min-height: 200px; display: flex; align-items: center; justify-content: center; }
.pt-loading-inner { display: flex; flex-direction: column; align-items: center; }
.pt-loader-circle {
  width: 50px; height: 50px; border: 4px solid #f3f3f3; border-top: 4px solid #c29b47;
  border-radius: 50%; animation: pt-spin 1s linear infinite; margin-bottom: 24px;
}
@keyframes pt-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.pt-loading-main-text { font-size: 16px; font-weight: 800; color: #1f2937; margin: 0 0 8px 0; }
.pt-loading-subtext { font-size: 13px; color: #6b7280; margin: 0; }
.pt-sp-hidden { display: none !important; }

/* Keep both choices reachable on short screens without changing the normal layout. */
.pt-pc-content, .pt-sp-content { max-height: calc(100vh - 24px); overflow-y: auto; }
.pt-pc-content { max-width: calc(100vw - 24px); }
