/* Ambassadors page. Flat colour, hairlines, square corners. Extends pr.css; every class here is prefixed amb-. */

:root { --amb-err: #ff6b70; }

.amb-who { display: grid; gap: 22px; margin-top: clamp(40px, 6vw, 72px); }

.amb-layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.amb-side { position: sticky; top: 96px; }
.amb-side .k { margin-bottom: 18px; }
.amb-side .amb-note { margin-top: 24px; color: var(--mute); font-size: 0.98rem; }
.amb-side .amb-note a { color: #fff; border-bottom: 1px solid var(--red); overflow-wrap: anywhere; }
.amb-main > .k { margin-bottom: 18px; }
.amb-h { font-size: clamp(2.2rem, 5vw, 3.8rem); margin-bottom: clamp(28px, 4vw, 48px); }

/* Form needs script; without it show the email fallback only. */
html:not(.js) .amb-form { display: none; }
.amb-nojs { max-width: 44rem; }
.amb-nojs a { color: #fff; border-bottom: 1px solid var(--red); overflow-wrap: anywhere; }
.js .amb-nojs { display: none; }

.amb-form { display: grid; gap: 48px; }
.amb-form [hidden], .amb-done[hidden], .amb-form[hidden] { display: none !important; }
.amb-fs { border: 0; margin: 0; padding: 0; min-width: 0; }
.amb-fs > legend { padding: 0; margin: 0 0 20px; float: none; width: 100%; }
.amb-fs > * + * { margin-top: 22px; }
.amb-fs > legend + * { margin-top: 0; }

/* Fields */
.amb-f { display: grid; gap: 8px; min-width: 0; }
.amb-f > label, .amb-lab { font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mute); line-height: 1.5; }
.amb-f > label i, .amb-lab i { font-style: normal; color: #6f6f78; }
.amb-form input[type="text"], .amb-form input[type="email"], .amb-form input[type="tel"], .amb-form select, .amb-form textarea {
  width: 100%; height: 52px; padding: 0 16px; background: var(--s1); color: var(--text);
  border: 1px solid #55555c; border-radius: 0; font: inherit; font-size: 1rem; line-height: 1.3;
  -webkit-appearance: none; appearance: none;
}
.amb-form textarea { height: auto; min-height: 120px; padding: 14px 16px; resize: vertical; }
.amb-form select { padding-right: 44px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%239a9aa2' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; background-size: 12px 8px; }
.amb-form select:disabled { opacity: 0.6; cursor: not-allowed; }
.amb-form select option, .amb-form select optgroup { background: var(--s1); color: var(--text); }
.amb-form input:focus-visible, .amb-form select:focus-visible, .amb-form textarea:focus-visible { outline: 2px solid #fff; outline-offset: 2px; border-color: #fff; }
.amb-form input::placeholder, .amb-form textarea::placeholder { color: #6f6f78; }
.amb-form [aria-invalid="true"] { border-color: var(--amb-err) !important; }
.amb-hint { color: var(--mute); font-size: 0.88rem; max-width: 40em; }
.amb-err { color: var(--amb-err); font-size: 0.92rem; font-weight: 600; max-width: 40em; }
.amb-err--form { padding: 14px 18px; border: 1px solid var(--amb-err); }
.amb-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }

/* Checkboxes */
.amb-langs { display: flex; flex-wrap: wrap; gap: 14px 32px; }
.amb-chk { display: grid; grid-template-columns: 22px auto; gap: 12px; align-items: center; cursor: pointer; }
.amb-chk input { -webkit-appearance: none; appearance: none; width: 22px; height: 22px; margin: 0; background: var(--s1); border: 1px solid #55555c; border-radius: 0; cursor: pointer; position: relative; }
.amb-chk input:checked { background: var(--red); border-color: var(--red); }
.amb-chk input:checked::after { content: ""; position: absolute; left: 5px; top: 5px; width: 10px; height: 5px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
.amb-chk input:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.amb-chk span { font-weight: 600; }

/* Honeypot: off-screen, not display:none, so naive bots still fill it */
.amb-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.amb-consent { color: var(--mute); font-size: 0.88rem; max-width: 40em; }
.amb-consent a { color: #fff; border-bottom: 1px solid var(--red); }
.amb-send-box .amb-err--form { margin-top: 18px; }
.amb-send { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 22px; }
.amb-send .btn { min-width: 16rem; justify-content: space-between; }
.amb-form .btn:disabled { opacity: 0.55; cursor: progress; }
.amb-form .btn:disabled:hover { background: var(--red); color: #fff; border-color: var(--red); }
.amb-form .btn:disabled:hover svg { transform: none; }

/* Confirmation */
.amb-done { border: 1px solid var(--line); background: var(--s1); padding: clamp(24px, 4vw, 48px); display: grid; gap: 36px; }
.amb-done:focus { outline: none; }
.amb-done h2 { font-size: clamp(2.6rem, 6vw, 4.6rem); }
.amb-done .lede { max-width: 40em; }
.amb-done .k { margin-bottom: 14px; }
.amb-ref { display: inline-block; max-width: 100%; font-family: var(--mono); font-weight: 500; font-size: clamp(1.9rem, 6.4vw, 3.6rem); letter-spacing: 0.08em; line-height: 1.1; color: #fff; border: 1px solid var(--red); padding: 18px 22px; word-break: break-all; }
.amb-ref-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.amb-ref-row + .amb-hint { margin-top: 14px; }
.amb-next { margin: 0; }
.amb-alt { color: var(--mute); max-width: 40em; }
.amb-alt a { color: #fff; border-bottom: 1px solid var(--red); overflow-wrap: anywhere; }
.amb-actions { display: flex; flex-wrap: wrap; gap: 12px; }

@media (max-width: 980px) {
  .amb-layout { grid-template-columns: 1fr; }
  .amb-side { position: static; }
}
@media (max-width: 560px) {
  .amb-row2 { grid-template-columns: 1fr; }
  .amb-send .btn { width: 100%; min-width: 0; }
  .amb-actions .btn { width: 100%; justify-content: space-between; }
}
