/* Consultation landing page + thank-you page. Scoped .cn-* classes on top of
   the site system (Ink/Paper/Bone, Volt accent, Archivo + Space Mono). */
.cn-hero h1 { max-width: 14ch; }
.cn-brandline {
  margin-top: 1.6rem; display: flex; flex-wrap: wrap; gap: .35rem .7rem; align-items: baseline;
  font-family: var(--mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted-light);
}
.cn-brandline a { color: var(--paper); text-decoration: none; border-bottom: 1px solid var(--volt); }
.cn-brand-name { color: var(--paper); font-weight: 700; }
.cn-brand-sep { color: var(--volt); }

.cn-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
@media (max-width: 900px) { .cn-layout { grid-template-columns: 1fr; } .cn-side { order: 2; } }

/* how it works */
.cn-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin-bottom: 2.2rem; }
.cn-step { border-top: 2px solid var(--ink); padding-top: .7rem; font-size: .88rem; line-height: 1.45; color: var(--muted); }
.cn-step .n { display: block; font-family: var(--mono); font-size: .62rem; font-weight: 700; letter-spacing: .14em; color: var(--volt-deep); margin-bottom: .3rem; }
@media (max-width: 640px) { .cn-steps { grid-template-columns: 1fr; gap: .6rem; } .cn-step { border-top: none; border-left: 2px solid var(--ink); padding: .1rem 0 .1rem .8rem; } }

/* question groups */
.cn-q { border: 0; padding: 0; margin: 0 0 2rem; min-width: 0; }
.cn-q legend, .cn-q > label[for] { display: block; width: 100%; font-family: var(--sans); font-weight: 800; font-stretch: 112%; font-size: 1.12rem; letter-spacing: -.01em; line-height: 1.3; color: var(--ink); margin-bottom: .9rem; padding: 0; text-transform: none; }
.cn-qn { font-family: var(--mono); font-size: .66rem; font-weight: 700; letter-spacing: .16em; color: var(--volt-deep); margin-right: .5rem; vertical-align: .15em; }
.cn-req, .cn-opt { font-family: var(--mono); font-size: .58rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-left: .5rem; vertical-align: .2em; }
.cn-help { margin: .5rem 0 0; font-size: .8rem; color: var(--muted); }

/* goal cards */
.cn-cards { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
@media (max-width: 480px) { .cn-cards { grid-template-columns: 1fr; } }
.cn-card { position: relative; display: block; border: 1px solid var(--line-strong); background: var(--paper); padding: .95rem 1rem .95rem 2.6rem; cursor: pointer; min-height: 64px; transition: border-color .15s ease, background .15s ease; }
.cn-card input { position: absolute; left: 1rem; top: 1.15rem; width: 18px; height: 18px; margin: 0; accent-color: var(--ink); }
.cn-card .t { display: block; font-weight: 700; font-size: .95rem; line-height: 1.3; letter-spacing: -.005em; }
.cn-card .d { display: block; font-size: .78rem; color: var(--muted); margin-top: .2rem; line-height: 1.4; }
.cn-card:hover { border-color: var(--ink); }
.cn-card:has(input:checked) { border-color: var(--ink); background: var(--bone); box-shadow: inset 0 0 0 1px var(--ink); }
.cn-card:has(input:focus-visible) { outline: 2px solid var(--cobalt); outline-offset: 2px; }

/* timeline chips */
.cn-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.cn-chip { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: .6rem 1rem; border: 1px solid var(--line-strong); background: var(--paper); cursor: pointer; font-family: var(--mono); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cn-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cn-chip:hover { border-color: var(--ink); }
.cn-chip:has(input:checked) { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.cn-chip:has(input:focus-visible) { outline: 2px solid var(--cobalt); outline-offset: 2px; }

/* fields + errors */
.cn-page .field input, .cn-page .field textarea { min-height: 48px; font-size: 16px; }   /* 16px: no iOS zoom */
.cn-page .field textarea { min-height: 110px; }
.cn-err { margin: .4rem 0 0; font-family: var(--mono); font-size: .66rem; font-weight: 700; letter-spacing: .06em; color: #b3261e; }
.has-error input, .has-error textarea { border-color: #b3261e; }
.has-error .cn-cards, .has-error .cn-chips { outline: 1px solid #b3261e; outline-offset: 6px; }
.cn-banner { background: #fdecea; border: 1px solid #b3261e; color: #7a1a14; padding: .8rem 1rem; margin-bottom: 1.4rem; font-size: .9rem; }
.cn-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.cn-consent { display: flex; gap: .7rem; align-items: flex-start; margin-top: 1.1rem; font-size: .8rem; line-height: 1.5; color: var(--muted); cursor: pointer; }
.cn-consent input { margin-top: .2rem; width: 18px; height: 18px; flex: none; accent-color: var(--ink); }

.cn-submit { display: flex; flex-wrap: wrap; gap: 1rem 1.4rem; align-items: center; margin-top: .4rem; }
.cn-btn { min-height: 52px; }
.cn-btn[disabled] { opacity: .6; cursor: progress; }
.cn-privacy { margin: 0; font-size: .8rem; color: var(--muted); max-width: 34ch; line-height: 1.5; }
@media (max-width: 640px) { .cn-btn { width: 100%; justify-content: center; } }

/* sidebar */
.cn-card-dark { background: var(--ink); color: var(--paper); padding: clamp(1.4rem, 3vw, 2rem); }
.cn-card-dark h2 { font-family: var(--sans); font-stretch: 125%; font-weight: 900; text-transform: uppercase; letter-spacing: -.02em; line-height: .95; font-size: clamp(1.5rem, 2.6vw, 2rem); margin: .4rem 0 .9rem; }
.cn-card-dark p { color: var(--muted-light); font-size: .92rem; line-height: 1.6; margin: 0 0 1rem; }
.cn-trust { list-style: none; margin: 0; padding: 0; }
.cn-trust li { padding: .7rem 0 .7rem 1.2rem; border-top: 1px solid var(--line-light); font-size: .88rem; line-height: 1.45; position: relative; }
.cn-trust li::before { content: ""; position: absolute; left: 0; top: 1.15rem; width: 7px; height: 7px; background: var(--volt); }
.cn-contact { margin-top: 1.4rem; padding: 1.4rem; border: 1px solid var(--ink); }
.cn-phone { display: inline-block; margin: .6rem 0 .3rem; font-family: var(--sans); font-stretch: 112%; font-weight: 900; font-size: 1.6rem; letter-spacing: -.02em; color: var(--ink); text-decoration: none; }
.cn-contact p { margin: 0 0 .5rem; font-size: .88rem; color: var(--muted); }
.cn-contact p a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--volt); }
.cn-social { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1rem; }
.cn-page .page-hero .hero-sub a { color: var(--paper); text-decoration: none; border-bottom: 1px solid var(--volt); }
.cn-license { font-size: .62rem; letter-spacing: .06em; line-height: 1.8; margin-top: .8rem !important; }

/* thank-you page */
.ty-wrap { max-width: 760px; }
.ty-msg { font-size: 1.05rem; line-height: 1.65; color: var(--ink); max-width: 58ch; }
.ty-video { margin: 2.2rem 0; border: 1px solid var(--ink); background: var(--ink); }
.ty-video iframe, .ty-video video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.ty-video[hidden], #tyBookBtn[hidden] { display: none !important; }
.ty-book { margin-top: 2.4rem; padding: clamp(1.4rem, 3vw, 2rem); border: 1px solid var(--ink); display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between; }
.ty-book h2 { font-family: var(--sans); font-stretch: 125%; font-weight: 900; text-transform: uppercase; letter-spacing: -.02em; line-height: .95; font-size: clamp(1.3rem, 2.4vw, 1.7rem); margin: 0 0 .4rem; }
.ty-book p { margin: 0; color: var(--muted); font-size: .92rem; }
.ty-alt { display: flex; flex-wrap: wrap; gap: .6rem; }
.ty-next { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: .6rem; }
