/* ============================================================
   CONTACT PAGE (page-contact.php) — loaded on /contact only.
   All classes namespaced .taim-ct-*.
   ============================================================ */

.taim-ct { background:#fff; }

/* ---- Hero ---- */
.taim-ct-hero { position:relative; overflow:hidden; background:var(--ink-950); color:#fff; padding:96px 0 168px; isolation:isolate; }
.taim-ct-hero__grid { position:absolute; inset:0; z-index:-2;
  background-image:linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 80% 90% at 70% 10%, #000 30%, transparent 75%);
          mask-image:radial-gradient(ellipse 80% 90% at 70% 10%, #000 30%, transparent 75%); }
.taim-ct-hero__glow { position:absolute; z-index:-1; width:760px; height:760px; right:-180px; top:-320px; border-radius:50%;
  background:radial-gradient(circle, rgba(var(--cyan-rgb),.34) 0%, rgba(var(--cyan-rgb),.10) 40%, transparent 70%);
  animation:taim-ct-drift 14s var(--ease-inout) infinite alternate; }
.taim-ct-hero__glow::after { content:""; position:absolute; width:420px; height:420px; left:-260px; top:420px; border-radius:50%;
  background:radial-gradient(circle, rgba(139,92,246,.22) 0%, transparent 70%); }
@keyframes taim-ct-drift { to { transform:translate(-60px, 40px) scale(1.08); } }

.taim-ct-hero__inner { position:relative; }
.taim-ct-hero__title { font-family:var(--font-sans); font-weight:800; font-size:clamp(40px, 6.2vw, 76px); line-height:1.02; letter-spacing:-.035em; color:#fff; margin:22px 0 22px; max-width:900px; }
.taim-ct-hero__title span { background:linear-gradient(92deg, var(--cyan-300) 0%, var(--cyan-500) 45%, #8FA8FF 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.taim-ct-hero__lede { font-size:19px; line-height:1.6; color:var(--ink-200); max-width:620px; margin:0 0 34px; }
.taim-ct-hero__meta { display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; }
.taim-ct-hero__mail { display:inline-flex; align-items:center; gap:10px; height:48px; padding:0 20px; border-radius:var(--radius-pill); border:1px solid rgba(var(--cyan-rgb),.45); background:rgba(var(--cyan-rgb),.08); color:#fff; font-family:var(--font-mono); font-size:15px; text-decoration:none; transition:background var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.taim-ct-hero__mail svg { color:var(--cyan-400); }
.taim-ct-hero__mail:hover { background:rgba(var(--cyan-rgb),.16); box-shadow:var(--glow-md); color:#fff; }
.taim-ct-hero__pulse { display:inline-flex; align-items:center; gap:10px; font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-300); }
.taim-ct-hero__pulse i { position:relative; width:8px; height:8px; border-radius:50%; background:var(--success-500); }
.taim-ct-hero__pulse i::after { content:""; position:absolute; inset:-4px; border-radius:50%; border:2px solid var(--success-500); opacity:0; animation:taim-ct-ping 2s var(--ease-out) infinite; }
@keyframes taim-ct-ping { 0% { transform:scale(.6); opacity:.8; } 100% { transform:scale(1.8); opacity:0; } }

/* ---- Form + side panel (overlaps the hero) ---- */
.taim-ct-main { position:relative; margin-top:-112px; padding-bottom:88px; scroll-margin-top:80px; }
.taim-ct-main__grid { display:grid; grid-template-columns:minmax(0, 1.55fr) minmax(0, 1fr); gap:28px; align-items:start; }

.taim-ct-card { position:relative; background:#fff; border:1px solid rgba(10,14,20,.08); border-radius:var(--radius-xl); padding:40px; box-shadow:0 30px 80px rgba(5,7,10,.16), 0 2px 6px rgba(5,7,10,.05); }
.taim-ct-card::before { content:""; position:absolute; left:40px; right:40px; top:-1px; height:3px; border-radius:0 0 3px 3px; background:linear-gradient(90deg, var(--cyan-500), #8FA8FF); }

.taim-ct-form__head { margin-bottom:26px; }
.taim-ct-form__title { font-size:28px; line-height:1.15; letter-spacing:-.02em; color:var(--ink-950); margin:0 0 6px; }
.taim-ct-form__sub { font-size:14px; color:var(--ink-400); margin:0; }
.taim-ct-req { color:var(--cyan-700); font-weight:700; }

.taim-ct-topics { border:0; padding:0; margin:0 0 26px; min-width:0; }
.taim-ct-topics legend { padding:0; margin-bottom:12px; font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-400); }
.taim-ct-topics__list { display:flex; flex-wrap:wrap; gap:10px; }
.taim-ct-chip { position:relative; cursor:pointer; }
.taim-ct-chip input { position:absolute; opacity:0; width:1px; height:1px; }
.taim-ct-chip span { display:inline-flex; align-items:center; height:40px; padding:0 16px; border-radius:var(--radius-pill); border:1px solid var(--ink-100); background:var(--ink-50); color:var(--ink-600); font-size:14px; font-weight:600; transition:all var(--dur-base) var(--ease-out); user-select:none; }
.taim-ct-chip:hover span { border-color:var(--cyan-500); color:var(--ink-950); }
.taim-ct-chip input:checked + span { background:var(--ink-950); border-color:var(--ink-950); color:#fff; box-shadow:0 0 0 3px rgba(var(--cyan-rgb),.25); }
.taim-ct-chip input:checked + span::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--cyan-500); margin-right:9px; box-shadow:0 0 8px var(--cyan-500); }
.taim-ct-chip input:focus-visible + span { outline:2px solid var(--cyan-500); outline-offset:2px; }

.taim-ct-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.taim-ct-field { position:relative; margin-bottom:18px; }
.taim-ct-field label { display:block; font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-500); margin-bottom:8px; }
.taim-ct-field label em { font-style:normal; text-transform:none; letter-spacing:0; color:var(--ink-300); margin-left:4px; }
.taim-ct-field input, .taim-ct-field textarea { width:100%; font-size:16px; font-family:var(--font-sans); color:var(--ink-950); background:#FBFCFE; border:1px solid var(--ink-100); border-radius:var(--radius-md); transition:border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out); }
.taim-ct-field input { height:52px; padding:0 16px; }
.taim-ct-field textarea { min-height:168px; padding:14px 16px 30px; line-height:1.55; resize:vertical; }
.taim-ct-field input::placeholder, .taim-ct-field textarea::placeholder { color:var(--ink-300); }
.taim-ct-field input:hover, .taim-ct-field textarea:hover { border-color:var(--ink-200); }
.taim-ct-field input:focus, .taim-ct-field textarea:focus { outline:none; background:#fff; border-color:var(--cyan-500); box-shadow:0 0 0 4px rgba(var(--cyan-rgb),.16); }
.taim-ct-field.is-invalid input, .taim-ct-field.is-invalid textarea { border-color:var(--danger-500); box-shadow:0 0 0 4px rgba(255,77,77,.12); }
.taim-ct-field__err { display:block; font-size:13px; color:#D93636; margin-top:6px; }
.taim-ct-count { position:absolute; right:14px; bottom:12px; font-family:var(--font-mono); font-size:11px; color:var(--ink-300); pointer-events:none; }
.taim-ct-count.is-near { color:var(--warning-500); }

.taim-ct-hp { position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }

.taim-ct-submit { display:flex; align-items:center; gap:18px 22px; flex-wrap:wrap; margin-top:6px; }
.taim-ct-btn { position:relative; min-width:200px; }
.taim-ct-btn__arrow { transition:transform var(--dur-base) var(--ease-out); }
.taim-ct-btn:hover .taim-ct-btn__arrow { transform:translateX(4px); }
.taim-ct-btn__spin { display:none; width:18px; height:18px; border-radius:50%; border:2px solid rgba(255,255,255,.3); border-top-color:var(--cyan-400); animation:taim-ct-spin .7s linear infinite; }
.taim-ct-btn.is-busy { pointer-events:none; opacity:.85; }
.taim-ct-btn.is-busy .taim-ct-btn__arrow { display:none; }
.taim-ct-btn.is-busy .taim-ct-btn__spin { display:block; }
@keyframes taim-ct-spin { to { transform:rotate(360deg); } }
.taim-ct-fine { flex:1 1 220px; font-size:12.5px; line-height:1.5; color:var(--ink-400); margin:0; }
.taim-ct-fine a { color:var(--ink-600); }
.taim-ct-msg { margin:16px 0 0; font-size:14px; color:#D93636; min-height:0; }
.taim-ct-msg:empty { display:none; }

.taim-ct-done { text-align:center; padding:40px 8px 20px; outline:none; }
.taim-ct-done__icon { width:76px; height:76px; margin:0 auto 22px; border-radius:50%; display:grid; place-items:center; color:var(--ink-950); background:var(--cyan-500); box-shadow:0 0 0 10px rgba(var(--cyan-rgb),.14), var(--glow-lg); animation:taim-ct-pop .5s var(--ease-out); }
@keyframes taim-ct-pop { from { transform:scale(.5); opacity:0; } }
.taim-ct-done__text { font-size:17px; line-height:1.6; color:var(--ink-700); margin:8px auto 8px; max-width:440px; }
.taim-ct-done__note { font-size:14px; line-height:1.6; color:var(--ink-400); margin:0 auto 26px; max-width:440px; }
.taim-ct-done__note a { color:var(--cyan-700); }

/* Side panel */
.taim-ct-side { position:sticky; top:96px; }
.taim-ct-panel { position:relative; overflow:hidden; background:var(--ink-900); color:#fff; border-radius:var(--radius-xl); padding:34px 30px; border:1px solid rgba(255,255,255,.06); box-shadow:0 30px 80px rgba(5,7,10,.22); }
.taim-ct-panel::before { content:""; position:absolute; width:320px; height:320px; right:-140px; top:-160px; border-radius:50%; background:radial-gradient(circle, rgba(var(--cyan-rgb),.28), transparent 70%); pointer-events:none; }
.taim-ct-panel__lead { position:relative; font-size:16px; line-height:1.55; color:var(--ink-200); margin:14px 0 18px; }
.taim-ct-mailbox { position:relative; display:flex; align-items:center; gap:8px; padding:6px 6px 6px 16px; background:rgba(255,255,255,.04); border:1px solid rgba(var(--cyan-rgb),.35); border-radius:var(--radius-lg); }
.taim-ct-mailbox__addr { flex:1; min-width:0; font-family:var(--font-mono); font-size:14.5px; color:#fff; text-decoration:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.taim-ct-mailbox__addr:hover { color:var(--cyan-300); }
.taim-ct-copy { display:inline-flex; align-items:center; gap:6px; height:38px; padding:0 12px; border-radius:var(--radius-md); border:0; background:var(--cyan-500); color:var(--black); font-family:var(--font-sans); font-size:13px; font-weight:700; cursor:pointer; transition:background var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.taim-ct-copy:hover { background:var(--cyan-400); box-shadow:var(--glow-md); }

.taim-ct-facts { position:relative; list-style:none; margin:26px 0 0; padding:0; display:grid; gap:18px; }
.taim-ct-facts li { display:flex; gap:14px; align-items:flex-start; }
.taim-ct-facts svg { flex:0 0 auto; color:var(--cyan-400); margin-top:2px; }
.taim-ct-facts strong { display:block; font-size:15px; color:#fff; margin-bottom:2px; }
.taim-ct-facts span { display:block; font-size:14px; line-height:1.5; color:var(--ink-300); }

.taim-ct-social { position:relative; display:flex; align-items:center; gap:10px; margin-top:28px; padding-top:22px; border-top:1px solid rgba(255,255,255,.08); color:var(--ink-100); font-size:14px; font-weight:600; text-decoration:none; }
.taim-ct-social svg:last-child { margin-left:auto; opacity:.6; transition:transform var(--dur-base) var(--ease-out); }
.taim-ct-social:hover { color:var(--cyan-300); }
.taim-ct-social:hover svg:last-child { transform:translate(2px,-2px); opacity:1; }

/* ---- Ways to work with us ---- */
.taim-ct-ways { padding:84px 0; background:var(--ink-50); border-top:1px solid rgba(10,14,20,.05); }
.taim-ct-sechead { margin-bottom:36px; }
.taim-ct-sechead h2 { font-size:clamp(28px, 3.4vw, 40px); line-height:1.1; letter-spacing:-.025em; color:var(--ink-950); margin:14px 0 0; }
.taim-ct-sechead p { font-size:16px; line-height:1.6; color:var(--ink-500); margin:14px 0 0; }
.taim-ct-ways__grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:20px; }
.taim-ct-way { position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid rgba(10,14,20,.07); border-radius:var(--radius-lg); padding:26px 24px 24px; transition:transform var(--dur-slow) var(--ease-out), box-shadow var(--dur-slow) var(--ease-out), border-color var(--dur-slow) var(--ease-out); }
.taim-ct-way:hover { transform:translateY(-4px); border-color:rgba(var(--cyan-rgb),.45); box-shadow:0 18px 44px rgba(5,7,10,.10); }
.taim-ct-way__top { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.taim-ct-way__icon { width:46px; height:46px; display:grid; place-items:center; border-radius:12px; background:var(--ink-950); color:var(--cyan-400); }
.taim-ct-way__num { font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; color:var(--ink-300); }
.taim-ct-way h3 { font-size:20px; letter-spacing:-.01em; color:var(--ink-950); margin:0 0 10px; }
.taim-ct-way p { flex:1; font-size:14.5px; line-height:1.6; color:var(--ink-500); margin:0 0 20px; }
.taim-ct-way__cta { display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:var(--ink-950); text-decoration:none; }
.taim-ct-way__cta svg { color:var(--cyan-600); transition:transform var(--dur-base) var(--ease-out); }
.taim-ct-way__cta:hover { color:var(--cyan-700); }
.taim-ct-way__cta:hover svg { transform:translateX(4px); }

/* ---- FAQ ---- */
.taim-ct-faq { padding:88px 0 100px; }
.taim-ct-faq__grid { display:grid; grid-template-columns:minmax(0, .8fr) minmax(0, 1.2fr); gap:56px; align-items:start; }
.taim-ct-faq__list { border-top:1px solid var(--ink-100); }
.taim-ct-qa { border-bottom:1px solid var(--ink-100); }
.taim-ct-qa summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 0; font-size:18px; font-weight:700; color:var(--ink-950); }
.taim-ct-qa summary::-webkit-details-marker { display:none; }
.taim-ct-qa summary:hover { color:var(--cyan-700); }
.taim-ct-qa__plus { position:relative; flex:0 0 auto; width:28px; height:28px; border-radius:50%; border:1px solid var(--ink-100); transition:transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), border-color var(--dur-base); }
.taim-ct-qa__plus::before, .taim-ct-qa__plus::after { content:""; position:absolute; left:50%; top:50%; width:10px; height:2px; margin:-1px 0 0 -5px; background:currentColor; border-radius:2px; }
.taim-ct-qa__plus::after { transform:rotate(90deg); transition:transform var(--dur-base) var(--ease-out); }
.taim-ct-qa[open] .taim-ct-qa__plus { background:var(--ink-950); border-color:var(--ink-950); color:var(--cyan-400); }
.taim-ct-qa[open] .taim-ct-qa__plus::after { transform:rotate(0deg); }
.taim-ct-qa p { font-size:16px; line-height:1.7; color:var(--ink-500); margin:-6px 0 24px; max-width:640px; }

/* ---- Responsive ---- */
@media (max-width:1000px) {
  .taim-ct-main__grid { grid-template-columns:1fr; }
  .taim-ct-side { position:static; }
  .taim-ct-ways__grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .taim-ct-faq__grid { grid-template-columns:1fr; gap:8px; }
}
@media (max-width:640px) {
  .taim-ct-hero { padding:64px 0 128px; }
  .taim-ct-hero__lede { font-size:17px; }
  .taim-ct-hero__mail { font-size:14px; padding:0 16px; }
  .taim-ct-main { margin-top:-96px; padding-bottom:64px; }
  .taim-ct-card { padding:28px 20px; border-radius:var(--radius-lg); }
  .taim-ct-card::before { left:20px; right:20px; }
  .taim-ct-form__title { font-size:24px; }
  .taim-ct-row { grid-template-columns:1fr; gap:0; }
  .taim-ct-chip span { height:38px; padding:0 14px; font-size:13.5px; }
  .taim-ct-btn { width:100%; }
  .taim-ct-panel { padding:28px 20px; }
  .taim-ct-ways { padding:64px 0; }
  .taim-ct-ways__grid { grid-template-columns:1fr; }
  .taim-ct-faq { padding:64px 0 72px; }
  .taim-ct-qa summary { font-size:16.5px; }
}
@media (prefers-reduced-motion:reduce) {
  .taim-ct-hero__glow, .taim-ct-hero__pulse i::after, .taim-ct-done__icon { animation:none; }
  .taim-ct-way:hover { transform:none; }
}
