/* ============================================================
   CODESTAN · FREE CONSULTATION page
   Motion identity: QUESTION → CLARITY — fragmented abstract
   nodes settle into one clear digital direction. Calm,
   consultative, premium. One accent: --brand green.
   Shared tokens from styles.css; scaffolding from product.css.
   ============================================================ */

.page-consult{overflow-x:hidden}

/* static mode (reduced motion / mobile): no pin, all visible */
.pd-space.static{height:auto!important}
.pd-space.static .pd-sticky{position:static;min-height:0;padding:70px 0}

@keyframes cnDash{to{stroke-dashoffset:-11}}
@keyframes cnRing{0%{transform:scale(1);opacity:.7}80%{transform:scale(1.6);opacity:0}100%{transform:scale(1.6);opacity:0}}
@keyframes cnGlow{0%,100%{opacity:.45}50%{opacity:1}}

/* ============ 01 · HERO — FROM QUESTION TO DIRECTION ============ */
.cn-hero-sec .pd-sticky{padding:120px 0 4vh;background:
  radial-gradient(880px 440px at 74% -6%, rgba(162,250,163,.07), transparent 62%),
  linear-gradient(180deg,var(--bg-first),var(--bg-second) 82%)}
@media (max-width:960px){
  .cn-hero-sec .pd-sticky{padding:120px 0 70px}
}
.cn-hero-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center;
  width:min(1200px,94vw);margin:0 auto}
.cn-hero-copy .eyebrow{margin-bottom:16px}
.cn-hero-copy h1{font-size:clamp(30px,4.1vw,52px);line-height:1.07;color:#f2f7f2;margin-bottom:16px}
.cn-hero-copy .pd-sub{font-size:16.5px;color:var(--text-p2);line-height:1.6;max-width:47ch;margin-bottom:26px}
.cn-hero-steps{margin-top:30px;gap:0}
.cn-hero-steps .pd-step{padding:8px 0}
.cn-hero-steps .pd-step-n{width:24px;height:24px;font-size:9.5px}
.cn-hero-steps .pd-step h4{font-size:13px;margin:0}
.cn-hero-visual{min-width:0}
.cn-hero-stage{display:flex;align-items:center;justify-content:center;gap:9px;
  font-size:12.5px;color:var(--text-p2);margin:12px 0 0;min-height:20px;text-align:center}
.cn-hero-stage i{width:7px;height:7px;border-radius:50%;background:var(--brand);
  animation:pdPulse 1.8s ease-in-out infinite;flex:0 0 auto}

/* hero svg — scattered nodes settle into one direction */
.hmap{width:100%;height:auto;display:block}
.hm-frag circle{fill:#2c332c;transition:opacity .8s}
.hm-frag line{stroke:#2c332c;stroke-width:1;stroke-dasharray:2 5;transition:opacity .8s}
.hm-eg{fill:none;stroke:var(--brand);stroke-width:1.6;opacity:.85}
.hm-eg-base{fill:none;stroke:#242a24;stroke-width:1.2}
.hm-nd circle{fill:#101310;stroke:#3a423a;stroke-width:1.5;transition:stroke .5s,fill .5s}
.hm-nd.on circle{stroke:var(--brand);fill:var(--brand-dim)}
.hm-nd text{font-size:9.5px;font-weight:700;fill:var(--text-p2);transition:fill .5s}
.hm-nd.on text{fill:var(--brand)}
.hm-pulse{fill:var(--brand)}
.hm-pulse-ring{fill:none;stroke:var(--brand);stroke-width:1;transform-origin:center;transform-box:fill-box;
  animation:cnRing 2.4s ease-out infinite}
.hm-fin{opacity:0;transition:opacity .9s}
.hm-fin.on{opacity:1}
.hm-fin circle{fill:none;stroke:var(--brand-line);stroke-width:1.2;stroke-dasharray:4 7;
  animation:cnDash 2.6s linear infinite}
.hm-fin text{font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;fill:var(--brand)}

/* ============ 02 · YOU DON'T HAVE TO HAVE ALL THE ANSWERS ============ */
.cn-ans{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.cn-ans-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cn-ans-item{display:flex;gap:13px;align-items:flex-start;padding:17px 16px;border-radius:15px;
  background:#121511;border:1px solid #262a26;opacity:0;transform:translateY(14px);
  transition:opacity .55s var(--ease),transform .55s var(--ease),border-color .4s}
.cn-ans-grid.in .cn-ans-item{opacity:1;transform:none}
.cn-ans-item:hover{border-color:var(--brand-line)}
.cn-ans-item>i{flex:0 0 auto;width:9px;height:9px;border-radius:50%;margin-top:6px;
  background:var(--brand-dim);border:1px solid var(--brand-line)}
.cn-ans-item h4{font-size:13.5px;color:#eef4ee;line-height:1.35;font-weight:600;margin:0}
.cn-ans-visual{min-width:0}
.avsvg{width:100%;height:auto;display:block}
.av-eg{fill:none;stroke:#39413a;stroke-width:1.4;opacity:.5;transition:stroke .5s,opacity .5s}
.av-eg.on{stroke:var(--brand);opacity:.9;stroke-dasharray:5 6;animation:cnDash 1.1s linear infinite}
.av-nd rect{fill:#101310;stroke:#2c2c2c;transition:stroke .6s,fill .6s}
.av-nd text{fill:var(--text-p2);font-weight:600;transition:fill .6s}
.av-nd.on rect{stroke:var(--brand-line);fill:var(--brand-dim)}
.av-nd.on text{fill:var(--brand)}
.av-frag{transition:opacity .9s,transform .9s var(--ease)}
.in .av-frag{opacity:0;transform:translateY(-10px)}
.av-q{fill:none;stroke:#5c685c;stroke-width:1.3;stroke-dasharray:3 5;transition:stroke .6s}
.in .av-q{stroke:var(--brand-line)}

/* ============ 03 · WHAT HAPPENS WHEN WE TALK ============ */
.cn-talk-sec .pd-sticky{background:
  radial-gradient(760px 420px at 22% 4%, rgba(162,250,163,.05), transparent 60%),var(--bg-first)}
.cn-talk{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:center;
  width:min(1200px,94vw);margin:0 auto}
.cn-talk-steps .pd-step p{max-width:44ch}
.cn-talk-track{min-width:0}
.cn-talk-rail{width:min(1200px,94vw);margin:26px auto 0}
.tkmap{width:100%;height:auto;display:block;max-height:56svh}
.tk-eg-base{fill:none;stroke:#242a24;stroke-width:1.2}
.tk-eg{fill:none;stroke:var(--brand);stroke-width:1.6;opacity:.85}
.tk-nd circle{fill:#101310;stroke:#3a423a;stroke-width:1.5;transition:stroke .5s,fill .5s}
.tk-nd-n{font-size:10px;font-weight:700;fill:var(--text-p2);transition:fill .5s}
.tk-nd-t{font-size:10.5px;font-weight:600;fill:#5c685c;transition:fill .5s}
.tk-nd.on circle{stroke:var(--brand);fill:var(--brand-dim)}
.tk-nd.on .tk-nd-n{fill:var(--brand)}
.tk-nd.on .tk-nd-t{fill:#eef4ee}
.tk-pulse{fill:var(--brand)}

/* ============ 04 · CONSULTATION FORM ============ */
.cn-form-sec{background:
  radial-gradient(760px 380px at 82% 0%, rgba(162,250,163,.05), transparent 60%),var(--bg-second)}
.cn-form-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:36px;align-items:start}
.cn-form{background:#101210;border:1px solid #262a26;border-radius:24px;padding:32px;
  display:flex;flex-direction:column;gap:26px;min-width:0}
.cn-fs{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.cn-fs>legend{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brand);margin-bottom:2px;padding:0}
.cn-fs .cn-fs-sub{font-size:12px;color:var(--text-p2);margin:0;line-height:1.5}
.cn-chips{display:flex;flex-wrap:wrap;gap:8px}
.cn-chip{position:relative;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-p1);
  padding:9px 15px 9px 15px;border-radius:999px;border:1px solid #2c2c2c;background:#141714;
  cursor:pointer;transition:border-color .3s,background .3s,color .3s}
.cn-chip:hover{border-color:#3d453d}
.cn-chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.cn-chip.on{border-color:var(--brand-line);background:var(--brand-dim);color:var(--brand);
  padding-inline-start:30px}
.cn-chip.on::before{content:'';position:absolute;inset-inline-start:12px;top:50%;width:11px;height:6px;
  border-inline-start:2px solid var(--brand);border-bottom:2px solid var(--brand);
  transform:translateY(-65%) rotate(-45deg)}
[dir="rtl"] .cn-chip.on::before{transform:translateY(-65%) rotate(-45deg) scaleX(-1)}
.cn-chip-unsure{border-style:dashed}
.cn-unsure-note{display:none;font-size:12.5px;color:var(--brand);background:var(--brand-dim);
  border:1px solid var(--brand-line);border-radius:12px;padding:11px 15px;line-height:1.5;margin:0}
.cn-unsure-note.on{display:block}
.cn-plan-note{font-size:12px;color:var(--text-p1);background:#141714;border:1px dashed #3a423a;
  border-radius:12px;padding:11px 15px;line-height:1.5;margin:0}
.cn-plan-note strong{color:var(--brand);font-weight:700}
.cn-plan-note[hidden]{display:none}
.cn-frow2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cn-field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;color:var(--text-p1)}
.cn-field>span i{color:var(--brand);font-style:normal}
.cn-field .cn-opt{font-weight:400;color:var(--text-ph);font-size:11px}
.cn-field input,.cn-field select,.cn-field textarea{
  font:inherit;font-weight:400;font-size:14px;color:var(--text);
  background:var(--bg-second);border:1px solid var(--stroke);border-radius:var(--r-sm);
  padding:12px 14px;width:100%;transition:border-color var(--dur-2),box-shadow var(--dur-2)}
.cn-field input::placeholder,.cn-field textarea::placeholder{color:var(--text-ph)}
.cn-field input:focus,.cn-field select:focus,.cn-field textarea:focus{
  outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(162,250,163,.15)}
.cn-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23989898' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-inline-end:40px}
[dir="rtl"] .cn-field select{background-position:left 12px center}
.cn-field textarea{resize:vertical;min-height:70px}
.cn-field input[type="date"]{color-scheme:dark}
.cn-field.err input,.cn-field.err select{border-color:rgba(224,138,138,.55)}
.cn-err{font-size:11px;font-weight:400;color:#d99;font-style:normal}

/* summary */
.cn-sum{background:#0c0e0c;border:1px solid #22261f;border-radius:16px;padding:18px 20px}
.cn-sum h4{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);
  margin:0 0 12px;font-weight:700}
.cn-sum-rows{display:flex;flex-direction:column}
.cn-sum-row{display:grid;grid-template-columns:132px 1fr;gap:12px;padding:8px 0;border-top:1px solid #1d211d}
.cn-sum-row>span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-p2);padding-top:2px}
.cn-sum-row>p{font-size:13px;color:var(--text-p1);margin:0;line-height:1.5}
.cn-sum-row>p:empty::before{content:'—';color:var(--text-ph)}

/* submit + loading + error */
.cn-submit{justify-content:center;position:relative}
.cn-submit[disabled]{opacity:.8;pointer-events:none}
.cn-load{display:none;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.cn-load.on{display:flex}
.cn-load i{font-style:normal;font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--text-p2);
  border:1px solid #2c2c2c;border-radius:999px;padding:6px 13px;background:#141714;
  transition:border-color .45s,color .45s,background .45s}
.cn-load i.on{border-color:var(--brand-line);background:var(--brand-dim);color:var(--brand)}
.cn-load svg{width:14px;height:14px;stroke:#3a423a;fill:none;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.cn-fail{font-size:13.5px;color:#e7b9b9;background:rgba(224,138,138,.08);
  border:1px solid rgba(224,138,138,.35);border-radius:12px;padding:14px 16px;
  line-height:1.55;margin:0;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.cn-fail[hidden]{display:none}
.cn-fail strong{color:#f0d3d3;display:block;font-size:14px}
.cn-fail .btn{align-self:flex-start}

/* right column — live consultation visual */
.cn-ctx{position:sticky;top:96px;background:#101210;border:1px solid #262a26;border-radius:24px;
  padding:24px;min-width:0}
.cn-ctx-head{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.cn-ctx-tag{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-p2)}
.cn-ctx-status{align-self:flex-start;font-size:10.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text-p2);border:1px solid #2c2c2c;border-radius:999px;
  padding:6px 14px;background:#141714;transition:color .5s,border-color .5s,background .5s}
.cn-ctx-status.lvl1{color:var(--text-p1);border-color:#3a423a}
.cn-ctx-status.lvl2{color:var(--brand);border-color:var(--brand-line);background:var(--brand-dim);
  animation:cnGlow 2.6s ease-in-out infinite}
.cvsvg{width:100%;height:auto;display:block}
.cv-eg{stroke:#2c332c;stroke-width:1.2;fill:none;stroke-dasharray:3 6;transition:stroke .6s}
.cv-eg.on{stroke:var(--brand);stroke-dasharray:none;opacity:.8}
.cv-slot circle{fill:#101310;stroke:#2c2c2c;stroke-width:1.4;transition:stroke .6s,fill .6s}
.cv-slot-k{font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;fill:#5c685c;transition:fill .6s}
.cv-slot-v{font-size:9px;font-weight:600;fill:var(--text-p2);transition:fill .6s}
.cv-slot.on circle{stroke:var(--brand-line);fill:var(--brand-dim)}
.cv-slot.on .cv-slot-k{fill:var(--brand)}
.cv-slot.on .cv-slot-v{fill:var(--text-p1)}
.cv-core-c{fill:#0e120e;stroke:#3a423a;stroke-width:1.6;transition:stroke .6s}
.cv-core-t{font-size:11px;font-weight:700;fill:var(--text-p1);transition:fill .6s}
.cv-core.on .cv-core-c{stroke:var(--brand)}
.cv-core-pulse{fill:none;stroke:var(--brand);stroke-width:1;opacity:0;transform-origin:center;transform-box:fill-box}
.cv-core.on .cv-core-pulse{opacity:1;animation:cnRing 2.6s ease-out infinite}
.cn-ctx-note{font-size:11px;color:var(--text-ph);line-height:1.5;margin:12px 0 0;text-align:center}

/* ============ 05/06 · ALTERNATIVE PATHS ============ */
.cn-alt-path{display:flex;flex-direction:column;align-items:flex-start;gap:22px;
  background:#101210;border:1px solid #262a26;border-radius:24px;padding:34px}
.cn-alt-copy .eyebrow{margin-bottom:12px}
.cn-alt-copy h2{font-size:clamp(23px,2.6vw,32px);color:#f0f6f0;margin-bottom:10px;line-height:1.12}
.cn-alt-copy p{font-size:14px;color:var(--text-p2);line-height:1.6;max-width:60ch;margin:0}
.cn-alt-list{display:flex;flex-wrap:wrap;gap:10px}
.cn-lnk{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:13px;
  font-weight:600;color:var(--text-p1);padding:12px 18px;border-radius:999px;background:#121511;
  border:1px solid #2c2c2c;transition:border-color .3s,transform .3s var(--ease)}
.cn-lnk i{width:7px;height:7px;border-radius:50%;background:var(--brand);flex:0 0 auto}
.cn-lnk:hover{border-color:var(--brand-line);transform:translateY(-2px)}

/* ============ 07 · WHAT YOU'LL GET ============ */
.cn-get-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cn-get{position:relative;padding:22px 20px;border-radius:16px;background:#121511;
  border:1px solid #262a26;opacity:0;transform:translateY(14px);
  transition:opacity .55s var(--ease),transform .55s var(--ease),border-color .4s}
.cn-get-grid.in .cn-get{opacity:1;transform:none}
.cn-get:hover{border-color:var(--brand-line)}
.cn-get::before{content:'';display:block;width:26px;height:2px;border-radius:1px;background:var(--brand);
  margin-bottom:14px;opacity:.8}
.cn-get h4{font-size:14px;color:#eef4ee;margin:0 0 6px;line-height:1.35}
.cn-get p{font-size:11.5px;color:var(--text-p2);line-height:1.55;margin:0}

/* ============ 08 · A CONVERSATION, NOT A SALES PITCH ============ */
.cn-pitch{max-width:760px;margin:0 auto;text-align:center}
.cn-pitch .eyebrow{margin-bottom:16px}
.cn-pitch h2{font-size:clamp(27px,3.4vw,44px);line-height:1.12;color:#f2f7f2;margin-bottom:18px}
.cn-pitch p{font-size:16.5px;color:var(--text-p2);line-height:1.75;margin:0}

/* ============ 10 · FINALE ============ */
.cn-fin-map{max-width:480px;margin:0 auto 24px}
.fmap{width:100%;height:auto;display:block}
.fm-nd{transition:transform 1.5s var(--ease),opacity 1.2s var(--ease)}
.fm-nd circle{fill:#101310;stroke:#3a423a;stroke-width:1.5;transition:stroke .8s,fill .8s}
.on .fm-nd circle{stroke:var(--brand);fill:var(--brand-dim)}
.fm-eg{fill:none;stroke:var(--brand);stroke-width:1.5;transition:stroke-dashoffset 1.6s var(--ease)}
.fm-eg-base{fill:none;stroke:#242a24;stroke-width:1.1}
.fm-fin{opacity:0;transition:opacity 1.4s var(--ease) .9s}
.on .fm-fin{opacity:1}
.fm-fin text{font-size:9px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;fill:var(--brand)}
.fm-fin circle{fill:none;stroke:var(--brand-line);stroke-width:1.1;stroke-dasharray:4 7;
  animation:cnDash 2.6s linear infinite}
.cn-fin-msg{font-size:clamp(13px,1.6vw,17px)!important;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brand)!important;margin:26px auto 0!important;
  opacity:0;transform:translateY(10px);transition:opacity 1.6s var(--ease) .8s,transform 1.8s var(--ease) .8s}
.pd-finale.in .cn-fin-msg{opacity:1;transform:none}

/* ============ RESPONSIVE ============ */
@media (max-width:1080px){
  .cn-get-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:960px){
  .cn-hero-grid{grid-template-columns:1fr;gap:30px}
  .cn-hero-steps{display:none}
  .cn-ans{grid-template-columns:1fr;gap:28px}
  .cn-talk{grid-template-columns:1fr;gap:24px}
  .cn-form-grid{grid-template-columns:1fr;gap:24px}
  .cn-ctx{position:static;order:-1;padding:18px}
  .cn-ctx-note{display:none}
}
@media (max-width:860px){
  .cn-hero-copy h1{font-size:clamp(27px,7.4vw,37px)}
  .cn-hero-copy .pd-sub{font-size:14.5px}
  .cn-form{padding:22px}
  .cn-talk-track{max-width:420px;margin:0 auto}
}
@media (max-width:560px){
  .cn-ans-grid{grid-template-columns:1fr}
  .cn-get-grid{grid-template-columns:1fr}
  .cn-frow2{grid-template-columns:1fr}
  .cn-alt-path{padding:24px}
  .cn-sum-row{grid-template-columns:1fr;gap:3px}
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion: reduce){
  .hm-pulse-ring,.cv-core-pulse,.hm-fin circle,.fm-fin circle,.av-eg.on,.cn-ctx-status.lvl2{animation:none}
  .cn-ans-item,.cn-get,.cn-fin-msg,.fm-nd,.fm-fin,.av-frag{opacity:1!important;transform:none!important;transition:none}
  .fm-eg{transition:none}
  .hm-frag,.hm-eg,.hm-nd,.tk-eg,.tk-nd{transition:none}
}
