/* EMAN GROUP — Smart Contact Assistant Minimal v3
   Mockup-aligned, single-column, no dashboard/card UI. */
.ca-page{
  --ca-blue:#0f63f6;
  --ca-blue-dark:#084fd0;
  --ca-text:#0b1426;
  --ca-muted:#657186;
  --ca-line:#dce2ea;
  --ca-soft:#f7f9fc;
  --ca-white:#fff;
  --ca-corner:2px;
  --ca-corner-small:2px;
  background:#fff;
  color:var(--ca-text);
}

.ca-container{
  width:min(780px,calc(100% - 40px));
  margin-inline:auto;
}

/* Intro */
.ca-intro{
  padding:clamp(72px,8vw,118px) 0 44px;
  text-align:center;
}
.ca-kicker,.ca-step-label{
  margin:0 0 20px;
  color:var(--ca-blue);
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.ca-intro h1{
  max-width:920px;
  margin:0 auto;
  font-size:clamp(46px,5.6vw,76px);
  line-height:1;
  letter-spacing:-.058em;
  font-weight:760;
}
.ca-lead{
  max-width:650px;
  margin:24px auto 0;
  color:var(--ca-muted);
  font-size:clamp(17px,1.6vw,20px);
  line-height:1.55;
}
.ca-trustline{display:none!important}

/* Main assistant — deliberately not a card */
.ca-assistant{
  padding:18px 0 22px;
}
.ca-status{
  display:flex;
  justify-content:flex-end;
  min-height:20px;
  margin:0 0 10px;
  color:var(--ca-muted);
  font-size:13px;
}
.ca-status [data-ca-status]{display:none}
.ca-progress{
  height:2px;
  margin:0 0 34px;
  overflow:hidden;
  background:#e6eaf0;
}
.ca-progress span{
  display:block;
  width:12%;
  height:100%;
  background:var(--ca-blue);
  transition:width .28s ease;
}
.ca-stage{
  min-height:390px;
}
.ca-stage .ca-step-label{display:none}
.ca-stage h2{
  max-width:760px;
  margin:0;
  font-size:clamp(25px,3vw,34px);
  line-height:1.18;
  letter-spacing:-.035em;
  font-weight:680;
}
.ca-help{
  max-width:680px;
  margin:10px 0 22px;
  color:var(--ca-muted);
  font-size:15px;
  line-height:1.6;
}

/* Fields */
.ca-field{
  display:grid;
  gap:8px;
  margin:0 0 18px;
}
.ca-field__label{
  font-size:14px;
  font-weight:700;
}
.ca-stage[data-ca-stage="intro"] .ca-field__label{display:none}
.ca-field__label em{
  color:var(--ca-muted);
  font-style:normal;
  font-weight:500;
}
.ca-field textarea,.ca-field input{
  width:100%;
  border:1px solid #cfd6e0;
  border-radius:var(--ca-corner);
  background:#fff;
  color:var(--ca-text);
  font:inherit;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.ca-field textarea{
  min-height:160px;
  padding:18px;
  resize:vertical;
  font-size:16px;
  line-height:1.6;
}
.ca-field input{
  height:50px;
  padding:0 14px;
}
.ca-field textarea:focus,.ca-field input:focus{
  border-color:var(--ca-blue);
  box-shadow:0 0 0 4px rgba(15,99,246,.10);
}
.ca-field small{
  justify-self:end;
  margin-top:-3px;
  color:var(--ca-muted);
  font-size:12px;
}

/* Suggestions: quiet, compact, secondary */
.ca-quick{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  margin:4px 0 0;
}
.ca-quick button,.ca-option{
  appearance:none;
  border:1px solid #d5dce6;
  border-radius:var(--ca-corner-small);
  background:#fff;
  color:#4b586d;
  cursor:pointer;
  font:inherit;
  font-size:13px;
  text-align:left;
  transition:border-color .18s ease,color .18s ease,background .18s ease;
}
.ca-quick button{
  padding:10px 16px;
}
.ca-quick button:hover,.ca-option:hover{
  border-color:#9ab8f4;
  color:var(--ca-blue-dark);
  background:#fbfdff;
}
.ca-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.ca-option{
  min-height:56px;
  padding:14px 16px;
}
.ca-option.is-selected{
  border-color:var(--ca-blue);
  color:#073c9f;
  background:#f2f6ff;
  box-shadow:inset 3px 0 0 var(--ca-blue);
}

/* Actions and quiet privacy row */
.ca-nav{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:28px;
  padding-top:20px;
  border-top:1px solid #e7ebf1;
}
.ca-nav--end{
  justify-content:flex-end;
  border-top:0;
  padding-top:0;
}
.ca-stage[data-ca-stage="intro"] .ca-nav--end{
  margin-top:26px;
}
.ca-stage[data-ca-stage="intro"] .ca-nav--end::before{
  content:"🔒  Vertraulich verarbeitet. Rückmeldung meist innerhalb eines Werktags.";
  margin-right:auto;
  color:var(--ca-muted);
  font-size:12px;
  line-height:1.45;
}
.ca-primary,.ca-secondary{
  min-height:48px;
  padding:0 20px;
  border-radius:var(--ca-corner);
  font:inherit;
  font-size:14px;
  font-weight:750;
  cursor:pointer;
}
.ca-primary{
  border:1px solid var(--ca-blue);
  background:var(--ca-blue);
  color:#fff;
  box-shadow:0 6px 16px rgba(15,99,246,.14);
}
.ca-primary:hover{
  border-color:var(--ca-blue-dark);
  background:var(--ca-blue-dark);
}
.ca-primary:disabled{opacity:.6;cursor:not-allowed}
.ca-secondary{
  border:1px solid #d2d9e3;
  background:#fff;
  color:#344158;
}
.ca-secondary:hover{background:#f8fafc}

/* Summary and contact steps */
.ca-summary{
  margin:28px 0 0;
  border-top:1px solid var(--ca-line);
}
.ca-summary__row{
  display:grid;
  grid-template-columns:170px 1fr;
  gap:24px;
  padding:17px 0;
  border-bottom:1px solid var(--ca-line);
}
.ca-summary dt{font-size:13px;color:var(--ca-muted)}
.ca-summary dd{margin:0;color:var(--ca-text);line-height:1.55}
.ca-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.ca-optional{
  margin:8px 0 24px;
  border-top:1px solid var(--ca-line);
  border-bottom:1px solid var(--ca-line);
}
.ca-optional summary{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:16px 2px;
  cursor:pointer;
  font-weight:700;
}
.ca-optional summary span{color:var(--ca-muted);font-weight:500}
.ca-file-area{padding:0 0 18px}
.ca-file-area input[type=file]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.ca-file-button{
  display:inline-flex;
  min-height:42px;
  align-items:center;
  padding:0 14px;
  border:1px solid #cfd6e0;
  border-radius:var(--ca-corner-small);
  cursor:pointer;
  background:#fff;
}
.ca-file-area p{margin:10px 0 0;color:var(--ca-muted);font-size:12px}
.ca-consent{display:flex;gap:12px;align-items:flex-start;color:#445067;font-size:13px;line-height:1.55}
.ca-consent input{margin-top:3px}
.ca-consent a{color:var(--ca-blue);text-decoration:underline;text-underline-offset:2px}
.ca-footnote{margin:18px 0 0;color:var(--ca-muted);font-size:12px}
.ca-message{margin:0 0 24px;padding:13px 14px;border-left:3px solid}
.ca-message--error{background:#fff3f2;border-color:#c5221f;color:#7a1714}
.ca-message--success{background:#effaf3;border-color:#168447;color:#0c5730}
.ca-honeypot{position:absolute!important;left:-9999px!important}
.ca-input-error{border-color:#c5221f!important}
.ca-stage[hidden]{display:none!important}

/* Nearly square geometry: subtly softened corners across the contact flow */
.ca-assistant,
.ca-stage,
.ca-summary,
.ca-optional,
.ca-faq details{
  border-radius:var(--ca-corner);
}
.ca-consent input[type="checkbox"],
.ca-stage select{
  border-radius:var(--ca-corner-small);
}

/* Direct contact */
.ca-direct{
  padding:0 0 52px;
}
.ca-direct .ca-container{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  padding-top:22px;
  border-top:1px solid #e7ebf1;
}
.ca-direct p{margin:0;color:var(--ca-muted);font-size:14px}
.ca-direct a{
  color:var(--ca-blue);
  font-size:14px;
  font-weight:700;
  border-bottom:1px solid currentColor;
}
.ca-direct a::after{content:"  →"}

/* Minimal FAQ */
.ca-faq{
  padding:4px 0 90px;
}
.ca-faq__title{
  margin:0 0 20px;
  text-align:center;
  color:#667286;
  font-size:11px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.ca-faq details{
  border-bottom:1px solid #dfe4eb;
}
.ca-faq details:first-of-type{border-top:1px solid #dfe4eb}
.ca-faq summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:54px;
  padding:0 4px;
  list-style:none;
  cursor:pointer;
  color:#152033;
  font-size:14px;
  font-weight:600;
}
.ca-faq summary::-webkit-details-marker{display:none}
.ca-faq summary::after{content:"⌄";font-size:18px;font-weight:400}
.ca-faq details[open] summary::after{transform:rotate(180deg)}
.ca-faq__answer{padding:0 4px 18px;color:var(--ca-muted);font-size:14px;line-height:1.65}
.ca-faq__answer p{margin:0}

@media(max-width:720px){
  .ca-container{width:min(100% - 28px,780px)}
  .ca-intro{padding:54px 0 30px}
  .ca-intro h1{font-size:clamp(40px,11.8vw,58px)}
  .ca-lead{font-size:16px}
  .ca-assistant{padding-top:10px}
  .ca-progress{margin-bottom:28px}
  .ca-stage{min-height:0}
  .ca-stage h2{font-size:clamp(27px,8vw,36px)}
  .ca-options,.ca-grid{grid-template-columns:1fr}
  .ca-option{min-height:52px}
  .ca-quick{gap:8px}
  .ca-quick button{padding:9px 12px}
  .ca-nav{align-items:stretch}
  .ca-nav--end{flex-wrap:wrap}
  .ca-stage[data-ca-stage="intro"] .ca-nav--end::before{width:100%;margin:0 0 4px}
  .ca-primary,.ca-secondary{flex:1}
  .ca-nav--end .ca-primary{flex:0 0 auto}
  .ca-summary__row{grid-template-columns:1fr;gap:7px}
  .ca-direct .ca-container{flex-wrap:wrap}
  .ca-faq{padding-bottom:60px}
}

@media(prefers-reduced-motion:reduce){
  .ca-progress span,.ca-field textarea,.ca-field input,.ca-quick button,.ca-option{transition:none!important}
}


/* ==========================================================
   SHARP GEOMETRY V6 — definitive nearly-square contact UI
   Overrides shared/global radius rules without changing layout.
   ========================================================== */
.ca-page :is(
  .ca-field textarea,
  .ca-field input,
  .ca-stage select,
  .ca-quick button,
  .ca-option,
  .ca-primary,
  .ca-secondary,
  .ca-file-button,
  .ca-message,
  .ca-optional,
  .ca-summary,
  .ca-faq details,
  button,
  input,
  textarea,
  select
){
  border-radius:2px !important;
}

.ca-page :is(
  .ca-assistant,
  .ca-stage,
  .ca-container,
  .ca-summary__row,
  .ca-direct,
  .ca-faq
){
  border-radius:0 !important;
}

.ca-page .ca-consent input[type="checkbox"]{
  border-radius:1px !important;
}

/* Buttons: clean labels, no arrow glyphs or generated arrows. */
.ca-page :is(.ca-primary,.ca-secondary)::before,
.ca-page :is(.ca-primary,.ca-secondary)::after,
.ca-page [data-ca-start] span,
.ca-page [data-ca-next] span,
.ca-page [data-ca-contact] span,
.ca-page [data-ca-submit] span{
  content:none !important;
  display:none !important;
}

.ca-page .ca-direct a::after{
  content:none !important;
  display:none !important;
}


/* ==========================================================
   1PX GEOMETRY V7 — buttons and selectable options
   Keeps the existing layout and interaction unchanged.
   ========================================================== */
.ca-page :is(
  .ca-primary,
  .ca-secondary,
  .ca-file-button,
  .ca-quick button,
  .ca-option,
  button[data-ca-start],
  button[data-ca-next],
  button[data-ca-back],
  button[data-ca-contact],
  button[data-ca-submit],
  input[type="button"],
  input[type="submit"],
  input[type="reset"]
){
  border-radius:1px !important;
}

.ca-page :is(
  .ca-options,
  .ca-quick
) :is(
  button,
  label,
  .ca-option
){
  border-radius:1px !important;
}

.ca-page :is(
  input[type="checkbox"],
  input[type="radio"]
){
  border-radius:1px !important;
}

/* ==========================================================
   V8 — nearly-square but visibly softened controls
   4px for buttons/options, 2px for checkbox/radio.
   ========================================================== */
.ca-page :is(
  .ca-primary,
  .ca-secondary,
  .ca-file-button,
  .ca-quick button,
  .ca-option,
  button[data-ca-start],
  button[data-ca-next],
  button[data-ca-back],
  button[data-ca-contact],
  button[data-ca-submit],
  input[type="button"],
  input[type="submit"],
  input[type="reset"]
){
  border-radius:4px !important;
}

.ca-page :is(
  .ca-options,
  .ca-quick
) :is(
  button,
  label,
  .ca-option
){
  border-radius:4px !important;
}

.ca-page :is(
  input[type="checkbox"],
  input[type="radio"]
){
  border-radius:2px !important;
}
