/* Kerala Tour Taxi SaaS — tourist design system (from handoff tokens) */
@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Instrument+Serif:ital@0;1&display=swap');

:root{
  --brand:#0C5F55; --brand-hover:#084A42; --tint:#E7F0EE; --tint-edge:#CFE0DB;
  --paper:#FAF6EE; --hero:#EDE7DA; --paper-border:#E7E0D3; --field-border:#DDD6C6;
  --border-strong:#D8D0BF; --ink:#14211E; --ink-muted:#8C8878; --ink-ph:#879490;
  --ok-fg:#136245; --ok-bg:#E4F3EC; --warn-fg:#B4740B; --warn-bg:#FCEFD6;
  --danger-fg:#8E2A2E; --danger-bg:#FDECEC;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Instrument Sans',system-ui,sans-serif;background:#E8EBE9;color:var(--ink);
  font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}
.tabnum{font-variant-numeric:tabular-nums}

/* mobile column, centred on desktop */
.screen{max-width:480px;margin:0 auto;min-height:100vh;background:var(--paper);
  display:flex;flex-direction:column}

/* app bar */
.appbar{background:var(--brand);color:#fff;height:50px;display:flex;align-items:center;
  gap:10px;padding:0 16px}
.appbar .logo{width:30px;height:30px;border-radius:8px;background:var(--paper);color:var(--brand);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;overflow:hidden}
.appbar .logo img{width:100%;height:100%;object-fit:cover}
.appbar .wm{font-weight:600;font-size:15px}
.appbar .back{color:#fff;text-decoration:none;font-size:20px;margin-right:2px}

/* hero band */
.hero{height:132px;background:var(--hero);position:relative;display:flex;align-items:flex-end}
.hero .label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  color:#B7AE9A;font-size:11px;font-weight:700;letter-spacing:.1em}
.hero h1{font-family:'Instrument Serif',serif;font-weight:400;font-size:25px;line-height:1.1;
  color:var(--ink);padding:0 16px 12px;position:relative;z-index:1}

/* cards */
.card{background:#fff;margin:14px 16px;border:1px solid var(--paper-border);border-radius:14px;
  padding:14px;display:flex;flex-direction:column;gap:9px}
.card h2{font-size:14px;font-weight:700}

/* fields */
.field label{display:block;font-size:11px;font-weight:600;color:var(--ink-muted);margin-bottom:4px}
.inp{width:100%;height:42px;border:1px solid var(--field-border);border-radius:9px;padding:0 12px;
  font:inherit;font-size:14px;color:var(--ink);background:#fff;outline:none}
.inp::placeholder{color:var(--ink-ph)}
.inp:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(12,95,85,.14)}
.inp.err{border-color:#BE3B3B}
.row{display:flex;gap:8px}
.row>*{flex:1}
.phone-wrap{display:flex;align-items:center;border:1px solid var(--field-border);border-radius:9px;height:42px;overflow:hidden}
.phone-wrap:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px rgba(12,95,85,.14)}
.phone-wrap .cc{padding:0 10px;color:#6E7C78;border-right:1px solid var(--field-border);font-size:14px;height:100%;display:flex;align-items:center}
.phone-wrap input{border:0;flex:1;height:100%;padding:0 12px;font:inherit;font-size:14px;outline:none}
.errmsg{color:var(--danger-fg);font-size:11px;margin-top:3px}

/* buttons */
.btn{height:48px;border:0;border-radius:11px;background:var(--brand);color:#fff;font:inherit;
  font-size:15px;font-weight:600;cursor:pointer;width:100%;transition:background .15s}
.btn:hover{background:var(--brand-hover)}
.btn:active{background:var(--brand-hover);transform:translateY(1px)}
.btn:disabled{background:#C4CBC8;color:#8C9490;cursor:default}
.btn.outline{background:#fff;color:var(--brand);border:1px solid var(--tint-edge)}
.reassure{font-size:11px;color:var(--ink-muted);text-align:center}

/* trust strip / footer */
.trust{display:flex;justify-content:center;gap:14px;color:var(--ink-muted);font-size:11px;padding:2px 16px 8px}
.footer-cta{margin-top:auto;display:flex;gap:8px;padding:10px 16px 16px;border-top:1px solid var(--paper-border);background:#fff}

/* success medallion */
.medallion{width:46px;height:46px;border-radius:14px;background:var(--ok-bg);color:var(--ok-fg);
  display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto}
.steps{list-style:none;display:flex;flex-direction:column;gap:8px}
.steps li{display:flex;gap:8px;font-size:13px}
.steps .n{width:20px;height:20px;border-radius:6px;background:var(--tint);color:var(--brand);
  font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* price hero (quote) */
.price-card{background:#fff;margin:14px 16px;border:1px solid var(--paper-border);border-radius:14px;padding:16px 14px}
.price-card .eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.price-card .total{font-size:34px;font-weight:700;line-height:1;margin-top:4px}
.price-card .sub{font-size:12px;color:var(--ink-muted);margin-top:6px}

/* status strips */
.strip{margin:14px 16px 0;padding:10px 12px;border-radius:11px;font-size:12px;font-weight:600}
.strip.revised{background:var(--warn-bg);color:var(--warn-fg)}
.strip.expired{background:var(--danger-bg);color:var(--danger-fg)}
.strip.accepted{background:var(--ok-bg);color:var(--ok-fg)}

/* accordion (A4 Direction B) */
.acc{margin:12px 16px;display:flex;flex-direction:column;gap:10px}
.acc .sec{background:#fff;border:1px solid var(--paper-border);border-radius:12px;overflow:hidden}
.acc .head{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:13px 14px;background:none;border:0;font:inherit;font-size:14px;font-weight:600;cursor:pointer;color:var(--ink)}
.acc .chev{transition:transform .18s cubic-bezier(.2,.8,.2,1);color:var(--ink-muted)}
.acc .sec.open .chev{transform:rotate(180deg)}
.acc .body{max-height:0;overflow:hidden;transition:max-height .18s cubic-bezier(.2,.8,.2,1)}
.acc .sec.open .body{max-height:800px}
.acc .body-in{padding:0 14px 14px;font-size:13px;color:var(--ink)}
.day{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--paper-border)}
.day .well{width:26px;height:26px;border-radius:7px;background:var(--tint);color:var(--brand);
  font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pline{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--paper-border)}
.pline.grand{font-weight:700;font-size:15px;border-top:2px solid var(--border-strong);margin-top:2px}

@media (prefers-reduced-motion: reduce){*{transition:none!important}}
