/* Contrast: white on var(--orange) measured 2.36:1 and the score amber 3.64:1,
   both under WCAG AA. Darkened here rather than changing the brand tokens,
   which are used elsewhere on dark text where they already pass. */
/* =====================================================================
   GHOSLA — Discover (Find the Best Schools / Colleges Near You)
   Scoped with the dz- prefix. Uses the site tokens from site.css.
   ===================================================================== */

/* ---------- hero ---------- */
.dz-h{position:relative;overflow:hidden;background:linear-gradient(180deg,#EAF4FF 0%,#F4F9FF 100%);border-bottom:1px solid var(--border)}
.dz-h-art{position:absolute;inset:0 0 0 auto;width:min(62%,1000px);pointer-events:none}
.dz-h-art img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 26%);mask-image:linear-gradient(90deg,transparent 0%,#000 26%)}
/* The supplied banner carries its own lockup and headline, and this hand
   script landed on top of them. Hidden rather than deleted — drop the
   display:none to bring it back if the art changes. */
.dz-h-script{display:none;position:absolute;right:6%;top:13%;font:700 clamp(30px,3.1vw,54px)/1.02 var(--script);color:var(--navy);transform:rotate(-9deg);text-align:left;
  text-shadow:0 2px 0 rgba(255,255,255,.55), 0 0 18px rgba(255,255,255,.65)}
.dz-h-script::after{content:"";display:block;width:78%;height:14px;margin:4px 0 0 18%;
  background:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' fill='none'%3E%3Cpath d='M2 11 C 60 2, 130 0, 198 4' stroke='%23FF8A1F' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E")}
.dz-h-in{position:relative;z-index:1;padding-top:22px;padding-bottom:30px}
.dz-h .crumbs{margin-bottom:14px}
.dz-eb{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 9px;border-radius:999px;background:#DDF5E6;color:#137A3A;font:700 12.5px/1 var(--body)}
.dz-eb svg{width:15px;height:15px}
.dz-h h1{margin:12px 0 10px;font:800 clamp(30px,3.4vw,46px)/1.1 var(--head);letter-spacing:-.025em;color:var(--navy);max-width:780px}
.dz-lead{font-size:clamp(15px,1.25vw,17.5px);line-height:1.6;color:var(--text);max-width:640px}

.dz-search{display:grid;grid-template-columns:1.25fr 1fr 1fr auto;gap:12px;align-items:stretch;margin-top:22px;max-width:780px;
  padding:14px;border-radius:18px;background:#fff;box-shadow:0 18px 44px -20px rgba(10,31,78,.35);border:1px solid #E6EEF8}
.dz-f{position:relative;display:flex;align-items:center;gap:10px;min-width:0;padding:8px 12px;border:1px solid #DFE7F2;border-radius:12px;background:#fff;cursor:text;transition:border-color .2s, box-shadow .2s}
.dz-f:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,107,255,.15)}
.dz-f>svg:first-child{width:20px;height:20px;color:var(--navy);flex:none}
.dz-f span{display:flex;flex-direction:column;min-width:0;flex:1}
.dz-f b{font:600 12.5px/1.2 var(--body);color:var(--text)}
.dz-f input,.dz-f select{border:0;outline:0;background:transparent;font:400 12.5px/1.4 var(--body);color:var(--text-3);padding:2px 0 0;width:100%;min-width:0;-webkit-appearance:none;appearance:none;cursor:pointer}
.dz-f input{cursor:text;color:var(--text)}
.dz-f input::placeholder{color:var(--text-3)}
.dz-f select:focus,.dz-f select:valid{color:var(--text)}
.dz-chev{width:16px!important;height:16px!important;color:var(--text-2);flex:none;pointer-events:none}
.dz-sbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 26px;border-radius:12px;background:var(--navy);color:#fff;font:700 15px var(--head);transition:background .2s, transform .15s}
.dz-sbtn:hover{background:var(--navy-2)}
.dz-sbtn:active{transform:scale(.97)}
.dz-sbtn svg{width:18px;height:18px}

.dz-list-cta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px;font-size:14px;color:var(--text-2)}
.dz-lbtn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:#B84B00;color:#fff;font:700 14px var(--head);box-shadow:0 10px 22px -12px rgba(255,138,31,.9);transition:transform .2s, box-shadow .2s}
.dz-lbtn:hover{transform:translateY(-2px);box-shadow:0 14px 26px -12px rgba(255,138,31,.95)}
.dz-lbtn svg{width:17px;height:17px}

/* ---------- main grid ---------- */
.dz-main{padding:22px 0 30px;background:var(--bg)}
.dz-grid{display:grid;grid-template-columns:260px minmax(0,1fr) 420px;gap:18px;align-items:start}

/* filters */
.dz-filters{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;
  background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 16px 16px}
.dz-fh{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.dz-fh h2{font:700 17px var(--head);color:var(--navy)}
.dz-fh button{color:var(--blue);font-size:12.5px;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.dz-grp{padding:14px 0;border-bottom:1px solid #EEF2F8}
.dz-grp.dz-last{border-bottom:0}
.dz-grp h3{display:flex;align-items:center;gap:8px;margin-bottom:10px;font:700 13.5px var(--body);color:var(--text)}
.dz-grp h3 svg{width:17px;height:17px;color:var(--navy)}
.dz-sel{position:relative;display:flex;align-items:center;gap:8px;border:1px solid #DFE7F2;border-radius:10px;padding:0 10px;background:#fff}
.dz-sel:focus-within{border-color:var(--blue)}
.dz-sel>svg:first-child{width:15px;height:15px;color:var(--text-3)}
.dz-sel select{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:10px 0;font:500 13.5px var(--body);color:var(--text);-webkit-appearance:none;appearance:none;cursor:pointer}
.dz-checks{display:flex;flex-direction:column;gap:2px}
.dz-ck{display:flex;align-items:center;gap:10px;padding:6px 4px;border-radius:8px;font-size:13.5px;color:var(--text);cursor:pointer;user-select:none}
.dz-ck:hover{background:#F4F7FC}
.dz-ck input{width:17px;height:17px;accent-color:var(--navy);flex:none;cursor:pointer}
.dz-ck span{flex:1;min-width:0}
.dz-ck em{font-style:normal;color:var(--text-3);font-size:12.5px}
.dz-ck.zero{opacity:.45}
.dz-ck[hidden]{display:none}
.dz-more{margin-top:6px;color:var(--blue);font-size:12.5px;font-weight:600}
#dzFee{width:100%;accent-color:var(--navy)}
.dz-feeo{margin-top:4px;font-size:12.5px;color:var(--text-2)}
.dz-tog{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;cursor:pointer}
.dz-tog input{position:absolute;opacity:0;pointer-events:none}
.dz-tog span{position:relative;width:36px;height:20px;border-radius:20px;background:#D6DEEA;transition:background .2s;flex:none}
.dz-tog span::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.dz-tog input:checked+span{background:var(--green)}
.dz-tog input:checked+span::after{transform:translateX(16px)}
.dz-tog input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.dz-fcta{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:14px;border-radius:14px;background:linear-gradient(135deg,#FFF4E6,#FFE9D1);border:1px solid #FFD9B0}
.dz-fcta svg{width:22px;height:22px;color:var(--orange)}
.dz-fcta b{font:700 14px var(--head);color:var(--navy)}
.dz-fcta span{font-size:12.5px;color:var(--text-2);line-height:1.45}
.dz-fcta button{align-self:flex-start;margin-top:6px;padding:7px 14px;border-radius:999px;background:#B84B00;color:#fff;font:700 13px var(--head)}

/* results */
.dz-res{min-width:0}
.dz-rh{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.dz-rh p{font-size:14px;color:var(--text-2)}
.dz-rh p b{color:var(--text)}
.dz-sort{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2)}
.dz-sort select{border:1px solid #DFE7F2;border-radius:10px;padding:8px 30px 8px 12px;font:600 13px var(--body);color:var(--text);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234A5678' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;-webkit-appearance:none;appearance:none;cursor:pointer}
.dz-ftog{display:none;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;border:1px solid #DFE7F2;background:#fff;font:600 13px var(--body)}
.dz-ftog svg{width:16px;height:16px}
.dz-note{display:flex;align-items:center;gap:6px;margin-bottom:12px;font-size:12px;color:var(--text-3)}
.dz-note svg{width:14px;height:14px}
.dz-list{display:flex;flex-direction:column;gap:14px}

.dz-card{display:grid;grid-template-columns:168px minmax(0,1fr) auto;gap:18px;padding:14px;border-radius:16px;background:#fff;border:1px solid var(--border);
  cursor:pointer;transition:border-color .2s, box-shadow .25s, transform .25s}
.dz-card:hover{box-shadow:var(--shadow-h);transform:translateY(-2px)}
.dz-card.on{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy), var(--shadow-h)}
.dz-th,.dz-dth{position:relative;display:grid;place-items:center;overflow:hidden;border-radius:12px;color:#fff;
  background:
    radial-gradient(120% 80% at 80% 0%, rgba(255,255,255,.28), transparent 55%),
    linear-gradient(160deg, color-mix(in srgb, var(--c) 82%, #fff), color-mix(in srgb, var(--c) 78%, #0A1F4E));
}
.dz-th{width:100%;aspect-ratio:4/3.3;align-self:start}
/* The drawn campus art fills the tile; the coloured background stays as the
   fallback while it loads and behind the rounded corners. */
.dz-th img,.dz-dth img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.dz-th::before,.dz-dth::before{content:"";position:absolute;inset:auto 0 0 0;height:56%;opacity:.22;background:no-repeat center bottom/86% auto
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 90' fill='%23fff'%3E%3Cpath d='M0 90V58h30V44h28V30l42-22 42 22v14h28v14h30v32z'/%3E%3Cg fill='%23000' opacity='.35'%3E%3Crect x='88' y='60' width='24' height='30'/%3E%3Crect x='40' y='54' width='8' height='10'/%3E%3Crect x='52' y='54' width='8' height='10'/%3E%3Crect x='140' y='54' width='8' height='10'/%3E%3Crect x='152' y='54' width='8' height='10'/%3E%3Crect x='70' y='40' width='8' height='10'/%3E%3Crect x='122' y='40' width='8' height='10'/%3E%3Ccircle cx='100' cy='34' r='6'/%3E%3C/g%3E%3C/svg%3E")}
.dz-ini{position:relative;z-index:1;font:800 34px/1 var(--head);letter-spacing:-.02em;text-shadow:0 6px 18px rgba(0,0,0,.25);transform:translateY(-14px)}
.dz-badge{position:absolute;top:8px;left:8px;z-index:2;display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 6px;border-radius:999px;font:700 11px/1 var(--body);color:#fff}
.dz-badge svg{width:13px;height:13px}
.dz-badge.v{background:#0B7A32}
.dz-badge.t{background:var(--orange)}
.dz-cb{min-width:0;padding-top:2px}
.dz-cb h3{font:700 17.5px/1.3 var(--head);color:var(--navy)}
.dz-cb h3 a:hover{color:var(--blue)}
.dz-loc,.dz-dloc{display:flex;align-items:center;gap:5px;margin-top:3px;font-size:13px;color:var(--text-2)}
.dz-loc svg,.dz-dloc svg{width:14px;height:14px;flex:none}
.dz-sc{display:flex;align-items:center;gap:5px;margin-top:6px;font-size:13px;color:var(--text-2)}
.dz-sc svg{width:16px;height:16px;color:#F5A524;fill:#F5A524}
.dz-sc b{color:#8A5600;font-weight:700}
.dz-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.dz-tags span{padding:5px 10px;border-radius:8px;background:#F1F5FB;border:1px solid #E4EAF5;font-size:12px;font-weight:500;color:var(--text)}
.dz-fac{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px}
.dz-fac span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2)}
.dz-fac svg{width:15px;height:15px;color:var(--navy)}
.dz-about{margin-top:8px;font-size:12.5px;line-height:1.55;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dz-cr{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:150px}
.dz-cr-top{display:flex;justify-content:flex-end;margin:-4px -4px 0 0}
.dz-heart{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:var(--text-2);transition:background .2s,color .2s}
.dz-heart:hover{background:#FDECF1;color:var(--pink)}
.dz-heart svg{width:18px;height:18px}
.dz-heart.on{color:var(--pink)}
.dz-heart.on svg{fill:var(--pink)}
.dz-fee{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25;margin-right:auto;padding-left:2px}
.dz-cr .dz-fee{margin:auto 0 0}
.dz-fee small{font-size:11.5px;color:var(--text-3)}
.dz-fee b{font:800 18px var(--head);color:var(--navy)}
.dz-fee span{display:flex;align-items:baseline;gap:3px}
.dz-go{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:10px;background:var(--navy);color:#fff;font:700 13px var(--head);white-space:nowrap;transition:background .2s}
.dz-go:hover{background:var(--navy-2)}
.dz-go svg{width:15px;height:15px}
.dz-acts{display:flex;gap:6px}
.dz-acts button{flex:1;justify-content:center}
.dz-acts button{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:8px;border:1px solid #DFE7F2;background:#fff;font:600 11.5px var(--body);color:var(--text-2);transition:all .2s}
.dz-acts button:hover{border-color:var(--navy);color:var(--navy)}
.dz-acts button.on{background:var(--navy);border-color:var(--navy);color:#fff}
.dz-acts svg{width:13px;height:13px}
.dz-empty{padding:40px 20px;text-align:center;border-radius:16px;background:#fff;border:1px dashed #CBD6E6;color:var(--text-2)}
.dz-empty b{display:block;margin-bottom:6px;font:700 17px var(--head);color:var(--navy)}
.dz-empty button{margin-top:14px}

/* detail panel */
.dz-detail{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;
  background:#fff;border:1px solid var(--border);border-radius:18px;padding:12px 12px 18px;box-shadow:var(--shadow)}
.dz-dth{aspect-ratio:16/8.2;border-radius:14px}
.dz-dth .dz-ini{font-size:54px}
.dz-dth .dz-heart{position:absolute;top:10px;right:10px;z-index:2;background:rgba(255,255,255,.95);color:var(--pink)}
.dz-dclose{display:none;position:absolute;top:10px;left:10px;z-index:2;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--navy);place-items:center}
.dz-dclose svg{width:18px;height:18px}
.dz-db{padding:14px 8px 0}
.dz-dn{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.dz-dn h2{font:800 21px/1.25 var(--head);color:var(--navy)}
.dz-vchip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px 3px 6px;border-radius:999px;background:#0B7A32;color:#fff;font:700 11px/1 var(--body)}
.dz-vchip svg{width:12px;height:12px}
.dz-dfac{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;margin-top:14px;padding-bottom:16px;border-bottom:1px solid #EEF2F8}
.dz-dfac span{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-2);min-width:0}
.dz-dfac svg{width:16px;height:16px;color:var(--navy);flex:none}
.dz-dh{margin:16px 0 6px;font:700 14.5px var(--head);color:var(--navy)}
.dz-dp{font-size:13px;line-height:1.65;color:var(--text-2)}
.dz-kf{margin-top:14px;padding:14px;border-radius:14px;border:1px solid #E4EAF5;background:#FAFCFF}
.dz-kf h4{font:700 13.5px var(--head);color:var(--navy);margin-bottom:10px}
.dz-kg{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}
.dz-kg div{display:flex;gap:10px;align-items:flex-start;min-width:0}
.dz-kg svg{width:18px;height:18px;color:var(--navy);flex:none;margin-top:2px}
.dz-kg small{display:block;font-size:11.5px;color:var(--text-3)}
.dz-kg b{display:block;font-size:13px;font-weight:600;color:var(--text);overflow-wrap:anywhere}
.dz-dbtn{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.dz-dbtn a,.dz-dbtn button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 10px;border-radius:12px;font:700 13.5px var(--head);transition:all .2s}
.dz-dbtn a{background:var(--navy);color:#fff}
.dz-dbtn a:hover{background:var(--navy-2)}
.dz-dbtn button{border:1.5px solid var(--navy);color:var(--navy);background:#fff}
.dz-dbtn button:hover{background:#F1F5FB}
.dz-dbtn svg{width:16px;height:16px}
.dz-dcmp{display:flex;justify-content:center;margin-top:10px}
.dz-dcmp button{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--text-2);padding:6px 10px;border-radius:8px}
.dz-dcmp button:hover,.dz-dcmp button.on{color:var(--navy);background:#F1F5FB}
.dz-dcmp svg{width:15px;height:15px}

/* trust strip */
.dz-trust{background:linear-gradient(180deg,#EEF4FC,#E8F0FA);border-top:1px solid var(--border);overflow:hidden}
.dz-trust-in{display:flex;align-items:center;flex-wrap:wrap;gap:18px 0;padding:20px 0}
.dz-trust-in>div{display:flex;align-items:center;gap:12px;padding:0 28px;border-right:1px solid #D3DEEE;font-size:13.5px;color:var(--text-2)}
.dz-trust-in>div:first-child{padding-left:0}
.dz-trust-in>div:nth-child(4){border-right:0}
.dz-trust-in svg{width:24px;height:24px;color:var(--navy);flex:none}
.dz-trust-in b{display:block;font:700 14px var(--head);color:var(--navy)}
.dz-tag{margin-left:auto;font:700 24px/1.05 var(--script);color:var(--navy);transform:rotate(-5deg);text-align:right}

/* ---------- list-your-school modal ---------- */
.dz-m{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(8,18,44,.55);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s}
.dz-m.show{opacity:1}
.dz-m[hidden]{display:none}
.dz-mb{position:relative;width:min(980px,100%);max-height:calc(100dvh - 40px);display:grid;grid-template-columns:330px minmax(0,1fr);grid-template-rows:minmax(0,1fr);overflow:hidden;
  border-radius:24px;background:#fff;box-shadow:0 40px 100px -30px rgba(0,0,0,.6);transform:translateY(18px) scale(.97);transition:transform .35s cubic-bezier(.2,1.2,.4,1)}
.dz-m.show .dz-mb{transform:none}
.dz-mx{position:absolute;top:14px;right:14px;z-index:2;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--navy);transition:background .2s}
.dz-mx:hover{background:#F1F5FB}
.dz-ms{position:relative;padding:34px 28px;color:#fff;overflow:hidden;
  background:radial-gradient(120% 70% at 100% 0%, rgba(255,138,31,.35), transparent 55%), linear-gradient(160deg,#12306E,#0A1F4E)}
.dz-ms::after{content:"";position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;border:30px solid rgba(255,255,255,.05)}
.dz-ms-eb{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.12);font:600 12px var(--body)}
.dz-ms-eb svg{width:14px;height:14px}
.dz-ms h3{margin:16px 0 22px;font:800 26px/1.2 var(--head)}
.dz-ms h3 span{display:block;color:#FFB15C}
.dz-ms ul{list-style:none;display:flex;flex-direction:column;gap:16px}
.dz-ms li{display:flex;gap:12px;font-size:13.5px;line-height:1.45;color:#C9D6F2}
.dz-ms li svg{flex:none;width:34px;height:34px;padding:8px;border-radius:10px;background:rgba(255,255,255,.1);color:#fff}
.dz-ms li b{display:block;color:#fff;font-weight:700}
.dz-ms-f{display:flex;align-items:center;gap:8px;margin-top:26px;font-size:12.5px;color:#C9D6F2}
.dz-ms-f svg{width:15px;height:15px}
/* The form column has to be allowed to scroll, or the submit button is
   unreachable. Two things stopped it: the grid ROW sized itself to the
   content (1170px on a phone) while .dz-mb was capped at 793px and hides
   its overflow, and the item's own min-height:auto. Hence
   grid-template-rows:minmax(0,1fr) above and min-height:0 here. */
.dz-mm{position:relative;padding:30px 30px 24px;overflow:auto;overscroll-behavior:contain;min-height:0}
.dz-ms{min-height:0}
.dz-mm h2{font:800 22px var(--head);color:var(--navy);padding-right:40px}
.dz-mm-sub{margin:4px 0 14px;font-size:13.5px;color:var(--text-2)}
.dz-who{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.dz-who label{cursor:pointer}
.dz-who input{position:absolute;opacity:0;pointer-events:none}
.dz-who span{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:999px;border:1.5px solid #DFE7F2;font:600 13px var(--body);color:var(--text-2);transition:all .2s}
.dz-who span svg{width:15px;height:15px}
.dz-who input:checked+span{border-color:var(--navy);background:var(--navy);color:#fff}
.dz-who input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.dz-fg{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dz-in{display:flex;flex-direction:column;gap:5px;min-width:0}
.dz-in.full{grid-column:1/-1}
.dz-in label{font:600 12.5px var(--body);color:var(--text)}
.dz-in input,.dz-in select,.dz-in textarea{width:100%;border:1px solid #D6DEEA;border-radius:10px;padding:11px 12px;font:400 14px var(--body);color:var(--text);background:#fff;outline:0;transition:border-color .2s, box-shadow .2s}
.dz-in textarea{resize:vertical;min-height:64px}
.dz-in input:focus,.dz-in select:focus,.dz-in textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,107,255,.14)}
.dz-in.bad input,.dz-in.bad select{border-color:#E5484D}
.dz-in .err,.dz-cons .err{font-size:11.5px;color:#D93036;min-height:0}
.dz-cons{margin-top:14px}
.dz-cons .check{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.5;color:var(--text-2);cursor:pointer}
.dz-cons input{margin-top:2px;width:16px;height:16px;accent-color:var(--navy);flex:none}
.dz-cons a{color:var(--blue);text-decoration:underline}
.dz-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:16px;padding:14px;border-radius:12px;background:var(--navy);color:#fff;font:700 15px var(--head);transition:background .2s, opacity .2s}
.dz-submit:hover{background:var(--navy-2)}
.dz-submit:disabled{opacity:.7;cursor:progress}
.dz-submit svg{width:17px;height:17px}
.dz-alt{margin-top:10px;text-align:center;font-size:12.5px;color:var(--text-3)}
.dz-alt a{color:var(--blue)}
.dz-done{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:420px;padding:20px}
.dz-done svg{width:84px;height:84px;margin-bottom:14px}
.dz-done circle{fill:none;stroke:var(--green);stroke-width:4;stroke-dasharray:230;stroke-dashoffset:230;animation:dzDraw .7s ease-out forwards}
.dz-done path{fill:none;stroke:var(--green);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:60;animation:dzDraw .5s .5s ease-out forwards}
@keyframes dzDraw{to{stroke-dashoffset:0}}
.dz-done h2{font:800 24px var(--head);color:var(--navy);padding:0}
.dz-done p{margin:8px 0 18px;max-width:360px;font-size:14px;color:var(--text-2);line-height:1.6}
.dz-done .dz-submit{width:auto;padding:12px 22px}

/* ---------- responsive ---------- */
@media (max-width:1380px){
  .dz-grid{grid-template-columns:240px minmax(0,1fr) 360px}
  .dz-card{grid-template-columns:140px minmax(0,1fr) auto;gap:14px}
}
@media (max-width:1180px){
  .dz-grid{grid-template-columns:240px minmax(0,1fr)}
  .dz-detail{display:none}
  .dz-detail.open{display:block;position:fixed;inset:auto 0 0 0;top:auto;z-index:900;max-height:88dvh;border-radius:22px 22px 0 0;box-shadow:0 -20px 60px -20px rgba(0,0,0,.45);animation:dzUp .3s ease-out}
  .dz-detail.open .dz-dclose{display:grid}
  .dz-shade{position:fixed;inset:0;z-index:899;background:rgba(8,18,44,.45)}
}
@keyframes dzUp{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
@media (max-width:980px){
  .dz-h-art{width:100%;opacity:.28}
  /* The supplied banner carries its own lockup and headline, and this hand
   script landed on top of them. Hidden rather than deleted — drop the
   display:none to bring it back if the art changes. */
.dz-h-script{display:none;display:none}
  .dz-search{grid-template-columns:1fr 1fr}
  .dz-f-q{grid-column:1/-1}
  .dz-sbtn{grid-column:1/-1;padding:13px}
  .dz-grid{grid-template-columns:1fr}
  .dz-filters{display:none}
  .dz-filters.open{display:block;position:fixed;inset:0 auto 0 0;top:0;z-index:950;width:min(340px,88vw);max-height:none;height:100dvh;border-radius:0 18px 18px 0;animation:dzLeft .25s ease-out}
  .dz-ftog{display:inline-flex}
  .dz-rh{flex-wrap:wrap}
  .dz-rh p{width:100%;order:-1}
  .dz-trust-in>div{border-right:0;padding:0 20px 0 0;flex:1 1 45%}
  .dz-tag{display:none}
  .dz-mb{grid-template-columns:1fr}
  .dz-ms{display:none}
}
@keyframes dzLeft{from{transform:translateX(-30px);opacity:.4}to{transform:none;opacity:1}}
@media (max-width:640px){
  .dz-h-in{padding-top:16px;padding-bottom:22px}
  .dz-search{grid-template-columns:1fr;padding:12px}
  .dz-card{grid-template-columns:96px minmax(0,1fr);gap:12px;padding:12px}
  .dz-th{min-height:0;aspect-ratio:1}
  .dz-ini{font-size:24px;transform:translateY(-8px)}
  .dz-badge{top:5px;left:5px;padding:3px 6px;font-size:10px}
  .dz-badge svg{width:11px;height:11px}
  .dz-cb h3{font-size:15.5px}
  .dz-fac,.dz-about{display:none}
  .dz-cr{grid-column:1/-1;flex-direction:row;align-items:center;flex-wrap:wrap;min-width:0;border-top:1px solid #EEF2F8;padding-top:10px}
  .dz-cr-top{order:3;margin:0}
  .dz-cr .dz-fee{margin:0 auto 0 0}
  .dz-acts{display:none}
  .dz-dfac{grid-template-columns:1fr 1fr}
  .dz-fg{grid-template-columns:1fr}
  .dz-mm{padding:24px 18px 20px}
  .dz-m{padding:0;place-items:end stretch}
  .dz-mb{max-height:94dvh;border-radius:22px 22px 0 0}
  .dz-trust-in>div{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){
  .dz-card,.dz-card:hover,.dz-mb,.dz-lbtn{transition:none;transform:none}
  .dz-detail.open,.dz-filters.open{animation:none}
}

/* Same 24px floor as the rest of the site: the card title came out 23px and
   the review link 20px, both just under. */
.dz-cb h3 a, .dz-rv a{display:inline-flex;align-items:center;min-height:24px}
