/* ============================================================
   Contact page (broadsheet) — loaded only on /contact/
   ============================================================ */
.ct {
  --ct-ink: #141414;
  --ct-text: #2b2b2b;
  --ct-meta: #6b6b6b;
  --ct-rule: #141414;
  --ct-rule-l: #dedcd6;
  --ct-panel: #f5f4f1;
  --ct-paper: #ffffff;
  --ct-red: #CE1126;
  --ct-green: #006B3F;
  --ct-head: 'Newsreader', 'Source Serif 4', Georgia, serif;
  --ct-ui: 'Libre Franklin', 'Archivo', system-ui, sans-serif;
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 var(--box) 72px;
  color: var(--ct-text);
}
html.dark-mode .ct {
  --ct-ink: #ecebe8;
  --ct-text: #d0cfcb;
  --ct-meta: #9a9aa0;
  --ct-rule: #ecebe8;
  --ct-rule-l: #34353b;
  --ct-panel: #1c1d21;
  --ct-paper: #121316;
  --ct-red: #ff5a6a;
  --ct-green: #3fbf85;
}
.ct a { color: var(--ct-ink); }
.ct a:focus-visible, .ct input:focus-visible, .ct select:focus-visible,
.ct textarea:focus-visible, .ct button:focus-visible { outline: 2px solid var(--ct-red); outline-offset: 2px; }

/* Head */
.ct-head { padding: 56px 0 32px; max-width: 760px; }
.ct-kicker {
  font: 700 12px/1 var(--ct-ui);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ct-red);
  margin: 0 0 16px;
}
.ct-hed {
  font: 700 clamp(38px, 6vw, 64px)/1.03 var(--ct-head);
  letter-spacing: -.02em;
  color: var(--ct-ink);
  margin: 0 0 18px;
}
.ct-dek { font: 400 clamp(18px, 2.2vw, 21px)/1.5 var(--ct-head); margin: 0; max-width: 60ch; }

/* Layout */
.ct-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: 64px;
  border-top: 3px double var(--ct-rule);
  padding-top: 8px;
}
.ct-label {
  font: 800 13px/1 var(--ct-ui);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ct-ink);
  padding: 20px 0 10px;
  border-bottom: 2px solid var(--ct-rule);
  margin: 0 0 20px;
}

/* Form */
.ct-form { display: grid; gap: 20px; }
.ct-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ct-field { display: grid; gap: 8px; }
.ct-field label {
  font: 700 11.5px/1 var(--ct-ui);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ct-ink);
}
.ct-field label span { color: var(--ct-red); }
.ct-field input,
.ct-field select,
.ct-field textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--ct-rule-l);
  border-bottom-color: var(--ct-ink);
  border-radius: 0;
  background: var(--ct-paper);
  color: var(--ct-ink);
  padding: 13px 14px;
  font: 400 17px/1.4 var(--ct-head);
  transition: border-color .15s;
}
.ct-field select {
  appearance: none;
  -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%;
  background-size: 5px 5px;
  background-repeat: no-repeat;
  padding-right: 40px;
}
.ct-field textarea { resize: vertical; min-height: 170px; }
.ct-field input:hover, .ct-field select:hover, .ct-field textarea:hover { border-color: var(--ct-meta); border-bottom-color: var(--ct-ink); }
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus { border-color: var(--ct-ink); outline: none; }

.ct-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 4px; }
.ct-btn {
  display: inline-block;
  padding: 15px 26px;
  border: 1px solid var(--ct-ink);
  border-radius: 0;
  background: transparent;
  font: 700 12px/1 var(--ct-ui);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ct-ink);
  cursor: pointer;
  transition: background-color .15s, border-color .15s, color .15s;
}
.ct-btn--solid { background: var(--ct-ink); color: var(--ct-paper); }
.ct-btn--solid:hover { background: var(--ct-red); border-color: var(--ct-red); color: #fff; }
.ct-small { margin: 0; font: 400 13px/1.5 var(--ct-ui); color: var(--ct-meta); }
.ct .ct-small a { color: var(--ct-meta); text-decoration: underline; }

.ct-notice { padding: 16px 18px; margin: 0 0 20px; font: 400 16px/1.5 var(--ct-head); border-left: 3px solid; background: var(--ct-panel); }
.ct-notice--ok { border-color: var(--ct-green); }
.ct-notice--err { border-color: var(--ct-red); }

/* Sidebar */
.ct-block { padding-bottom: 8px; }
.ct-block p { margin: 0 0 10px; font: 400 16px/1.5 var(--ct-head); color: var(--ct-text); }
.ct .ct-email {
  display: inline-block;
  font: 700 clamp(18px, 2vw, 21px)/1.3 var(--ct-head);
  color: var(--ct-red);
  text-decoration: none;
  margin-bottom: 6px;
  word-break: break-word;
}
.ct .ct-email:hover { text-decoration: underline; }
.ct .ct-link {
  font: 700 12px/1 var(--ct-ui);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ct-red);
  text-decoration: none;
}
.ct-block--panel { background: var(--ct-panel); padding: 0 18px 18px; margin: 12px 0; }
.ct-block--panel .ct-label { border-bottom-width: 1px; }
.ct .ct-social { margin-top: 0; }
.ct .ct-social a { color: var(--ct-ink); border-color: var(--ct-rule-l); }
.ct .ct-social a:hover { color: #fff; background: var(--ct-red); border-color: var(--ct-red); }

/* Advertise page: audience numbers and ways to advertise */
.ct-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 3px double var(--ct-rule);
}
.ct-stat { padding: 22px 20px; border-left: 1px solid var(--ct-rule-l); display: flex; flex-direction: column; gap: 8px; }
.ct-stat:first-child { border-left: 0; padding-left: 0; }
.ct-stat__num { font: 700 clamp(34px, 4.5vw, 48px)/1 var(--ct-head); color: var(--ct-ink); font-variant-numeric: lining-nums tabular-nums; }
.ct-stat__label { font: 600 12px/1.35 var(--ct-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--ct-meta); }
.ct-stats + .ct-grid { border-top: 1px solid var(--ct-rule); }
.ct-offers { list-style: none; margin: 0; padding: 0; }
.ct-offers li { padding: 12px 0; border-bottom: 1px solid var(--ct-rule-l); font: 400 15.5px/1.5 var(--ct-head); color: var(--ct-text); }
.ct-offers li:first-child { padding-top: 0; }
.ct-offers strong { display: block; font: 700 18px/1.3 var(--ct-head); color: var(--ct-ink); margin-bottom: 2px; }

/* Phones and tablets */
@media (max-width: 900px) {
  .ct-stats { grid-template-columns: 1fr 1fr; }
  .ct-stat { padding: 18px 14px; }
  .ct-stat:nth-child(odd) { border-left: 0; padding-left: 0; }
  .ct-stat:nth-child(3) { border-top: 1px solid var(--ct-rule-l); }
  .ct { padding: 0 16px 110px; }
  .ct-head { padding: 32px 0 24px; }
  .ct-grid { grid-template-columns: 1fr; gap: 16px; }
  .ct-row { grid-template-columns: 1fr; }
  .ct-actions .ct-btn { width: 100%; }
}
