/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: IJCAI 2027 Kyoto child theme for Astra.
Version: 2027.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* ==========================================================================
   IJCAI 2027 Kyoto design (Web_Desktop_Kyoto_Presentation.pdf)

   The design is drawn on a 1435px-wide frame; every size below is the
   design value at that width and scales down with the viewport (1435px =
   100vw, so N px => N/14.35 vw), with a readable floor.
   ========================================================================== */

/* GTF Adieu — menu and titles. NOTE: these are the foundry TRIAL files
   supplied with the design (71 glyphs: A-Z a-z 0-9 !&,.?@ and space). A web
   licence is needed before launch; missing glyphs (- : ' ( ) / accents) fall
   back to Archivo Expanded, the closest open wide grotesque. */
@font-face {
	font-family: 'GTF Adieu';
	src: url('fonts/GTFAdieu-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'GTF Adieu';
	src: url('fonts/GTFAdieu-Bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'GTF Adieu';
	src: url('fonts/GTFAdieu-Black.woff2') format('woff2');
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

/* Archivo (OFL), variable weight, 125% width only. Self-hosted. */
@font-face {
	font-family: 'Archivo Expanded';
	src: url('fonts/Archivo-latin.woff2') format('woff2');
	font-weight: 400 900;
	font-stretch: 125%;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Archivo Expanded';
	src: url('fonts/Archivo-latin-ext.woff2') format('woff2');
	font-weight: 400 900;
	font-stretch: 125%;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--k-red: #d3422a;
	--k-pink: #ffc7c8;
	--k-paper: #fbfbfb;
	--k-ink: #000;

	--k-display: 'GTF Adieu', 'Archivo Expanded', 'Helvetica Neue', Arial, sans-serif;
	--k-serif: Palatino, 'Palatino Linotype', 'Book Antiqua', 'URW Palladio L', P052, serif;

	/* design sizes at 1435px */
	--k-fs-title: clamp(16px, 1.742vw, 25px);  /* menu + titles, Adieu Black 25 */
	--k-fs-body: clamp(18px, 1.812vw, 26px);   /* Palatino 26 / 33 */
	--k-fs-link: clamp(15px, 1.463vw, 21px);   /* Adieu Regular/Bold 21 */
	--k-lh-body: 1.27;

	--k-frame: 1435px;
	--k-main: 67.67%;                          /* 971 / 1435 */
	--k-pad-x: clamp(20px, 4.39vw, 63px);      /* main column text inset */
	--k-side-x: clamp(20px, 2.86vw, 41px);     /* sidebar text inset */
	--k-pad-top: clamp(32px, 4.88vw, 70px);

	/* Astra palette, re-pointed from the dark 2026 scheme */
	--ast-global-color-0: var(--k-red);
	--ast-global-color-2: var(--k-ink);
	--ast-global-color-8: var(--k-paper);
}

/* ---- Page frame ---------------------------------------------------------- */

body,
body.ast-separate-container {
	background: #fff;
	color: var(--k-ink);
	font-family: var(--k-serif);
	font-size: var(--k-fs-body);
	line-height: var(--k-lh-body);
}

#page {
	max-width: var(--k-frame);
	margin: 0 auto;
	background: var(--k-paper);
	border-left: 1px solid var(--k-red);
	border-right: 1px solid var(--k-red);
}

@media (max-width: 1437px) {
	#page {
		border-left: 0;
		border-right: 0;
	}
}

strong,
b {
	font-weight: 700;
}

a {
	color: var(--k-red);
}

a:hover,
a:focus {
	color: var(--k-ink);
}

/* ---- Header: menu bar ----------------------------------------------------- */

#masthead .ast-above-header-bar,
#masthead .ast-primary-header-bar,
#masthead .main-header-bar {
	background: var(--k-paper);
	border: 0;
}

@media (min-width: 922px) {
	#masthead .ast-above-header-bar {
		min-height: 0;
	}

	#masthead .site-above-header-wrap {
		max-width: none;
		padding: 0 var(--k-pad-x);
		min-height: clamp(70px, 8.5vw, 122px);
	}

	/* The logotype lives in the hero / page band, not in the menu bar. */
	#masthead #ast-desktop-header .site-header-above-section-left {
		display: none;
	}

	#masthead #ast-desktop-header .site-header-above-section-right,
	#masthead #ast-desktop-header .ast-builder-menu-1,
	#masthead #ast-desktop-header .ast-main-header-bar-alignment,
	#masthead #ast-desktop-header .main-header-bar-navigation,
	#masthead #ast-desktop-header .main-navigation,
	#masthead #ast-desktop-header .main-header-menu {
		flex: 1 1 auto;
		width: 100%;
		margin: 0;
	}

	#masthead #ast-desktop-header .ast-builder-grid-row {
		grid-template-columns: 1fr;
	}

	/* Left-aligned, with the design's ~33px gap between items. */
	#masthead #ast-desktop-header .main-header-menu {
		justify-content: flex-start;
		flex-wrap: nowrap;
		column-gap: clamp(16px, 2.3vw, 33px);
		background: transparent;
	}

	#masthead .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link {
		padding: 0;
		font-family: var(--k-display);
		font-weight: 900;
		font-size: var(--k-fs-title);
		font-stretch: 125%;
		letter-spacing: 0.02em;
		text-transform: uppercase;
		color: var(--k-red);
		line-height: clamp(70px, 8.5vw, 122px);
	}

	#masthead .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link:hover,
	#masthead .ast-builder-menu-1 .main-header-menu > .menu-item:hover > .menu-link,
	#masthead .ast-builder-menu-1 .main-header-menu > .current-menu-item > .menu-link,
	#masthead .ast-builder-menu-1 .main-header-menu > .current-menu-ancestor > .menu-link {
		color: var(--k-ink);
	}

	/* No dropdown chevrons in the design; submenus still open on hover/focus. */
	#masthead .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link .dropdown-menu-toggle {
		display: none;
	}

	/* Dropdowns */
	#masthead .ast-builder-menu-1 .sub-menu {
		width: 300px;
		background: var(--k-paper);
		border: 1px solid var(--k-red);
		box-shadow: none;
		border-radius: 0;
	}

	#masthead .ast-builder-menu-1 .main-header-menu > .menu-item > .sub-menu {
		margin-top: 0;
		top: 100%;
	}

	#masthead .ast-builder-menu-1 .sub-menu .menu-item {
		border: 0;
	}

	#masthead .ast-builder-menu-1 .sub-menu .menu-link {
		padding: 0.7em 1.1em;
		font-family: var(--k-display);
		font-weight: 700;
		font-size: 15px;
		font-stretch: 125%;
		line-height: 1.3;
		text-transform: none;
		color: var(--k-red);
		border: 0;
	}

	#masthead .ast-builder-menu-1 .sub-menu .menu-item:hover > .menu-link,
	#masthead .ast-builder-menu-1 .sub-menu .current-menu-item > .menu-link {
		background: var(--k-pink);
		color: var(--k-red);
	}

	#masthead .ast-builder-menu-1 .sub-menu .dropdown-menu-toggle {
		color: var(--k-red);
	}
}

/* ---- Header: mobile ------------------------------------------------------- */

#masthead .ast-mobile-header-wrap .ast-primary-header-bar {
	border-bottom: 1px solid var(--k-red);
}

#masthead .ast-mobile-header-wrap .custom-logo {
	width: 150px;
	max-width: 150px;
	height: auto;
}

#masthead .ast-mobile-header-wrap .menu-toggle,
#masthead .ast-mobile-header-wrap .menu-toggle:hover,
#masthead .ast-mobile-header-wrap .menu-toggle:focus {
	background: transparent;
	color: var(--k-red);
	border: 0;
}

#masthead .ast-mobile-header-wrap .menu-toggle .ast-mobile-svg {
	fill: var(--k-red);
	width: 32px;
	height: 32px;
}

#masthead .ast-mobile-header-content,
#masthead .ast-mobile-header-content .main-header-menu,
#masthead .ast-mobile-header-content .sub-menu {
	background: var(--k-paper);
}

#masthead .ast-mobile-header-content .menu-link {
	font-family: var(--k-display);
	font-stretch: 125%;
	color: var(--k-red);
	border-color: var(--k-pink);
}

#masthead .ast-mobile-header-content .main-header-menu > .menu-item > .menu-link {
	font-weight: 900;
	font-size: 17px;
	text-transform: uppercase;
}

#masthead .ast-mobile-header-content .sub-menu .menu-link {
	font-weight: 700;
	font-size: 15px;
}

#masthead .ast-mobile-header-content .ast-menu-toggle {
	color: var(--k-red);
}

/* ---- Hero (front page): photo | logotype | photo -------------------------- */

.kyoto-hero {
	display: grid;
	/* 465 | 507 | 464 on the 1435 frame */
	grid-template-columns: 32.4fr 35.33fr 32.33fr;
	aspect-ratio: 1435 / 552;
}

.kyoto-hero__photo {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.kyoto-hero__photo--pagoda {
	background-position: left center;
}

.kyoto-hero__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--k-pink);
	padding: 9.8% 0 7.8%;
}

.kyoto-hero__logo img {
	width: 72%;
	height: auto;
	display: block;
}

@media (max-width: 700px) {
	.kyoto-hero {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto 52vw;
		aspect-ratio: auto;
	}

	.kyoto-hero__logo {
		grid-column: 1 / -1;
		grid-row: 1;
		padding: 36px 0 30px;
	}

	.kyoto-hero__logo img {
		width: min(62%, 280px);
	}
}

/* ---- Inner pages: slim pink band with the logotype ------------------------ */

.kyoto-band {
	background: var(--k-pink);
	border-top: 1px solid var(--k-red);
	border-bottom: 1px solid var(--k-red);
	padding: clamp(20px, 2.8vw, 40px) var(--k-pad-x);
}

.kyoto-band__logo {
	display: inline-block;
	line-height: 0;
}

.kyoto-band__logo img {
	width: clamp(150px, 16.7vw, 240px);
	height: auto;
}

/* ---- Content + sidebar ---------------------------------------------------- */

#content.site-content > .ast-container {
	max-width: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

#content #primary,
.ast-separate-container #content #primary {
	margin: 0;
	padding: var(--k-pad-top) var(--k-pad-x) clamp(32px, 4.7vw, 67px);
	width: 100%;
	border: 0;
	background: transparent;
}

.ast-separate-container #content .ast-article-single,
.ast-separate-container #content .ast-article-post,
.ast-plain-container #content .ast-article-single {
	background: transparent;
	padding: 0;
	margin: 0;
	border: 0;
}

@media (min-width: 922px) {
	.ast-right-sidebar #content #primary {
		width: var(--k-main);
		flex: 0 0 var(--k-main);
	}

	.ast-right-sidebar #content #secondary {
		width: calc(100% - var(--k-main));
		flex: 0 0 calc(100% - var(--k-main));
	}
}

#content #secondary {
	margin: 0;
	padding: var(--k-pad-top) var(--k-side-x) clamp(32px, 4.7vw, 67px);
	background: var(--k-pink);
	border-left: 1px solid var(--k-red);
	font-size: var(--k-fs-body);
	line-height: var(--k-lh-body);
}

#content #secondary .sidebar-main {
	display: block;
	padding: 0;
	margin: 0;
	background: transparent;
	border: 0;
}

@media (max-width: 921px) {
	#content #secondary {
		width: 100%;
		border-left: 0;
		border-top: 1px solid var(--k-red);
	}
}

/* Body copy */

.entry-content,
.entry-content p,
.entry-content li,
#secondary p {
	font-family: var(--k-serif);
	font-size: var(--k-fs-body);
	line-height: var(--k-lh-body);
	color: var(--k-ink);
}

.entry-content p,
#secondary p {
	margin: 0 0 calc(var(--k-lh-body) * 1em);
}

/* The design sets body copy ragged-right with hyphenation. */
.entry-content p,
.entry-content li {
	hyphens: auto;
	-webkit-hyphens: auto;
}

.entry-content a {
	color: var(--k-red);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.entry-content a:hover {
	color: var(--k-ink);
}

/* Titles: GTF Adieu Black, red, uppercase */

.entry-content :is(h1, h2, h3),
.entry-header .entry-title,
#secondary :is(h1, h2, h3, .widget-title) {
	font-family: var(--k-display);
	font-weight: 900;
	font-size: var(--k-fs-title);
	font-stretch: 125%;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--k-red);
	text-decoration: none;
	border: 0;
	padding: 0;
	margin: 2.8em 0 0.95em;
}

.entry-content > :is(h1, h2, h3):first-child,
.entry-header .entry-title,
#secondary .widget:first-child :is(h1, h2, h3, .widget-title):first-child {
	margin-top: 0;
}

.entry-content :is(h4, h5, h6) {
	font-family: var(--k-display);
	font-weight: 700;
	font-stretch: 125%;
	color: var(--k-red);
	line-height: 1.25;
}

.entry-content h4 {
	font-size: var(--k-fs-link);
}

.entry-content :is(h5, h6) {
	font-size: calc(var(--k-fs-link) * 0.85);
}

.entry-header {
	margin-bottom: 0.95em;
}

/* The front page opens with its own "Welcome" title in the content. */
.home .entry-header {
	display: none;
}

.entry-content ul,
.entry-content ol {
	margin: 0 0 calc(var(--k-lh-body) * 1em) 1.2em;
}

/* Sidebar widgets (Quick Access, Important Dates) */

#secondary .widget {
	margin: 0 0 clamp(36px, 4.9vw, 70px);
	padding: 0;
	background: transparent;
	border: 0;
}

#secondary .widget:last-child {
	margin-bottom: 0;
}

#secondary :is(h1, h2, h3, .widget-title) {
	margin: 0 0 1.55em;
}

#secondary ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

#secondary li {
	margin: 0;
	padding: 0;
	font-family: var(--k-display);
	font-size: var(--k-fs-link);
	font-stretch: 125%;
	line-height: 1.62;           /* 34px pitch at 21px */
}

#secondary a {
	color: var(--k-red);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

#secondary a:hover {
	color: var(--k-ink);
}

#secondary em,
#secondary strong {
	font-family: var(--k-serif);
}

/* ---- Footer ---------------------------------------------------------------- */

.kyoto-footer {
	display: grid;
	grid-template-columns: var(--k-main) 1fr;
	border-top: 1px solid var(--k-red);
	background: var(--k-paper);
}

.kyoto-footer__nav {
	padding: clamp(28px, 3.55vw, 51px) var(--k-pad-x) clamp(28px, 3.9vw, 56px) clamp(20px, 4.88vw, 70px);
}

.kyoto-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 35% 31.6% 1fr;
	grid-template-rows: repeat(3, auto);
	grid-auto-flow: column;
	row-gap: clamp(8px, 1.4vw, 20px);
	column-gap: 1em;
}

.kyoto-footer__links li {
	margin: 0;
	font-family: var(--k-display);
	font-weight: 700;
	font-size: var(--k-fs-link);
	font-stretch: 125%;
	line-height: 1;
}

.kyoto-footer__links a {
	color: var(--k-red);
	text-decoration: none;
}

.kyoto-footer__links a:hover,
.kyoto-footer__links a:focus {
	color: var(--k-ink);
	text-decoration: underline;
}

.kyoto-footer__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	border-left: 1px solid var(--k-red);
	padding: clamp(24px, 3.4vw, 49px) 0 clamp(24px, 4.25vw, 61px);
	line-height: 0;
}

.kyoto-footer__logo img {
	width: 69%;
	max-width: 321px;
	height: auto;
}

@media (max-width: 921px) {
	.kyoto-footer {
		grid-template-columns: 1fr;
	}

	.kyoto-footer__links {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: none;
		grid-auto-flow: row;
		row-gap: 16px;
	}

	.kyoto-footer__logo {
		border-left: 0;
		border-top: 1px solid var(--k-red);
	}

	.kyoto-footer__logo img {
		width: min(60%, 260px);
	}
}

/* ---- Buttons --------------------------------------------------------------
   Astra paints buttons with palette colour 2, which is now the text colour
   (black), so give them explicit Kyoto colours. Menu toggles are excluded. */

:is(.wp-block-button__link, .wp-element-button, .ast-button, .ast-custom-button, .button,
	.wp-block-search__button, .wp-block-file__button, .search-submit, .wpforms-submit,
	.uagb-buttons-repeater, input[type="submit"], input[type="button"], input[type="reset"],
	.entry-content button, #secondary button, .kyoto-footer button):not(.has-background) {
	background-color: var(--k-red);
	border: 1px solid var(--k-red);
	color: #fff;
	font-family: var(--k-display);
	font-weight: 700;
	font-stretch: 125%;
	text-decoration: none;
	border-radius: 0;
}

:is(.wp-block-button__link, .wp-element-button, .ast-button, .ast-custom-button, .button,
	.wp-block-search__button, .wp-block-file__button, .search-submit, .wpforms-submit,
	.uagb-buttons-repeater, input[type="submit"], input[type="button"], input[type="reset"],
	.entry-content button, #secondary button, .kyoto-footer button):not(.has-text-color) {
	color: #fff;
}

:is(.wp-block-button__link, .wp-element-button, .ast-button, .ast-custom-button, .button,
	.wp-block-search__button, .wp-block-file__button, .search-submit, .wpforms-submit,
	.uagb-buttons-repeater, input[type="submit"], input[type="button"], input[type="reset"],
	.entry-content button, #secondary button, .kyoto-footer button):is(:hover, :focus) {
	background-color: var(--k-ink);
	border-color: var(--k-ink);
	color: #fff;
}

/* Outline style: red outline and text, filled red on hover. */
:is(.wp-block-button.is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline, .ast-outline-button):not(.has-background) {
	background-color: transparent;
	border: 1px solid var(--k-red);
}

:is(.wp-block-button.is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline, .ast-outline-button):not(.has-text-color) {
	color: var(--k-red);
}

:is(.wp-block-button.is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline, .ast-outline-button):is(:hover, :focus) {
	background-color: var(--k-red);
	border-color: var(--k-red);
	color: #fff;
}

/* Other spots Astra fills with palette colour 2 */
::selection {
	background-color: var(--k-pink);
	color: var(--k-ink);
}

.post-page-numbers.current .page-link,
.ast-pagination .page-numbers.current {
	background-color: var(--k-red);
	border-color: var(--k-red);
	color: #fff;
}

/* ==========================================================================
   Page components used by the IJCAI plugins and page content
   (kept from the previous theme, recoloured)
   ========================================================================== */

p.has-background {
	padding: 10px 30px;
}

@media (max-width: 981px) {
	p.has-background {
		padding: 10px 15px;
	}
}

.it-container {
	display: flex;
	flex-wrap: nowrap;
}

.it-picture {
	flex: 1 0 auto;
	max-width: 400px;
	margin-top: 4em;
	margin-left: .8em;
}

@media only screen and (max-width: 600px) {
	.it-picture img {
		width: 100px;
	}
}

.it-entry {
	margin-bottom: 1em;
	width: 100%;
}

.it-entry .it-speaker {
	font-size: 2em;
}

.it-entry .it-affiliation {
	font-size: 1em;
	margin-top: -5px;
	font-style: oblique;
}

.it-entry .it-title {
	font-size: 1em;
}

.it-entry .it-abstract {
	font-size: 0.8em;
}

.it-entry .it-sub {
	margin-top: 2em;
	font-size: 0.8em;
	font-weight: bolder;
}

.it-entry .it-sched {
	font-size: 0.8em;
	font-weight: bolder;
}

.pa-entry {
	margin-bottom: 1em;
}

.pa-authors {
	font-style: italic;
}

.gl-entry {
	margin-bottom: 1em;
}

.gl-authors {
	font-style: italic;
	color: gray;
	font-size: 0.9em;
}

.gl-video,
.gl-poster {
	color: var(--k-red);
	margin-left: 3em;
	margin-top: 1em;
	font-size: small;
}

.gl-video .title {
	font-weight: bold;
}

.gl-doi {
	margin-top: 1em;
	font-size: smaller;
}

.gl-doi a {
	color: var(--k-ink);
}

.ijcon {
	font-size: 1.2em;
	padding-top: 4px;
}

.hidden {
	display: none;
}

.venueopen {
	background: var(--k-red);
	color: #fff;
	font-size: 2em;
	display: block;
	text-align: center;
}

.enter_here_box {
	width: 550px;
	max-width: 100%;
	border: thin dashed var(--k-ink);
	text-align: center;
	padding: 1em;
}

.ec-title {
	font-weight: bold;
}

.ec-content {
	margin: 0 0 2em 2em;
}

.ec-pdf {
	margin-top: 0.5em;
}

.ec-pdf a {
	background-color: #fff;
	padding: 0 1em;
	color: var(--k-red);
	border-radius: 10px;
	font-weight: bold;
	border: 1px solid var(--k-red);
}
