/*!
Theme Name: Twentyman
Theme URI: https://twentyman-it.net
Author: Nigel Twentyman
Author URI: https://twentyman-it.net
Description: WordPress Theme developed by Twentyman-IT.net. The theme uses bootstrap. To update, simply replace the files bootstrap.min.css and bootstrap.bundle.min.js in the themes css and js folders with the latest bootstrap release.
Version: 1.0
Tested up to: 6.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentyman
This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

Release Date: 13.03.2023
Build with:
Source: https://getbootstrap.com/docs/5.3/
- Bootstrp v5.3.0-alpha1
- popperjs v2.11.6
*/

/*
* Global Variables
*/
:root {
    --bs-primary: #e42724 !important;
    --bs-dropdown-link-active-bg: #e42724 !important;
    --ntFooterBackgroundColour: #062433;
    --ntFooterBaseBackgroundColour: #041c28;

    --ntHeaderBackgroundColour: #60595919;
    --ntBackgroundWhite: white;
    --ntMastheadBackgroundColour: #5d0f0e;
    /* --ntFadeInTime: 5s;*/
    --ntBackgroundColourPlaster: #60595919;
    --ntMastheadTextColour: black;
    --ntNavbarLinks: white;
    --ntFootTextColour: white;
    --ntBgColourLight: #5d0f0e10;
    --ntTextDark: #5d0f0e;
    --ntSecondaryBgColour: #f9ebeb !important;
    /* Change bootstrap default blue */
    --bs-link-color-rgb: #e42724 !important;
    --nt-colour-banner-grey: rgb(158, 156, 156);
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
li {
    word-break: break-word;
}

/* Maintain alignment after wordwrap */
div.ntKontaktBlock {
    align-items: stretch;
}

/* Increase Icon size on kontakt page */
.ntKontaktBlock svg {
    height: 4em !important;
    width: 4em !important;
}

/* WhatsApp logo */
.ntKontaktBlock svg:not(.ntWhatsApp) {
    fill: var(--bs-primary);
}

img.ntMap {
    border: solid rgba(0, 0, 0, 0.175) 2px !important;
}

.ntWhatsApp {
    fill: #25d366;
}

/***********************************************************/

/* Section Spacing*/
.ntSection {
    margin-bottom: 5rem;
    &.ntSection1 {
        margin-top: 3rem;
        margin-bottom: 3rem;
    }
}

/*
Removed 17.07.2025
.ntSectionAPBox {
    margin-bottom: 5rem;
}
*/
/* Increase margin due to gray box above 
Removed 17.7.2025
.ntSectionAPBox {
    margin-top: 8rem;
} */
/* Just the contact page 
Removed 17.7.2025
.ntSectionAPBoxTwin {
    margin-top: 1rem;
}
*/
.ntSection h1.display-6.fw-bold {
    margin-bottom: 2.5rem;
}
.ntSection.ntReferences {
    margin-bottom: 2rem;
    margin-top: 2rem;
}

/* References */
.ntSection.ntReferences h4.display-6.fw-bold {
    margin-bottom: 2rem;
}

.ntSection .lead {
    /*text-align: center;*/
    margin-bottom: 2rem;
}

.ntFlashRow {
    padding-bottom: 2rem;
}
.ntSectionAlbum .ntFlashRow {
    padding-top: 3rem;
}
.ntSection p.display-6.text-uppercase,
.ntSectionAlbum p.display-6.fw-bold,
h5.fw-bold.display-6 {
    margin-bottom: 4rem;
}
.ntSectionAlbum p.display-6.fw-bold {
    margin-bottom: 3rem;
}

/*.ntSection .ntTextPhotoRow > div:not(:last-child) {*/
.ntSection .ntTextPhotoRow > div {
    margin-bottom: 4rem;
}

.ntSectionColOutBox p.display-6,
.ntSection h1.display-6,
.ntSection h2.display-6,
.ntSection p.display-6,
.ntSection h3.display-6,
.ntSection h2.display-6,
.ntSection h2.h1,
.ntSection h5.h1 {
    margin-bottom: 2rem;
}
.ntSection h3.display-6 {
    margin-bottom: 2rem;
}
.ntSection .ntIconRow > div:not(:last-child) {
    margin-bottom: 4rem;
}
.ntBPList > div {
    margin-bottom: 0.5rem;
}
.ntSection p.fs-5.fw-bold {
    margin-bottom: 0rem;
}

/*
* T-IT Logo
*/

.ntTitBackLink a:hover {
    border: solid #00cc00 2px;
    padding: 3px;
    border-radius: 3px;
    color: var(--bs-body-color) !important;
}

.ntTitLogo {
    color: #004225;
    font-weight: 700;
    letter-spacing: 0.1em;
}

/* Cookie Banner */

div.animate__animated > div p a {
    /* Link colour in text */
    color: var(--bs-primary) !important;
}

/* Contact Page */

#contactForm {
    & .nt-success-message {
        color: green;
    }

    & .nt-warning-message {
        font-size: 0.8rem;
    }

    & #nt-form-area-checkbox {
        padding-left: 0;
    }

    #nt-form-area-url {
        position: absolute;
        left: -2000px;
    }
}

/* Top of page banner
-------------------------------------------------- */

/* Message banner below masthead */
#nt-top-message-banner {
    background-color: var(--nt-colour-banner-grey);
    color: var(--ntBackgroundWhite);
    text-align: center;
    padding-top: 0.2rem;
    padding-bottom: 0.3rem;
    letter-spacing: 0.3em;
    display: flex;
    justify-content: center;
    align-content: center;
}
#nt-top-message-banner p {
    margin-bottom: 0;
    display: flex;
}
#nt-top-message-banner div {
    display: flex;
    align-items: center;
}

/* Format administrative pages
-------------------------------------------------- */
div.ntSectionAdm {
    margin-top: 3rem;
    margin-bottom: 3rem;
}
/* Section Spacing */
.ntSectionAdm .wp-block-group:first-of-type > div {
    margin-bottom: 3rem;
}
/* Each p and row */
.ntSectionAdm h1,
.ntSectionAdm h2,
.ntSectionAdm h3,
.ntSectionAdm h4,
.ntSectionAdm p,
.ntSectionAdm .wp-block-group:first-of-type > div > div.wp-block-group {
    width: 100%;
    /* border: solid green 1px;*/
}
/* Row in Row */
.ntSectionAdm
    .wp-block-group:first-of-type
    > div
    > div.wp-block-group:not(:last-child) {
    margin-bottom: 2rem;
}
/* Capital Headings */
.ntSectionAdm h2,
.ntSectionAdm h3 {
    margin-bottom: 0.7rem;
}
/* Sub-headings */
.ntSectionAdm .wp-block-group > div > h4,
.ntSectionAdm {
    font-size: 1rem;
    margin-top: 1rem;
}

/* Style Team row */
.ntTeamBlock.wp-block-group {
    border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
    border-radius: var(--bs-border-radius);
    width: 250px !important;
    padding-left: 0.8rem;
    padding-right: 0.8rem;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
}

/* Style Jobs section */
.ntJobsBlock {
    padding-top: 2rem;
    /*
    Removed 17.07.2025
    &.wp-block-group > .wp-block-group {
        margin-bottom: 2rem;
    }
    */
    & li {
        margin-bottom: 1rem;
    }
}

.ntJobsBlockv2 {
    & > .wp-block-group:not(:first-of-type) {
        padding-bottom: 0rem;

        & h3 {
            padding-bottom: 1.5rem;
        }
        & .ntJobList {
            padding-bottom: 1rem;
            & ul {
                margin-left: 0;
            }

            & svg {
                margin-right: 0.25rem !important;
                width: auto;
                height: 26px;
                fill: var(--bs-primary);
                /* Correct alignment of icon and heading above */
                margin-left: 2px;
            }
        }
        & li {
            margin-bottom: 0.5rem;
        }
    }
    & > .wp-block-group:last-of-type {
        /* Link to pdf */
        padding-top: 1.5rem;
    }
}

/* Used only in star rating for references */
.ntRating svg {
    fill: #b8860b;
}

/* Button */
.ntSectionColOutBox a.btn,
.ntSection a.btn {
    margin-top: 2rem;
}

/* Grey Box */
.ntSection div.ntBackgroundColourPlaster {
    padding: 4rem;
    &.ntJobsBlock {
        padding: 2rem;
    }
}

/* AP & Contact Boxes 
Removed 17.07.2025
div.ntSectionAPBox.ntMastheadBackgroundColour,
div.ntSectionAPBoxTwin.ntMastheadBackgroundColour {
    padding-top: 2rem;
    padding-bottom: 2rem;
}
    */
.ntSectionColOutBox div.ntMastheadBackgroundColour {
    padding: 1rem;
}

.ntSectionColOutBox div {
    gap: 0rem;
}

/* Outer padding on kontakt box */
div.ntSectionColOutBox div.ntBackgroundWhite {
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 3rem;
    padding-bottom: 3rem;
}

/***********************************************************/

.ntBorder {
    border: solid 2px red;
}

/* Remove link underlines globally */
a {
    text-decoration: none !important;
}

/*  Remove colour from links */
.a {
    color: var(--bs-body-color) !important;
}

/* Clear styling on Link with light background
Removed 25.03.2023
.ntLinkCleanLight, .ntLinkCleanLight a, a.ntLinkCleanLight  {
  color: var(--bs-body-color) !important;
}*/

/* Color links red on or off hover */
a:hover,
.ntLinkPrimaryColour a,
a.ntLinkPrimaryColour {
    color: var(--bs-primary);
}

.ntSection .lead strong {
    color: var(--bs-primary);
}

/* Sticky won't be used if browser doesn't support it */
@supports ((position: -webkit-sticky) or (position: sticky)) {
    .sticky-top {
        position: -webkit-sticky;
        position: sticky;
        top: 0;
        z-index: 1020;
    }
}

/* Setup Opensteetmap copyright notice */
.ntPositionRelative {
    position: relative !important;
}
.ntCaptionBottomLeft {
    position: absolute;
    left: 2px;
    bottom: 2px;
    background-color: white;
}
.ntCaption:after {
    content: "";
    position: absolute;
    display: block;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0)
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0) 0px,
            rgba(0, 0, 0, 0.2) 100%
        )
        repeat 0 0;
    z-index: 1;
}

/* Get bootstrap responsive columns to work with rows */
.row {
    gap: 0px !important;
    --bs-gutter-x: 0px !important;
    --bs-gutter-y: 0px !important;
}

.ntGap-0 {
    gap: 0;
}

/* Prevent image stretching outside flex column */
.ntImg img {
    max-width: 100%;
    height: auto;
}

/* Keep Email/Telephone link and symbol aligned */
.ntLinkSymbol {
    line-height: 1rem;
}

/********************************
* Alternative colours 
*/
.ntBackgroundWhite {
    background-color: var(--ntBackgroundWhite) !important;
}
.ntMastheadBackgroundColour {
    background-color: var(--ntMastheadBackgroundColour);
}
.ntBgColourLight {
    background-color: var(--ntBgColourLight);
}
.btn .bi {
    background-color: white;
}
/* Faded dark background colour */
.ntBackgroundColourPlaster {
    background-color: var(--ntBackgroundColourPlaster);
}
.ntBackgroundColour01 {
    background-color: var(--ntBackgroundColour01);
}
/*******************************/

/* AP Box is responsive after LG
Removed 17.07.2025
.ntAPBox {
    max-width: 540px !important;
}
.ntAPBox img {
    box-shadow: 0 0.125rem 0.25rem rgb(0 0 0 / 8%) !important;
}
.ntAPBox p:first-of-type {
    line-height: 1.5;
}
.ntAPBox svg {
    fill: var(--bs-primary);
}
*/

/* Colour of active menu item or in footer */
.navbar-nav .nav-link.active,
.nav-link.active,
.navbar-nav .show > .nav-link {
    color: red !important;
}
/* Non active links in navbar */
/*.navbar-nav .nav-link, .ntCard h3 {*/
.navbar-nav .nav-link {
    color: var(--ntNavbarLinks) !important;
    opacity: 0.9;
}

li.pll-parent-menu-item {
    & a img {
        margin-bottom: 3px;
    }
    /*& li.lang-item {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }*/
}

/*
.nt-language-selector {
    padding-top: 0.5rem;
    & .pll-switcher-select {
        background-color: var(--ntMastheadBackgroundColour);
        border: none;
        color: var(--ntBackgroundWhite);
    }
}
*/

/* Space out the links in main menu */
#main-menu li {
    padding-left: 0.6rem;
    padding-right: 0.6rem;
}

/* Extra space for hamburger menu */
.dropdown-menu li:not(:first-of-type) {
    padding-top: 10px;
}
/* Selected menu item colours in hamburger */
.dropdown-menu li a:active,
.dropdown-item.active {
    background-color: var(--bs-primary) !important;
}
/* Hover background in dropdown menu and hamburger*/
.dropdown-menu {
    --bs-dropdown-link-hover-bg: var(--ntSecondaryBgColour) !important;
}

/* Style info links in masthead and header links in slider */
#header-widget1 aside a,
#header-widget2 aside a {
    color: var(--ntMastheadTextColour);
}

.ntWhiteText {
    color: white !important;
}

/* CopyRight notice in footer */
.ntCopyRight a {
    color: rgb(179, 174, 174) !important;
}

/* Defines the colour of the indicators */
#ntcarouselReferences .carousel-indicators [data-bs-target] {
    background-color: #5d0f0e !important;
}

#ntcarouselReferences .ntCarouselCaption p {
    margin-bottom: 0;
}

#ntcarouselReferences .carousel-item > img {
    height: 50vh;
    object-fit: cover;
}

/* Position text over electric banner */
.ntMoveTOPLabel {
    padding-top: 22rem;
}

.ntTextWhite {
    color: white !important;
}
.ntTextDark {
    color: var(--ntTextDark) !important;
}

/* Colour of masthead */
nav.ntmasthead.bg-dark {
    background-color: var(--ntMastheadBackgroundColour) !important;
}

/* Space above and below masthead */
.navbar.ntmasthead {
    --bs-navbar-padding-y: 0;
}

.navbar-toggler-icon {
    /* background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%280, 0, 0, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e");*/
    background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.9%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e") !important;
}

.ntFlash {
    border-bottom: solid red 3px;
    width: 8rem !important;
    max-width: 40% !important;
}

header {
    background-color: var(--ntHeaderBackgroundColour) !important;
}

main {
    background-color: var(--ntBackgroundWhite) !important;
}

/* Pull up block to overlap previous block/image */
.ntPullBlockUp {
    margin-top: -100px !important;
}

.ntZiP1 {
    position: relative;
    left: 0px;
    top: 0px;
    z-index: 1;
}

.ntbg-light {
    --bs-bg-opacity: 1;
    /*background-color: rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important;*/
    background-color: #4e4e4e;
}

/* Image on Ueber Uns page */
.ntImgHightLimitUns {
    height: 80vh;
    object-fit: cover;
}

/* Apply btn-primary style to button links */
.btn.btn-primary a {
    color: var(--bs-btn-color);
}
.btn.btn-outline-primary {
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-color: var(--bs-primary);
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-disabled-color: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
    /* Halo when selected*/
    --bs-btn-focus-shadow-rgb: 174, 158, 157;
}

/* Space between bullet point icon and text */
.ntBPList .wp-block-group svg,
.ntCameraList .wp-block-group svg {
    margin-right: 0.25rem !important;
    width: 1.8em;
    height: 1.8em;
    fill: var(--bs-primary);
    /* Correct alignment of icon and heading above */
    margin-left: 2px;
}

/* Prevents icons having different sizes (widths) */
.ntBPList > div.wp-block-group {
    width: 100%;
    align-items: start;
}
/* Space after camera list */
div.ntCameraList {
    margin-bottom: 1.5rem;
}
/* The camera blocks */
div.ntCameraList > div {
    margin-bottom: 1rem;
}
div.ntCameraList > div {
    align-items: flex-start;
}
div.ntCameraList div {
    align-self: self-start;
}

.ntBPList > div.wp-block-group p,
.ntBPList > div.wp-block-group h2 {
    line-height: 1.5;
}

.ntFeatureIconBGForm {
    width: 72px;
    height: 72px;
}
.ntFeatureIcon {
    width: 3em;
    height: 3em;
}

.bi {
    /* vertical-align: -.125em; */
    fill: var(--bs-primary);
}
/* Icon colour in footer */
.ntFooter svg,
.ntKontakt svg:not(.ntWhatsApp) {
    fill: var(--bs-primary);
}

/* Display SVG Icons in black*/
.ntIconBlack {
    fill: black;
}

.icon-link > .bi {
    margin-top: 0.125rem;
    margin-left: 0.125rem;
    fill: currentcolor;
    transition: transform 0.25s ease-in-out;
}
.icon-link:hover > .bi {
    transform: translate(0.25rem);
}

/* Nigel style */
.icon-round {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    border: solid 0.1rem var(--bs-primary);
}

.card-cover {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}
.bd-placeholder-img {
    font-size: 1.125rem;
    text-anchor: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

.nav-scroller {
    position: relative;
    z-index: 2;
    height: 2.75rem;
    overflow-y: hidden;
}
.nav-scroller .nav {
    display: flex;
    flex-wrap: nowrap;
    padding-bottom: 1rem;
    margin-top: -1px;
    overflow-x: auto;
    text-align: center;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
}

/* Footer */
.ntFooter {
    background-color: var(--ntFooterBackgroundColour);
}
.ntFooterPartner {
    background-color: var(--ntFooterPartnerBackgroundColour);
}
.ntFooterBase {
    background-color: var(--ntFooterBaseBackgroundColour);
}

/* Footer Text Colours */
.ntFooter p,
.ntFooter h5 {
    color: var(--ntFootTextColour);
}
footer .nav-link {
    /* Spacing around links in footer menu */
    color: var(--ntFootTextColour);
}

footer .nav {
    /* Hover colour in footer menu */
    --bs-nav-link-hover-color: var(--bs-primary);
    /* Link colour in footer menu */
    --bs-text-opacity: 1;
    --bs-nav-link-color: rgba(var(--bs-body-color-rgb), 0.75) !important;
}

/*
Footer
*/
/* Footer widgets */
#footer-widget1 > aside:not(:first-of-type),
#footer-widget2 > aside:not(:first-of-type) {
    display: flex;
}
/* Padding right of footer icons */
#footer-widget1 > aside:not(:first-of-type) > div:first-of-type,
#footer-widget2 > aside:not(:first-of-type) > div:first-of-type {
    padding-right: 0.5rem;
}
/* Footer Menu */
/* Spacing around and below links in footer menu */
.footer-menu-unternehmen .nav-item {
    margin-bottom: 1.2rem;
    margin-left: 2.2rem;
}
.footer-menu-unternehmen .nav-link {
    padding: 0px;
}
/* Space below footer headings */
.ntFooter aside,
.ntFooter h5:first-of-type {
    margin-bottom: 1.1rem;
}

.footer-menu-legal .nav-item {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    margin-bottom: 1.5rem;
}
/* Remove format from links in footer */
.ntFooterInfo a,
#footer-widget1 a:hover {
    color: white;
}
.ntFooterInfo > .col:not(:last-child) {
    padding-bottom: 3rem;
}
/* Set text colour to body colour */
.ntBodyColour {
    color: var(--bs-body-color);
}

/* CUSTOMIZE THE CAROUSEL
-------------------------------------------------- */

/* Since positioning the image, we need to help out the caption */
#ntCarouselStart .carousel-caption,
#ntCarouselStart .carousel-caption p {
    margin-bottom: 0rem !important;
    padding-bottom: 0rem !important;
}

/* Overlay images to increase caption contrast */
#ntCarouselStart .carousel-item:after {
    content: "";
    position: absolute;
    display: block;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0)
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0) 0px,
            rgba(0, 0, 0, 0.2) 100%
        )
        repeat 0 0;
    z-index: 1;
}

/* Style header links in slider */
#ntCarouselStart .carousel-caption p {
    color: white;
    position: relative;
    z-index: 2;
}

/* Active slide indicator */
#ntCarouselStart .carousel-indicators [data-bs-target] {
    /*background-color: #5d0f0e !important;*/
    background-color: white;
}
/* Slide indicators */
#ntCarouselStart .carousel-indicators {
    margin-bottom: 0 !important;
}

/* Cover Image
-------------------------------------------------- */

.ntSectionCoverImg .ntImgContainer,
.ntSectionUnplugged .ntImgContainer {
    position: relative;
}
.ntSectionCoverImg .ntImgContainer:after,
.ntSectionUnplugged .ntImgContainer:after,
.ntCard:after {
    content: "";
    position: absolute;
    display: block;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0)
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0) 0px,
            rgba(0, 0, 0, 0.2) 100%
        )
        repeat 0 0;
    z-index: 1;
    border-radius: var(--bs-card-border-radius);
}
.ntSectionCoverImg .ntImgCaption,
.ntSectionUnplugged .ntImgCaption {
    position: absolute;
    left: 0px;
    bottom: 0px;
}
.ntSectionCoverImg .ntImgContainer p,
.ntSectionUnplugged .ntImgContainer p {
    color: white;
    position: relative;
    z-index: 2;
}

/* Service Card Image
-------------------------------------------------- */

.ntCardCaption {
    position: absolute;
    left: 0px;
    top: 10px;
    background-color: white;
    border-top-right-radius: 0.2rem;
    border-bottom-right-radius: 0.2rem;
    padding-right: 0.8rem;
}

.ntCardCaption h3 {
    margin-bottom: 0;
}

.ntCardRow {
    margin-top: 1rem !important;
    margin-bottom: 3rem !important;
    justify-content: space-around;
    gap: 2em;
    /*max-width: 100%;*/
}

.card-body {
    padding: 0 !important;
    z-index: 2;
}
.ntCard img {
    height: 180px !important;
    border-radius: var(--bs-card-border-radius);
}

/* -------------------------------------------------- */

.ntTextPhotoRow img,
#ntcarouselReferences img,
.ntSectionUnplugged img {
    border-radius: 5px;
    box-shadow: 0 1rem 3rem rgb(0 0 0 / 18%) !important;
}

.ntUnpluggedBlock.wp-block-group img {
    width: 400px;
}

/* Style until media rule takes over
**************************************/
.ntSection .display-6 {
    font-weight: 400;
}

/* ntTextPhotoRow - text and heading aligment until medium device */
/* Removed 25.03.2023 
.ntSection .ntTextPhotoRow p.display-6.h4 {
  text-align: center;
}*/

/* Cover image height start and service pages not administrative pages */
#ntCarouselStart .carousel-item > img,
.ntSectionCoverImg div.wp-block-group div > img:not(.ntCoverImgLow) {
    height: 50vh;
    object-fit: cover;
}

.ntSectionCoverImg div.wp-block-group div > img.ntCoverImgLow {
    height: 30vh;
    object-fit: cover;
}

/* Prevent linewrap on email address contact card */
.ntKontaktCardWidth {
    width: 320px !important;
}

/* Product Boxes */
.ntTextPhotoRow img:not(.ntVHOverride) {
    height: auto !important;
    max-height: 450px;
}

/* Product card on start page */
.ntCardWidth {
    width: 310px !important;
}

/* Resolve google search issue:
* Images extend off screen on mobile devices - affects only card display on start page
* 
*  Extra Small devices (360px) and less
*******************************************/
div.ntCardRow,
div.ntCardRow > div.wp-block-group {
    max-width: 100%;
}

/* Extra Small devices (576px) and less
*******************************************/
@media (max-width: 576px) {
    /* Hamburger menu spacing */
    .offcanvas-body #main-menu li {
        margin-bottom: 0.4rem;
    }
    .ntSection .ntBPListSpace {
        margin-bottom: 1rem;
    }
    /* Lineup bauelment cover image*/
    .ntImgBauelemente {
        object-position: 80% 0% !important;
    }
    .ntImgJobs {
        object-position: 40% 1% !important;
    }
    /* Carousel images on startpage */
    .ntPositionSlide-01 {
        object-position: 70% 0% !important;
    }
    .ntPositionSlide-02 {
        object-position: 30% 0% !important;
    }
    .ntPositionSlide-03 {
        object-position: 30% 0% !important;
    }
    .ntPositionSlide-04 {
        object-position: 30% 0% !important;
    }
}
/* Small devices (577px) and bigger */
@media (min-width: 577px) {
    /* Hamburger menu spacing */
    .offcanvas-body #main-menu li {
        margin-bottom: 0.4rem;
    }
    .ntSection .ntBPListSpace {
        margin-bottom: 1rem;
    }
    /* Carousel images on startpage */
    .ntPositionSlide-01 {
        object-position: 0% 0% !important;
    }
    .ntPositionSlide-02 {
        object-position: 0% 0% !important;
    }
    .ntPositionSlide-04 {
        object-position: 0% 0% !important;
    }
    .ntPositionSlide-03 {
        object-position: 0% 0% !important;
    }
}

/* Medium devices (768px) and bigger
*******************************************/
@media (min-width: 768px) {
    /* Hamburger menu spacing */
    .offcanvas-body #main-menu li {
        margin-bottom: 0.5rem;
    }
    /* Padding between Bullet point list blocks */
    .ntSection .ntBPListSpace {
        margin-bottom: 0rem;
    }
    .ntImgJobs {
        object-position: 0% 99% !important;
    }
    .ntImgFliesen {
        object-position: 0% 90% !important;
    }
    /* Footer legal menu */
    .footer-menu-legal li,
    .ntFooterCopyright {
        margin-top: 0px !important;
    }
    /* Remove margin from company menu */
    .footer-menu-unternehmen .nav-item {
        margin-left: 0rem;
    }
    footer .ntFooterBase .row {
        flex-direction: row-reverse !important;
        justify-content: space-between;
    }
    .footer-menu-legal ul {
        justify-content: flex-end !important;
    }
    .ntFooterCopyright {
        justify-content: flex-start !important;
    }
    .footer-menu-legal .nav-item {
        margin-bottom: 0;
    }
    /* Footer Info Area */
    .ntFooterInfo {
        justify-content: space-between;
    }
    #footer-widget1 > aside:last-of-type {
        padding-bottom: 0px;
    }
    .ntFooterInfo > .col:not(:last-child) {
        padding-bottom: 0px;
    }
    /* Carousel images on startpage */
    .ntPositionSlide-01 {
        object-position: 0% 90% !important;
    }
    .ntPositionSlide-02 {
        object-position: 0% 50% !important;
    }
    .ntPositionSlide-03 {
        object-position: 0% 50% !important;
    }
    .ntPositionSlide-04 {
        object-position: 0% 0% !important;
    }
}

/* Large devices (992px) and bigger
*******************************************/
@media (min-width: 992px) {
    li.pll-parent-menu-item {
        padding-left: 3.5rem !important;
    }
    /* Cover image height start and service pages */
    #ntCarouselStart .carousel-item > img,
    .ntSectionCoverImg div.wp-block-group div > img:not(.ntCoverImgLow) {
        height: 55vh;
    }
    /* Remove margin added for smaller devices */
    .offcanvas-body #main-menu li {
        margin-bottom: 0rem;
    }
    .ntImgBoden {
        object-position: 0% 90% !important;
    }
    /* Extra space for hamburger menu */
    .dropdown-menu li:not(:first-of-type) {
        padding-top: 0px;
    }
    /* Product card on start page */
    .ntCardWidth {
        width: 260px !important;
    }
    /* ntTextPhotoRow - text and heading aligment medium device and above */
    .ntSection .ntTextPhotoRow > div:nth-child(even) .lead,
    .ntSection .ntTextPhotoRow > div:nth-child(even) p.display-6,
    .ntSection .ntTextPhotoRow > div:nth-child(even) p.display-6.h4,
    .ntSection .ntTextPhotoRow > div:nth-child(even) h3.display-6 {
        text-align: right;
    }
    /* Last row on TextPhoto block */
    .ntSection .ntTextPhotoRow > div:last-child {
        margin-bottom: 0;
    }
    /*
    Removed 17.07.2025
    .ntAPBox {
        max-width: 100% !important;
    }
    */
    /* Outer padding on kontakt box */
    div.ntSectionColOutBox div.ntBackgroundWhite {
        padding-left: 3rem;
        padding-right: 3rem;
    }
}

/* XL devices (1200px) and bigger
*******************************************/
@media (min-width: 1200px) {
    /* Cover image height start and service pages */
    #ntCarouselStart .carousel-item > img,
    .ntSectionCoverImg div.wp-block-group div > img:not(.ntCoverImgLow) {
        height: 70vh;
    }
    .ntImgJobs {
        object-position: 0% 80% !important;
    }
    .ntImgFliesen {
        object-position: 0% 80% !important;
    }
    /* Spacing around and below links in footer menu */
    .footer-menu-unternehmen .nav-item {
        margin-bottom: 0.7rem;
    }
    .ntCardWidth {
        width: 310px !important;
    }
}

/* XXL devices (1400px) and bigger
*******************************************/
@media (min-width: 1400px) {
    /* Carousel images on startpage */
    .ntPositionSlide-01 {
        object-position: 0% 90% !important;
    }
    .ntPositionSlide-02 {
        object-position: 0% 50% !important;
    }
    .ntPositionSlide-03 {
        object-position: 0% 70% !important;
    }
    .ntPositionSlide-04 {
        object-position: 0% 80% !important;
    }
    .ntCardWidth {
        width: 275px !important;
    }
}

.nt-print-fix {
    /* Used only on frontpage hero */
    display: none;
}

@media print {
    footer {
        display: none;
    }
    header {
        &.nt-not-frontpage #logo {
            display: none;
        }
        &.nt-frontpage #logo {
            height: 90px;
            margin-bottom: 3rem;
        }
    }

    .navbar-toggler {
        display: none;
    }
    #navbar-brand {
        display: none !important;
    }

    #nt-top-message-banner {
        display: none !important;
    }
    img {
        display: block;
    }
    * {
        font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
            "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    }
    main {
        /* Our A4 page */
        width: 180mm;
        height: 260mm;
        background-color: #ffffff;
        margin-left: auto;
        margin-right: auto;
    }
    #ntCarouselStart {
        display: none;
    }
    .nt-print-fix {
        /* Used only on frontpage hero */
        display: block;
    }
    .generic-content {
        & .ntSectionCoverImg {
            display: block !important;
            & img {
                height: 400px !important;
                z-index: 99 !important;
            }
            & .ntImgCaption {
                z-index: 199 !important;
            }
        }

        & > .wp-block-group:not(:first-of-type):not(.ntReferences) {
            break-after: page;
            /* Below is the effective page margin */
            padding-left: 0 !important;
            padding-right: 0 !important;
            padding-top: 1rem !important;
        }
        & .container {
            max-width: 100%;
        }
        & .wp-block-group.ntBackgroundColourPlaster {
            padding: 2rem !important;
            & .shadow-lg {
                box-shadow: none !important;
            }
            & > .wp-block-group:last-of-type {
                & .wp-block-group:last-of-type {
                    /* last list column */
                    margin-bottom: 0 !important;
                }
            }
        }
        & .ntTextPhotoRow {
            & > .wp-block-group {
                break-after: page;
            }
        }
    }
    #ntcarouselReferences {
        display: none;
    }
    .nt-frontpage .generic-content {
        & > .wp-block-group {
            break-after: page;
            /* Below is the effective page margin */
            padding-left: 0 !important;
            padding-right: 0 !important;
            padding-top: 1rem !important;
        }
        & .ntCardRow {
            padding-bottom: 2rem;
            & .ntCard {
                border: none;
                box-shadow: none;
                & img {
                    display: none;
                }
            }
        }
    }
}

/****************/

.modal-body {
    & p {
        color: var(--bs-body-color);
    }
    & a {
        color: var(--bs-primary);
    }
}
#jobsModal {
    padding-right: 0 !important;
    & .modal-content > div:first-child {
        align-self: center;
        margin-top: 2rem;
    }
    .nt-modal-btn {
        font-weight: 500;
        font-size: 120%;
        /*padding-inline: 0.5rem;*/
        &:hover {
            color: var(--bs-primary);
            text-decoration: underline !important;
            text-underline-offset: 0.3em;
        }
    }
}
