/* Ruby Tuesdays Newsletter — public styles */

/* The form wrap inherits sizing from its host container — no max-width or auto margins. */
.rtnl-form-wrap {
	padding: 16px 0;
	font-family: inherit;
}

.rtnl-page {
	max-width: 640px;
	margin: 40px auto;
	padding: 32px 36px;
	background: #fff;
	border: 1px solid #eee;
	border-radius: 8px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .05);
	font-family: inherit;
	line-height: 1.55;
}
.rtnl-page h2 {
	margin-top: 0;
	margin-bottom: 16px;
	font-size: 1.6em;
	line-height: 1.2;
}
.rtnl-page p { margin: 0 0 12px; }
.rtnl-page .rtnl-button { margin-top: 8px; }
.rtnl-page fieldset { border: 1px solid #e5e5e5; padding: 12px 14px; margin: 16px 0; border-radius: 6px; }
.rtnl-page fieldset legend { padding: 0 6px; font-weight: 600; }
.rtnl-page input[type=text],
.rtnl-page input[type=email] {
	padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 1em;
}
@media (max-width: 700px) {
	.rtnl-page { margin: 20px 12px; padding: 22px 18px; }
}

.rtnl-form-heading { margin: 0 0 8px; font-size: 1.4em; }
.rtnl-form-text  { margin-bottom: 12px; }
.rtnl-form .rtnl-row { margin-bottom: 10px; }
.rtnl-form label { display: block; font-weight: 600; margin-bottom: 4px; font-size: .95em; }

/* Visually hidden but exposed to screen readers. */
.rtnl-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}
.rtnl-form input[type=text],
.rtnl-form input[type=email] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
	font-size: 1em;
}
.rtnl-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }

.rtnl-button,
.rtnl-form .rtnl-button {
	display: inline-block;
	padding: 10px 22px;
	border: 0;
	background: #a40b1d;
	color: #fff;
	font-weight: 600;
	border-radius: 4px;
	cursor: pointer;
	text-decoration: none;
	font-size: 1em;
}
.rtnl-button:hover { background: #840818; }
.rtnl-button[disabled] { opacity: .6; cursor: not-allowed; }
.rtnl-button-secondary { background: #555; }
.rtnl-button-secondary:hover { background: #333; }

.rtnl-consent { font-size: 12px; color: #666; margin-top: 8px; line-height: 1.4; }
.rtnl-message { margin-top: 10px; font-size: .95em; min-height: 1.2em; }
.rtnl-message-success { color: #1b6e2a; }
.rtnl-message-error   { color: #b30000; }
.rtnl-message-info    { color: #444; }

.rtnl-flash { padding: 10px 14px; border-radius: 4px; margin-bottom: 12px; }
.rtnl-flash-success { background: #e8f5ec; color: #1b6e2a; }
.rtnl-flash-error   { background: #fbe8e8; color: #b30000; }

/* Specials gallery */
.rtnl-specials { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 600px) { .rtnl-cols-2 { grid-template-columns: 1fr 1fr; } .rtnl-cols-3 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .rtnl-cols-3 { grid-template-columns: 1fr 1fr 1fr; } .rtnl-cols-4 { grid-template-columns: 1fr 1fr 1fr 1fr; } }
.rtnl-special {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 6px;
	padding: 16px;
	box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.rtnl-special-img img { max-width: 100%; height: auto; border-radius: 4px; }
.rtnl-special-title { margin: 12px 0 6px; font-size: 1.2em; }
.rtnl-special-desc, .rtnl-special-terms { font-size: .95em; color: #444; }
.rtnl-special-terms { font-size: .85em; color: #666; margin-bottom: 10px; }
.rtnl-claim-form .rtnl-row { margin-bottom: 8px; }
.rtnl-claim-form input[type=text],
.rtnl-claim-form input[type=email] {
	width: 100%; padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box;
}

/* Claim code display */
.rtnl-code-box {
	margin: 12px 0;
	padding: 16px;
	text-align: center;
	background: #f6f6f6;
	border-radius: 6px;
	font-size: 1.5em;
	letter-spacing: 3px;
	font-weight: bold;
}

/* Popup */
.rtnl-popup {
	position: fixed; inset: 0; z-index: 100000;
}
.rtnl-popup-backdrop {
	position: absolute; inset: 0;
	background: rgba(0,0,0,.55);
}
.rtnl-popup-panel {
	position: relative;
	max-width: 480px;
	margin: 8vh auto 0;
	background: #fff;
	border-radius: 8px;
	padding: 28px 24px 22px;
	box-shadow: 0 12px 40px rgba(0,0,0,.25);
}
.rtnl-popup-close {
	position: absolute;
	top: 6px; right: 10px;
	background: transparent;
	border: 0;
	font-size: 28px;
	cursor: pointer;
	line-height: 1;
	color: #666;
}
.rtnl-popup-close:hover { color: #000; }
body.rtnl-popup-open { overflow: hidden; }
.rtnl-popup h3 { margin: 0 0 8px; font-size: 1.4em; }
.rtnl-popup-text { margin-bottom: 14px; }
.rtnl-popup .rtnl-row { margin-bottom: 10px; }
.rtnl-popup input[type=text],
.rtnl-popup input[type=email] {
	width: 100%; padding: 10px 12px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box;
}
