/*
 Theme Name:   Hamilton Child
 Theme URI:    https://www.flex-nbg.de/
 Description:  Child Theme für Hamilton mit permanenter Kachelansicht und Preis-Anzeige
 Author:       MD
 Template:     hamilton
 Version:      1.0.0
*/

/*
#align-line-l{
    height: 100vh;
    left:0.5rem;
    width: 1px;
    background-color: red;
    position: fixed;
    top: 0px;
    z-index: 100000;
}

#align-line-r{
    height: 100vh;
    right: 0.5rem;
    width: 1px;
    background-color: red;
    position: fixed;
    top: 0px;
    z-index: 100000;
}
*/

@view-transition {
  navigation: auto;
}

:root{
    --pitchblack: #000;
    --black: #171d18;
    --white: #fff;
    --darkgrey: #4b494a;
    --flider: #E8E2E7;
    --grey: #a7a7a7;
    --solid: #dfdfdf;
    --solidgreen: #f2f6f3;
    --accent: #7a5a78;
    --analog: #e8e2e7;
    --invert: #85a587;
    --transition-timing-800: 800ms;
    --transition-timing-400: 400ms;
    --transition-timing-300: 300ms;
    --ease: cubic-bezier(.15,.9,.34,.95);
}

html, body{
  font-family: 'ABC Ginto Nord';
  font-style: normal;
  font-weight: 400;
  position: relative;
  height: auto;
  overflow: visible !important;
}

/* FONTS */

/* ABC Ginto Nord Light */
@font-face {
  font-display: block;
  font-family: 'ABC Ginto Nord';
  font-style: normal;
  font-weight: 300;
  src: url('./assets/font/Ginto/ABCGintoNord-Light.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('./assets/font/Ginto/ABCGintoNord-Light.otf') format('otf'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* ABC Ginto Nord Medium*/
@font-face {
  font-display: block; 
  font-family: 'ABC Ginto Nord';
  font-style: normal;
  font-weight: 500;
  src: url('./assets/font/Ginto/ABCGintoNord-Medium.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('./assets/font/Ginto/ABCGintoNord-Medium.otf') format('otf'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

.has-opacity{
    opacity: 0.62;
}

.is-grid{
    display: grid;
    justify-content: center;
}


p, h1, h2, h3, h4, h5, h5, h6{
    text-wrap-style: pretty;
    hyphens: none;
    margin: 0px;
}

p{
    font-size: 14px;
    line-height: 1.45;
}

h2{
    font-size: 1.875rem;
    line-height: 1.3;
    letter-spacing: -0.5px;
}


h3{
    font-size: 1.5rem;
    line-height: 1.4;
    letter-spacing: -0.5px;
}

h4{
    font-size: 1.275rem;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

h5{
    font-size: 1rem;
    line-height: 1.3;
}

h6{
    line-height: 1.3;
    font-weight: 400;
}

.big{
    font-size: 1rem;
}

.meta{
    display: none;
}

.alignright, .alignleft{
    margin: 0px;
    padding-bottom:0px;
}


.posts-grid .post-preview .post-preview-inner {
    opacity: 1 !important;
    visibility: visible !important;
    position: relative !important;
    background: transparent !important;
    padding-top: 16px;
}

.posts-grid .post-preview .post-title,
.posts-grid .post-preview .post-title a {
    color: var(--black) !important;
}

.post-preview .preview-header {
    display: none;
}


.nav-toggle, .alt-nav-wrapper{
    pointer-events: auto;
}

.preview-info {
    display: flex;
    align-items: center;
    width: 100%;
    position: relative;
    padding: 2px 0px;
}

.post-preview:hover .preview-info a{
    color: var(--darkgrey);
}

.preview-info-text{
    min-width: 0;
    flex: 1 1 auto;
    padding: 8px 4px;
}

.product-title{
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.2px;
    color: var(--black);
    display: block;        
    width: 100%;           
    white-space: nowrap;     
    overflow: hidden;       
    text-overflow: ellipsis; 
}

.product-title a{
    text-decoration: none;
}

.post-category-small, p.small, :root figcaption, .wp-caption-text {
    font-size: 12px;
    color: var(--darkgrey);
    letter-spacing: -0.25px;
    font-weight: 300;
}

/* Falls Option A verwendet wird (Links stylen) */
.post-category-small a {
    color: #777777;
    text-decoration: none;
}

.post-category-small a:hover {
    color: #000000;
}

.product-price {
    font-weight: 300;
    color:var(--darkgrey);
    display: flex;
    gap: 2px;
    align-items: center;
    justify-content: center;
}

.alt-nav, .alt-nav > li{
    margin: 0px;
}

.alt-nav > li.menu-item-has-children{
    padding-right: 0px;
}

.alt-nav > li.menu-item-has-children:after{
    display: none;
    visibility: hidden;
}

.site-header,.show-alt-nav .site-header{
   	mix-blend-mode: difference;
   	padding: 1rem;
	align-items: center;
}

.site-header .site-title{
    margin-top: 8px;
    margin-left: -16px;
    pointer-events: auto;
}

.site-header{
    align-items: center;
    position: fixed;
    top: 0;
    max-width: 100vw;
    width: 100%;
    pointer-events:  none;
}

.site-header .custom-logo svg{
    height: 100px;
    width: 100px;
}

.site-header .custom-logo svg .cls-3{
   fill: var(--white);
}

.site-header .custom-logo{
    background-image: unset !important;
    display: inline;
}
.site-header .custom-logo svg{
     transform: scale(1);
    transition: 0.24s transform ease-in-out;
}

.site-header .custom-logo:hover svg{
    transform: scale(1.1);
}

.wp-custom-logo .site-header{
	padding: 1rem;
}

.hero{
    width: 100%;
    height: calc(100dvh);
    position: relative;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.hero img{
     object-fit: contain;
     height: 100%;
     width: 100%;
     left: 0%;
     top: 15%;
     display: block;
     position: absolute;
     bottom: 0px;
     pointer-events: none;
     filter: grayscale(0.1);
}

.hero-overlay{
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 2;
    color: var(--pitchblack);
}

.shop-name{
    padding-bottom: 1rem;
}

.shop-teaser{
    max-width: 25rem;
    position: absolute;
    top: calc(50% - 115px);
    left: 3.5rem;
    transform: translate(0%, 50%);
    filter: invert(1);
    background: rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    padding: 1rem;
}

.shop-copy{
    padding-bottom: 1.75rem;
}

.shop-info{
    position: absolute;
    bottom: 2rem;
    right: 4rem;
    display: flex;
}

.shop-info h6{
  color: var(--white);
  text-transform: capitalize;
}

.shop-info::after{
    content: '';
    background-color: var(--black);
    padding: 4px 8px;
    width: 100%;
    height: 100%;
    z-index: -1;
    position: absolute;
    left: -8px;
    top: -4px;
    border-radius: 100vw;
}

.shop-info::before{
    content: '';
    background-color: var(--white);
    width: 8px;
    height: 8px;
    position: relative;
    margin-top: 4px;
    margin-right: 8px;
    border-radius: 100vw;
}

.wp-custom-logo .site-header{
    transition: transform var(--transition-timing-400) var(--ease);
    transform: translateY(0%);
}

.hide-header{
    transform: translateY(-136px) !important;
}

.preview-image img{
    visibility: visible;
    aspect-ratio: 1/1;
}

.preview-image{
    overflow: hidden;
    background-image: unset;
}

.post-preview:hover .preview-image:after,
.show-preview-titles .post-preview .preview-image:after {
	opacity: 0;
}

.preview-image img{
    transform: scale(1.1);
    transition: 0.2s transform ease-in-out;
}

.post-preview:hover .preview-image img{
    transform: scale(1.15);
}

main{
    padding: 160px 1rem; 
    position: relative;
    background-color: var(--solid);
    z-index: 2;
    min-height: 100vh;
    display: flex;
    flex-direction:column;
    align-items: center;
    justify-content: center;
}


/* CAT FILTER */

.filter-wrapper{
    margin: 8px 0px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}

.item-counter{
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 2px;
    height: auto;
    min-width: 5rem;
    padding-bottom: 4px;
    justify-content: flex-start;
    align-items: center;
}

span.count{
    font-weight: 500;
    font-size: 10px;
}

.filter-btn.filter-btn-sale{
    background: var(--invert);
    color: var(--white);
    border: solid 2px var(--white) !important;
}

.filter-btn.filter-btn-sale:not(.active):hover{
    background: var(--accent) !important;
    color: var(--white) !important;
}

.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 8px;
}

.filter-btn {
    color: var(--black);
    background: transparent;
    border: 2px solid var(--white);
    padding: 4px 16px;
    cursor: pointer;
    font-weight: 400;
    font-size: 12px;
    max-width: max-content;
    transition: all 0.2s ease-in-out;
}

.filter-btn.active {
    background: var(--black);
    color: var(--white);
    border-color: var(--black);
}

.filter-btn:not(.active):hover{
    background: var(--solid);
    color: var(--black);
}

.filter-counter {
    font-size: 10px;
    color: var(--darkgrey);
    font-weight: lighter;
    opacity: 0.55;
}

/* Container für die Preise auf den Kacheln */
.price-container {
    margin-top: 8px;
    font-size: 12px;
}

.price-container .old-price {
    text-decoration: line-through solid var(--black) 1px;
    color:var(--black);
    margin-left: 4px;
    font-weight: 300;
}

.price-container .sale-price {
    color: var(--invert);
    font-weight: 400;
}

.price-container .sale-price, .price-container .old-price{
    font-size: 12px;
    line-height: 1.75;
    letter-spacing: -0.5px;
    line-height: 1;
}

/* Badges */

.post-card-thumbnail {
    position: absolute;
    top: 12px;
    left: 16px;
    z-index: 1;
}

.badge-verkauft, .badge-sale {
    font-size: 0.575rem;
    text-transform: uppercase;
    font-weight: 400;
    border-radius: 4px;
    padding: 4px 8px;
    z-index: 10;
    border: 1px solid var(--white);
}

.badge-verkauft{
    background-color: var(--grey);
    color:var(--white);
}

.badge-sale {
    background-color: #ffffff40;
    color: var(--invert);
    backdrop-filter: blur(6px);
}



.pagation-wrapper{
    padding: 5rem 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 3rem;
}

/* --- PAGINATION ausblenden (Fallback) --- */

.pagination .next, 
.nav-links .next,
a.next-posts-link,
.post-pagination{
    display: none !important;
}

/* TYPO */ 
.category-verkauft .preview-image, .category-verkauft .preview-info{
    filter: opacity(0.4);
}

.alt-nav > li.menu-item-has-children:hover {
	text-decoration: none;
}

.contact-c2a{
    width: 100%;
    backdrop-filter: blur(12px);
}

label br{
    display: none !important;
}

.btn, button, .button, .faux-button, .wp-block-button__link, .wp-block-file .wp-block-file__button, input[type="button"], input[type="reset"], input[type="submit"]{
    padding: 8px 16px;
    border: 2px solid var(--pitchblack);
    color: var(--pitchblack);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.8125rem;
    text-decoration: none;
    transition: all .26s ease-in-out;
    font-family: 'ABC Ginto Nord';
    width: 100%;
    display: block;
    text-align: center;
    background-color: var(--white);
}

.btn:hover, button:hover, .button:hover, .faux-button:hover, .wp-block-button__link:hover, .wp-block-file .wp-block-file__button:hover, input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover{
    color: var(--white);
    background-color: var(--black);
    border: 2px solid var(--black);
    cursor: pointer;
}

 input[type="submit"]{
    margin-top: 16px;
 }


#load-more-btn{
    max-width: 25rem;
}

#load-more-spinner{
    font-size: 0.75rem;
}

/* BURGER */

:root .nav-toggle{
    right: 2rem;
    top: 3rem;
    border: none;
}

.nav-toggle .bar{
    width: 45px;
    background-color: var(--white);
}


/* Seiten Layout */

body[data-page="Ankauf"] .section-inner.thin, body[data-page="Über flex!"] .section-inner.thin, body[data-page="Verleih"] .section-inner.thin, body[data-page="AGB"] .section-inner.thin, body[data-page="Kontakt"] .section-inner.thin{
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

body[data-page="Ankauf"] .section-inner.thin figure, body[data-page="Ankauf"] .section-inner.thin figure img, body[data-page="Über flex!"] .section-inner.thin figure img, body[data-page="Über flex!"] .section-inner.thin figure, body[data-page="Kontakt"] .section-inner.thin figure, body[data-page="Kontakt"] .section-inner.thin figure img{
    max-width: 100%;
    width: 100% !important;
}

.gallery-caption, .wp-caption-text, :root figcaption{
    margin: 8px 0 0;
}

.site-nav{
    margin: 0px;
}

.site-nav.active{
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
}

.site-nav li{
    margin-left: 1rem;
}
.site-nav ul a{
    border-bottom: 0px;
}

ul.alt-nav{
    display: flex;
    gap: 12px;
}

.alt-nav ul{
    background-color: var(--white);
}

ul#menu-header-1{
    padding-top: 2rem;
}

ul.footer-social-nav{
    display: flex;
    width: 100%;
    justify-content: center;
    column-gap: 8px;
    margin: 0px;
    flex-wrap: balance;
}

ul.footer-social-nav li{
    list-style: none;
}

ul.menu-social-nav li a{
    font-size: 16px;
}

.alt-nav li{
    display: flex;
}

.alt-nav li a{
    color:var(--white);
    font-size: 16px;
    font-weight: 400;
    transition: 0.26s ease-in-out;
    display: inline-block;
    line-height: 1.3;
    text-decoration: none;
}

li:not(.current-menu-item) a:hover, .site-footer a:hover{
    color: var(--grey) !important;
}

li.current-menu-item a, .alt-nav li.current-menu-item a:hover {
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    text-decoration-thickness: 2px !important;
}

.sub-menu li, .sub-menu li ul, .alt-nav ul, .alt-nav ul:before, .alt-nav ul:after{
    display: none;
}

.ci{
    text-decoration: none;
}

.ci{
    font-family: 'ABC Ginto Nord';
    font-weight: 500;
    letter-spacing: -0.25px;
}

.ci-light{
    font-family: 'ABC Ginto Nord';
    font-weight: 300;
    letter-spacing: -0.25px;
}

#info-icon{
    font-weight: 400;
    padding: 2px;
    background-color: var(--black);
    color: var(--white);
    border-radius: 100vw;
    aspect-ratio: 1/1;
    display: flex;
    max-width: 1.25rem;
    height: 1.25rem;
}

.col:not(.no-animate), .wp-block-image {
    transition: transform var(--transition-timing-800) var(--ease), opacity var(--transition-timing-400) var(--ease);
    transition-delay: calc(var(--index) * 0.1s);
    transform: translateY(24px);
    opacity: 0;
}

.col:not(.no-animate).has-been-seen, .wp-block-image:not(.no-animate).has-been-seen {
    transform: translateY(0px);
    opacity: 1;
}

.col:not(.no-animate).animation-complete, .wp-block-image:not(.no-animate).animation-complete {
    transform: none;
}

.fade-col:not(.no-animate), .wp-block-image {
    transition: transform var(--transition-timing-800) var(--ease), opacity var(--transition-timing-400) var(--ease);
    transition-delay: calc(var(--index) * 0.08s);
    transform: translateY(24px);
    opacity: 0;
}

.fade-col:not(.no-animate).has-been-seen{
    transform: translateY(0px);
    opacity: 1;
}

.fade-col:not(.no-animate).animation-complete{
    transform: none;
}

.wpcf7 p:last-of-type label{
    display: grid;
    gap: 0rem;
}

.wpcf7 p:last-of-type label span:first-of-type{
    padding-top: 2px;
}

footer{
    z-index: 3;
    background-color: var(--white);
    position: relative;
}

.site-footer a{
    width: max-content;
}

ul.footer-nav{
   margin: 0px;
}

ul#menu-rechtliches{
    display: inline-flex;
    list-style-type: none;
    background: none;
    border: 0;
    margin: 0px;
    gap: 8px;
    padding: 0;
    vertical-align: middle;
    height: auto;
}

.site-footer p, .site-footer p + p, label, .wpcf7 input[type="file"], .site-footer a:not(.big){
    font-size: 12px;
    color: var(--black);
    line-height: 1.5;
    border-bottom: 0px;
}

.site-footer p + p{
        margin-top: 0px;
}

ul#menu-rechtliches li, ul.footer-social-nav li{
   display: flex;
    list-style-type: none;
    background: none;
    border: 0;
    margin: 0px;
    padding: 0;
    justify-content: center;
    align-items: center;
    line-height: 1;
}

ul#menu-rechtliches li:before, ul.footer-social-nav li::before{
    content: "\B7";
    padding-right: 8px;
}

ul#menu-rechtliches li:nth-child(1)::before, ul.footer-social-nav li:nth-child(1)::before{
    content: '';
} 

input, textarea{
    font-family: 'ABC Ginto Nord';
    font-style: normal;
    font-weight: 500;
    font-size: 10px;
    cursor: pointer;
}

input{
    margin-top: 16px;
}

input:focus, textarea:focus {
    background-color:var(--accent);
    color: var(--white);
    outline:var(--darkgrey); 
}

.wpcf7 input[type="file"]:hover{
    cursor:pointer;
}

label br {
   display: block;
    margin: 10px 0;
    height: 0px;
}

/* KF & QUERIES */

@keyframes rotating {
  0%  { transform: rotate(0);}
  100%{ transform: rotate(1turn);}
}


@media (max-width: 1001px) {
    .hero-overlay{
        position: relative;
    }
   
    .shop-info{
        right: calc(2rem + 8px);
    }
    .product-title{
        font-size: 12px;
    }
}

@media (max-width: 620px) {

    :root .nav-toggle{
        right: 1rem;
    }

    .preview-info{
        padding: 0px;
    }

    main{
        padding: 80px 0.5rem;
    }
    .post-preview {
        padding: 4px;
    }
    
    .filter-wrapper{
        padding: 8px;
    }
    .posts {
        margin: -8px 0;
        position: relative;
        left: calc(50% - 50vw + 2px);
        width: calc(100vw - 4px);
    }

    .filter-btn{
        font-size: 10px;
    }
    
    h2.shop-name{
        font-size: 1.5rem;
    }

    .info-box{
        font-size: 13px;
    }
    
    .product-price, .product-price::after {
        font-size: 0.675rem;
    }

    .section-inner.menus{
        max-width: calc(100% - (2rem));
        width: 100%;
    }

    .shop-teaser{
        background: rgba(255, 255, 255, 0.2);
    }

    .hero img{
        filter: grayscale(0.5);
    }

    .shop-info h6{
        font-size: 0.75rem;
    }

    p{
        font-size: 12px;
    }

    .shop-info {
        right: calc(1rem + 8px);
    }
    .entry-content p {
        margin-bottom: 0px; 
    }
}

@media (max-width: 480px){
    .shop-teaser{
        left: 1rem;
        max-width: calc(100% - 2rem);
    }
    .site-nav li{
        margin-left: 0.5rem;
    }

    .site-nav .menus{
        padding-bottom: 20px;
    }
    .site-header .custom-logo svg{
        width: 5rem;
        height: 5rem;
    }
}