/*  
Theme Name: IASP 2026
Theme URI: http://www.factorn.com
Version: 1.0.0
Author: factor &ntilde;
Author URI: http://www.factorn.com
*/



@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@300;500;700&display=swap');
:root {
	--margendepagina: max(50px, calc(50% - 720px));
	--margendeseccion: 50px;
	--color: #004c90;
	--colortexto: #666;
	--coloroscuro: #151515;
	--colorclaro: #F0F0F0;
	--colorsecundario: #60b22e;
	--font: "Barlow", sans-serif;
	--displayfont: "Barlow", sans-serif;
	--interlineado: 1.15lh;
	--margen: 25px;
	--radio: 15px;
	--opacidadhover: .75;
	--shadow: 5px 5px 20px 0 #0002;
}




/************************************ RESET ************************************************/
* {margin: 0; padding: 0; border: 0; outline: 0; list-style: none; text-decoration: none; box-sizing: border-box;}
::-webkit-scrollbar {width: 10px;}
::-webkit-scrollbar-track {background: var(--colortexto);}
::-webkit-scrollbar-thumb {background: white; transition: .2s;}
::-webkit-scrollbar-thumb:hover {background: white;}




/************************************ TEXTO ************************************************/
html {max-width: 100vw; margin-top: 0 !important; font-family: var(--font); font-size: 18px; color: var(--colortexto); scroll-behavior: smooth; overscroll-behavior: none;}
body {color: white; background: var(--color);}




/************************************ MENU ************************************************/
header {display: grid; grid-template-columns: auto 1fr; align-items: center; color: var(--color); background: var(--color); z-index: 1000; position: sticky; z-index: 100; box-shadow: var(--shadow);}

.menu_logo {padding: 0 20px; background: white; border-radius: 0 0 30px 0;}
.menu_logo img {display: block; height: 80px; width: auto; max-width: 100%; object-fit: contain; object-position: left; padding: 10px;}

@media screen and not (max-width: 1400px) {
	.menu_toggle {display: none;}

	.main_menu .menu {display: flex; justify-content: start; margin: 0 15px; padding: 0;}
	.main_menu .menu li {position: relative;}
	.main_menu .menu li a {display: block; padding: 15px; color: white; white-space: nowrap;}
	.main_menu .menu li a:hover {color: #fff9;}

	.main_menu .menu li.action > a {background: var(--colorsecundario); color: white; border-radius: 50px; margin-left: 15px;}
	.main_menu .menu li.action > a:hover {opacity: .8;}
	
	.main_menu .sub-menu {display: none; position: absolute; top: 50px; left: 15px; z-index: 1000; background: white; border-radius: calc(var(--radio) / 1.5); overflow: hidden; box-shadow: var(--shadow);}
	.main_menu .menu li:hover .sub-menu {display: block;}
	.main_menu .sub-menu li:not(:first-child) {border-top: 1px solid var(--colorclaro);}
	.main_menu .sub-menu li a {display: block; padding: 8px 15px; margin: 0; color: var(--colortexto); line-height: normal; text-align: left; background: white; transition: color .15s ease-out;}
	.main_menu .sub-menu li a:hover {color: white; background: var(--colorsecundario);}	
}
@media screen and (max-width: 1400px) {
	header {width: 100%; gap: 0; margin-left: 0; margin-right: 0; border-radius: 0;}

	.menu_toggle {display: flex; justify-content: flex-end; font-size: 1.5rem; border: 0; text-align: right; background: none;}
	.menu_toggle a {flex: 0 0 auto; color: white;}
	.menu_toggle img {padding: 0 25px; cursor: pointer; transition: opacity .1s ease-out;}
	.menu_toggle img:hover {opacity: var(--opacidadhover);}

	.main_menu {display: none; grid-template-rows: max-content 1fr; grid-column: 1 / span 2; background: var(--color); transition: .3s;}
	.main_menu.open {display: grid;}
	.main_menu .menu li {border-top: 2px solid #0002;}
	.main_menu .menu a {display: block; padding: 10px 25px 10px 15px; font-size: 1.5rem; text-align: left; color: white; background: var(--color);}
	.main_menu .menu a:hover {padding: 10px 15px 10px 25px; color: #fff9;}

	.main_menu .sub-menu {display: none;}
}




/************************************ MAIN ************************************************/
h1 {font-family: var(--displayfont); font-size: 3.5rem; margin: 0 0 var(--margendeseccion); line-height: .95em; text-wrap: balance;}
h2 {font-family: var(--displayfont); font-size: 3rem; margin-bottom: var(--margendeseccion); line-height: normal; font-weight: bold; text-wrap: balance;}
h1.centered + h2 {font-size: 1.2rem; max-width: 1200px; margin: 0 auto var(--margendeseccion); color: #b0dace;}
h3 {font-family: var(--displayfont); font-size: 1.5rem; margin-bottom: var(--margen); line-height: normal; text-wrap: balance;}
h3 a {color: currentcolor;}
h3 a:after {content: "🡪"; margin-left: 12px; font-weight: 300; line-height: 0;}
h4 {font-family: var(--font); font-size: 1.2rem; margin-bottom: 1.0rem;}
h4 a {color: currentcolor;}
hr {border-top: 3px solid var(--color); margin: 50px 0;}

a {color: var(--colorsecundario);}

a, img {transition: .15s ease-out;}

.cabecera {display: flex; flex-direction: column; justify-content: center; min-height: 460px; padding: 50px var(--margendepagina); position: relative; overflow: hidden; background: url("images/image-bg.png") no-repeat center left; background-size: contain;}
.cabecera h1 {margin-bottom: 0; font-size: 4.5rem; font-weight: normal;; position: relative; z-index: 1; max-width: 10em;}
.cabecera img {display: block; aspect-ratio: 2/1; width: auto; height: 100%; object-fit: cover; position: absolute; right: 0; top: 0; animation: cabeceraimg 1.5s forwards ease-in-out; mask-image: linear-gradient(to right, #000F 50%, transparent 100%); clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%);}
@keyframes cabeceraimg {
	from {opacity: 0; transform: translateX(10%);}
	to {opacity: 1; transform: translateX(0)}
}

.content {padding: 50px var(--margendepagina); margin: 0 auto; color: var(--colortexto); background: white; line-height: var(--interlineado);}
.content.columns {display: grid; grid-template-columns: 2fr 1fr; gap: 15%;}
.content h2 {color: var(--color);}
.content h3 {color: var(--colorsecundario);}
.content img {max-width: 100%; height: auto;}
.content img.alignnone {border-radius: var(--radio); width: 100%;}
.content p:has(img.alignnone:only-of-type) {margin: 50px 0;}
.content p {margin-bottom: var(--margen);}
.content p:last-child {margin-bottom: 0;}
.content ul {padding-left: 1.5em; margin-bottom: var(--margen);}
.content ul li {list-style: disc;}
.content ol {padding-left: 1.5em; margin-bottom: var(--margen);}
.content ol li {list-style: decimal-leading-zero;}
.content small {display: block; font-size: smaller; line-height: normal; margin-bottom: var(--margen);}
.content blockquote {padding: 30px; border: 2px solid; margin: 50px 0; border-radius: var(--radio); color: var(--color); background: white;}
.content blockquote strong:first-child {display: block; font-size: 1.5rem; margin-bottom: 1lh;}
.content blockquote cite {display: block; text-align: right; font-size: smaller;}
.content table {width: 100%; margin-bottom: var(--margen); border-collapse: collapse; border-spacing: 0; font-size: smaller;}
.content table tr, table td {padding: 10px; border: 1px solid;}
.content del {text-decoration: line-through; opacity: .33;}
.content video {width: 100%; height: auto; border-radius: 10px; overflow: hidden;}

aside {display: grid; gap: 30px; align-items: center; max-width: 900px; padding: 30px; margin: 0 auto 50px; border-radius: var(--radio); color: white; background: var(--color); line-height: normal; text-wrap: balance;}
.home aside {grid-template-columns: 1fr auto; gap: max(30px, 3%); padding: max(30px, 3%);}
.columns aside {position: sticky; top: 150px;}
aside h2, aside h3 {color: currentColor !important;}
aside p:not(:last-child) {margin-bottom: 20px;}

.section {padding: var(--margendeseccion) var(--margendepagina);}
.section > h2:first-child {margin-bottom: var(--margendeseccion);}

.cover {display: flex; flex-direction: column; min-height: calc(100vh - 80px); justify-content: center; align-items: start; position: relative; overflow: hidden; background: url("images/image.png") no-repeat 80% center; background-size: contain;}
.cover img {position: absolute; top: 0; left: 0; z-index: -1; width: 100%; height: 100%; object-fit: contain; object-position: right;}
.cover h1 {font-size: max(3rem, 7vw); max-width: 8em; margin: 0 0 50px; color: white; text-transform: none; max-width: 7em;}
.cover h1 + h2 {margin-top: 0; color: white; font-size: 2.5rem; font-weight: 300; max-width: 15em;}

.welcome {display: grid; grid-template-columns: 60% 1fr; gap: 8%; align-items: center; align-items: center; color: white; color: var(--colortexto); background: white;}
.welcome video {display: block; width: 100%; height: auto; border-radius: var(--radio);}
.welcome img {display: block; width: 100%; height: auto; border-radius: var(--radio);}
.welcome p {margin-bottom: 30px; text-wrap: balance;}
.welcome h2 {color: var(--color);}

.grid {display: grid; grid-template-columns: repeat(auto-fill, minmax(min(500px, 100%), 1fr)); gap: 50px;}
.home .grid {grid-template-columns: repeat(auto-fill, minmax(min(600px, 100%), 1fr));}

.card {border-radius: 10px; border: 3px solid white; color: var(--colortexto); background: white; position: relative; overflow: hidden; box-shadow: 12px 12px 0 var(--colorsecundario);}
.card h3 {color: var(--colorsecundario); margin-top: 0 !important;}
.card div {padding: 20px;}
.card img {display: block; width: 100%; height: auto; margin: 0; object-fit: cover; filter: brightness(.95);}
.page-template-page-subpages .card img {aspect-ratio: 16/9;}
.card a:hover img {filter: none;}
.card h3 {margin: 15px 0 ;}
.card .excerpt {text-wrap: balance; line-height: normal; font-size: smaller;}

.welcome_messages {grid-template-columns: repeat(auto-fill, minmax(min(440px, 100%), 1fr)); align-items: start;}
.welcome_messages img {display: block; width: 160px; margin: 30px auto; border-radius: 100%; aspect-ratio: 1; object-fit: cover;}
.welcome_messages h3 {text-align: center; color: var(--colorsecundario); margin-bottom: 0;}
.welcome_messages h4 {text-align: center; font-weight: 300;}
.welcome_messages hr {border-color: var(--colorsecundario); margin: 1.5em 0;}
.welcome_messages p {line-height: var(--interlineado); margin-top: 1lh; }

.centered {text-align: center;}

ul.check {display: grid; gap: 5px; padding: 0; padding: none; margin: 50px 0;}
ul.check li {display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; padding: 25px 30px 25px 20px; margin: 0; border-radius: 10px; list-style: none; font-size: 1.25rem; line-height: normal; background: var(--colorclaro); text-wrap: balance;}
ul.check li:before {display: block; content: "\2713"; font-size: 3em; margin-top: -5px; line-height: 0; color: var(--color); font-weight: bold; color: var(--colorsecundario);}

ul.fees {display: grid; grid-template-columns: repeat(auto-fill, minmax(min(350px, 100%), 1fr)); gap: 5px; padding: 0; margin: 50px 0;}
ul.fees li {padding: 20px 25px 25px; border-radius: 10px; list-style: none; line-height: normal; background-color: var(--colorclaro); background-size: 40px auto;}
ul.fees li strong:first-child {display: block; margin-bottom: 15px; font-size: 1.25rem; line-height: normal; color: var(--color);}
ul.fees li strong:first-child + br {display: none;}
ul.fees li em {display: block; margin-top: 15px; font-size: small; line-height: normal;}
ul.fees li .button {font-size: .9rem; text-transform: uppercase; margin: 15px 0 0;}

.speakers {grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));}
.speakers img {aspect-ratio: 3/4;}
.speakers .keynote:before {content: "KEYNOTE SPEAKER"; display: block; width: min-content; padding: 8px 12px; border-radius:  0 0 5px 0; position: absolute; top: -2px; left: -2px; z-index: 1; font-size: .75rem; line-height: 1em; font-weight: bold; color: white; background: var(--colorsecundario);}
.speakers .special:before {content: "SPECIAL GUEST"; display: block; width: min-content; padding: 8px 12px; border-radius:  0 0 5px 0; position: absolute; top: -2px; left: -2px; z-index: 1; font-size: .75rem; line-height: 1em; font-weight: bold; color: white; background: var(--colorsecundario);}

.bio {display: grid; grid-template-columns: 1fr 2fr; align-items: start; gap: 10%; padding-bottom: 60px; margin-bottom: 50px; border-bottom: 2px solid var(--color);}
.bio .card {display: flex; flex-direction: column; justify-content: center;}
.bio img {width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; border-radius: var(--radio);}
.bio h1 {margin-bottom: 10px; color: var(--color);}
.bio h3 {margin: 0; text-wrap: balance;}

.programme_intro {margin: var(--margendeseccion);}

.events {display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100vw), 1fr)); align-items: start;}

.event_day:first-child {display: none;}
.event_day div {padding: 0;}
.event_day h2 {font-size: 1.66rem; margin: 30px 0; text-align: center;}
.event_day .event_top {display: flex; flex-direction: row-reverse; justify-content: space-between; margin-bottom: 3px; font-size: .85rem; font-weight: normal; font-style: italic;}
.event_day .keyword {text-transform: capitalize; opacity: .4;}
.event_day .hour {}
.event_day .event {display: grid; padding: 10px 15px; color: var(--colortexto); background: var(--colorclaro); text-wrap: balance;}
.event_day .event:not(.default) span {font-size: larger;}
.event_day .event.ceremony {font-weight: bold; color: white; background: var(--color);}
.event_day .event.dinner {font-weight: bold;color: white; background: #d8c600;}
.event_day .event.new2iasp {font-weight: bold;color: white; background: #004c90;}
.event_day .event.plenary_session {font-weight: bold; color: white; background: #60b22e;}
.event_day .event.side_event {font-weight: bold;color: white; background: #c5a250;}
.event_day .event.tech_tours {font-weight: bold;color: white; background: #69ceb1;}
.event_day .event.breakout {font-weight: bold;color: white; background: #60b22e;}
.event_day .event.members_only {font-weight: bold; color: white; background: #9861ac;}
.event_day .event a {display: block; padding: 4px 10px; margin-top: 20px; border: 2px solid; width: max-content; border-radius: 50px; font-size: small; text-transform: uppercase; color: currentColor;}
.event_day .event small {margin: 0 0 0 20px; font-weight: normal;}
.event_day .event small.group {margin-top: 15px; opacity: .4; font-weight: bold;}
.event_day .event + .event {margin-top: 2px;}

.single-events h1 {font-size: 2.5rem; margin: 40px auto 50px; text-transform: none; text-align: center; text-wrap: balance;}
.single-events h2 {text-align: center; margin: var(--margendeseccion) 0;}

.inline_speaker {display: grid; grid-template-columns: 150px 1fr; gap: 10px; margin-bottom: 10px;}
.inline_speaker img {display: block; width: 100%; height: auto; margin: 0; aspect-ratio: 1; object-fit: cover; border-radius: var(--radio);}
.inline_speaker div:last-child {display: flex; flex-direction: column; justify-content: center; padding: 25px; border-radius: var(--radio); color: var(--colortexto); background: var(--colorclaro);}
.inline_speaker + h3 {margin-top: var(--margen);}
.inline_speaker em {color: var(--colorsecundario);}

.editions_menu {display: flex; justify-content: center; flex-wrap: wrap; margin: 0 auto 50px; gap: 5px; padding: 0;}
.editions_menu li a {display: block; padding: .2em .8em; border-radius: 50px; transition: .2s ease-out; cursor: pointer; color: white; border: 3px solid; opacity: .4;}
.editions_menu li a:hover {opacity: .6;}
.editions_menu li.current-cat a {opacity: 1;}

.responsive-video-container {position: relative; padding-bottom: 56.25%; margin-bottom: var(--margen); height: 0; overflow: hidden; border-radius: var(--radio); overflow: hidden;}
.responsive-video-container iframe, .video-container object, .video-container embed, .video-container video {position: absolute; top: 0; left: 0; width: 100%; height: 100%;}

.button {display: block; width: max-content; padding: 1.25ex 3.0ex; border-radius: 50px; margin: 0; align-self: flex-start; font-size: 1rem; font-weight: bold; color: white; background: var(--colorsecundario); cursor: pointer;}
.button:hover {opacity: .8;}

.see_more {display: flex; gap: 15px; align-items: center; font-weight: bold; text-transform: uppercase; margin-top: 1lh; color: var(--colortexto);}
.see_more:after {display: inline-block; content: " "; width: 40px; height: 20px; background: url("images/arrow.svg") no-repeat center right; transition: .2s ease-out;}
.see_more:hover {opacity: .5;}
.see_more:hover:after {width: 50px;}

.gallery {display: grid; grid-auto-flow: columns; margin: 50px 0 !important; gap: 10px;}
.gallery br {display: none;}
.gallery-columns-2 {grid-template-columns: repeat(2, 1fr);}
.gallery-columns-3 {grid-template-columns: repeat(3, 1fr);}
.gallery-columns-4 {grid-template-columns: repeat(4, 1fr);}
.gallery-columns-5 {grid-template-columns: repeat(5, 1fr);}
.gallery-columns-6 {grid-template-columns: repeat(6, 1fr);}
.gallery-item {width: 100% !important; padding: 8px; margin: 0 !important; border: 2px solid var(--colorclaro);border-radius: var(--radio);}
.gallery-item img {display: block; width: 100%; height: auto; border: 0 !important; aspect-ratio: 4/3; object-fit: cover;}

.page-id-1255 .gallery-item img {aspect-ratio: 2/1; object-fit: contain;}
.page-id-1253 .gallery-item {padding: 0; overflow: hidden; border: 0;}

.page-id-1253 .content ul {display: grid; grid-template-columns: repeat(auto-fill, minmax(min(350px, 100%), 1fr)); gap: 3px; padding: 0;}
.page-id-1253 .content li {display: grid; grid-template-columns: 1fr; padding: 15px 20px; border-radius: 10px; background: var(--colorclaro); transition: .2s ease-out;}
.page-id-1253 .content li:hover {filter: brightness(.95);}

.organisers {display: grid; grid-template-columns: repeat(auto-fill, minmax(min(400px, 100%), 1fr)); gap: 20px;}
.organisers div {display: flex; flex-direction: column; padding: 30px; border-radius: var(--radio); background: var(--colorclaro);}
.organisers strong {font-weight: normal;}
.organisers h3, .organiser strong {color: var(--color);}
.organisers p {margin: 0;}
.organisers p:has(a) {display: flex; gap: 5px; margin-top: 1lh; justify-self: end;}
.organisers a {display: inline-block; padding: 5px 15px; border-radius: 50px; font-size: smaller; color: var(--colorclaro); background: var(--color); opacity: .33;}
.organisers a:hover {opacity: 1;}

.popup {width: 400px; max-width: calc(100% - 45px); position: fixed; z-index: 1000; bottom: 30px; right: 30px; border: 0; padding: 20px; color: var(--colortexto); border-radius: var(--radio); background: white; box-shadow: var(--shadow);}
.popup h3 {color: var(--color);}
.popup p:not(:last-child) {margin-bottom: 1lh;}
.popup span {display: block; float: right; cursor: pointer;}

.paginacion {margin: 50px auto; text-align: center;}
.paginacion .page-numbers {padding: 0 5px;}
.paginacion .page-numbers.current {font-weight: bold;}




/************************************ FOOTER ************************************************/
footer {display: grid; grid-auto-flow: column; align-items: center; padding: 10px 20px; color: white; background: var(--colorsecundario);}

.footer_logo img {display: block; height: 50px; width: auto; max-width: 75%; object-fit: contain; filter: contrast(.5) brightness(10); transition: 1s;}

.copyright {display: flex; flex-wrap: wrap; justify-content: right; padding: 10px; font-size: .9rem; text-align: center; color: white;}
.copyright span, .copyright a {color: currentcolor; margin: 0 15px; opacity: .6;}




/************************************ ADMIN BAR ************************************************/
.admin-bar header {top: 32px;}
.admin-bar .menu_movil {top: 32px;}

@media (max-width: 782px) {
	.admin-bar header {top: 46px;}
	.admin-bar .menu_movil {top: 46px;}
}



/************************************ MEDIA QUERIES ************************************************/
@media all and (max-width: 992px) {
	:root {
		--margendepagina: 5%;
		--margen: 20px;
	}
	html {font-size: 16px;}
	h1 {font-size: 3rem; hyphens: auto;}
	.cover {grid-template-rows: auto auto 1fr; padding-bottom: 55vh; background-position: bottom;}
	.cover h1 {margin-top: 0;}
	.content {grid-template-columns: 1fr; gap: 50px; padding: 50px var(--margendepagina);}
	.content blockquote {padding: 25px;}
	.welcome {grid-template-columns: 1fr;}
	.bio h1 {font-size: 2rem;}
	aside {grid-template-columns: 1fr; gap: 20px;}
	footer {grid-auto-flow: row; padding: 25px;}
	.copyright {display: block; padding: 0; margin-top: 25px; text-align: left;}
}
@media print {
	:root {
		--margendepagina: 0;
		--margen: 1ex;
		--colortexto: black;
		--radio: 3pt;
		--interlineado: 1lh;
	}
	body {margin: 1cm; font-size: 9pt; width: 19cm;}
	header {padding: 0; box-shadow: none; display: block; text-align: center; margin: 0 0 .5cm;}
	.main_menu {display: none;}
	.menu_toggle {display: none;}
	.menu_logo {display: block; padding: 0; margin: 0 auto;}
	.menu_logo img {height: 1.2cm; padding: 0; margin: 0;}
	h1 {font-size: 20pt !important;}
	h2 {font-size: 15pt !important;}
	.parent-pageid-1171 h1 {display: none;}
	.cabecera {padding: 1.5em; print-color-adjust: exact; min-height: auto; background: var(--color); border-radius: var(--radio);}
	.content.columns {display: block;}
	.section {padding: 0; margin: 0;}
	.programme_intro {display: none;}
	.card {border: .5pt solid var(--colortexto);}
	.events {grid-template-columns: 1fr 1fr 1fr 1fr; gap: .2cm; padding: 0; margin: 0; font-size: 6pt; background: var(--color);}
	.event_day {print-color-adjust: exact; box-shadow: .1cm .1cm 0 var(--colortexto); border-radius: var(--radio);}
	.event_day h2 {margin: .8ex 1ex; font-size: 10pt; line-height: 1em; color: var(--colortexto);}
	.event_day .event {padding: .8ex 1ex; border-top: .5pt solid var(--colortexto); margin: 0 !important; background: none;}
	.event_day .event_top {font-size: 5pt; margin: 0;}
	.event_day .event a {display: none;}
	.event_day .event:not(.default) span {line-height: 1em;}
	.event_day .event small {margin-left: 2.5em; font-size: 4pt;}
	.event_day .event small.group {margin-top: 0;}
	.button {display: none;}
	aside {display: none;}
	footer {display: none;}
}
@page {
	size: auto;
	margin: 0mm;
}