/**  _____           _         ___               ______       _ _     _           
  * /  ___|         | |       / _ \              | ___ \     (_) |   | |          
  * \ `--.  ___ __ _| | ___  / /_\ \_ __  _ __   | |_/ /_   _ _| | __| | ___ _ __ 
  *  `--. \/ __/ _` | |/ _ \ |  _  | '_ \| '_ \  | ___ \ | | | | |/ _` |/ _ \ '__|
  * /\__/ / (_| (_| | |  __/ | | | | |_) | |_) | | |_/ / |_| | | | (_| |  __/ |   
  * \____/ \___\__,_|_|\___| \_| |_/ .__/| .__/  \____/ \__,_|_|_|\__,_|\___|_|   
  *                                | |   | |                                      
  *                                |_|   |_|                                      
  * 
  * Copyright 2026 Advanced Software Production Line, S.L.
  *
  * Private License: only authorized under ASPL permission/agreement
  */

.sabhidden {
    display: none !important;
}

/* to avoid left: 0 on sticky top menu */
.sticky.fixed.top {
    left: auto !important;   
}

.sabstickyon {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    margin: 0px !important;
    padding: 0px !important;
    z-index: 3000;
}

/* to remove items in responsive mode */
@media only screen and (max-width: 700px) {
    .remove-responsive{
	display: none !important;
    }
    .ui.table:not(.unstackable)>thead.remove-responsive {
	display: none !important;
    }
    .show-only-in-responsive{
	display: block !important;
    }
    .ui.grid.show-only-in-responsive{
	display: flex !important;
	flex-wrap: wrap !important;
    }
    .show-only-in-responsive.sabhidden{
	display: none !important;
    }
    .ui.grid.show-only-in-responsive.sabhidden{
	display: none !important;
    }
}

/* applies when we are NOT in responsive */
@media only screen and (min-width: 700px) {
    .show-only-in-responsive{
	display: none !important;
    }
}


.sab-hover-no-opacity {
    opacity: 0.33;
}

.sab-hover-no-opacity:hover {
    opacity: 1;
}

.sab-on-hover-up {
  position: relative;
  top: 0;
  transition: top ease 0.5s;
}
.sab-on-hover-up:hover {
  top: -10px;
}

.sab-fade-in-section {
  opacity: 0;
  transform: translateY(30vh);
  visibility: hidden;
  transition: opacity 0.6s ease-out, transform 1.2s ease-out;
  will-change: opacity, visibility;
}
.sab-fade-in-section.is-visible {
  opacity: 1;
  transform: none;
  visibility: visible;
}

.sab-fade-in-section-left {
  opacity: 0;
  transform: translateX(30vh);
  visibility: hidden;
  transition: opacity 0.6s ease-out, transform 1.2s ease-out;
  will-change: opacity, visibility;
}
.sab-fade-in-section-left.is-visible {
  opacity: 1;
  transform: none;
  visibility: visible;
}

.sab-fade-in-section-right {
  opacity: 0;
  transform: translateX(-30vh);
  visibility: hidden;
  transition: opacity 0.6s ease-out, transform 1.2s ease-out;
  will-change: opacity, visibility;
}
.sab-fade-in-section-right.is-visible {
  opacity: 1;
  transform: none;
  visibility: visible;
}

.sab-iframe        {position:relative; width: 100%; height: 400px;}
.sab-iframe iframe {position:absolute;top:0;left:0;width:100%; height:100%;}

.sab_din_content img:not(.sab_added_by_editor) {
    width: 100%; /* or any custom size */
    height: 100%;
    /* https://stackoverflow.com/questions/4394309/how-do-i-fit-an-image-img-inside-a-div-and-keep-the-aspect-ratio */
    object-fit: contain;
}

.sab_added_by_editor {
    /* empty class */
}

.button:focus {
    box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.1);
    transform: scale(1.005);
}

.sab_clear_both {
    clear: both;
}

.sab-break-word {
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
}

.bgselected {
    /* the design file theme redefines --sab-selected per light/dark
       variant; the literal is what projects without a design file get */
    background-color: var(--sab-selected, #c2e8ff);
}

.sab-scroll-to-link h1,h2,h3,h4,h5 {
    margin-bottom: 12px !important;
    margin-top: 12px !important;    
}

/* Force all menu holds all space */
.ui.dropdown.item .menu.sab-mega-menu {
    /* 100% all view port */
    width: 100vw;
    /* Alignment */
    left: 0;
    right: 0;
    /* Fixed to escape parent container flow */    
    position: fixed;
    /* Top calculated by js */
    margin-top: 0;
    /* Remove borders */
    border-radius: 0;
    /* Some padding */
    padding: 2rem 0;
    /* Some light shadown */
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
    /* Ensures it stays on top of container */
    z-index: 1000;
}
.sab-mega-menu > * {
    white-space: normal !important;
}
