/* Missing utilities Falcon's compiled CSS never emitted, plus layout fixes. */
.h-\[18px\]{height:18px}
.w-\[18px\]{width:18px}
.h-fit{height:fit-content}
.mr-3{margin-right:.75rem}
.opacity-75{opacity:.75}
.min-h-\[110px\]{min-height:110px}
.min-h-\[calc\(80vh-4rem\)\]{min-height:calc(80vh - 4rem)}
@media (min-width:768px){
  .md\:min-h-\[calc\(100vh-4rem\)\]{min-height:calc(100vh - 4rem)}
}
.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}
@media (min-width:640px){
  .sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sm\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}
}
.accent-primary{accent-color:hsl(var(--primary))}
.w-full{width:100%}
.mt-2{margin-top:.5rem}
.mt-6{margin-top:1.5rem}
.mt-8{margin-top:2rem}
.text-sm{font-size:.875rem;line-height:1.25rem}

img{display:block;max-width:100%;height:auto}
header img.logo-img,
header img.h-10,
header img.h-9,
footer img.h-8,
.admin-header img{
  display:block;
  height:2.5rem;
  width:auto;
  max-width:none;
  max-height:2.5rem;
  flex-shrink:0;
  object-fit:contain
}
footer img.h-8{height:2rem;max-height:2rem}
header img.h-9,.admin-header img{height:2.25rem;max-height:2.25rem}
svg.h-4,svg.w-4{
  width:18px;height:18px;max-width:none;flex-shrink:0;display:inline-block
}

input,select,textarea{
  color:hsl(var(--foreground));
  background-color:hsl(var(--muted));
  border-color:hsl(var(--border));
  outline:none
}
input:focus,select:focus,textarea:focus{
  box-shadow:0 0 0 2px hsl(var(--ring) / .35)
}

details summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem
}
details summary::-webkit-details-marker{display:none}
details summary::after{
  content:"+";
  color:hsl(var(--primary));
  font-weight:700;
  font-size:1.25rem;
  line-height:1
}
details[open] summary::after{content:"–"}

.state-chip:has(input:checked),
.plan-card:has(input:checked){
  border-color:hsl(var(--primary));
  background:hsl(var(--primary) / .08);
  color:hsl(var(--primary))
}
.plan-card:has(input:checked){color:inherit}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0
}

.text-gradient-emerald,
.text-gradient-gold{
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  background-image:linear-gradient(120deg,#b8923f 0%,#e8d08a 42%,#fff1c4 58%,#c5a059 100%);
  background-size:220% 220%;
  animation:pe-gold-shift 7s ease infinite
}
@keyframes pe-gold-shift{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

@keyframes pe-fade-up{
  from{opacity:0;transform:translateY(28px);filter:blur(8px)}
  to{opacity:1;transform:none;filter:blur(0)}
}
.reveal{
  opacity:0;
  animation:pe-fade-up .85s cubic-bezier(.22,1,.36,1) forwards
}
.reveal-d1{animation-delay:.12s}
.reveal-d2{animation-delay:.24s}
.reveal-d3{animation-delay:.36s}

.js .reveal-on{
  opacity:0;
  transform:translateY(36px);
  transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)
}
.js .reveal-on.is-in{
  opacity:1;
  transform:none
}

@keyframes pe-orb{
  0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.7}
  50%{transform:translate(-46%,-54%) scale(1.12);opacity:1}
}
.pe-orb{animation:pe-orb 10s ease-in-out infinite}

main article.rounded-xl,
main .rounded-xl.border.bg-card{
  transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s,border-color .4s
}
main article.rounded-xl:hover,
main .pe-lift:hover{
  transform:translateY(-6px);
  border-color:hsl(var(--primary) / .45);
  box-shadow:0 28px 50px -24px hsl(var(--primary) / .4)
}

a.bg-primary,button.bg-primary{
  transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease
}
a.bg-primary:hover,button.bg-primary:hover{
  transform:translateY(-2px) scale(1.03);
  box-shadow:0 16px 32px -12px hsl(var(--primary) / .55)
}

@keyframes pe-chat{
  0%,100%{box-shadow:0 0 0 0 hsl(var(--primary) / .45)}
  70%{box-shadow:0 0 0 12px hsl(var(--primary) / 0)}
}
#chatBtn{animation:pe-chat 2.6s ease-out infinite}
#chatBtn:hover{transform:scale(1.08)}

#liveCount{transition:transform .3s ease}
#swapWord{will-change:opacity,transform,filter}

header{transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease}
header.is-scrolled{
  background-color:hsl(var(--background) / .92);
  box-shadow:0 10px 30px -20px #000
}

@media (prefers-reduced-motion:reduce){
  .reveal,.js .reveal-on{opacity:1;transform:none;filter:none;animation:none}
  .text-gradient-emerald,.text-gradient-gold,.pe-orb,#chatBtn{animation:none}
}

/* ——— Responsive / mobile ——— */
html{overflow-x:hidden;-webkit-text-size-adjust:100%}
.pe-site{overflow-x:hidden}
.pe-site main img{max-width:100%;height:auto}
.pe-site table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.pe-site .container{width:100%;max-width:1280px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}
@media (min-width:640px){
  .pe-site .container{padding-left:1.5rem;padding-right:1.5rem}
}
.pe-steps>div{min-width:0;flex:1 1 auto;justify-content:center}
@media (max-width:639px){
  .pe-steps{flex-direction:column;align-items:stretch;text-align:center}
  .pe-steps>div{justify-content:center}
  #stateGrid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:.375rem!important}
  .state-chip{font-size:.65rem!important;padding:.2rem .1rem!important}
  .plan-card{flex-direction:column!important;gap:.75rem!important}
  .plan-card .flex-1{width:100%}
  .plan-card .text-right{text-align:left!important}
  main h1{font-size:clamp(1.75rem,8vw,2.5rem)!important;line-height:1.15!important}
  main .md\\:text-6xl{font-size:clamp(2rem,9vw,3rem)!important}
  main .lg\\:text-7xl{font-size:clamp(2.25rem,10vw,3.5rem)!important}
  #topNav .container{padding-left:1rem;padding-right:1rem}
  #mobileNav .flex-col a,#mobileNav .flex-col button{width:100%;justify-content:center}
  #chatBtn{bottom:1rem;right:1rem;height:3rem;width:3rem;font-size:.875rem}
  #chatBox{bottom:5.5rem;right:1rem;width:calc(100vw - 2rem);max-width:none}
  footer .grid{gap:2rem!important}
  .pe-table-scroll{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  input,select,textarea,button{font-size:16px}
  a.bg-primary,button.bg-primary,.inline-flex.h-11{min-height:2.75rem}
}
@media (max-width:1023px){
  .lg\\:sticky{position:static!important;top:auto!important}
  .lg\\:col-span-2,.lg\\:col-span-3{width:100%}
}
@media (min-width:640px) and (max-width:1023px){
  #stateGrid{grid-template-columns:repeat(8,minmax(0,1fr))!important}
}
.min-w-0{min-width:0}
.break-words{overflow-wrap:break-word;word-break:break-word}

/* Width utilities missing from Falcon bundle */
.max-w-sm{max-width:24rem}
.max-w-md{max-width:28rem}
.max-w-lg{max-width:32rem}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
.max-w-6xl{max-width:72rem}
.mx-auto{margin-left:auto;margin-right:auto}
.hidden{display:none}
@media (min-width:768px){
  .md\:block{display:block!important}
  .md\:hidden{display:none!important}
  .md\:flex{display:flex!important}
}
@media (min-width:1024px){
  .lg\:flex{display:flex!important}
  .lg\:hidden{display:none!important}
}
.flex{display:flex}
.items-center{align-items:center}
.gap-2{gap:.5rem}
.gap-8{gap:2rem}
.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}
.space-y-8>:not([hidden])~:not([hidden]){margin-top:2rem}

/* Auth page */
.auth-hero-inner,.auth-wrap{max-width:28rem}
.auth-hero-lede{max-width:22rem;margin-left:auto;margin-right:auto}
.auth-card{
  border-radius:1rem;
  border:1px solid hsl(var(--border));
  background:hsl(var(--card));
  padding:1.75rem;
  box-shadow:0 24px 60px -36px rgb(0 0 0 / 0.55)
}
.auth-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.5rem;
  margin-bottom:1.25rem;
  padding:.25rem;
  border-radius:.75rem;
  background:hsl(var(--muted) / 0.35)
}
.auth-tab{
  border:none;
  border-radius:.5rem;
  padding:.625rem .75rem;
  font-size:.875rem;
  font-weight:600;
  color:hsl(var(--muted-foreground));
  background:transparent;
  cursor:pointer;
  transition:background-color .2s ease,color .2s ease,box-shadow .2s ease
}
.auth-tab.is-active{
  color:hsl(var(--primary-foreground));
  background:hsl(var(--primary));
  box-shadow:0 8px 20px -10px hsl(var(--primary) / 0.55)
}
.auth-form{display:flex;flex-direction:column;gap:1rem}
.auth-field{display:block;font-size:.875rem}
.auth-field>span{display:block;margin-bottom:.35rem;color:hsl(var(--muted-foreground))}
.auth-field input{
  width:100%;
  border-radius:.5rem;
  border:1px solid hsl(var(--border));
  background:hsl(var(--background));
  color:hsl(var(--foreground));
  padding:.625rem .75rem;
  font-size:.875rem
}
.auth-field input:focus{
  outline:none;
  border-color:hsl(var(--primary) / 0.55);
  box-shadow:0 0 0 3px hsl(var(--primary) / 0.15)
}
.auth-submit{width:100%;min-height:2.75rem;justify-content:center}
.auth-footnote{
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px solid hsl(var(--border) / 0.55);
  text-align:center;
  font-size:.75rem;
  color:hsl(var(--muted-foreground))
}
.auth-panel.hidden{display:none!important}

.footer-copy{
  width:100%;
  margin-top:3rem;
  padding:1.25rem 0;
  border-top:1px solid hsl(var(--border) / 0.5);
  text-align:center!important
}
.footer-copy p{
  margin:0;
  text-align:center!important
}
.site-footer{padding-bottom:0!important}
