/* Page spacing (nav is fixed, styles.css doet body padding-top al) */
.dienstenPage{
    padding: 54px 0 70px;
  }
  
  /* Header */
  .dienstenHeader{
    margin: 10px 0 26px;
  }
  
  .dienstenTitle{
    margin: 0;
    font-size: 54px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: rgba(255,255,255,0.94);
    filter:
      drop-shadow(3px 3px 1px rgba(0,0,0,0.45))
      drop-shadow(3px 6px 6px rgba(0,0,0,0.28));
  }
  
  .dienstenSub{
    margin: 10px 0 0;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: rgba(255,255,255,0.80);
  }
  
  /* Grid layout */
  .dienstenGrid{
    display: grid;
    gap: 26px;
  }
  
  .dienstenRowTop{
    display: grid;
    grid-template-columns: 1.75fr 0.85fr;
    gap: 26px;
  }
  
  /* Card */
  .dienstCard{
    position: relative;
    display: block;
  
    border: 0;
    background: #000;              /* voorkomt “halo” bij sommige browsers */
    border-radius: 28px;
    overflow: hidden;
  
    box-shadow: 0 20px 70px rgba(0,0,0,0.55);
  
    transform: translateY(0);
    transition: transform 180ms ease, box-shadow 220ms ease;
    -webkit-tap-highlight-color: transparent;
  }
  
  /* Top row langer (jij wilde die hoger) */
  .cardWide,
  .cardNarrow{
    height: clamp(360px, 38vw, 540px);
  }
  
  /* Full rows */
  .cardFull{
    height: clamp(260px, 30vw, 420px);
  }
  
  /* Image: cover, maar crop die ingebakken “rand” weg */
  .dienstImg{
    width: 100%;
    height: 100%;
    display: block;
    vertical-align: middle;
  
    object-fit: cover;
    object-position: center;
  
    /* Dit is de echte fix tegen “zwarte randen in de PNG” */
    transform: scale(1.04);
    transform-origin: center;
  
    /* Chrome anti-alias / seam fixes */
    backface-visibility: hidden;
    -webkit-transform: translateZ(0) scale(1.04);
  
    transition: transform 260ms ease, filter 260ms ease;
    will-change: transform;
  }
  
  /* Per card tuning (mag je aanpassen naar smaak) */
  .cardNarrow .dienstImg{
    object-position: 50% 20%;
  }
  
  .cardWide .dienstImg{
    object-position: 35% 50%;
  }
  
  /* Tag pill: altijd netjes binnen de image, nooit onderaan eruit */
  .dienstTag{
    position: absolute;
    left: 18px;
    bottom: 18px;
  
    display: inline-flex;
    align-items: center;
    justify-content: center;
  
    padding: 10px 18px;
    border-radius: 999px;
  
    background: color-mix(in srgb, var(--green) 85%, #000);
    border: 1px solid rgba(255,255,255,0.10);
  
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: rgba(255,255,255,0.92);
  
    box-shadow:
      0 14px 30px rgba(0,0,0,0.55),
      inset 0 1px 0 rgba(255,255,255,0.10);
  
    /* extra safety tegen rare baseline layout dingen */
    max-width: calc(100% - 36px);
    white-space: nowrap;
  }
  
  /* Hover */
  .dienstCard:hover{
    transform: translateY(-4px);
    box-shadow: 0 26px 85px rgba(0,0,0,0.65);
  }
  
  .dienstCard:hover .dienstImg{
    /* we zitten al op 1.04, dus klein extra voor premium zoom */
    transform: scale(1.07);
    -webkit-transform: translateZ(0) scale(1.07);
    filter: saturate(1.06) contrast(1.06);
  }
  
  /* Focus: kill browser outline zodat je geen “rand” krijgt */
  .dienstCard:focus,
  .dienstCard:focus-visible{
    outline: none;
  }
  
  /* Als je wel accessibility wil maar geen harde ring, gebruik een zachte glow */
  .dienstCard:focus-visible{
    box-shadow:
      0 26px 85px rgba(0,0,0,0.65),
      0 0 0 6px rgba(46,117,64,0.14);
  }
  
  /* Responsive */
  @media (max-width: 980px){
    .dienstenRowTop{
      grid-template-columns: 1fr;
    }
  
    .cardWide,
    .cardNarrow,
    .cardFull{
      height: 300px;
    }
  }
  
  @media (prefers-reduced-motion: reduce){
    .dienstCard,
    .dienstImg{
      transition: none;
    }
  }
  