/* =====================================================================
   NY Hardware — Contact page V2 (contact.php only)
   Every rule is scoped under body.nh .ct-page and every class starts
   with "ct-". Colour and type tokens come from css/home-v2.css.
   ===================================================================== */
body.nh .ct-page :focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:6px}

body.nh .ct-page .ct-wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
body.nh .ct-page .ct-band{padding-block:84px;position:relative}
body.nh .ct-page .ct-band-ground{background:var(--ground)}
@media(max-width:860px){body.nh .ct-page .ct-band{padding-block:52px}}

body.nh .ct-page .ct-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
body.nh .ct-page .ct-eyebrow::before{content:"";width:28px;height:3px;border-radius:3px;background:var(--red)}
body.nh .ct-page .ct-eyebrow.ct-on-dark{color:#fff}body.nh .ct-page .ct-eyebrow.ct-on-dark::before{background:#fff}
body.nh .ct-page h1, body.nh .ct-page h2{font-family:var(--display);font-weight:800;line-height:1.1;letter-spacing:-.015em;color:var(--navy);text-wrap:balance}
body.nh .ct-page h1{font-size:clamp(32px,4.4vw,54px)}
body.nh .ct-page h2{font-size:clamp(26px,3.1vw,38px)}
body.nh .ct-page h3{font-family:var(--display);font-weight:700;font-size:18px;line-height:1.3;color:var(--navy)}
body.nh .ct-page .ct-hl{color:var(--red)}
body.nh .ct-page .ct-lead{color:var(--ink-soft);margin-top:18px;max-width:62ch}
body.nh .ct-page .ct-sec-head{max-width:68ch;margin-bottom:40px}

body.nh .ct-page .ct-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:54px;padding:0 28px;border-radius:999px;font-family:var(--display);font-weight:700;font-size:15.5px;background:var(--red);color:#fff;border:0;cursor:pointer;box-shadow:0 14px 28px -14px rgba(215,31,39,.85);transition:transform .25s,background .25s}
body.nh .ct-page .ct-btn:hover{transform:translateY(-3px);background:var(--red-deep)}
body.nh .ct-page .ct-btn .ct-arr{width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:12px;transition:transform .3s}
body.nh .ct-page .ct-btn:hover .ct-arr{transform:rotate(-45deg)}
body.nh .ct-page .ct-btn-line{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--line)}
body.nh .ct-page .ct-btn-line:hover{background:var(--ground-2)}

body.nh .ct-page .ct-phead{background:var(--navy-deep);color:#fff;padding-block:70px 80px;position:relative;overflow:hidden}
body.nh .ct-page .ct-phead .ct-bar{position:absolute;left:0;bottom:0;height:5px;width:46%;background:var(--red)}
body.nh .ct-page .ct-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:13.5px;color:rgba(255,255,255,.62);margin-bottom:20px}
body.nh .ct-page .ct-crumbs a{text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:3px}
body.nh .ct-page .ct-crumbs .ct-cur{color:#fff;font-weight:600}
body.nh .ct-page .ct-phead h1{color:#fff;max-width:20ch}
body.nh .ct-page .ct-phead p{color:rgba(255,255,255,.8);margin-top:16px;max-width:56ch}

body.nh .ct-page .ct-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px}
@media(max-width:980px){body.nh .ct-page .ct-quick{grid-template-columns:1fr 1fr}}
body.nh .ct-page .ct-qc{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:24px;display:flex;flex-direction:column;gap:6px;box-shadow:0 24px 44px -34px rgba(20,26,61,.6);transition:transform .3s,border-color .3s}
body.nh .ct-page .ct-qc:hover{transform:translateY(-5px);border-color:#cfd7ea}
body.nh .ct-page .ct-qc .ct-ico{width:46px;height:46px;border-radius:50%;background:var(--red-tint);display:grid;place-items:center;margin-bottom:10px}
body.nh .ct-page .ct-qc .ct-ico svg{width:22px;height:22px;stroke:var(--red);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.nh .ct-page .ct-qc .ct-lbl{font-family:var(--display);font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
body.nh .ct-page .ct-qc .ct-val{font-family:var(--display);font-weight:700;font-size:17px;color:var(--navy);line-height:1.3;word-break:break-word}
body.nh .ct-page .ct-qc .ct-val.ct-one-line{font-size:clamp(12.5px,1.18vw,15.5px);white-space:nowrap}
body.nh .ct-page .ct-qc .ct-sub{font-size:13.5px;color:var(--ink-soft)}
@media(max-width:520px){body.nh .ct-page .ct-quick{grid-template-columns:1fr}}

body.nh .ct-page .ct-main{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:stretch}
body.nh .ct-page .ct-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:38px;box-shadow:0 30px 60px -46px rgba(20,26,61,.6)}
body.nh .ct-page .ct-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}
body.nh .ct-page .ct-f-wide{grid-column:1/-1}
body.nh .ct-page .ct-field{display:flex;flex-direction:column;gap:7px;min-width:0}
body.nh .ct-page .ct-field label{font-family:var(--display);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
body.nh .ct-page .ct-field .ct-req{color:var(--red)}
body.nh .ct-page .ct-field input, body.nh .ct-page .ct-field select, body.nh .ct-page .ct-field textarea{font-family:inherit;font-size:15px;color:var(--ink);background:var(--ground);border:1.5px solid transparent;border-radius:12px;height:52px;padding:0 15px;width:100%;transition:border-color .2s,background .2s}
body.nh .ct-page .ct-field textarea{resize:vertical;height:auto;min-height:140px;padding:13px 15px}
body.nh .ct-page .ct-field input:focus, body.nh .ct-page .ct-field select:focus, body.nh .ct-page .ct-field textarea:focus{outline:none;background:#fff;border-color:var(--red)}
body.nh .ct-page .ct-field input::placeholder, body.nh .ct-page .ct-field textarea::placeholder{color:var(--muted)}

body.nh .ct-page .ct-sel{position:relative}
body.nh .ct-page .ct-sel select{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
body.nh .ct-page .ct-sel-btn{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  font-family:inherit;font-size:15px;color:var(--ink);background:var(--ground);border:1.5px solid transparent;
  border-radius:12px;height:52px;padding:0 15px;cursor:pointer;text-align:left;transition:border-color .2s,background .2s,box-shadow .25s,transform .25s}
body.nh .ct-page .ct-sel-btn.ct-placeholder{color:var(--muted)}
body.nh .ct-page .ct-sel-btn:hover{background:var(--ground-2)}
body.nh .ct-page .ct-sel.ct-open .ct-sel-btn, body.nh .ct-page .ct-sel-btn:focus-visible{background:#fff;border-color:var(--red);outline:none;transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(215,31,39,.9)}
body.nh .ct-page .ct-sel-btn .ct-chev{width:18px;height:18px;flex-shrink:0;stroke:var(--navy);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
body.nh .ct-page .ct-sel.ct-open .ct-sel-btn .ct-chev{transform:rotate(180deg);stroke:var(--red)}
body.nh .ct-page .ct-sel-list{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:30;background:#fff;border:1px solid var(--line);
  border-radius:16px;box-shadow:0 26px 50px -26px rgba(20,26,61,.55);padding:7px;max-height:286px;overflow-y:auto;
  opacity:0;transform:translateY(-8px) scale(.985);pointer-events:none;transition:opacity .22s,transform .22s cubic-bezier(.2,.7,.2,1)}
body.nh .ct-page .ct-sel.ct-open .ct-sel-list{opacity:1;transform:none;pointer-events:auto}
body.nh .ct-page .ct-sel-list::-webkit-scrollbar{width:8px}
body.nh .ct-page .ct-sel-list::-webkit-scrollbar-thumb{background:var(--ground-2);border-radius:8px}
body.nh .ct-page .ct-sel-opt{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:11px;font-size:14.5px;
  color:var(--ink-soft);cursor:pointer;transition:background .18s,color .18s}
body.nh .ct-page .ct-sel-opt:hover, body.nh .ct-page .ct-sel-opt.ct-active{background:var(--ground);color:var(--navy)}
body.nh .ct-page .ct-sel-opt[aria-selected="true"]{background:var(--red-tint);color:var(--navy);font-weight:600}
body.nh .ct-page .ct-sel-opt .ct-tick{width:16px;height:16px;flex-shrink:0;stroke:var(--red);fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0}
body.nh .ct-page .ct-sel-opt[aria-selected="true"] .ct-tick{opacity:1}
body.nh .ct-page .ct-form-foot{grid-column:1/-1;display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:4px}
body.nh .ct-page .ct-form-foot .ct-note{font-size:13px;color:var(--muted);text-align:center;width:100%}
@media(max-width:1040px){body.nh .ct-page .ct-main{grid-template-columns:1fr}}
@media(max-width:600px){body.nh .ct-page .ct-card{padding:26px 20px}body.nh .ct-page .ct-form-grid{grid-template-columns:1fr}}

body.nh .ct-page .ct-side{display:grid;gap:24px;grid-template-rows:1fr auto}
body.nh .ct-page .ct-map{display:flex;flex-direction:column;min-height:0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px -46px rgba(20,26,61,.6)}
body.nh .ct-page .ct-map .ct-canvas{position:relative;flex:1;min-height:330px;background:#eef1e8}
body.nh .ct-page .ct-map .ct-canvas iframe{position:absolute;top:22px;left:26px;width:calc(100% + 26px);height:calc(100% + 22px);border:0;display:block}
  background:repeating-linear-gradient(135deg,#eef1e8 0 16px,#e4e9dd 16px 32px);padding:20px}
body.nh .ct-page .ct-map .ct-bar{position:relative;z-index:1;padding:14px 18px;background:#fff;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-soft);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center;overflow:hidden}
.ct-map .ct-bar > span{min-width:0;overflow-wrap:anywhere;line-height:1.45}
.ct-map .ct-bar > a{white-space:nowrap;justify-self:end}
body.nh .ct-page .ct-map .ct-bar b{color:var(--navy)}
body.nh .ct-page .ct-map .ct-bar a{color:var(--red);font-weight:700}

body.nh .ct-page .ct-hours-card{background:var(--navy-deep);color:#fff;border-radius:var(--r-lg);padding:30px}
body.nh .ct-page .ct-hours-card h3{color:#fff}
body.nh .ct-page .ct-hours{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;margin-top:18px;font-size:15px;font-variant-numeric:tabular-nums}
body.nh .ct-page .ct-hours .ct-day{color:rgba(255,255,255,.7)}
body.nh .ct-page .ct-hours .ct-val{text-align:right;font-weight:600}
body.nh .ct-page .ct-open-now{display:inline-flex;align-items:center;gap:7px;margin-top:16px;background:rgba(25,160,78,.18);color:#6ee7a0;border-radius:999px;padding:5px 13px;font-size:12.5px;font-weight:700;transition:background .3s,color .3s}
body.nh .ct-page .ct-open-now i{width:7px;height:7px;border-radius:50%;background:#19a04e;transition:background .3s}
body.nh .ct-page .ct-open-now.ct-shut{background:rgba(215,31,39,.2);color:#ff9ba0}
body.nh .ct-page .ct-open-now.ct-shut i{background:var(--red)}
body.nh .ct-page .ct-wh{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16)}
body.nh .ct-page .ct-wh .ct-lbl{font-family:var(--display);font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}
body.nh .ct-page .ct-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
body.nh .ct-page .ct-chip{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:6px 14px;font-size:13.5px}

body.nh .ct-page .ct-faq{max-width:900px;margin:0 auto;display:grid;gap:12px}
body.nh .ct-page details{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
body.nh .ct-page details[open]{border-color:#c6cee6;box-shadow:0 18px 36px -30px rgba(20,26,61,.7)}
body.nh .ct-page summary{list-style:none;cursor:pointer;padding:19px 56px 19px 22px;position:relative;font-family:var(--display);font-weight:700;font-size:17px;color:var(--navy)}
body.nh .ct-page summary::-webkit-details-marker{display:none}
body.nh .ct-page summary::after{content:"";position:absolute;right:22px;top:50%;width:26px;height:26px;margin-top:-13px;border-radius:50%;background:var(--ground)}
body.nh .ct-page summary::before{content:"";position:absolute;right:31px;top:50%;z-index:1;width:8px;height:8px;margin-top:-6px;border-right:2.4px solid var(--red);border-bottom:2.4px solid var(--red);transform:rotate(45deg);transition:transform .25s}
body.nh .ct-page details[open] summary::before{transform:rotate(-135deg);margin-top:-2px}
body.nh .ct-page details .ct-body{padding:0 22px 22px;font-size:15px;color:var(--ink-soft)}

body.nh .ct-page .ct-clock{font-variant-numeric:tabular-nums}

body.nh .ct-page .ct-btn{position:relative;overflow:hidden}
body.nh .ct-page .ct-btn::after{content:"";position:absolute;top:0;bottom:0;width:38%;left:-45%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);
  animation:shine 3.4s ease-in-out infinite}
@keyframes shine{0%,55%{left:-45%}100%{left:125%}}

body.nh .ct-page .ct-qc .ct-ico{position:relative;overflow:visible}
body.nh .ct-page .ct-qc .ct-ico::after{content:"";position:absolute;inset:-6px;border-radius:50%;
  border:2px dashed rgba(215,31,39,.55);animation:turn 9s linear infinite;
  animation-delay:calc(var(--d,0) * -2200ms)}
@keyframes turn{to{transform:rotate(360deg)}}

body.nh .ct-page .ct-ping{position:absolute;left:50%;top:50%;z-index:2;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(255,255,255,.9)}
body.nh .ct-page .ct-ping::before, body.nh .ct-page .ct-ping::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--red);animation:ping 2.6s ease-out infinite}
body.nh .ct-page .ct-ping::after{animation-delay:1.3s}
@keyframes ping{0%{transform:scale(.7);opacity:.8}100%{transform:scale(3.4);opacity:0}}

body.nh .ct-page .ct-hours-card{position:relative;overflow:hidden}
body.nh .ct-page .ct-hours-card::before{content:"";position:absolute;top:-60%;left:-30%;width:60%;height:220%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.08),transparent);transform:rotate(12deg);
  animation:sweep 6s ease-in-out infinite}
@keyframes sweep{0%,60%{left:-40%}100%{left:120%}}

html.ct-js body.nh .ct-page .ct-rv{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--d,0) * 100ms)}
html.ct-js body.nh .ct-page .ct-rv.ct-from-l{transform:translateX(-44px)}
html.ct-js body.nh .ct-page .ct-rv.ct-from-r{transform:translateX(44px)}
html.ct-js body.nh .ct-page .ct-rv.ct-shown{opacity:1;transform:none}
body.nh .ct-page .ct-in{opacity:0;transform:translateY(24px);animation:up .85s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--d,0) * 130ms)}
@keyframes up{to{opacity:1;transform:none}}
body.nh .ct-page .ct-phead .ct-bar{width:0;animation:grow 1.1s cubic-bezier(.76,0,.24,1) .25s forwards}
@keyframes grow{to{width:46%}}
body.nh .ct-page .ct-qc .ct-ico{transition:transform .35s cubic-bezier(.2,1.4,.4,1),background .3s}
body.nh .ct-page .ct-qc:hover .ct-ico{transform:translateY(-4px) rotate(-6deg);background:var(--red)}
body.nh .ct-page .ct-qc:hover .ct-ico svg{stroke:#fff}
body.nh .ct-page .ct-qc .ct-ico svg{transition:stroke .3s}
body.nh .ct-page .ct-qc::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.76,0,.24,1)}
body.nh .ct-page .ct-qc{position:relative;overflow:hidden}
body.nh .ct-page .ct-qc:hover::after{transform:scaleX(1)}
body.nh .ct-page .ct-field input, body.nh .ct-page .ct-field select, body.nh .ct-page .ct-field textarea{transition:border-color .25s,background .25s,transform .25s,box-shadow .25s}
body.nh .ct-page .ct-field input:focus, body.nh .ct-page .ct-field select:focus, body.nh .ct-page .ct-field textarea:focus{transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(215,31,39,.9)}
body.nh .ct-page .ct-open-now i{animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(25,160,78,.55)}70%{box-shadow:0 0 0 8px rgba(25,160,78,0)}}
body.nh .ct-page .ct-open-now.ct-shut i{animation-name:pulseShut}
@keyframes pulseShut{0%,100%{box-shadow:0 0 0 0 rgba(215,31,39,.55)}70%{box-shadow:0 0 0 8px rgba(215,31,39,0)}}
body.nh .ct-page .ct-chip{transition:background .25s,transform .25s}
body.nh .ct-page .ct-chip:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}
body.nh .ct-page details .ct-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s cubic-bezier(.2,.7,.2,1)}
body.nh .ct-page details.ct-opening .ct-wrapper, body.nh .ct-page details[open] .ct-wrapper{grid-template-rows:1fr}
body.nh .ct-page details.ct-closing .ct-wrapper{grid-template-rows:0fr}
body.nh .ct-page details .ct-wrapper > div{overflow:hidden;min-height:0}
body.nh .ct-page details .ct-body{opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .4s cubic-bezier(.2,.7,.2,1)}
body.nh .ct-page details[open] .ct-body{opacity:1;transform:none;transition-delay:.1s}
body.nh .ct-page details.ct-closing .ct-body{opacity:0;transform:translateY(6px);transition-delay:0s}
@media(prefers-reduced-motion:reduce){body.nh .ct-page *{transition:none!important;animation:none!important}html.ct-js body.nh .ct-page .ct-rv, body.nh .ct-page .ct-in{opacity:1!important;transform:none!important}body.nh .ct-page .ct-phead .ct-bar{width:46%}}

body.nh .ct-page .ct-alert{border-radius:14px;padding:16px 18px;margin:22px 0 0;font-size:14px;line-height:1.55}
body.nh .ct-page .ct-alert strong{font-family:var(--display);font-weight:800}
body.nh .ct-page .ct-ok{background:#e8f6ed;color:#116b36}
body.nh .ct-page .ct-bad{background:#fdeced;color:#8d1118}
body.nh .ct-page .ct-captcha-wrap{grid-column:1/-1}
body.nh .ct-page .help-block{font-size:13px;color:var(--red)}
body.nh .ct-page input[type="submit"].ct-btn{-webkit-appearance:none;appearance:none;line-height:1}
body.nh .ct-page .ct-err{margin:6px 0 0;font-size:13px;font-weight:600;color:var(--red)}