/* Public newsletter pages (unsubscribe / confirm) and the sign-up shortcode. */

.sn-public { padding: 72px 16px 96px; }
.sn-public__card { max-width: 560px; margin: 0 auto; padding: 40px 36px; border-radius: 12px; background: #fff; box-shadow: 0 6px 30px rgba(20, 50, 70, .08); text-align: center; }
.sn-public__card h1 { margin: 0 0 16px; font-size: 30px; line-height: 1.25; }
.sn-public__card p { margin: 0 0 18px; }
.sn-public__btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px;
	border: 0; border-radius: 10px; background: #256cae; color: #fff !important; font: inherit; font-weight: 700;
	text-decoration: none; text-transform: uppercase; letter-spacing: .5px; cursor: pointer;
}
.sn-public__btn:hover { background: #1b5287; }
.sn-public__small { font-size: 15px; color: #5f6b75; }
.sn-public__link { padding: 0; border: 0; background: none; color: #256cae; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; text-transform: none; letter-spacing: 0; }

.sn-signup { max-width: 520px; }
.sn-signup__title { margin: 0 0 8px; }
.sn-signup__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.sn-signup__field { margin: 0 0 12px; }
.sn-signup__field label { display: block; margin: 0 0 4px; font-weight: 600; }
.sn-signup__field input { width: 100%; min-height: 46px; padding: 8px 12px; border: 1px solid #c3ced6; border-radius: 8px; font: inherit; }
.sn-signup__submit { margin: 4px 0 8px; }
.sn-signup__submit button { min-height: 46px; padding: 0 26px; border: 0; border-radius: 10px; background: #256cae; color: #fff; font: inherit; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; cursor: pointer; }
.sn-signup__submit button:hover { background: #1b5287; }
.sn-signup__fine { font-size: 14px; opacity: .8; }
.sn-signup__msg { padding: 10px 14px; border-radius: 8px; }
.sn-signup__msg--ok { background: #e3f6ec; color: #054f30; }
.sn-signup__msg--error { background: #fde8e7; color: #8f1c13; }

/* Public newsletter archive ------------------------------------------------ */
.sn-archive { padding: 48px 16px 88px; }
.sn-archive__inner { max-width: 760px; margin: 0 auto; }
.sn-archive__h1 { max-width: 760px; margin: 48px auto 0; padding: 0 16px; }
.sn-archive__intro { margin: 0 0 32px; font-size: 19px; }
.sn-archive__empty { padding: 32px; border-radius: 12px; background: #fff; text-align: center; }
.sn-archive__list { margin: 0; padding: 0; list-style: none; }
.sn-archive__item { margin: 0 0 20px; padding: 26px 30px; border-radius: 12px; background: #fff; box-shadow: 0 4px 22px rgba(20, 50, 70, .06); }
.sn-archive__item::marker { content: none; }
.sn-archive__date { display: block; margin: 0 0 6px; color: #5f6b75; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }
.sn-archive__title { margin: 0 0 8px; font-size: 26px; line-height: 1.3; }
.sn-archive__title a { color: inherit; text-decoration: none; }
.sn-archive__title a:hover { color: #256cae; text-decoration: underline; text-underline-offset: 3px; }
.sn-archive__excerpt { margin: 0 0 12px; color: #4a565f; }
.sn-archive__more { font-weight: 700; color: #256cae; }
.sn-archive__pager { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 32px 0 0; font-weight: 600; }
.sn-archive__pager a { display: inline-flex; align-items: center; min-height: 44px; color: #256cae; }
.sn-archive__meta { margin: 0 0 20px; color: #5f6b75; font-size: 15px; }
.sn-archive__meta a { color: #256cae; font-weight: 600; }
.sn-archive__signup { margin: 56px 0 0; padding: 32px; border-radius: 12px; background: #fff; box-shadow: 0 4px 22px rgba(20, 50, 70, .06); }
.sn-archive__signup .sn-signup { max-width: none; }

/* The email body, shown inline. Reset theme table/heading styles so the
   newsletter looks the same as it did in the inbox. */
.sn-web { overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 4px 22px rgba(20, 50, 70, .06); }
.sn-web table { border: 0; border-collapse: collapse; }
.sn-web .sn-web__table { width: 100%; margin: 0; }
.sn-web td { border: 0; vertical-align: top; }
.sn-web h1, .sn-web h2, .sn-web h3, .sn-web p { max-width: none; text-transform: none; letter-spacing: 0; }
.sn-web strong, .sn-web b { color: inherit; }
.sn-web img { max-width: 100%; height: auto; }
.sn-web ul, .sn-web ol { list-style-position: outside; }
@media (max-width: 620px) {
	.sn-web .sn-pad { padding-left: 20px !important; padding-right: 20px !important; }
	.sn-archive__item { padding: 22px 20px; }
	.sn-archive__title { font-size: 22px; }
	.sn-archive__signup { padding: 24px 20px; }
}

/* Sign-up: inline layout (name, email and button on one row on wide screens) */
.sn-signup--inline { max-width: none; }
.sn-signup--inline .sn-signup__form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 0 12px; align-items: end; }
.sn-signup--inline .sn-signup__field, .sn-signup--inline .sn-signup__submit { margin: 0; }
.sn-signup--inline .sn-signup__field input, .sn-signup--inline .sn-signup__submit button { min-height: 48px; }
.sn-signup--inline .sn-signup__fine { grid-column: 1 / -1; margin: 12px 0 0; }
@media (max-width: 767px) {
	.sn-signup--inline .sn-signup__form { grid-template-columns: 1fr; gap: 12px; }
	.sn-signup--inline .sn-signup__submit button { width: 100%; }
}

/* Sign-up: dark theme for coloured backgrounds (e.g. the site footer) */
.sn-signup--dark { color: #fff; }
.sn-signup--dark .sn-signup__field label { color: #fff; }
.sn-signup--dark .sn-signup__field input { border-color: #fff; background: #fff; color: #1d2a31; }
.sn-signup--dark .sn-signup__submit button { background: #fff; color: #0b3b52; }
.sn-signup--dark .sn-signup__submit button:hover, .sn-signup--dark .sn-signup__submit button:focus-visible { background: #e3f2f7; color: #0b3b52; }
.sn-signup--dark .sn-signup__fine { opacity: 1; color: #e6f1f5; }
.sn-signup--dark .sn-signup__fine a { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
.sn-signup--dark :focus-visible { outline-color: #fff; }
.sn-signup--dark .sn-signup__msg--ok { background: #fff; color: #054f30; }
.sn-signup--dark .sn-signup__msg--error { background: #fff; color: #8f1c13; }
.sn-signup__fine a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }

/* Unsubscribe-by-email form */
.sn-public__form { display: grid; gap: 10px; max-width: 420px; margin: 8px auto 0; text-align: left; }
.sn-public__form label { font-weight: 600; }
.sn-public__form input[type="email"] { width: 100%; min-height: 48px; padding: 8px 12px; border: 1px solid #8a9ba3; border-radius: 8px; font: inherit; }
.sn-public__form .sn-public__btn { width: 100%; margin-top: 6px; }

/* List choices on the sign-up form */
.sn-signup__lists { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 4px 0 12px; padding: 0; border: 0; }
.sn-signup__lists legend { margin: 0 0 4px; padding: 0; font-weight: 600; }
.sn-signup__list { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; cursor: pointer; }
.sn-signup__list input { width: 18px; height: 18px; margin: 0; accent-color: currentColor; }
.sn-signup--inline .sn-signup__lists { grid-column: 1 / -1; order: 5; margin: 12px 0 0; }
.sn-signup--inline .sn-signup__fine { order: 6; }
.sn-signup--dark .sn-signup__lists legend, .sn-signup--dark .sn-signup__list { color: #fff; }
.sn-signup--dark .sn-signup__list input { accent-color: #fff; }
