:root{
  --navy:#14324a; --navy-2:#1d4664; --ink:#1b2430; --muted:#566170; --line:#e1e6eb;
  --bg:#f4f6f8; --card:#fff; --gold:#ffc20e; --amz:#ffd814; --amz-2:#f7ca00; --hd:#f96302;
  --rec-bg:#fff6dc; --rec-line:#f1d27a; --rec-ink:#7a5600;
  --radius:14px; --shadow:0 1px 2px rgba(20,50,74,.06),0 3px 10px rgba(20,50,74,.06);
  --top:60px; --side:20px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--top) + 12px)}
body{margin:0;font:17px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-tap-highlight-color:transparent}
body.sheet-on{overflow:hidden}
img{max-width:100%;display:block}
a{color:var(--navy-2)}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:10px 14px;z-index:70;border-radius:8px}
.skip:focus{left:8px}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--side)}
@media (min-width:768px){:root{--side:32px}}
@media (min-width:1024px){:root{--side:48px}body{font-size:18px}}
[hidden]{display:none!important}

/* header */
.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:30;height:var(--top)}
.top-in{display:flex;align-items:center;justify-content:space-between;height:var(--top);gap:12px}
.brand{display:flex;align-items:center;color:#fff;text-decoration:none;min-height:48px}
.brand-logo{height:30px;width:auto;display:block}
@media (max-width:370px){.brand-logo{height:26px}}
.top-nav{display:flex;gap:4px}
.top-nav a{color:#dbe6ef;text-decoration:none;font-size:15px;font-weight:600;padding:0 12px;min-height:48px;display:flex;align-items:center;border-radius:10px;transition:background .15s,color .15s;white-space:nowrap}
.top-nav a:hover{background:rgba(255,255,255,.1);color:#fff}
.top-nav a:active{background:rgba(255,255,255,.18)}
@media (max-width:420px){.top-nav a:first-child{display:none}}

/* hero */
.hero{background:linear-gradient(180deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;padding:20px 0 24px}
.hero h1{font-size:26px;line-height:1.15;margin:0 0 6px;letter-spacing:-.3px}
.lead{margin:0 0 16px;color:#d4e1ec;font-size:17px;line-height:1.45}
.search{display:flex;align-items:center;gap:8px;background:#fff;color:var(--muted);border-radius:14px;padding:0 6px 0 14px;max-width:600px;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.search>svg{width:20px;height:20px;flex:none}
.search input{border:0;outline:0;font:inherit;font-size:17px;padding:0;min-height:52px;width:100%;color:var(--ink);background:transparent}
.search input::-webkit-search-cancel-button{display:none}
.search:focus-within{box-shadow:0 0 0 3px var(--gold),0 6px 20px rgba(0,0,0,.18)}
.q-clear{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--muted)}
.q-clear:hover{background:#eef1f4;color:var(--ink)}
.q-clear svg{width:18px;height:18px}
@media (min-width:768px){.hero{padding:48px 0 52px}.hero h1{font-size:40px;margin-bottom:10px}.lead{font-size:19px;margin-bottom:24px}.search input{min-height:56px}}

.sec-head{margin:0 0 16px}
.sec-head h2{margin:0;font-size:22px;line-height:1.15;letter-spacing:-.2px;display:flex;align-items:center;gap:8px}
.sub{margin:4px 0 0;color:var(--muted);font-size:16px}
.count{margin:4px 0 0;color:var(--muted);font-size:15px}
@media (min-width:768px){.sec-head{margin-bottom:24px}.sec-head h2{font-size:28px}}

/* Recommended: the main focus */
.rec{background:var(--rec-bg);border-bottom:1px solid var(--rec-line);padding:20px 0 28px}
.rec .star{color:#e0a400;font-size:.9em}
.rec .sub{color:#6b5a2e}
@media (min-width:768px){.rec{padding:40px 0 48px}}

/* grid + cards */
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:640px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:900px){.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}
@media (min-width:1180px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:1180px){.rec-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.card{all:unset;box-sizing:border-box;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0;position:relative;transition:box-shadow .15s,transform .1s,border-color .15s}
.card:hover{box-shadow:0 2px 4px rgba(20,50,74,.08),0 10px 24px rgba(20,50,74,.12);border-color:#cfd7df}
.card:active{transform:scale(.98)}
.card:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.rec-grid .card{border-color:#ecd9a6}
.pic{position:relative;aspect-ratio:1/1;background:#fff;border-radius:10px;overflow:hidden;margin-bottom:4px;flex:none}
.pic img{position:absolute;left:7%;top:7%;width:86%;height:86%;max-width:none;object-fit:contain}
.pic .ph,.spic .ph{position:absolute;left:30%;top:30%;width:40%;height:40%;color:#9aa6b2}
.name{font-size:15px;font-weight:600;line-height:1.3;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:3.9em}
.price{font-size:15px;color:#2f3b49;font-weight:700}
@media (min-width:1024px){.name{font-size:16px}.price{font-size:16px}}
/* Recommended tool inside its group: pinned first, different shade, small tag */
.card-rec{background:var(--rec-bg);border-color:var(--rec-line)}
.card-rec .pic{background:#fff}
.tag{display:inline-block;align-self:flex-start;background:#ffe9a8;color:var(--rec-ink);border:1px solid #f0cf6c;border-radius:999px;font-size:12.5px;font-weight:700;letter-spacing:.2px;padding:2px 9px;line-height:1.5}

/* All tools: groups (tap to open) */
.tools{padding:32px 0 8px}
@media (min-width:768px){.tools{padding:56px 0 16px}}
.groups{display:grid;gap:10px}
.group{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.group summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:60px;padding:0 16px;cursor:pointer;font-weight:700;font-size:17px;transition:background .15s}
.group summary::-webkit-details-marker{display:none}
.group summary:hover{background:#f7f9fb}
.group summary:active{background:#eef2f6}
.group summary:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;border-radius:var(--radius)}
.g-name{flex:1}
.g-count{font-size:14px;font-weight:600;color:var(--muted);background:#eef1f4;border-radius:999px;padding:2px 10px}
.chev{width:10px;height:10px;border-right:2.5px solid #7b8794;border-bottom:2.5px solid #7b8794;transform:rotate(45deg);margin:0 4px 4px 2px;transition:transform .2s}
.group[open] .chev{transform:rotate(-135deg);margin-bottom:-4px}
.group[open] summary{border-bottom:1px solid var(--line)}
.group .grid{padding:14px}
@media (min-width:768px){.group summary{min-height:64px;padding:0 20px;font-size:18px}.group .grid{padding:20px}}

/* search results */
.results{padding:24px 0 8px}
.empty{text-align:center;color:var(--muted);padding:24px 0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;font-weight:700;border-radius:999px;border:1px solid transparent;min-height:52px;padding:0 22px;font-size:17px;cursor:pointer;text-align:center;transition:background .15s,transform .1s,box-shadow .15s}
.btn:active{transform:scale(.98)}
.btn-amazon{background:var(--amz);border-color:var(--amz-2);color:#0f1111}
.btn-amazon:hover{background:var(--amz-2)}
.btn-store{background:#fff;border-color:var(--hd);color:#b44700}
.btn-store:hover{background:#fff4ec}
.btn-send{background:var(--navy);color:#fff;min-width:140px}
.btn-send:hover{background:var(--navy-2)}
.btn-send:disabled{opacity:.6;cursor:default}

/* sheet (bottom sheet on phone, dialog on desktop) */
.sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center}
.sheet-backdrop{position:absolute;inset:0;background:rgba(10,20,30,.5);animation:fade .18s ease}
.sheet-panel{position:relative;background:#fff;width:100%;max-height:92vh;border-radius:20px 20px 0 0;display:flex;flex-direction:column;animation:up .22s ease;padding-bottom:env(safe-area-inset-bottom)}
.sheet-head{display:flex;align-items:center;justify-content:center;position:relative;min-height:52px}
.grabber{width:40px;height:5px;border-radius:3px;background:#d4dae1}
.sheet-x{position:absolute;right:10px;top:4px;width:44px;height:44px;border:0;border-radius:50%;background:#eef1f4;display:grid;place-items:center;cursor:pointer;transition:background .15s}
.sheet-x:hover{background:#e2e7ec}
.sheet-x:active{background:#d6dde4}
.sheet-x svg{width:18px;height:18px}
.sheet-body{overflow-y:auto;padding:0 24px 28px;display:flex;flex-direction:column}
.spic{position:relative;flex:none;height:230px;margin:0 0 16px;background:#fff;border-radius:12px;overflow:hidden}
.spic img{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;padding:8px 10%;box-sizing:border-box;object-fit:contain}
.sheet-body .tag{margin-bottom:8px}
.sv-name{font-size:22px;line-height:1.25;margin:0 0 8px}
.sv-why{margin:0 0 8px;color:#3b4654;font-size:17px}
.sv-price{margin:0 0 20px;font-weight:700;font-size:19px}
.btn-view{width:100%}
.sv-also{margin:14px 0 0;font-size:15px;color:var(--muted)}
.sv-also a{color:var(--muted);display:inline-block;padding:6px 0}
.sv-also a:hover{color:var(--navy-2)}
@media (min-width:720px){
  .sheet{align-items:center}
  .sheet-panel{max-width:480px;border-radius:20px;max-height:88vh}
  .grabber{display:none}
  .spic{height:270px}
}
@keyframes up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* contact */
.contact{padding:40px 0 48px}
@media (min-width:768px){.contact{padding:64px 0 72px}}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:24px;max-width:640px;margin:0 auto}
@media (min-width:768px){.contact-card{padding:32px}}
.contact-card h2{margin:0;font-size:24px;line-height:1.15}
.contact-card .sub{margin:6px 0 20px}
.seg{border:0;padding:4px;margin:0 0 20px;display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eef1f4;border-radius:14px}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:11px;font-weight:600;font-size:15px;white-space:nowrap;color:var(--muted);transition:background .15s,color .15s,box-shadow .15s;text-align:center;padding:0 8px}
.seg label:hover span{color:var(--ink)}
.seg input:checked+span{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(20,50,74,.15)}
.seg input:focus-visible+span{outline:3px solid var(--gold);outline-offset:1px}
.fld{display:block;margin:0 0 20px}
.fld>span{display:block;font-weight:600;font-size:16px;margin:0 0 8px}
.fld em{font-style:normal;font-weight:400;color:var(--muted)}
.fld input,.fld textarea{width:100%;font:inherit;font-size:17px;color:var(--ink);border:1px solid #c9d2db;border-radius:12px;padding:12px 14px;min-height:52px;background:#fff;transition:border-color .15s,box-shadow .15s}
.fld textarea{resize:vertical;min-height:120px}
.fld input:hover,.fld textarea:hover{border-color:#9fb0c0}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--navy-2);box-shadow:0 0 0 3px rgba(255,194,14,.55)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.c-msg{margin:14px 0 0;font-size:16px;min-height:1.5em}
.c-msg.ok{color:#1e6b3a;font-weight:600}
.c-msg.err{color:#a3261b}

/* footer */
.foot{background:#0f2638;color:#9fb3c4;font-size:15px;padding:20px 0}
.foot p{margin:0}
.foot-d{margin-top:6px!important}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Recommended: Hide / Show */
.rec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rec-title{min-width:0}
.rec-toggle{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:48px;min-width:48px;padding:0 14px 0 16px;border:1px solid var(--rec-line);border-radius:999px;background:#fff;color:var(--rec-ink);font:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}
.rec-toggle:hover{background:#fff1c4;border-color:#e3bd55;box-shadow:0 1px 4px rgba(122,86,0,.15)}
.rec-toggle:active{transform:scale(.97);background:#ffe9a8}
.rec-toggle:focus-visible{outline:3px solid var(--navy-2);outline-offset:2px}
.rt-chev{transition:transform .2s}
.rec-toggle[aria-expanded="false"] .rt-chev{transform:rotate(180deg)}
.rec.rec-closed{padding:16px 0}
.rec.rec-closed .sec-head{margin-bottom:0}
.rec.rec-closed .sub{display:none}
@media (min-width:768px){.rec.rec-closed{padding:24px 0}}
@media (prefers-reduced-motion:reduce){.rt-chev,.rec-toggle{transition:none}}

/* Contact: one form, "What's this about?" drop-down */
.sel{position:relative;display:block}
.sel select{appearance:none;-webkit-appearance:none;width:100%;font:inherit;font-size:17px;font-weight:600;color:var(--ink);border:1px solid #c9d2db;border-radius:12px;padding:12px 48px 12px 14px;min-height:52px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.sel svg{position:absolute;right:14px;top:50%;width:20px;height:20px;margin-top:-10px;pointer-events:none;color:var(--muted)}
.sel select:hover{border-color:#9fb0c0}
.sel select:focus{outline:0;border-color:var(--navy-2);box-shadow:0 0 0 3px rgba(255,194,14,.55)}
.c-group[hidden]{display:none}

/* v18: reply note + inline field errors */
.c-reply{border-top:1px solid var(--line);margin:4px 0 0;padding:20px 0 0}
.c-note{margin:0 0 16px;font-size:16px;line-height:1.45;color:var(--ink);background:#f4f7fa;border-radius:12px;padding:12px 14px}
.f-err{display:block;margin:8px 0 0;font-size:15px;line-height:1.4;color:#a3261b;font-weight:600}
.f-err[hidden]{display:none}
.fld input[aria-invalid="true"],.fld textarea[aria-invalid="true"]{border-color:#c4382b;box-shadow:0 0 0 3px rgba(196,56,43,.14)}

/* Recommended budget tier (v22): a small neutral chip where the price was, no numbers */
.tier{display:inline-flex;align-items:center;align-self:flex-start;gap:6px;background:#eef2f5;color:#2f3b49;border:1px solid #d5dde5;border-radius:999px;font-size:13px;font-weight:700;line-height:1.4;padding:2px 10px}
.tier::before{content:"";display:inline-block;width:18px;height:6px;flex:none;background:linear-gradient(90deg,currentColor 0 4px,transparent 4px 7px,var(--b2,#c3ccd5) 7px 11px,transparent 11px 14px,var(--b3,#c3ccd5) 14px 18px)}
.tier-mid::before{--b2:currentColor}
.tier-premium::before{--b2:currentColor;--b3:currentColor}
.sheet-body .sv-tier{font-size:14px;padding:4px 12px;margin:2px 0 14px}
@media (min-width:1024px){.card .tier{font-size:13.5px}}
