/**
 * Honbu Dojo – styles that theme.json cannot express.
 * Loaded on the front end and in the editor.
 */

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 70px);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

/* ---------------------------------------------------------------- Header */

.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

.site-header {
	min-height: 60px;
}

.site-header .wp-block-site-logo img {
	display: block;
}

.site-header .wp-block-navigation .wp-block-navigation-item__content {
	padding: 4px 0;
	border-bottom: 2px solid transparent;
}

.site-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.site-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	border-bottom-color: currentColor;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--white) !important;
}

@media (max-width: 999px) {
	.site-header .wp-block-social-links { display: none; }
}

/* ------------------------------------------------------- Dark sections */

.is-style-section-dark,
.is-style-section-dark :is(h1, h2, h3, h4, h5, h6) {
	color: var(--wp--preset--color--white);
}

.is-style-section-dark a:where(:not(.wp-element-button)) {
	color: var(--wp--preset--color--white);
}

.is-style-section-dark a:where(:not(.wp-element-button)):hover {
	color: var(--wp--preset--color--accent);
}

/* Full-width sections sit flush against each other. */
.wp-block-post-content > .alignfull {
	margin-block: 0;
}

/* Cover blocks used as sections: content follows the normal page width. */
.wp-block-cover.alignfull > .wp-block-cover__inner-container {
	width: 100%;
}

/* ----------------------------------------------------------- Slider */

.is-style-slider.is-ready {
	display: grid;
	position: relative;
}

.is-style-slider.is-ready > :not(.slider-dots) {
	grid-area: 1 / 1;
	margin: 0 !important;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.8s ease, visibility 0s linear 0.8s;
}

.is-style-slider.is-ready > .is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.8s ease;
}

.slider-dots {
	display: flex;
	gap: 10px;
	justify-content: center;
	margin-top: 20px;
	grid-area: 2 / 1;
}

.slider-dots button {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--white);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.slider-dots button[aria-current="true"] {
	background: var(--wp--preset--color--white);
}

/* Hero slider: full-screen covers, dots on top of the image. */
.hero-slider.is-ready .slider-dots {
	grid-area: 1 / 1;
	align-self: end;
	margin-bottom: 30px;
	z-index: 2;
}

.hero-slider > .wp-block-cover {
	min-height: calc(100vh - 60px - var(--wp-admin--admin-bar--height, 0px)) !important;
}

.hero-caption {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 900;
	letter-spacing: -2px;
	line-height: 1;
	text-shadow: 0 0 30px rgba(0, 0, 0, 0.35);
}

/* Quote slider */
.is-style-claim {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.42;
	text-align: center;
	margin-block: 0;
}

.quote-author {
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--large);
	text-align: center;
}

/* ------------------------------------------------------------ Tiles */

.is-style-tile {
	position: relative;
	height: 100%;
	padding: 30px 20px;
	background-color: rgba(0, 0, 0, 0.1);
	text-align: center;
	transition: background-color 0.3s ease;
}

.is-style-tile:hover,
.is-style-tile:focus-within {
	background-color: var(--wp--preset--color--accent);
}

.is-style-tile .wp-block-image {
	margin-bottom: 15px;
}

.is-style-tile .wp-block-image img {
	width: 48px;
	height: auto;
}

.is-style-tile :is(h2, h3, h4) {
	margin: 0 0 10px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1.4;
}

.is-style-tile p {
	margin: 0;
}

/* The whole tile is clickable via the title link. */
.is-style-tile :is(h2, h3, h4) a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.is-style-section-dark .is-style-tile a:hover {
	color: inherit;
}

/* ------------------------------------------------------ Content lists */

.entry-content ul:not([class*="wp-block-"]) li,
.wp-block-list li {
	margin-bottom: 5px;
}

.is-style-english {
	color: var(--wp--preset--color--muted);
	font-style: italic;
}

.trainer-text {
	font-size: 14px;
	line-height: 22px;
}

/* ------------------------------------------------------- News cards */

.is-style-news-cards .wp-block-post-title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	color: inherit;
	margin-top: 20px;
}

.is-style-news-cards .wp-block-post-title a {
	color: inherit;
}

.is-style-news-cards .wp-block-post-featured-image img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

/* --------------------------------------------------------- Contact */

.contact-list {
	list-style: none;
	padding-left: 0;
	font-weight: 700;
}

.contact-list li {
	display: flex;
	align-items: center;
	gap: 10px;
}

.contact-list li::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
}

.contact-list .icon-phone {
	--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
}

.contact-list .icon-mail {
	--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 5h20v14H2zm2 2v.5l8 5 8-5V7zm0 2.86V17h16V9.86l-8 5z'/%3E%3C/svg%3E");
}

.contact-list .icon-map {
	--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------- Sidebar */

.sidebar h2 {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	margin-bottom: 10px;
}

.sidebar ul {
	list-style: none;
	padding-left: 0;
	font-size: 14px;
	line-height: 1.5;
}

.sidebar li {
	padding: 6px 0;
	border-bottom: 1px solid var(--wp--preset--color--light);
}

.sidebar li a::before {
	content: "» ";
}

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

.site-footer a {
	color: inherit;
}

.site-footer a:hover {
	color: var(--wp--preset--color--accent);
}
