.tools-page{--t-ink:#17221c;--t-muted:#657169;--t-green:#176346;--t-line:#ddd5c8;--t-paper:#fffdf9;min-height:100vh;background:#f6f2ea;color:var(--t-ink)}
.tools-wrap{max-width:1120px;margin:0 auto;padding:88px 22px 90px}
.tools-crumb{display:flex;align-items:center;gap:8px;margin-bottom:24px;color:var(--t-muted);font-size:12px}.tools-crumb a{color:inherit;text-decoration:none}.tools-crumb a:hover{color:var(--t-green)}
.tools-hero{padding:42px;border:1px solid rgba(23,34,28,.14);border-top:4px solid var(--t-green);border-radius:10px;background:var(--t-paper)}
.tools-ey{display:block;margin-bottom:12px;color:var(--t-green);font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.tools-hero h1,.weather-result h2,.future-report h2{margin:0;color:var(--t-ink);font-family:'Fraunces',serif;font-size:clamp(35px,6vw,64px);line-height:1.02;letter-spacing:-.025em}
.tools-hero p{max-width:770px;margin:18px 0 0;color:var(--t-muted);font-size:17px;line-height:1.65}
.tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}
.tools-card{display:flex;min-height:310px;flex-direction:column;padding:30px;border:1px solid var(--t-line);border-radius:10px;background:var(--t-paper);color:inherit;text-decoration:none;transition:transform .18s ease,border-color .18s ease}
.tools-card:hover{transform:translateY(-3px);border-color:#b9cabe}.tools-card-number{color:var(--t-green);font-size:11px;font-weight:850;letter-spacing:.1em}.tools-card h2{max-width:460px;margin:38px 0 12px;font-family:'Fraunces',serif;font-size:clamp(29px,4vw,42px);line-height:1.05}.tools-card p{max-width:470px;margin:0;color:var(--t-muted);font-size:14px;line-height:1.65}.tools-card-cta{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:28px;color:var(--t-green);font-size:13px;font-weight:800}.tools-card-cta span:last-child{font-size:20px}
.future-report{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(290px,.85fr);gap:48px;margin-top:18px;padding:42px;border:1px solid #b9cabe;border-radius:10px;background:#edf2ed}.future-report h2{font-size:clamp(31px,5vw,50px)}.future-report p{margin:14px 0 0;color:var(--t-muted);font-size:14px;line-height:1.65}.future-report ul{display:grid;gap:0;margin:0;padding:0;list-style:none;border-top:1px solid #cbd7cc}.future-report li{padding:13px 0;border-bottom:1px solid #cbd7cc;color:#425047;font-size:12px}.future-report li::before{content:'✓';margin-right:10px;color:var(--t-green);font-weight:900}
.lookup-panel{margin-top:24px;padding:32px;border:1px solid var(--t-line);border-radius:10px;background:var(--t-paper)}
.lookup-panel h2{margin:0 0 8px;font-family:'Fraunces',serif;font-size:32px}.lookup-panel>p{margin:0;color:var(--t-muted);font-size:14px;line-height:1.6}
.lookup-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-top:22px}.lookup-form input{min-width:0;height:54px;padding:0 16px;border:1px solid var(--t-line);border-radius:8px;background:#fff;color:var(--t-ink);font:inherit;font-size:17px}.lookup-form input:focus{outline:2px solid var(--t-green);outline-offset:1px}.lookup-form button{height:54px;padding:0 18px;border:1px solid var(--t-green);border-radius:8px;background:var(--t-green);color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.lookup-form button.lookup-locate{border-color:var(--t-line);background:#fff;color:var(--t-green)}.lookup-form button[aria-busy=true]{opacity:.55;pointer-events:none}.lookup-status{min-height:22px;margin:10px 0 0;color:#8b4a37;font-size:12px}
.weather-result{scroll-margin-top:110px;margin-top:18px;border:1px solid var(--t-line);border-radius:10px;background:var(--t-paper);overflow:hidden}.weather-result[hidden]{display:none}.weather-result-head{padding:32px;border-bottom:1px solid var(--t-line)}.weather-result h2{font-size:clamp(31px,5vw,48px)}.weather-result-head p{max-width:760px;margin:12px 0 0;color:var(--t-muted);font-size:13px;line-height:1.6}
.weather-result-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--t-line)}.weather-result-grid>div{padding:24px;border-right:1px solid var(--t-line)}.weather-result-grid>div:last-child{border-right:0}.weather-result-grid span{display:block;margin-bottom:8px;color:var(--t-green);font-size:9px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.weather-result-grid strong{display:block;font-size:21px;line-height:1.25}.weather-result-grid p{margin:7px 0 0;color:var(--t-muted);font-size:11px;line-height:1.55}
.weather-result-actions{display:flex;flex-wrap:wrap;gap:9px;padding:24px}.weather-result-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--t-green);border-radius:7px;color:var(--t-green);font-size:12px;font-weight:800;text-decoration:none}.weather-result-actions a:first-child{background:var(--t-green);color:#fff}.weather-source{padding:0 24px 24px;color:var(--t-muted);font-size:10px;line-height:1.55}
.lookup-explainer{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.lookup-explainer>div{padding:26px;border:1px solid var(--t-line);border-radius:10px;background:var(--t-paper)}.lookup-explainer h3{margin:0 0 8px;font-size:16px}.lookup-explainer p{margin:0;color:var(--t-muted);font-size:12px;line-height:1.6}
@media(max-width:760px){.tools-wrap{padding:72px 14px 70px}.tools-hero,.future-report{padding:28px 22px}.tools-hero p{font-size:15px}.tools-grid,.future-report,.lookup-explainer{grid-template-columns:1fr}.tools-card{min-height:260px;padding:24px}.tools-card h2{margin-top:28px}.future-report{gap:28px}.lookup-panel{padding:24px 18px}.lookup-form{grid-template-columns:1fr auto}.lookup-form button[type=submit]{grid-column:1/-1}.lookup-form button.lookup-locate{width:54px;padding:0;font-size:0}.lookup-form button.lookup-locate::before{content:'◎';font-size:20px}.weather-result-grid{grid-template-columns:1fr}.weather-result-grid>div{border-right:0;border-bottom:1px solid var(--t-line)}.weather-result-grid>div:last-child{border-bottom:0}.weather-result-head{padding:26px 22px}.weather-result-actions{padding:20px}.weather-result-actions a{width:100%}}
