/* ============================================================
   BizLoc8 Free Tools — shared styles (/tools/*)
   ============================================================ */
.tool-hero { padding: 120px 0 30px; background: linear-gradient(135deg,#f5f3ff 0%,#faf5ff 45%,#fdf2f8 100%); }
.tool-wrap { max-width: 960px; margin: 0 auto; padding: 0 24px; }
.tool-hero .tool-wrap { text-align: center; }
.tool-badge { display:inline-flex; align-items:center; gap:8px; background:linear-gradient(135deg,#8b5cf6,#ec4899); color:#fff; font-size:.8rem; font-weight:700; letter-spacing:.3px; padding:7px 15px; border-radius:50px; margin-bottom:18px; }
.tool-hero h1 { font-size:clamp(1.9rem,4vw,2.7rem); font-weight:800; color:#111827; line-height:1.15; margin:0 0 14px; }
.tool-hero h1 span { background:linear-gradient(135deg,#8b5cf6,#ec4899); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.tool-hero p.sub { font-size:1.12rem; color:#5b6472; line-height:1.65; max-width:680px; margin:0 auto; }

/* Tool card (input | output) */
.tcard-wrap { max-width:960px; margin:-10px auto 0; padding:0 24px 10px; }
.tcard { background:#fff; border:1px solid #eee7fb; border-radius:20px; box-shadow:0 18px 50px rgba(109,40,217,.10); overflow:hidden; display:grid; grid-template-columns:1fr 1fr; }
.tcard-in { padding:30px 28px; border-right:1px solid #f1ecfb; }
.tcard-out { padding:30px 28px; background:#faf8ff; display:flex; flex-direction:column; }
.tcard.single { grid-template-columns:1fr; max-width:720px; margin-left:auto; margin-right:auto; }
.tcard.single .tcard-in { border-right:none; }

/* Form controls */
.tlabel { display:block; font-size:.82rem; font-weight:700; color:#4b3f6b; text-transform:uppercase; letter-spacing:.4px; margin:18px 0 8px; }
.tlabel:first-child { margin-top:0; }
.tlabel .opt { font-weight:400; text-transform:none; color:#a99fc4; }
.trow { display:flex; gap:12px; flex-wrap:wrap; }
.trow > div { flex:1 1 130px; }
.tinput, textarea.tinput, select.tinput { width:100%; border:1.5px solid #e6e0f3; border-radius:11px; padding:11px 13px; font-family:inherit; font-size:.95rem; color:#1f2937; background:#fff; transition:border-color .15s, box-shadow .15s; }
.tinput:focus { outline:none; border-color:#8b5cf6; box-shadow:0 0 0 3px rgba(139,92,246,.14); }
textarea.tinput { min-height:96px; resize:vertical; }

/* Buttons */
.tbtn-primary { width:100%; margin-top:22px; background:linear-gradient(135deg,#8b5cf6,#ec4899); color:#fff; border:none; border-radius:50px; padding:15px; font-size:1.02rem; font-weight:700; cursor:pointer; box-shadow:0 8px 24px rgba(139,92,246,.32); transition:transform .15s, box-shadow .15s; display:inline-flex; align-items:center; justify-content:center; gap:9px; }
.tbtn-primary:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(139,92,246,.42); }
.tbtn-row { display:flex; gap:10px; margin-top:14px; }
.tbtn-row button, .tbtn-row a { flex:1; border-radius:50px; padding:11px; font-size:.9rem; font-weight:700; cursor:pointer; border:none; transition:all .15s; display:inline-flex; align-items:center; justify-content:center; gap:7px; text-decoration:none; }
.tbtn-dark { background:#1e1b3a; color:#fff; }
.tbtn-dark:hover { background:#322c5c; }
.tbtn-soft { background:#efe9fb; color:#6d28d9; }
.tbtn-soft:hover { background:#e4dbfa; }
.tbtn-row button:disabled { opacity:.45; cursor:not-allowed; }

/* Result box */
.tresult { flex:1; background:#fff; border:1.5px dashed #d9cdf2; border-radius:13px; padding:18px; font-size:1rem; line-height:1.65; color:#2b2540; white-space:pre-wrap; min-height:200px; }
.tresult.empty { display:flex; align-items:center; justify-content:center; text-align:center; color:#a99fc4; font-style:italic; }
.tnote { font-size:.8rem; color:#8b82a6; margin-top:12px; text-align:center; }
.tout-head { font-size:.82rem; font-weight:700; color:#4b3f6b; text-transform:uppercase; letter-spacing:.4px; margin-bottom:12px; }

/* Score ring */
.score-ring { width:150px; height:150px; border-radius:50%; margin:6px auto 14px; display:flex; align-items:center; justify-content:center; background:conic-gradient(#8b5cf6 0deg, #eee 0deg); transition:background .5s; }
.score-ring .inner { width:118px; height:118px; border-radius:50%; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.score-ring .num { font-size:2.2rem; font-weight:800; color:#1e1b4b; line-height:1; }
.score-ring .lbl { font-size:.72rem; text-transform:uppercase; letter-spacing:.5px; color:#8b82a6; margin-top:3px; }
.score-verdict { text-align:center; font-weight:700; margin-bottom:10px; }

/* Checklist */
.tcheck { display:flex; align-items:flex-start; gap:11px; padding:10px 0; border-bottom:1px solid #f2eefb; cursor:pointer; }
.tcheck:last-child { border-bottom:none; }
.tcheck input { margin-top:3px; width:18px; height:18px; accent-color:#8b5cf6; cursor:pointer; flex-shrink:0; }
.tcheck span { font-size:.95rem; color:#3b3550; line-height:1.5; }
.tcheck small { display:block; color:#9a90b5; font-size:.82rem; margin-top:2px; }
.tgroup-title { font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:#8b5cf6; margin:22px 0 4px; }
.tgroup-title:first-child { margin-top:0; }

/* Fix list */
.fixlist { list-style:none; padding:0; margin:12px 0 0; }
.fixlist li { display:flex; gap:9px; align-items:flex-start; padding:9px 0; border-bottom:1px solid #f2eefb; font-size:.93rem; color:#3b3550; line-height:1.5; }
.fixlist li i { color:#f59e0b; margin-top:3px; }
.fixlist li.good i { color:#22c55e; }

/* Content sections */
.tool-section { padding:56px 0; }
.tool-section.alt { background:#faf8ff; }
.tool-section .tool-wrap { max-width:860px; }
.tool-section h2 { font-size:clamp(1.5rem,3vw,2rem); font-weight:800; color:#1e1b4b; margin:0 0 14px; text-align:center; }
.tool-section .lead { text-align:center; color:#5b6472; font-size:1.05rem; line-height:1.7; max-width:680px; margin:0 auto 30px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.step { background:#fff; border:1px solid #eee7fb; border-radius:15px; padding:24px; text-align:center; }
.step .n { width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg,#8b5cf6,#ec4899); color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; }
.step h3 { font-size:1.05rem; color:#1e1b4b; margin:0 0 6px; }
.step p { font-size:.92rem; color:#6b7280; line-height:1.55; margin:0; }
.tips { max-width:640px; margin:0 auto; }
.tips li { display:flex; gap:12px; align-items:flex-start; margin-bottom:14px; color:#374151; line-height:1.6; list-style:none; }
.tips li i { color:#22c55e; margin-top:4px; }
.tips { padding:0; }

/* App handoff CTA */
.tool-cta { padding:56px 24px; }
.tool-cta-inner { max-width:860px; margin:0 auto; background:linear-gradient(135deg,#6d28d9,#8b5cf6 55%,#ec4899); border-radius:22px; padding:44px 36px; text-align:center; color:#fff; }
.tool-cta-inner h2 { color:#fff; font-size:clamp(1.5rem,3vw,2rem); font-weight:800; margin:0 0 12px; }
.tool-cta-inner p { color:rgba(255,255,255,.9); font-size:1.05rem; line-height:1.65; max-width:600px; margin:0 auto 24px; }
.tool-cta-inner .cta-btn { background:#fff; color:#6d28d9; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:9px; padding:15px 32px; border-radius:50px; font-size:1.02rem; transition:transform .15s, background .15s; }
.tool-cta-inner .cta-btn:hover { background:#f3f0ff; transform:translateY(-2px); }

/* FAQ */
.faqs { max-width:760px; margin:0 auto; }
.faq-q { background:#fff; border:1px solid #eee7fb; border-radius:12px; padding:18px 20px; margin-bottom:12px; }
.faq-q h3 { font-size:1.05rem; color:#1e1b4b; margin:0 0 7px; }
.faq-q p { font-size:.95rem; color:#5b6472; line-height:1.6; margin:0; }

/* Business finder result card */
.biz-result { display:none; gap:12px; align-items:center; background:#f5f3ff; border:1px solid #e6ddfa; border-radius:12px; padding:14px 16px; margin-top:16px; }
.biz-result .biz-ic { width:38px; height:38px; border-radius:10px; background:linear-gradient(135deg,#8b5cf6,#ec4899); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.biz-result strong { display:block; color:#1e1b4b; font-size:1rem; }
.biz-result span { color:#6b7280; font-size:.88rem; }
/* Google Places autocomplete dropdown above other content */
.pac-container { z-index: 100000; border-radius: 10px; margin-top: 4px; box-shadow: 0 12px 30px rgba(0,0,0,.14); }

/* Chips / suggestions (category generator) */
.chips { display:flex; flex-wrap:wrap; gap:9px; }
.chip { display:inline-flex; align-items:center; gap:7px; background:#fff; border:1.5px solid #e6e0f3; color:#4b3f6b; font-size:.9rem; font-weight:600; padding:8px 14px; border-radius:50px; }
.chip.primary { background:linear-gradient(135deg,#8b5cf6,#ec4899); color:#fff; border:none; }
.chip .copy-mini { background:none; border:none; color:inherit; cursor:pointer; opacity:.7; font-size:.8rem; }
.chip .copy-mini:hover { opacity:1; }

/* Tools hub grid */
.tool-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:1040px; margin:0 auto; padding:0 24px; }
.tool-tile { display:block; text-decoration:none; background:#fff; border:1px solid #eee7fb; border-radius:16px; padding:26px 24px; transition:transform .18s, box-shadow .18s, border-color .18s; }
.tool-tile:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(109,40,217,.12); border-color:#e0d3fb; }
.tool-tile .ic { width:46px; height:46px; border-radius:12px; background:linear-gradient(135deg,#8b5cf6,#ec4899); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom:14px; }
.tool-tile h3 { font-size:1.1rem; color:#1e1b4b; margin:0 0 7px; }
.tool-tile p { font-size:.92rem; color:#6b7280; line-height:1.55; margin:0; }
.tool-tile .soon { display:inline-block; margin-top:12px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#8b5cf6; }

@media (max-width: 820px) {
    .tool-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 760px) {
    .tcard { grid-template-columns:1fr; }
    .tcard-in { border-right:none; border-bottom:1px solid #f1ecfb; }
    .steps { grid-template-columns:1fr; }
    .tool-grid { grid-template-columns:1fr; }
}
