
    :root{
      --bg:#0b1220;
      --card:#0f1a2f;
      --text:#eef2ff;
      --muted:#a9b4c7;
      --line:rgba(255,255,255,.12);
      --accent:#1daabe;
      --danger:#ff5a6a;
      --shadow: 0 18px 60px rgba(0,0,0,.45);
      --radius: 18px;
    }

    *{ box-sizing:border-box; }
    body{
      margin:0;
      font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
      background:
        radial-gradient(900px 420px at 18% 10%, rgba(29,170,190,.22), transparent 60%),
        radial-gradient(800px 420px at 90% 20%, rgba(21,82,98,.25), transparent 60%),
        var(--bg);
      color:var(--text);
    }

    .wrap{ max-width: 980px; margin: 0 auto; }

    .header{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      margin-bottom:18px;
    }

    .title{
      margin:0;
      font-size: clamp(22px, 3.4vw, 34px);
      line-height:1.1;
      letter-spacing:-.02em;
    }
    .subtitle{
      margin:10px 0 0;
      color:var(--muted);
      max-width: 68ch;
      line-height:1.45;
      font-size: 14.5px;
    }

    .badge{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding: 10px 12px;
      border:1px solid var(--line);
      border-radius: 999px;
      background: rgba(255,255,255,.04);
      white-space:nowrap;
      margin-top: 2px;
      font-size: 12.5px;
      color: var(--muted);
    }
    .dot{
      width:10px;height:10px;border-radius:50%;
      background: var(--accent);
      box-shadow: 0 0 0 6px rgba(29,170,190,.15);
    }
    @media (max-width: 920px){
      .badge{ display:none; }
    }

    .grid{
      display:grid;
      gap: 16px;
      grid-template-columns: 1.2fr .8fr;
    }
    @media (max-width: 920px){
      .grid{ grid-template-columns: 1fr; }
    }

    .card{
      background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow:hidden;
    }

    .cardHeader{ padding: 18px 18px 0; }
    .cardBody{ padding: 18px; }

    .sectionTitle{
      margin:0 0 6px 0;
      font-size: 15px;
      color: rgba(238,242,255,.92);
      letter-spacing:.01em;
    }
    .hint{
      margin:0 0 14px 0;
      font-size: 13px;
      color: var(--muted);
      line-height:1.45;
    }

    label{
      display:block;
      font-size: 13px;
      color: rgba(238,242,255,.88);
      margin-bottom: 8px;
    }

    .input, .textarea{
      width:100%;
      padding: 14px 14px;
      border-radius: 14px;
      border: 1px solid var(--line);
      background: rgba(10,16,30,.55);
      color: var(--text);
      outline: none;
      transition: border .2s ease, box-shadow .2s ease, opacity .2s ease;
      font-size: 15px;
    }
    .input:focus, .textarea:focus{
      border-color: rgba(29,170,190,.55);
      box-shadow: 0 0 0 5px rgba(29,170,190,.12);
    }
    .input:disabled{
      opacity:.55;
      cursor:not-allowed;
    }

    .row{
      display:grid;
      gap: 14px;
      grid-template-columns: 1fr 1fr;
      margin-top: 14px;
    }
    @media (max-width: 520px){
      .row{ grid-template-columns: 1fr; }
    }

    /* ===== Custom Select (dropdown com cards) ===== */
    .dropdown{ position:relative; }
    .dropdownBtn{
      width:100%;
      padding: 14px 14px;
      border-radius: 14px;
      border: 1px solid var(--line);
      background: rgba(10,16,30,.55);
      color: var(--text);
      outline:none;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      cursor:pointer;
      transition: border .2s ease, box-shadow .2s ease;
      font-size: 15px;
    }
    .dropdownBtn:focus{
      border-color: rgba(29,170,190,.55);
      box-shadow: 0 0 0 5px rgba(29,170,190,.12);
    }
    .dropdownBtn small{
      color: var(--muted);
      font-size: 12.5px;
      margin-left:auto;
      white-space:nowrap;
    }
    .chev{
      width: 10px;
      height: 10px;
      border-right: 2px solid rgba(238,242,255,.75);
      border-bottom: 2px solid rgba(238,242,255,.75);
      transform: rotate(45deg);
      margin-left: 6px;
      flex: 0 0 auto;
      opacity:.85;
    }

    .dropdownMenu{
      position:absolute;
      left:0; right:0;
      top: calc(100% + 10px);
      background: rgba(15,26,47,.98);
      border: 1px solid rgba(255,255,255,.14);
      border-radius: 16px;
      box-shadow: 0 18px 60px rgba(0,0,0,.55);
      padding: 10px;
      z-index: 50;
      display:none;
      max-height: 340px;
      overflow:auto;
    }
    .dropdownMenu.open{ display:block; }

    .serviceGrid{
      display:grid;
      gap: 10px;
    }
    .serviceOption{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 12px;
      padding: 12px 12px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(10,16,30,.38);
      cursor:pointer;
      user-select:none;
      transition: transform .08s ease, border .18s ease, background .18s ease;
    }
    .serviceOption:hover{
      transform: translateY(-1px);
      border-color: rgba(255,255,255,.18);
      background: rgba(255,255,255,.05);
    }

    .serviceLeft{
      display:flex;
      align-items:center;
      gap: 12px;
      min-width: 0;
    }

    footer {
  margin-top: 60px;
}

.page-header-spacing {
  margin-top: 48px;
}

    .radio{
      width: 18px;
      height: 18px;
      border-radius: 50%;
      border: 2px solid rgba(255,255,255,.35);
      position: relative;
      flex: 0 0 auto;
    }
    .serviceOption.active .radio{
      border-color: rgba(29,170,190,.9);
    }
    .serviceOption.active .radio::after{
      content:"";
      width: 9px;height: 9px;border-radius: 50%;
      background: var(--accent);
      position:absolute; inset:0;
      margin:auto;
      box-shadow: 0 0 0 6px rgba(29,170,190,.12);
    }

    .serviceText{ min-width:0; }
    .serviceName{
      font-size: 14px;
      color: rgba(238,242,255,.92);
      line-height:1.2;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .serviceNote{
      font-size: 12px;
      color: var(--muted);
      margin-top: 3px;
    }

    /* ===== "Não sei a área" com seleção por faixas ===== */
    .unknownBox{
      margin-top: 12px;
      padding: 12px;
      border-radius: 14px;
      border: 1px dashed rgba(255,255,255,.22);
      background: rgba(255,255,255,.03);
    }
    .unknownRow{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 10px;
      margin-bottom: 10px;
    }

    .pillRow{
      display:flex;
      flex-wrap:wrap;
      gap: 10px;
    }
    .pill{
      padding: 10px 12px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.05);
      font-size: 12.5px;
      color: rgba(238,242,255,.88);
      line-height: 1.2;
      cursor:pointer;
      user-select:none;
      transition: transform .08s ease, border .18s ease, background .18s ease;
    }
    .pill:hover{
      transform: translateY(-1px);
      border-color: rgba(255,255,255,.20);
      background: rgba(255,255,255,.07);
    }
    .pill.active{
      border-color: rgba(29,170,190,.55);
      background: rgba(29,170,190,.10);
      box-shadow: 0 0 0 5px rgba(29,170,190,.10);
    }
    .pill b{ color: var(--text); }

    .side{
      position: sticky;
      top: 14px;
      align-self: start;
    }

    .resultBox{
      padding: 18px;
      border-radius: var(--radius);
      background: linear-gradient(180deg, rgba(29,170,190,.16), rgba(15,26,47,.65));
      border: 1px solid rgba(29,170,190,.35);
    }

    .resultTitle{
      margin:0;
      font-size: 14px;
      color: rgba(238,242,255,.9);
    }
    .price{
      margin: 10px 0 6px;
      font-size: 34px;
      letter-spacing:-.03em;
      font-weight: 750;
    }
    .mini{
      margin:0;
      font-size: 13px;
      color: var(--muted);
      line-height:1.35;
    }

    .divider{
      height: 1px;
      background: rgba(255,255,255,.12);
      margin: 14px 0;
    }

    .kv{
      display:grid;
      grid-template-columns: 1fr auto;
      gap: 8px 12px;
      font-size: 13px;
      color: rgba(238,242,255,.9);
    }
    .kv span{ color: var(--muted); }

    .error{
      margin-top: 10px;
      font-size: 12.5px;
      color: var(--danger);
      display:none;
    }
    .error.show{ display:block; }

    .btnRow{
      display:grid;
      gap: 10px;
      margin-top: 14px;
    }

    .btn{
      width:100%;
      border:none;
      cursor:pointer;
      padding: 13px 14px;
      border-radius: 14px;
      font-weight: 700;
      font-size: 14px;
      transition: transform .08s ease, opacity .2s ease, box-shadow .2s ease;
    }
    .btn:active{ transform: translateY(1px); }

    .btnPrimary{
      background: linear-gradient(135deg, var(--accent), #24c3d8);
      color: #042026;
      box-shadow: 0 18px 40px rgba(29,170,190,.25);
    }
    .btnPrimary:hover{ opacity:.95; }

    .btnGhost{
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.14);
      color: rgba(238,242,255,.92);
    }
    .btnGhost:hover{ opacity:.96; }

    .legal{
      margin-top: 12px;
      font-size: 12.3px;
      color: var(--muted);
      line-height:1.45;
    }

    .footerNote{
      margin-top: 14px;
      color: var(--muted);
      font-size: 12.5px;
      line-height: 1.4;
    }

    .textarea{
      resize: none;
      min-height: 160px;
    }


/* Centralizar o topo (título + subtítulo) no mobile */
@media (max-width: 640px) {
  .header {
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 8px; /* diminui o espaço */
  }

  /* garante que o bloco do texto ocupe a largura */
  .header > div:first-child {
    width: 100%;
  }

  .title,
  .subtitle {
    text-align: center;
  }

  .subtitle {
    margin-left: auto;
    margin-right: auto;
  }
}
