/* ============================================================
   Katalis.app – Mortgage Comparison Platform
   Stylesheet  |  optimised for speed & mobile
   ============================================================ */

/* ── Variables ── */
:root {
  --red:        #e5323b;
  --red-dark:   #c0272f;
  --red-light:  #ff6b71;
  --text:       #1a1a2e;
  --muted:      #6b7280;
  --light:      #9ca3af;
  --bg:         #f8fafc;
  --card:       #ffffff;
  --border:     #e5e7eb;
  --green:      #10b981;
  --green-bg:   #d1fae5;
  --err:        #ef4444;
  --err-bg:     #fee2e2;
  --r:          10px;
  --r-sm:       7px;
  --shadow:     0 4px 24px rgba(0,0,0,.10);
  --shadow-lg:  0 12px 48px rgba(0,0,0,.14);
  --t:          .18s ease;
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,select{font-family:inherit}
.hidden{display:none!important}

.container{
  max-width: min(90%, 1280px);
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* gradient text */
.lp-highlight{
  background:linear-gradient(135deg,var(--red),#ff8c00);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text
}

/* ============================================================
   NAVBAR
   ============================================================ */
.navbar{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:60px}

.logo{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:1.25rem;color:var(--text)}
.logo-icon{font-size:1.2rem}
.logo-accent{color:var(--red)}

.nav-links{display:flex;align-items:center;gap:1.75rem}
.nav-links a{font-size:.875rem;font-weight:500;color:var(--muted);transition:color var(--t)}
.nav-links a:hover{color:var(--red)}

.btn-nav{
  background:var(--red);color:#fff!important;
  padding:.45rem 1.1rem;border-radius:50px;font-weight:700;font-size:.85rem;
  transition:background var(--t)
}
.btn-nav:hover{background:var(--red-dark)!important}

.hamburger{display:none;font-size:1.4rem;color:var(--text);padding:.2rem .4rem;line-height:1}

/* ============================================================
   MAIN GRID  (left panel + form panel)
   ============================================================ */
.main-wrap{
  padding-top:60px;
  min-height:calc(100vh - 60px);
  background:linear-gradient(160deg,#fff6f6 0%,#fff 45%,#f5f8ff 100%);
}

.main-grid{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:1.75rem;
  align-items:start;
  padding:3.5rem 0 1.25rem;
}

/* ============================================================
   LEFT PANEL
   ============================================================ */
.left-panel{
  position:sticky;
  top:76px;
  padding:.25rem 0;
  padding-top: 1.5rem;
}

.lp-eyebrow{
  display:inline-flex;align-items:center;gap:.35rem;
  background:#fff0f1;border:1px solid #fde4e6;color:var(--red);
  font-size:.78rem;font-weight:700;padding:.25rem .75rem;border-radius:50px;
  margin-bottom:.75rem;letter-spacing:.03em
}

.lp-title{
  font-size:clamp(1.35rem,2.6vw,1.9rem);
  font-weight:700;line-height:1.22;
  color:var(--text);margin-bottom:.6rem;letter-spacing:-.01em
}

.lp-sub{
  font-size:.875rem;color:var(--muted);line-height:1.6;
  margin-bottom:.9rem;max-width:420px
}

/* Rate freshness badge */
.rate-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  background:#f0fdf4;border:1px solid #bbf7d0;
  color:#065f46;font-size:.8rem;font-weight:600;
  padding:.3rem .8rem;border-radius:50px;margin-bottom:1rem
}
.rate-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--green);
  animation:pulse 2s infinite
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* Big stat row */
.big-stat-row{
  display:flex;align-items:center;gap:1.5rem;
  margin-bottom:1.75rem;
}
.big-stat{display:flex;flex-direction:column;gap:.15rem}
.big-num{font-size:2rem;font-weight:700;color:var(--red);line-height:1}
.big-label{font-size:.78rem;color:var(--muted);font-weight:500}
.big-stat-divider{width:1px;height:40px;background:var(--border)}

/* Bank grid */
.bank-section{margin-bottom:1rem}
.bank-headline{
  font-size:.95rem;font-weight:700;color:var(--red);
  text-align:center;margin-bottom:.75rem;letter-spacing:-.01em
}
.bank-more-note{
  margin-top:.85rem;
  font-size:.78rem;font-weight:600;color:var(--muted);
  text-align:center;
}
.bank-section-label{
  font-size:.75rem;font-weight:700;color:var(--light);
  text-transform:uppercase;letter-spacing:.07em;margin-bottom:.85rem
}
.bank-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.5rem .75rem;
}
.bank-logo-wrap{
  height:72px;
  background:transparent;
  display:flex;align-items:center;justify-content:center;
  padding:.2rem .4rem;
}
.bank-logo-wrap img{
  height:48px;
  width:auto;
  max-width:100%;
  object-fit:contain;
  filter:grayscale(10%) opacity(.88);
  transition:filter var(--t),transform var(--t);
  display:block;
}
.bank-logo-wrap:hover img{
  filter:none;transform:scale(1.06)
}
.bank-logo-more{
  height:72px;
  display:flex;align-items:center;justify-content:center;
  font-size:.85rem;font-weight:700;
  color:var(--red);letter-spacing:.01em;
}

/* Trust strip */
.lp-trust{
  display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
  font-size:.78rem;color:var(--muted);
}

/* ============================================================
   FORM PANEL
   ============================================================ */
.form-panel{
  background:var(--card);
  border-radius:16px;
  box-shadow:var(--shadow-lg);
  border:1px solid var(--border);
  overflow:hidden;
}

/* Progress bar */
.progress-bar-wrap{
  background:linear-gradient(135deg,var(--red),var(--red-dark));
  padding:1rem 1.5rem;
}
.progress-steps{display:flex;align-items:center}
.progress-step{display:flex;flex-direction:column;align-items:center;gap:.3rem;flex:1}
.ps-circle{
  width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.2);border:2px solid rgba(255,255,255,.4);
  color:rgba(255,255,255,.7);font-size:.82rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;transition:all .3s
}
.progress-step.active .ps-circle{
  background:#fff;border-color:#fff;color:var(--red);
  box-shadow:0 0 0 4px rgba(255,255,255,.2)
}
.progress-step.completed .ps-circle{background:var(--green);border-color:var(--green);color:#fff}
.progress-step span{font-size:.72rem;font-weight:600;color:rgba(255,255,255,.65)}
.progress-step.active span{color:#fff}
.progress-line{
  flex:1;height:3px;background:rgba(255,255,255,.25);
  border-radius:3px;margin:.0 .4rem 1.3rem;transition:background .3s
}
.progress-line.done{background:rgba(255,255,255,.85)}

/* Step forms */
.step-form{padding:1.25rem 1.5rem}
.step-form.hidden{display:none}
.step-form.active{display:block}

.step-label{
  font-size:.72rem;font-weight:700;color:var(--red);
  background:#fff0f1;border:1px solid #fde4e6;
  border-radius:50px;display:inline-block;
  padding:.25rem .8rem;margin-bottom:1rem;
  letter-spacing:.04em;text-transform:uppercase
}

/* Form groups */
.form-row.two-col{display:flex;gap:.75rem}
.form-row.two-col>.form-group{flex:1;min-width:0}
.form-group{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem}
.form-group label{font-size:.82rem;font-weight:600;color:var(--text)}
.req{color:var(--red)}

/* Inputs */
input[type="text"],input[type="email"],input[type="tel"],select{
  width:100%;padding:.65rem .9rem;
  border:1.5px solid var(--border);border-radius:var(--r-sm);
  font-size:.9rem;color:var(--text);background:#fff;
  transition:border-color var(--t),box-shadow var(--t);outline:none
}
input:focus,select:focus{
  border-color:var(--red);box-shadow:0 0 0 3px rgba(229,50,59,.1)
}
input::placeholder{color:var(--light)}

/* Prefix input */
.input-wrap{
  display:flex;align-items:stretch;
  border:1.5px solid var(--border);border-radius:var(--r-sm);overflow:hidden;
  transition:border-color var(--t),box-shadow var(--t)
}
.input-wrap:focus-within{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,50,59,.1)}
.input-prefix{
  display:flex;align-items:center;padding:0 .75rem;
  background:var(--bg);border-right:1.5px solid var(--border);
  font-size:.82rem;font-weight:600;color:var(--muted);white-space:nowrap
}
.input-wrap input{border:none;border-radius:0;box-shadow:none;flex:1}
.input-wrap input:focus{box-shadow:none;border-color:transparent}

/* Select */
.select-wrap{position:relative}
.select-wrap::after{
  content:'▾';position:absolute;right:.8rem;top:50%;
  transform:translateY(-50%);pointer-events:none;
  color:var(--muted);font-size:.82rem
}
.select-wrap select{appearance:none;-webkit-appearance:none;padding-right:2.2rem}

.field-hint{font-size:.76rem;color:var(--muted)}

/* Loan Type toggle */
.loan-type-toggle{display:flex;gap:.5rem}
.lt-option{cursor:pointer;flex:1}
.lt-option input[type="radio"]{display:none}
.lt-box{
  display:block;text-align:center;
  padding:.65rem 1rem;
  border:1.5px solid var(--border);border-radius:var(--r-sm);
  background:#fff;font-size:.9rem;font-weight:600;color:var(--muted);
  transition:all var(--t);
}
.lt-option input:checked+.lt-box{
  border-color:var(--red);background:#fff0f1;
  color:var(--red);box-shadow:0 0 0 2px rgba(229,50,59,.1)
}
.lt-box:hover{border-color:var(--red-light);color:var(--text)}

/* Conditional field sections */
#fields-new-purchase,#fields-refinancing{
  transition:opacity .2s ease
}

/* Phone input row */
.phone-input-wrap{
  display:flex;align-items:stretch;
  border:1.5px solid var(--border);border-radius:var(--r-sm);
  overflow:hidden;transition:border-color var(--t),box-shadow var(--t)
}
.phone-input-wrap:focus-within{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,50,59,.1)}
.phone-input-wrap.invalid{border-color:var(--err)!important;box-shadow:0 0 0 3px rgba(239,68,68,.1)!important}
.phone-input-wrap input{
  flex:1;min-width:0;
  border:none!important;border-radius:0!important;box-shadow:none!important
}
.phone-input-wrap input:focus{box-shadow:none!important;border-color:transparent!important}

/* Country picker */
.country-picker{
  position:relative;
  display:flex;align-items:center;gap:.35rem;
  padding:.6rem .5rem .6rem .7rem;
  background:var(--bg);border-right:1.5px solid var(--border);
  flex-shrink:0;cursor:pointer;min-width:0;
}
/* The native <select> is invisible but covers the whole area for interaction */
.country-picker select{
  position:absolute;inset:0;opacity:0;cursor:pointer;
  width:100%;height:100%;
}
.country-picker:hover{background:#f1f3f5}
.flag-icon{width:22px;height:15px;border-radius:2px;object-fit:cover;flex-shrink:0}
#dial-code-display{
  font-size:.85rem;font-weight:700;color:var(--text);
  white-space:nowrap;letter-spacing:.01em
}
.chevron{color:var(--light);flex-shrink:0}

/* hint states */
.field-hint.valid{color:var(--green);font-weight:600}
.field-hint.invalid{color:var(--err);font-weight:600}

/* Turnstile */
.turnstile-wrap{align-items:flex-start}

/* Submit button */
.btn-submit{
  width:100%;display:flex;align-items:center;justify-content:center;gap:.55rem;
  background:linear-gradient(135deg,var(--red),var(--red-dark));
  color:#fff;font-size:.95rem;font-weight:700;
  padding:.85rem 1.5rem;border-radius:var(--r-sm);
  box-shadow:0 4px 14px rgba(229,50,59,.32);
  transition:all var(--t);border:none;cursor:pointer;letter-spacing:.01em
}
.btn-submit:hover:not(:disabled){
  background:linear-gradient(135deg,var(--red-dark),#a02028);
  transform:translateY(-1px);box-shadow:0 6px 20px rgba(229,50,59,.38)
}
.btn-submit:disabled{
  background:linear-gradient(135deg,#d1d5db,#9ca3af);
  box-shadow:none;cursor:not-allowed;transform:none
}
.btn-submit.loading{pointer-events:none;position:relative;color:transparent}
.btn-submit.loading::after{
  content:'';position:absolute;
  width:18px;height:18px;
  border:3px solid rgba(255,255,255,.3);border-top-color:#fff;
  border-radius:50%;animation:spin .65s linear infinite
}
@keyframes spin{to{transform:rotate(360deg)}}

.step2-actions{display:flex;gap:.65rem;align-items:center}
.btn-back{
  display:flex;align-items:center;gap:.35rem;
  color:var(--red);font-size:.88rem;font-weight:700;
  padding:.85rem 1.1rem;border:1.5px solid var(--red);
  border-radius:var(--r-sm);transition:background var(--t);white-space:nowrap;flex-shrink:0
}
.btn-back:hover{background:#fff0f1}
.step2-actions .btn-submit{flex:1}

/* Alerts */
.form-error{
  background:var(--err-bg);border:1px solid #fca5a5;
  color:#991b1b;font-size:.84rem;padding:.65rem .9rem;
  border-radius:var(--r-sm);margin-bottom:.9rem;font-weight:500
}

/* Phone validated badge */
.phone-valid-badge{
  display:inline-flex;align-items:center;gap:.35rem;
  background:var(--green-bg);color:var(--green);
  border:1px solid #6ee7b7;font-size:.78rem;font-weight:600;
  padding:.2rem .65rem;border-radius:50px;margin-top:.3rem
}

/* Success */
.success-box{padding:2.5rem 1.75rem;text-align:center}
.success-icon{font-size:3.5rem;margin-bottom:1rem}
.success-box h2{font-size:1.35rem;font-weight:700;color:var(--text);margin-bottom:.65rem}
.success-box p{color:var(--muted);font-size:.9rem;margin-bottom:1.25rem;line-height:1.65}
.success-box p strong{color:var(--text)}
.success-detail{
  background:var(--bg);border:1px solid var(--border);
  border-radius:var(--r);padding:1.1rem;
  text-align:left;font-size:.82rem;color:var(--muted);line-height:2
}
.success-detail strong{color:var(--text)}

/* ============================================================
   FAQ
   ============================================================ */
.section-faq{padding:4rem 0;background:#fff}
.faq-title{
  font-size:1.5rem;font-weight:700;color:var(--text);
  text-align:center;margin-bottom:2rem;letter-spacing:-.01em
}
.faq-list{max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:.65rem}
.faq-item{border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;transition:border-color var(--t)}
.faq-item.open{border-color:var(--red)}
.faq-q{
  width:100%;text-align:left;padding:1rem 1.35rem;
  font-size:.9rem;font-weight:600;color:var(--text);
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  transition:background var(--t)
}
.faq-q::after{content:'+';font-size:1.35rem;color:var(--red);line-height:1;transition:transform var(--t);flex-shrink:0}
.faq-item.open .faq-q::after{transform:rotate(45deg)}
.faq-q:hover{background:var(--bg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .32s ease}
.faq-item.open .faq-a{max-height:180px}
.faq-a p{padding:0 1.35rem 1.1rem;font-size:.875rem;color:var(--muted);line-height:1.7}

/* ============================================================
   FOOTER  (simplified — single bar)
   ============================================================ */
.footer{background:#0f0f1a}
.footer-inner{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:.75rem;
  padding:1.1rem 0;
}
.footer-brand{display:flex;align-items:center;gap:.35rem}
.footer-brand .footer-logo-text{font-size:1rem;font-weight:700;color:#fff}
.footer-brand .logo-icon{font-size:1rem}
.footer-links{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.footer-col{display:contents}
.footer-col h4{display:none}
.footer-col a{font-size:.8rem;color:rgba(255,255,255,.45);transition:color var(--t)}
.footer-col a:hover{color:var(--red-light)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:.85rem 0}
.footer-bottom-inner{
  display:flex;justify-content:space-between;align-items:center;
  gap:.75rem;flex-wrap:wrap
}
.footer-bottom p{font-size:.75rem;color:rgba(255,255,255,.3);line-height:1.5}
.footer-bottom a{color:rgba(255,255,255,.45);text-decoration:underline}


/* ============================================================
   RESPONSIVE
   ============================================================ */

/* Tablet */
@media (max-width:900px){
  .main-grid{grid-template-columns:1fr;gap:1.5rem;padding:1.25rem 0 1.75rem}
  .left-panel{position:static;padding:0}
  .bank-grid{grid-template-columns:repeat(3,1fr);gap:.45rem .7rem}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:.5rem}
  .footer-links{gap:1rem}
}

/* Mobile */
@media (max-width:640px){
  .nav-links{display:none}
  .hamburger{display:block}

  .nav-links.open{
    display:flex;flex-direction:column;
    position:fixed;top:60px;left:0;right:0;
    background:#fff;padding:1.25rem;gap:1.25rem;
    box-shadow:0 8px 24px rgba(0,0,0,.1);z-index:99;
    border-bottom:1px solid var(--border)
  }

  .bank-grid{grid-template-columns:repeat(3,1fr);gap:.4rem .55rem}
  .bank-logo-wrap{height:62px}
  .bank-logo-wrap img{height:40px}
  .bank-logo-more{height:62px}
  .form-row.two-col{flex-direction:column}
  .step2-actions{flex-direction:column-reverse}
  .btn-back{width:100%;justify-content:center}
  .step-form{padding:1rem 1.1rem}
  .progress-bar-wrap{padding:.85rem 1.1rem}
  .footer-inner{gap:.4rem}
  .footer-links{gap:.75rem}
  .footer-bottom-inner{flex-direction:column;gap:.3rem;text-align:center}
  .lp-title{font-size:1.3rem}
}

@media (max-width:380px){
  .bank-grid{grid-template-columns:repeat(3,1fr);gap:.3rem}
  .bank-logo-wrap{height:56px}
  .bank-logo-wrap img{height:34px}
  .bank-logo-more{height:56px}
  .otp-digit{width:36px!important;height:44px;font-size:1.1rem}
}
