/*
Theme Name: Multistarter
Theme URI: https://coursde.org
Author: The Lab XL
Author URI: https://coursde.org
Description: A lightweight, GDPR-compliant block theme for WordPress multisite. Zero JavaScript, bundled fonts, WooCommerce support, and 6 style variations. Built for blogs, shops, portfolios, and business sites.
Version: 1.0.7
Requires at least: 6.7
Tested up to: 6.7
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: multistarter
Tags: block-patterns, block-styles, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, one-column, two-columns, three-columns, wide-blocks, translation-ready
*/

/* Progressive enhancement — only things theme.json can't handle */

/* Smooth scrolling for anchor links */
html {
	scroll-behavior: smooth;
}

/* Better image defaults */
img {
	height: auto;
	max-width: 100%;
}

/* Selection color using theme palette */
::selection {
	background-color: var(--wp--preset--color--accent-3);
	color: var(--wp--preset--color--contrast);
}

/* Table styling */
.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
}

.wp-block-table td,
.wp-block-table th {
	border: 1px solid var(--wp--preset--color--contrast-3);
	padding: 0.5em 0.75em;
}

.wp-block-table thead {
	border-bottom: 2px solid var(--wp--preset--color--contrast);
}

/* Mobile hamburger menu button — bigger and easier to tap */
.wp-block-navigation__responsive-container-open {
	padding: 0.5em;
}

.wp-block-navigation__responsive-container-open svg {
	width: 32px;
	height: 32px;
}

/* Responsive navigation overlay */
.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

/* Details/accordion block — used for FAQ pattern */
.wp-block-details summary {
	cursor: pointer;
	font-weight: 600;
	padding: 0.75em 0;
	list-style: none;
}

.wp-block-details summary::before {
	content: "+";
	display: inline-block;
	width: 1.5em;
	font-weight: 400;
	transition: transform 0.2s ease;
}

.wp-block-details[open] summary::before {
	content: "−";
}

.wp-block-details > :not(summary) {
	padding-bottom: 0.75em;
}

/* Separator with text */
.wp-block-separator.is-style-wide {
	border-bottom-width: 1px;
}

/* Cover block text readability */
.wp-block-cover .wp-block-cover__inner-container {
	max-width: var(--wp--style--global--wide-size);
}

/* Comment form */
.comment-respond .comment-form label {
	display: block;
	margin-bottom: 0.25em;
	font-weight: 500;
}

.comment-respond .comment-form input[type="text"],
.comment-respond .comment-form input[type="email"],
.comment-respond .comment-form input[type="url"],
.comment-respond .comment-form textarea {
	width: 100%;
	padding: 0.5em 0.75em;
	border: 1px solid var(--wp--preset--color--contrast-3);
	border-radius: 4px;
	font-family: inherit;
	font-size: inherit;
}

.comment-respond .comment-form input:focus,
.comment-respond .comment-form textarea:focus {
	border-color: var(--wp--preset--color--accent);
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: -2px;
}

/* ── Hover effects ── */

/* Buttons — filled: strong brightness shift + lift */
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
	filter: brightness(1.2);
}

/* Outline buttons — fill on hover */
.wp-block-button.is-style-outline .wp-block-button__link {
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

/* Navigation links — color transition + underline slides in on hover */
.wp-block-navigation a.wp-block-navigation-item__content {
	transition: color 0.2s ease;
	position: relative;
	text-decoration: none;
}

.wp-block-navigation a.wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	bottom: -4px;
	left: 50%;
	width: 0;
	height: 3px;
	background-color: var(--wp--preset--color--accent);
	border-radius: 2px;
	transition: width 0.2s ease, left 0.2s ease;
}

.wp-block-navigation a.wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--accent);
}

.wp-block-navigation a.wp-block-navigation-item__content:hover::after {
	width: 100%;
	left: 0;
}

/* Active/current page navigation link */
.wp-block-navigation .current-menu-item > a.wp-block-navigation-item__content,
.wp-block-navigation .current_page_item > a.wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent);
	font-weight: 600;
}

.wp-block-navigation .current-menu-item > a.wp-block-navigation-item__content::after,
.wp-block-navigation .current_page_item > a.wp-block-navigation-item__content::after {
	width: 100%;
	left: 0;
}

/* Headings with links — accent color on hover */
.wp-block-heading a {
	transition: color 0.2s ease;
}

.wp-block-heading a:hover {
	color: var(--wp--preset--color--accent);
}

/* Social links — scale + opacity */
.wp-block-social-link {
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.wp-block-social-link:hover {
	transform: scale(1.15);
	opacity: 0.75;
}

/* ── Mobile responsive fixes ── */
/* Logo sizing — height-driven so portrait & landscape logos look consistent */
.wp-block-site-logo img.custom-logo {
	width: auto;
	height: auto;
	min-height: 80px;
	max-height: 100px;
	max-width: 250px;
	object-fit: contain;
}

/* Mobile: columns always stack vertically */
@media (max-width: 781px) {
	.wp-block-columns,
	.wp-block-columns.is-not-stacked-on-mobile {
		flex-direction: column;
	}
	.wp-block-columns > .wp-block-column,
	.wp-block-columns.is-not-stacked-on-mobile > .wp-block-column {
		flex-basis: auto;
		flex-grow: 0;
	}
}

@media (max-width: 600px) {
	/* Mobile logo — capped both ways so all ratios look balanced */
	.wp-block-site-logo img.custom-logo {
		max-height: 120px;
		max-width: 45vw;
		width: auto;
	}

	/* Center the header flex row on mobile instead of space-between */
	.is-content-justification-space-between.is-layout-flex {
		justify-content: center;
		gap: 1.5rem;
	}

	/* Center the right-side nav group too */
	.is-content-justification-right.is-layout-flex {
		justify-content: center;
	}
}

/* Mobile menu overlay — centered, bigger, more readable links */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
	font-size: 1.5rem;
	padding: 0.6em 0;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 2rem;
	gap: 0.25rem;
	--navigation-layout-justification-setting: center;
	justify-content: flex-start;
}

/* Override right-justification inside the overlay */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
	justify-content: center;
	text-align: center;
}

/* Buttons — always centered per theme design */
.wp-block-buttons {
	justify-content: center;
}

/* ── Portfolio page ── */

/* Hero nav pills */
.work-nav-pill {
	margin: 0;
}

.work-nav-pill a {
	display: inline-block;
	padding: 0.5em 1.4em;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 999px;
	color: rgba(255, 255, 255, 0.8) !important;
	text-decoration: none !important;
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	transition: all 0.25s ease;
}

.work-nav-pill a:hover {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: #fff !important;
}

/* Card base */
.portfolio-card {
	transition: transform 0.35s ease, box-shadow 0.35s ease;
	overflow: hidden;
}

.portfolio-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.15) !important;
}

/* Image container — hover zoom + gradient overlay */
.portfolio-card__image {
	position: relative;
	overflow: hidden;
}

.portfolio-card__image .wp-block-post-featured-image {
	overflow: hidden;
	display: block;
	line-height: 0;
}

.portfolio-card__image .wp-block-post-featured-image img {
	transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	display: block;
	width: 100%;
}

.portfolio-card:hover .portfolio-card__image .wp-block-post-featured-image img {
	transform: scale(1.06);
}

/* Gradient overlay on hover */
.portfolio-card__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.4) 0%, transparent 50%);
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
	z-index: 1;
	border-radius: 12px 12px 0 0;
}

.portfolio-card:hover .portfolio-card__image::after {
	opacity: 1;
}

/* Title link — no underline */
.portfolio-card .wp-block-post-title a {
	text-decoration: none !important;
	color: var(--wp--preset--color--contrast);
	transition: color 0.2s ease;
}

.portfolio-card:hover .wp-block-post-title a {
	color: var(--wp--preset--color--accent);
}


/* Query grid gaps */
.wp-block-post-template.is-layout-grid {
	gap: 2rem !important;
}

/* Responsive — 2 cols on tablet, 1 on mobile for website grid */
@media (max-width: 781px) {
	.portfolio-card--grid .wp-block-post-featured-image img {
		aspect-ratio: 16/10;
		object-fit: cover;
	}
}

/* ── Case Study / Work Single ── */

/* Deliverables grid cards */
.case-study__deliverables .wp-block-column {
	background: var(--wp--preset--color--base-2);
	border-radius: 12px;
	padding: 1.5rem;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.case-study__deliverables .wp-block-column:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 24px -8px rgba(0, 0, 0, 0.1);
}

/* Emoji icon in deliverable cards */
.case-study__deliverables .wp-block-column .deliverable-icon {
	font-size: 2rem;
	line-height: 1;
	margin-bottom: 0.5rem;
}

/* Tech stack styled table */
.case-study .case-study__stack table {
	border: none;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.07);
}

.case-study .case-study__stack td {
	border: none;
	border-bottom: 1px solid var(--wp--preset--color--accent-3);
	padding: 0.85em 1.25em;
}

.case-study .case-study__stack tr:last-child td {
	border-bottom: none;
}

.case-study .case-study__stack tr:nth-child(even) td {
	background-color: var(--wp--preset--color--base-2);
}

.case-study .case-study__stack td:first-child {
	font-weight: 600;
	white-space: nowrap;
	width: 180px;
	color: var(--wp--preset--color--contrast);
}

/* Visit website button — prominent */
.case-study .wp-block-buttons .wp-block-button__link {
	font-size: 1rem;
	padding: 1em 2.5em;
}

/* Section dividers within case study */
.case-study__section-label {
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: var(--wp--preset--color--contrast-3) !important;
}

/* Stats row inside case study */
.case-study__stats .wp-block-column {
	text-align: center;
	padding: 1.5rem 1rem;
}

.case-study__stats .stat-number {
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--contrast);
}

/* Highlight box for key info */
.case-study__highlight {
	border-left: 4px solid var(--wp--preset--color--contrast);
	padding-left: 1.5rem;
}

/* Print styles */
/* Map fills remaining column space */
.wp-block-column:has(> iframe) {
	display: flex;
	flex-direction: column;
}
.wp-block-column > iframe {
	flex: 1;
	width: calc(100% - 1rem);
	margin: 0.5rem;
	min-height: 200px;
	border-radius: 8px;
}

@media print {
	.wp-block-navigation,
	.wp-block-template-part[data-area="header"],
	.wp-block-template-part[data-area="footer"] {
		display: none !important;
	}
}

/* ── Modern AI/Tech Design Refresh ── */


/* Glassmorphism service cards */
.has-base-2-background-color .wp-block-column,
.wp-block-group[style*="background-color:#f1f5f9"] .wp-block-column {
	background: rgba(255, 255, 255, 0.65);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 16px;
	padding: 2rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.has-base-2-background-color .wp-block-column:hover,
.wp-block-group[style*="background-color:#f1f5f9"] .wp-block-column:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
}

/* Scroll-triggered fade-in animations (modern CSS) */
@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@supports (animation-timeline: view()) {
	.wp-block-group.alignfull,
	.wp-block-cover.alignfull,
	.wp-block-media-text {
		animation: fadeInUp ease both;
		animation-timeline: view();
		animation-range: entry 0% entry 30%;
	}
}

/* Heading letter-spacing for tech feel */
.wp-block-heading,
h1, h2, h3 {
	letter-spacing: -0.02em;
}

h4, h5, h6 {
	letter-spacing: -0.01em;
}



/* Modern focus ring on interactive elements */
a:focus-visible,
button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 4px;
}

/* =====================================================
   Button enhancements (transform/shine/glow) — lives
   here so it loads on frontend AND in the block editor
   via add_editor_style('style.css').
   ===================================================== */
.wp-block-button .wp-block-button__link{position:relative;overflow:hidden;transition:transform .28s cubic-bezier(.22,.9,.3,1.2),box-shadow .28s ease,background .28s ease,border-color .28s ease,color .28s ease,letter-spacing .28s ease;box-shadow:0 10px 28px rgba(12,22,60,.28),0 2px 6px rgba(12,22,60,.14),inset 0 1px 0 rgba(255,255,255,.9)}
.wp-block-button .wp-block-button__link::before{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);transform:skewX(-18deg);transition:left .7s cubic-bezier(.2,.7,.2,1);pointer-events:none;z-index:1}
.wp-block-button .wp-block-button__link:hover::before{left:140%}
.wp-block-button .wp-block-button__link:hover{transform:translateY(-4px) scale(1.035);letter-spacing:.03em;box-shadow:0 22px 50px rgba(12,22,60,.4),0 8px 18px rgba(12,22,60,.22),0 0 0 3px rgba(255,255,255,.25),0 0 40px rgba(6,182,212,.55),inset 0 1px 0 rgba(255,255,255,1)}
.wp-block-button .wp-block-button__link:active{transform:translateY(-1px) scale(1.01);transition-duration:.08s}

/* White-background buttons: text turns cyan on hover (readable on white) */
.wp-block-button__link.has-base-background-color:hover{color:var(--wp--preset--color--accent)}

/* Cyan CTA variant keeps its color on hover */
.wp-block-button__link.has-vivid-cyan-blue-background-color{box-shadow:0 6px 18px rgba(6,147,227,.3)}
.wp-block-button__link.has-vivid-cyan-blue-background-color:hover{box-shadow:0 14px 36px rgba(6,147,227,.5),0 0 24px rgba(6,147,227,.4)}

/* Cyan filled buttons: always keep text white (at rest AND on hover) */
.wp-block-button__link.has-vivid-cyan-blue-background-color,
.wp-block-button__link.has-vivid-cyan-blue-background-color:hover{color:#fff}

/* Outline variant — LIGHT context (default: on white/light cards) */
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--wp--preset--color--accent);border:1.5px solid var(--wp--preset--color--accent);box-shadow:none}
.wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--wp--preset--color--accent);color:#fff;border-color:var(--wp--preset--color--accent);box-shadow:0 14px 36px rgba(8,145,178,.35),0 0 24px rgba(8,145,178,.3)}

/* Outline variant — DARK context (hero cover, dark CTA section) uses glass/white */
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-group[style*="1e293b"] .wp-block-button.is-style-outline .wp-block-button__link{background:rgba(255,255,255,.12);color:#fff;border:1.5px solid rgba(255,255,255,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-group[style*="1e293b"] .wp-block-button.is-style-outline .wp-block-button__link:hover{background:rgba(255,255,255,.22);border-color:#fff;color:#fff;box-shadow:0 22px 50px rgba(0,0,0,.3),0 0 0 3px rgba(255,255,255,.18),0 0 40px rgba(255,255,255,.35),inset 0 1px 0 rgba(255,255,255,.5)}

/* Equal-height cards with button aligned at the bottom */
.wp-block-columns .wp-block-column:has(.wp-block-group.is-style-card){display:flex;align-items:stretch}
.wp-block-group.is-style-card{display:flex;flex-direction:column}
.wp-block-group.is-style-card > .wp-block-buttons:last-child,
.wp-block-group.is-style-card > *:last-child.wp-block-buttons{margin-top:auto}

/* Work nav pills inside the hero gradient card — readable on cyan/purple bg */
.wp-block-cover .work-nav{margin-top:1.25rem}
.wp-block-cover .work-nav-pill{margin:0}
.wp-block-cover .work-nav-pill a{display:inline-block;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);padding:.4em 1em;border-radius:9999px;font-size:.85rem;font-weight:500;text-decoration:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s ease,border-color .2s ease,transform .2s ease}
.wp-block-cover .work-nav-pill a:hover{background:rgba(255,255,255,.28);border-color:#fff;color:#fff;transform:translateY(-1px)}

/* Contact Form 7 submit button — match the Gutenberg button design */
.wpcf7 input[type="submit"]{
  position:relative;overflow:hidden;
  background:var(--wp--preset--color--base) !important;
  color:var(--wp--preset--color--contrast) !important;
  border:1px solid rgba(255,255,255,.9);
  border-radius:8px;
  font-weight:600;letter-spacing:0.02em;
  padding:0.9em 2em;
  box-shadow:0 10px 28px rgba(12,22,60,.28),0 2px 6px rgba(12,22,60,.14),inset 0 1px 0 rgba(255,255,255,.9);
  transition:transform .28s cubic-bezier(.22,.9,.3,1.2),box-shadow .28s ease,color .28s ease,letter-spacing .28s ease;
}
.wpcf7 input[type="submit"]:hover{
  background:var(--wp--preset--color--base) !important;
  color:var(--wp--preset--color--accent) !important;
  transform:translateY(-4px) scale(1.035);
  letter-spacing:0.03em;
  box-shadow:0 22px 50px rgba(12,22,60,.4),0 8px 18px rgba(12,22,60,.22),0 0 0 3px rgba(255,255,255,.25),0 0 40px rgba(6,182,212,.55),inset 0 1px 0 rgba(255,255,255,1);
}
.wpcf7 input[type="submit"]:active{transform:translateY(-1px) scale(1.01);transition-duration:.08s}

/* Mobile overlay menu — submenu items must stay readable on the dark overlay.
   Overrides the desktop white-dropdown treatment when the menu is open. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.has-background{
  background-color:transparent !important;
  color:var(--wp--preset--color--base) !important;
  border:0 !important;
  box-shadow:none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover{
  color:var(--wp--preset--color--base) !important;
}

/* Header layout — let the nav fill the remaining space so its items sit centered in that space */
.site-header > .wp-block-navigation{flex:1;justify-content:center}
/* Small right-side counterbalance so nav centers optically relative to the full header, not offset by the logo */
.site-header::after{content:"";flex-basis:100px;flex-shrink:0}
@media (max-width:781px){.site-header::after{display:none}}

/* ===== Mobile overlay menu polish (applies to all sites using this theme) ===== */

/* Slightly transparent frosted backdrop */
.wp-block-navigation__responsive-container.is-menu-open{
  background-color:rgba(14,20,33,.92) !important;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}

/* Center every menu item horizontally */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:center;
  width:100% !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item{
  width:auto;display:flex;flex-direction:column;align-items:center
}

/* Close (X) button — bigger, better-placed */
.wp-block-navigation__responsive-container-close{
  top:.5rem !important;
  right:.75rem !important;
  padding:.75rem !important;
}
.wp-block-navigation__responsive-container-close svg{
  width:34px !important;height:34px !important;
}

/* Submenu items smaller than top-level */
.wp-block-navigation__responsive-container.is-menu-open .has-child .wp-block-navigation__submenu-container{
  padding:.25rem 0 !important;
  gap:.35rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  font-size:.9rem !important;
  font-weight:400 !important;
  opacity:.85;
}

/* ===== Mobile overlay menu — tighter polish ===== */

/* Generous breathing room around the whole menu */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
  padding:4rem 1.5rem 3rem !important;
  gap:1.5rem;
  min-height:100vh;
  justify-content:center !important;
}

/* Top-level nav list: column stack, each item centered */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{
  flex-direction:column !important;
  gap:1.25rem !important;
  width:100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item{
  width:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}

/* Top-level link: bigger + bolder */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content{
  font-size:1.35rem !important;
  font-weight:600 !important;
  letter-spacing:-.01em;
  padding:.3em .6em;
}

/* Submenu container — force center alignment, stack column, smaller gap */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{
  position:static !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  gap:.6rem !important;
  padding:.5rem 0 0 !important;
  margin:0 !important;
  text-align:center !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item{
  width:auto !important;
  padding:0 !important;
  display:flex;justify-content:center;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  font-size:1rem !important;
  font-weight:400 !important;
  padding:.2em .5em !important;
  opacity:.85;
  text-align:center;
}

/* Hide submenu open/close toggles (unnecessary on overlay since everything's visible) */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon{display:none !important}

/* Overlay menu typography — readable sizes, proper hierarchy */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content{
  font-size:2rem !important;
  font-weight:700 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  font-size:1.35rem !important;
  font-weight:500 !important;
  opacity:.9;
}

/* Force submenu item size — target the anchor tag directly with full specificity */
.wp-block-navigation__responsive-container.is-menu-open ul.wp-block-navigation__submenu-container li.wp-block-navigation-item a.wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open ul.wp-block-navigation__submenu-container li.wp-block-navigation-item span.wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .has-child ul.wp-block-navigation__submenu-container a,
.wp-block-navigation__responsive-container.is-menu-open .has-child ul.wp-block-navigation__submenu-container span{
  font-size:1.35rem !important;
  font-weight:500 !important;
  line-height:1.4 !important;
  opacity:.9 !important;
}

/* Header side padding — more breathing room on edges (desktop and mobile) */
.site-header{padding-left:var(--wp--preset--spacing--50) !important;padding-right:var(--wp--preset--spacing--50) !important}
@media (max-width:600px){.site-header{padding-left:var(--wp--preset--spacing--40) !important;padding-right:var(--wp--preset--spacing--40) !important}}


/* Site logo — ensure a sensible minimum so it's always visible regardless of intrinsic image size */
.wp-block-site-logo img.custom-logo{min-width:110px;min-height:40px}
@media (max-width:600px){.wp-block-site-logo img.custom-logo{min-width:100px;min-height:36px}}

/* Buttons default to centered unless the block explicitly sets left/right/space-between */
.wp-block-buttons:not(.is-content-justification-left):not(.is-content-justification-right):not(.is-content-justification-space-between){
  justify-content:center
}

/* ===== SCROLL-REVEAL ANIMATIONS =====
   Paired with assets/js/reveal.js. Reduce-motion users get a gentle
   opacity fade only; everyone else gets translate/scale/blur variants.

   All rules are scoped under html.js-ready (set by an inline script in
   <head> via wp_head priority 1). Without that class, content stays
   visible — no-JS / pre-JS users never see hidden content.

   Pre-hide of likely-revealed top-level blocks prevents the FOUC where
   content paints visible, JS tags it, CSS hides it, then animates it back.
*/
/* Pre-hide rules removed — they hid more than reveal.js could un-hide,
   leaving content stranded at opacity:0. Brief FOUC on reveal-eligible
   elements is preferred over invisible content. The .js-ready-scoped
   [data-reveal] rules below still gate visibility on JS being live. */


html.js-ready [data-reveal]{opacity:0;transition:opacity .65s ease;will-change:opacity}
html.js-ready [data-reveal].is-in{opacity:1}

@media (prefers-reduced-motion: no-preference){
  html.js-ready [data-reveal]{transform:translate3d(0,28px,0);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1),filter .85s ease;will-change:opacity,transform}
  html.js-ready [data-reveal="left"]{transform:translate3d(-36px,0,0)}
  html.js-ready [data-reveal="right"]{transform:translate3d(36px,0,0)}
  html.js-ready [data-reveal="scale"]{transform:scale(.94);transform-origin:center}
  html.js-ready [data-reveal="blur"]{transform:translate3d(0,20px,0);filter:blur(8px)}
  html.js-ready [data-reveal].is-in{transform:none;filter:none}
}
/* Latest Posts block — featured image should fill its grid cell, not be capped at the medium thumbnail width (300px) */
.wp-block-latest-posts__featured-image a,
.wp-block-latest-posts__featured-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* Latest Posts block — center title and excerpt to match centered featured image */
.wp-block-latest-posts__list li {
  text-align: center;
}
.wp-block-latest-posts__post-title {
  display: block;
}

/* Latest Posts block — make post titles actually look like titles */
.wp-block-latest-posts__post-title {
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 1rem 0 0.5rem;
  text-decoration: none;
  color: inherit;
}
.wp-block-latest-posts__post-title:hover {
  text-decoration: underline;
}
.wp-block-latest-posts__post-excerpt {
  margin-top: 0.25rem;
}
