/* Critical fixes - override app.css uppercase rules */
.top-menu .navbar-right,
.top-menu .navbar-right > li > a,
.top-menu__right nav[role="navigation"] > ul > li > a {
  text-transform: none !important;
}
.products-categories h1 {
  color: #f7f7f7 !important;
}
.products-categories .glyphicon {
  color: #f7f7f7 !important;
}
.page-title,
.col-md-12 > h1,
.col-md-16 > h1 {
  text-transform: none !important;
  display: none !important;
}
.region-content h2.block-title {
  text-transform: none !important;
}
.loop_news h2,
.loop_news h1,
.box_news h2 {
  text-transform: none !important;
}
.partners h2 {
  text-transform: none !important;
}
.indoor-air-quality h2,
.indoor-air-quality h3 {
  text-transform: none !important;
}
.company-page h3,
.history-page h3,
.sustainability-page h3 {
  text-transform: none !important;
}
.webform-submission-newsletter-form > .form-item label {
  text-transform: none !important;
}

/* Hide breadcrumb on custom pages - using correct Drupal block ID */
.path-node-44 #block-sabiana-breadcrumbs,
.path-node-45 #block-sabiana-breadcrumbs,
.path-node-46 #block-sabiana-breadcrumbs,
.path-node-47 #block-sabiana-breadcrumbs,
.path-node-48 #block-sabiana-breadcrumbs,
.path-node-50 #block-sabiana-breadcrumbs,
.path-node-51 #block-sabiana-breadcrumbs,
.path-node-52 #block-sabiana-breadcrumbs,
.path-node-53 #block-sabiana-breadcrumbs,
.path-node-54 #block-sabiana-breadcrumbs,
.path-node-57 #block-sabiana-breadcrumbs,
.path-node-62 #block-sabiana-breadcrumbs {
  display: none !important;
}

/* ===========================================
   BUG #1 - Search bar top bar: match sito live
   =========================================== */
.navbar-form.search {
  width: 174.5px !important;
  margin: 7px 0 !important;
  padding: 0 15px !important;
}
.navbar-form.search .form-control {
  height: 36px !important;
  font-size: 14px !important;
  padding: 6px 12px !important;
  border-radius: 0px !important;
  line-height: 22.4px !important;
}

/* ===========================================
   BUG #2 - Correzione: voci menu allineate al fondo del logo + bold
   =========================================== */
@media (min-width: 768px) {
  .top-menu {
    display: flex;
    flex-wrap: nowrap;
    min-height: 96px;
    align-items: flex-end !important;
  }
  .top-menu > .navbar-header {
    align-self: flex-end !important;
  }
}
.top-menu__right nav[role="navigation"] > ul > li > a {
  font-weight: bold !important;
}

/* ===========================================
   BUG #3 - Scrollbar orizzontale: .row sfora di 15px
   I .row con margin negativo non sono contenuti dal wrapper.
   =========================================== */
html {
  overflow: hidden !important;
}
body {
  overflow-x: hidden !important;
}

/* ===========================================
   BUG #4 - Card news/eventi homepage
   Le card si vedevano male per doppio nesting colonne.
   Fix template: rimosso col-sm-16 col-md-8 dal wrapper.
   Fix CSS: panel-heading static (come live), immagini full-width,
   layout card orizzontale (immagine sx + testo dx).
   =========================================== */

/* Panel-heading: static position (not absolute as sabiana-drupal.css sets).
   Contains date badge (<time> absolute) + category label (<h4> inline).
   app.css handles margin-bottom: -70px which overlaps onto the image area. */
.panel-news .panel-heading {
  position: static !important;
  border-bottom: none !important;
  border-radius: 0 !important;
}

/* Single news page: image floated left with body beside it */
.news .panel-news .panel-header {
  overflow: visible !important;
}
.news .panel-news .panel-header a {
  display: inline !important;
}
.news .panel-news .panel-header img {
  min-height: 200px !important;
  max-height: 200px !important;
  width: 44% !important;
  float: left !important;
  object-fit: cover !important;
  object-position: center !important;
}
.news .panel-news .panel-body {
  overflow: hidden !important;
  padding: 0px 20px 0 !important;
  color: #58595B !important;
}

/* Homepage news grid: image above body, contained */
.loop_news .panel-news .panel-header {
  overflow: hidden;
  height: 200px;
}
.loop_news .panel-news .panel-header img {
  width: 100% !important;
  height: 200px !important;
  min-height: auto !important;
  max-height: none !important;
  float: none !important;
  object-fit: cover;
}
.loop_news .panel-news .panel-body {
  padding: 10px 15px !important;
  color: #58595B !important;
}

/* Card container: relative for footer, fixed min-height for uniform cards */
.loop_news .panel-news {
  position: relative !important;
  padding: 20px !important;
}
/* Uniform card height at desktop (>=992px) — matches live site */
@media (min-width: 992px) {
  .loop_news .panel-news {
    min-height: 310px !important;
  }
}

/* Views wrappers: transparent to grid layout */
.loop_news .views-row {
  display: contents !important;
}
.loop_news .view-content {
  display: contents !important;
}

/* Colors: match live site #58595B */
.panel-news .panel-body h4,
.panel-news .panel-body h5,
.panel-news .panel-body h4 a,
.panel-news .panel-footer,
.panel-news .panel-footer a {
  color: #58595B !important;
}
.panel-news .panel-body h4 a {
  text-decoration: none !important;
}
.box_news h2 {
  color: #58595B !important;
}

/* Footer: white bg, no border */
.panel-news .panel-footer {
  background: #FFFFFF !important;
  border: 0 !important;
}

/* ===========================================
   BUG #5 - Testo sezione Partner attaccato al bordo sinistro
   .col-16 non ha padding nel grid Bootstrap 16-col.
   Aggiungiamo padding laterale come le colonne standard.
   =========================================== */
.partners .col-16 {
  padding-left: 15px !important;
  padding-right: 15px !important;
}
.partners p {
  padding-right: 20px !important;
}

/* ===========================================
   BUG #6 - Fascia Download/Registrati impaginata male
   sabiana-drupal.css overrides margin and text colors.
   Restore original values from app.css and ensure proper layout.
   =========================================== */
.downloads {
  margin: 60px auto !important;
  background: #ffffff !important;
}
.downloads .row {
  display: flex !important;
  flex-wrap: wrap !important;
}
.downloads .dark {
  min-height: 260px !important;
  padding: 20px !important;
  color: #ffffff !important;
}
.downloads .dark h3 {
  color: #ffffff !important;
  margin: 0 !important;
  padding: 20px 0 !important;
  font-family: "myriad-pro-semi-condensed", sans-serif !important;
  font-weight: 700 !important;
}
.downloads .dark p {
  color: #ffffff !important;
  font-size: 20px !important;
}
.downloads .dark a {
  color: #ffffff !important;
}
.downloads .dark a:hover,
.downloads .dark a:active {
  color: #808080 !important;
  text-decoration: none !important;
}
/* Ensure buttons match live site styling */
.downloads .btn-primary {
  background-color: #337ab7 !important;
  border-color: #2e6da4 !important;
  color: #fff !important;
  border-radius: 4px !important;
  padding: 6px 12px !important;
  font-size: 14px !important;
  line-height: 1.42857 !important;
  text-align: left !important;
}
.downloads .btn-primary:hover {
  background-color: #286090 !important;
  border-color: #204d74 !important;
}

/* ===========================================
   BUG #7 - Form newsletter impaginato male
   Il webform Drupal ha struttura diversa dal live.
   Forziamo layout orizzontale con flexbox.
   =========================================== */
.container-fluid.forms {
  background: #ffffff !important;
  padding: 30px 20px !important;
}
.container-fluid.forms h3 {
  color: #333 !important;
  margin-top: 0 !important;
}
.forms form.webform-submission-newsletter-form {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 15px !important;
  align-items: flex-end !important;
}
.webform-submission-newsletter-form > .js-form-item {
  flex: 1 1 200px !important;
  margin-bottom: 0 !important;
}
.webform-submission-newsletter-form .form-text,
.webform-submission-newsletter-form .form-email {
  width: 100% !important;
  padding: 8px 12px !important;
  border: 1px solid #ccc !important;
  border-radius: 0 !important;
  font-size: 14px !important;
  height: 36px !important;
}
.webform-submission-newsletter-form label {
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-bottom: 5px !important;
  color: #555 !important;
}
.webform-submission-newsletter-form > .form-type-checkbox {
  /* flex removed */
  /* display: flex !important; */
  align-items: center !important;
  gap: 8px !important;
}
.webform-submission-newsletter-form > .form-type-checkbox label {
  display: inline !important;
  font-size: 13px !important;
  font-weight: 400 !important;
}
.webform-submission-newsletter-form .form-actions {
  flex: 0 0 auto !important;
}
.webform-submission-newsletter-form .webform-button--submit {
  background: #337ab7 !important;
  color: #fff !important;
  border: none !important;
  padding: 8px 30px !important;
  height: 36px !important;
  cursor: pointer !important;
  font-size: 14px !important;
}
.webform-submission-newsletter-form .webform-button--submit:hover {
  background: #286090 !important;
}

/* ===========================================
   BUG #8 - Scrollspy Chi Siamo: labels nascosti di default
   I label della sidebar devono apparire solo su hover.
   =========================================== */
.about-sidebar .about-sidebar__label {
  /* opacity: 0 !important; */
}
.about-sidebar li:hover .about-sidebar__label {
  opacity: 1 !important;
}

/* ===========================================
   BUG #9 - Font/icone CTA slide Chi Siamo diversi
   Il bottone "Leggi altro" usa font-weight sbagliato e
   l icona fa-plus non e nel sito live. Nascondiamola.
   =========================================== */
.about-section__readmore {
  font-weight: 300 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  margin-top: 80px !important;
}
.about-section__readmore i.fa-plus {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 50px !important;
  height: 50px !important;
  background: transparent !important;
  border: 2px solid #fff !important;
  color: #fff !important;
  font-size: 36px !important;
  margin: 0 auto 10px auto !important;
  padding: 5px !important;
  box-sizing: border-box !important;
  order: -1 !important;
}


/* ===========================================
   BUG #10 - Link spurio tra header e hero (Storia + altre pagine)
   Il selettore breadcrumb era sbagliato. Il blocco si chiama
   #block-sabiana-breadcrumbs, non .block-system-breadcrumb-block.
   Correggiamo per tutte le pagine interessate.
   =========================================== */
.path-node-44 #block-sabiana-breadcrumbs,
.path-node-45 #block-sabiana-breadcrumbs,
.path-node-46 #block-sabiana-breadcrumbs,
.path-node-47 #block-sabiana-breadcrumbs,
.path-node-48 #block-sabiana-breadcrumbs,
.path-node-50 #block-sabiana-breadcrumbs,
.path-node-51 #block-sabiana-breadcrumbs,
.path-node-52 #block-sabiana-breadcrumbs,
.path-node-53 #block-sabiana-breadcrumbs,
.path-node-54 #block-sabiana-breadcrumbs,
.path-node-57 #block-sabiana-breadcrumbs,
.path-node-62 #block-sabiana-breadcrumbs {
  display: none !important;
}

/* ===========================================
   BUG #12 - Didascalie Dove Siamo: h3 uppercase + address con line-break
   Aggiunta sezione mappa con iframe Google Maps.
   =========================================== */
.wwa-location__name {
  text-transform: uppercase !important;
}
.wwa-location__address {
  font-style: normal !important;
}
.wwa-map {
  margin: 40px 0 0 0;
}
.wwa-map iframe {
  display: block;
  width: 100%;
  min-height: 450px;
  border: 0;
}

/* ===========================================
   BUG #13 - Pagine brand: carousel gallery
   Stile per la sezione .gallery.dark con carousel prodotti.
   =========================================== */
.gallery.dark {
  background: #404041 !important;
  padding: 40px 0 !important;
}
.gallery.dark #carousel-product {
  max-width: 1200px;
  margin: 0 auto;
}
.gallery.dark #carousel-product .item img {
  width: 100%;
  max-height: 600px;
  object-fit: contain;
}
.gallery.dark .carousel-indicators li {
  border-color: rgba(255,255,255,0.5);
}
.gallery.dark .carousel-indicators .active {
  background-color: #fff;
}
.gallery.dark .carousel-control {
  background-image: none !important;
  color: #fff;
  opacity: 0.7;
}
.gallery.dark .carousel-control:hover {
  opacity: 1;
}

/* Brand page content styling */
#arbonia, #kermi, #vasco, #cicsa {
  padding: 40px 0;
}
#arbonia h1, #kermi h1, #vasco h1, #cicsa h1 {
  border-bottom: none !important;
  margin-bottom: 30px !important;
}

/* Bug: Rassegna Stampa card - hide badge, show actual title */
.news-grid-2x2 .panel-news .news-date .badge {
  display: none !important;
}

/* ===== NEWSLETTER FORM STYLING ===== */
/* Hide labels (use placeholders instead, like the live site) */
.forms .webform-type-textfield > label,
.forms .webform-type-email > label,
.webform-submission-newsletter-form .webform-type-textfield > label,
.webform-submission-newsletter-form .webform-type-email > label,
.webform-submission-newsletter-form .form-item-first-name > label,
.webform-submission-newsletter-form .form-item-last-name > label,
.webform-submission-newsletter-form .form-item-email > label {
  display: none !important;
}

/* Layout: live uses 2 columns - left (inputs + checkboxes) right (captcha + button) */
.forms form {
  display: flex !important;
  flex-wrap: wrap !important;
}

/* 3 inputs in a row */
.forms .webform-type-textfield,
.forms .webform-type-email {
  flex: 0 0 31% !important;
  margin-right: 1% !important;
  box-sizing: border-box !important;
}

/* Required text - full width under inputs */
.forms .form-item-required-text {
  flex: 0 0 65% !important;
  padding: 10px 0 !important;
}

/* Checkboxes - left column (65%) */
.forms .webform-type-checkbox {
  flex: 0 0 65% !important;
  margin-bottom: 8px !important;
}
.forms .webform-type-checkbox .description {
  font-size: 13px !important;
  color: #58595B !important;
  margin-bottom: 4px !important;
}
.forms .webform-type-checkbox input[type=checkbox] {
  margin-right: 5px !important;
  vertical-align: top !important;
  margin: 0px;
  margin-top: 6px;
}
.forms .webform-type-checkbox label.option {
  font-weight: 700 !important;
  display: inline !important;
  vertical-align: middle !important;
}

/* Actions container (button) - right column */
.forms .form-actions {
  flex: 1 0 100% !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: stretch !important;
  padding-bottom: 10px !important;
}

/* Submit button - full width of right column, text Iscriviti */
.forms .webform-button--submit {
  background-color: #337ab7 !important;
  border-color: #337ab7 !important;
  color: #FFF !important;
  padding: 10px 30px !important;
  border-radius: 0 !important;
  font-size: 14px !important;
  text-transform: uppercase !important;
  width: 100% !important;
  height: 40px !important;
  position: relative !important;
  overflow: hidden !important;
}
.forms .webform-button--submit::after {
  content: ISCRIVITI !important;
  color: #fff !important;
  font-size: 14px !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}

/* Form inputs styling */
.forms .form-text,
.forms .form-email {
  border-radius: 0 !important;
  height: 36px !important;
}

/* Mobile: stack everything */
@media (max-width: 767px) {
  .forms .webform-type-textfield,
  .forms .webform-type-email,
  .forms .form-item-required-text,
  .forms .webform-type-checkbox,
  .forms .form-actions {
    flex: 0 0 100% !important;
    margin-right: 0 !important;
  }
}

#block-sabiana-breadcrumbs { display: none !important; }


/* Storia page - remove section bottom padding */
.path-node-48 section {
  padding-bottom: 0px !important;
}

/* Products page - hide H1 */
.view-products h1,
.path-products h1 {
  display: none !important;
}

/* Products grid - fix distorted images */
.panel.panel-product img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}


/* Accessibility page - node 57 */
.path-accessibilita h1,
.path-accessibilita .page-header,
.path-accessibilita .block-page-title-block {
  display: none !important;
}
.path-accessibilita .dialog-off-canvas-main-canvas > div > div > div {
  max-width: 600px;
  margin: 40px auto;
  padding: 0 20px;
}
.path-accessibilita #block-sabiana-content h2 {
  font-size: 28px !important;
  font-weight: 300 !important;
  color: #333;
  margin-bottom: 25px;
  text-align: center;
}
.path-accessibilita #block-sabiana-content p {
  font-size: 15px;
  line-height: 1.8;
  color: #555;
  margin-bottom: 20px;
}
.path-accessibilita #block-sabiana-content a {
  color: #3565B4;
}

.partner-page > h2 {
  display: none !important;
}

/* Support request button on sales page */
.btn-support-request {
  display: inline-block;
  padding: 12px 40px;
  background-color: #3565B4;
  color: #fff !important;
  font-size: 16px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: none;
  border-radius: 0;
  transition: background-color 0.2s;
}
.btn-support-request:hover,
.btn-support-request:focus {
  background-color: #a00d24;
  color: #fff !important;
  text-decoration: none;
}
.btn-support-request i {
  margin-right: 8px;
}

/* Support form page */
.support-form-page {
  padding: 40px 0 60px;
}
.support-form-page h1 {
  margin-bottom: 20px;
  color: #333;
}
.support-form-intro {
  margin-bottom: 30px;
  color: #666;
}
.support-form-wrapper {
  background: #f9f9f9;
  padding: 30px;
  border: 1px solid #e5e5e5;
}
.support-form-wrapper .form-item {
  margin-bottom: 20px;
}
.support-form-wrapper .form-item label {
  font-weight: bold;
  color: #333;
  margin-bottom: 5px;
}
.support-form-wrapper .form-control,
.support-form-wrapper input[type="text"],
.support-form-wrapper input[type="email"],
.support-form-wrapper input[type="tel"],
.support-form-wrapper select,
.support-form-wrapper textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 0;
  font-size: 14px;
}
.support-form-wrapper .form-submit,
.support-form-wrapper button[type="submit"] {
  display: block;
  width: 100%;
  padding: 14px;
  background-color: #3565B4;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: none;
  cursor: pointer;
  margin-top: 20px;
  transition: background-color 0.2s;
}
.support-form-wrapper .form-submit:hover,
.support-form-wrapper button[type="submit"]:hover {
  background-color: #a00d24;
}
.support-form-wrapper .form-type-checkbox label {
  font-weight: normal;
  font-size: 13px;
  color: #666;
}

/* Contact form page - centered boxed layout */
.path-form-contact .webform-submission-contact-form {
  max-width: 700px !important;
  margin: 40px auto 60px !important;
  padding: 0 20px;
}
.path-form-contact .webform-submission-contact-form .form-item {
  margin-bottom: 18px;
}
.path-form-contact .webform-submission-contact-form label {
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  color: #666;
  margin-bottom: 5px;
}
.path-form-contact .form-text,
.path-form-contact .form-email,
.path-form-contact .form-tel,
.path-form-contact .form-select,
.path-form-contact .form-textarea {
  width: 100% !important;
  padding: 10px 12px !important;
  border: 1px solid #ccc !important;
  border-radius: 0 !important;
  font-size: 14px !important;
  background: #fff !important;
  -webkit-appearance: none;
  box-sizing: border-box;
}
.path-form-contact .form-text:focus,
.path-form-contact .form-email:focus,
.path-form-contact .form-tel:focus,
.path-form-contact .form-select:focus,
.path-form-contact .form-textarea:focus {
  border-color: #3565B4 !important;
  outline: none !important;
  box-shadow: 0 0 0 1px #3565B4 !important;
}
.path-form-contact .form-textarea {
  min-height: 150px;
  resize: vertical;
}
.path-form-contact .form-type-checkbox label {
  font-weight: normal !important;
  font-size: 13px !important;
  color: #666 !important;
  text-transform: none !important;
}
.path-form-contact .form-actions {
  text-align: center;
  margin-top: 25px;
}
.path-form-contact .webform-button--submit,
.path-form-contact .button--primary,
.path-form-contact .form-submit {
  background: #3565B4 !important;
  color: #fff !important;
  border: none !important;
  padding: 12px 50px !important;
  font-size: 16px !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  cursor: pointer !important;
  border-radius: 0 !important;
}
.path-form-contact .webform-button--submit:hover,
.path-form-contact .button--primary:hover,
.path-form-contact .form-submit:hover {
  background: #a00d24 !important;
}

/* Event detail page - match live layout */
.news .panel-news .panel-body .col-md-16 > h1 {
  text-align: center;
}
.news .panel-news .panel-body .col-md-16 > h2 {
  text-align: center;
}
.news .panel-news .panel-body .col-lg-10.col-lg-offset-3 {
  text-align: justify;
}
.news article > .row > .col-xs-16 > .col-md-16 {
  border-top: 1px solid #ddd;
  padding-top: 20px;
  margin-top: 40px;
}
.news article > .row > .col-xs-16 > .col-md-16 a {
  text-decoration: none;
  color: #0063a3;
}
.news article > .row > .col-xs-16 > .col-md-16 a:hover {
  text-decoration: underline;
}

/* Task #1: Active menu item - visual indicator */
/* Reset all top-level menu items to normal weight */
.top-menu .nav.navbar-nav > li.menu-item > a,
.top-menu .nav.navbar-nav > li.menu-item > a.dropdown-toggle {
  font-weight: 400 !important;
}
/* Active trail: bold + bottom border */
.top-menu .nav.navbar-nav > li.menu-item--active-trail > a,
.top-menu .nav.navbar-nav > li.menu-item--active-trail > a.dropdown-toggle {
  font-weight: 700 !important;
  /* border-bottom: 2px solid #FFF; */
  /* padding-bottom: 10px; */
}

/* Task #2: Hero carousel slide animation (left-right) */
#carousel-home .carousel-inner {
  position: relative;
  overflow: hidden;
}
#carousel-home .carousel-inner .item {
  display: none;
  position: relative;
  width: 100%;
}
#carousel-home .carousel-inner .item.active {
  display: block;
}
/* Arrows always visible */
#carousel-home .carousel-control {
  z-index: 10;
  opacity: 0.7;
}
#carousel-home .carousel-control:hover {
  opacity: 1;
}

/* Task #5: Pointer cursor on read-more arrows */
.read-more a i,
.read-more a .icon-read-more {
  cursor: pointer;
}

/* Task #8: Remove white space after footer */
footer.footer {
  margin-bottom: 0 !important;
}
body {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.dialog-off-canvas-main-canvas {
  padding-bottom: 0 !important;
}

/* Task #10: Make timeline carousel full width */
.history-carousel__item {
  flex: 0 0 calc(25% - 22.5px) !important;
}
.history-carousel__year {
  font-size: 32px !important;
}
.history-carousel__heading {
  font-size: 18px !important;
}
.history-carousel__item p {
  font-size: 15px !important;
}
.history-carousel__item img {
  height: 280px !important;
}
.history-timeline__title {
  font-size: 36px !important;
}

/* Task #21: News listing - consistent image heights and pagination */
.panel-news .panel-header {
  overflow: hidden;
  height: 200px;
}
.panel-news .panel-header img {
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.panel-news .panel-body {
  min-height: 80px;
}
/* Drupal pager - match live site pagination style */
.pager__items {
  display: flex;
  justify-content: center;
  list-style: none;
  padding: 20px 0;
  margin: 0;
  gap: 5px;
}
.pager__item a,
.pager__item.is-active a {
  display: inline-block;
  /* padding: 6px 12px; */
  border: 1px solid #ddd;
  color: #333;
  text-decoration: none;
  border-radius: 3px;
}
.pager__item.is-active a {
  background: #0063a3;
  color: #fff;
  border-color: #0063a3;
}
.pager__item a:hover {
  background: #f5f5f5;
}

/* Main menu: hover, active, no underline — all levels */
.top-menu .nav.navbar-nav a,
.top-menu .nav.navbar-nav a:visited,
.top-menu .nav.navbar-nav a:hover,
.top-menu .nav.navbar-nav a:active,
.top-menu .nav.navbar-nav a:focus {
  text-decoration: none !important;
}
.top-menu .nav.navbar-nav > li > a:hover,
.top-menu .nav.navbar-nav > li > a:focus {
  color: #0063a3 !important;
  background: none !important;
}
.top-menu .nav.navbar-nav > li.menu-item--active-trail > a:hover {
  color: #0063a3 !important;
}

/* Brand pages: larger logos and text */
#arbonia h1 img,
#kermi h1 img,
#vasco h1 img {
  max-width: 360px !important;
}
#arbonia .col-sm-10 p,
#arbonia .col-sm-10 ul li,
#kermi .col-sm-10 p,
#kermi .col-sm-10 ul li,
#vasco .col-sm-10 p,
#cicsa .col-sm-10 p {
  font-size: 18px !important;
  line-height: 1.7 !important;
}

/* Read-more links: grey text, blue on hover, larger, no separator line */
.panel-product .panel-footer,
.panel-news .panel-footer {
  border-top: none !important;
  background: transparent !important;
}
.read-more a,
p.read-more a {
  color: #888 !important;
  text-decoration: none !important;
  transition: color 0.2s;
  font-size: 1.25em !important;
}
.read-more a:hover,
p.read-more a:hover {
  color: #0063a3 !important;
}
.read-more a .icon-read-more,
p.read-more a .icon-read-more,
.read-more a i.icon-read-more,
p.read-more a i.icon-read-more {
  vertical-align: middle !important;
  font-size: 1.25em !important;
  line-height: 1 !important;
  position: relative;
  top: -1px;
}

/* Indoor Air Quality page - node 56 */
.path-node-56 .indoor-air-quality {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
}
.path-node-56 .parallax__iaq {
  position: relative;
  overflow: hidden;
}

/* Hide breadcrumb on all event detail pages */
.node--type-event #block-sabiana-breadcrumbs {
  display: none !important;
}

/* Drupal pager: square, attached, no rounded corners */
.pager {
  text-align: center;
  margin: 30px 0;
}
.pager__items {
  display: inline-flex;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 0;
}
.pager__item a,
.pager__item.is-active a {
  display: block;
  float: left;
  /* padding: 6px 12px; */
  line-height: 1.6;
  color: #337ab7;
  text-decoration: none !important;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 0 !important;
  margin-left: -1px;
}
.pager__item:first-child a {
  margin-left: 0;
}
.pager__item a:hover,
.pager__item a:focus {
  color: #23527c;
  background-color: #eee;
  border-color: #ddd;
}
.pager__item.is-active a {
  color: #fff;
  background-color: #0063a3;
  border-color: #0063a3;
  cursor: default;
}
.pager__item.is-active a:hover {
  background-color: #0063a3;
  border-color: #0063a3;
}
.pager__item--next a,
.pager__item--previous a,
.pager__item--first a,
.pager__item--last a {
  font-weight: bold;
}

/* Event pages: show H1 title */
body.node--type-event .page-title,
body.node--type-event .col-md-16 > h1 {
  display: block !important;
}

/* News detail page: show H1 title */
body.node--type-news .col-md-16 > h1 {
  display: block !important;
}

/* News listing: fix body text truncation */
.panel .panel-body .truncate {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  height: auto !important;
  max-height: 4.5em !important;
  line-height: 1.5 !important;
}
.panel .panel-body .truncate p {
  margin: 0 !important;
  padding: 0 !important;
  display: inline !important;
}

/* Task #5: pointer cursor on read-more arrow icon */
.read-more a,
.read-more a i {
  cursor: pointer;
}

/* News listing: side-by-side layout (image 50% + text 50%) */
/* News + Events + Academy: side-by-side card layout (image 50% + text 50%) */
.path-news .panel-news,
.path-events .panel-news,
.path-accademia .panel-news {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
}
.path-news .panel-news .panel-heading,
.path-events .panel-news .panel-heading,
.path-accademia .panel-news .panel-heading {
  width: 100% !important;
  flex: 0 0 100% !important;
}
.path-news .panel-news .panel-header,
.path-events .panel-news .panel-header,
.path-accademia .panel-news .panel-header {
  width: 50% !important;
  flex: 0 0 50% !important;
  height: auto !important;
  min-height: 200px !important;
}
.path-news .panel-news .panel-header img,
.path-events .panel-news .panel-header img,
.path-accademia .panel-news .panel-header img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.path-news .panel-news .panel-body,
.path-events .panel-news .panel-body,
.path-accademia .panel-news .panel-body {
  width: 50% !important;
  flex: 0 0 50% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: 15px 20px !important;
}
.path-news .panel-news .panel-footer,
.path-events .panel-news .panel-footer,
.path-accademia .panel-news .panel-footer {
  width: 100% !important;
  flex: 0 0 100% !important;
}

/* Homepage news: side-by-side layout (image 50% + text 50%) */
.loop_news .panel-news {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
}
.loop_news .panel-news .panel-heading {
  width: 100% !important;
  flex: 0 0 100% !important;
}
.loop_news .panel-news .panel-header {
  width: 50% !important;
  flex: 0 0 50% !important;
  height: auto !important;
  min-height: 200px !important;
}
.loop_news .panel-news .panel-header img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.loop_news .panel-news .panel-body {
  width: 50% !important;
  flex: 0 0 50% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: 15px 20px !important;
}
.loop_news .panel-news .panel-footer {
  width: 100% !important;
  flex: 0 0 100% !important;
}

/* Academy page: side-by-side handled by .path-accademia rules above */

/* Menu principale: NO underline su tutti gli stati, tutti i livelli */
.top-menu a,
.top-menu a:link,
.top-menu a:visited,
.top-menu a:hover,
.top-menu a:active,
.top-menu a:focus,
.top-menu .nav a,
.top-menu .nav a:link,
.top-menu .nav a:visited,
.top-menu .nav a:hover,
.top-menu .nav a:active,
.top-menu .nav a:focus,
.top-menu .dropdown-menu a,
.top-menu .dropdown-menu a:hover,
.top-menu .dropdown-menu a:focus {
  text-decoration: none !important;
}

/* Hide hero image on single event detail page */
body.node--type-event .img_header {display: none!important}
body.node--is-academy .img_header {display: block !important;}

/* Hide pager ellipsis */
li.pager__item--ellipsis { display: none !important; }

/* Body color fix - match live site */
body {
  color: #58595b !important;
  background: #ffffff !important;
}

/* Anchor offset for fixed header */
#nl-form {
  scroll-margin-top: 150px;
}


/* Downloads: desktop arrow alignment (flexbox) */
@media only screen and (min-width: 1200px) {
  #downloads .product_category a {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  #downloads .product_category a i {
    flex-shrink: 0;
  }
  #downloads .product_category a .glyphicon-chevron-right {
    margin-left: auto;
    float: none;
    flex-shrink: 0;
  }
}

/* Downloads: chevron rotation */
#downloads .glyphicon-chevron-right {
  transition: transform 0.3s ease;
}
#downloads [aria-expanded="true"] > .glyphicon-chevron-right,
#downloads a[aria-expanded="true"] .glyphicon-chevron-right {
  transform: rotate(90deg);
}

/* Academy archive cards: full-width image below title, no side-by-side */
.academy-archive .panel-news {
  display: block !important;
}
.academy-archive .panel-news .panel-heading {
  width: 100% !important;
  min-height: auto !important;
  padding: 0 15px !important;
  margin-left: 65px !important;
  max-width: 250px !important;
}
.academy-archive .panel-news .panel-heading h4.limit-title {
  max-height: 1.4em !important;
  line-height: 1.4em !important;
  font-size: 14px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  display: block !important;
}
.academy-archive .panel-news .panel-body {
  width: 100% !important;
  flex: none !important;
  padding: 0 !important;
  clear: both !important;
}
.academy-archive .panel-news .panel-body .img_bg {
  width: 100% !important;
  height: 160px !important;
  float: none !important;
  background-size: cover !important;
  background-position: center !important;
}

