/*
 * ToBePolo Italia design system
 * Single source of truth for the 2026 tricolore rebrand.
 * Palette: #084828 green, #D0161A red, #FFFFFF, #F7F4ED ivory.
 * Sage #F4F7F5 is a utility UI surface. Taupe #CFC5B7 is campaign/art direction only.
 */
/* 30/9 (D122): le @font-face di Manrope e DM Sans sono uscite da qui; i due nomi
 * portano a Schibsted Grotesk in tbp-caratteri.css. */

/*
 * Base component/layout layer. The final scoped contract at the end of this
 * file owns the palette, contrast and control radii, while these rules retain
 * the working page geometry supplied by the original staging implementation.
 */

:root {
  --tbp-green: #084828;
  --tbp-white: #ffffff;
  --tbp-red: #D0161A;
  --tbp-ivory: #F7F4ED;
  --tbp-surface-sage: #F4F7F5;
  --tbp-green-a08: rgba(8, 72, 40, 0.08);
  --tbp-green-a16: rgba(8, 72, 40, 0.16);
  --tbp-green-a32: rgba(8, 72, 40, 0.32);
  --tbp-green-a72: rgba(8, 72, 40, 0.72);
  --tbp-red-a16: rgba(208, 22, 26, 0.16);
  --tbp-red-a72: rgba(208, 22, 26, 0.72);
  --tbp-radius-control: 14px;
  --tbp-radius-card: 22px;
  --tbp-radius-panel: 28px;
  --tbp-radius-xs: 10px;
  --tbp-radius-sm: 14px;
  --tbp-radius-md: 18px;
  --tbp-radius-lg: 28px;
  --tbp-radius-xl: 34px;
  --tbp-shadow: 0 12px 34px var(--tbp-green-a16);
  --tbp-page-gutter: clamp(12px, 2.5vw, 40px);
  --tbp-content: 1440px;
}

html {
  color-scheme: light;
  background: #ffffff !important;
  background-color: #ffffff !important;
  scroll-behavior: auto;
}

body, button, input, select, textarea, .nav > li > a, .button, .bottone {
  font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

body, #wrapper, #main, .header-bg-color, .header-bg-container, .page-wrapper,
.post-type-archive-esperienze main, .post-type-archive-esperienze .archive-esperienze {
  background-color: var(--tbp-white) !important;
}

body { color: var(--tbp-green) !important; }
::selection { color: var(--tbp-white); background: var(--tbp-red); }

h1, h2, h3, h4, h5, h6, .heading-font, .nav > li > a,
#main :where(p, li, label, small, strong, em, blockquote, td, th),
.woocommerce :where(p, li, label, small, strong, em, td, th),
.woocommerce-account :where(p, li, label, small, strong, em, td, th) {
  color: var(--tbp-green) !important;
}

h1, h2, h3, h4, h5, h6, .heading-font {
  letter-spacing: -0.035em;
  text-wrap: balance;
}

a { color: var(--tbp-green); }
a:hover, a:focus-visible { color: var(--tbp-red); }

/* Preserve old semantic class names, but map them consistently. */
.giallo, .marrone { color: var(--tbp-green) !important; }
.giallino { color: var(--tbp-white) !important; }
.sfondo-giallo, .sfondo-marrone { background-color: var(--tbp-green) !important; }
.sfondo-giallino { background-color: var(--tbp-white) !important; }

/* One geometry language: squarish surfaces with continuous corners. */
.button, .bottone,
#masthead .registration-choice > summary,
form:not(#adminbarsearch) input[type="submit"],
.tbp-submit-btn, .tbp-filter-btn, .tbp-filter-toggle, .tbp-sort-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
  min-height: 48px;
  border: 0 !important;
  border-radius: var(--tbp-radius-control) !important;
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
  box-shadow: none !important;
  transition: var(--tbp-control-transition, background-color .18s ease, color .18s ease, transform .18s ease) !important;
}

.button:hover, .bottone:hover,
#masthead .registration-choice > summary:hover,
form:not(#adminbarsearch) input[type="submit"]:hover,
.tbp-submit-btn:hover, .tbp-filter-btn:hover, .tbp-filter-toggle:hover, .tbp-sort-button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover {
  background: var(--tbp-control-hover-bg, var(--tbp-red)) !important;
  color: var(--tbp-white) !important;
  transform: var(--tbp-control-hover-transform, translateY(-1px));
}

.bottone.secondary, #masthead .registration-choice > summary.registrazione,
.button.alt, .woocommerce .button.alt {
  background: var(--tbp-red) !important;
  color: var(--tbp-white) !important;
}
.bottone.secondary:hover, #masthead .registration-choice > summary.registrazione:hover,
.button.alt:hover, .woocommerce .button.alt:hover { background: var(--tbp-green) !important; }

.is-outline, .bottone.is-outline, .button.is-outline, .tbp-sort-button.is-outline {
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  border: 2px solid var(--tbp-green) !important;
}

/* Header shell; brand geometry is owned by tbp-ui-system.css. */
#masthead, .header-wrapper.stuck #masthead {
  min-height: 84px;
  padding: 14px var(--tbp-page-gutter) !important;
  background: var(--tbp-white) !important;
}
#masthead > .header-inner {
  width: min(100%, var(--tbp-content));
  max-width: var(--tbp-content) !important;
}
#masthead ul > li > a { padding-inline: clamp(14px, 1.4vw, 24px) !important; }
#masthead .login-registrazione a.login {
  min-width: 92px;
  justify-content: center;
  padding-inline: 18px !important;
}
.login-registrazione { align-items: center; }
.registration-choice {
  position: relative;
  margin: 0;
}
.registration-choice > summary {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 132px;
  padding: 0 22px !important;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.registration-choice > summary::-webkit-details-marker { display: none; }
.registration-choice[open] > summary { background: var(--tbp-green) !important; }
.registration-choice-menu {
  position: absolute;
  z-index: 9999;
  top: calc(100% + 10px);
  right: 0;
  display: grid;
  gap: 8px;
  width: min(290px, calc(100vw - 24px));
  padding: 10px;
  border: 1px solid var(--tbp-green);
  border-radius: var(--tbp-radius-card);
  background: var(--tbp-white);
  box-shadow: var(--tbp-shadow);
}
.registration-choice-link {
  display: grid !important;
  gap: 2px;
  min-height: 0 !important;
  padding: 13px 14px !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-control) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  text-align: left;
}
.registration-choice-link strong,
.registration-choice-link span {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
.registration-choice-link strong { font-size: 1rem; }
.registration-choice-link span { font-size: .78rem; line-height: 1.35; }
.registration-choice-link:hover,
.registration-choice-link:focus-visible {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
  transform: none !important;
}
.registration-choice-professional {
  border-color: var(--tbp-red) !important;
  color: var(--tbp-red) !important;
}
.registration-choice-professional:hover,
.registration-choice-professional:focus-visible { background: var(--tbp-red) !important; }
#masthead ul > li > a.icona-utente, #masthead button, .mfp-close {
  width: 48px !important;
  height: 48px !important;
  padding: 0 !important;
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
  border-radius: var(--tbp-radius-control) !important;
}
#masthead button i, .mfp-close svg { color: var(--tbp-white) !important; }
.off-canvas-center.mfp-bg.mfp-ready, .mfp-bg.main-menu-overlay {
  background: #ffffff !important;
  opacity: 1 !important;
}
.off-canvas-center .nav-vertical > li > a,
.off-canvas-center .login-registrazione a { color: var(--tbp-green) !important; }
.off-canvas-center .registration-choice { width: 100%; }
.off-canvas-center .registration-choice > summary {
  display: flex !important;
  width: 100%;
  min-height: 52px;
  color: var(--tbp-green) !important;
}
.off-canvas-center .registration-choice-menu {
  position: relative;
  top: auto;
  right: auto;
  width: 100%;
  margin-top: 10px;
  box-shadow: none;
}
.off-canvas-center .nav-vertical > li > a:hover { color: var(--tbp-green) !important; }

/* White page surfaces: no ivory or neutral grey panels. */
body:not(.single-esperienze) #main {
  width: min(calc(100% - (2 * var(--tbp-page-gutter))), var(--tbp-content));
  max-width: var(--tbp-content) !important;
  margin: 18px auto 40px !important;
  border-radius: var(--tbp-radius-panel) !important;
}
.section, .section-bg, .section-bg .bg-fill, .row, .col-inner, .box, .box-text,
.accordion-item, .popup-wrapper, .filtri-popup, .filtro-gruppo,
.woocommerce-form, .woocommerce-cart-form, .woocommerce-checkout-review-order,
.woocommerce-MyAccount-content, .login-form, .register-form {
  border-color: var(--tbp-green) !important;
}

.card .banner, .card .card-front, .card .card-back, .banner, .box,
.accordion-item, .schede .col-inner, #tbp-results-container .card-esperienza,
.card-esperienza, .product-small .box, .woocommerce-form,
.woocommerce-cart-form, .woocommerce-checkout-review-order, .woocommerce-MyAccount-content {
  border-radius: var(--tbp-radius-card) !important;
}

.card .card-front, .product-small .box, .card-esperienza,
.woocommerce-form, .woocommerce-cart-form, .woocommerce-checkout-review-order,
.woocommerce-MyAccount-content {
  background: var(--tbp-white) !important;
  border: 1px solid var(--tbp-green) !important;
  box-shadow: var(--tbp-shadow) !important;
}
.card .card-back { background: var(--tbp-red) !important; color: var(--tbp-white) !important; }
.card .card-back :where(h1, h2, h3, h4, p, span, strong, a) { color: var(--tbp-white) !important; }
.card .card-front.banner .banner-layers {
  background: transparent !important;
}
.card-esperienza::after,
.card-esperienza::before,
#tbp-results-container .card-esperienza::after,
#tbp-results-container .card-esperienza::before,
#tbp-results-container .tbp-exp-card::after,
#tbp-results-container .tbp-exp-card::before,
#tbp-results-container .tbp-exp-card__media::after,
#tbp-results-container .tbp-exp-card__media::before {
  content: none !important;
  display: none !important;
  background: none !important;
  background-image: none !important;
  opacity: 0 !important;
}
.video-overlay,
.banner-bg > .overlay,
.section .video-overlay,
.home .video-overlay {
  display: none !important;
  background: transparent !important;
  opacity: 0 !important;
}
.home .video-bg.hide-for-medium,
.home video.video-bg,
.home .ux-youtube.hide-for-medium {
  display: block !important;
}
.home .video-bg,
.banner video.video-bg,
.section video.video-bg {
  object-fit: cover !important;
  filter: none !important;
}

/* Experience cards: imagery leads, text stays accessible, whole surface remains available. */
.card-esperienza { overflow: hidden !important; position: relative; }
.card-esperienza img, .card-esperienza .card-image img, .box-image img {
  width: 100% !important;
  object-fit: cover !important;
  border-radius: var(--tbp-radius-card) !important;
}
.card-esperienza .card-content,
.card-esperienza .card-content :where(h2, h3, p, span, strong, small),
.banner .text, .banner .text :where(h1, h2, h3, h4, p, span, strong) {
  color: var(--tbp-white) !important;
}

/* Search, archive categories and filters. */
.tbp-field, .tbp-search-bar, .tbp-search-wrapper, .popup-wrapper,
.filtri-popup, .filtro-gruppo, .flatpickr-calendar, .flatpickr-months,
.flatpickr-days, .flatpickr-innerContainer, .flatpickr-rContainer,
.tbp-diff-content, .tbp-cat-pill-inner {
  background: var(--tbp-white) !important;
  border-color: var(--tbp-green) !important;
  color: var(--tbp-green) !important;
}
.tbp-search-bar, .tbp-search-wrapper, .tbp-field, .popup-wrapper, .filtro-gruppo {
  border-radius: var(--tbp-radius-control) !important;
}
.tbp-cat-pill, .tbp-cat-pill-inner, .tbp-cat-text, .tbp-cat-count,
.tbp-cat-name, .tbp-search-bar label, .tbp-search-wrapper label,
.popup-wrapper label, .flatpickr-calendar :where(span, input, select, svg, path) {
  color: var(--tbp-green) !important;
  border-color: var(--tbp-green) !important;
}
/* Icone categoria Lava v20: oggetti trasparenti isolati, nessun tile colorato. */
.tbp-cat-icon { border-radius: 0 !important; background: transparent !important; }
.tbp-field.active, .tbp-field:focus-within,
.flatpickr-day.selected, .flatpickr-day:hover {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
}
.tbp-cat-pill.is-active .tbp-cat-pill-inner,
.tbp-cat-pill:has(input:checked) .tbp-cat-pill-inner {
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  border-color: var(--tbp-green) !important;
}
.tbp-cat-pill.is-active :where(.tbp-cat-text, .tbp-cat-count),
.tbp-cat-pill:has(input:checked) :where(.tbp-cat-text, .tbp-cat-count) { color: var(--tbp-green) !important; }
.flatpickr-calendar svg, .flatpickr-calendar path { fill: var(--tbp-green) !important; }

/* Forms and WooCommerce. */
form:not(#adminbarsearch) input:not([type="checkbox"]):not([type="radio"]),
form:not(#adminbarsearch) textarea, form:not(#adminbarsearch) select,
.woocommerce input:not([type="checkbox"]):not([type="radio"]),
.woocommerce textarea, .woocommerce select {
  --tbp-focus-color: #6B7280;
  min-height: 48px !important;
  padding: 13px 16px !important;
  border: 1px solid #D1D5DB !important;
  border-radius: var(--tbp-radius-control) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  box-shadow: none !important;
}
form:not(#adminbarsearch) input:not([type="checkbox"]):not([type="radio"]):focus-visible,
form:not(#adminbarsearch) textarea:focus-visible,
form:not(#adminbarsearch) select:focus-visible {
  outline: none !important;
  border-color: #6B7280 !important;
  box-shadow: inset 0 0 0 1px #6B7280 !important;
}
input::placeholder, textarea::placeholder { color: var(--tbp-green-a72) !important; opacity: 1 !important; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--tbp-green); }
.woocommerce-error, .woocommerce-info, .woocommerce-message, .wpcf7-response-output {
  border: 2px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-control) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
}

/* Footer stays green. Contatti #main stays white so the title is not white-on-white. */
body.contatti footer, footer, .footer { background: #084828 !important; }
footer :where(h1, h2, h3, h4, p, li, label, small, strong, em, a) { color: var(--tbp-white) !important; }
footer a:hover { color: var(--tbp-red) !important; }
footer .section, footer .section-bg, footer .section-bg .bg-fill { background: #084828 !important; }
footer .icone-social a { background: transparent !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
footer .icone-social a:hover { background: transparent !important; transform: scale(1.06); }
footer .icone-social a svg path { fill: var(--tbp-green) !important; }

.partner-inline-lockup {
  display: grid !important;
  grid-template-columns: repeat(2, 72px) !important;
  justify-content: center !important;
  gap: 18px !important;
}
.partner-inline-lockup .partner-tbp, .partner-inline-lockup .partner-stareg {
  width: 72px !important;
  height: 72px !important;
  padding: 0 !important;
  border-radius: var(--tbp-radius-control) !important;
  background: transparent !important;
}
.partner-inline-lockup img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* Remove old neutral UI colors emitted by the parent theme. */
#main :where(.bg, .panel, .message-container, .widget, .widget_shopping_cart, .shop_table, .cart_totals),
.post-type-archive-esperienze :where(.archive-esperienze, .tbp-filters, .tbp-search-area) {
  background-color: var(--tbp-white) !important;
}
.tooltipster-base, .mfp-content .lightbox-content {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
}

/* Inline page-builder colors left in the database are normalized at render time. */
[style*="#66bbb4" i], [style*="102, 187, 180" i] {
  background-color: var(--tbp-green) !important;
  border-color: var(--tbp-green) !important;
}
#main hr { border-color: var(--tbp-green) !important; }
.tbp-filter-toggle svg, .tbp-filter-btn svg, .tbp-sort-button svg {
  background: transparent !important;
  color: var(--tbp-white) !important;
  fill: currentColor !important;
}

/* Plugin surfaces: Flatsome, Splide/Flickity/Swiper, Crocoblock and JetEngine. */
button:not(.mfp-close), input[type="button"], input[type="reset"],
.flickity-prev-next-button, .splide__arrow,
.swiper-button-prev, .swiper-button-next,
.jet-form-builder__submit, .jet-filter-button,
.jet-smart-filters-apply-button, .jet-smart-filters-reset-button {
  border: 0 !important;
  border-radius: var(--tbp-radius-control) !important;
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
  box-shadow: none !important;
}
button:not(.mfp-close):hover, input[type="button"]:hover, input[type="reset"]:hover,
.flickity-prev-next-button:hover, .splide__arrow:hover,
.swiper-button-prev:hover, .swiper-button-next:hover,
.jet-form-builder__submit:hover, .jet-filter-button:hover,
.jet-smart-filters-apply-button:hover, .jet-smart-filters-reset-button:hover {
  background: var(--tbp-red) !important;
  color: var(--tbp-white) !important;
}
.flickity-prev-next-button, .splide__arrow,
.swiper-button-prev, .swiper-button-next {
  width: 46px !important;
  height: 46px !important;
  min-height: 46px !important;
}
.flickity-prev-next-button svg, .splide__arrow svg,
.swiper-button-prev svg, .swiper-button-next svg,
.flickity-prev-next-button path, .splide__arrow path,
.swiper-button-prev path, .swiper-button-next path {
  fill: var(--tbp-white) !important;
  color: var(--tbp-white) !important;
}
.flickity-page-dots .dot, .splide__pagination__page,
.swiper-pagination-bullet {
  width: 10px !important;
  height: 10px !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: 4px !important;
  background: var(--tbp-white) !important;
  opacity: 1 !important;
}
.flickity-page-dots .dot.is-selected, .splide__pagination__page.is-active,
.swiper-pagination-bullet-active {
  background: var(--tbp-red) !important;
  border-color: var(--tbp-red) !important;
  transform: none !important;
}
.flickity-viewport, .splide__track, .swiper, .swiper-wrapper,
.ux-slider-wrapper, .slider-wrapper, .slider, .carousel {
  border-radius: var(--tbp-radius-card) !important;
  background: var(--tbp-white) !important;
}
.flickity-slider > *, .splide__slide, .swiper-slide,
.ux-slider-wrapper .banner, .slider-wrapper .banner {
  border-radius: var(--tbp-radius-card) !important;
  overflow: hidden !important;
}

.jet-listing-grid__item, .jet-listing-grid__slider-icon,
.jet-filter, .jet-filter-items-dropdown, .jet-filter-items-dropdown__body,
.jet-checkboxes-list, .jet-radio-list, .jet-select,
.jet-date-range, .jet-date-period, .jet-search-filter,
.jet-form-builder__field-wrap, .jet-form-builder__field,
.jet-apb-calendar, .jet-apb-calendar-content,
.jet-apb-calendar-sidebar, .jet-apb-calendar-slots,
.jet-apb-calendar-appointments-list-wrapper,
.jet-apb-appointments-item {
  border-color: var(--tbp-green) !important;
  color: var(--tbp-green) !important;
}
.jet-listing-grid__item > *, .jet-filter-items-dropdown__body,
.jet-checkboxes-list, .jet-radio-list,
.jet-apb-calendar, .jet-apb-calendar-content,
.jet-apb-calendar-sidebar, .jet-apb-calendar-slots,
.jet-apb-calendar-appointments-list-wrapper,
.jet-apb-appointments-item {
  background: var(--tbp-white) !important;
  border-radius: var(--tbp-radius-card) !important;
}
.jet-filter-row, .jet-checkboxes-list__row, .jet-radio-list__row,
.jet-apb-calendar-date-body, .jet-apb-slot,
.jet-apb-appointments-item-count {
  border-radius: var(--tbp-radius-control) !important;
  border-color: var(--tbp-green) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
}
.jet-checkboxes-list__input:checked ~ .jet-checkboxes-list__button,
.jet-radio-list__input:checked ~ .jet-radio-list__button,
.jet-apb-calendar-date--selected .jet-apb-calendar-date-body,
.jet-apb-slot--selected, .jet-apb-slot:hover {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
  border-color: var(--tbp-green) !important;
}
.jet-form-builder-message, .jet-form-builder__action-button,
.jet-form-builder__field-error, .jet-form-builder__message {
  border-radius: var(--tbp-radius-control) !important;
  border-color: var(--tbp-green) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
}

/* Third-party form controls and generated dropdowns. */
.select2-container .select2-selection,
.select2-dropdown, .select2-search__field,
.select2-results__option, .choices, .choices__inner,
.choices__list, .choices__list--dropdown,
.wpcf7-form-control-wrap, .wpcf7-not-valid-tip {
  border-color: var(--tbp-green) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
}
.select2-container .select2-selection, .select2-dropdown,
.choices, .choices__inner, .choices__list--dropdown {
  border-radius: var(--tbp-radius-control) !important;
}
.select2-results__option--highlighted,
.select2-results__option[aria-selected="true"],
.choices__item--choice.is-highlighted {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
}
.wpcf7-spinner, .blockUI.blockOverlay::before, .woocommerce .loader::before {
  border-color: var(--tbp-green) !important;
  border-top-color: var(--tbp-red) !important;
  background-color: transparent !important;
}

/* Tabs, accordions, pagination, prices and status elements generated by plugins. */
.tabbed-content .nav, .tabs, .accordion, .accordion-inner,
.woocommerce-tabs, .woocommerce-tabs .panel,
.shop_table, .cart_totals, .widget_shopping_cart,
.woocommerce-pagination, .page-numbers, .quantity {
  background: var(--tbp-white) !important;
  border-color: var(--tbp-green) !important;
  color: var(--tbp-green) !important;
}
.tabbed-content .nav > li > a, .tabs > li > a,
.accordion-title, .page-numbers a, .page-numbers span,
.quantity input, .quantity .button {
  border-radius: var(--tbp-radius-control) !important;
  border-color: var(--tbp-green) !important;
}
.tabbed-content .nav > li.active > a, .tabs > li.active > a,
body:not(.faq) .accordion-title.active, .page-numbers .current {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
}
.price, .amount, .star-rating, .star-rating span,
.woocommerce-review-link, .stock, .onsale {
  color: var(--tbp-red) !important;
}
.badge, .onsale, .tag, .label, .status, .badge-inner {
  border-radius: var(--tbp-radius-control) !important;
  background: var(--tbp-red) !important;
  color: var(--tbp-white) !important;
}

@media (hover: hover) and (pointer: fine) { .card:hover .card-back { z-index: 2; } }

@media (max-width: 849px) {
  :root {
    --tbp-page-gutter: 10px;
    --tbp-radius-control: 12px;
    --tbp-radius-card: 18px;
    --tbp-radius-panel: 22px;
  }
  #masthead, .header-wrapper.stuck #masthead {
    min-height: 72px;
    padding: 8px 12px !important;
  }
  #masthead > .header-inner { padding: 0 !important; }
  #masthead button, .mfp-close { width: 44px !important; height: 44px !important; }
  body:not(.single-esperienze) #main {
    width: calc(100% - 20px);
    margin-top: 0 !important;
  }
  #content > section, .section-content { padding-left: 0 !important; padding-right: 0 !important; }
  .row { max-width: 100% !important; }
  .col { min-width: 0; }
  .tbp-search-wrapper, .tbp-search-bar, .tbp-search-fields, .tbp-search-container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .tbp-submit-btn, .tbp-filter-btn, .tbp-sort-button { width: 100% !important; }
  .post-type-archive-esperienze .grid-risultati, #tbp-results-container,
  .products.row, .woocommerce .products {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .card, .card .card-inner, .card .card-front, .card .card-back {
    min-height: 0 !important;
    height: auto !important;
  }
  .card .card-back { position: relative !important; inset: auto !important; display: none; }
  .card .card-back.active { display: flex; }
  .faq .accordion-item { padding: 18px !important; }
  .faq .accordion-title { font-size: 1.05rem !important; gap: 10px !important; }
  footer .section-content > div:first-child {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 28px 16px !important;
    text-align: center;
  }
  footer .section-content > div:first-child > .col {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: auto !important;
    padding: 0 !important;
  }
  footer .stack, footer .icone-social { justify-content: center !important; }
  footer .partner-inline-lockup { grid-template-columns: repeat(2, 64px) !important; }
  footer .partner-inline-lockup .partner-tbp,
  footer .partner-inline-lockup .partner-stareg { width: 64px !important; height: 64px !important; }
}

@media (max-width: 420px) {
  h1:where(:not(.tbp-info-page--guide h1, .tbp-map-page h1, .tbp-page-hero h1)) { font-size: clamp(2rem, 12vw, 3.15rem) !important; line-height: .95 !important; }
  h2:where(:not(.tbp-info-page--guide h2, .tbp-map-page h2)) { font-size: clamp(1.6rem, 9vw, 2.4rem) !important; }
  .button, .bottone { width: 100%; padding-inline: 16px !important; }
  .partner-inline-lockup { grid-template-columns: repeat(2, 58px) !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Homepage rebrand completion: remove the last legacy beige/brown assets. */
.home .slider-cerchio,
.home .slider-cerchio > .container,
.home .slider-cerchio + *,
.home .scritta-scorrevole,
.home .scritta-scorrevole .box,
.home .scritta-scorrevole .box span {
  background: var(--tbp-white) !important;
  background-color: var(--tbp-white) !important;
}

.home .scritta-scorrevole .box span {
  min-height: clamp(150px, 16vw, 250px);
  justify-content: center;
  overflow: hidden;
  display: flex !important;
  flex-direction: row;
  align-items: baseline;
  text-transform: none !important;
}
.home .scritta-scorrevole .box span img { display: none !important; }
.home .scritta-scorrevole .box span::before,
.home .scritta-scorrevole .box span::after {
  display: block;
  font-family: Oxanium, "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(8rem, 17vw, 17rem);
  font-weight: 800;
  line-height: .8;
  letter-spacing: -.075em;
  white-space: nowrap;
  text-transform: none;
}
.home .scritta-scorrevole .box span::before {
  content: "ToBe";
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
}
.home .scritta-scorrevole .box span::after {
  content: "Polo";
  color: var(--tbp-red) !important;
  -webkit-text-fill-color: var(--tbp-red) !important;
}

.home .mockup.hide-for-small img {
  content: url("../img/TBP-home-schermate-app-tricolore-transparent.png") !important;
}
.home .mockup.show-for-small img {
  content: url("../img/TBP-home-schermate-app-mobile-tricolore-transparent.png") !important;
}
.home .colombo-logo img {
  content: url("../img/colombo-face-transparent-20260916.png") !important;
  object-fit: contain !important;
  background: var(--tbp-white) !important;
  border-radius: var(--tbp-radius-xl) !important;
}
.home .mockup,
.home .mockup .img-inner,
.home .mockup img {
  background: transparent !important;
  background-color: transparent !important;
}
/* Contrast contract: every solid flag-colour surface carries white copy. */
:where(.sfondo-giallo, .sfondo-marrone, .bg-primary, .bg-secondary,
  .card-back, .professionista.is-green, .tbp-green-panel, .tbp-red-panel)
  :where(h1, h2, h3, h4, h5, h6, p, li, span, strong, em, small, label, a) {
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
}
[style*="background-color: #009246"] :where(h1, h2, h3, h4, h5, h6, p, li, span, strong, em, small, label, a),
[style*="background-color:#009246"] :where(h1, h2, h3, h4, h5, h6, p, li, span, strong, em, small, label, a),
[style*="background: #009246"] :where(h1, h2, h3, h4, h5, h6, p, li, span, strong, em, small, label, a),
[style*="background:#009246"] :where(h1, h2, h3, h4, h5, h6, p, li, span, strong, em, small, label, a),
[style*="background-color: #D0161A"] :where(h1, h2, h3, h4, h5, h6, p, li, span, strong, em, small, label, a),
[style*="background-color:#D0161A"] :where(h1, h2, h3, h4, h5, h6, p, li, span, strong, em, small, label, a),
[style*="background: #D0161A"] :where(h1, h2, h3, h4, h5, h6, p, li, span, strong, em, small, label, a),
[style*="background:#D0161A"] :where(h1, h2, h3, h4, h5, h6, p, li, span, strong, em, small, label, a) {
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
}

/* Centre the partner sentence over the complete two-logo lockup. */
footer .col:has(.partner-inline-lockup),
footer .col-inner:has(.partner-inline-lockup) {
  text-align: center !important;
}
footer .col-inner:has(.partner-inline-lockup) {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
footer .col-inner:has(.partner-inline-lockup) :where(p, h2, h3, h4) {
  width: 100% !important;
  margin-inline: auto !important;
  text-align: center !important;
}
footer .partner-inline-lockup { margin-inline: auto !important; }

/* The sentence spans the complete lockup; the two tiles sit centred below it. */
body footer .partner-inline-lockup {
  width: 280px !important;
  max-width: 100% !important;
  grid-template-columns: 1fr 1fr !important;
  grid-template-rows: auto 64px !important;
  column-gap: 0 !important;
  row-gap: 12px !important;
  justify-items: center !important;
}
body footer .partner-inline-lockup p {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin: 0 !important;
  text-align: center !important;
  justify-self: stretch !important;
}
body footer .partner-inline-lockup .partner-tile { justify-self: center !important; }

/* Inline legacy rules set green copy on a red CTA; enforce an accessible pair. */
body .colombo-integrated-row .colombo-cta {
  background: var(--tbp-red) !important;
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
}

@media (max-width: 849px) {
  .registration-choice > summary { width: 100%; }
  body footer .partner-inline-lockup { width: 250px !important; }
}

@media (max-width: 390px) {
  body footer .partner-inline-lockup {
    width: 232px !important;
    grid-template-rows: auto 58px !important;
  }
}

/* ========================================================================== */
/* Component contract v2 — plugin-safe, accessible, desktop + mobile          */
/* ========================================================================== */

/*
 * Quarantined legacy hotfix layer.
 *
 * The v2/v3 rules below used broad selectors and changed unrelated plugin,
 * account, archive and footer components.  Keep the historical declarations
 * in the file for traceability, but make them inert while the scoped design
 * system below is applied page by page.
 */
@media (max-width: 0px) {

/* Do not let focus on a child repaint an entire plugin component. */
.tbp-field:focus-within,
.tbp-field.categorie:focus-within {
  background: transparent !important;
  color: inherit !important;
}

/* Header navigation: one coherent control size. */
body #header .nav > li > a,
body #header .header-button a,
body #header a.button {
  min-height: 48px !important;
  padding: 0 24px !important;
  border-radius: var(--tbp-radius-md) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1.15 !important;
}

/* Archive search: replace the plugin's absolute/pill layout with a stable grid. */
.tbp-filter-wrapper form#tbp-filter-form .luogo-data {
  width: min(100%, 1000px) !important;
  max-width: 1000px !important;
  margin: 20px auto 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 152px !important;
  align-items: stretch !important;
  gap: 12px !important;
  position: relative !important;
  overflow: visible !important;
}
.tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field,
.tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field:first-child,
.tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field:nth-child(2) {
  position: relative !important;
  inset: auto !important;
  left: auto !important;
  top: auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 88px !important;
  margin: 0 !important;
  padding: 14px 20px !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-md) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  box-shadow: none !important;
}
.tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field.sparisci {
  display: none !important;
}
.tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field.sparisci + .tbp-field {
  grid-column: 1 / 3 !important;
  width: auto !important;
}
.tbp-filter-wrapper form#tbp-filter-form .luogo-data label,
.tbp-filter-wrapper form#tbp-filter-form .luogo-data input,
.tbp-filter-wrapper form#tbp-filter-form .luogo-data input::placeholder {
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
  opacity: 1 !important;
}
.tbp-filter-wrapper form#tbp-filter-form .luogo-data button[type="submit"],
.tbp-filter-wrapper form#tbp-filter-form .luogo-data input[type="submit"] {
  position: relative !important;
  inset: auto !important;
  width: 152px !important;
  min-width: 152px !important;
  min-height: 88px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 16px !important;
  border: 0 !important;
  border-radius: var(--tbp-radius-md) !important;
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
}

/* Mode switch: labels and icons are never allowed to disappear. */
.tbp-filter-wrapper .vivo-online {
  gap: 10px !important;
}
.tbp-filter-wrapper .vivo-online .tbp-field:not(.tbp-primary-chip) {
  min-width: 138px !important;
  min-height: 50px !important;
  padding: 10px 18px !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-md) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
}
.tbp-filter-wrapper .vivo-online .tbp-field label,
.tbp-filter-wrapper .vivo-online .tbp-field span {
  display: inline !important;
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
  opacity: 1 !important;
}
.tbp-filter-wrapper .vivo-online .tbp-field:not(.tbp-primary-chip).active,
.tbp-filter-wrapper .vivo-online .tbp-field:not(.tbp-primary-chip):hover {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
}
.tbp-filter-wrapper .vivo-online .tbp-field:not(.tbp-primary-chip).active :where(label, span),
.tbp-filter-wrapper .vivo-online .tbp-field:not(.tbp-primary-chip):hover :where(label, span) {
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
}
.tbp-filter-wrapper .vivo-online .tbp-field svg :where(path, rect, circle) {
  fill: currentColor !important;
  stroke: currentColor !important;
}

/* Category carousel: white surfaces, contained tricolour assets, readable states. */
.tbp-filter-wrapper .tbp-field.categorie,
.tbp-filter-wrapper .tbp-field.categorie:focus-within {
  width: 100% !important;
  background: transparent !important;
  color: var(--tbp-green) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.tbp-filter-wrapper .tbp-field.categorie .splide__track::before,
.tbp-filter-wrapper .tbp-field.categorie .splide__track::after {
  display: none !important;
  content: none !important;
  background: none !important;
}
.tbp-filter-wrapper .tbp-cat-pill-inner {
  min-height: 72px !important;
  padding: 10px 18px 10px 10px !important;
  border: 1px solid rgba(8,72,40,.16) !important;
  border-radius: 12px !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  box-shadow: none !important;
  gap: 12px !important;
}
.tbp-filter-wrapper .tbp-cat-pill-inner :where(.tbp-cat-name, .tbp-cat-count, span) {
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
  opacity: 1 !important;
}
.tbp-filter-wrapper .tbp-cat-icon {
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  border: 0 !important;
  border-radius: var(--tbp-radius-sm) !important;
  background: transparent !important;
  overflow: visible !important;
}
.tbp-filter-wrapper .tbp-cat-icon img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  border-radius: inherit !important;
}
.tbp-filter-wrapper .tbp-cat-icon:not(:has(img)) {
  display: none !important;
}
.tbp-filter-wrapper .tbp-cat-pill input:checked + .tbp-cat-pill-inner,
.tbp-filter-wrapper .tbp-cat-pill:hover .tbp-cat-pill-inner {
  background: var(--tbp-white) !important;
  border-color: var(--tbp-green) !important;
}
.tbp-filter-wrapper .tbp-cat-pill input:checked + .tbp-cat-pill-inner :where(.tbp-cat-name, .tbp-cat-count, span),
.tbp-filter-wrapper .tbp-cat-pill:hover .tbp-cat-pill-inner :where(.tbp-cat-name, .tbp-cat-count, span) {
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
}

/* Sort/filter actions: compact, aligned, same visual language. */
.tbp-filter-wrapper .tbp-field.ordina select#tbp-ordina-select {
  min-height: 52px !important;
  padding: 0 44px 0 18px !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-md) !important;
  background-color: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
}
/* Account templates: remove every old ivory/yellow/brown surface and logo. */
body.login-page #main,
body.registrazione #main,
body.page-id-1046 #main,
body.page-id-1048 #main,
.account-container,
.account-login-inner,
.account-register-inner {
  background: var(--tbp-white) !important;
}
.account-container {
  min-height: auto !important;
  padding: 48px 20px 64px !important;
}
.account-container :where(.account-login-inner, .account-register-inner) {
  width: min(100%, 560px) !important;
  margin: 0 auto !important;
  padding: 30px !important;
  border: 1px solid rgba(8,72,40,.45) !important;
  border-radius: var(--tbp-radius-lg) !important;
  box-shadow: 0 18px 50px rgba(8,72,40,.09) !important;
}
.account-container .logo {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  margin: 0 auto 24px !important;
}
.account-container .tbp-account-logotype {
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
  font: 800 clamp(32px, 5vw, 48px)/1 var(--tbp-font) !important;
  letter-spacing: -.045em !important;
}
.account-container h1 {
  color: var(--tbp-green) !important;
  text-align: center !important;
}
.account-container :where(input.input-text, input[type="text"], input[type="email"], input[type="password"], select) {
  min-height: 56px !important;
  border: 1px solid rgba(8,72,40,.5) !important;
  border-radius: var(--tbp-radius-md) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  box-shadow: none !important;
}
.account-container :where(input, select)::placeholder {
  color: rgba(8,72,40,.62) !important;
  opacity: 1 !important;
}
.account-container :where(button[type="submit"], .button) {
  min-height: 52px !important;
  border-radius: var(--tbp-radius-md) !important;
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
}
.account-container .tbp-legal-checkboxes {
  border-color: rgba(8,72,40,.35) !important;
  border-radius: var(--tbp-radius-md) !important;
  background: var(--tbp-white) !important;
}
.account-container :where(.registration-choice, .switch-registrazione, .tipo-utente, .user-type-switch) {
  background: var(--tbp-white) !important;
  border: 1px solid rgba(8,72,40,.35) !important;
  border-radius: var(--tbp-radius-md) !important;
}
.account-container :where(.registration-choice, .switch-registrazione, .tipo-utente, .user-type-switch) :where(.active, [aria-selected="true"], input:checked + label) {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
  border-radius: var(--tbp-radius-sm) !important;
}

/* Experience detail: hierarchy, chip contrast and master portrait. */
.single-esperienze .intro > .testi h1 {
  font-size: clamp(40px, 5.2vw, 76px) !important;
  line-height: .98 !important;
  max-width: 18ch !important;
  color: var(--tbp-green) !important;
}
.single-esperienze .chips > div {
  min-height: 46px !important;
  padding: 10px 16px !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-md) !important;
  display: inline-flex !important;
  align-items: center !important;
  color: var(--tbp-green) !important;
}
.single-esperienze .chips > div.verde {
  background: var(--tbp-green) !important;
  border-color: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
}
.single-esperienze .chips > div.gialla,
.single-esperienze .chips > div.rossa {
  background: var(--tbp-red) !important;
  border-color: var(--tbp-red) !important;
  color: var(--tbp-white) !important;
}
.single-esperienze .chips > div.bianca {
  background: var(--tbp-white) !important;
  border-color: var(--tbp-green) !important;
  color: var(--tbp-green) !important;
}
.single-esperienze .chips > div :where(span, p, strong, svg) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
.single-esperienze .venditore .info .foto,
.single-esperienze .venditore .info .foto img:not(.verificato) {
  border-radius: 16px !important;
}
.single-esperienze .nome-professione h2 {
  font-size: 1.05rem !important;
  line-height: 1.2 !important;
  color: var(--tbp-green) !important;
}

@media (max-width: 849px) {
  body #header .nav > li > a,
  body #header .header-button a,
  body #header a.button { min-height: 44px !important; padding-inline: 16px !important; }

  .tbp-filter-wrapper form#tbp-filter-form .luogo-data {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding-inline: 14px !important;
  }
  .tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field,
  .tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field.sparisci + .tbp-field {
    grid-column: 1 !important;
    min-height: 68px !important;
  }
  .tbp-filter-wrapper form#tbp-filter-form .luogo-data button[type="submit"],
  .tbp-filter-wrapper form#tbp-filter-form .luogo-data input[type="submit"] {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
  }
  .tbp-filter-wrapper .vivo-online {
    width: 100% !important;
    padding-inline: 14px !important;
    justify-content: center !important;
  }
  .tbp-filter-wrapper .vivo-online .tbp-field {
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }
  .tbp-filter-wrapper .tbp-cat-pill-inner {
    min-height: 68px !important;
    padding: 8px 12px !important;
  }
  .tbp-filter-wrapper .tbp-cat-icon {
    width: 112px !important;
    height: 112px !important;
    min-width: 112px !important;
  }
  .account-container { padding: 24px 14px 40px !important; }
  .account-container :where(.account-login-inner, .account-register-inner) { padding: 22px 18px !important; }
  .single-esperienze .intro > .testi h1 {
    font-size: clamp(34px, 10vw, 52px) !important;
    line-height: 1.02 !important;
  }
}

@media (max-width: 480px) {
  .tbp-filter-wrapper .vivo-online .tbp-field { min-height: 48px !important; padding: 8px 10px !important; }
  .tbp-filter-wrapper .tbp-field.ordina select#tbp-ordina-select { min-height: 48px !important; }
}

/* ========================================================================== */
/* Component contract v3 — final Apple-boxy geometry and accessible contrast */
/* ========================================================================== */

/* The former aliases were missing, which made every var(--tbp-radius-*) rule
   invalid and caused the hard-square controls seen on staging. */
:root {
  --tbp-radius-control: 18px;
  --tbp-radius-card: 28px;
  --tbp-radius-panel: 34px;
  --tbp-radius-xs: 10px;
  --tbp-radius-sm: 14px;
  --tbp-radius-md: 18px;
  --tbp-radius-lg: 28px;
  --tbp-radius-xl: 34px;
}

/* No oversized decorative word inside the footer. Home marquee stays visible. */
footer .footer-wordmark-row,
footer :where(.footer-wordmark, .scritta-footer, .footer-logo-gigante) {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* Header and all principal actions: continuous Apple-like corners, never
   pills and never sharp rectangles. */
body #header :where(.nav > li > a, .header-button a, a.button),
body #masthead :where(.nav > li > a, .header-button a, a.button),
body #masthead .login-registrazione > a,
body #masthead .registration-choice > summary,
body :where(.button, .bottone, button:not(.mfp-close):not(.flickity-button), input[type="submit"]),
.tbp-filter-wrapper :where(.tbp-field, button, select),
.account-container :where(input, select, button, .button, .tbp-registration-role-choice a) {
  border-radius: var(--tbp-radius-md) !important;
}
body #header :where(.header-button a, a.button),
body #masthead :where(.header-button a, a.button),
body #masthead .registration-choice > summary {
  min-height: 52px !important;
  height: 52px !important;
  padding: 0 clamp(18px, 1.35vw, 25px) !important;
  line-height: 1 !important;
  overflow: hidden !important;
}

/* New Colombo: white-dominant mark, thin red contour and green TBP strokes. */
.home .colombo-logo,
.home .colombo-logo .img-inner {
  background: var(--tbp-white) !important;
  border-radius: var(--tbp-radius-lg) !important;
  overflow: hidden !important;
}
.home .colombo-logo img {
  content: url("../img/colombo-face-transparent-20260916.png") !important;
  width: min(100%, 410px) !important;
  height: auto !important;
  margin-inline: auto !important;
  padding: 0 !important;
  object-fit: contain !important;
  background: var(--tbp-white) !important;
  border-radius: var(--tbp-radius-lg) !important;
}
.home .colombo-integrated-row .colombo-cta,
.home .colombo-integrated-row .colombo-cta :where(span, strong) {
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
}

/* Footer: compact grid, white readable copy on Italian green. */
body footer,
body footer .section,
body footer .section-bg,
body footer .section-bg .bg-fill {
  background: var(--tbp-green) !important;
}
body footer,
body footer .section-content,
body footer .section-content > div,
body footer .footer-main-grid,
body footer .partner-inline-lockup {
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
}
body footer .section-content > div:first-child {
  min-height: 0 !important;
  padding-block: clamp(36px, 5vw, 76px) !important;
  align-items: start !important;
}
body footer :where(h1, h2, h3, h4, h5, h6, p, li, label, small, strong, em, a, span),
body footer :where(h1, h2, h3, h4, h5, h6, p, li, label, small, strong, em, a, span):visited {
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
  opacity: 1 !important;
}
body footer a:hover,
body footer a:focus-visible {
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
  text-decoration: underline !important;
}
body footer .partner-inline-lockup p {
  white-space: nowrap !important;
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
}

/* Search layout: the submit action cannot escape the grid or be clipped. */
.tbp-filter-wrapper form#tbp-filter-form .luogo-data {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 160px !important;
  width: min(calc(100% - 28px), 1000px) !important;
  overflow: visible !important;
}
.tbp-filter-wrapper form#tbp-filter-form .luogo-data > :where(button[type="submit"], input[type="submit"]) {
  grid-column: 3 !important;
  width: 160px !important;
  max-width: 160px !important;
  min-width: 160px !important;
  border-radius: var(--tbp-radius-md) !important;
}
.tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field.sparisci + .tbp-field {
  grid-column: 1 / 3 !important;
}

/* Splide marks the visible slide as is-active; that is not user selection. */
.tbp-filter-wrapper .tbp-field.categorie .splide__track::before,
.tbp-filter-wrapper .tbp-field.categorie .splide__track::after {
  display: none !important;
  content: none !important;
}
.tbp-filter-wrapper .tbp-cat-pill.is-active .tbp-cat-pill-inner {
  background: var(--tbp-white) !important;
  border-color: var(--tbp-green-a32) !important;
}
.tbp-filter-wrapper .tbp-cat-pill.is-active .tbp-cat-pill-inner :where(.tbp-cat-name, .tbp-cat-count, span) {
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
}
.tbp-filter-wrapper .tbp-cat-pill:has(input:checked) .tbp-cat-pill-inner,
.tbp-filter-wrapper .tbp-cat-pill input:checked + .tbp-cat-pill-inner {
  background: var(--tbp-white) !important;
  border-color: var(--tbp-green) !important;
}
.tbp-filter-wrapper .tbp-cat-pill:has(input:checked) .tbp-cat-pill-inner :where(.tbp-cat-name, .tbp-cat-count, span),
.tbp-filter-wrapper .tbp-cat-pill input:checked + .tbp-cat-pill-inner :where(.tbp-cat-name, .tbp-cat-count, span) {
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
}
.tbp-filter-wrapper .tbp-cat-pill-inner,
.tbp-filter-wrapper .tbp-cat-icon {
  border-radius: 12px !important;
}

/* Sort controls stay aligned and labels never get clipped. */
.tbp-filter-wrapper .tbp-field.ordina,
.tbp-filter-wrapper .tbp-field.filtra {
  overflow: visible !important;
  min-width: 0 !important;
  width: 100% !important;
}

/* Registration role switch mirrors staging behaviour without changing the
   WooCommerce endpoint or account creation logic. */
.account-container .tbp-registration-role-choice {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 6px !important;
  margin: 0 0 24px !important;
  padding: 6px !important;
  border: 1px solid var(--tbp-green-a32) !important;
  border-radius: var(--tbp-radius-md) !important;
  background: var(--tbp-white) !important;
}
.account-container .tbp-registration-role-choice a {
  min-height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 14px !important;
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
  font-weight: 700 !important;
  text-align: center !important;
}
.account-container .tbp-registration-role-choice a[aria-current="page"] {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
}

@media (max-width: 849px) {
  :root {
    --tbp-radius-control: 16px;
    --tbp-radius-card: 24px;
    --tbp-radius-panel: 28px;
    --tbp-radius-sm: 12px;
    --tbp-radius-md: 16px;
    --tbp-radius-lg: 24px;
    --tbp-radius-xl: 28px;
  }
  body #header :where(.header-button a, a.button),
  body #masthead :where(.header-button a, a.button),
  body #masthead .registration-choice > summary {
    min-height: 48px !important;
    height: 48px !important;
  }
  .tbp-filter-wrapper form#tbp-filter-form .luogo-data {
    grid-template-columns: 1fr !important;
  }
  .tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field,
  .tbp-filter-wrapper form#tbp-filter-form .luogo-data > .tbp-field.sparisci + .tbp-field,
  .tbp-filter-wrapper form#tbp-filter-form .luogo-data > :where(button[type="submit"], input[type="submit"]) {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  body footer .section-content > div:first-child {
    padding: 32px 18px !important;
  }
  body footer .partner-inline-lockup p {
    white-space: normal !important;
  }
}

@media (max-width: 480px) {
  .account-container .tbp-registration-role-choice {
    grid-template-columns: 1fr !important;
  }
  .tbp-filter-wrapper .tbp-field.ordina,
  .tbp-filter-wrapper .tbp-field.filtra {
    min-width: 0 !important;
  }
}

} /* end quarantined component contract v2/v3 */

/* ==========================================================================
   ToBePolo Italia UI contract v4 — scoped, accessible and layout-safe
   ========================================================================== */

:root {
  --tbp-green: #084828;
  --tbp-white: #fff;
  --tbp-red: #D0161A;
  --tbp-ivory: #F7F4ED;
  --tbp-surface-sage: #F4F7F5;
  --tbp-green-08: rgba(8, 72, 40, .08);
  --tbp-green-16: rgba(8, 72, 40, .16);
  --tbp-red-12: rgba(208, 22, 26, .12);
  --tbp-radius-control: 16px;
  --tbp-radius-card: 24px;
  --tbp-radius-panel: 32px;
  --tbp-shadow: 0 16px 40px rgba(8, 72, 40, .12);
}

/* Lo sfondo del sito e' la velatura tricolore su uno strato fisso dietro
   tutto: questi contenitori restano trasparenti. */
html, body, #wrapper, #main, .page-wrapper { background: transparent !important; }
body, button, input, select, textarea {
  font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
body { color: var(--tbp-green); }
::selection { color: var(--tbp-white); background: var(--tbp-red); }

body :where(h1, h2, h3, h4, h5, h6) {
  color: var(--tbp-green);
  letter-spacing: -.035em;
  text-wrap: balance;
}
body :where(a) { color: var(--tbp-green); }
body :where(a:hover, a:focus-visible) { color: var(--tbp-red); }

:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid var(--tbp-focus-color, var(--tbp-red)) !important;
  outline-offset: 3px !important;
}

/* Re-map historical palette helpers without changing their geometry. */
.giallo, .marrone { color: var(--tbp-green) !important; }
.giallino { color: var(--tbp-white) !important; }
.sfondo-giallo, .sfondo-marrone { background: var(--tbp-green) !important; }
.sfondo-giallino { background: var(--tbp-white) !important; }

/* Controls: continuous Apple-like corners, never square and never pills. */
body :where(.button, .bottone, button[type="submit"], input[type="submit"],
  .tbp-submit-btn, .tbp-filter-btn, .tbp-filter-toggle, .tbp-sort-button,
  .woocommerce a.button, .woocommerce button.button, .woocommerce input.button) {
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-control) !important;
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
  box-shadow: none !important;
  min-height: 48px;
  transition: var(--tbp-control-transition, background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease) !important;
}
body :where(.button, .bottone, button[type="submit"], input[type="submit"],
  .tbp-submit-btn, .tbp-filter-btn, .tbp-filter-toggle, .tbp-sort-button,
  .woocommerce a.button, .woocommerce button.button, .woocommerce input.button):hover {
  background: var(--tbp-control-hover-bg, var(--tbp-red)) !important;
  border-color: var(--tbp-control-hover-bg, var(--tbp-red)) !important;
  color: var(--tbp-white) !important;
  transform: var(--tbp-control-hover-transform, translateY(-1px));
}
body :where(.button.is-outline, .bottone.is-outline, .tbp-sort-button) {
  background: var(--tbp-white) !important;
  border-color: var(--tbp-green) !important;
  color: var(--tbp-green) !important;
}

/* Header: scope only first-level navigation so plugin and account menus survive. */
#header, #masthead, #masthead .header-bg-color, #masthead .header-bg-container {
  background: var(--tbp-white) !important;
}
#masthead .header-inner { gap: clamp(14px, 2vw, 34px); }
#masthead .header-nav > li.menu-item > a,
#masthead .login-registrazione > a,
#masthead .registration-choice > summary {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 0 !important;
  padding: 4px 8px 8px !important;
  gap: 0 !important;
  flex-direction: column;
  border: 0 !important;
  border-radius: 22px !important;
  background: transparent !important;
  color: var(--tbp-green) !important;
  line-height: 1.15 !important;
  box-shadow: none !important;
}
#masthead .header-nav > li.menu-item > a:hover,
#masthead .login-registrazione > a.login:hover,
#masthead .registration-choice > summary:hover {
  background: var(--tbp-surface-sage, #F4F7F5) !important;
  color: var(--tbp-green) !important;
}
#masthead .header-nav > li.menu-item > a img.tbp-nav-lava,
#masthead .header-nav > li.menu-item > a img.tbp-lava-icon,
#masthead .login-registrazione > a img.tbp-nav-lava,
#masthead .login-registrazione > a img.tbp-lava-icon {
  width: 80px !important;
  height: 80px !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  display: block !important;
}
#masthead .registration-choice > summary { background: var(--tbp-register-cta, var(--tbp-red)) !important; color: var(--tbp-register-ink, var(--tbp-white)) !important; }
#masthead .login-registrazione > a.registrazione {
  background: var(--tbp-register-cta, var(--tbp-red)) !important;
  color: var(--tbp-register-ink, var(--tbp-white)) !important;
  padding: 4px 12px 10px !important;
}
#masthead .login-registrazione > a.registrazione:hover {
  background: var(--tbp-register-hover, var(--tbp-green)) !important;
  color: var(--tbp-register-ink, var(--tbp-white)) !important;
}
.registration-choice { position: relative; }
.registration-choice > summary { list-style: none; cursor: pointer; }
.registration-choice > summary::-webkit-details-marker { display: none; }
.registration-choice-menu {
  position: absolute;
  z-index: 1000;
  top: calc(100% + 10px);
  right: 0;
  width: min(330px, calc(100vw - 24px));
  padding: 10px;
  background: var(--tbp-white);
  border: 1px solid var(--tbp-green);
  border-radius: var(--tbp-radius-card);
  box-shadow: var(--tbp-shadow);
}
.registration-choice-link {
  display: block;
  padding: 14px 16px;
  border-radius: 14px;
  color: var(--tbp-green) !important;
}
.registration-choice-link:hover { background: var(--tbp-green); color: var(--tbp-white) !important; }
.registration-choice-link :where(strong, span) { display: block; color: inherit !important; }

/* Home: preserve layouts and animation; replace only surfaces and contrast. */
.home :where(.slider-cerchio, .slider-cerchio > .container, .scritta-scorrevole) {
  background: var(--tbp-white) !important;
}
.home .slider-cerchio > .container { border-radius: var(--tbp-radius-panel) !important; }
.home .slider-cerchio :where(.slide, .slide img, .img-inner) { border-radius: var(--tbp-radius-card) !important; }
.home .scritta-scorrevole .box span img { filter: none !important; }
.home .scritta-scorrevole { color: inherit !important; }
.home .app-mockup img,
.home img[src*="TBP-home-schermate-app"] {
  mix-blend-mode: normal;
  background: transparent !important;
}
.home :where(.professionista, .nuova-opportunita, .tbp-green-panel) {
  background: var(--tbp-green) !important;
  border-radius: var(--tbp-radius-panel) !important;
}
.home :where(.professionista, .nuova-opportunita, .tbp-green-panel)
  :where(h1, h2, h3, h4, p, li, a, strong, em) { color: var(--tbp-white) !important; }
.home .professionista .bottone,
.home .nuova-opportunita .bottone { background: var(--tbp-red) !important; border-color: var(--tbp-red) !important; }
.home :where(.card, .flip-card, .card-front, .card-back, .esperienza-card) {
  border-radius: var(--tbp-radius-card) !important;
  overflow: hidden;
}
.home :where(.card, .flip-card, .esperienza-card) :where(h2, h3, p, a, strong) {
  color: var(--tbp-white) !important;
  -webkit-text-fill-color: var(--tbp-white) !important;
}
.colombo-integrated-row { background: var(--tbp-white) !important; }
.colombo-integrated-row :where(h1, h2, h3, p, strong) { color: var(--tbp-green) !important; }
.colombo-integrated-row .colombo-logo {
  display: grid;
  place-items: center;
  background: var(--tbp-white) !important;
  border: 1px solid var(--tbp-red) !important;
  border-radius: var(--tbp-radius-card) !important;
  overflow: hidden;
}
.colombo-integrated-row .colombo-logo img {
  content: url("../img/colombo-face-transparent-20260916.png") !important;
  width: min(100%, 360px) !important;
  height: auto !important;
  object-fit: contain !important;
}
.colombo-integrated-row .colombo-cta {
  background: var(--tbp-red) !important;
  border-color: var(--tbp-red) !important;
  color: var(--tbp-white) !important;
}

/* Archive/search: style the plugin, do not redefine its grid or positioning. */
body.post-type-archive-esperienze :where(main, .archive-esperienze, .tbp-filter-wrapper, .tbp-search-area) {
  background: var(--tbp-white) !important;
}
.post-type-archive-esperienze .tbp-filter-wrapper :where(input, select, .tbp-field, .luogo-data) {
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  border-color: var(--tbp-green) !important;
  border-radius: var(--tbp-radius-control) !important;
}
.post-type-archive-esperienze .tbp-filter-wrapper :where(input, select)::placeholder { color: rgba(8, 72, 40, .62) !important; }
.post-type-archive-esperienze :where(.categorie-slider, .categorie-carousel, .swiper, .slick-list, .slick-track) {
  background: var(--tbp-white) !important;
}
.post-type-archive-esperienze :where(.categoria, .categoria-card, .category-item, .swiper-slide) {
  border-radius: var(--tbp-radius-card) !important;
}
.post-type-archive-esperienze :where(.categoria.active, .categoria-card.active, .swiper-slide-active) {
  background: var(--tbp-green) !important;
}
.post-type-archive-esperienze :where(.categoria.active, .categoria-card.active, .swiper-slide-active)
  :where(h2, h3, p, span, strong) { color: var(--tbp-white) !important; }
.post-type-archive-esperienze :where(.esperienza-card, .product-small, article.esperienze) {
  border-radius: var(--tbp-radius-card) !important;
  overflow: hidden;
  box-shadow: var(--tbp-shadow);
}

/* Single experience/vendor: badges must always keep readable foregrounds. */
body.single-esperienze :where(.intro, .corpo, .faq, .termini-cancellazione),
body.tax-venditori :where(.intro, .corpo), body.single-venditori :where(.intro, .corpo) {
  background: var(--tbp-white) !important;
}
body.single-esperienze :where(.badge, .pill, .tag, .categoria, .modalita),
body.single-venditori :where(.badge, .pill, .tag) {
  background: var(--tbp-green) !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-control) !important;
  color: var(--tbp-white) !important;
}
body.single-esperienze :where(.badge, .pill, .tag, .categoria, .modalita) *,
body.single-venditori :where(.badge, .pill, .tag) * { color: inherit !important; }
body.single-esperienze .mastro img,
body.single-esperienze .venditore img,
body.single-venditori .profile img { border-radius: var(--tbp-radius-card) !important; }

/* Account, registration and checkout. */
body:is(.login, .registrazione, .registrazione-professionista, .registrazione-confermata, .woocommerce-account)
  main { background: var(--tbp-white) !important; }
body:is(.login, .registrazione, .registrazione-professionista, .registrazione-confermata, .woocommerce-account)
  :where(.account-container, .container.lightbox-inner) {
  background: var(--tbp-white) !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-card) !important;
  box-shadow: var(--tbp-shadow) !important;
}
body:is(.login, .registrazione, .registrazione-professionista, .registrazione-confermata, .woocommerce-account)
  .account-container .logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin: 0 auto 12px;
}
body:is(.login, .registrazione, .registrazione-professionista, .registrazione-confermata, .woocommerce-account)
  .account-container .logo .logotipo {
  display: block !important;
  content: none !important;
  width: 168px !important;
  max-width: 168px !important;
  height: auto !important;
}
body:is(.login, .registrazione, .registrazione-professionista, .woocommerce-account)
  .account-container :where(input, select, textarea) {
  background: var(--tbp-white) !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-control) !important;
  color: var(--tbp-green) !important;
}
body:is(.login, .registrazione, .registrazione-professionista, .woocommerce-account)
  .account-container :where(input, textarea)::placeholder { color: rgba(8, 72, 40, .58) !important; }
.tbp-registration-role-choice {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 0 !important;
  background: transparent !important;
}
.tbp-registration-role-choice a {
  display: grid;
  place-items: center;
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid var(--tbp-green);
  border-radius: var(--tbp-radius-control);
  background: var(--tbp-white);
  color: var(--tbp-green) !important;
}
.tbp-registration-role-choice a[aria-current="page"],
.tbp-registration-role-choice a:hover { background: var(--tbp-green); color: var(--tbp-white) !important; }

/* Editorial, contact, FAQ and legal pages. */
body:is(.chi-siamo, .proponi-un-esperienza, .contatti, .faq,
  .privacy-policy, .termini-e-condizioni-di-vendita, .termini-e-condizioni-professionista)
  #main { background: var(--tbp-white) !important; }
body:is(.chi-siamo, .proponi-un-esperienza) :where(.schede, .obiettivi, .professionista, .nuova-opportunita) {
  border-radius: var(--tbp-radius-panel) !important;
}
body:is(.chi-siamo, .proponi-un-esperienza) :where(.professionista, .nuova-opportunita) {
  background: var(--tbp-green) !important;
}
body:is(.chi-siamo, .proponi-un-esperienza) :where(.professionista, .nuova-opportunita)
  :where(h1, h2, h3, h4, p, li, a, strong) { color: var(--tbp-white) !important; }
body.contatti .professionista :where(h1, h2, h3, p, label, small, strong) {
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
}
/* On photos, never dark green. */
#main .section.fullh :where(h1, h2, h3, h4, p, strong),
#main .banner :where(h1, h2, h3, h4, p, strong),
#main .has-bg :where(h1, h2, h3, h4, p, strong) {
  color: #fffbe8 !important;
  -webkit-text-fill-color: #fffbe8 !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
}
body.contatti .professionista :where(input, textarea) {
  background: var(--tbp-white) !important;
  border: 1px solid var(--tbp-green) !important;
  border-radius: var(--tbp-radius-control) !important;
  color: var(--tbp-green) !important;
}
/* FAQ: one responsive component, no nested gutters or absolute text toggles. */
body.faq #main {
  overflow-x: visible;
}
body.faq .tbp-info-page {
  width: 100%;
}
body.faq .tbp-info-page > .container {
  width: min(900px, 100%);
  padding-inline: 0;
}
body.faq .tbp-info-page .section {
  padding: 12px 0 !important;
}
/* Component spacing replaces the page builder's stacked empty spacers. */
body.faq .tbp-info-page .gap-element {
  display: none !important;
}
body.faq .tbp-info-page .section-content > .row {
  width: 100%;
  margin: 0;
}
body.faq .tbp-info-page .section-content > .row > .col {
  flex-basis: 100%;
  max-width: 100%;
  padding: 0 0 12px;
}
body.faq .tbp-info-page .section-content > .row > .col > .col-inner {
  padding: 0 !important;
  margin: 0 !important;
  position: static;
}
body.faq .accordion.faq-pagina .accordion-item {
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: 1px solid var(--tbp-line, #E6EDE8) !important;
  border-radius: 16px !important;
  background: var(--tbp-white) !important;
  box-shadow: none !important;
  overflow: visible !important;
  transition: none;
}
body.faq .accordion.faq-pagina .accordion-title {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 44px;
  align-items: center !important;
  gap: 12px !important;
  width: 100%;
  min-height: 64px !important;
  padding: 10px 12px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
  font-size: 1rem !important;
  font-weight: 650;
  line-height: 1.4 !important;
  letter-spacing: 0;
  text-decoration: none;
  position: relative;
}
body.faq .accordion.faq-pagina .accordion-title > span {
  grid-column: 1;
  grid-row: 1;
  width: auto !important;
  min-width: 0;
  overflow-wrap: break-word;
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
body.faq .accordion.faq-pagina .accordion-title .toggle {
  grid-column: 2;
  grid-row: 1;
  position: static !important;
  inset: auto !important;
  display: grid;
  place-items: center;
  width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: var(--tbp-surface-sage, #F4F7F5) !important;
  color: var(--tbp-green) !important;
  opacity: 1 !important;
  transform: none !important;
}
body.faq .accordion.faq-pagina .accordion-title .toggle .icon-angle-down {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px !important;
  font-size: 24px !important;
  line-height: 1 !important;
  color: inherit !important;
  transform: rotate(0deg);
  transition: transform 240ms cubic-bezier(.22, 1, .36, 1);
}
body.faq .accordion.faq-pagina .accordion-title .toggle .icon-angle-down::before {
  content: '+';
  position: static;
}
body.faq .accordion.faq-pagina .accordion-title.active .icon-angle-down {
  transform: rotate(45deg);
}
body.faq .accordion.faq-pagina .accordion-title.active {
  background: var(--tbp-surface-sage, #F4F7F5) !important;
}
body.faq .accordion.faq-pagina .accordion-inner {
  background: transparent !important;
  color: var(--tbp-green) !important;
  padding: 8px 12px 16px !important;
  border: 0 !important;
}
body.faq .accordion.faq-pagina .accordion-inner p:last-child {
  margin-bottom: 0;
}
@media (prefers-reduced-motion: reduce) {
  body.faq .accordion.faq-pagina .accordion-title .toggle .icon-angle-down {
    transition: none;
  }
}
body.chi-siamo .obiettivi .col > .col-inner {
  background: var(--tbp-surface-sage, #F4F7F5) !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 24px !important;
  color: var(--tbp-green) !important;
}
body.chi-siamo .obiettivi :where(h2, h3, h4, p, span, strong, em) {
  color: var(--tbp-green) !important;
  -webkit-text-fill-color: var(--tbp-green) !important;
}
body.chi-siamo .obiettivi .icon-box,
body.chi-siamo .obiettivi .icon-box-img,
body.chi-siamo .obiettivi .has-border,
body.chi-siamo .obiettivi .is-border {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
body.chi-siamo .professionista,
body.chi-siamo .nuova-opportunita {
  width: min(1180px, calc(100% - 24px)) !important;
  margin: 20px auto !important;
  padding: 40px 28px !important;
  border-radius: 24px !important;
  background: var(--tbp-green) !important;
}
body.chi-siamo .schede .img,
body.chi-siamo .schede .img-inner,
body.chi-siamo .schede img {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
}
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child .img,
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child .img-inner {
  border-radius: 0 24px 24px 0 !important;
}
body.chi-siamo #main h1 .tbp-lava-icon {
  display: none !important;
}

/* Chi siamo: keep the three editorial cards compact and internally aligned. */
body.chi-siamo .schede {
  padding: 32px 0 64px !important;
  background: var(--tbp-white) !important;
  border-radius: 0 !important;
  overflow: visible !important;
}
body.chi-siamo .schede > .section-content {
  width: min(1180px, calc(100% - 36px)) !important;
  max-width: 1180px !important;
  margin-inline: auto !important;
}
body.chi-siamo .schede .row-collapse {
  display: grid !important;
  gap: 20px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
body.chi-siamo .schede .row-collapse > .col {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.chi-siamo .schede .row-collapse > .col > .col-inner {
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: var(--tbp-radius-card) !important;
  box-shadow: var(--tbp-shadow) !important;
}
body.chi-siamo .schede .row-collapse > .col:nth-child(odd) > .col-inner {
  background: var(--tbp-green) !important;
}
body.chi-siamo .schede .row-collapse > .col:nth-child(even) > .col-inner {
  background: var(--tbp-red) !important;
}
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row {
  display: grid !important;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr) !important;
  align-items: stretch !important;
  height: 360px !important;
  min-height: 360px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.chi-siamo .schede .row-collapse > .col.aperto > .col-inner > .row {
  height: 600px !important;
  min-height: 600px !important;
}
body.chi-siamo .schede .row-collapse > .col.chiuso > .col-inner > .row {
  height: 360px !important;
  min-height: 360px !important;
}
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col {
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:first-child > .col-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: clamp(30px, 3.4vw, 46px) !important;
}
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child,
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child > .col-inner,
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child .img,
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child .img-inner {
  height: 100% !important;
  min-height: 0 !important;
}
body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child img {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
}
body.chi-siamo .schede :where(h1, h2, h3, h4, p, li, strong, em, a) {
  color: var(--tbp-white) !important;
}
body.chi-siamo .schede :where(.text, .text-inner, .col-inner, span, small, button) {
  color: var(--tbp-white) !important;
}
body.chi-siamo .schede :where(h2, h3) {
  max-width: 14ch !important;
  margin-bottom: 18px !important;
  font-size: clamp(2rem, 3.2vw, 3.35rem) !important;
  line-height: .98 !important;
}
body.chi-siamo .schede .row-collapse > .col.aperto .text:not(.titolo),
body.chi-siamo .schede .row-collapse > .col.aperto .gap-element {
  display: block !important;
  opacity: 1 !important;
}
body.chi-siamo .schede .row-collapse > .col.aperto .apri,
body.chi-siamo .schede .row-collapse > .col.chiuso .chiudi,
body.chi-siamo .schede .row-collapse > .col.chiuso .text:not(.titolo),
body.chi-siamo .schede .row-collapse > .col.chiuso .gap-element {
  display: none !important;
}
body.chi-siamo .schede .row-collapse > .col.chiuso .apri,
body.chi-siamo .schede .row-collapse > .col.aperto .chiudi {
  display: block !important;
  position: static !important;
  width: auto !important;
  margin-top: 18px !important;
  background: transparent !important;
}
body.chi-siamo .schede .text:not(.titolo) :where(p, li) {
  font-size: clamp(.98rem, 1.2vw, 1.1rem) !important;
  line-height: 1.45 !important;
}
body.chi-siamo .schede .gap-element {
  padding-top: 14px !important;
}
body.chi-siamo .schede button.marrone,
body.chi-siamo .schede button.giallino {
  width: auto !important;
  min-width: 154px !important;
  min-height: 46px !important;
  margin-top: 18px !important;
  padding: 12px 20px !important;
  border: 1px solid var(--tbp-white) !important;
  border-radius: var(--tbp-radius-control) !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
body.chi-siamo .schede button.marrone *,
body.chi-siamo .schede button.giallino * {
  color: inherit !important;
}
body.chi-siamo .schede .row-collapse > .col:nth-child(even) button.marrone,
body.chi-siamo .schede .row-collapse > .col:nth-child(even) button.giallino {
  color: var(--tbp-red) !important;
}

/* Proponi un'esperienza: a self-contained, readable FAQ accordion. */
body.proponi-un-esperienza .accordion.faq {
  display: grid !important;
  gap: 14px !important;
  width: min(1120px, calc(100% - 36px)) !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
}
body.proponi-un-esperienza .accordion.faq .accordion-title.active,
body.proponi-un-esperienza .accordion.faq .accordion-title:hover,
body.proponi-un-esperienza .accordion.faq .accordion-title:focus-visible {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
}
body.proponi-un-esperienza .accordion.faq .accordion-title.active :where(span, i),
body.proponi-un-esperienza .accordion.faq .accordion-title:hover :where(span, i),
body.proponi-un-esperienza .accordion.faq .accordion-title:focus-visible :where(span, i) {
  color: var(--tbp-white) !important;
}
body.proponi-un-esperienza .accordion.faq .accordion-item {
  position: relative !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(8, 72, 40, .48) !important;
  border-radius: var(--tbp-radius-card) !important;
  background: var(--tbp-white) !important;
}
body.proponi-un-esperienza .accordion.faq .accordion-title {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 72px !important;
  margin: 0 !important;
  padding: 18px 78px 18px 24px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  font-size: clamp(1.15rem, 1.55vw, 1.5rem) !important;
  font-weight: 700 !important;
  line-height: 1.22 !important;
}
body.proponi-un-esperienza .accordion.faq .accordion-title.active {
  background: var(--tbp-green) !important;
  color: var(--tbp-white) !important;
}
body.proponi-un-esperienza .accordion.faq .accordion-title button.toggle {
  position: absolute !important;
  top: 50% !important;
  right: 14px !important;
  left: auto !important;
  display: grid !important;
  place-items: center !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: translateY(-50%) !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: var(--tbp-red) !important;
  color: var(--tbp-white) !important;
}
body.proponi-un-esperienza .accordion.faq .accordion-title button.toggle i {
  position: static !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  color: inherit !important;
  font-size: 23px !important;
  line-height: 1 !important;
}
body.proponi-un-esperienza .accordion.faq .accordion-inner {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 22px 24px 26px !important;
  border: 0 !important;
  background: var(--tbp-white) !important;
  color: var(--tbp-green) !important;
  font-size: 17px !important;
  line-height: 1.55 !important;
}
body.proponi-un-esperienza .accordion.faq .accordion-inner :where(p, li, a, strong) {
  color: var(--tbp-green) !important;
}

/* Footer: compact, aligned, with white foreground on green. */
body footer, body .footer,
body footer :where(.section, .section-bg, .section-bg .bg-fill) { background: var(--tbp-green) !important; }
body footer :where(h1, h2, h3, h4, p, li, label, small, strong, em, a, span) { color: var(--tbp-white) !important; }
body footer .section-content > div:first-child { padding-top: 48px !important; padding-bottom: 48px !important; }
body footer .icone-social a { background: transparent !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
body footer .icone-social a svg path { fill: var(--tbp-green) !important; }
.partner-inline-lockup {
  display: grid !important;
  grid-template-columns: repeat(2, 84px);
  justify-content: center;
  gap: 14px;
  width: max-content;
  max-width: 100%;
  margin-inline: auto !important;
}
.partner-inline-lockup p { grid-column: 1 / -1; margin: 0 !important; text-align: center; white-space: nowrap; }
.partner-inline-lockup :where(.partner-tbp, .partner-stareg, .partner-tile) {
  display: grid;
  place-items: center;
  width: 84px !important;
  height: 84px !important;
  padding: 0;
  background: transparent !important;
  border-radius: var(--tbp-radius-card) !important;
}
.partner-inline-lockup img { max-width: 100% !important; max-height: 100% !important; object-fit: contain !important; }

@media (max-width: 849px) {
  #masthead .header-nav > li.menu-item > a,
  #masthead .login-registrazione > a,
  #masthead .registration-choice > summary { min-height: 44px !important; padding: 8px 14px !important; }
  .home .scritta-scorrevole { display: block !important; overflow: hidden; }
  .post-type-archive-esperienze .tbp-filter-wrapper form#tbp-filter-form .luogo-data {
    grid-template-columns: 1fr !important;
  }
  .post-type-archive-esperienze .tbp-filter-wrapper form#tbp-filter-form .luogo-data > * {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: none !important;
  }
  body footer .section-content > div:first-child { padding: 32px 18px !important; }
}

@media (max-width: 549px) {
  :root { --tbp-radius-panel: 24px; }
  body :where(h1):where(:not(.tbp-info-page--guide h1, .tbp-map-page h1, .tbp-page-hero h1)) { font-size: clamp(2rem, 11vw, 3.25rem) !important; line-height: .98 !important; }
  body :where(h2):where(:not(.tbp-info-page--guide h2, .tbp-map-page h2)) { font-size: clamp(1.65rem, 8vw, 2.55rem) !important; line-height: 1.02 !important; }
  #masthead .mobile-nav .icon-menu { color: var(--tbp-green) !important; }
  .registration-choice-menu { position: static; width: 100%; margin-top: 8px; }
  .home .scritta-scorrevole { display: block !important; }
  .tbp-registration-role-choice { grid-template-columns: 1fr !important; }
  .partner-inline-lockup { grid-template-columns: repeat(2, 72px); }
  .partner-inline-lockup :where(.partner-tbp, .partner-stareg, .partner-tile) { width: 72px !important; height: 72px !important; }
  .partner-inline-lockup p { white-space: normal; }

  body.chi-siamo .schede {
    padding: 20px 0 40px !important;
  }
  body.chi-siamo .schede > .section-content {
    width: calc(100% - 28px) !important;
  }
  body.chi-siamo .schede .row-collapse {
    gap: 16px !important;
  }
  body.chi-siamo .schede .row-collapse > .col > .col-inner > .row {
    grid-template-columns: 1fr !important;
    height: auto !important;
    min-height: 0 !important;
  }
  body.chi-siamo .schede .row-collapse > .col.aperto > .col-inner > .row,
  body.chi-siamo .schede .row-collapse > .col.chiuso > .col-inner > .row {
    height: auto !important;
    min-height: 0 !important;
  }
  body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:first-child > .col-inner {
    height: auto !important;
    min-height: 0 !important;
    padding: 28px 24px !important;
  }
  body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child,
  body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child > .col-inner,
  body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child .img,
  body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child .img-inner,
  body.chi-siamo .schede .row-collapse > .col > .col-inner > .row > .col:last-child img {
    height: 240px !important;
    min-height: 230px !important;
    max-height: 240px !important;
  }
  body.chi-siamo .schede :where(h2, h3) {
    max-width: 12ch !important;
    font-size: clamp(2rem, 11vw, 3rem) !important;
  }

  body.proponi-un-esperienza .accordion.faq {
    gap: 10px !important;
    width: calc(100% - 28px) !important;
  }
  body.proponi-un-esperienza .accordion.faq .accordion-item {
    border-radius: 20px !important;
  }
  body.proponi-un-esperienza .accordion.faq .accordion-title {
    min-height: 64px !important;
    padding: 15px 62px 15px 18px !important;
    font-size: 1.05rem !important;
    line-height: 1.25 !important;
  }
  body.proponi-un-esperienza .accordion.faq .accordion-title button.toggle {
    right: 10px !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    border-radius: 12px !important;
  }
  body.proponi-un-esperienza .accordion.faq .accordion-inner {
    padding: 18px !important;
    font-size: 16px !important;
  }
}

/* Chi siamo: Flatsome ID colors beat :where(); force white copy on flag panels. */
body.chi-siamo #main .schede [id].text,
body.chi-siamo #main .schede [id].text > *,
body.chi-siamo #main .schede h1,
body.chi-siamo #main .schede h2,
body.chi-siamo #main .schede h3,
body.chi-siamo #main .schede p,
body.chi-siamo #main .nuova-opportunita [id].text,
body.chi-siamo #main .nuova-opportunita [id].text > *,
body.chi-siamo #main .nuova-opportunita h1,
body.chi-siamo #main .nuova-opportunita h2,
body.chi-siamo #main .nuova-opportunita p {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Site-wide: Flatsome IDs paint copy #009246 on green panels. Beat them. */
#main [style*="background-color:#009246" i] :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, label),
#main [style*="background-color: #009246" i] :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, label),
#main [style*="background:#009246" i] :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, label),
#main [style*="background: #009246" i] :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, label),
#main [style*="background-color:#084828" i] :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, label),
#main [style*="background-color: #084828" i] :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, label),
#main [style*="rgb(0, 146, 70)" i] :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, label),
#main [style*="102, 187, 180" i] :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, label),
#main [style*="#66bbb4" i] :is(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, label),
#main .schede [id].text,
#main .schede [id].text > *,
body:not(.contatti) #main .professionista [id].text,
body:not(.contatti) #main .professionista [id].text > *,
#main .nuova-opportunita [id].text,
#main .nuova-opportunita [id].text > * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Home photos: flush with green/red, no random frames. */
.home #main :where(img, .img-inner, .box-image, .banner .bg, .bg) {
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.home #main :where(.col-inner, .box, .img, .img-inner, .box-image) {
  border-color: transparent !important;
  border-width: 0 !important;
}
.home .slider-cerchio,
.home .slider-cerchio > .container {
  background: #ffffff !important;
  background-color: #ffffff !important;
  overflow: hidden !important;
  isolation: isolate;
  clip-path: inset(0);
  contain: paint;
}
.home .flickity-viewport,
.home .ux-slider-wrapper,
.home .slider-wrapper,
.home .slider {
  background: transparent !important;
  background-color: transparent !important;
}
.home .slider-cerchio .slide,
.home .slider-cerchio .slide img {
  border: 0 !important;
  box-shadow: none !important;
}
.home :where(.professionista, .nuova-opportunita, .tbp-green-panel, .tbp-red-panel, .card-front, .card-back) {
  overflow: hidden !important;
}
.home :where(.professionista, .nuova-opportunita, .tbp-green-panel, .tbp-red-panel)
  :where(img, .img-inner, .box-image, .banner, .bg) {
  border: 0 !important;
  border-radius: 0 !important;
}
.home .card .card-front,
.home .card .card-back {
  border: 0 !important;
  box-shadow: none !important;
}

/* One site footer everywhere: hide in-page substitutes (Contatti etc.). */
#main > section.section.footer {
  display: none !important;
}

/* Bottoni staccati, una sola cornice (via quella piccola), spazi corretti. */
#masthead .header-nav,
#masthead .nav-right,
#masthead .login-registrazione {
  display: flex !important;
  align-items: center;
  gap: 12px !important;
}
.home .stack.stack-row {
  gap: 16px !important;
}
.home .stack.stack-row > * {
  --stack-gap: 16px !important;
}
.home .professionista .bottone,
.home .nuova-opportunita .bottone {
  margin-inline: 6px;
}
.registration-choice-link,
.registration-choice-link.registration-choice-professional {
  border: 0 !important;
  box-shadow: none !important;
}
.tbp-registration-role-choice {
  gap: 12px !important;
  padding: 6px !important;
  border: 1px solid var(--tbp-green);
  border-radius: var(--tbp-radius-control);
  background: var(--tbp-white);
}
.tbp-registration-role-choice a {
  border: 0 !important;
  box-shadow: none !important;
}
body :where(.button, .bottone, button[type="submit"], input[type="submit"]) {
  border-width: 0 !important;
}

/* No horizontal scrollbar: everything stays in the viewport. */
html, body {
  overflow-x: clip !important;
  max-width: 100% !important;
}
#wrapper, #main, .footer-wrapper, footer {
  max-width: 100% !important;
  overflow-x: clip;
}
#header, .header-wrapper, #masthead {
  max-width: 100% !important;
  overflow: visible !important;
}
.row, .row-full-width, .section, .section-content,
.slider-cerchio, .scritta-scorrevole, .flickity-viewport {
  max-width: 100% !important;
}
.home .scritta-scorrevole,
.home .slider-cerchio {
  overflow-x: hidden !important;
}
img, video, iframe, svg { max-width: 100%; }
.col, .col-inner { min-width: 0; }

/* Registrazione Professionista: campi visibili, tab giusta, niente clip. */
body.registrazione-professionista #main,
body.registrazione-professionista .account-container {
  overflow: visible !important;
}
body.registrazione-professionista .account-register-inner {
  max-width: 600px;
  margin-inline: auto;
}
.tbp-store-slug {
  margin: -4px 0 18px;
  color: var(--tbp-green);
  font-size: .92rem;
  word-break: break-all;
}
.tbp-store-slug span { font-weight: 700; }
body.registrazione-professionista .tbp-registration-role-choice a[aria-current="page"] {
  background: var(--tbp-green);
  color: var(--tbp-white) !important;
}

body.registrazione-professionista .woocommerce-form-register .woocommerce-Input {
  display: block !important;
  width: 100% !important;
  min-height: 56px !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: var(--tbp-green) !important;
  background: var(--tbp-white) !important;
  border: 1px solid var(--tbp-green) !important;
}
body.registrazione-professionista .tbp-auth-field-label {
  display: block;
  margin-bottom: 6px;
  color: var(--tbp-green);
  font-weight: 700;
}


/* Professionista: hide English WCFM vendor link (Full Stack still removes markup). */
body.registrazione-professionista .wcfmmp_become_vendor_link,
body.registrazione-professionista a[href*="vendor-register"] {
  display: none !important;
}

/* Professionista on phone (~390px): logo not a wall, form visible, checkboxes tappable. */
@media (max-width: 480px) {
  body.registrazione-professionista {
    overflow-x: hidden !important;
  }
  body.registrazione-professionista #wrapper,
  body.registrazione-professionista .header-wrapper,
  body.registrazione-professionista #masthead,
  body.registrazione-professionista #main,
  body.registrazione-professionista .footer-wrapper,
  body.registrazione-professionista .row,
  body.registrazione-professionista .container,
  body.registrazione-professionista .lightbox-inner,
  body.registrazione-professionista .account-container,
  body.registrazione-professionista .account-register-inner {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  body.registrazione-professionista #main,
  body.registrazione-professionista .account-container {
    overflow-x: hidden !important;
    overflow-y: visible !important;
  }
  body.registrazione-professionista .account-container,
  body.registrazione-professionista .container.lightbox-inner {
    padding: 8px 12px 28px !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
  body.registrazione-professionista .account-register-inner {
    width: 100% !important;
    max-width: 100% !important;
    padding: 16px 14px 20px !important;
    margin: 0 !important;
    border: 1px solid var(--tbp-green) !important;
    box-shadow: none !important;
  }
  body.registrazione-professionista .account-container .logo {
    gap: 8px !important;
    margin: 0 auto 20px !important;
  }
  body.registrazione-professionista .account-container .logo .logotipo {
    width: 140px !important;
    max-width: 140px !important;
    height: auto !important;
    display: block !important;
    margin: 0 auto 12px !important;
  }
  body.registrazione-professionista .account-container h1 {
    font-size: 1.25rem !important;
    line-height: 1.2 !important;
    margin: 0 0 12px !important;
  }
  body.registrazione-professionista .tbp-registration-role-choice {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin: 0 0 16px !important;
  }
  body.registrazione-professionista .tbp-registration-role-choice a {
    min-height: 44px !important;
    font-size: .95rem !important;
    padding: 8px 12px !important;
  }
  body.registrazione-professionista .woocommerce-form-register .form-row {
    margin-bottom: 12px !important;
    max-width: 100% !important;
  }
  body.registrazione-professionista .woocommerce-form-register .woocommerce-Input,
  body.registrazione-professionista .woocommerce-form-register input.input-text,
  body.registrazione-professionista .woocommerce-form-register__submit {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 48px !important;
    box-sizing: border-box !important;
    font-size: 16px !important;
  }
  body.registrazione-professionista .tbp-store-slug {
    font-size: .8rem !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
  }
  body.registrazione-professionista .tbp-legal-checkboxes,
  body.registrazione-professionista .tbp-registration-legal,
  body.vendor-register .tbp-registration-legal {
    max-width: 100% !important;
  }
  body.registrazione-professionista .tbp-legal-checkboxes .form-row {
    margin: 0 0 4px !important;
  }
  body.registrazione-professionista .tbp-legal-checkboxes label.checkbox,
  body.registrazione-professionista .tbp-registration-legal__item,
  body.vendor-register .tbp-registration-legal__item {
    display: grid !important;
    grid-template-columns: 44px 1fr !important;
    column-gap: 12px !important;
    align-items: start !important;
    min-height: 44px !important;
    padding: 8px 0 !important;
    white-space: normal !important;
    pointer-events: auto !important;
  }
  body.registrazione-professionista .tbp-legal-checkboxes input[type="checkbox"],
  body.registrazione-professionista .tbp-registration-legal__input,
  body.vendor-register .tbp-registration-legal__input {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
    margin: 8px 0 0 !important;
    accent-color: var(--tbp-green);
    pointer-events: auto !important;
  }
  body.registrazione-professionista .tbp-legal-checkboxes label.checkbox span,
  body.registrazione-professionista .tbp-registration-legal__label,
  body.vendor-register .tbp-registration-legal__label {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
    font-size: .85rem !important;
    line-height: 1.35 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
  }
}

/* Chi siamo + Proponi: keep editorial cards, tighten mobile reading. */
body.chi-siamo #main,
body.proponi-un-esperienza #main {
  background: var(--tbp-surface-sage, #F4F7F5) !important;
}
body.chi-siamo .banner,
body.proponi-un-esperienza .banner {
  border-radius: 24px !important;
  overflow: hidden !important;
  margin: 12px auto !important;
  width: min(1180px, calc(100% - 24px)) !important;
}
body.chi-siamo .obiettivi,
body.proponi-un-esperienza .professionista,
body.proponi-un-esperienza .nuova-opportunita {
  width: min(1180px, calc(100% - 24px)) !important;
  margin: 16px auto !important;
  padding: 28px 24px !important;
  border-radius: 24px !important;
}
body.proponi-un-esperienza .nuova-opportunita :where(h2, h3, p, li, strong, a),
body.proponi-un-esperienza .professionista :where(h2, h3, p, li, strong, a) {
  max-width: 42rem;
}
body.proponi-un-esperienza .nuova-opportunita .button,
body.proponi-un-esperienza .professionista .button,
body.proponi-un-esperienza .nuova-opportunita a.button,
body.proponi-un-esperienza .professionista a.button {
  min-height: 48px !important;
  padding: 12px 22px !important;
}
body.chi-siamo .schede button.marrone,
body.chi-siamo .schede button.giallino {
  min-height: 48px !important;
}
@media (max-width: 849px) {
  body.chi-siamo .banner,
  body.proponi-un-esperienza .banner {
    width: calc(100% - 16px) !important;
    margin: 8px auto !important;
    border-radius: 18px !important;
  }
  body.chi-siamo .obiettivi,
  body.proponi-un-esperienza .professionista,
  body.proponi-un-esperienza .nuova-opportunita {
    width: calc(100% - 16px) !important;
    padding: 20px 16px !important;
    border-radius: 18px !important;
  }
  body.chi-siamo .schede :where(h2, h3) {
    font-size: clamp(1.7rem, 9vw, 2.4rem) !important;
    max-width: 14ch !important;
  }
  body.proponi-un-esperienza h1,
  body.chi-siamo h1 {
    font-size: clamp(1.6rem, 8vw, 2.2rem) !important;
    line-height: 1.08 !important;
  }
  body.proponi-un-esperienza .nuova-opportunita .button,
  body.proponi-un-esperienza .professionista .button,
  body.proponi-un-esperienza .nuova-opportunita a.button,
  body.proponi-un-esperienza .professionista a.button,
  body.chi-siamo .schede button.marrone,
  body.chi-siamo .schede button.giallino {
    width: 100% !important;
    max-width: 280px !important;
  }
  html body #masthead .login-registrazione img,
  html body #masthead .header-nav img.tbp-nav-lava {
    display: none !important;
  }
  html body #masthead .header-nav > li.menu-item > a,
  html body #masthead .login-registrazione > a {
    min-height: 44px !important;
    padding: 8px 14px !important;
  }
}
@media (min-width: 850px) {
  body.woocommerce-account.logged-in #main > #content > .row.row-main .woocommerce > nav {
    position: sticky;
    top: 24px;
  }
}

@media (max-width: 849px) {
  .home .video-bg.hide-for-medium,
  .home video.video-bg,
  .home .ux-youtube.hide-for-medium,
  .banner .video-bg.hide-for-medium {
    display: block !important;
  }
}


/* ══ Override finali (questo file carica per ultimo: qui si chiude la cascata) ══ */

/* Campi senza bordi ovunque: riempimento morbido, anello verde al focus. */
html body input[type="text"],
html body input[type="email"],
html body input[type="tel"],
html body input[type="password"],
html body input[type="number"],
html body input[type="url"],
html body input[type="search"],
html body input[type="date"],
html body textarea,
html body select {
  border: 0 !important;
  background-color: #F1F4F2 !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}

html body input[type="text"]:focus,
html body input[type="email"]:focus,
html body input[type="tel"]:focus,
html body input[type="password"]:focus,
html body input[type="number"]:focus,
html body input[type="url"]:focus,
html body input[type="search"]:focus,
html body input[type="date"]:focus,
html body textarea:focus,
html body select:focus {
  outline: none !important;
  box-shadow: inset 0 0 0 2px #6B7280 !important;
}

/* Composer della chat AI Colombo: barra pulita, input pillola, invio tondo. */
html body .tbp-colombo-chat form.tbp-colombo-chat__inputbar {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: auto 0 0 !important;
  padding: 10px 12px !important;
  background: #fff !important;
  box-shadow: 0 -1px 0 rgba(8, 72, 40, 0.08) !important;
}

html body .tbp-colombo-chat form.tbp-colombo-chat__inputbar[hidden] {
  display: none !important;
}

html body .tbp-colombo-chat form.tbp-colombo-chat__inputbar input.tbp-colombo-chat__input,
html body .tbp-colombo-chat .tbp-colombo-chat__input {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #F1F4F2 !important;
  font-size: 0.95rem !important;
  box-shadow: none !important;
}

html body .tbp-colombo-chat form.tbp-colombo-chat__inputbar input.tbp-colombo-chat__input:focus,
html body .tbp-colombo-chat .tbp-colombo-chat__input:focus {
  box-shadow: inset 0 0 0 2px #6B7280 !important;
}

html body .tbp-colombo-chat button.tbp-colombo-chat__send {
  flex: 0 0 auto !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--tbp-green, #084828) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Se Colombo è stato trascinato a sinistra, il pannello si apre verso destra. */
html body .tbp-colombo-chat.is-left .tbp-colombo-chat__panel {
  right: auto !important;
  left: 0 !important;
}

html body .tbp-colombo-chat.is-left .tbp-colombo-chat__teaser {
  border-radius: 18px 18px 18px 4px !important;
}

/* Sottotitolo C2C della registrazione. */
.tbp-auth-subtitle {
  margin: 4px auto 14px;
  max-width: 46ch;
  text-align: center;
  color: var(--tbp-muted, #5D786B);
  font-size: 14px;
  line-height: 1.55;
}

/* ------------------------------------------------------------------ */
/* Campi form: bordo grigio OVUNQUE (molti arrivavano bianchi e sui   */
/* fondi chiari sparivano). Focus un tono piu scuro.                  */
/* ------------------------------------------------------------------ */
html body input[type="text"],
html body input[type="email"],
html body input[type="password"],
html body input[type="tel"],
html body input[type="number"],
html body input[type="search"],
html body input[type="url"],
html body input[type="date"],
html body input[type="time"],
html body select,
html body textarea,
html body .select2-container .select2-selection {
  border: 1px solid #C9D2CC !important;
}

html body input[type="text"]:focus,
html body input[type="email"]:focus,
html body input[type="password"]:focus,
html body input[type="tel"]:focus,
html body input[type="number"]:focus,
html body input[type="search"]:focus,
html body input[type="url"]:focus,
html body input[type="date"]:focus,
html body input[type="time"]:focus,
html body select:focus,
html body textarea:focus,
html body .select2-container--focus .select2-selection,
html body .select2-container--open .select2-selection {
  border-color: #8FA398 !important;
}

/* Il bordo segue solo i tratti del volto: nessun riquadro sui fondi scuri. */
html[data-tbp-theme="dark"] img[src*="colombo-face-transparent-20260916.png"],
html[data-tbp-theme="dark"] body .off-canvas-center .mfp-content > #main-menu > .sidebar-menu > ul .html img.tbp-lava-icon[src*="colombo-face-transparent-20260916.png"],
html[data-tbp-theme="dark"] body #main-menu .nav-vertical > li > a img.tbp-nav-lava[src*="colombo-face-transparent-20260916.png"],
html[data-tbp-theme="dark"] body #tbp-desktop-nav img[src*="colombo-face-transparent-20260916.png"],
#tbp-language-loading img.tbp-language-loading__colombo {
  filter: drop-shadow(1px 0 0 #eef5ef) drop-shadow(-1px 0 0 #eef5ef) drop-shadow(0 1px 0 #eef5ef) drop-shadow(0 -1px 0 #eef5ef) drop-shadow(0 0 2px rgba(238,245,239,.75)) !important;
}
