/* Press-hosted submission pages, themed to match each imprint's page on edgeandbusby.com
   (Andy, Nov 9, 2026). Colours, fonts and logos come from the press website. The page starts in
   the Edge & Busby colours; hive-api.js switches the body class once it knows the call's imprint. */
@font-face { font-family: "Playfair Display"; src: url("playfair-display-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Playfair Display"; src: url("playfair-display-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Crimson Pro"; src: url("crimson-pro-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Crimson Pro"; src: url("crimson-pro-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Crimson Pro"; src: url("crimson-pro-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Fraunces"; src: url("fraunces-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }

:root {
  --black: #0b0907; --cream: #ece6d6; --muted: #b9b09c;
  --gold: #b5a06a; --gold-bright: #cdb77c; --error: #f0a197;
  --page-bg: #221d18; --panel: #2b241d; --line: #3a3127;
  --heading: "Playfair Display", Georgia, serif; --body: "Crimson Pro", Georgia, serif;
}
body.theme-eb         { --page-bg: #221d18; --panel: #2b241d; --line: #3a3127; }
body.theme-honeythief { --page-bg: #3a2817; --panel: #452f1b; --line: #5a4026; }
body.theme-sweetrot   { --page-bg: #471619; --panel: #3a1113; --line: #6a2a2d; --heading: "Fraunces", Georgia, serif; }
body.theme-oneshots   { --page-bg: #1b2740; --panel: #0a0d17; --line: #2e3d5e; }

* { box-sizing: border-box; }
html { background: var(--page-bg); }
body { margin: 0; background: var(--page-bg); color: var(--cream); font-family: var(--body); font-size: 20px; line-height: 1.55; -webkit-font-smoothing: antialiased; transition: background-color 0.2s ease; }
main { max-width: 680px; margin: 0 auto; padding: 36px 22px 72px; }
h1 { font-family: var(--heading); font-weight: 400; color: var(--gold); font-size: 38px; line-height: 1.15; margin: 0 0 10px; text-align: center; overflow-wrap: anywhere; }
body.theme-sweetrot h1 { font-style: italic; }
.lede { color: var(--muted); margin: 0 0 30px; text-align: center; overflow-wrap: anywhere; }
a { color: var(--gold-bright); }

/* masthead: the imprint's logo, centred, linking back to its page */
.masthead { margin: 0 0 30px; padding-bottom: 26px; border-bottom: 1px solid var(--line); text-align: center; }
.masthead a { display: inline-block; color: var(--cream); text-decoration: none; font-family: var(--heading); font-size: 22px; letter-spacing: 0.06em; text-transform: uppercase; }
.masthead a:hover, .masthead a:focus { color: var(--gold-bright); }
.masthead img { display: block; margin: 0 auto; height: auto; width: min(360px, 80vw); }
body.theme-eb .masthead img { width: min(150px, 40vw); }
body.theme-sweetrot .masthead img { width: min(120px, 34vw); }

label { display: block; font-weight: 600; margin: 24px 0 6px; }
.hint { display: block; font-weight: 400; color: var(--muted); font-size: 17px; margin-top: 2px; }
input[type=text], input[type=email], select, textarea {
  width: 100%; padding: 12px; font: inherit; font-size: 18px; color: var(--cream); background: var(--panel);
  border: 1px solid var(--line); border-radius: 2px;
}
input::placeholder, textarea::placeholder { color: var(--muted); }
select option { background: var(--panel); color: var(--cream); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold); }
textarea { min-height: 180px; resize: vertical; }
textarea.short { min-height: 90px; }
input[type=file] { font: inherit; font-size: 17px; color: var(--cream); max-width: 100%; }
input[type=file]::file-selector-button { font: inherit; font-size: 16px; margin-right: 12px; padding: 8px 14px; color: var(--black); background: var(--gold); border: 0; border-radius: 2px; cursor: pointer; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

button, a.button {
  display: inline-block; margin-top: 30px; padding: 15px 30px; font-family: var(--body); font-weight: 600; font-size: 16px;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--black); background: var(--gold);
  border: 0; border-radius: 2px; cursor: pointer; text-decoration: none; transition: background 0.15s ease;
}
button:hover, button:focus, a.button:hover, a.button:focus { background: var(--gold-bright); }
button[disabled] { opacity: 0.6; cursor: default; }
#go { display: block; margin-left: auto; margin-right: auto; }
#sendingNote { text-align: center; }
.errors { margin-top: 20px; color: var(--error); padding-left: 20px; }
.errors:empty { display: none; }
.errors li { margin-bottom: 4px; }
.done { margin-top: 12px; }
.ts { margin-top: 26px; min-height: 65px; text-align: center; }
.back { margin-top: 34px; text-align: center; }
.back a.button { margin-top: 0; }
.env { display: inline-block; margin-bottom: 16px; padding: 2px 10px; font-size: 15px; font-weight: 600; letter-spacing: 0.05em; color: #fff; background: #a63a2f; border-radius: 2px; }

fieldset.tips { margin: 30px 0 0; padding: 16px 18px 18px; border: 1px solid var(--line); border-radius: 2px; background: var(--panel); }
fieldset.tips legend { font-family: var(--heading); color: var(--gold); padding: 0 8px; font-size: 21px; }
body.theme-sweetrot fieldset.tips legend { font-style: italic; }
fieldset.tips .hint { margin: 0; }
.tipChoices { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.tipChoices label { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 8px 14px; font-weight: 400; border: 1px solid var(--line); border-radius: 2px; cursor: pointer; }
.tipChoices input { width: 18px; height: 18px; margin: 0; accent-color: var(--gold); }
.tipChoices label:has(input:checked) { border-color: var(--gold); color: var(--gold-bright); font-weight: 600; }
.tipDone { margin-top: 22px; padding: 16px 18px; border: 1px solid var(--gold); border-radius: 2px; background: var(--panel); }
.tipDone a.button { margin-top: 4px; }
[hidden] { display: none !important; }
