/*
Theme Name: Albatross Child
Theme URI: https://ippostazionedeinebrodi.it/
Description: Tema child per Ippostazione dei Nebrodi — stile hotel “Seasons” (chiaro) attivo di default; dark mode dal Customizer. Header/footer personalizzati.
Author: Ippostazione dei Nebrodi
Template: albatross
Version: 1.2.1
Text Domain: albatross-child
*/

/* =============================================================================
   Design tokens — dark mode (fixed)
   Breakpoints aligned with plan: 768px (tablet), 1024px (desktop)
   ============================================================================= */

:root {
	--bg-primary: #0d0d0d;
	--bg-secondary: #1a1a1a;
	--bg-tertiary: #252525;
	--text-primary: #f5f5f5;
	--text-secondary: #a0a0a0;
	--accent: #8d8d76;
	--accent-hover: #a5a58a;
	--border: #333333;
	--success: #4caf50;
	--error: #e53935;

	--font-heading: "Montserrat", system-ui, -apple-system, sans-serif;
	--font-body: "Inter", "Roboto", system-ui, -apple-system, sans-serif;

	--shadow-soft: 0 8px 32px rgba(0, 0, 0, 0.35);
	--radius-sm: 4px;
	--transition: 0.3s ease;
}

/* -----------------------------------------------------------------------------
   Base
   ----------------------------------------------------------------------------- */

html {
	scroll-behavior: smooth;
}

body,
button,
.edit-link .post-edit-link,
input,
select,
optgroup,
textarea {
	color: var(--text-primary);
	font-family: var(--font-body);
	background-color: transparent;
}

body {
	background-color: var(--bg-primary);
	-webkit-font-smoothing: antialiased;
}

::selection {
	background: var(--accent);
	color: var(--bg-primary);
}

/* -----------------------------------------------------------------------------
   Typography
   ----------------------------------------------------------------------------- */

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-heading);
	color: var(--text-primary);
	font-weight: 600;
	letter-spacing: -0.02em;
}

h5,
h6 {
	font-family: var(--font-heading);
	font-weight: 600;
}

p,
li,
dd,
dt {
	color: var(--text-primary);
}

blockquote {
	border-color: var(--border);
	background: var(--bg-secondary);
	color: var(--text-primary);
}

blockquote cite {
	color: var(--text-secondary);
}

pre {
	background: var(--bg-tertiary);
	color: var(--text-primary);
	border: 1px solid var(--border);
}

code,
kbd,
tt,
var {
	background: var(--bg-tertiary);
	color: var(--text-primary);
}

abbr,
acronym {
	border-bottom-color: var(--border);
}

mark,
ins {
	background: rgba(141, 141, 118, 0.25);
	color: var(--text-primary);
}

/* -----------------------------------------------------------------------------
   Links
   ----------------------------------------------------------------------------- */

a,
a:visited {
	color: var(--accent);
}

a:hover,
a:focus,
a:active {
	color: var(--accent-hover);
}

a:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* -----------------------------------------------------------------------------
   Layout elements
   ----------------------------------------------------------------------------- */

hr {
	background-color: var(--border);
}

table td,
table th {
	border-color: var(--border);
}

table th {
	background: var(--bg-secondary);
	color: var(--text-primary);
}

table td {
	background: var(--bg-primary);
	color: var(--text-primary);
}

/* -----------------------------------------------------------------------------
   Forms
   ----------------------------------------------------------------------------- */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea,
select {
	color: var(--text-primary);
	border-color: var(--border);
	background: var(--bg-secondary);
}

input::placeholder,
textarea::placeholder {
	color: var(--text-secondary);
	opacity: 1;
}

select {
	border-color: var(--border);
	background-color: var(--bg-secondary);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath fill='%23a0a0a0' d='M7 8L0 0h14z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 20px center;
}

label {
	color: var(--text-secondary);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

button,
.edit-link .post-edit-link,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.stratum-advanced-posts.layout-carousel .swiper-container .swiper-slide .stratum-advanced-posts__read-more a,
.more-link {
	background: var(--accent);
	color: var(--bg-primary);
}

button:hover,
.edit-link .post-edit-link:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.button:hover,
.stratum-advanced-posts.layout-carousel .swiper-container .swiper-slide .stratum-advanced-posts__read-more a:hover,
.more-link:hover,
button:focus,
.edit-link .post-edit-link:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
.button:focus,
.stratum-advanced-posts.layout-carousel .swiper-container .swiper-slide .stratum-advanced-posts__read-more a:focus,
.more-link:focus {
	background: var(--accent-hover);
	color: var(--bg-primary);
}

button:visited,
.edit-link .post-edit-link:visited,
input[type="button"]:visited,
input[type="reset"]:visited,
input[type="submit"]:visited,
.button:visited,
.stratum-advanced-posts.layout-carousel .swiper-container .swiper-slide .stratum-advanced-posts__read-more a:visited,
.more-link:visited {
	color: var(--bg-primary);
}

.albatross-button {
	color: var(--accent);
}

.albatross-button:hover,
.albatross-button:focus {
	color: var(--accent-hover);
}

/* -----------------------------------------------------------------------------
   Navigation
   ----------------------------------------------------------------------------- */

.main-navigation {
	color: var(--text-primary);
}

.main-navigation .primary-menu > ul > li:after,
.main-navigation .primary-menu > li:after {
	background: linear-gradient(
		to bottom,
		var(--border) 0%,
		rgba(51, 51, 51, 0) 100%
	);
}

.main-navigation .primary-menu > ul > li > a,
.main-navigation .primary-menu > li > a {
	font-family: var(--font-heading);
}

.main-navigation li:hover > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_ancestor > a,
.main-navigation .current-menu-ancestor > a {
	color: var(--accent-hover);
}

.main-navigation li:hover > .dropdown-toggle {
	background: linear-gradient(var(--accent), var(--accent)),
		linear-gradient(var(--accent), var(--accent));
}

.main-navigation li:hover > .dropdown-toggle.toggled-on {
	background-size: 14px 2px, 2px 0;
}

.main-navigation .dropdown-toggle:focus {
	outline-color: var(--accent);
}

.main-navigation ul ul a {
	color: var(--text-secondary);
}

.main-navigation ul ul a:hover {
	color: var(--accent-hover);
}

.social-menu a {
	color: var(--text-primary);
}

.social-menu a:hover {
	color: var(--accent-hover);
}

/* -----------------------------------------------------------------------------
   Site header
   ----------------------------------------------------------------------------- */

.site-header:not(.absolute) {
	background-color: var(--bg-primary);
	color: var(--text-primary);
}

.site-branding .site-title {
	font-family: var(--font-heading);
}

.site-branding .site-title a {
	color: inherit;
}

.site-branding .site-description {
	color: var(--text-secondary);
}

body:not(.menu-opened) .site-header.absolute .site-branding .site-description {
	color: rgba(245, 245, 245, 0.85);
}

.site-header .header-dropdown-content {
	background: var(--bg-primary);
	box-shadow: var(--shadow-soft);
}

.site-header .header-dropdown-toggle {
	background: var(--accent);
	color: var(--bg-primary);
	border-color: transparent;
}

.site-header .header-dropdown-toggle:focus,
.site-header .header-dropdown-toggle:hover {
	background-color: var(--accent-hover);
	color: var(--bg-primary);
}

.site-header .header-dropdown-toggle:focus {
	outline: 1px dotted var(--text-primary);
}

.site-header .header-dropdown-toggle.toggled-on {
	border-color: var(--accent);
	color: transparent;
}

.site-header .header-dropdown-toggle.toggled-on:hover,
.site-header .header-dropdown-toggle.toggled-on:focus {
	border-color: var(--accent-hover);
}

.site-header .header-sidebar {
	color: var(--text-secondary);
}

.site-header .header-sidebar a {
	color: var(--accent);
}

.site-header .header-sidebar a:hover {
	color: var(--accent-hover);
}

.site-header .header-sidebar-wrapper {
	border-top-color: var(--border);
}

/* -----------------------------------------------------------------------------
   Site footer
   ----------------------------------------------------------------------------- */

.site-footer {
	background: #000 !important;
	color: #fff !important;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

/* Sopra il verde #455d58 e il padding enorme del tema padre */
#colophon.site-footer.site-footer--child {
	background: #000 !important;
	background-image: none !important;
	color: #fff !important;
	border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
	padding: 3rem 1.25rem 5rem !important;
}

@media (min-width: 768px) {
	#colophon.site-footer.site-footer--child {
		padding: 3rem 1.5rem 5rem !important;
	}
}

@media (min-width: 992px) {
	#colophon.site-footer.site-footer--child {
		padding: 3rem 2rem 5.5rem !important;
	}
}

.site-footer .site-info {
	color: rgba(255, 255, 255, 0.82);
}

.site-footer .site-info a {
	color: #fff;
}

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

.site-footer .scroll-to-top-button:before {
	border-color: #fff;
}

.site-footer .scroll-to-top-button:after {
	background: #fff;
}

.site-footer .scroll-to-top-button svg {
	fill: #fff;
}

.site-footer .scroll-to-top-button:hover svg {
	fill: rgba(255, 255, 255, 0.85);
}

.footer-widgets a:hover {
	color: var(--accent-hover);
}

.footer-widgets p {
	color: rgba(255, 255, 255, 0.82);
}

/* -----------------------------------------------------------------------------
   Posts, pages, archives
   ----------------------------------------------------------------------------- */

.navigation.pagination .page-numbers {
	background: var(--bg-secondary);
	border-color: var(--border);
	color: var(--text-primary);
}

.navigation.pagination .page-numbers.current,
.navigation.pagination .page-numbers:not(.dots):not(.next):not(.prev):hover {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--bg-primary);
}

.navigation.pagination .page-numbers.dots,
.navigation.pagination .page-numbers.next,
.navigation.pagination .page-numbers.prev {
	background: transparent;
	border: 0;
	color: var(--text-primary);
}

.navigation.pagination .page-numbers.next:hover,
.navigation.pagination .page-numbers.prev:hover {
	color: var(--accent-hover);
}

.entry-title a:hover,
.entry-meta a:hover,
.byline a:hover,
.cat-links a:hover,
.tags-links a:hover,
.comments-link a:hover {
	color: var(--accent-hover);
}

.cat-links a {
	border-color: var(--border);
	background: var(--bg-secondary);
	color: var(--text-primary);
}

.cat-links a:hover {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--bg-primary);
}

.archive-description,
.page-description {
	color: var(--text-secondary);
}

.entry-meta {
	color: var(--text-secondary);
}

/* Page hero overlay (mai sullo slider home .ipp-hero-bg-cycle) */
body.page-has-thumbnail .page-header-wrapper:not(.ipp-hero-bg-cycle)::after {
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.72) 0%,
		rgba(0, 0, 0, 0.8) 100%
	);
}

body.page-has-thumbnail .page-header-wrapper .entry-header,
body.page-has-thumbnail .page-header-wrapper .entry-title,
body.page-has-thumbnail .page-header-wrapper .entry-title a,
body.page-has-thumbnail .page-header-wrapper .entry-header p,
body.page-has-thumbnail .page-header-wrapper h1 {
	color: #fff !important;
}

body.page-has-thumbnail .page-header-wrapper .scroll-to-content-button svg {
	fill: var(--accent);
}

/* -----------------------------------------------------------------------------
   Front page header
   ----------------------------------------------------------------------------- */

.front-page-header:after {
	background: #000;
	opacity: 0.58;
}

.front-page-header .front-page-slider[data-fade="1"] .slide-image:before {
	background: #000 !important;
}

.front-page-sidebar-wrapper {
	background: var(--bg-secondary);
	color: var(--text-primary);
}

/* Home: solo slider — niente patina, niente “cuscini” verticali del template pagina con foto */
body.page-has-thumbnail .page-header-wrapper.ipp-hero-bg-cycle::after {
	content: none !important;
	display: none !important;
}

/* Hero: full-bleed orizzontale, niente padding 150/250px del padre, altezza da aspect-ratio */
.site-main.front-page > .hentry > .page-header-wrapper.ipp-hero-bg-cycle {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	min-height: 0 !important;
	display: block !important;
	aspect-ratio: 21 / 9;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	/* Altezza = min(aspect da larghezza finestra, 85vh) */
	max-height: min(calc(100vw * 9 / 21), 85vh);
}

.site-main.front-page {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

/* Home: sfondo bianco (slider e barra prenotazione restano scuri nei loro blocchi) */
body.home .site-main.front-page,
body.page-template-template-front-page-php .site-main.front-page {
	background-color: #ffffff;
}

body.home .site-main.front-page > .hentry,
body.page-template-template-front-page-php .site-main.front-page > .hentry {
	margin-top: 0 !important;
	padding-top: 0 !important;
	background-color: #ffffff;
	display: flow-root;
	overflow-x: clip;
}

/* Slider full-bleed: il clip sul .hentry tagliava le frecce ai bordi */
body.home .site-main.front-page > .hentry:has(.ipp-hero-bg-cycle),
body.page-template-template-front-page-php .site-main.front-page > .hentry:has(.ipp-hero-bg-cycle) {
	overflow-x: visible;
}

/* H1 solo per AT: niente margine che crea fasce sopra lo slider */
.site-main.front-page > .hentry > .screen-reader-text:first-child {
	margin: 0 !important;
	padding: 0 !important;
}

@media (max-width: 767px) {
	.site-main.front-page > .hentry > .page-header-wrapper.ipp-hero-bg-cycle {
		aspect-ratio: 16 / 10;
		max-height: min(calc(100vw * 10 / 16), 72vh);
	}
}

.page-header-wrapper.ipp-hero-bg-cycle {
	position: relative;
	background-color: #0a0a0a;
}

.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-bg-fill {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	box-sizing: border-box;
}

.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-bg-fill .ipp-hero-cycle__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: opacity 0.35s ease;
}

.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-bg-fill .ipp-hero-cycle__img--hide {
	opacity: 0.15;
}

/* Home hero: frecce prev/next sullo slider */
.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-cycle__nav {
	position: absolute;
	inset: 0;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 clamp(0.35rem, 2vw, 1.25rem);
	pointer-events: none;
	box-sizing: border-box;
}

.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-cycle__btn {
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	color: #fff;
	background: rgba(0, 0, 0, 0.45);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	transition: background 0.2s ease, transform 0.15s ease;
}

.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-cycle__btn:hover,
.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-cycle__btn:focus {
	background: rgba(0, 0, 0, 0.65);
	outline: 2px solid rgba(255, 255, 255, 0.5);
	outline-offset: 2px;
}

.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-cycle__btn:focus:not(:focus-visible) {
	outline: none;
}

.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-cycle__btn:active {
	transform: scale(0.96);
}

.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-cycle__btn-icon {
	display: flex;
	line-height: 0;
}

.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-cycle__btn-icon svg {
	display: block;
}

@media (min-width: 768px) {
	.page-header-wrapper.ipp-hero-bg-cycle .ipp-hero-cycle__btn {
		width: 3.25rem;
		height: 3.25rem;
	}
}

/* -----------------------------------------------------------------------------
   Comments
   ----------------------------------------------------------------------------- */

.comment-list .comment-body {
	border-color: var(--border);
	background: var(--bg-secondary);
}

.comment-list .comment-author .fn {
	font-family: var(--font-heading);
	color: var(--text-primary);
}

.comment-list .comment-metadata a:hover,
.comment-list .comment .reply a:hover {
	color: var(--accent-hover);
}

.comment-form {
	border-color: var(--border);
	background: var(--bg-secondary);
}

.comment-form .comment-notes {
	color: var(--text-secondary);
}

/* -----------------------------------------------------------------------------
   Widgets & sidebars
   ----------------------------------------------------------------------------- */

.page-sidebar .widget {
	background: var(--bg-secondary);
	border-color: var(--border);
	color: var(--text-primary);
	box-shadow: var(--shadow-soft);
}

.page-sidebar .widget-title {
	color: var(--text-primary);
	font-family: var(--font-heading);
}

.widget_calendar table th,
.widget_calendar table td {
	border-color: var(--border);
}

/* -----------------------------------------------------------------------------
   MotoPress Hotel Booking (frontend)
   ----------------------------------------------------------------------------- */

.mphb-room-type-title,
.mphb-loop-room-type-title {
	color: var(--text-primary);
}

.mphb-price,
.mphb-room-type-details-title {
	color: var(--text-secondary);
}

.mphb_sc_search-wrapper,
.mphb_sc_availability_calendar-wrapper,
.mphb_sc_checkout-wrapper,
.mphb_sc_booking_confirmation-wrapper,
.mphb-booking-form,
.mphb-reserve-room-section,
.mphb-checkout-section {
	color: var(--text-primary);
}

.mphb_sc_search-wrapper input,
.mphb_sc_search-wrapper select,
.mphb-booking-form input,
.mphb-booking-form select,
.mphb-booking-form textarea {
	background: var(--bg-secondary);
	border-color: var(--border);
	color: var(--text-primary);
}

.mphb-errors-wrapper,
.mphb-error-message {
	color: var(--error);
}

.mphb-success {
	color: var(--success);
}

.datepick {
	background: var(--bg-secondary);
	color: var(--text-primary);
	border-color: var(--border);
}

/* -----------------------------------------------------------------------------
   WordPress blocks (frontend)
   ----------------------------------------------------------------------------- */

.wp-block-quote,
.wp-block-pullquote {
	border-color: var(--border);
	color: var(--text-primary);
}

.wp-block-table thead {
	border-color: var(--border);
}

.wp-block-separator {
	border-color: var(--border);
}

/* -----------------------------------------------------------------------------
   Elementor — inherit theme dark surface where no explicit section style
   ----------------------------------------------------------------------------- */

.elementor-widget-text-editor,
.elementor-widget-theme-post-content {
	color: var(--text-primary);
}

.elementor-heading-title {
	color: inherit;
}

/* -----------------------------------------------------------------------------
   Accessibility
   ----------------------------------------------------------------------------- */

/* Copia standard WP: il child non deve dipendere dal solo tema padre per nascondere il testo SR-only. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background: var(--bg-tertiary);
	color: var(--text-primary);
	clip: auto !important;
	clip-path: none;
	height: auto;
	left: 5px;
	margin: 0;
	overflow: visible;
	padding: 12px 16px;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* -----------------------------------------------------------------------------
   Responsive tweaks (mobile-first: 768px, 1024px)
   ----------------------------------------------------------------------------- */

@media (min-width: 768px) {
	.site-header .header-sidebar {
		color: var(--text-secondary);
	}
}

@media (min-width: 1024px) {
	.main-navigation .primary-menu > ul > li > a,
	.main-navigation .primary-menu > li > a {
		letter-spacing: -0.01em;
	}
}

/* =============================================================================
   Child header — sticky, logo, toggle label
   ============================================================================= */

.site-header.site-header--child-sticky {
	position: sticky;
	top: 0;
	z-index: 200;
	transition: box-shadow var(--transition), background-color var(--transition);
}

.site-header.site-header--child-sticky.is-scrolled {
	background-color: var(--bg-primary) !important;
	box-shadow: var(--shadow-soft);
}

.header-dropdown-toggle__label {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Riduce duplicazione visiva nome sito accanto al logo */
.custom-logo-link ~ .title-wrapper .site-title,
.custom-logo-link ~ .title-wrapper .site-description {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.custom-logo-link img,
.custom-logo-link .custom-logo {
	max-height: 64px;
	width: auto;
	height: auto;
}

@media (max-width: 767px) {
	.header-menu-wrapper {
		display: none;
	}
}

/* =============================================================================
   Child footer (3 colonne)
   ============================================================================= */

.site-footer-child__inner {
	max-width: 1200px;
	margin: 0 auto;
	position: relative;
}

.site-footer-child__columns {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	margin-bottom: 2.5rem;
}

@media (min-width: 768px) {
	.site-footer-child__columns {
		grid-template-columns: 1.2fr 1fr 1fr;
		gap: 2rem;
	}
}

.site-footer-child__heading {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: rgba(255, 255, 255, 0.9) !important;
	margin: 0 0 1rem;
}

.site-footer-child__logo {
	max-width: 140px;
	height: auto;
	display: block;
	margin-bottom: 1rem;
}

.site-footer-child__tagline {
	color: rgba(255, 255, 255, 0.88) !important;
	font-size: 0.9375rem;
	line-height: 1.55;
	margin: 0;
	max-width: 28rem;
}

.site-footer-child__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer-child__menu li {
	margin: 0 0 0.5rem;
}

.site-footer-child__menu a {
	color: #fff !important;
	text-decoration: none;
	font-weight: 500;
}

.site-footer-child__menu a:hover,
.site-footer-child__menu a:focus {
	color: var(--accent-hover);
}

.site-footer-child__contact {
	color: rgba(255, 255, 255, 0.88) !important;
	font-size: 0.9375rem;
	line-height: 1.6;
	margin: 0 0 0.75rem;
}

.site-footer-child__contact a {
	color: #fff !important;
}

.site-footer-child__contact a:hover,
.site-footer-child__contact a:focus {
	color: var(--accent-hover);
}

.site-footer-child__note {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.55) !important;
	opacity: 1;
	margin: 0;
}

.site-footer-child__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding-top: 1.5rem;
}

.site-footer-child__copy {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.78) !important;
	text-wrap: balance;
}

.site-footer-child__copy a {
	color: #fff !important;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: rgba(255, 255, 255, 0.35);
}

.site-footer-child__copy a:hover,
.site-footer-child__copy a:focus {
	color: var(--accent-hover);
	text-decoration-color: var(--accent-hover);
}

.site-footer-child__sep {
	margin: 0 0.35em;
	opacity: 0.6;
}

/* =============================================================================
   Contact Form 7 — layout e dark mode
   ============================================================================= */

.ipp-cf7-wrap {
	max-width: 640px;
}

.ipp-cf7-wrap .ipp-cf7-row {
	margin-bottom: 1rem;
}

/* Colonne affiancate rimosse: label + campi sempre a tutta larghezza */
.ipp-cf7-wrap .ipp-cf7-half {
	display: block;
	width: 100%;
	margin-right: 0 !important;
}

.ipp-cf7-wrap label {
	display: block;
	width: 100%;
	box-sizing: border-box;
	color: var(--text-secondary);
	font-size: 0.875rem;
	margin-bottom: 0.35rem;
}

.ipp-cf7-wrap .wpcf7-form-control-wrap {
	display: block;
}

.ipp-cf7-wrap .ipp-input,
.ipp-cf7-wrap .ipp-textarea,
.ipp-cf7-wrap input[type="text"],
.ipp-cf7-wrap input[type="email"],
.ipp-cf7-wrap input[type="tel"],
.ipp-cf7-wrap textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.65rem 0.85rem;
	border-radius: var(--radius-sm);
	border: 1px solid var(--border);
	background: var(--bg-tertiary);
	color: var(--text-primary);
}

.ipp-cf7-wrap textarea {
	min-height: 140px;
	resize: vertical;
}

.ipp-cf7-wrap input[type="submit"] {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin-top: 0.5rem;
	padding: 0.75rem 1.75rem;
	cursor: pointer;
	border: none;
	border-radius: var(--radius-sm);
}

.ipp-cf7-wrap .wpcf7-not-valid-tip {
	color: var(--error);
	font-size: 0.8125rem;
}

.ipp-cf7-wrap .wpcf7-response-output {
	border-color: var(--border) !important;
	margin: 1rem 0 0 !important;
	padding: 0.75rem 1rem !important;
	border-radius: var(--radius-sm);
	font-size: 0.875rem;
}

.ipp-cf7-wrap .wpcf7-mail-sent-ok {
	background: rgba(76, 175, 80, 0.12);
	color: var(--success);
}

.ipp-cf7-wrap .wpcf7-validation-errors,
.ipp-cf7-wrap .wpcf7-mail-sent-ng {
	background: rgba(229, 57, 53, 0.1);
	color: var(--error);
}

/* Contact Form 7 — tutte le pagine: label e pulsante a tutta larghezza */
.wpcf7-form label {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.wpcf7-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form textarea,
.wpcf7-form select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.wpcf7-form input[type="submit"],
.wpcf7-form button[type="submit"] {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Mobile: nasconde hero cover_1 (sfondo inline + tag img del tema) */
@media (max-width: 767px) {
	body.page-has-thumbnail .page-header-wrapper[style*="cover_1"] {
		background-image: none !important;
	}

	img[src*="cover_1"] {
		display: none !important;
	}
}
