/* Chronition Contact Form
   Colours follow the theme's tokens when present (e.g. the Terrain
   --og-* variables), otherwise neutral defaults. Override any --ccf-*
   variable in your theme to restyle. */

.ccf-wrap{
  --ccf-accent: var(--og-maroon, #7B1E1E);
  --ccf-accent-dk: var(--og-maroon-dk, #5E1616);
  --ccf-ink: var(--og-ink, #1d2327);
  --ccf-text: var(--og-text, #3c434a);
  --ccf-muted: var(--og-muted, #646970);
  --ccf-line: var(--og-line, #dcdcde);
  --ccf-bg: #ffffff;
  --ccf-soft: var(--og-parch, #f6f7f7);
  --ccf-focus: var(--og-river, #2271b1);
  --ccf-focus-lt: var(--og-river-lt, #e5f0fa);
  --ccf-ok: var(--og-forest, #2e7d4f);
  --ccf-radius: var(--og-radius, 6px);
  --ccf-font: var(--og-ui, inherit);

  max-width: 720px;
  margin: 2em 0;
  font-family: var(--ccf-font);
  color: var(--ccf-text);
}

.ccf-title{
  margin: 0 0 .8em;
  font-family: var(--og-head, inherit);
  color: var(--ccf-ink);
}

.ccf-form{
  padding: 28px 28px 22px;
  background: var(--ccf-bg);
  border: 1px solid var(--ccf-line);
  border-top: 4px solid var(--ccf-accent);
  border-radius: var(--ccf-radius);
  box-shadow: var(--og-shadow, 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06));
}

.ccf-row--half{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 18px;
}

.ccf-field{ margin: 0 0 18px; }

.ccf-field > label{
  display: block;
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .01em;
  color: var(--ccf-ink);
}

.ccf-req{ color: var(--ccf-accent); }
.ccf-opt{ font-weight: 400; color: var(--ccf-muted); font-size: 13px; }

.ccf-form input[type="text"],
.ccf-form input[type="email"],
.ccf-form input[type="url"],
.ccf-form select,
.ccf-form textarea{
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 11px 14px;
  font: inherit;
  font-size: 16px; /* prevents iOS zoom */
  line-height: 1.45;
  color: var(--ccf-ink);
  background: var(--ccf-bg);
  border: 1px solid var(--ccf-line);
  border-radius: var(--ccf-radius);
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.ccf-form textarea{ min-height: 150px; resize: vertical; }

.ccf-form select{
  appearance: none;
  -webkit-appearance: none;
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23646970' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}

.ccf-form input:focus,
.ccf-form select:focus,
.ccf-form textarea:focus{
  outline: none;
  border-color: var(--ccf-focus);
  box-shadow: 0 0 0 3px var(--ccf-focus-lt);
}

.ccf-form [aria-invalid="true"]{
  border-color: #b32d2e;
  box-shadow: 0 0 0 3px rgba(179,45,46,.12);
}

/* Correction source: shown only for the correction type (JS) */
.ccf-source[hidden]{ display: none; }

/* Consent */
.ccf-consent label{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.55;
  color: var(--ccf-muted);
  cursor: pointer;
}
.ccf-consent input{
  flex: none;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: var(--ccf-accent);
}
.ccf-consent a{ color: var(--ccf-accent); font-weight: 600; }

/* Honeypot: off-screen, not display:none (some bots skip hidden fields) */
.ccf-hp{
  position: absolute !important;
  left: -9999px !important;
  width: 1px; height: 1px;
  overflow: hidden;
}

/* Actions */
.ccf-actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 18px;
  margin-top: 6px;
}

.ccf-submit{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .03em;
  color: #fff;
  background: var(--ccf-accent);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(123,30,30,.22);
  transition: background-color .2s ease, transform .2s ease;
}
.ccf-submit:hover{ background: var(--ccf-accent-dk); transform: translateY(-1px); }
.ccf-submit:focus-visible{ outline: 2px solid var(--ccf-focus); outline-offset: 3px; }
.ccf-submit[disabled]{ opacity: .7; cursor: wait; transform: none; }
.ccf-submit[disabled]::before{
  content: "";
  width: 14px; height: 14px;
  border: 2px solid rgba(255,255,255,.45);
  border-top-color: #fff;
  border-radius: 50%;
  animation: ccf-spin .7s linear infinite;
}
@keyframes ccf-spin{ to{ transform: rotate(360deg); } }

.ccf-note{ font-size: 13px; color: var(--ccf-muted); }

/* Notices */
.ccf-notice{
  margin: 0 0 18px;
  padding: 16px 20px;
  border-radius: var(--ccf-radius);
  font-size: 15px;
  line-height: 1.55;
}
.ccf-notice[hidden]{ display: none; }
.ccf-notice--success{
  background: #edf7f0;
  border-left: 4px solid var(--ccf-ok);
  color: #1e4d33;
}
.ccf-notice--error{
  background: #fcf0f1;
  border-left: 4px solid #b32d2e;
  color: #7a1f20;
}

.ccf-wrap .cf-turnstile{ min-height: 65px; }

@media (max-width: 600px){
  .ccf-form{ padding: 22px 16px 18px; }
  .ccf-row--half{ grid-template-columns: 1fr; }
  .ccf-submit{ width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce){
  .ccf-submit, .ccf-form input, .ccf-form select, .ccf-form textarea{ transition: none; }
  .ccf-submit[disabled]::before{ animation: none; }
}
