/* Keystone consulting + Private Advisory — shared components.
   Warm, calm, professional. No luxury clichés. Depends on system.css tokens. */

/* kicker label */
.kicker{display:inline-block;font-family:var(--sans);font-weight:680;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--teal-700);background:var(--sage-100);border:1px solid var(--sage-300);padding:6px 13px;border-radius:999px;margin-bottom:var(--s4)}
.kicker.on-clay{color:#151815;background:var(--clay-500);border-color:transparent}

/* calm hero */
.ks-hero2{background:linear-gradient(180deg,var(--paper-2),var(--paper));border-bottom:1px solid var(--line-2);padding-block:clamp(var(--s7),7vw,var(--s9))}
.ks-hero2 h1{max-width:20ch}
.ks-hero2 .lede{max-width:56ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s5)}
.trust-line{margin-top:var(--s4);font-size:.9rem;color:var(--ink-mute)}

/* two-column split */
.ks-split{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s7);align-items:start}
@media(max-width:860px){.ks-split{grid-template-columns:1fr}}

/* bullet lists */
.plain-list{list-style:none;padding:0;margin:var(--s4) 0 0}
.plain-list li{position:relative;padding-left:24px;margin-bottom:9px;color:var(--ink-soft)}
.plain-list li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;border-radius:50%;background:var(--sage-500)}
.col-list{columns:2;column-gap:var(--s7);margin:var(--s4) 0 0;padding:0;list-style:none}
.col-list li{break-inside:avoid;position:relative;padding-left:22px;margin-bottom:9px;color:var(--ink-soft);font-size:.96rem}
.col-list li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;background:var(--teal-600)}
@media(max-width:640px){.col-list{columns:1}}
.on-teal .col-list li,.on-teal .plain-list li{color:#cfe0d9}
.on-teal .col-list li::before,.on-teal .plain-list li::before{background:var(--gold)}

/* service selector */
.sel-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);max-width:900px;margin:0 auto}
@media(max-width:720px){.sel-grid{grid-template-columns:1fr}}
.sel-card{display:flex;flex-direction:column;background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-lg);padding:clamp(var(--s5),3vw,var(--s6));box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}
.sel-card:hover{border-color:var(--clay-500);box-shadow:var(--shadow)}
.sel-card .sel-t{font-family:var(--serif);font-size:1.3rem;color:var(--teal-900);margin-bottom:8px}
.sel-card p{color:var(--ink-soft);flex:1;margin-bottom:var(--s4)}
.sel-card .btn{align-self:flex-start}
.sel-help{text-align:center;margin-top:var(--s4)}
.sel-help button{background:none;border:0;color:var(--teal-700);font-family:var(--sans);font-weight:600;font-size:1rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* flow map diagram */
.flowmap{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;justify-content:center;margin:var(--s5) 0}
.flow-step{flex:1 1 130px;min-width:120px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 12px;text-align:center;position:relative}
.flow-step .fs-n{font-family:var(--sans);font-weight:680;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--clay-500)}
.flow-step .fs-t{font-weight:620;color:var(--teal-900);margin-top:4px;font-size:1rem}
.flow-arrow{align-self:center;color:var(--sage-500);font-weight:700;font-size:1.2rem}
@media(max-width:720px){.flow-arrow{transform:rotate(90deg)}.flowmap{flex-direction:column;align-items:stretch}.flow-step{min-width:0}}

/* forms */
.ks-shell{max-width:760px;margin-inline:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(var(--s5),4vw,var(--s7))}
.ks-msg{display:none;border-radius:var(--radius);padding:10px 14px;font-size:.9rem;margin-bottom:var(--s4)}
.ks-msg.err{display:block;background:var(--clay-soft);color:var(--clay-2);border:1px solid var(--line-ink)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-bottom:var(--s3)}
@media(max-width:560px){.f-row{grid-template-columns:1fr}}
label.f{display:block;font-weight:600;color:var(--teal-900);font-size:.9rem;margin-bottom:var(--s3)}
label.f input,label.f select,label.f textarea,.ks-shell textarea{width:100%;margin-top:6px;padding:12px 14px;border:1.5px solid var(--glass-brd);border-radius:var(--radius);font-family:var(--sans);font-size:1rem;background:var(--glass);color:var(--ink)}
label.f input::placeholder,.ks-shell textarea::placeholder{color:var(--ink-mute)}
label.f select option{color:#0d2e2c}
.ks-shell textarea{resize:vertical}
label.f input:focus,label.f select:focus,.ks-shell textarea:focus{outline:none;border-color:var(--teal-600);background:var(--glass-2)}
.opt{color:var(--ink-mute);font-weight:400;font-size:.82rem}
.field-block{margin-bottom:var(--s4)}
.field-block>span.lbl{display:block;font-weight:600;color:var(--teal-900);font-size:.9rem;margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip-btn{border:1.5px solid var(--line);background:var(--glass);border-radius:var(--radius-pill);padding:9px 15px;font-family:var(--sans);font-size:.9rem;font-weight:550;color:var(--teal-800);cursor:pointer;transition:.12s}
.chip-btn:hover{border-color:var(--clay-500)}
.chip-btn.on{background:var(--pine);color:#fff;border-color:transparent}
.f-docs{margin-top:var(--s3);padding:var(--s4);background:var(--paper-2);border-radius:var(--radius)}
.f-docs-t{font-weight:600;color:var(--teal-900);font-size:.9rem;display:block;margin-bottom:6px}
.f-docs input[type=file]{font-family:var(--sans);font-size:.88rem}
.doc-note{font-size:.8rem;color:var(--ink-mute);margin-top:8px}
.privacy-warn{font-size:.85rem;color:var(--ink-soft);margin-top:var(--s4);background:var(--sage-100);border:1px solid var(--sage-300);border-radius:var(--radius);padding:11px 15px}
.consent{font-size:.78rem;color:var(--ink-mute);margin-top:var(--s3);line-height:1.55}
.ks-done{text-align:center}
.ks-check{width:64px;height:64px;border-radius:50%;background:var(--sage-100);display:flex;align-items:center;justify-content:center;margin:0 auto var(--s4)}
.ks-check svg{width:34px}

/* details block (consultation details / price) */
.detail-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--s5);max-width:520px}
.detail-row{display:flex;justify-content:space-between;gap:var(--s4);padding:10px 0;border-top:1px solid var(--line-2);font-size:.96rem}
.detail-row:first-child{border-top:0}
.detail-row .k{color:var(--ink-mute)}
.detail-row .v{font-weight:600;color:var(--teal-900);text-align:right}
.tbd{color:var(--clay-600);font-style:italic;font-weight:600}

/* accordions */
.acc{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin-bottom:10px;overflow:hidden}
.acc>summary{list-style:none;cursor:pointer;padding:16px 20px;font-family:var(--sans);font-weight:620;color:var(--teal-900);display:flex;justify-content:space-between;align-items:center;gap:12px}
.acc>summary::-webkit-details-marker{display:none}
.acc>summary::after{content:"+";color:var(--clay-500);font-weight:700;font-size:1.35rem;line-height:1}
.acc[open]>summary::after{content:"\2013"}
.acc[open]>summary{border-bottom:1px solid var(--line-2)}
.acc-body{padding:18px 20px;color:var(--ink-soft)}

/* final decision trio */
.decide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}
@media(max-width:820px){.decide-grid{grid-template-columns:1fr}}
.decide-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s5);box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.decide-card h3{font-size:1.1rem;color:var(--teal-900)}
.decide-card p{color:var(--ink-soft);font-size:.95rem;flex:1;margin:6px 0 var(--s4)}

/* small library teaser */
.lib-teaser{max-width:640px;margin-inline:auto;text-align:center;padding:var(--s6) var(--s5);border-top:1px solid var(--line-2)}
.lib-teaser h3{font-size:1.1rem;color:var(--teal-900)}
.lib-teaser p{color:var(--ink-soft);font-size:.95rem;margin:8px 0 var(--s3)}

/* source / transparency box */
.frame-box{border:1px dashed var(--line);border-radius:var(--radius);padding:var(--s5);background:var(--paper-2)}

/* sticky mobile CTA */
.sticky-cta{display:none}
@media(max-width:820px){
  .sticky-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 14px;background:rgba(11,13,12,.92);backdrop-filter:saturate(140%) blur(10px);border-top:1px solid var(--line);box-shadow:0 -8px 26px rgba(0,0,0,.5)}
  .sticky-cta .btn{width:100%;justify-content:center}
  body{padding-bottom:78px}
}

/* engagement timeline (private-advisory) */
.timeline{list-style:none;padding:0;margin:var(--s5) 0 0;position:relative}
.timeline li{position:relative;padding:0 0 var(--s5) 34px;border-left:2px solid var(--sage-300);margin-left:10px}
.timeline li:last-child{border-left-color:transparent}
.timeline li::before{content:"";position:absolute;left:-9px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--teal-700);border:3px solid var(--paper)}
.timeline h4{color:var(--teal-900);margin-bottom:4px}
.timeline p{color:var(--ink-soft);font-size:.95rem}
