/* Torilab — Contact (page-contact.php). Dùng lại home.css; hero mạng lưới = assets/js/hero-network.js */
.ct-page h1 span,.ct-page h2 span{color:var(--lime)}

/* 1 · Hero */
.ct-hero{background:#070807;height:min(100svh,860px)}
#cfield{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}
.ct-hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(7,8,7,.9) 0%,rgba(7,8,7,.55) 38%,rgba(7,8,7,0) 70%)}
.ct-hero::after{z-index:1}
.ct-hero .hero-c,.ct-hero .cm-meta{z-index:3}
.ct-hero .kick{background:rgba(255,255,255,.08);color:#fff;padding-left:14px}
.ct-hero h1{max-width:16ch}
.pr-dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px var(--lime)}
.cm-meta{position:absolute;z-index:2;right:var(--pad);bottom:clamp(40px,8vh,96px);display:flex;flex-direction:column;align-items:flex-end;gap:8px;color:rgba(255,255,255,.55);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.cm-meta b{color:var(--lime);font-weight:500}
.cm-inl{color:var(--lime);text-decoration:underline;text-decoration-color:rgba(204,255,102,.45);text-underline-offset:4px;text-decoration-thickness:1px;transition:color .25s}
.cm-inl:hover{color:#fff}
@media (min-width:721px){.ct-hero .lead{max-width:min(54ch,calc(100% - 340px))!important}}

/* 2 · Form */
.ct-box{background:var(--card);border-radius:var(--r);padding:clamp(28px,5vw,88px);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,96px);align-items:start}
.ct-l .kick,.ct-info .kick{background:var(--surf);padding-left:14px}
.ct-l h2,.ct-info h2{margin-top:24px;font-size:clamp(28px,3vw,48px)}
.ct-l .lead,.ct-info .lead{margin-top:18px;color:var(--ink-2);max-width:46ch}
.ct-types{display:grid;gap:10px;margin-top:clamp(28px,3vw,40px)}
.ct-type{position:relative;display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:18px;border:1px solid var(--line);background:transparent;cursor:pointer;transition:border-color .25s,background .25s}
.ct-type input{position:absolute;opacity:0;pointer-events:none}
.ct-type:hover{border-color:rgba(204,255,102,.4)}
.ct-type.on{border-color:var(--lime);background:rgba(204,255,102,.06)}
.ct-type:has(input:focus-visible){outline:2px solid var(--lime);outline-offset:2px}
.ct-ic{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--surf);color:#fff;transition:background .25s,color .25s}
.ct-ic svg{width:22px;height:22px}
.ct-type.on .ct-ic{background:var(--lime);color:var(--ink)}
.ct-tx{display:flex;flex-direction:column;gap:3px}
.ct-tx b{font-size:16px;font-weight:600;letter-spacing:-.01em}
.ct-tx small{font-size:13.5px;line-height:1.45;color:var(--ink-3)}
.ct-direct{margin-top:24px;font-size:12px;letter-spacing:.04em;color:var(--ink-3);line-height:1.8}
.ct-direct a{color:var(--lime)}

.ct-form{display:flex;flex-direction:column;gap:22px}
.ct-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
.ct-w{grid-column:1/-1}
.ct-fd{display:flex;flex-direction:column;gap:8px;min-width:0}
.ct-fd label,.ct-lb{font-size:13px;font-weight:500;color:var(--ink-2)}
.ct-fd label i,.ct-lb i{font-style:normal;color:var(--lime)}
.ct-fd input,.ct-fd textarea{width:100%;font:inherit;font-size:15px;color:#fff;background:var(--surf);border:1px solid rgba(255,255,255,.4);border-radius:14px;padding:13px 16px;transition:border-color .2s,background .2s;-webkit-appearance:none;appearance:none}
.ct-fd textarea{resize:vertical;min-height:140px;line-height:1.55}
.ct-fd input::placeholder,.ct-fd textarea::placeholder{color:var(--ink-3)}
.ct-fd input:focus,.ct-fd textarea:focus{outline:none;border-color:var(--lime);background:#1F231F}
.ct-fd.bad input,.ct-fd.bad textarea{border-color:#FF6B6B}
.ct-chips{display:flex;gap:8px;flex-wrap:wrap}
.ct-chip input{position:absolute;opacity:0;pointer-events:none}
.ct-chip span{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:99px;border:1px solid var(--line);font-size:14px;color:var(--ink-2);cursor:pointer;transition:all .2s}
.ct-chip input:checked+span{background:var(--lime);border-color:var(--lime);color:var(--ink)}
.ct-chip input:focus-visible+span{outline:2px solid var(--lime);outline-offset:2px}
.ct-note{font-size:14px;line-height:1.6;color:var(--ink-3);padding:14px 16px;border-radius:14px;background:rgba(204,255,102,.06);border:1px solid rgba(204,255,102,.18)}
[data-for][hidden]{display:none!important}
.ct-consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.55;color:var(--ink-2);cursor:pointer}
.ct-consent input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--lime);cursor:pointer}
.ct-consent.bad span{color:#FF8A8A}
.ct-consent a{color:var(--lime);text-decoration:underline;text-underline-offset:3px}
.ct-sub{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.ct-btn{border:0;cursor:pointer;font:inherit;font-weight:500}
.ct-btn[disabled]{opacity:.6;cursor:wait}
.ct-msg{font-size:14px;color:var(--ink-3);margin:0}
.ct-msg.err{color:#FF8A8A}
.ct-done{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:clamp(28px,3vw,48px);border-radius:24px;background:rgba(204,255,102,.06);border:1px solid rgba(204,255,102,.25)}
.ct-done[hidden]{display:none}
.ct-done:focus{outline:none}
.ct-ok{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:var(--ink);font-size:24px;font-weight:700}
.ct-done h3{font-size:clamp(22px,2vw,30px);margin-top:6px}
.ct-done p{color:var(--ink-2);line-height:1.6;max-width:52ch}
.ct-again{background:none;border:0;padding:0;cursor:pointer;font:inherit;margin-top:6px}

/* 3 · Support + office */
#support{padding-top:clamp(12px,1.2vw,20px)}
.ct-info{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(12px,1.2vw,20px)}
.ct-sp,.ct-of{background:var(--card);border-radius:var(--r);padding:clamp(28px,4vw,64px)}
.ct-sl{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.ct-sl a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);font-size:15px;font-weight:500;transition:color .25s}
.ct-sl a i{font-style:normal;color:var(--ink-3);transition:color .25s,transform .25s}
.ct-sl a:hover,.ct-sl a:hover i{color:var(--lime)}
.ct-sl a:hover i{transform:translate(2px,-2px)}
.ct-of dl{margin:28px 0 0;display:flex;flex-direction:column}
.ct-of dl>div{padding:16px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:140px 1fr;gap:16px}
.ct-of dl>div:first-child{padding-top:0}
.ct-of dt{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}
.ct-of dd{margin:0;font-size:15px;line-height:1.6}
.ct-of dd b{color:var(--lime);font-weight:500}

@media (max-width:1100px){
  .ct-box{grid-template-columns:1fr}
  .ct-info{grid-template-columns:1fr}
}
@media (max-width:720px){
  .ct-hero{height:auto}
  .cm-meta{display:none}
  .ct-grid{grid-template-columns:1fr}
  .ct-sl{grid-template-columns:1fr}
  .ct-of dl>div{grid-template-columns:1fr;gap:4px}
  .ct-type{padding:14px}
  .ct-ic{width:40px;height:40px}
}
/* Link Google Maps — kiểu link gạch chân + icon external (giống "Find Us on Google Map" của Twomi) */
.ct-map{display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding-bottom:3px;border-bottom:1px solid currentColor;color:var(--lime);font-size:14px;font-weight:500;transition:opacity .25s}
.ct-map svg{width:16px;height:16px;flex:none}
.ct-map:hover{opacity:.75}
/* reCAPTCHA v3: ẩn badge nổi, thay bằng dòng thông báo theo quy định của Google */
.grecaptcha-badge{visibility:hidden}
.ct-rc{font-size:12.5px;line-height:1.6;color:var(--ink-3);margin:0}
.ct-rc a{color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}
/* Upload CV */
.ct-file{position:relative;display:flex;align-items:center;gap:14px;padding:10px 12px 10px 10px;border-radius:14px;background:var(--surf);border:1px dashed rgba(255,255,255,.18);cursor:pointer;transition:border-color .2s,background .2s;min-width:0}
.ct-file:hover{border-color:rgba(204,255,102,.5)}
.ct-file:focus-within{border-color:var(--lime);border-style:solid}
.ct-file input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ct-file-b{flex:none;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:99px;background:var(--lime);color:var(--ink);font-size:14px;font-weight:600}
.ct-file-b svg{width:16px;height:16px}
.ct-file-n{flex:1;min-width:0;font-size:14px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-file-x{flex:none;width:30px;height:30px;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:#fff;font-size:18px;line-height:1;cursor:pointer}
.ct-file-x:hover{background:#FF6B6B;color:#fff}
.ct-fd.bad .ct-file{border-color:#FF6B6B;border-style:solid}
.ct-hint{font-size:12.5px;color:var(--ink-3)}
/* Mobile: dropdown chọn loại yêu cầu (giữ icon + tiêu đề + mô tả) */
.ct-dd{display:none}
@media (max-width:720px){
  .ct-dd{display:flex;flex-direction:column;gap:8px;margin-top:24px}
  .ct-dd-btn{position:relative;display:flex;align-items:center;width:100%;text-align:left;font:inherit;color:#fff;padding:16px 52px 16px 16px;border-radius:18px;border:1px solid var(--lime);background:rgba(204,255,102,.06);cursor:pointer}
  .ct-dd-cur{display:flex;align-items:center;gap:14px;min-width:0}
  .ct-dd-cur .ct-ic{background:var(--lime);color:var(--ink)}
  .ct-dd-ar{position:absolute;right:20px;top:50%;width:9px;height:9px;border-right:2px solid var(--lime);border-bottom:2px solid var(--lime);transform:translateY(-70%) rotate(45deg);transition:transform .25s}
  .dd-open .ct-dd-ar{transform:translateY(-30%) rotate(-135deg)}
  .ct-types{display:none;margin-top:10px}
  .dd-open .ct-types{display:grid;animation:ctDd .2s ease-out}
  .ct-tx b{font-size:16px}
  .ct-tx small{font-size:14px}
}
@keyframes ctDd{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* Lỗi từng ô */
.ct-err{margin:6px 2px 0;font-size:13px;line-height:1.4;color:#FF8A8A}
.ct-consent .ct-err{flex-basis:100%}
