/* Mobile visual refinements.
 *
 * Keep these overrides narrow and mobile-only. The core layout system remains
 * in theme.css, block-layout.css, and blocks.css.
 */

@media (max-width: 759px) {
	:root {
		--sc-mobile-touch-target: 2.85rem;
	}

	.site-header__inner {
		gap: 0.85rem;
		min-height: 4rem;
		padding-block: 0.45rem;
	}

	.site-branding {
		gap: 0.15rem;
		max-width: calc(100% - 6.5rem);
	}

	.site-branding__identity {
		gap: 0.55rem;
	}

	.site-branding--logo_title_vertical .site-branding__identity {
		gap: 0.25rem;
	}

	.site-branding .custom-logo {
		max-width: min(10.5rem, 58vw);
		max-height: 2.45rem;
		object-fit: contain;
	}

	.site-header--density-compact .site-branding .custom-logo {
		max-height: 2rem;
	}

	.site-title {
		font-size: clamp(0.95rem, 4.4vw, 1.2rem);
		line-height: 1.05;
	}

	.site-branding__tagline {
		font-size: 0.78rem;
		line-height: 1.25;
	}

	.menu-toggle {
		position: relative;
		min-height: var(--sc-mobile-touch-target);
		padding: 0.65rem 2.15rem 0.65rem 0.9rem;
		font-size: 0.88rem;
	}

	.menu-toggle::before,
	.menu-toggle::after {
		position: absolute;
		top: 50%;
		right: 0.85rem;
		width: 0.8rem;
		height: 2px;
		background: currentColor;
		content: "";
	}

	.menu-toggle::before { transform: translateY(-3px); }
	.menu-toggle::after { transform: translateY(3px); }
	.menu-toggle[aria-expanded="true"]::before { transform: rotate(45deg); }
	.menu-toggle[aria-expanded="true"]::after { transform: rotate(-45deg); }

	/*
	 * Il pannello arriva in fondo allo schermo.
	 *
	 * Prima era alto quanto le voci e sotto restava la pagina, che si vedeva
	 * spuntare: due cose in vista insieme, e nessuna delle due chiara. Un menu
	 * e' un momento a se'.
	 *
	 * L'altezza e' quella della finestra meno la testata, che qui e' il
	 * contenitore: `100%` e' la testata, `100dvh` la finestra vera — su un
	 * telefono cambia quando la barra dell'indirizzo si ritira, e `vh` non se
	 * ne accorge.
	 *
	 * Se le voci sono piu' dello schermo scorrono dentro il pannello, e lo
	 * scorrimento non si propaga alla pagina sotto.
	 */
	.site-navigation.is-open {
		inset: 100% 0 auto;
		height: calc(100vh - 100%);
		height: calc(100dvh - 100%);
		padding-block: 1rem calc(1.35rem + env(safe-area-inset-bottom, 0px));
		overflow-y: auto;
		overscroll-behavior: contain;
		border-bottom: 0;
	}

	.site-navigation__menu {
		gap: 0.5rem;
	}

	/* The whole row is a touch target, including long translated labels. */
	.site-navigation .site-navigation__menu .menu-item > a {
		display: flex;
		align-items: center;
		min-height: max(46px, var(--sc-mobile-touch-target));
		padding: 0.65rem 0.75rem;
		line-height: 1.35;
		overflow-wrap: anywhere;
	}

	.site-navigation.is-open .sub-menu {
		margin-block-start: 0.15rem;
		margin-inline-start: 0.75rem;
		padding-inline-start: 0.65rem;
	}

	.site-navigation.is-open .sub-menu > .menu-item > a {
		opacity: 1;
	}

	.site-navigation.is-open .current-menu-item > a,
	.site-navigation.is-open .current_page_item > a {
		text-decoration: underline;
		text-underline-offset: 0.2em;
	}

	.site-social__menu {
		gap: 0.55rem;
		padding-top: 0.95rem;
		margin-top: 0.25rem;
		border-top: 1px solid var(--sc-color-border);
	}

	.site-social__link {
		width: var(--sc-mobile-touch-target);
		height: var(--sc-mobile-touch-target);
	}
}

@media (max-width: 600px) {
	:where(.wp-block-buttons) {
		gap: 0.75rem;
	}

	:where(.wp-block-button__link, .wp-element-button, .wp-block-search__button, input[type="submit"], button[type="submit"]) {
		min-width: 8.5rem;
		min-height: var(--sc-mobile-touch-target, 2.85rem);
		padding-inline: 1.35rem;
	}

	:where(.wp-block-buttons.is-content-justification-center .wp-block-button__link) {
		min-width: 9rem;
	}

	:where(.wp-block-search) {
		display: grid;
		gap: 0.65rem;
	}

	:where(.wp-block-search__inside-wrapper) {
		gap: 0.75rem;
	}

	:where(input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], input[type="tel"], select, .wp-block-search__input) {
		min-height: var(--sc-mobile-touch-target, 2.85rem);
		padding: 0.78rem 0.95rem;
	}

	:where(textarea) {
		padding: 0.95rem;
	}

	:where(.wp-block-details, .wp-block-file, .wp-block-code, .wp-block-preformatted, .wp-block-verse) {
		padding: 1.2rem;
	}

	:where(.wp-block-gallery) {
		gap: 0.75rem;
	}

	:where(.wp-block-media-text.is-stacked-on-mobile) {
		gap: 1.15rem;
	}

	:where(.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content) {
		padding-block: 0.25rem 0;
	}

	:where(.wp-block-table th, .wp-block-table td, .wp-block-calendar th, .wp-block-calendar td) {
		padding: 0.65rem 0.55rem;
	}

	:where(.wp-block-calendar tbody a) {
		min-width: 1.75rem;
		min-height: 1.75rem;
	}

	:where(.wp-block-query .wp-block-post > .wp-block-group, .wp-block-query .wp-block-post:not(:has(> .wp-block-group))) {
		padding: 1.2rem;
	}

	:where(.wp-block-query .wp-block-post-featured-image) {
		margin: -1.2rem -1.2rem 1rem;
	}
}
