/* Components CSS */
.glass{backdrop-filter: blur(6px); background:rgba(255,255,255,.6)}
.btn{border-radius:9999px; padding:.75rem 1.25rem; box-shadow:0 6px 20px rgba(0,0,0,.08)}
.btn-primary{background:var(--gd); color:white}
.btn-outline{border:1px solid var(--gd); color: white; background:var(--gd)}
.card{background:white; border-radius:1.25rem; box-shadow:0 10px 30px rgba(0,0,0,.06)}
.lang-btn{padding:.25rem .6rem; border-radius:.6rem; font-size:.9rem; border:1px solid transparent}
.lang-btn.active{border-color:var(--gd)}

/* Form Elements */
input[readonly]{ background-color:#f3f4f6; cursor:not-allowed; }
select[aria-disabled="true"] { pointer-events:none; cursor:not-allowed; }
input[aria-disabled="true"] { caret-color: transparent; }
.locked-cursor, .locked-cursor * { cursor: not-allowed !important; }
input[aria-readonly="true"] { caret-color: transparent; }

/* Submit loading state */
.btn.is-loading{ position: relative; opacity: .85; pointer-events: none; }
.btn.is-loading::after{
  content:"";
  position:absolute;
  top:50%;
  right:1rem;
  width:1rem;
  height:1rem;
  margin-top:-.5rem;
  border-radius:9999px;
  border:2px solid rgba(255,255,255,.65);
  border-top-color: rgba(255,255,255,0);
  animation: spin .8s linear infinite;
}
@keyframes spin{
  to{ transform: rotate(360deg); }
  10%{ opacity:1; }
  100%{ transform: scale(1.2); opacity:0; }
}


/* Schedule Line Component */
.schedule-line { display:flex; align-items:flex-start; gap:.6rem; margin-top:1rem; color:var(--tx); opacity:.95; }
.schedule-line .emoji { flex:0 0 1.6rem; display:flex; align-items:center; justify-content:center; font-size:1.15rem; line-height:1; }
.schedule-line .line { flex:1; }

/* RSVP error flash (no inline styles needed) */
@keyframes formErrorFlash{
  0%{ box-shadow: 0 0 0 0 rgba(248,113,113,0); }
  10%{ box-shadow: 0 0 0 2px rgba(248,113,113,.85); }
  90%{ box-shadow: 0 0 0 2px rgba(248,113,113,.85); }
  100%{ box-shadow: 0 0 0 0 rgba(248,113,113,0); }
}
.form-error-flash{ animation: formErrorFlash .9s ease-out; }

/* Prevent countdown digits from changing width (e.g., 9 → 10) */
#countdown .text-3xl{
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}

/* Ensure each countdown card has consistent space */
#countdown .card{
  min-width: 7.5rem; /* adjust slightly if needed, doesn’t change style—just prevents squeeze */
}

@media (max-width: 420px){
  .hero-content{
    padding-top: 22px;   /* was larger */
    padding-bottom: 22px; /* was larger */
  }
}



/* Mobile language dropdown (same look as lang buttons) */
.lang-menu{
  position: absolute;
  right: 0;
  top: calc(100% + .4rem);
  padding: .4rem;
  border-radius: .9rem;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 24px rgba(0,0,0,.10);
  display: flex;
  gap: .35rem;
  z-index: 60;
}
.lang-toggle{ min-width: 3.1rem; text-align:center; }
.lang-menu.hidden{ display: none; }

/* Countdown: mobile-optimized sizing (no visual redesign) */
#countdown .text-3xl{ font-variant-numeric: tabular-nums; }

@media (max-width: 420px){
  /* 3 rows of 2 cards: hide seconds on small screens */
  #countdown .unit-seconds{ display:none; }

  /* Keep it centered and compact */
  #countdown{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 340px;
    margin-left: auto;
    margin-right: auto;
    gap: .65rem !important;
  }
  #countdown .card{
    padding: .75rem !important;
  }
  #countdown .text-3xl{
    font-size: 1.65rem !important;
    line-height: 1.05;
  }
  #countdown .text-sm{
    font-size: .78rem !important;
  }
}
