/**
 * Event registration page (template «Συνέδριο») — the price tables, the
 * registration form and its confirmation. Loaded on that page only
 * (inc/bookings-public.php); everything else it needs — buttons, inputs,
 * notices — comes from main.css.
 */

/* ------------------------------------------------------------ the intro. */

.rd-conf-subtitle {
	margin: var(--rd-3) 0 0;
	font-size: clamp(18px, 2.4vw, 24px);
	font-weight: 700;
	color: var(--rd-azure);
}

.rd-conf-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--rd-4) var(--rd-5);
	margin-top: var(--rd-6);
}

.rd-conf-cta__now {
	margin: 0;
	max-width: 520px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--rd-muted);
}

.rd-conf-cta .rd-notice {
	margin: 0;
}

/* ------------------------------------------------------------ the prices. */

.rd-conf-info {
	display: grid;
	grid-template-columns: 1fr 1.25fr;
	gap: var(--rd-6);
	align-items: start;
	margin-top: var(--rd-6);
}

.rd-conf-tablewrap {
	overflow-x: auto;
	border: 1px solid var(--rd-line);
	border-radius: var(--rd-r-xl);
	background: var(--rd-white);
	box-shadow: var(--rd-shadow-card);
}

.rd-conf-prices {
	width: 100%;
	border-collapse: collapse;
	font-size: 16px;
}

.rd-conf-prices caption {
	padding: var(--rd-4) var(--rd-5);
	text-align: left;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .04em;
	color: var(--rd-royal);
	border-bottom: 1px solid var(--rd-line);
}

.rd-conf-prices th,
.rd-conf-prices td {
	padding: var(--rd-3) var(--rd-5);
	text-align: left;
	border-bottom: 1px solid var(--rd-line);
	vertical-align: top;
}

.rd-conf-prices thead th {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--rd-faint);
	background: var(--rd-offwhite);
}

.rd-conf-prices tbody th {
	font-weight: 600;
	color: var(--rd-ink);
}

.rd-conf-prices td {
	white-space: nowrap;
	font-weight: 800;
	color: var(--rd-royal);
}

.rd-conf-prices tr:last-child th,
.rd-conf-prices tr:last-child td {
	border-bottom: 0;
}

.rd-conf-prices tr.is-current th,
.rd-conf-prices tr.is-current td {
	background: var(--rd-pale);
}

.rd-conf-badge {
	display: inline-block;
	margin-left: var(--rd-2);
	padding: 2px 10px;
	border-radius: 999px;
	background: var(--rd-azure);
	color: var(--rd-white);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	vertical-align: middle;
}

.rd-conf-note {
	margin: 0;
	padding: var(--rd-4) var(--rd-5);
	font-size: 14px;
	line-height: 1.6;
	color: var(--rd-muted);
	border-top: 1px solid var(--rd-line);
}

/* ------------------------------------------------------------- the form. */

.rd-shell--conf {
	max-width: 1000px;
}

.rd-conf-form {
	display: grid;
	gap: var(--rd-5);
	margin-top: var(--rd-5);
}

.rd-conf-set {
	margin: 0;
	padding: var(--rd-5) var(--rd-6) var(--rd-6);
	border: 1px solid var(--rd-line);
	border-radius: var(--rd-r-xl);
	background: var(--rd-white);
	box-shadow: var(--rd-shadow-card);
	min-width: 0;
}

.rd-conf-set legend {
	display: flex;
	align-items: center;
	gap: var(--rd-3);
	padding: 0 var(--rd-2);
	font-size: 19px;
	font-weight: 800;
	color: var(--rd-royal);
}

.rd-conf-set__n {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--rd-royal);
	color: var(--rd-white);
	font-size: 15px;
	font-weight: 800;
}

.rd-conf-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--rd-4);
	align-items: end;
}

.rd-conf-grid--3 {
	grid-template-columns: repeat(3, 1fr);
	align-items: start;
}

.rd-field--wide {
	grid-column: 1 / -1;
}

.rd-conf-form[hidden],
.rd-conf-grid[hidden],
.rd-conf-person[hidden],
.rd-conf-companion[hidden],
.rd-conf-form [hidden] {
	display: none;
}

.rd-conf-person {
	margin-top: var(--rd-4);
}

.rd-conf-person__title {
	margin: 0 0 var(--rd-3);
	font-size: 16px;
	font-weight: 800;
	color: var(--rd-royal);
}

.rd-conf-companions {
	margin-top: var(--rd-5);
}

.rd-conf-companion {
	margin-bottom: var(--rd-4);
}

.rd-conf-companion .rd-conf-grid {
	grid-template-columns: 1fr 1fr minmax(8rem, .6fr) auto;
}

/* A companion's office, filled in for them. */
.rd-field__label {
	font-size: 14px;
	font-weight: 700;
	color: var(--rd-royal);
}

.rd-input--static {
	display: flex;
	align-items: center;
	line-height: normal;
	background: #F3F6FA;
	color: var(--rd-muted);
	font-weight: 600;
	letter-spacing: .02em;
}

/* Single or couple: two big choices, the price on each. */
.rd-conf-choices {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--rd-4);
	margin: var(--rd-4) 0;
}

.rd-conf-choice {
	position: relative;
	display: block;
	cursor: pointer;
}

.rd-conf-choice input {
	position: absolute;
	opacity: 0;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
}

.rd-conf-choice__body {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--rd-3);
	padding: var(--rd-4) var(--rd-5);
	border: 2px solid #C7D6E8;
	border-radius: var(--rd-r-lg);
	background: var(--rd-white);
	color: var(--rd-royal);
	font-size: 17px;
	transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.rd-conf-choice__price {
	font-size: 22px;
	font-weight: 800;
	color: var(--rd-azure);
	white-space: nowrap;
}

.rd-conf-choice input:checked + .rd-conf-choice__body {
	border-color: var(--rd-azure);
	background: var(--rd-pale);
}

.rd-conf-choice input:focus-visible + .rd-conf-choice__body {
	box-shadow: 0 0 0 4px rgba(0, 103, 200, .25);
}

/* Checkboxes with a sentence beside them. */
.rd-conf-check {
	display: flex;
	align-items: flex-start;
	gap: var(--rd-3);
	margin: var(--rd-3) 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--rd-ink);
	cursor: pointer;
}

.rd-conf-check input {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	margin: 1px 0 0;
	accent-color: var(--rd-azure);
}

.rd-conf-check a {
	color: var(--rd-azure);
	text-decoration: underline;
}

.rd-conf-set .rd-conf-grid {
	margin-top: var(--rd-4);
}

.rd-conf-set .rd-field__hint {
	margin-top: var(--rd-3);
}

/* Rooms: a night per row, a room type per column. */
.rd-conf-rooms {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.rd-conf-rooms th,
.rd-conf-rooms td {
	padding: var(--rd-3) var(--rd-4);
	border-bottom: 1px solid var(--rd-line);
	text-align: center;
}

.rd-conf-rooms thead th {
	font-size: 14px;
	font-weight: 800;
	color: var(--rd-royal);
	background: var(--rd-offwhite);
}

.rd-conf-rooms tbody th {
	text-align: left;
	font-weight: 600;
	white-space: nowrap;
}

.rd-conf-rooms__price {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--rd-muted);
}

.rd-conf-rooms td input {
	flex: none;
	width: 24px;
	height: 24px;
	accent-color: var(--rd-azure);
	cursor: pointer;
}

.rd-conf-rooms__pick {
	display: block;
	cursor: pointer;
}

/* The room's name inside each cell is for phones (below): here its column says it. */
.rd-conf-rooms__name {
	display: none;
}

.rd-conf-set .rd-conf-tablewrap {
	margin-top: var(--rd-4);
	box-shadow: none;
}

/* The running total. */
.rd-conf-summary {
	padding: var(--rd-5) var(--rd-6);
	border: 2px solid var(--rd-azure);
	border-radius: var(--rd-r-xl);
	background: var(--rd-pale);
}

.rd-conf-summary h3 {
	margin: 0 0 var(--rd-3);
	font-size: 19px;
	font-weight: 800;
	color: var(--rd-royal);
}

.rd-conf-receipt {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.rd-conf-receipt th,
.rd-conf-receipt td {
	padding: 7px 0;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid rgba(23, 69, 143, .12);
}

.rd-conf-receipt th {
	font-weight: 500;
	padding-right: var(--rd-4);
}

.rd-conf-receipt td {
	text-align: right;
	white-space: nowrap;
	font-weight: 700;
}

.rd-conf-receipt__row--sub th,
.rd-conf-receipt__row--sub td {
	font-weight: 800;
	color: var(--rd-royal);
}

.rd-conf-receipt__row--total th,
.rd-conf-receipt__row--total td {
	font-size: 18px;
	font-weight: 800;
	color: var(--rd-royal);
	border-bottom: 2px solid var(--rd-royal);
}

.rd-conf-receipt tr:last-child th,
.rd-conf-receipt tr:last-child td {
	border-bottom: 0;
}

/* The two amounts: 1 to the Περιφέρεια, 2 to the hotel. */
.rd-conf-two__intro {
	margin: 0 0 var(--rd-4);
	font-size: 15px;
}

.rd-conf-part {
	margin: 0 0 var(--rd-4);
	border: 2px solid var(--rd-royal);
	border-radius: var(--rd-r-md);
	background: #fff;
	overflow: hidden;
}

.rd-conf-part--hotel {
	border-color: var(--rd-gold);
}

.rd-conf-part__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--rd-2) var(--rd-4);
	padding: var(--rd-3) var(--rd-4);
	background: var(--rd-royal);
	color: #fff;
}

.rd-conf-part--hotel .rd-conf-part__head {
	background: #FFF4DC;
	color: var(--rd-deep);
}

.rd-conf-part__num {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--rd-gold);
	color: var(--rd-deep);
	font-weight: 800;
	font-size: 15px;
}

.rd-conf-part--hotel .rd-conf-part__num {
	background: var(--rd-deep);
	color: #fff;
}

.rd-conf-part__titles {
	display: flex;
	flex: 1 1 14em;
	flex-direction: column;
	min-width: 0;
}

.rd-conf-part__title {
	font-size: 17px;
	font-weight: 800;
	line-height: 1.25;
}

.rd-conf-part__sub {
	font-size: 13px;
	opacity: .92;
}

.rd-conf-part__amount {
	margin-left: auto;
	font-size: 24px;
	font-weight: 800;
	white-space: nowrap;
}

.rd-conf-part__lines th,
.rd-conf-part__lines td {
	padding: 9px var(--rd-4);
	border-bottom-color: var(--rd-line);
}

.rd-conf-part__lines tr:nth-child(even) {
	background: #F7F9FC;
}

.rd-conf-part__note {
	margin: 0;
	padding: var(--rd-3) var(--rd-4);
	border-top: 1px solid #C9D6EE;
	background: #EEF3FB;
	font-size: 14px;
	line-height: 1.5;
	color: var(--rd-deep);
}

.rd-conf-part--hotel .rd-conf-part__note {
	border-top-color: #F5D9A0;
	background: #FFF8EA;
	color: #6B4500;
}

.rd-conf-two__total {
	display: flex;
	justify-content: space-between;
	gap: var(--rd-3);
	margin: 0 0 var(--rd-3);
	padding: var(--rd-3) var(--rd-1) 0;
	border-top: 2px solid var(--rd-royal);
	font-size: 16px;
	font-weight: 800;
	color: var(--rd-deep);
}

.rd-conf-two__total span:last-child {
	white-space: nowrap;
}

.rd-conf-two + .rd-field__hint {
	margin-top: var(--rd-3);
}

@media (max-width: 640px) {
	.rd-conf-part__head,
	.rd-conf-part__lines th,
	.rd-conf-part__lines td,
	.rd-conf-part__note {
		padding-left: var(--rd-3);
		padding-right: var(--rd-3);
	}

	.rd-conf-part__amount {
		margin-left: 38px;
		font-size: 22px;
	}
}

.rd-conf-submit {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--rd-4);
}

.rd-conf-submit .rd-field__hint {
	margin: 0;
	max-width: 460px;
}

/* ------------------------------------------------------------- problems. */

.rd-conf-error {
	margin: 6px 0 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--rd-error);
}

.rd-conf-form .rd-input.is-invalid,
.rd-conf-form .rd-select.is-invalid {
	border-color: var(--rd-error);
	box-shadow: 0 0 0 3px rgba(179, 38, 30, .14);
}

.rd-conf-check input.is-invalid {
	outline: 2px solid var(--rd-error);
	outline-offset: 2px;
}

.rd-conf-form [data-conf-alert]:focus {
	outline: 2px solid var(--rd-error);
	outline-offset: 2px;
}

/* --------------------------------------------------------- confirmation. */

.rd-conf-done {
	margin-top: var(--rd-5);
	padding: var(--rd-6) var(--rd-7);
	border: 2px solid var(--rd-success);
	border-radius: var(--rd-r-2xl);
	background: var(--rd-white);
}

.rd-conf-done:focus {
	outline: none;
}

.rd-conf-done .rd-kicker {
	color: var(--rd-success);
}

.rd-conf-done__title {
	margin: var(--rd-2) 0 var(--rd-3);
	font-size: clamp(26px, 4vw, 36px);
	font-weight: 800;
	line-height: 1.15;
}

.rd-conf-done__code {
	display: inline-block;
	margin: 0 0 var(--rd-4);
	padding: var(--rd-3) var(--rd-5);
	border-radius: var(--rd-r-md);
	background: var(--rd-pale);
	font-size: 18px;
	color: var(--rd-royal);
}

.rd-conf-done__code strong {
	margin-left: var(--rd-2);
	font-size: 24px;
	letter-spacing: .04em;
}

.rd-conf-done__box {
	margin: var(--rd-5) 0;
	padding: var(--rd-5);
	border: 1px solid var(--rd-line);
	border-radius: var(--rd-r-lg);
	background: var(--rd-offwhite);
}

.rd-conf-done__box h3 {
	margin: 0 0 var(--rd-3);
	font-size: 17px;
	font-weight: 800;
	color: var(--rd-royal);
}

.rd-conf-done__box ul {
	margin: 0;
	padding-left: 1.2em;
	line-height: 1.7;
}

.rd-conf-done__box--pay {
	border: 2px solid var(--rd-gold);
	background: #FFF9EC;
}

/* An IBAN or an email address has no spaces: let it break rather than run
   out of its box on a phone (break-word only breaks what would overflow). */
.rd-conf-done {
	overflow-wrap: break-word;
}

/* ------------------------------------------------------------- narrow. */

/* The prices side by side only where both fit: below about 1,240 pixels the
   registration's three columns needed more than their half and scrolled. */
@media (max-width: 1240px) {
	.rd-conf-info {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.rd-conf-set {
		padding: var(--rd-4) var(--rd-4) var(--rd-5);
	}

	.rd-conf-grid,
	.rd-conf-grid--3,
	.rd-conf-choices {
		grid-template-columns: 1fr;
	}

	.rd-conf-companion .rd-conf-grid {
		grid-template-columns: 1fr;
	}

	.rd-conf-companion .rd-btn {
		justify-self: start;
	}

	.rd-conf-prices th,
	.rd-conf-prices td {
		padding: var(--rd-3) var(--rd-4);
	}

	/* The confirmation's boxes sit inside one another: on a phone their
	   padding is trimmed, or the cost tables inside got barely half the screen. */
	.rd-conf-done {
		padding: var(--rd-4) var(--rd-3);
	}

	.rd-conf-done__box {
		padding: var(--rd-4) var(--rd-3);
	}

	.rd-conf-choice__body {
		flex-wrap: wrap;
	}

	.rd-conf-set legend {
		flex-wrap: wrap;
		font-size: 17px;
	}

	.rd-conf-set legend .rd-field__optional {
		flex-basis: 100%;
		font-size: 14px;
	}

	/* The price tables become cards: on a phone nothing scrolls sideways,
	   and every price reads without zooming. The rows keep their roles
	   (role="row", "cell"…), so a screen reader still hears a table. */
	.rd-conf-info .rd-conf-tablewrap {
		overflow-x: visible;
	}

	.rd-conf-prices,
	.rd-conf-prices caption,
	.rd-conf-prices tbody,
	.rd-conf-prices tr,
	.rd-conf-prices th,
	.rd-conf-prices td {
		display: block;
	}

	.rd-conf-prices thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	/* A card per row, each price beside its column's name. */
	.rd-conf-prices tr {
		padding: var(--rd-3) var(--rd-4);
		border-bottom: 1px solid var(--rd-line);
	}

	.rd-conf-prices tr:last-child {
		border-bottom: 0;
	}

	.rd-conf-prices tr.is-current {
		background: var(--rd-pale);
	}

	.rd-conf-prices th,
	.rd-conf-prices td,
	.rd-conf-prices tr.is-current th,
	.rd-conf-prices tr.is-current td {
		padding: 0;
		border: 0;
		background: none;
	}

	.rd-conf-prices td {
		margin-top: var(--rd-1);
		white-space: normal;
	}

	.rd-conf-prices td[data-label] {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: var(--rd-3);
	}

	.rd-conf-prices td[data-label]::before {
		content: attr(data-label);
		content: attr(data-label) / "";
		font-size: 14px;
		font-weight: 600;
		color: var(--rd-muted);
	}

	.rd-conf-badge {
		margin: var(--rd-1) 0 0;
	}
}

/* The cost lines: on the narrowest phones a line's label takes the width,
   and its amount goes under it, right-aligned, instead of being cut. */
@media (max-width: 420px) {
	.rd-conf-receipt tr,
	.rd-conf-receipt th,
	.rd-conf-receipt td {
		display: block;
	}

	.rd-conf-receipt th {
		padding-bottom: 0;
		border-bottom: 0;
	}

	.rd-conf-receipt td {
		padding-top: 2px;
	}
}

/* Rooms: below 680 pixels their columns no longer fit the form, so each
   night becomes a block and each room a line of it, the whole line a tap
   target. The same roles keep it a table for screen readers. */
@media (max-width: 680px) {
	.rd-conf-set .rd-conf-tablewrap {
		overflow-x: visible;
	}

	.rd-conf-rooms,
	.rd-conf-rooms tbody,
	.rd-conf-rooms tr,
	.rd-conf-rooms th,
	.rd-conf-rooms td {
		display: block;
	}

	.rd-conf-rooms thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.rd-conf-rooms {
		font-size: 15px;
	}

	.rd-conf-rooms tbody th {
		padding: var(--rd-3) var(--rd-4) var(--rd-2);
		background: var(--rd-offwhite);
		color: var(--rd-royal);
		font-weight: 800;
		white-space: normal;
	}

	.rd-conf-rooms td {
		padding: 0;
		text-align: left;
	}

	.rd-conf-rooms__pick {
		display: flex;
		align-items: center;
		gap: var(--rd-3);
		min-height: 52px;
		padding: var(--rd-2) var(--rd-4);
	}

	.rd-conf-rooms__name {
		display: block;
		flex: 1;
		order: 1;
		min-width: 0;
		text-align: left;
	}

	.rd-conf-rooms .rd-conf-avail {
		order: 2;
		min-height: 0;
		margin: 0;
		font-size: 13px;
		text-align: right;
	}
}

/* Print / save as PDF: the confirmation, and nothing else. */
@media print {
	body.page-template-template-conference .rd-header,
	body.page-template-template-conference .rd-footer,
	body.page-template-template-conference .rd-microbanner,
	body.page-template-template-conference .rd-section:not(#eggrafi),
	body.page-template-template-conference [data-conf-print],
	body.page-template-template-conference .rd-consent,
	body.page-template-template-conference .rd-consentdialog {
		display: none !important;
	}

	.rd-conf-done {
		border: 0;
		padding: 0;
	}

	/* A table, a box or a step of the form is never cut at the page's edge:
	   it moves whole to the next page. (A fixed cookie banner printed over the
	   foot of every page and hid what was there — it is gone above.) */
	.rd-conf-set,
	.rd-conf-part,
	.rd-conf-done__box,
	.rd-conf-tablewrap {
		break-inside: avoid;
		page-break-inside: avoid;
		overflow: visible;
	}

	.rd-conf-receipt tr,
	.rd-conf-rooms tr,
	.rd-conf-prices tr {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.rd-conf-rooms thead,
	.rd-conf-prices thead {
		display: table-header-group;
	}

	.rd-conf-set legend,
	.rd-conf-done__box h3 {
		break-after: avoid;
		page-break-after: avoid;
	}

	[data-reveal] {
		opacity: 1;
		transform: none;
	}
}

/* ------------------------------------------------- hotels and sold-out rooms. */

.rd-conf-choices--hotels {
	margin-bottom: 0.75rem;
}

.rd-conf-rowNote {
	display: block;
	margin-top: 0.15rem;
	font-weight: 400;
	font-size: 0.85em;
	color: var(--rd-muted);
}

.rd-conf-rooms td[data-conf-cell] {
	text-align: center;
}

.rd-conf-avail {
	display: block;
	min-height: 1.1em;
	margin-top: 0.15rem;
	font-size: 0.72rem;
	line-height: 1.1;
	color: var(--rd-muted);
}

.rd-conf-rooms td.is-soldout {
	background: repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.035) 0 6px, transparent 6px 12px);
}

.rd-conf-rooms td.is-soldout .rd-conf-avail {
	font-weight: 700;
	color: #9f1239;
}

.rd-conf-rooms td.is-soldout input {
	opacity: 0.35;
	cursor: not-allowed;
}

.rd-conf-rooms td.is-soldout .rd-conf-rooms__pick {
	cursor: not-allowed;
}

.rd-conf-rooms td.is-soldout .rd-conf-rooms__name {
	opacity: 0.55;
}
