
/* ========================================
   NZ TESTING COLORS - not in global palette
https://www.canva.com/colors/color-wheel/
   ======================================== */

/*
global colors  orange link hover   #ff9e21
*/


/* ═══════════════════════════════════════
   :ROOT   20260310 cai
═══════════════════════════════════════ */


:root {
    /* Brand colors */
    --nz-orange: #F48024;
    --nz-red:    #C0392B;
    --nz-blue:   #324B6F;

    /* Fluid heading sizes: clamp(min, preferred, max) */
    --nz-h1: clamp(1.8rem, 3.5vw, 2.8rem);
    --nz-h2: clamp(1.5rem, 2.8vw, 2.2rem);
    --nz-h3: clamp(1.3rem, 2.2vw, 1.8rem);
    --nz-h4: clamp(1.1rem, 1.8vw, 1.5rem);
}

/* Heading styles H1 H2 etc */


/* Border on the h3 inside the nz-heading widget */
.nz-heading .elementor-heading-title {
    border-bottom: 2px solid #126FE6 !important;
    padding-bottom: 0.5em !important;
    letter-spacing: 0.03em !important;
}

.nz-heading h1.elementor-heading-title { font-size: var(--nz-h1) !important; }
.nz-heading h2.elementor-heading-title { font-size: var(--nz-h2) !important; }
.nz-heading h3.elementor-heading-title { font-size: var(--nz-h3) !important; }
.nz-heading h4.elementor-heading-title { font-size: var(--nz-h4) !important; }


/* logo text */
.jet-logo__text {
    font-family: 'Georgia', 'Times New Roman', serif;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #1a3a5c;
    text-shadow: none;
    position: relative;
    padding-bottom: 4px;
    display: inline-block;
    transition: color 0.3s ease;
    line-height: 1.2;
    white-space: nowrap;
}

.jet-logo__text::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(to right, var(--nz-orange), transparent);
    border-radius: 2px;
    transition: height 0.3s ease;
}

.jet-logo__text:hover {
    color: #c8a84b;
}

.jet-logo__text:hover::after {
    height: 2.5px;
}

/* Mobile: break into 2 lines, reduce size, add space under text */
@media (max-width: 768px) {
    .jet-logo__text {
        font-size: 1.05rem;
        letter-spacing: 0.06em;
        padding-bottom: 6px; /* ← increased from 1px to 6px for more space */
        line-height: 1.1;
        white-space: normal;
        word-break: break-word;
        margin-right: 8px;
    }
    .jet-logo__text::after {
        height: 1.2px;
        bottom: -2px; /* optional: nudge line slightly lower if needed */
    }
    .jet-logo__text:hover::after {
        height: 1.5px;
    }
}









/* ═══════════════════════════════════════
   HEADER  20260309 cai
═══════════════════════════════════════ */
/*top bar balanced*/

#jet-theme-core-header .nz-topbar.e-con-full > .e-con-inner {
    max-width: 1190px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
}

/*trying to get it centred*/
.elementor-element.nz-navi-container {
    flex-grow: 1 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.elementor-element.nz-navi-container .elementor-widget-wrap {
    justify-content: center !important;
    width: 100% !important;
}

/*logo stick to navigation*/
/* Logo container */
.elementor-element.nz-logo-container {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    align-self: center !important;
}

/* Logo image size */
.nz-logo-container img {
    max-width: 100px !important;
    height: auto !important;
}



/* ═══════════════════════════════════════
   HERO - Homepage   20260310
═══════════════════════════════════════ */
.nz-hero-hp {
    min-height: 50vh !important;
}

@media (max-width: 768px) {
    .nz-hero-hp {
        min-height: 40vh !important;
    }
}

@media (max-width: 639px) {
    .nz-hero-hp {
        min-height: 30vh !important;
    }
}


/********************************************
 * CTA BUTTON WP Menu – GHOST STYLE + ICON
 ********************************************/

/* BUTTON CTA - Basic style */
.menu-item-link-top.nz-menu-cta {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;

    margin-left: 24px !important;
    padding: 8px 18px !important;

    background: transparent !important;
    color: #004a80 !important;
    border: 2px solid rgba(0, 74, 128, 0.45) !important;
    border-radius: 6px !important;

    font-weight: 600;
    text-decoration: none !important;
    transition: all 0.25s ease;
    line-height: 1 !important; /* perfekte vertikale Ausrichtung */
}



/* Hover-Effekt */
.menu-item-link-top.nz-menu-cta:hover {
    background: rgba(0, 74, 128, 0.06) !important;
    border-color: rgba(0, 74, 128, 0.65) !important;
    color: #004a80 !important;
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(0,0,0,0.06);
    transition: all 0.2s ease; /* Optional: smooth hover animation */
}



/* Phone Icon before Menu CTA Link Text fontawesome 20260311 */
/*[PM]*/
.has-phone-icon > a .jet-nav-link-text::before {
  font-family: "Font Awesome 5 Free", "Font Awesome 6 Free";
  font-weight: 900;
  content: "\f095";  /* fa-phone */
  margin-right: 3px;
  color:var(--nz-red);
}


/********************************************
 * NORMALE MENÜ-LINKS – TYPOGRAFIE
 ********************************************/

/* Normale Menülinks kräftiger */
.elementor-element.nz-navi-container .menu-item-link-top:not(.nz-menu-cta) {
    font-weight: 700 !important;
    color: var(--nz-blue) !important;
}

/* Hover subtil */
.elementor-element.nz-navi-container .menu-item-link-top:not(.nz-menu-cta):hover {
    color: var(--nz-orange) !important;
}


/* ═══════════════════════════════════════
   MOBILE HEADER
═══════════════════════════════════════ */
@media (max-width: 768px) {

    /* Reduce header size */
    .nz-logo-container img {
        max-width: 70px !important;
    }

    .nz-header.e-con {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
    }
}

@media (max-width: 639px) {

    /* CTA button container */
    .menu-item-link-top.nz-menu-cta {
        position: static !important;
        left: 0 !important;
        margin-left: 0 !important;
        width: 100% !important;
        display: flex !important;
    }

    /* CTA link */
    .menu-item-link-top.nz-menu-cta > a {
        width: 100% !important;
        text-align: left !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 6px !important;
        white-space: nowrap !important;
}
    
/* JetNav mobile menu items */
    #jet-theme-core-header .jet-nav__item {
        width: 100% !important;
    }
}


/* ============================================
   Leistungen QB - Service Boxes + Items 20260308
   ============================================ */

/* Outer row container */
.container-services-qb {
    gap: 2rem;
}

/* Individual service box */
.container-sp,
.container-di,
.container-ch {
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* Kill gap between items - targets the wrapper */
.container-sp .jet-listing-grid__items,
.container-di .jet-listing-grid__items,
.container-ch .jet-listing-grid__items {
    gap: 0 !important;
    row-gap: 0 !important;
}

/* Kill padding inside each item - targets individual items */
.container-sp .jet-listing-grid__item,
.container-di .jet-listing-grid__item,
.container-ch .jet-listing-grid__item {
    padding: 0 !important;
    margin: 0 !important;
}

/* Kill theme p margin on JetEngine content */
p.jet-listing-dynamic-field__content {
    margin: 0 !important;
}

/* Each list item */
.leistung-qb-item-title {
    font-size: 0.95rem;
    line-height: 1.20;
    padding: 0.1rem 0 0.1rem 1.2rem;
    margin: 0 !important;
    color: var(--e-global-color-text);
    position: relative;
    border-bottom: 1px solid #f0f0f0;
}

.leistung-qb-item-title:last-child {
    border-bottom: none;
}

/* Bullet icon */
.leistung-qb-item-title::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--e-global-color-primary);
}

/* Strengthened override with .elementor for specificity */
.container-sp .elementor .leistung-qb-item-title,
.container-di .elementor .leistung-qb-item-title,
.container-ch .elementor .leistung-qb-item-title {
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
}



/* images of each ServiceBox QB version 20260308*/

.container-sp .elementor-widget-image img,
.container-di .elementor-widget-image img,
.container-ch .elementor-widget-image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    object-position: center;
    border-radius: 4px;
}


/*CONTAINER divers -  DISTANCE STUFF*/

/*NZ first container distance from header*/
/*oldschool .nz-top-container { margin-top: 40px; } */
/*Scales smoothly with viewport width.
Never goes below 24px and never above 64px.
The middle value 6vw gives you the fluid growth.
Adjust the three numbers to your taste, e.g. clamp(32px, 5vw, 80px) for more space on large screens.
*/

/*for general first containers*/
.nz-top-container {
	margin-top: clamp(24px, 6vw, 64px);
}

/*for impressum*/
.nz-container-single {
	margin: clamp(24px, 6vw, 64px) clamp(16px, 4vw, 32px);
}


/*kontakt page special clamp top and bottom only*/

.nz-section-01{
	margin: clamp(24px, 6vw, 64px) 0;
}



/* ═══════════════════════════════════════
   TEAM PAGE - tieraerzte-qb-tpl-TeamPage new 20260321
═══════════════════════════════════════ */

/* Card base style */
.nz-team-card {
    background-color: #f8f9fb !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
    padding: 2rem !important;
    margin-bottom: 2rem !important;
}

/* Photo: constrain size */
.nz-team-card .elementor-widget-jet-listing-dynamic-image img {
    width: 100% !important;
    max-width: 280px !important;
    border-radius: 8px !important;
    object-fit: cover !important;
}

/* Alternating layout — even cards flip photo to right */
/* Alternating layout */
.jet-listing-grid__item:nth-child(even) .nz-team-card {
    flex-direction: row-reverse !important;
}

.nz-team-card:hover {
    transform: none !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
}





/* ========================================
   Partner links + notfälle 
   ======================================== */


/* Partner link Card design 20260307 */
.partner-link {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.5rem;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    text-decoration: none;
    color: inherit;
}
.partner-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    border-color: #ccc;
}
.partner-links-thumbnails img {
    object-fit: cover;
    object-position: top center;
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 6px;
    flex-shrink: 0;
}
.partner-link h3 {
    margin: 0 0 0.5rem 0;
    font-size: 1.1rem;
    color: var(--e-global-color-text);
}
.partner-link p {
    margin: 0;
    color: #7f8c8d;
    font-size: 0.95rem;
    line-height: 1.5;
}





/* ========================================
   VETOS.LU - SERVICE BOXES STYLING
   Targets ONLY the service boxes container (ID: 4a92d91)
   ======================================== */
/*.nz-service-boxes-container - (outer container of 3 boxes)  */



/* Service items - MINIMAL spacing */
.nz-service-boxes-container .jet-listing-dynamic-field__content {
    position: relative;
    padding-left: 20px;
    margin-bottom: 5px; /* Changed from 2px to 0px */
    line-height: 1.1; /* Reduced from 1.2 to 1.1 */
}

/* Bullet point */
.nz-service-boxes-container .jet-listing-dynamic-field__content::before {
    content: "•";
    position: absolute;
    left: 0;
    color: #333;
    font-size: 16px;
}

/* Remove ALL spacing */
.nz-service-boxes-container .jet-listing-grid__item {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.nz-service-boxes-container .jet-listing-dynamic-field {
    margin: 0 !important;
    padding: 0 !important;
}

.nz-service-boxes-container .jet-listing-grid__item-inner {
    padding: 0 !important;
    margin: 0 !important;
}

.nz-service-boxes-container .elementor-widget-wrap {
    gap: 0 !important;
}




/* Opening Hours style*/
/* Target the widget + your table */
.custom-opening-hours .container {
  max-width: 800px;
  margin: 0 auto;
  padding: 0;
}

.custom-opening-hours .opening-hours-table {
  font-family: inherit;
  max-width: 100%;
  border-collapse: collapse;
  width: 100%;
  margin: 10px auto;
  box-shadow: none;
}

.custom-opening-hours .opening-hours-table th,
.custom-opening-hours .opening-hours-table td {
  padding: 8px 12px;
  text-align: left;
  border-bottom: 1px solid #eee;
}

.custom-opening-hours .opening-hours-table th {
  background-color: #f2f2f2;
  font-weight: bold;
  font-size: 1.1rem;
  padding: 8px 12px;
}

.custom-opening-hours .closing {
  color: #d32f2f;
  font-weight: bold;
  font-size: 0.95rem;
}

/* Force "Öffnungszeiten" to left */
.custom-opening-hours .opening-hours-table th:first-child {
  text-align: left !important;
}

/* Optional: Reduce table width to match content */
.custom-opening-hours .opening-hours-table {
  width: auto !important;
  max-width: 100%;
}











/* ========================================
   SNIPPETS
   grouped some stand alone snippets - to be checked
   ======================================== */


/*#####   NZ - blue border*/
/* Only target dynamic images on vet single pages */

.single-tieraerzte .jet-listing-dynamic-image__img {
  border: none !important;
  border-radius: 12px !important;
  box-shadow: -20px 25px 0px 5px #116ADD !important;
  transition: box-shadow 0.3s ease !important;
}
.jet-listing-dynamic-image__img:hover {
  box-shadow: -12px 8px 28px rgba(0, 0, 0, 0.4) !important;
}




/* ========================================
   FOOTER MAIN CONTAINER  20260311
======================================== */
#nz-footer-main {
    padding: 40px 20px 20px 20px !important;
    margin-top: 4rem;
}

/* ========================================
   TEXT STYLES — ALL WHITE
======================================== */
#nz-footer-main,
#nz-footer-main p,
#nz-footer-main h1,
#nz-footer-main h2,
#nz-footer-main h3,
#nz-footer-main h4,
#nz-footer-main h5,
#nz-footer-main h6,
#nz-footer-main span,
#nz-footer-main div {
    color: #ffffff !important;
}

/* ========================================
   LINK STYLES — ALL STATES
======================================== */
#nz-footer-main a {
    color: #ffffff !important;
    text-decoration: none !important;
}

#nz-footer-main a:visited {
    color: #ffffff !important;
}

#nz-footer-main a:hover,
#nz-footer-main a:focus {
    color: #f39c12 !important; /* Orange accent */
    text-decoration: underline !important;
}

#nz-footer-main a:active {
    color: #f39c12 !important;
}

/* ========================================
   PHONE/EMAIL LINKS
======================================== */
#nz-footer-main a[href^="tel:"],
#nz-footer-main a[href^="mailto:"] {
    color: #ffffff !important;
}

#nz-footer-main a[href^="tel:"]:hover,
#nz-footer-main a[href^="mailto:"]:hover {
    color: #f39c12 !important;
}

/* ========================================
   ICON STYLES
======================================== */
/* Icon list icons (phone, fax, etc.) */
#nz-footer-main .elementor-icon-list-icon i {
    color: #ffffff !important;
}

#nz-footer-main .elementor-icon-list-icon svg {
    fill: #ffffff !important;
}

/* Social  */

#nz-footer-main .elementor-social-icon {
    background-color: rgba(255, 255, 255, 0.1) !important;
}

#nz-footer-main .elementor-social-icon i {
    color: #ffffff !important;
    fill: #ffffff !important; /* ← Added: Ensures SVG icons also get white fill */
}

#nz-footer-main .elementor-social-icon svg {
    fill: #ffffff !important; /* ← Added: Directly targets SVG elements */
}

#nz-footer-main .elementor-social-icon:hover {
    background-color: var(--nz-orange) !important;
}

/* General icons */
#nz-footer-main .elementor-icon,
#nz-footer-main i {
    color: #ffffff !important;
}

#nz-footer-main .elementor-icon:hover,
#nz-footer-main i:hover {
    color: #f39c12 !important;
}

/*test social*/
#nz-footer-main .elementor-social-icon i {
    color: #ffffff !important;
    fill: #ffffff !important;
}

#nz-footer-main .elementor-social-icon svg {
    fill: #ffffff !important;
}



/* ═══════════════════════════════════════
   ANIMATED PAW BACKGROUND - Global
═══════════════════════════════════════ */

/* Keep header and footer above paws */
#jet-theme-core-header {
    position: relative;
    z-index: 100;
}

#jet-theme-core-footer {
    position: relative;
    z-index: 100;
}

body::after {
    content: "";
    position: fixed;
    bottom: -5%;
    right: -5%;
    width: 400px;
    height: 400px;
    background-image: url('https://vetos.lu/wp-content/uploads/2026/03/paw02.svg');
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 1;
    animation: nz-paw-right 7s ease-in-out infinite;
}

body::before {
    content: "";
    position: fixed;
    top: 25vh;
    left: 2vw;
    width: clamp(80px, 12vw, 150px);
    height: clamp(80px, 12vw, 150px);
    background-image: url('https://vetos.lu/wp-content/uploads/2026/03/paw02.svg');
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 1;
    animation: nz-paw-left 9s ease-in-out infinite reverse;
}

@keyframes nz-paw-right {
    0%   { transform: scale(1) rotate(-10deg); opacity: 0.01; filter: hue-rotate(0deg); }
    50%  { transform: scale(1.12) rotate(5deg); opacity: 0.08; filter: hue-rotate(20deg); }
    100% { transform: scale(1) rotate(-10deg); opacity: 0.01; filter: hue-rotate(0deg); }
}

@keyframes nz-paw-left {
    0%   { transform: scale(1) rotate(10deg); opacity: 0.01; filter: hue-rotate(0deg); }
    50%  { transform: scale(1.08) rotate(-5deg); opacity: 0.06; filter: hue-rotate(-20deg); }
    100% { transform: scale(1) rotate(10deg); opacity: 0.01; filter: hue-rotate(0deg); }
}

@media (max-width: 768px) {
    body::after {
        width: 200px;
        height: 200px;
        bottom: -2%;
        right: -2%;
    }

    body::before {
        width: 150px;
        height: 150px;
        top: 20vh;
        left: 1vw;
    }
}

@media (max-width: 639px) {
    body::after,
    body::before {
        animation: nz-paw-simple 7s ease-in-out infinite !important;
    }
}

@keyframes nz-paw-simple {
    0%   { transform: scale(1) rotate(-10deg); opacity: 0.01; }
    50%  { transform: scale(1.1) rotate(5deg); opacity: 0.06; }
    100% { transform: scale(1) rotate(-10deg); opacity: 0.01; }
}