/* @import "includes/base.css"; */
/**** Aditional CSS ****/
/*-- link underline -- */
p a,
li a,
h4.has-text-align-right.view-all-underline {
	text-underline-offset: 9px;
	text-decoration: underline;
	text-decoration-thickness: 3px;
	transition: all .2s;
}

p a:hover,
li a:hover,
h4.has-text-align-right.view-all-underline:hover, .session-single-details .taxonomy-wcb_track a:hover,
.session-single-details .wp-block-wordcamp-session-speakers__name a:hover,
.session-single-details .taxonomy-wcb_session_category a:hover,
.session-single-details .session-slides-link a:hover,
.session-single-details .session-video-link a:hover,
.bg-shape-community:hover {
	text-underline-offset: 3px;
	transition: all .2s;
	text-decoration: underline;
	text-decoration-thickness: 3px;
}

/* -- Home Latest News -- */
/* -- Home Our Sponsor section -- */
.home-our-sponsor {
	background-size: contain !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
}

/* Home smartphone rules */
@media (max-width:767px) {
	p a,
		li a {
		text-underline-offset: 6px;
		text-decoration: underline;
		text-decoration-thickness: 2px;
		transition: all .2s;
	}
	
	p a:hover,
		li a:hover {
		text-underline-offset: 3px;
		transition: all .2s;
		text-decoration: underline;
		text-decoration-thickness: 2px;
	}
	
	.wp-block-media-text__content p,
		.wp-block-media-text__content .wp-block-group {
		padding: 0 !important;
	}
	
	.wp-block-group.home-events {
		padding-top: 4rem !important;
	}
	
	.home-events h2 {
		line-height: 1.2 !important;
		margin-bottom: 1.2rem;
	}
	
	/* Sponsor Level on Single Sponsor page */
	.taxonomy-wcb_sponsor_level.custom-sponsor-level.wp-block-post-terms a {
		font-size: 1.2rem;
	}
	
	/* ==================== START OF CAMPTIX / TICKETS (MOBILE) ==================== */
	/*--- CampTix — responsive (mobile ≤767px), WCAthens 2026 ---*/
	/* Stack all ticket / summary / form tables into single-column rows. */
	.tix-js .tix_tickets_table,
		.tix-js .tix_tickets_table thead,
		.tix-js .tix_tickets_table tbody,
		.tix-js .tix_tickets_table th,
		.tix-js .tix_tickets_table td,
		.tix-js .tix_tickets_table tr {
		display: block;
	}
	
	/* Hide column headers off-screen (kept for screen readers, not display:none). */
	.tix-js .tix_tickets_table thead tr {
		position: absolute;
		top: -9999px;
		left: -9999px;
	}
	
	/* Purchase card: centered, comfortably padded stacked rows. */
	.tix-js .tix_tickets_table.tix-tickets-list tbody th,
		.tix-js .tix_tickets_table.tix-tickets-list tbody td {
		text-align: center !important;
		padding: 14px 20px !important;
	}
	
	/* Key/value forms (attendee / receipt / private / ticket) + invoice details:
		   put the label on its own line above a full-width field. */
	.tix-js .tix-left,
		.tix-js .tix-right {
		display: block;
		width: 100% !important;
		text-align: left !important;
		padding: 4px 0 !important;
	}
	
	.tix-js .tix-left:after {
		content: none;
	/* drop the trailing ':' once the label is on its own line */
	}
	
	.tix-js .tix_tickets_table input[type="text"],
		.tix-js .tix_tickets_table input[type="email"],
		.tix-js .tix_tickets_table input[type="url"],
		.tix-js .tix_tickets_table textarea,
		.tix-js .camptix-invoice-details input[type="text"],
		.tix-js .camptix-invoice-details input[type="email"],
		.tix-js .camptix-invoice-details input[type="url"] {
		width: 100% !important;
	}
	
	.tix-js .tix_tickets_table.tix-attendee-form tr,
		.tix-js .tix_tickets_table.tix-receipt-form tr,
		.tix-js .tix_tickets_table.tix-private-form tr,
		.tix-js .tix_tickets_table.tix-ticket-form tr {
		padding-bottom: 24px !important;
	}
	
	/* CTA button spans the full row on mobile. */
	.tix-js .tix_tickets_table.tix-tickets-list ~ p {
		max-width: 100%;
		text-align: center;
	}
	
	.tix-js input[type='submit'] {
		width: 100%;
	}
	
	/* Summary table stacks into one column (labels are self-evident). */
	.tix-js .tix-ticket-form thead {
		display: none;
	}
	
	.tix-js .tix-ticket-form,
		.tix-js .tix-ticket-form tbody,
		.tix-js .tix-ticket-form tr,
		.tix-js .tix-ticket-form td {
		display: block;
		width: 100%;
	}
	
	.tix-js .tix-ticket-form tbody td {
		border-bottom: none;
		padding: 4px 20px !important;
	}
	
	.tix-js .tix-ticket-form tbody td:first-child {
		padding-top: 18px !important;
	}
	
	.tix-js .tix-ticket-form tbody tr {
		border-bottom: 1px solid #f0f0f2;
		padding-bottom: 12px;
	}/* ==================== END OF CAMPTIX / TICKETS (MOBILE) ==================== */
	
}

/* End of media rule @media (max-width:767px) */
/*-- Global buttons --*/
.cta-button a:hover {
	background-color: #FDEFE9 !important;
}

.primary-button-yellow a:hover {
	background-color: #Fff !important;
	color: #171717 !important;
	border: 2px solid #F9B233 !important;
}

.primary-button-yellow a {
	border: 2px solid #F9B233 !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: #1333A6 !important;
	border: 3px solid #1333A6 !important;
	color: #fff !important;
}

.button-sponsor-website a {
	background-color: var(--wp--preset--color--custom-trinidad-100) !important;
	border: 3px solid var(--wp--preset--color--custom-trinidad-100) !important;
}

.button-sponsor-website a:hover {
	background-color: #ffffff !important;
	border: 3px solid var(--wp--preset--color--custom-trinidad-100) !important;
}

.button-trinidad-80 a {
	background-color: var(--wp--preset--color--custom-trinidad-80) !important;
	border: 3px solid var(--wp--preset--color--custom-trinidad-80) !important;
}

.button-trinidad-80 a:hover {
	background-color: #ffffff !important;
	border: 3px solid var(--wp--preset--color--custom-trinidad-80) !important;
}

.wp-block-buttons:not(.is-style-color-grid-buttons) .wp-block-button__link:hover {
	color: var(--wp--preset--color--custom-trinidad-100) !important;
}

.wp-block-buttons:not(.is-style-color-grid-buttons) .wp-block-button.is-style-outline .wp-block-button__link:hover {
	color: #fff !important;
}

/**** Aditional CSS ****/
ul.organizers-index li a {
	text-decoration: none;
}

/*--- header ---*/
.mobile-menu-logo-WCEU {
	display: none;
}

/*--- HOME ---*/
.bg-shape-community {
	background-size: contain !important;
	background-repeat: no-repeat;
	background-position: center;
}

.bg-shape-community h4 {
	overflow-wrap: normal;
	word-break: normal;
}

/*--- latest news home ---*/
.latest-news-home-feed li {
	display: grid;
}

.latest-news-home-feed .wp-block-latest-posts__featured-image {
	position: relative;
	order: 1;
}

.latest-news-home-feed .wp-block-latest-posts__post-date {
	color: var(--wp--preset--color--custom-mandy-dark);
	font-size: 20px;
	order: 2;
}

.latest-news-home-feed .wp-block-latest-posts__post-title {
	color: black;
	font-size: 30px;
	order: 3;
}

.latest-news-home-feed .wp-block-latest-posts__post-excerpt {
	order: 4;
}

.wp-block-latest-posts__post-excerpt a {
	font-size: 18px;
	background: var(--wp--preset--color--custom-trinidad-80);
	padding: 15px 30px;
	color: black;
	text-decoration: none;
}

.latest-news-home .primary-button-orange:hover {
	background: #ffffff !important;
}

/*--- upcomming events home ---*/
.upcomming-events-home-feed li {
	display: grid;
	background-color: #fff;
}

.upcomming-events-home-feed .wp-block-latest-posts__featured-image {
	position: relative;
	order: 1;
}

.upcomming-events-home-feed .wp-block-latest-posts__post-date {
	color: var(--wp--preset--color--custom-mandy-dark);
	font-size: 20px;
	order: 2;
	padding: 0 20px;
}

.upcomming-events-home-feed .wp-block-latest-posts__post-title {
	color: black;
	font-size: 30px;
	order: 3;
	padding: 0 20px;
}

.upcomming-events-home-feed .wp-block-latest-posts__post-excerpt {
	order: 4;
	padding: 0 20px;
}

.wp-block-latest-posts__post-excerpt a {
	display: none;
}

/*--- footer ---*/
.big-footer {
	background: url('/files/2026/04/Footer-Orange-Abstract-Shapes-34.png') right 750px bottom no-repeat, url('/files/2026/04/Footer-Pink-Abstract-Shapes-31.png') right -5px bottom no-repeat;
	background-size: 120px, 480px;
}

.wp-block-search .wp-element-button,
.wp-block-search .wp-block-button__link {
	border-radius: 0;
	margin: 0;
}

.link-no-underline a, .latest-news-home .primary-button-orange:hover {
	text-decoration: none;
}

/*--- responsive ---*/
@media (max-width: 767px) {
	.mini-spacer {
		height: 0 !important;
	}
	
	.footer-info {
		text-align: center;
	}
	
	.big-footer {
		background: url('/files/2026/04/Footer-Orange-Abstract-Shapes-34.png') right 750px bottom no-repeat, url('/files/2026/04/Footer-Pink-Abstract-Shapes-31.png') right -5px bottom no-repeat;
		background-color: rgba(0, 0, 0, 0);
		background-size: auto, auto;
		background-size: 120px, 480px;
	}
	
	/*--- responsive menu mobile ---*/
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
		.wp-block-navigation__responsive-container.is-menu-open {
		padding-top: 0;
	}
	
	.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
		background-color: #FBDED2;
	}
	
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
		font-family: 'Lora', serif;
		margin-bottom: 16px;
	}
	
	.wp-block-navigation__responsive-container-close {
		right: 0;
		top: 20px;
	}
	
	.wp-block-site-logo.is-default-size img {
		height: auto;
		width: 100%;
	}
	
	.ticket-button-mobile a {
		background-color: white;
		padding: 15px !important;
		border: 2px solid #ea5b1b;
		color: #ea5b1b !important;
		text-transform: uppercase;
		text-align: center;
	}
	
	.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog {
		margin-top: 0;
	}
}

/* End of media rule @media (max-width:767px) */
/* ======================== START OF CAMPTIX / TICKETS ======================== */
/*===================================================================
   CampTix / Tickets — clean, cohesive, WCAthens 2026 brand (by CL).
   Rewritten 2026-07 to drop CSS inherited from another WordCamp.
   Brand fonts, applied explicitly so nothing falls back to the
   theme's Open Sans:
                    (display / all-caps feel)
     'Mulish'    -> small meta labels (field labels, "remaining")
     'Lora'      -> body / descriptions / input values (the base)
===================================================================*/
/* Base: inherit the site's configured font (Global Styles). Do NOT set
   font-family anywhere in the ticket CSS — let the theme decide. */
.tix-js {
	font-size: 1.1em;
}

/* Generic cell padding; the card table and the key/value forms below
   set their own where they need it. */
.tix-js .tix_tickets_table th,
.tix-js .tix_tickets_table td {
	padding: 5px 20px;
}

/*--- Purchase table (.tix-tickets-list): full-width branded card ---*/
.tix-js .tix_tickets_table.tix-tickets-list {
	width: 100%;
	border-collapse: separate !important;
/* separate + overflow:hidden lets the corners round */
	border-spacing: 0 !important;
	border: none;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(19, 51, 166, 0.12);
	margin: 0 0 2rem;
/* no top gap — sits at the top of its section */
	background: #fff;
}

.tix-js .tix_tickets_table.tix-tickets-list thead th {
	background-color: var(--wp--preset--color--custom-trinidad-100) !important;
/* brand navy #1333A6, high contrast vs the old white-on-yellow */
	color: #fff !important;
	font-size: .72rem;
	letter-spacing: .5px;
	text-transform: uppercase;
	font-weight: 700;
	padding: 18px 20px !important;
	border: none;
}

.tix-js .tix_tickets_table.tix-tickets-list thead th.tix-column-price,
.tix-js .tix_tickets_table.tix-tickets-list thead th.tix-column-remaining,
.tix-js .tix_tickets_table.tix-tickets-list thead th.tix-column-quantity {
	text-align: center;
}

.tix-js .tix_tickets_table.tix-tickets-list tbody th,
.tix-js .tix_tickets_table.tix-tickets-list tbody td {
	border: none;
	border-bottom: 1px solid #f0f0f2;
	padding: 20px !important;
	vertical-align: middle;
	background: #fff;
	text-align: center;
}

.tix-js .tix_tickets_table.tix-tickets-list tbody tr:last-child th,
.tix-js .tix_tickets_table.tix-tickets-list tbody tr:last-child td {
	border-bottom: none;
}

.tix-js .tix_tickets_table.tix-tickets-list tbody .tix-column-description {
	text-align: left;
}

.tix-js .tix_tickets_table.tix-tickets-list tbody .tix-ticket-title {
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--wp--preset--color--custom-trinidad-100);
/* navy */
	text-transform: none;
	background: none;
	padding: 0;
	display: block;
}

.tix-js .tix_tickets_table.tix-tickets-list tbody .tix-column-price {
	font-weight: 700;
	font-size: 1.15rem;
}

.tix-js .tix_tickets_table.tix-tickets-list tbody .tix-column-remaining {
	font-weight: 700;
	color: #6b7280;
}

.tix-js .tix_tickets_table.tix-tickets-list tbody .tix-column-quantity select {
	font-size: .9rem;
	color: var(--wp--preset--color--custom-trinidad-100);
	padding: 10px 14px !important;
	border: 2px solid var(--wp--preset--color--custom-trinidad-100);
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
	min-width: 72px;
	transition: border-color .15s ease;
}

.tix-js .tix_tickets_table.tix-tickets-list tbody .tix-column-quantity select:hover,
.tix-js .tix_tickets_table.tix-tickets-list tbody .tix-column-quantity select:focus {
	border-color: var(--wp--preset--color--custom-mandy-dark);
	outline: none;
}

/* The Register button's  wrapper is float:right (theme) → it drifts far from the
   table. Anchor it under the 640px table, aligned to the table's right edge. */
.tix-js .tix_tickets_table.tix-tickets-list ~ p {
	float: none !important;
	text-align: right;
	margin: 0;
}

/*--- Forms & order summary: fonts (labels Mulish, values Lora) ---*/
/* Field/summary labels: small-caps meta feel in Mulish. Covers the
   attendee, receipt, private and ticket forms + the invoice details. */
.tix-js .tix-left {
	font-weight: 700;
	color: #1f2a44;
}

/* Values stay in Lora (inherited from .tix-js base) — nothing to set. */
.tix-js .tix_tickets_table.tix-order-summary .tix-row-total th,
.tix-js .tix_tickets_table.tix-order-summary .tix-row-total td {
	font-weight: 700;
	font-size: .95rem;
	color: var(--wp--preset--color--custom-trinidad-100);
/* navy #1333A6 */
}

/* Coupon field (only rendered when coupons are enabled) — keep it on-brand. */
.tix-js .tix-coupon,
.tix-js #tix-coupon-container,
.tix-js .tix-coupon-container {
	margin: 1rem 0 1.5rem;
}

/*--- Order summary layout ---*/
.tix-js .tix_tickets_table.tix-order-summary {
	width: 100%;
	margin-top: 2rem;
}

.tix-js .tix_tickets_table.tix-order-summary .tix-row-total td:last-child {
	border-top: 1px solid gray;
}

.tix-js .tix_tickets_table.tix-order-summary tbody th,
.tix-js .tix_tickets_table.tix-attendee-form tbody th,
.tix-js .tix_tickets_table.tix-order-summary tbody td,
.tix-js .tix_tickets_table.tix-attendee-form tbody td {
	border: none;
	padding: 5px 20px;
}

.tix-js .tix_tickets_table tbody th {
	text-align: left;
}

.tix-js .tix_tickets_table.tix-attendee-form .tix-left {
	text-align: right;
	padding-right: .5em;
}

.tix-js .tix_tickets_table.tix-attendee-form .tix-left:after {
	content: ':';
}

.tix-js .tix_tickets_table.tix-attendee-form .tix-right {
	text-align: left;
	padding-left: .5em;
}

.tix-js .tix_tickets_table.tix-attendee-form .tix-left,
.tix-js .tix_tickets_table.tix-attendee-form .tix-right {
	padding-top: 1.5em;
	vertical-align: bottom;
}

.tix-js .tix_tickets_table.tix-attendee-form .tix-row-health-advisory .tix-left {
	text-align: left;
}

.tix-js .tix_tickets_table.tix-attendee-form .tix-row-health-advisory .tix-left p {
	margin-bottom: 1em;
}

.tix-js .tix_tickets_table.tix-attendee-form .tix-row-health-advisory .tix-left::after {
	content: none;
}

.tix-js .camptix-invoice-toggle-wrapper {
	display: block;
	margin-top: 2rem;
	margin-bottom: 2rem;
}

.tix-js .camptix-invoice-toggle-wrapper label {
	font-weight: bold;
}

.tix-js .camptix-invoice-toggle-wrapper table label {
	font-weight: normal;
}

.tix-js .camptix-invoice-toggle-wrapper .camptix-invoice-details {
	width: 100%;
	margin-bottom: 2em;
}

.tix-js .camptix-invoice-toggle-wrapper .camptix-invoice-details td {
	border: none;
}

.tix-js .camptix-invoice-toggle-wrapper .camptix-invoice-details .tix-left {
	text-align: right;
	padding-right: .5em;
}

.tix-js .camptix-invoice-toggle-wrapper .camptix-invoice-details .tix-left:after {
	content: ':';
}

.tix-js .camptix-invoice-toggle-wrapper .camptix-invoice-details .tix-right {
	text-align: left;
	padding-left: .5em;
}

.tix-js .camptix-invoice-toggle-wrapper .camptix-invoice-details .tix-left,
.tix-js .camptix-invoice-toggle-wrapper .camptix-invoice-details .tix-right {
	padding-top: 1.5em;
	vertical-align: bottom;
}

.tix-js .tix-submit {
	display: block;
	margin-bottom: 3em;
}

/* Register / checkout — our standard site button: navy pill, white text
   (matches .wp-block-button__link). No yellow, no font-family. */
.tix-js input[type='submit'],
.tix-checkout-button {
	font-size: .9rem;
	letter-spacing: .5px;
	margin-top: 2rem;
	padding: 14px 34px !important;
	background-color: var(--wp--preset--color--custom-trinidad-100);
	border: 2px solid var(--wp--preset--color--custom-trinidad-100) !important;
	color: #fff;
	text-transform: uppercase;
	border-radius: 999px;
	cursor: pointer;
	transition: all .15s ease;
}

.tix-js input[type='submit']:hover,
.tix-checkout-button:hover {
	background-color: #fff;
	color: var(--wp--preset--color--custom-trinidad-100);
	border: 2px solid var(--wp--preset--color--custom-trinidad-100) !important;
}

.tix-js #tix-registration-information {
	margin-top: 2rem;
	margin-bottom: 2rem;
}

.tix-js .tix-payment-method .tix-payment-tab {
	border-color: var(--wp--preset--color--custom-trinidad-100);
}

.tix-js .tix-payment-method-container fieldset {
	border: 1px solid var(--wp--preset--color--custom-trinidad-100);
}

/*--- "Your tickets" summary (.tix-ticket-form — thank-you / access page) ---*/
/* Same branded card as the purchase table. Inherits site fonts. */
.tix-js .tix-ticket-form {
	width: 100%;
	border-collapse: separate !important;
/* + overflow:hidden → rounded corners */
	border-spacing: 0 !important;
	border: none;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(19, 51, 166, 0.12);
	margin: 0 0 2rem;
	background: #fff;
}

.tix-js .tix-ticket-form thead th {
	background-color: var(--wp--preset--color--custom-trinidad-100) !important;
/* navy #1333A6 */
	color: #fff !important;
	text-align: left;
	font-size: .72rem;
	letter-spacing: .5px;
	text-transform: uppercase;
	font-weight: 700;
	padding: 16px 20px !important;
	border: none;
}

.tix-js .tix-ticket-form tbody td {
	border: none;
	border-bottom: 1px solid #f0f0f2;
	padding: 18px 20px !important;
	vertical-align: top;
	background: #fff;
}

.tix-js .tix-ticket-form tbody tr:last-child td {
	border-bottom: none;
}

.tix-js .tix-ticket-form tbody td strong {
	color: var(--wp--preset--color--custom-trinidad-100);
/* attendee name in brand navy */
	font-size: 1.05rem;
}

/* (removed the inherited `border-collapse: collapse` on .tix-tickets-list —
   it fought the card's separate/rounded corners above.) */
/* ======================== END OF CAMPTIX / TICKETS ======================== */
.entry-content input,
.entry-content select {
	font-size: 1rem;
	padding: 10px;
	font-family: 'Lora';
}

.package-avl-table a {
	font-size: 32px;
	text-decoration: none;
}

/* Smooth scrolling unless user prefers otherwise */
@media screen and (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

/* Organizers Page */
.wordcamp-image__avatar-container img {
	width: 100%;
	height: auto;
}

/** Sponsor featured image width **/
.single-wcb_sponsor .wp-block-post-featured-image {
	max-width: 650px;
}

.home-purchase-tix-button a:hover {
	border: 2px solid var(--wp--preset--color--custom-trinidad-100) !important;
	color: #000000 !important;
}

.wp-block-post-featured-image img,
.wp-block-post-featured-image .block-editor-media-placeholder,
.wp-block-post-featured-image .wp-block-post-featured-image__overlay {
	border-radius: 0;
}

.web-log-2024 .wp-block-post-excerpt__more-link {
	background-color: #F9B233 !important;
	border: 3px solid #F9B233 !important;
	font-size: 18px;
	padding: 15px 30px;
	margin-top: 10px;
	text-decoration: none;
}

.web-log-2024 .wp-block-post-excerpt__more-link:hover {
	background-color: #ffffff !important;
	border: 3px solid #F9B233 !important;
	text-decoration: none;
}

.mini-community-spotlight .wp-block-post-title::before {
	content: "Get to know ";
}

.mini-community-spotlight .wp-block-read-more:hover {
	background-color: #ffffff !important;
	border: 3px solid #F9B233 !important;
}

/* Attendee list avatar */
.tix-attendee-list .avatar {
	width: 225px !important;
}

.spotlight-organizer .wp-block-quote p {
	font-style: normal !important;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
}

.spotlight-organizer h4 {
	padding-top: var(--wp--preset--spacing--20);
	padding-right: var(--wp--preset--spacing--30);
	padding-left: var(--wp--preset--spacing--30);
}

/* Media partners mobile */
@media (max-width:767px) {
	.page-id-1477 .wp-container-core-group-is-layout-9.wp-container-core-group-is-layout-9,
		.page-id-1477 .wp-container-core-group-is-layout-13.wp-container-core-group-is-layout-13,
		.page-id-1477 .wp-container-core-group-is-layout-17.wp-container-core-group-is-layout-17,
		.page-id-1477 .wp-container-core-group-is-layout-21.wp-container-core-group-is-layout-21,
		.page-id-1477 .wp-container-core-group-is-layout-24.wp-container-core-group-is-layout-24 {
		grid-template-columns: 1fr;
	}
}

/* End of media rule @media (max-width:767px) */
/* schedule styling */
.wordcamp-schedule__day, .wordcamp-schedule__session {
	background-color: #FEF7EB !important;
	font: 500 26px/40px 'Lora', serif;
}

.wordcamp-schedule .wordcamp-schedule__column-header {
	background-color: #FBD185 !important;
	padding: 20px !important;
}

@media ( min-height: 1000px ) {
	.wordcamp-schedule .wordcamp-schedule__column-header {
		padding: 54px 69px !important;
	}
}

.wordcamp-schedule__time-slot-header {
	background-color: #FDE0AD !important;
	font: 500 26px/40px 'Lora', serif;
	border-left: 13px solid #FBD185 !important;
}

.wordcamp-schedule__date {
}

.wp-block-wordcamp-schedule .wordcamp-schedule .wordcamp-schedule__day {
	background-color: #FEF7EB !important;
	width: fit-content;
}

h4.wordcamp-schedule__session-title, .wordcamp-schedule__day p {
	font: 500 26px/40px 'Lora';
}

.wordcamp-schedule__session-speakers a {
	font: 600 16px/24px 'Mulish', sans-serif;
	color: #C24F1B;
}

.pre-schedule-info .wp-block-cover__image-background {
	object-fit: contain !important;
}

.is-spanning-some-tracks h4.wordcamp-schedule__session-title,
.is-spanning-some-tracks .wcb-session-favourite-icon {
	display: inline-block;
	text-align: center !important;
}

/* speaker landing */
.wcb_speaker .wordcamp-image__avatar-container::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100px;
/* Adjust with the over image */
	background-image: url('/files/2026/04/Organizer-Border-Pink.png');
	background-repeat: no-repeat;
	background-size: cover;
}

.speaker-single-session p a {
	text-decoration: none;
}

.speaker-single-session p a:hover {
	text-underline-offset: 3px;
	transition: all .2s;
	text-decoration: underline;
	text-decoration-thickness: 3px;
}

.speaker-single-session h4 {
	line-height: 0;
}

.speaker-image-featured-small, .speaker-image-featured, .speaker-image-query {
	position: relative;
}

.speaker-image-featured::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 75px;
/* Adjust with the over image */
	background-image: url('files/2024/04/Rectangle-11962.png');
	background-repeat: no-repeat;
	background-size: cover;
}

.speaker-image-featured::before {
	content: "";
	position: absolute;
	top: 90px;
	left: -250px;
	width: 100%;
	height: 100%;
	background-image: url('files/2024/04/Abstract-Shapes-27.png');
	background-repeat: no-repeat;
	background-size: contain;
	z-index: -99;
}

.speaker-image-query {
	width: 410px !important;
	height: 410px !important;
}

.speaker-image-featured-small::after, .speaker-image-query::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 55px;
/* Adjust with the over image */
	background-image: url('files/2024/04/Rectangle-11962.png');
	background-repeat: no-repeat;
	background-size: cover;
}

.page-id-1203 .columns-3.is-layout-grid {
	grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
}

/* speakers mobile */
@media (max-width:767px) {
	.speaker-image-featured {
		width: 335px !important;
		height: 335px !important;
	}
	
	.speaker-image-query {
		width: 350px !important;
		height: 350px !important;
	}
	
	.speaker-image-featured::before {
		left: -90px !important;
	}
	
	.speaker-image-featured-small {
		width: 320px !important;
		height: 320px !important;
	}
	
	.speaker-image-featured-small img {
		width: 100% !important;
	}
	
	.speaker-image-featured-small::after,
		.speaker-image-featured::after,
		.speaker-image-query::after {
		height: 65px !important;
	}
}

/* End of media rule @media (max-width:767px) */
/* session single */
.session-single-details .wp-block-wordcamp-session-speakers__name a,
.session-single-details .taxonomy-wcb_session_category a {
	text-decoration: none;
}

.session-single-details .wp-block-wordcamp-session-date,
.session-single-details .taxonomy-wcb_track a {
	text-decoration: none;
}

.session-single-details .wp-block-wordcamp-session-speakers__name a,
.session-single-details .taxonomy-wcb_session_category a {
	text-decoration: none;
}

.session-single-details .wp-block-wordcamp-session-date,
.session-single-details .taxonomy-wcb_track a {
	text-decoration: none;
}

.session-single-details .session-slides-link a,
.session-single-details .session-video-link a {
	text-decoration: none;
}

.wp-block-wordcamp-avatar img {
	max-height: 100% !important;
}

/* Hack for mobile table sizes by Juan Hernando */
@media (max-width: 767px) {
	h2#sizes ~ .wp-block-table tbody > tr:first-of-type {
		display: none;
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td::before {
		background: #000;
		content: '';
		color: #fff;
		display: inline;
		font-weight: bold;
		margin-top: 3px;
		width: 70px;
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td:nth-of-type(2)::before {
		content: 'XS';
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td:nth-of-type(3)::before {
		content: 'S';
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td:nth-of-type(4)::before {
		content: 'M';
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td:nth-of-type(5)::before {
		content: 'L';
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td:nth-of-type(6)::before {
		content: 'XL';
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td:nth-of-type(7)::before {
		content: 'XXL';
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td:nth-of-type(8)::before {
		content: '3XL';
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td:nth-of-type(9)::before {
		content: '4XL';
	}
	
	h2#sizes ~ .wp-block-table tbody > tr td:nth-of-type(10)::before {
		content: '5XL';
	}
}

/* Favorites solution by by Juan Hernando */
.wcb-favourite-session .wcb-session-favourite-icon a.fav-session-button,
.wordcamp-schedule div.wcb-session-favourite-icon a.fav-session-button:hover,
.wordcamp-schedule div.wcb-session-favourite-icon a.fav-session-button:focus:hover,
.wordcamp-schedule .wcb-favourite-session div.wcb-session-favourite-icon a.fav-session-button:focus {
	color: #ffb900;
}

.wordcamp-schedule .wcb-favourite-session div.wcb-session-favourite-icon a.fav-session-button:hover,
.wordcamp-schedule div.wcb-session-favourite-icon a.fav-session-button:focus {
	color: #aaa;
}

/* Sponsors */
.sponsors img {
	object-fit: contain !important;
}

/* ======================== START OF HOME SPONSORS SECTION ======================== */
/* Home sponsors section (reusable) — style a Query Loop of wcb_sponsor
   (core/query + post-template + post-featured-image) like the 2025 site.
   Add class `wca-sponsors` to the Group that wraps the title + Query blocks.
   Per-package logo size AND columns are keyed off the level class WordPress
   auto-adds to each sponsor  (wcb_sponsor_level-) — so NO extra
   classes are needed, and a lone sponsor never blows up in size. Each Query
   must be filtered to a single level for clean columns. 2026-07 */
.wca-sponsors .wp-block-post-template {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wca-sponsors .wp-block-post-template > li {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
}

/* Per-package size + columns, driven by WP's auto level class on each .
   width = (100% - (cols-1)*gap) / cols  → fixed cols-per-row, no stretch. */
.wca-sponsors li.wcb_sponsor_level-global,
.wca-sponsors li.wcb_sponsor_level-gold {
	width: calc((100% - 3rem) / 3);
/* 3 per row */
}

.wca-sponsors li.wcb_sponsor_level-premium {
	width: calc((100% - 4.5rem) / 4);
/* 4 per row */
}

.wca-sponsors li.wcb_sponsor_level-business,
.wca-sponsors li.wcb_sponsor_level-media-sponsors {
	width: calc((100% - 6rem) / 5);
/* 5 per row */
}

/* logo cell — plain like 2025 (no card), centered; 120px default, per-package
   height set below. NB: heights are plain px (not CSS custom properties) — the
   WordCamp CSS sanitizer strips `--custom-prop:` declarations, so a var()
   approach silently fell back to the default. */
.wca-sponsors .wp-block-post-featured-image {
	margin: 0;
	height: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity .2s ease, transform .2s ease;
}

/* per-package logo height (keyed off WP's auto level class on each ) */
.wca-sponsors li.wcb_sponsor_level-global .wp-block-post-featured-image,
.wca-sponsors li.wcb_sponsor_level-gold .wp-block-post-featured-image {
	height: 200px;
}

.wca-sponsors li.wcb_sponsor_level-premium .wp-block-post-featured-image {
	height: 170px;
}

.wca-sponsors li.wcb_sponsor_level-business .wp-block-post-featured-image {
	height: 150px;
}

.wca-sponsors li.wcb_sponsor_level-media-sponsors .wp-block-post-featured-image {
	height: 120px;
}

.wca-sponsors .wp-block-post-featured-image:hover {
	transform: translateY(-3px);
	opacity: .8;
}

.wca-sponsors .wp-block-post-featured-image a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

/* logo never distorts, never overflows the cell */
.wca-sponsors .wp-block-post-featured-image img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	padding: 1rem;
/* !important: the block sets object-fit:cover inline, which would crop
	   logos. Scoped to our .wca-sponsors img only. */
	object-fit: contain !important;
	aspect-ratio: auto;
}

/* logo-wall needs no pager; hide it if a Pagination block was left in */
.wca-sponsors .wp-block-query-pagination {
	display: none;
}

/* Heading colours are intentionally NOT set here — the admin picks them per
   heading in the editor (block colour settings). Forcing them in CSS hit the
   wrong headings when the section is reused / heading levels change. */
/* "Όλοι οι χορηγοί" — design: transparent, blue text, bottom rule only */
.wca-sponsors .wp-block-button__link {
	background-color: transparent;
	color: #1333a6;
	border: 0;
	border-bottom: 4px solid #1333a6;
	border-radius: 0;
	transition: color .2s ease, border-color .2s ease, opacity .2s ease;
}

.wca-sponsors .wp-block-button__link:hover,
.wca-sponsors .wp-block-button__link:focus {
	color: #0e2578;
	border-bottom-color: #0e2578;
	opacity: .9;
}

.wca-sponsors .wp-block-button__link:focus-visible {
	outline: 2px solid #1333a6;
	outline-offset: 3px;
}

/* Two identical "all sponsors" buttons, never shown together:
   - top button (inside the header group) → desktop only
   - bottom button (a Buttons block placed as a DIRECT child of the section,
     after the last tier) → tablet & down only.
   Bottom button is hidden by default; the breakpoint swaps them. */
.wca-sponsors > .wp-block-buttons {
	display: none;
	justify-content: center;
}

@media (max-width: 1024px) {
	.wca-sponsors > .wp-block-group .wp-block-buttons {
		display: none;
	}
	
	.wca-sponsors > .wp-block-buttons {
		display: flex;
	}
}

@media (max-width: 767px) {
	.wca-sponsors .wp-block-post-template {
		gap: 1rem;
	}
	
	.wca-sponsors li.wcb_sponsor_level-global,
		.wca-sponsors li.wcb_sponsor_level-gold {
		width: calc((100% - 1rem) / 2);
	/* 2 per row */
	}
	
	.wca-sponsors li.wcb_sponsor_level-premium,
		.wca-sponsors li.wcb_sponsor_level-business,
		.wca-sponsors li.wcb_sponsor_level-media-sponsors {
		width: calc((100% - 2rem) / 3);
	/* 3 per row */
	}
	
	.wca-sponsors li.wcb_sponsor_level-global .wp-block-post-featured-image,
		.wca-sponsors li.wcb_sponsor_level-gold .wp-block-post-featured-image {
		height: 140px;
	}
	
	.wca-sponsors li.wcb_sponsor_level-premium .wp-block-post-featured-image {
		height: 120px;
	}
	
	.wca-sponsors li.wcb_sponsor_level-business .wp-block-post-featured-image {
		height: 105px;
	}
	
	.wca-sponsors li.wcb_sponsor_level-media-sponsors .wp-block-post-featured-image {
		height: 80px;
	}
}

/* ======================== END OF HOME SPONSORS SECTION ======================== */
/* ======================== START OF PAGE BACKGROUND HELPER ======================== */
/* Page background helper — add class `wca-bg-cream` to the  of any page
   that should use the cream background (e.g. attendees). Reusable, no page-id.
   If you can't set a body class in the editor, use the auto slug class instead,
   e.g. body.page-slug-attendees { background-color: #faf8f2; } */
body.wca-bg-cream {
	background-color: #faf8f2;
}

/* ======================== END OF PAGE BACKGROUND HELPER ======================== */
/* ======================== START OF ATTENDEE LIST ======================== */
/*--- Attendees list (.tix-attendee-list) — round avatars + names, per Figma
   (node 385-2217). Component-scoped so it works on any attendees list; the
   volunteers page keeps its own smaller avatar (more specific legacy rule).
   No font-family — the name inherits the site's configured font. 2026-07 */
.tix-attendee-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3.5rem 1.5rem;
	justify-items: center;
}

/* id-scoped + !important: the theme sets li float:left + a narrow width that
   squeeze the name onto 2 lines; we must beat it to fill the grid cell. */
#tix-attendees .tix-attendee-list li {
	height: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
/* design: 25px between avatar / name */
	text-align: center;
	width: 100% !important;
/* fill the grid cell so the name has room + centers */
	float: none !important;
/* kill the theme's float:left (overlap culprit) */
	margin: 0 !important;
/* spacing comes from the grid gap, not li margins */
}

/* name on a single line (first + last side by side; wraps only if very long) */
#tix-attendees .tix-attendee-name {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 .35em;
}

/* round avatar, 120px (design) */
.tix-attendee-list li img.avatar {
	width: 120px !important;
	height: 120px !important;
	max-width: 120px;
	border-radius: 50%;
	object-fit: cover;
	aspect-ratio: 1 / 1;
}

/* name: bold, 26px, brand almost-black, tracked (design). The theme sizes the
   inner spans with an #id + !important rule, so we must match with #tix-attendees
   and !important to win. */
#tix-attendees .tix-attendee-name,
#tix-attendees .tix-attendee-name .tix-first,
#tix-attendees .tix-attendee-name .tix-last {
	font-weight: 800 !important;
	font-size: 1.625rem !important;
	letter-spacing: 1px !important;
	line-height: 1.2;
	color: #2b2b2b !important;
	margin-left: 0;
}

@media (max-width: 767px) {
	.tix-attendee-list {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 2rem 1rem;
	}
	
	.tix-attendee-list li img.avatar {
		width: 90px !important;
		height: 90px !important;
	}
	
	#tix-attendees .tix-attendee-name,
		#tix-attendees .tix-attendee-name .tix-first,
		#tix-attendees .tix-attendee-name .tix-last {
		font-size: 1.25rem !important;
	}
}

/* ======================== END OF ATTENDEE LIST ======================== */
/* 2025/11/18 Volunteers page fix by CL */
.page-slug-volunteers .tix-attendee-list li {
	margin-block: 3rem;
}

.page-slug-volunteers .tix-attendee-list .avatar {
	width: 50px !important;
}

/* Language switching*/
/* Hide the English version of the page by default */
.lang-en,
.is-layout-flex.lang-en {
	display: none;
}

/* Hide the Greek version of the page when on the English page*/
body.page-slug-en .lang-el {
	display: none;
}

/* Show the English version of the page when on the English page*/
body.page-slug-en .lang-en {
	display: block;
}

body.page-slug-en .is-layout-flex.lang-en,
body.page-slug-en .wp-block-navigation__container.lang-en {
	display: flex;
}

/*--- ORGANIZER CARDS (reusable component) ---*/
/* 2026/07 by Claude — Match WCA2026 Figma "Member Cards" (node 385:1949, 1399x448,
   photo flush-left, padded text). Scoped to the .wcb_organizer block only, so it
   applies to every Organizers block instance site-wide — no page-id / page-slug. */
/* The card box */
.wcb_organizer > .wp-block-columns {
	gap: clamp(1rem, 2.5vw, 1.75rem);
/* breathing room between photo and text */
	align-items: stretch;
/* photo fills the full card height */
	overflow: hidden;
/* clip the photo to the card edges */
/* Lets the white card read as a box on a white page. NOTE: the design gets this
	   from a cream SECTION background instead — if we set that at the page/group
	   level in the Site Editor, this shadow can be removed. */
	box-shadow: 0 4px 24px rgba(13, 38, 107, 0.08);
}

/* Photo column */
.wcb_organizer > .wp-block-columns > .wp-block-column:first-child {
	flex: 0 1 25%;
	align-self: stretch;
	display: flex;
/* center the fixed-ratio photo within the column */
	align-items: center;
	justify-content: flex-start;
}

/* Uniform photo box — a fixed aspect ratio on EVERY card and EVERY viewport, so the
   avatars no longer stretch to the (variable) card height. object-fit: cover keeps them
   filled and consistent; object-position: center top keeps faces in frame. */
.wcb_organizer .wp-block-wordcamp-avatar {
	width: 100% !important;
	height: auto !important;
	max-width: 600px;
/* keeps the photo sensible when the card stacks full-width */
	aspect-ratio: 1 / 1;
/* square; switch to 4 / 5 for a portrait crop */
	margin: 0;
}

.wcb_organizer .wp-block-wordcamp-avatar a {
	display: block;
	height: 100%;
}

.wcb_organizer .wp-block-wordcamp-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
}

/* Text panel — generous inner padding, vertically centered next to the photo */
.wcb_organizer > .wp-block-columns > .wp-block-column:last-child {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	padding-left: 0;
/* flush against the photo on desktop (row layout) */
}

/* Social row spacing under the bio — applies to the organizer card (archive/grid,
   .wcb_organizer) AND the single organizer page (.single-wcb_organizer). Always
   scoped via .wp-block-post-content so the global header/footer social blocks that
   also live on these pages are never touched. */
.wcb_organizer .wp-block-post-content .wp-block-social-links,
.single-wcb_organizer .wp-block-post-content .wp-block-social-links {
	margin-top: 1rem;
	gap: .5rem;
/* small, even spacing between the icons (block ships with gap:0) */
}

/* Uniform brand-blue social icons — the design uses one colour for every network,
   not WordPress' default per-brand colours (Instagram magenta, gray link, etc.).
   NOTE: #1e2f97 is SAMPLED from the Figma design crop; swap for the exact token
   once the Figma MCP quota is available. */
.wcb_organizer .wp-block-post-content .wp-social-link,
.single-wcb_organizer .wp-block-post-content .wp-social-link {
	background-color: #1e2f97 !important;
}

.wcb_organizer .wp-block-post-content .wp-social-link svg,
.single-wcb_organizer .wp-block-post-content .wp-social-link svg {
	fill: #ffffff !important;
}

/* Organizer bio code blocks: the "custom-color-2" preset resolves to white, so the code
   rendered white-on-white (invisible). Force a readable dark-navy background. */
.wcb_organizer .wp-block-code,
.single-wcb_organizer .wp-block-post-content .wp-block-code {
	background-color: #0d266b !important;
	color: #ffffff !important;
}

/* Stacked layout — photo on top, text below. Breakpoint matches WP core's own
   column-stacking threshold (781px) so there's no flush-left gap in the 768–781 band. */
@media (max-width: 781px) {
	.wcb_organizer > .wp-block-columns {
		flex-direction: column;
	}
	
	.wcb_organizer > .wp-block-columns > .wp-block-column:first-child {
		flex-basis: auto;
	}
	
	/* restore left padding once the text sits below the photo
		   (!important beats the block's inline padding-left:0) */
	.wcb_organizer > .wp-block-columns > .wp-block-column:last-child {
		padding-left: clamp(1.25rem, 5vw, 1.75rem) !important;
	}
}

/*--- Skyline band (reusable full-width pattern) ---*/
/* 2026/07 by Claude — the WordCamp skyline strip that sits under the header.
   Add the class `skyline-band` to any FULL-WIDTH (alignfull) Group / Cover / Spacer
   block, anywhere on the site: the blue fills the entire width and the SVG pattern
   repeats horizontally. The tile is exactly ONE pattern period (993.25px) so repeat-x
   is seamless on any screen width. Height scales with the viewport (195/1920 = 10.15%),
   matching the design ratio, clamped so it stays sensible on phones and ultra-wide.
   Asset: upload header-skyline-band-tile.svg to the media library and point the URL
   below at its /files/ path (see note in ONBOARDING/commit message about SVG uploads). */
.skyline-band {
	width: 100%;
	height: clamp(96px, 10.15vw, 195px);
	background-color: #448EF6;
/* fills the full width, even beyond the tiles */
	background-image: url('/files/2026/07/header-skyline-band-tile.svg');
	background-repeat: repeat-x;
	background-position: center top;
	background-size: auto 100%;
/* tile scales to the band height, then repeats */
}

/*--- Footer social icons — responsive size ---*/
/* 2026/07 by Claude — the footer "follow us" block uses the "huge" icon size, which is
   oversized on phones/tablets. Shrink it below 781px. Targets the huge-size modifier only,
   so it stays reusable and never affects the small organizer-card social icons. */
@media (max-width: 781px) {
	/* Scale via font-size ONLY: the glyph (1em) and its padding scale together, so the
		   circle stays round and the icon stays centred. huge = 48px (→ ~72px circle);
		   34px → ~51px circle — smaller than desktop but not tiny. */
	.wp-block-social-links.has-huge-icon-size {
		font-size: 34px !important;
		gap: 12px !important;
	}
}

/*--- Newsletter (Jetpack subscription form) ---*/
/* 2026/07 by Claude — close the thin gap ("keno") between the email field and the
   Subscribe button so they read as a single bar. The button ships with margin-left:1px
   and both controls have a 2px border, so a sliver of the section background shows
   between them; overlap the shared border instead of leaving the gap. */
.wp-block-jetpack-subscriptions__form-elements .wp-block-button__link {
	margin-left: -2px !important;
}

/*--- Community grid ("Η κοινότητα του WordCamp") ---*/
/* 2026/07 by Claude — row of square, whole-clickable cards linking to the community
   sections. Reusable via the block classes (.community-grid / .community-card), no
   id/slug. Responsive: 5 per row on desktop → 3 per row on tablet (3+2) → 2 per row on
   mobile (2+2+1); the shorter last row centres because the grid is centre-justified.
   Icons are placeholders (emoji) until the real white line-icons are supplied. */
.community-grid {
	display: flex;
	gap: 1.25rem;
/* fixed gap so the per-row basis maths is exact */
}

/* Higher specificity than WP core's `.wp-block-columns.is-not-stacked-on-mobile
   { flex-wrap: nowrap !important }`, so the cards actually wrap into rows. */
.wp-block-columns.community-grid {
	flex-wrap: wrap !important;
	justify-content: center !important;
}

/* Section heading — left-aligned, bold, same blue as the cards, with clear space below
   it so the title isn't cramped against the cards (per design). */
.community-section .wp-block-heading {
	color: #1e2f97 !important;
	text-align: left;
	margin-bottom: 2.5rem;
}

.community-grid > .wp-block-column {
/* !important beats WP core's `.wp-block-column { flex:1 1 0 }`. grow:0 + shrink:0 so
	   the cards keep their size and WRAP into rows (they don't shrink to cram into one),
	   and a shorter last row simply centres. basis = (100% - (N-1)*gap) / N. */
	flex: 0 0 calc((100% - 5rem) / 5) !important;
/* 5 per row on desktop */
}

.community-card {
	position: relative;
/* anchor for the whole-card link */
	aspect-ratio: 1 / 1;
/* square cards, like the design */
	align-items: center;
	justify-content: center;
	gap: .75rem;
	text-align: center;
	transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

/* the label link is stretched over the whole card → the entire box is clickable */
.community-card a,
.community-card a:hover {
	color: #ffffff;
	text-decoration: none !important;
/* override the global `p a:hover` underline */
}

.community-card a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.community-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 12px 28px rgba(13, 38, 107, 0.30);
	filter: brightness(1.08);
}

/* label font (icon paragraph keeps its large size) */
.community-card p:not(.has-x-large-font-size) {
	line-height: 1.3;
}

/* tablet: 3 per row → 5 wraps to 3 + 2 (last row centred) */
@media (max-width: 1024px) {
	.community-grid > .wp-block-column {
		flex-basis: calc((100% - 2.5rem) / 3) !important;
	}
}

/* mobile: 2 per row → 5 wraps to 2 + 2 + 1 (last row centred) */
@media (max-width: 600px) {
	.community-grid > .wp-block-column {
		flex-basis: calc((100% - 1.25rem) / 2) !important;
	}
}

/*--- Early-bird sponsor top bar ---*/
/* Add class `wca-topbar` to the sticky header Group block (Advanced → Additional CSS class). */
.wca-topbar {
	display: flex !important;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 18px !important;
}

.wca-topbar p,
.wca-topbar .wp-block-buttons {
	margin: 0 !important;
}

/* CTA hover/focus: identical to the default state, just a slightly lighter blue bg.
   High specificity + border/opacity resets to beat the theme's own button-hover
   rules (which otherwise force blue text, a 4px border and a faded bg). */
.wca-topbar .wp-block-buttons .wp-block-button .wp-block-button__link:hover,
.wca-topbar .wp-block-buttons .wp-block-button .wp-block-button__link:focus {
	background-color: #1c46c9 !important;
	color: #fff !important;
	border: none !important;
	opacity: 1 !important;
}

@media (max-width: 600px) {
	.wca-topbar {
		flex-direction: column;
		gap: 8px !important;
	}
}

/*--- Early-bird sponsor pricing row ---*/
/* Add class `wca-sponsor-pricing` to the sponsor pricing Table block
   (Advanced → Additional CSS class). Highlights the Early Bird price row
   (2nd row of the table) in brand orange. — 2026-07 */
.wca-sponsor-pricing tbody tr:nth-child(2) td {
	background: #5091ff !important;
/* brand mple (--custom-wca-26-pattern-mple) */
	color: #fff !important;
	font-weight: 700 !important;
	border-top: 2px solid #5091ff !important;
	border-bottom: 2px solid #5091ff !important;
}

.wca-sponsor-pricing tbody tr:nth-child(2) td:first-child {
	box-shadow: inset 4px 0 0 #0d266b !important;
/* darkest brand blue left accent */
}