body {
  font-family: 'Poppins', sans-serif;
  background: linear-gradient(180deg, #ffffff, #f4f9ff);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
  color: #333;
}

.material-card {
  max-width: 420px;
  width: 100%;
  background: white;
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  overflow: hidden;
  animation: fadeIn 0.6s ease-in-out;
  margin: auto;
}

.logo {
  width: 90px;
  display: block;
  margin: 20px auto;
}

.title {
  color: #4169ed;
  text-align: center;
  margin: 10px 0;
}

.vuta {
  color: #ff901d;
}

.subtitle {
  text-align: center;
  color: #666;
  margin-bottom: 15px;
}

.input-group {
  text-align: left;
  margin: 15px;
}
label {
  font-weight: 600;
  font-size: 14px;
  display: block;
  margin-bottom: 5px;
}
input[type="text"] {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 8px;
  transition: border-color 0.3s;
}
input[type="text"]:focus {
  border-color: #4169ed;
  outline: none;
}

.info-text marquee {
  font-size: 12px;
  color: #666;
}

.button, .trial-btn {
  width: 90%;
  display: block;
  margin: 12px auto;
  padding: 12px;
  font-size: 16px;
  border: none;
  border-radius: 25px;
  color: white;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.2s ease-in-out;
}
.button {
  background: linear-gradient(90deg, #4169ed, #5a83ff);
}
.trial-btn {
  background: linear-gradient(90deg, #ff901d, #ffad42);
}
.button:hover, .trial-btn:hover {
  transform: scale(1.03);
}

.support-link {
  text-decoration: none;
  display: inline-block;
  margin-top: 10px;
  font-size: 14px;
}
.powered {
  font-size: 12px;
  color: #888;
  margin-top: 5px;
}

.package-panel {
  border-radius: 12px;
  margin: 15px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.panel-heading {
  background-color: #4169ed;
  color: white;
  font-weight: bold;
  padding: 10px;
  font-size: 15px;
  cursor: pointer;
}

/* Package card grid (Material style) */
#packages {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  padding: 10px;
}
.package-card {
  background: white;
  border-radius: 12px;
  width: 120px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
  transition: transform 0.2s ease;
  text-align: center;
  padding: 10px;
  cursor: pointer;
}
.package-card:hover {
  transform: translateY(-5px);
}
.package-card h5 {
  color: #4169ed;
  font-weight: 700;
}
.package-card small {
  color: #777;
  font-size: 13px;
}
.buy-btn {
  background: #ff901d;
  color: #fff;
  border: none;
  border-radius: 18px;
  padding: 6px 12px;
  font-size: 13px;
  margin-top: 5px;
  cursor: pointer;
}

/* How to section */
.how-to-card {
  background: #f7f9ff;
  border-radius: 12px;
  padding: 15px;
  margin: 20px 15px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.05);
}
.how-to-card h4 {
  color: #4169ed;
  margin-bottom: 10px;
}
.how-to-card ol {
  font-size: 14px;
  color: #333;
  text-align: left;
}

/* Animations */
@keyframes fadeIn {
  from {opacity: 0; transform: translateY(20px);}
  to {opacity: 1; transform: translateY(0);}
}
.ripple {
  position: relative;
  overflow: hidden;
}
.ripple::after {
  content: "";
  position: absolute;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  transform: scale(0);
  animation: ripple 0.6s linear;
}
@keyframes ripple {
  to {transform: scale(4); opacity: 0;}
}
/* make box-sizing predictable */
*, *::before, *::after { box-sizing: border-box; }

/* Panel body: scrollable on small screens */
.panel-body#packages {
  padding: 12px;
  background: linear-gradient(180deg,#ffffff,#fbfdff);
  border-radius: 8px;
  max-height: 320px;               /* adjust as needed */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Responsive grid for package cards */
#packages {
  display: flex;
  flex-direction: column; /* stack cards vertically */
  gap: 12px; /* space between rows */
  padding: 10px;
}

/* Package card */
.package-card {
  position: relative;
  background: #ffffff;
  border-radius: 12px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  min-height: 140px;
  z-index: 0; /* prevent stacking */
}

/* Hover uplift */
.package-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
  z-index: 2;
}

/* Visual elements inside card */
.package-card .plan-name {
  font-size: 13px;
  font-weight: 700;
  color: #4169ed;
  margin-bottom: 6px;
}
.package-card .price {
  font-size: 16px;
  font-weight: 800;
  color: #0b4a9a;
  margin-bottom: 6px;
}
.package-card .devices {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
}

/* buy button - full width, touch friendly */
.package-card .buy-btn {
  width: 100%;
  display: inline-block;
  padding: 8px 10px;
  border: none;
  border-radius: 10px;
  background: linear-gradient(90deg,#4169ed, #5a7eff);
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(255,144,29,0.22);
  transition: transform .12s ease;
}
.package-card .buy-btn:active { transform: scale(.99); }
.package-card .buy-btn:focus { outline: 2px solid rgba(65,105,237,0.18); }

/* small screens: ensure good sizing */
@media (max-width:420px) {
  #packages { grid-template-columns: repeat(2, minmax(120px,1fr)); gap: 10px; }
  .package-card { min-height: 110px; padding: 9px; }
}

/* accessibility & touch niceties */
.package-card { -webkit-tap-highlight-color: rgba(0,0,0,0.05); }

/* ---------- Fix for overlapping packages (paste into your style.css or <head>) ---------- */
/* Make box-sizing predictable */
*, *::before, *::after { box-sizing: border-box; }



/* Each legacy row (rowp) becomes a flexible responsive row */
#packages .rowp {
  display: flex !important;        /* use flex layout to avoid float overlap */
  flex-wrap: wrap;                 /* wrap on small screens */
  align-items: center;
  gap: 10px;
  padding: 10px;
  margin-bottom: 8px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(18,39,74,0.04);
  position: relative;
  z-index: 0;
  min-height: 68px;
  word-break: break-word;
}

/* Force Bootstrap columns to behave as flexible columns (override floats) */
#packages .rowp > [class*="col-"] {
  float: none !important;
  padding: 6px !important;
  width: auto !important;
  box-sizing: border-box;
  /* default to one-third columns on wide screens */
  flex: 0 0 33.3333%;
  max-width: 33.3333%;
}

/* If original markup used nested elements, ensure heading and button are not absolute */
#packages .rowp h6,
#packages .rowp h5,
#packages .rowp .text,
#packages .rowp .device {
  margin: 0;
  line-height: 1.1;
}

/* Make buttons touch-friendly and full-width on narrow columns */
#packages .rowp .btn,
#packages .rowp button,
#packages .rowp .buy_button {
  display: inline-block;
  width: 100%;
  white-space: normal;
  padding: 8px 10px;
  border-radius: 10px;
  box-sizing: border-box;
  font-weight: 700;
}

/* Provide a clear visual separation for each package row */
#packages .rowp + .rowp { margin-top: 6px; }

/* Small screen adjustments: stack columns vertically for readability */
@media (max-width: 480px) {
  #packages .rowp {
    gap: 8px;
    padding: 8px;
    min-height: auto;
  }
  #packages .rowp > [class*="col-"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  /* Make buy button larger for finger taps */
  #packages .rowp .buy_button,
  #packages .rowp .btn {
    padding: 12px;
    font-size: 15px;
  }
}

/* Safety: if any legacy floats slip in, clear them inside the package area */
#packages .rowp::after { content: ""; display: table; clear: both; }

/* Optional: make #packages visually separate from the rest of the UI */
#packages {
  border: 1px solid rgba(20,30,60,0.03);
}

/* ---------------------------------------------------------------------------------------- */
/* --- Widen the Buy Packages section --- */

/* Ensure the panel itself spans most of the card width */
.panel.panel-primary {
  width: 100%;
  max-width: 100%;
}

/* Make the collapse area stretch full width */
#packages-collapse {
  width: 100%;
}

/* Let the packages container take full width inside the card */
#packages {
  display: block;
  width: 100%;
  max-width: 100%;
  border-radius: 10px;
  padding: 14px;
}

/* On larger screens, limit to card width and center it nicely */
@media (min-width: 768px) {
  #packages {
    max-width: 600px;
    margin: 0 auto;
  }
}

/* Slightly bigger gap and shadow for better visual balance */
#packages .rowp {
  gap: 12px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}

/* === Responsive Flex Layout for Packages (safe with Bootstrap markup) === */
#packages {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;          /* center cards nicely */
  gap: 12px;                        /* spacing between packages */
  padding: 14px;
  background: linear-gradient(180deg,#ffffff,#fbfdff);
  border-radius: 10px;
  max-height: 400px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* each package row (rowp) behaves as a card */
#packages .rowp {
  flex: 1 1 160px;                  /* base width per card, grows responsively */
  max-width: 220px;                 /* prevent oversized cards */
  display: flex !important;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  text-align: center;
  background: #fff;
  border-radius: 12px;
  padding: 12px 10px;
  box-shadow: 0 6px 18px rgba(18,39,74,0.05);
  transition: transform .15s ease, box-shadow .15s ease;
  position: relative;
}

/* Hover lift */
#packages .rowp:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 22px rgba(18,39,74,0.10);
}

/* Disable Bootstrap float and padding inside */
#packages .rowp > [class*="col-"] {
  float: none !important;
  width: 100% !important;
  padding: 0 !important;
  text-align: center;
}

/* Text styling */
#packages .rowp h5 {
  margin: 4px 0;
  font-size: 18px;
  font-weight: 800;
  color: #0b4a9a;
}
#packages .rowp h6.text {
  color: #4169ed;
  font-size: 14px;
  margin: 2px 0;
  font-weight: 700;
}
#packages .rowp .device {
  color: #555;
  font-size: 12px;
  margin-bottom: 8px;
}

/* Buy button */
#packages .rowp .buy_button {
  display: inline-block;
  width: 100%;
  background: linear-gradient(90deg, #4169ed, #5a83ff);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 10px;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s ease;
}
#packages .rowp .buy_button:hover {
  background: linear-gradient(90deg, #4169ed, #5a83ff);
}

/* Small screens: slightly larger tap targets */
@media (max-width: 480px) {
  #packages .rowp {
    flex: 1 1 140px;
    max-width: 46%;      /* two columns on small devices */
    padding: 10px;
  }
  #packages {
    justify-content: space-around;
    gap: 10px;
  }
}

/* Extra-small phones: single column layout */
@media (max-width: 360px) {
  #packages .rowp {
    flex: 1 1 100%;
    max-width: 100%;
  }
}
/* --- VILCOM & Vuta WiFi waving + glow animation --- */

.title {
  display: inline-block;
  font-weight: 800;
  font-size: 30px;
  color: #4169ed;
  text-align: center;
  letter-spacing: 1px;
  animation: waveTitle 3s ease-in-out infinite;
  transform-origin: center;
}

/* second line with glow */
.vuta {
  display: block;
  font-weight: 900;
  font-size: 36px;
  color: #ff901d;
  margin-top: 6px;
  text-shadow: 0 0 8px rgba(255,144,29,0.5),
               0 0 16px rgba(255,144,29,0.3);
  animation:
    waveText 2.8s ease-in-out infinite,
    glowPulse 2.5s ease-in-out infinite alternate;
  transform-origin: center;
}

/* gentle waving motion (horizontal ripple) */
@keyframes waveTitle {
  0%,100% { transform: perspective(300px) rotateX(0deg) rotateY(0deg); }
  25%     { transform: perspective(300px) rotateX(3deg) rotateY(-2deg); }
  50%     { transform: perspective(300px) rotateX(-2deg) rotateY(3deg); }
  75%     { transform: perspective(300px) rotateX(3deg) rotateY(-1deg); }
}

@keyframes waveText {
  0%,100% { transform: perspective(300px) rotateX(0deg) rotateY(0deg); }
  25%     { transform: perspective(300px) rotateX(4deg) rotateY(-3deg); }
  50%     { transform: perspective(300px) rotateX(-3deg) rotateY(4deg); }
  75%     { transform: perspective(300px) rotateX(3deg) rotateY(-2deg); }
}

/* glow pulsing */
@keyframes glowPulse {
  0% { text-shadow: 0 0 6px rgba(255,144,29,0.3),
                    0 0 12px rgba(255,144,29,0.2); }
  100% { text-shadow: 0 0 12px rgba(255,144,29,0.6),
                       0 0 24px rgba(255,144,29,0.3); }
}

/* slight floating feel for extra life */
@keyframes float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
/* Each package card */
.rowp {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  padding: 12px 16px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Hover animation for engagement */
.rowp:hover {
  transform: scale(1.02);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.12);
}

/* Price button column */
.rowp .btn-circle {
  background: linear-gradient(135deg, #4169ed, #5a7eff);
  color: #fff;
  border: none;
  border-radius: 50%;
  height: 64px;
  width: 64px;
  font-size: 16px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Text info column */
.rowp h6.text {
  margin: 0;
  font-weight: 600;
  font-size: 15px;
  color: #333;
}

.rowp h6.device {
  margin: 2px 0 0 0;
  font-size: 13px;
  color: #777;
}

/* Buy button */
.rowp .buy_button {
  background: linear-gradient(135deg, #4169ed, #5a7eff);
  color: white;
  font-weight: 600;
  border: none;
  border-radius: 6px;
  padding: 8px 16px;
  transition: background 0.3s ease;
}

.rowp .buy_button:hover {
  background: linear-gradient(135deg, #4169ed, #5a7eff);
}






