/* =======================================================================
   Tommy Booking Support — eigen opmaak in de huisstijl van Dorpscamping
   Groede.

   We OVERSCHRIJVEN alleen kleuren, lettertypen en vormen van de bestaande
   tbs-* klassen; we vervangen of kopiëren Tommy's eigen stylesheet NIET
   (Tommy werkt die regelmatig bij i.v.m. updates — zie hun documentatie).

   Alles is gescoped onder #TommyBookingSupport. Tommy injecteert z'n eigen
   stylesheet ná het laden in de <head>, maar onze ID-selectors (0,1,1,0)
   winnen van hun class-selectors (0,0,1,0) ongeacht de laadvolgorde. Waar
   Tommy inline-styles of zware regels zet (kalenderdagen) gebruiken we
   aanvullend !important.

   Huisstijl  woud #394F26 · gras #6CAA2E · zon #FFDC00 · bloei #DDDF4E
              duinen #F9F2A7 · meer #AAD5B7
   ======================================================================= */

#TommyBookingSupport {
  --woud:   #394F26;
  --gras:   #6CAA2E;
  --zon:    #FFDC00;
  --bloei:  #DDDF4E;
  --duinen: #F9F2A7;
  --meer:   #AAD5B7;

  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
               'Helvetica Neue', Arial, sans-serif;
  color: #3a3a3a;
}

/* Koppen --------------------------------------------------------------- */
#TommyBookingSupport h1,
#TommyBookingSupport h2,
#TommyBookingSupport h3,
#TommyBookingSupport h4,
#TommyBookingSupport legend {
  color: var(--woud);
  font-weight: 600;
}

/* Links / accenten — standaard donkergroen (woud); gras alleen als hover.
   !important omdat Tommy de links (incl. kalenderdagen) met kracht kleurt. */
#TommyBookingSupport a            { color: var(--woud) !important; }
#TommyBookingSupport a:hover,
#TommyBookingSupport a:focus       { color: var(--gras) !important; }

/* Knoppen -------------------------------------------------------------- */
/* Tommy zet zelf padding/afmetingen; wij raken alleen kleur/vorm aan. */
#TommyBookingSupport .tbs-btn {
  border-radius: 999px;
  font-weight: 600;
  border: 1px solid transparent;
  transition: background-color .2s ease, color .2s ease,
              box-shadow .2s ease, transform .2s ease;
}
#TommyBookingSupport .tbs-btn:hover { transform: translateY(-1px); }

/* Primaire actie (volgende stap / bevestigen) — GEEL (zon) met donkergroene
   tekst voor leesbaar contrast (logo-look); hover iets donkerder geel. */
#TommyBookingSupport .tbs-btn-primary {
  background-color: var(--zon) !important;
  border-color: var(--zon) !important;
  color: var(--woud) !important;
}
#TommyBookingSupport .tbs-btn-primary:hover,
#TommyBookingSupport .tbs-btn-primary:focus {
  background-color: #ecc800 !important;
  border-color: #ecc800 !important;
  color: var(--woud) !important;
}

/* Bevestigende / selecteer / toevoegen knoppen — zelfde gele actiestijl */
#TommyBookingSupport .tbs-btn-success,
#TommyBookingSupport .tbs-btn-selecteer,
#TommyBookingSupport .tbs-btn-toevoegen,
#TommyBookingSupport .tbs-btn-kies-aantal,
#TommyBookingSupport .tbs-btn-signin {
  background-color: var(--zon) !important;
  border-color: var(--zon) !important;
  color: var(--woud) !important;
}
#TommyBookingSupport .tbs-btn-success:hover,
#TommyBookingSupport .tbs-btn-selecteer:hover,
#TommyBookingSupport .tbs-btn-toevoegen:hover,
#TommyBookingSupport .tbs-btn-kies-aantal:hover,
#TommyBookingSupport .tbs-btn-signin:hover {
  background-color: #ecc800 !important;
  border-color: #ecc800 !important;
  color: var(--woud) !important;
}

/* Secundaire / info-knoppen (o.a. kalendernavigatie) */
#TommyBookingSupport .tbs-btn-info,
#TommyBookingSupport .tbs-btn-default {
  background-color: #fff;
  border-color: rgba(57, 79, 38, .2);
  color: var(--woud);
}
#TommyBookingSupport .tbs-btn-info:hover,
#TommyBookingSupport .tbs-btn-default:hover {
  background-color: var(--meer);
  border-color: var(--woud);
  color: var(--woud);
}

/* Verwijderen / annuleren — ingetogen, geen schreeuwend rood */
#TommyBookingSupport .tbs-btn-danger,
#TommyBookingSupport .tbs-btn-verwijder,
#TommyBookingSupport .tbs-btn-verwijderen,
#TommyBookingSupport .tbs-btn-annuleren,
#TommyBookingSupport .tbs-btn-reset {
  background-color: #fff;
  border-color: rgba(57, 79, 38, .2);
  color: #9a3b2e;
}
#TommyBookingSupport .tbs-btn-danger:hover,
#TommyBookingSupport .tbs-btn-verwijder:hover,
#TommyBookingSupport .tbs-btn-verwijderen:hover,
#TommyBookingSupport .tbs-btn-annuleren:hover,
#TommyBookingSupport .tbs-btn-reset:hover {
  background-color: #f6e9e6;
  color: #7d2d22;
}

/* Formuliervelden ------------------------------------------------------ */
#TommyBookingSupport .tbs-form-control {
  border: 1px solid rgba(57, 79, 38, .2);
  border-radius: 12px;
  color: var(--woud);
}
/* iOS Safari zoomt automatisch in zodra een veld bij focus een lettergrootte
   onder 16px heeft, waardoor de pagina "losschiet". Minimaal 16px op alle
   invoervelden voorkomt die zoom zonder pinch-zoom te blokkeren. */
#TommyBookingSupport input,
#TommyBookingSupport select,
#TommyBookingSupport textarea,
#TommyBookingSupport .tbs-form-control {
  font-size: 16px;
}
#TommyBookingSupport .tbs-form-control:focus {
  border-color: var(--gras);
  box-shadow: 0 0 0 3px rgba(108, 170, 46, .25);
  outline: none;
}
#TommyBookingSupport .tbs-label,
#TommyBookingSupport label { color: var(--woud); }

/* Validatie */
#TommyBookingSupport .tbs-has-error .tbs-form-control { border-color: #c2553f; }
#TommyBookingSupport .tbs-text-danger,
#TommyBookingSupport .tbs-required { color: #c2553f; }

/* Kalender ------------------------------------------------------------- */
#TommyBookingSupport .tbs-calendar { border-radius: 14px; overflow: hidden; }

/* Kalender-tekst minder bold (normaal gewicht) */
#TommyBookingSupport .tbs-calendar .tbs-day,
#TommyBookingSupport .tbs-calendar .tbs-day div { font-weight: 400 !important; }

/* Beschikbare (nog niet geselecteerde) dag.
   Tommy vult deze als een tegeltje met een LICHTGROENE ACHTERGROND (#5db862) en
   witte tekst in een <div> (selector: .tbs-calendar .tbs-day.tbs-beschikbaar).
   Wij maken het vlak donkergroen (woud) in de huisstijl; de tekst blijft wit.
   Belangrijk: het was de ACHTERGROND die lichtgroen was, niet de tekstkleur. */
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-beschikbaar,
#TommyBookingSupport .tbs-day.tbs-beschikbaar {
  background-color: var(--woud) !important;
  cursor: pointer;
}
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-beschikbaar div,
#TommyBookingSupport .tbs-day.tbs-beschikbaar div {
  color: #fff !important;
}
/* Hover — iets lichter groen (gras) voor feedback */
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-beschikbaar:hover,
#TommyBookingSupport .tbs-day.tbs-beschikbaar:hover {
  background-color: var(--gras) !important;
}

/* Vandaag — alleen een ring in gras, geen vulling (markering, geen selectie).
   Tommy's klassenaam verschilt soms per versie; beide afgedekt. */
#TommyBookingSupport .tbs-vandaag,
#TommyBookingSupport .tbs-today {
  box-shadow: inset 0 0 0 2px var(--gras) !important;
  color: var(--woud) !important;
  font-weight: 500;
  border-radius: 999px;
}

/* Alleen-aankomst / alleen-vertrek (changeover-dagen). Tommy maakt deze groen
   (#5cb85c) met een schuine :before-driehoek (#43a538). Wij maken ze donkergroen
   (woud), zoals een volledig beschikbare dag; de schuine indicator houden we in
   een net iets donkerder groen zodat hij subtiel zichtbaar blijft. */
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-aankomstdag,
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-vertrekdag,
#TommyBookingSupport .tbs-day.tbs-aankomstdag,
#TommyBookingSupport .tbs-day.tbs-vertrekdag {
  background-color: var(--woud) !important;
}
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-aankomstdag:before,
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-vertrekdag:before {
  background-color: var(--gras) !important; /* schuine indicator in huisstijl-gras */
}
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-aankomstdag div,
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-vertrekdag div,
#TommyBookingSupport .tbs-day.tbs-aankomstdag div,
#TommyBookingSupport .tbs-day.tbs-vertrekdag div {
  color: #fff !important;
}

/* Geselecteerde dag (de gekozen datum) — GEEL (zon). Ná de regels hierboven,
   zodat geel wint als een gekozen dag óók aankomst/vertrek/beschikbaar is. */
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-selected,
#TommyBookingSupport .tbs-day.tbs-selected {
  background-color: var(--zon) !important;
}
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-selected:hover,
#TommyBookingSupport .tbs-day.tbs-selected:hover {
  background-color: var(--zon) !important;
}
/* Getal donkergroen op geel — leesbaar contrast, logo-look */
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-selected div,
#TommyBookingSupport .tbs-day.tbs-selected div {
  color: var(--woud) !important;
}

/* Nachten ertussen — zacht zandgeel (duinen), zelfde gele familie als de selectie */
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-highlight,
#TommyBookingSupport .tbs-day.tbs-highlight {
  background-color: var(--duinen) !important;
}
#TommyBookingSupport .tbs-calendar .tbs-day.tbs-highlight div,
#TommyBookingSupport .tbs-day.tbs-highlight div {
  color: var(--woud) !important;
}

/* Bezet / niet beschikbaar / verleden */
#TommyBookingSupport .tbs-bezet,
#TommyBookingSupport .tbs-nietbeschikbaar,
#TommyBookingSupport .tbs-aankomstdag-bezet,
#TommyBookingSupport .tbs-vertrekdag-bezet {
  color: #b8b8b8 !important;
}
#TommyBookingSupport .tbs-verleden,
#TommyBookingSupport .tbs-nietinmaand { color: #cfcfcf !important; }

/* Feestdag-accent — zon bewaard voor dit ene accent */
#TommyBookingSupport .tbs-feestdag { color: var(--woud); font-weight: 600; }

/* Prijzen & totalen ---------------------------------------------------- */
#TommyBookingSupport .tbs-prijs,
#TommyBookingSupport .tbs-subtotaal,
#TommyBookingSupport .tbs-totaal,
#TommyBookingSupport .tbs-totaalprijs { color: var(--woud); }
#TommyBookingSupport .tbs-totaalprijs { font-weight: 700; }

/* Mobiel totaal-blok ("Totaal boekingkosten", het uitklapbare vlak).
   Tommy zet op smal scherm (<=991px) een donkergrijs vlak (#666) met witte
   tekst op .tbs-totaal — op desktop is dat blok gewoon wit. Wij trekken het
   mobiel gelijk: witte achtergrond, donkergroene tekst (zoals desktop). */
@media screen and (max-width: 991px) {
  #TommyBookingSupport .tbs_kassabon .tbs_totaal_overzicht .tbs-totaal {
    background: #fff !important;
    color: var(--woud) !important;
  }
}

/* Korting valt op in een warm rood-bruin */
#TommyBookingSupport .tbs-actieprijs,
#TommyBookingSupport .tbs-actie { color: #c2553f; }
#TommyBookingSupport .tbs-van-prijs,
#TommyBookingSupport .tbs-voor-prijs { color: #8a8a8a; }

/* Meldingen ------------------------------------------------------------ */
#TommyBookingSupport .tbs-alert-info {
  background-color: rgba(170, 213, 183, .25);
  border-color: var(--meer);
  color: var(--woud);
  border-radius: 12px;
}

/* Actieve stap / navigatie -------------------------------------------- */
#TommyBookingSupport .tbs-active,
#TommyBookingSupport .tbs-nav .tbs-active { color: var(--woud); font-weight: 600; }

/* Modal ---------------------------------------------------------------- */
#TommyBookingSupport .tbs-modal-content { border-radius: 18px; }
#TommyBookingSupport .tbs-modal-title   { color: var(--woud); }

/* Mobiel: kalenders netjes onder elkaar i.p.v. over elkaar ------------- */
@media screen and (max-width: 500px) {
  #TommyBookingSupport .tbs_kalenders .tbs-calendar {
    display: block;
    float: none;
    width: 100%;
    margin-bottom: 1rem;
  }
}
