/* JD Grootkeuken Service — gedeelde site-stijlen */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: #F7F9FB; }
/* iOS Safari: geen automatische tekstvergroting bij draaien naar liggend */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-family: 'IBM Plex Sans', sans-serif; color: #1C2B3A; -webkit-font-smoothing: antialiased; }
a { color: #17497B; }
a:hover { color: #C24A24; }
input::placeholder, textarea::placeholder { color: #93A5B5; }

/* Topbar spoedlink */
.lnk-spoed { color: #fff; text-decoration: none; font-weight: 600; }
.lnk-spoed:hover { color: #7EC8E8; }

/* Header-belknop: hét vaste belpunt van de site (sticky, dus altijd in beeld).
   Op desktop met volledig nummer; op mobiel alleen het telefoonicoon,
   anders wordt de header te hoog. */
.btn-header-bel { display: inline-flex; align-items: center; gap: 8px; }
.btn-header-bel .bel-icon { display: none; font-size: 18px; line-height: 1; }
@media (max-width: 860px) {
  .btn-header-bel { padding: 10px 14px !important; }
  .btn-header-bel .bel-tekst { display: none; }
  .btn-header-bel .bel-icon { display: inline; }
}

/* Navigatie */
.nav-link { text-decoration: none; font-weight: 500; font-size: 15.5px; color: #1C2B3A; padding-bottom: 3px; border-bottom: 2px solid transparent; }
.nav-link:hover { color: #17497B; border-bottom-color: #7EC8E8; }
.nav-link.active { font-weight: 600; color: #17497B; border-bottom-color: #7EC8E8; }

/* Knoppen */
.btn-primary { text-decoration: none; font-weight: 700; color: #fff; background: #17497B; border-radius: 8px; }
.btn-primary:hover { color: #fff; background: #0F2C4C; }
.btn-outline { text-decoration: none; font-weight: 600; color: #17497B; background: #fff; border: 1.5px solid #C7D6E2; border-radius: 8px; }
.btn-outline:hover { color: #17497B; border-color: #17497B; }
.btn-light { text-decoration: none; font-weight: 700; color: #0F2C4C; background: #7EC8E8; border-radius: 8px; }
.btn-light:hover { color: #0F2C4C; background: #A3DAF0; }
.btn-ghost { text-decoration: none; font-weight: 600; color: #fff; border: 1.5px solid rgba(255,255,255,0.5); border-radius: 8px; }
.btn-ghost:hover { color: #fff; border-color: #fff; background: rgba(255,255,255,0.08); }
.btn-form { font-family: 'IBM Plex Sans', sans-serif; font-weight: 700; font-size: 16px; color: #fff; background: #17497B; border: none; border-radius: 8px; padding: 15px 32px; cursor: pointer; }
.btn-form:hover { background: #0F2C4C; }
.btn-soft { font-family: 'IBM Plex Sans', sans-serif; font-weight: 600; font-size: 15px; color: #17497B; background: #EAF4FA; border: none; border-radius: 8px; padding: 11px 22px; cursor: pointer; text-decoration: none; }
.btn-soft:hover { background: #D6EAF5; color: #17497B; }

/* Anker-pills (Diensten) */
.pill { text-decoration: none; font-weight: 600; font-size: 15px; color: #17497B; background: #EAF4FA; border-radius: 999px; padding: 10px 22px; }
.pill:hover { background: #D6EAF5; color: #17497B; }

/* Dienst-kaarten (homepage) */
.card-dienst { text-decoration: none; background: #fff; border: 1px solid #DCE5EC; border-radius: 12px; padding: 32px 28px; display: flex; flex-direction: column; gap: 14px; transition: all 0.2s; }
.card-dienst:hover { border-color: #7EC8E8; box-shadow: 0 12px 28px rgba(15, 44, 76, 0.10); transform: translateY(-3px); }

/* Contactkanaal-kaarten */
.card-tel { text-decoration: none; background: #0F2C4C; border-radius: 12px; padding: 30px 28px; display: flex; flex-direction: column; gap: 8px; }
.card-tel:hover { background: #17497B; }
.card-spoed { text-decoration: none; background: #fff; border: 1px solid #DCE5EC; border-radius: 12px; padding: 30px 28px; display: flex; flex-direction: column; gap: 8px; }
.card-spoed:hover { border-color: #D9552B; }
.card-mail { text-decoration: none; background: #fff; border: 1px solid #DCE5EC; border-radius: 12px; padding: 30px 28px; display: flex; flex-direction: column; gap: 8px; }
.card-mail:hover { border-color: #7EC8E8; }

/* Formulier */
/* 16px minimaal: onder de 16px zoomt iOS Safari de pagina in bij focus op een veld */
.input, .textarea { font-family: 'IBM Plex Sans', sans-serif; font-size: 16px; color: #1C2B3A; background: #F7F9FB; border: 1px solid #DCE5EC; border-radius: 8px; padding: 13px 15px; outline: none; }
.input:focus, .textarea:focus { border-color: #17497B; background: #fff; }
.textarea { resize: vertical; }

/* Footer links */
.f-link { color: #B9D6E8; text-decoration: none; font-size: 15px; padding: 3px 0; display: inline-block; }
.f-link:hover { color: #fff; }
.f-muted { color: #7C97AD; text-decoration: none; padding: 3px 0; display: inline-block; }
.f-muted:hover { color: #fff; }
.lnk-inline { color: #17497B; font-weight: 600; }
.lnk-inline:hover { color: #C24A24; }
/* Variant voor donkerblauwe secties (lichte tekst op donkere achtergrond) */
.lnk-inline-licht { color: #fff; font-weight: 600; }
.lnk-inline-licht:hover { color: #7EC8E8; }

/* --- Blogartikelen & FAQ (toegevoegd bij migratie) --- */
.artikel { font-size: 16.5px; line-height: 1.75; color: #45586B; }
.artikel h2 { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: clamp(22px, 3vw, 27px); line-height: 1.2; color: #0F2C4C; margin: 36px 0 14px; }
.artikel h3 { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 19px; color: #0F2C4C; margin: 28px 0 10px; }
.artikel p { margin: 0 0 16px; }
.artikel ul, .artikel ol { margin: 0 0 16px; padding-left: 24px; }
.artikel li { margin-bottom: 7px; }
.artikel a { color: #17497B; font-weight: 600; }
.artikel strong { color: #1C2B3A; }
.faq-item { background: #fff; border: 1px solid #DCE5EC; border-radius: 12px; }
.faq-item summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 24px; font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 17px; color: #0F2C4C; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; font-size: 22px; font-weight: 600; color: #2C6E93; flex-shrink: 0; }
.faq-item[open] summary::after { content: "\2212"; }
.faq-antwoord { padding: 0 24px 22px; font-size: 15.5px; line-height: 1.7; color: #45586B; }
.faq-antwoord p { margin: 0 0 12px; }
.faq-antwoord ul { margin: 0 0 12px; padding-left: 22px; }
.blog-card { background: #fff; border: 1px solid #DCE5EC; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; text-decoration: none; transition: box-shadow 0.2s ease, transform 0.2s ease; }
.blog-card:hover { box-shadow: 0 14px 30px rgba(15, 44, 76, 0.12); transform: translateY(-2px); }

/* Afbeeldingen: width/height-attributen dienen alleen als aspect-ratio-hint;
   de werkelijke maat komt uit de (inline) CSS. Voorkomt vervorming. */
img { width: auto; height: auto; }

/* Hamburger-navigatie (mobiel) */
.site-nav { display: flex; align-items: center; gap: 16px 28px; flex-wrap: wrap; }
.nav-toggle { display: none; background: none; border: none; padding: 8px; cursor: pointer; border-radius: 8px; }
.nav-toggle:hover { background: #EAF4FA; }
.nav-toggle svg { display: block; }
.bel-icon svg { display: block; }
@media (max-width: 860px) {
  .nav-toggle { display: block; }
  .site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-bottom: 1px solid #DCE5EC; box-shadow: 0 14px 28px rgba(15, 44, 76, 0.1); flex-direction: column; align-items: stretch; gap: 0; padding: 8px 0 10px; }
  .site-nav.open { display: flex; }
  .site-nav .nav-link { padding: 12px clamp(16px, 3vw, 32px); border-bottom: none; font-size: 16px; }
  .site-nav .nav-link.active { background: #EAF4FA; }
}
