/* ==========================================================================
   pb-common.css
   Patty Bakker — GEDEELD (alle pagina's): tokens, .pb-shell header/nav/menu, .pb-footer, body-basis + gedeelde primitives (.section/.eyebrow/.h2/.label/.cta/.page-hero/.page-intro).
   Link op ELKE pagina, vóór de pagina-specifieke pb-*.css.
   ========================================================================== */

:root{--bg:#f2ebe4;--paper:#fffaf5;--cream:#efe6de;--cream2:#e6d8cd;
  --brown:#6c4d38;--brown2:#7e5a43;--dark:#29211c;--muted:#7d6d63;
  --line:#e1d1c4;--accent:#c97a55;--green:#66735b;
  --button:#c97a55;--button2:#a96548;
  --shadow:0 14px 28px rgba(77,51,34,.13);--shadow2:0 8px 18px rgba(77,51,34,.10);
  /* RONDINGEN — één schaal voor de hele site.
     Deze vier tokens stonden op 4/6/8/10px, uit het oorspronkelijke
     prototype. De nieuwere pagina's (fokkers, gastgezin-worden, contact)
     gebruiken 10/14/18/22px, en daardoor stonden er twintig verschillende
     rondingen door elkaar in de codebase.

     Door hier de waarden aan te passen schuiven 148 bestaande plekken in één
     keer mee, zonder dat ik ze allemaal hoef aan te raken:
       --r      68x   kaarten en tegels
       --r-lg   49x   grote kaarten
       --r-md   31x   knoppen en velden

     --r-md is gelijkgezet aan --btn-radius, want dat token wordt vooral op
     knoppen gebruikt. */
  --r:12px;--r-sm:8px;--r-md:10px;--r-lg:18px;--r-pill:999px;
  --bottom:78px;
  --pb-edge:max(32px, calc((100% - 1240px) / 2 + 32px));}

/* Op een telefoon is die ondergrens van 32px te ruim. De pagina's die
   --pb-edge gebruiken (het-ras, reviews, verwachte-nestjes, contact en tien
   andere) hielden daardoor 32px marge aan, terwijl de homepage, werkwijze en
   smoelenboek op 18px staan - zichtbaar verschil als je doorklikt.

   18px is de maat die de rest van de site al aanhoudt (.section heeft
   padding-left/right:18px). Alleen de ondergrens gaat omlaag; op schermen
   breder dan ~1176px wint de calc() en verandert er niets.

   --pb-edge staat niet in de lijst tokens die Bricks zelf declareert, dus
   :root volstaat hier - anders dan bij --r. */
@media (max-width:767px){
  :root{--pb-edge:18px}
}
/* SMOOTH SCROLLEN, MAAR PAS NA HET LADEN.

   Hier stond `html { scroll-behavior: smooth }` zonder voorwaarde. Die regel
   geldt ook voor het terugzetten van de scrollpositie na een herlaadbeurt: de
   browser zet je niet in een keer terug waar je stond, hij animeert ernaartoe.
   Die animatie begint bovenaan en loopt terwijl de pagina nog laadt, dus elke
   foto die er ondertussen bij komt maakt het document langer en verschuift het
   doel. De animatie loopt dat achterna en eindigt onderaan.

   Nagemeten op de homepage, 375 pixels breed: na een herlaadbeurt kwam je uit
   op 5384 van de 5930, oftewel vrijwel het einde van de pagina. Op desktop valt
   het nauwelijks op omdat alles er sneller staat; op een telefoon gaat het elke
   keer mis.

   De klasse komt erop bij window.load (zie functions.php). Tot die tijd springt
   de pagina gewoon direct naar de juiste plek, en daarna scrollen de ankerlinks
   weer soepel zoals bedoeld. */
html.pb-geladen { scroll-behavior: smooth; }
body{background:var(--pb-paper);}

/* ==========================================================================
   AANRAKEN EN SELECTEREN IN DE HUISSTIJL
   ==========================================================================
   Op Android legt Chrome een half doorzichtig BLAUW vlak over alles wat je
   aanraakt, en een tweede blauw vlak over tekst die je per ongeluk selecteert
   met een lange druk. Op een nestkaart is dat het hele blok dat oplicht, in een
   kleur die nergens anders op de site voorkomt. Het leest als een storing, en
   in een video van iemand die gewoon scrollt zie je het als geknipper.

   Het is geen fout in de opmaak maar een standaardkleur van de browser die we
   nooit hebben overschreven. Deze twee regels doen dat, in de eigen kleuren.

   WAAROM NIET GEWOON ALLES UITZETTEN
   Die blauwe vlek heeft een functie: hij bevestigt dat je raakte wat je wilde
   raken. Dat is op een telefoon belangrijker dan op een muisscherm, want je
   vinger zit in de weg. Dus: op een KAART weg, want daar is het een groot vlak
   dat niets bevestigt (er gebeurt toch niets als je erop drukt), en op een LINK
   of KNOP blijft hij staan, maar dan in de accentkleur en zachter. */

.treatment-card, .nest-card, .pb-tegel, article, section, .pb-main p, .pb-main h1,
.pb-main h2, .pb-main h3 {
	-webkit-tap-highlight-color: transparent;
}

a, button, [role="button"], summary, label, input, select, textarea {
	-webkit-tap-highlight-color: rgba(201, 122, 85, .16);
}

/* Geselecteerde tekst. De achtergrond blijft licht genoeg om de letters er
   gewoon doorheen te lezen; daarom alleen de achtergrond en niet de
   tekstkleur - een omgekeerde kleur maakt een citaat onleesbaar terwijl je het
   juist wilt overnemen. */
::selection {
	background: rgba(201, 122, 85, .22);
}

::-moz-selection {
	background: rgba(201, 122, 85, .22);
}

.pb-shell.pb-shell{display:contents}
#brx-header{display:contents}
.pb-shell *{box-sizing:border-box}
.pb-shell *{box-sizing:border-box}
.pb-shell [class*="brxe-"]{display:block;flex-direction:row;align-items:initial;align-content:initial}
.pb-shell a{text-decoration:none;color:inherit}
.pb-shell img{display:block;max-width:100%}
.pb-shell button{border:0;background:none;color:inherit;cursor:pointer;font:inherit}
.pb-shell .icon{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pb-shell .header{height:64px;background:rgba(255, 250, 245, .98);position:sticky;top:0;z-index:120;display:flex;align-items:center;gap:14px;padding-top:0;padding-right:var(--pb-edge);padding-bottom:0;padding-left:var(--pb-edge);border-bottom:1px solid #eaded4;box-shadow:0 6px 16px rgba(77, 51, 34, .05)}
.pb-shell .hamb{width:36px;height:36px;display:grid;place-items:center;color:var(--brown)}
.pb-shell .hamb i{content:"";display:block;width:23px;height:2px;background:var(--brown);border-radius:var(--r)}
.pb-shell .hamb i::before{content:"";display:block;width:23px;height:2px;background:var(--brown);border-radius:var(--r);transform:translateY(-7px)}
.pb-shell .hamb i::after{content:"";display:block;width:23px;height:2px;background:var(--brown);border-radius:var(--r);transform:translateY(5px)}
.pb-shell .logo{width:104px;height:auto}
.pb-shell .head-spacer{flex:1 1 auto}
.pb-shell .head-icon{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;color:var(--brown);position:relative}
.pb-shell .cart-btn{margin-right:4px}
.pb-shell .cart-dot{position:absolute;right:0;top:2px;background:var(--accent);color:#fff;border-radius:999px;width:15px;height:15px;font-size:9px;display:grid;place-items:center;font-weight:800}
.pb-shell .bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);height:var(--bottom);width:min(430px, 100%);background:rgba(255, 250, 245, .98);z-index:60;display:none;grid-template-columns:repeat(5, 1fr);border-top:1px solid #e4d6ca;box-shadow:0 -10px 26px rgba(38, 27, 20, .12)}
.pb-shell .bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:800;color:#88766b;width:100%;height:100%}
.pb-shell .bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:800;color:#88766b;width:100%;height:100%}
.pb-shell .bottom-nav a.active{color:var(--accent)}
.pb-shell .bottom-nav .active{color:var(--accent)}
.pb-shell .bottom-nav .icon{width:24px;height:24px}
.pb-shell .socials{display:flex;gap:18px;margin-top:16px;margin-right:0;margin-bottom:18px;margin-left:0}
.pb-shell .socials a{color:#fff;display:inline-grid;place-items:center}
.pb-shell .socials .icon{width:23px;height:23px}
.pb-shell .menu-scrim{position:fixed;inset:0;z-index:240;background:rgba(38, 27, 20, .45);opacity:0;pointer-events:none;transition:opacity .25s ease;display:none}
.pb-shell .menu-scrim.open{opacity:1;pointer-events:auto}
.pb-shell .menu-panel{position:fixed;inset:0;z-index:260;background:var(--paper);color:var(--brown);transform:translateX(-100%);transition:transform .25s ease;max-width:430px;margin-top:0;margin-right:auto;margin-bottom:0;margin-left:auto;overflow-x:hidden;overflow-y:hidden;display:none}
.pb-shell .header .hamb{margin-left:0;display:flex;order:0}
.pb-shell .menu-panel.open{transform:translateX(0)}
/* Geen tekstselectie in het menu. Tik je een item aan en beweeg je daarbij een
   paar pixels, dan begint de browser een selectie en zet er zijn eigen blauwe
   balk overheen - bovenin het paneel viel dat op als een streep. Er staat hier
   niets dat je zou willen kopieren, dus selectie mag eruit. Invoervelden
   houden hem wel: daar wil je wel kunnen selecteren. */
.pb-shell .menu-panel{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
.pb-shell .menu-panel input,.pb-shell .menu-panel textarea{-webkit-user-select:text;user-select:text}
.pb-shell .menu-head{height:54px;display:flex;align-items:center;padding-top:0;padding-right:12px;padding-bottom:0;padding-left:12px;border-bottom:1px solid var(--line);background:var(--paper)}
.pb-shell .menu-head img{width:72px}
.pb-shell .close{margin-left:auto;width:42px;height:42px;display:grid;place-items:center;color:var(--brown)}
.pb-shell .menu-level{position:absolute;inset:54px 0 0;overflow-x:auto;overflow-y:auto;background:var(--paper);transition:transform .25s ease}
.pb-shell .level-main{transform:translateX(0)}
.pb-shell .level-sub{transform:translateX(100%);display:flex;flex-direction:column}
.pb-shell .menu-panel.show-second .level-main{transform:translateX(-100%)}
.pb-shell .menu-panel.show-second .level-sub{transform:translateX(0)}
.pb-shell .menu-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);font-weight:700;padding-top:9px;padding-right:16px;padding-bottom:7px;padding-left:16px}
.pb-shell .menu-list{border-top:1px solid var(--line)}
.pb-shell .menu-item{width:100%;min-height:45px;display:grid;grid-template-columns:28px 1fr 22px;align-items:center;gap:13px;padding-top:0;padding-right:14px;padding-bottom:0;padding-left:14px;border-bottom:1px solid var(--line);font-size:16px;font-weight:800;text-align:left;background:var(--paper);color:var(--brown)}
.pb-shell .menu-item .ico{width:20px;height:20px;color:var(--accent);stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pb-shell .menu-item .chev{justify-self:end;width:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* "Voor fokkers" wordt door een script aan het menu toegevoegd en is een <a>
   met de svg's als directe kinderen; de andere items zijn een <button> waarin
   elke svg nog in een <div> zit. Daardoor was dáár het pijltje zelf het
   rastervak en pakte `justify-self:end` wél - het stond 4px verder naar rechts
   dan alle andere. Een direct kind zetten we terug op de linkerkant, zodat het
   rijtje weer op één lijn staat. */
.pb-shell .menu-item > .chev{justify-self:start}
.pb-shell .menu-tag{font-style:normal;font-size:8px;text-transform:uppercase;letter-spacing:.08em;background:var(--accent);color:#fff;padding-top:2px;padding-right:5px;padding-bottom:2px;padding-left:5px;margin-left:6px;border-radius:10px;vertical-align:middle}
.pb-shell .menu-tag.secure{background:var(--brown);color:#fff}
.pb-shell .menu-socials{padding-top:0;padding-right:14px;padding-bottom:18px;padding-left:14px}
.pb-shell .menu-socials .socials{margin:0}
.pb-shell .menu-socials .socials a{color:var(--brown)}
.pb-shell .sub-foot{margin-top:auto;padding-top:6px;padding-right:0;padding-bottom:18px;padding-left:0;border-top:1px solid var(--line)}
.pb-shell .sub-foot .socials{padding-top:0;padding-right:14px;padding-bottom:0;padding-left:14px;margin-top:0;margin-right:0;margin-bottom:4px;margin-left:0}
.pb-shell .sub-foot .socials a{color:var(--brown)}
.pb-shell .partner-logos{display:flex;align-items:center;gap:24px;padding-top:12px;padding-right:14px;padding-bottom:2px;padding-left:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.pb-shell .partner-logos::-webkit-scrollbar{display:none}
.pb-shell .partner-logos img{flex:0 0 auto;width:auto;object-fit:contain;opacity:.65}
.pb-shell .partner-logos img{height:28px}
.pb-shell .back-row{height:44px;display:flex;gap:7px;align-items:center;padding-top:0;padding-right:14px;padding-bottom:0;padding-left:14px;border-bottom:1px solid var(--line);font-size:13px;font-weight:800;color:var(--brown)}
.pb-shell .back-row .icon{width:18px;height:18px}

/* ---------- Focus in de kop en het mobiele menu ----------
   HET BLAUWE LIJNTJE OP iOS
   Het mobiele menu verplaatst bij openen de focus naar de sluitknop
   (#closeMenu) en bij een submenu naar "Terug" (#backMenu). Er stond in dit
   thema nergens focus-opmaak - `outline-style` is overal `none` uit de
   browserstandaard - dus tekende Safari zijn eigen ring: een felblauw kader om
   de X en een blauwe streep onder "Terug", midden in een verder warme crème
   kop.

   Op die twee knoppen gaat de ring er helemaal af. Dat is een bewuste keuze van
   Patty's kant: de focus wordt daar door JavaScript gezet, dus je krijgt de
   ring te zien zonder dat je zelf iets met een toetsenbord doet, en dat leest
   als een storend blauw streepje in plaats van als een hulpmiddel.

   De prijs: wie op die twee knoppen mét een toetsenbord navigeert, ziet niet
   meer waar de focus staat. Op de rest van de kop blijft die aanwijzing wel
   staan, en het menu blijft met Tab en Enter volledig bruikbaar - alleen zonder
   zichtbare markering op de sluit- en terugknop.

   Zowel :focus als :focus-visible, want browsers zijn niet eensgezind over
   programmatisch gezette focus: iOS Safari rekent die als :focus-visible,
   Chromium niet. Beide uitzetten dekt alle gevallen.

   Op #closeMenu en #backMenu mag je mikken: dat zijn door de auteur gezette
   id's in het menu, geen door Bricks gegenereerde brxe-*-id's die bij kopiëren
   verschuiven. De ID-selector verslaat bovendien de regel eronder, dus daar is
   geen !important voor nodig. */
.pb-shell #closeMenu:focus,
.pb-shell #closeMenu:focus-visible,
.pb-shell #backMenu:focus,
.pb-shell #backMenu:focus-visible{
  outline:none;
}

/* De rest van de kop houdt wél een aanwijzing, in de huisstijl in plaats van
   het blauw van de browser. :focus-visible en niet :focus, zodat een gewone
   muisklik hier geen ring achterlaat. */
.pb-shell :focus-visible{
  outline:2px solid var(--accent);
  outline-offset:-3px;
}
.pb-shell .sub-title{padding-top:10px;padding-right:14px;padding-bottom:8px;padding-left:14px;border-bottom:1px solid var(--line)}
.pb-shell .sub-title h2{font-family:Fraunces, serif;font-size:24px;line-height:1;margin:0;color:var(--brown)}
.pb-shell .sub-heading{height:28px;display:flex;align-items:center;padding-top:0;padding-right:14px;padding-bottom:0;padding-left:14px;font-size:9px;letter-spacing:.12em;font-weight:900;color:var(--accent);background:#f4eae2;border-bottom:1px solid var(--line);text-transform:uppercase}
.pb-shell .sub-links a{height:45px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:16px;font-weight:750;padding-top:0;padding-right:14px;padding-bottom:0;padding-left:14px;color:var(--brown)}
.pb-shell .sub-links a:has(.secure){background:var(--cream)}
.pb-shell .sub-links a .icon{width:18px;height:18px;opacity:.7}
.pb-shell .lang-select-wrap{position:relative;flex:0 0 auto;margin-left:0;margin-right:2px;z-index:125}
.pb-shell .lang-select{height:30px;min-width:48px;padding-top:0;padding-right:7px;padding-bottom:0;padding-left:7px;border:1px solid var(--line);background:#fff;color:var(--brown);border-radius:var(--r);display:flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:900;letter-spacing:.04em}
.pb-shell .lang-select .icon{width:12px;height:12px;stroke-width:2}
.pb-shell .lang-dropdown{position:absolute;right:0;top:34px;min-width:66px;background:#fffaf5;border:1px solid var(--line);box-shadow:0 12px 24px rgba(77, 51, 34, .14);border-radius:var(--r);overflow-x:hidden;overflow-y:hidden;display:none;z-index:300}
.pb-shell .lang-dropdown.open{display:block}
.pb-shell .lang-dropdown button{width:100%;height:34px;padding-top:0;padding-right:10px;padding-bottom:0;padding-left:10px;text-align:left;font-size:11px;font-weight:900;color:var(--brown);background:#fffaf5}
.pb-shell .lang-dropdown button.active{background:var(--brown);color:#fff}
.pb-shell .sub-links a[href="specials.html"]{background:var(--cream);color:var(--brown)}
.pb-shell .sub-links a[href="specials.html"] .menu-tag{display:inline-flex;background:var(--brown);color:#fff;border-radius:10px;border-color:var(--brown)}
.pb-shell .sub-links a .menu-tag{margin-right:auto}
.pb-shell .btn .icon{width:14px;height:14px;stroke-width:1.55}
.pb-shell .d-topbar{display:block;background:var(--brown);color:#f4e9e1}
.pb-shell .d-nav{display:block}
.pb-shell .d-cta{display:inline-flex;align-items:center;height:40px;padding-top:0;padding-right:16px;padding-bottom:0;padding-left:16px;border-radius:var(--r-md);background:var(--accent);color:#fff;font-weight:800;font-size:13px;white-space:nowrap;box-shadow:0 8px 16px rgba(111, 72, 49, .18);transition:background .15s ease}
.pb-shell .header > a{flex:0 0 auto}
.pb-shell .header .hamb{order:9;margin-left:4px;display:none}
.pb-shell .d-topbar-inner{max-width:1240px;margin-top:0;margin-right:auto;margin-bottom:0;margin-left:auto;padding-top:8px;padding-right:32px;padding-bottom:8px;padding-left:32px;display:flex;align-items:center;justify-content:space-between;font-size:12.5px}
.pb-shell .d-tag{font-weight:700;letter-spacing:.02em}
.pb-shell .d-toplinks{display:flex;gap:24px}
.pb-shell .d-toplinks a{color:#efe0d6;font-weight:600}
.pb-shell .d-toplinks a:hover{color:#fff}
.pb-shell .d-cta:hover{background:#b96a47}
.pb-shell .d-menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:0}
.pb-shell .d-item{position:static}
.pb-shell .d-top{display:inline-flex;align-items:center;gap:6px;height:64px;padding-top:0;padding-right:10px;padding-bottom:0;padding-left:10px;font-weight:800;font-size:14.5px;color:var(--brown);white-space:nowrap}
.pb-shell .d-top:hover{color:var(--accent)}
.pb-shell .d-caret{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.55}
.pb-shell .d-mega{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 30px 50px rgba(77, 51, 34, .16);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s ease, transform .16s ease, visibility .16s;z-index:90}
.pb-shell .d-item:hover > .d-mega{opacity:1;visibility:visible;transform:none;z-index:91;transition:none}
.pb-shell .d-item:focus-within > .d-mega{opacity:1;visibility:visible;transform:none;z-index:91;transition:none}
.pb-shell .d-mega-inner{max-width:1240px;margin-top:0;margin-right:auto;margin-bottom:0;margin-left:auto;padding-top:28px;padding-right:32px;padding-bottom:28px;padding-left:32px;display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:26px;min-height:290px;align-items:stretch}
.pb-shell .d-card{background:var(--cream);padding-top:22px;padding-right:22px;padding-bottom:22px;padding-left:22px;border-radius:var(--r);display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 9px 22px rgba(77, 51, 34, .10)}
.pb-shell .d-card-ico{width:30px;height:30px;color:var(--accent);stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;margin-bottom:12px}
.pb-shell .d-card h3{font-family:Fraunces, serif;font-size:26px;line-height:1.05;color:var(--brown);margin-top:0;margin-right:0;margin-bottom:10px;margin-left:0}
.pb-shell .d-card p{font-size:13.5px;line-height:1.55;color:var(--muted);margin-top:0;margin-right:0;margin-bottom:16px;margin-left:0}
.pb-shell .d-card-cta{align-self:flex-start;font-weight:800;font-size:14px;color:var(--brown);border-bottom:2px solid var(--accent);padding-bottom:3px}
.pb-shell .d-card-cta:hover{color:var(--accent)}
.pb-shell .d-col{padding-top:14px}
.pb-shell .d-col h4{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-top:0;margin-right:0;margin-bottom:4px;margin-left:0;font-weight:800}
.pb-shell .d-col a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:11px;padding-right:0;padding-bottom:11px;padding-left:0;font-size:14.5px;font-weight:700;color:var(--brown);border-bottom:1px solid var(--line)}
.pb-shell .d-col a:hover{color:var(--accent)}
.pb-shell .d-mtag{background:var(--accent);color:#fff;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;padding-top:3px;padding-right:6px;padding-bottom:3px;padding-left:6px;border-radius:10px}
.pb-shell .d-hl{position:relative;overflow-x:hidden;overflow-y:hidden;border-radius:var(--r);min-height:220px;box-shadow:0 9px 22px rgba(77, 51, 34, .10);display:block}
.pb-shell .d-hl-img{position:absolute;inset:0;background-size:cover;background-position:center;background-color:var(--cream2)}
.pb-shell .d-hl::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .72))}
.pb-shell .d-hl-cap{position:absolute;left:16px;right:16px;bottom:16px;z-index:2;color:#fff}
.pb-shell .d-hl-cap b{display:inline-flex;background:#fff;color:var(--brown);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding-top:5px;padding-right:7px;padding-bottom:5px;padding-left:7px;margin-bottom:8px;font-weight:900}
.pb-shell .d-hl-cap h3{font-family:Fraunces, serif;font-size:22px;line-height:1.05;color:#fff;margin:0}
.pb-shell .d-flat{margin-left:6px}
@media (min-width:768px) and (max-width:1024px){
  .pb-shell .header{gap:18px}
  .pb-shell .bottom-nav{left:0;transform:none;width:100%;display:grid}
  .pb-shell .menu-scrim{display:block}
  .pb-shell .menu-panel{inset:0 0 0 auto;transform:translateX(100%);max-width:86vw;display:block;margin:0;width:380px;box-shadow:none}
  .pb-shell .menu-panel.open{box-shadow:-24px 0 50px rgba(38, 27, 20, .22)}
  .pb-shell .d-nav{display:none}
  .pb-shell .d-cta{display:none}
  .pb-shell .header .hamb{display:flex}
}
/* ==========================================================================
   Ruimte onder de vaste onderbalk
   ==========================================================================
   .bottom-nav staat `position:fixed; bottom:0` en is --bottom (78px) hoog, en
   verschijnt op alles tot 1024px. De pagina wist daar niets van: de footer
   eindigde exact op de paginabodem, dus de onderste 78px van ELKE pagina zat
   permanent onder die balk. Gemeten op /inschrijven/: paginahoogte 3548,
   onderkant van .pb-footer ook 3548, dus nul ruimte.

   De extra ruimte komt op de footer en niet op body, zodat er niets in de
   pagina zelf verschuift. calc() op het token, want anders lopen de hoogte van
   de balk en deze ruimte uit elkaar zodra die balk verandert.
   ========================================================================== */
@media (max-width:1024px){
  .pb-footer{ padding-bottom: calc(var(--bottom) + 12px) }
}

@media (max-width:767px){
  .pb-shell .header{height:54px;padding-right:12px;padding-left:12px}
  .pb-shell .logo{width:82px}
  .pb-shell .bottom-nav{display:grid}
  .pb-shell .menu-scrim{display:block}
  /* Mobiel = volledig scherm (anders dan de smalle rechter-drawer op tablet
     hierboven). inset:0 zonder vaste breedte/rechts-ankering is ook meteen
     de robuuste variant: dit blijft exact de viewport vullen ongeacht wat er
     verder op de pagina gebeurt (bijv. een productpagina met een net iets te
     brede galerij-afbeelding kon anders, via margin:auto binnen een verkeerd
     berekend "containing block", het menu zichtbaar laten hangen). */
  .pb-shell .menu-panel{inset:0;transform:translateX(-100%);max-width:none;width:auto;display:block;margin:0;box-shadow:none!important}
  .pb-shell .menu-panel.open{transform:translateX(0);box-shadow:none!important}
  .pb-shell .d-topbar{display:none}
  .pb-shell .d-nav{display:none}
  .pb-shell .d-cta{display:none;align-items:normal;height:auto;padding-right:0;padding-left:0}
  .pb-shell .header > a{flex:0 1 auto}
  .pb-shell .header .hamb.hamb{order:0;margin-left:0;display:flex}
}
.pb-main *{box-sizing:border-box}
.pb-main [class*="brxe-"]{display:block;flex-direction:row;align-items:initial;align-content:initial}
.pb-main a{text-decoration:none;color:inherit}
.pb-main img{display:block;max-width:100%}
.pb-main button{border:0;background:none;color:inherit;cursor:pointer;font:inherit}
.pb-main{overflow-x:clip;overscroll-behavior-x:none;min-width:0}
.pb-main .icon{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pb-main .section{padding-top:22px;padding-right:18px;padding-bottom:22px;padding-left:18px}
.pb-main .section.flush{padding-left:32px;padding-right:32px}
.pb-main .section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}
.pb-main .flush .section-head{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}
.pb-main .eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--accent);margin-bottom:4px}
/* ==========================================================================
   Paginatitel (h1) — één maat voor de hele site
   --------------------------------------------------------------------------
   Elke pagina had zijn eigen eigenaar voor de h1: .page-hero, .page-intro,
   .pb-flow-hero, .pb-fk2-hero, .pb-gz-hero, .pb-ct-contact, .pb-su-main,
   .pb-nest-title, .pb-meet, .profile-title, .product-info, .pb-upd-copy,
   .pb-ev-top-copy en .shop-hero. Elk met een eigen maat. Op desktop liep dat
   van 34px (agenda) tot 76px (contact), op mobiel van 30px tot 48px. En
   .page-intro h1 alleen al had vier verschillende definities, afhankelijk van
   welk paginabestand er toevallig bij laadde.

   Nu één schaal, hier. De font-size is uit al die paginaregels gehaald; wat
   daar overblijft is per pagina wél verschillend (marge, kleur, maximale
   breedte) en dat mag ook.

   De maat is afgestemd op de homepage: die kop (.hero-title) staat op 46px en
   is de referentie waar de rest zich naar voegt. De clamp loopt van 34px op
   een telefoon naar precies die 46px vanaf ongeveer 1200px breed, en schaalt
   daartussen mee met de vensterbreedte — geen mediaquery nodig.

   De ondergrens en bovengrens liggen dichter bij elkaar dan bij een gewone
   vw-clamp; dat komt door de `22px + 2vw` ertussen. Die laat de kop rustig
   meegroeien in plaats van hem tussen twee uitersten te laten springen.

   NIET hierin meegenomen: koppen die ín een kaart of over een foto staan
   (.hero-card h1 op de homepage, .special-name h1, .cat-copy h1). Dat zijn
   geen paginatitels maar kopjes in een component, met een eigen rol.
   ========================================================================== */

:root{--pb-h1:clamp(34px, 22px + 2vw, 46px)}

.pb-main .page-hero h1,
.pb-main .page-intro h1,
.pb-main .page-intro h2,
.pb-main .shop-hero h1,
.pb-main .pb-flow-hero h1,
.pb-main .pb-fk2-hero h1,
.pb-main .pb-gz-hero h1,
.pb-main .pb-ct-contact h1,
.pb-main .pb-su-main h1,
.pb-main .pb-nest-title,
.pb-main .product-info h1,
.pb-main .pb-upd-copy h1,
.pb-main .pb-ev-top-copy h1,
.pb-main .pb-jur-kop h1,
.pb-main.pb-hond .profile-title h1,
.pb-main.pb-404 h1,
.pb-meet h1{font-size:var(--pb-h1)}

.pb-main .h2{font-family:Fraunces,serif;font-size:28px;line-height:1.02;margin:0;color:var(--brown);font-weight:700;letter-spacing:-.02em}
.pb-main .more{font-size:13px;font-weight:800;color:var(--brown);border-bottom:2px solid var(--accent)}
.pb-main .label{display:inline-flex;align-items:center;gap:5px;text-transform:uppercase;letter-spacing:.02em;font-size:11px;font-weight:800;color:var(--accent);border:1px solid rgba(201,122,85,.55);padding-top:4px;padding-right:11px;padding-bottom:4px;padding-left:11px;border-radius:var(--r-pill);background:#fffaf5;white-space:nowrap}
.pb-main .label.fill{background:var(--accent);color:white;border-color:var(--accent)}
.pb-main .label.brown{background:var(--brown);color:white;border-color:var(--brown)}
.pb-main .label.green{background:var(--green);color:white;border-color:var(--green)}
.pb-main .cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;font-weight:800;font-size:14px;padding-top:0;padding-right:18px;padding-bottom:0;padding-left:18px;border-radius:var(--r-md);width:auto;align-self:flex-start;border:0;box-shadow:0 8px 16px rgba(111, 72, 49, .18);transition:.2s ease;justify-content:center;font:800 12px/1 Manrope,system-ui,sans-serif;min-height:38px;text-decoration:none;font-family:Manrope, system-ui, sans-serif;letter-spacing:-.01em;white-space:nowrap;height:44px;position:relative;overflow-x:hidden;overflow-y:hidden;isolation:isolate}
.pb-main .cta svg{stroke-width:1.7;width:16px;height:16px;transition:transform .2s ease}
.pb-main .newsletter.footer-news .h2{color:#fff}
.pb-main .newsletter.footer-news .eyebrow{color:#f1c7aa}
.pb-main .section.tight{padding-top:16px}
.pb-main .form-dark .cta{background:var(--accent);color:white}
.pb-main .section .plain-copy{margin-left:0;padding-left:0;padding-right:18px}
.pb-main .section-head .more.with-arrows:after{content:'\203A ';font-size:16px;line-height:0;margin-left:1px}
.pb-main .cta:after{content:'\2192 ';font-size:16px;line-height:0;margin-left:1px;font-weight:900}
.pb-main .horse-card .cta{margin-top:auto;align-self:stretch;font-size:11px;padding-top:9px;padding-right:9px;padding-bottom:9px;padding-left:9px}
.pb-main .section-head .more{white-space:nowrap;font-weight:850;color:var(--brown);border-bottom:2px solid var(--accent);margin-right:8px;transition:color .2s ease, border-color .2s ease}
.pb-main .top-waitlist .cta{width:100%;font-size:13px}
.pb-main .section > .breed-copy{padding-left:18px;padding-right:18px;margin-left:0}
.pb-main .section > .color-list{padding-left:0;padding-right:0;margin-left:0;margin-right:0}
.pb-main .more.tertiary{border-bottom:0;color:#8b7668;font-size:12px}
.pb-main .cta .icon{flex:0 0 auto;width:16px;height:16px;stroke-width:1.7}
.pb-main .cta.full{width:100%;justify-content:center;padding-top:12px;padding-right:14px;padding-bottom:12px;padding-left:14px}
.pb-main .cta:has(svg)::after,.pb-main .cta:has(.icon)::after,.pb-main .simple-card .cta:has(svg)::after,.pb-main .simple-card .cta:has(.icon)::after{content:none}
.pb-main .section-head .more.with-arrows::after{content:none}
.pb-main .btn .icon{width:14px;height:14px;stroke-width:1.55}
.pb-main .more.with-arrows::after{content:none}
.pb-main .section-head .more::after{content:none}
.pb-main .section{padding-top:22px;padding-right:18px;padding-bottom:22px;padding-left:18px}
.pb-main .section.flush{padding-left:0;padding-right:0}
.pb-main .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px}
.pb-main .section.flush .section-head{padding-top:0;padding-right:18px;padding-bottom:0;padding-left:18px}
.pb-main .eyebrow{font-family:Manrope,system-ui,sans-serif;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--accent);margin-bottom:4px}
.pb-main .h2{font-family:Fraunces,serif;font-size:28px;line-height:1.02;margin:0;color:var(--brown);font-weight:700;letter-spacing:-.02em}
.pb-main .more{font-size:13px;font-weight:850;color:var(--brown);border-bottom:2px solid var(--accent);white-space:nowrap}
.pb-main .cta{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:auto;min-height:38px;padding-top:10px;padding-right:12px;padding-bottom:10px;padding-left:12px;border-radius:var(--r);border:1px solid rgba(255,255,255,.18);background:linear-gradient(135deg,var(--accent),#a96548);color:#fff;box-shadow:0 9px 18px rgba(111,72,49,.18);font-family:Manrope,system-ui,sans-serif;font-size:12px;line-height:1;font-weight:850;text-decoration:none}
.pb-main .cta svg{width:14px;height:14px;stroke-width:1.6}
/* Labels moeten om hun tekst heen zitten. In een flex-kolom (de nestkaarten,
   de update-kaarten) rekt een inline-flex element standaard uit tot de volle
   breedte: gemeten 327px in een kaart van 369px. Met een rechthoekige rand
   viel dat nog mee, als pil wordt het een lange ovaal. */
.pb-main .label{align-self:flex-start;justify-self:flex-start;width:fit-content}

/* .label stond hierboven op regel 189 al gedefinieerd als pil van 11px, en
   werd hier overschreven door een rechthoekje van 2px met letters van 8px.
   Dat was de enige ronding op de site die nog uit de pas liep, en 8px is
   nauwelijks leesbaar. De pil is duidelijk de bedoeling: de labels op de
   fotokaarten zetten hem in de paginabestanden ook expliciet terug naar
   var(--r-pill). Lettergrootte naar 10px als middenweg, zodat bestaande
   indelingen niet opeens uit hun jasje groeien. */
.pb-main .label{display:inline-flex;align-items:center;gap:5px;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:850;color:var(--accent);border:1px solid rgba(201,122,85,.55);padding-top:4px;padding-right:9px;padding-bottom:4px;padding-left:9px;border-radius:var(--r-pill);background:#fffaf5;white-space:nowrap}
.pb-main .label.fill{background:var(--accent);color:#fff;border-color:var(--accent)}
.pb-main .label.brown{background:var(--brown);color:#fff;border-color:var(--brown)}
.pb-main > section{width:100%;max-width:1240px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px}
.pb-main > .section{width:100%;max-width:1240px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px}
.pb-main > .section.flush{padding-left:32px;padding-right:32px}
.pb-main > .section.flush .section-head{padding-left:0;padding-right:0}
.pb-main .cta:hover{background:#b96a47}
.pb-main .cta:hover svg{transform:translateX(3px)}
.pb-main .section-head .more:hover{color:var(--accent)}
.pb-main .cta::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(0, 0, 0, .14);transform:translateX(-101%);transition:transform .4s cubic-bezier(.22, .61, .36, 1)}
.pb-main .cta:hover::before{transform:translateX(0)}
.pb-main .page-hero{padding-top:24px;padding-right:18px;padding-bottom:18px;padding-left:18px;background:linear-gradient(180deg,#fbf6f1,#fffaf5);border-bottom:1px solid #eaded4}
.pb-main .page-hero .kicker{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:6px}
.pb-main .page-hero h1{font-family:Fraunces,serif;line-height:.98;color:var(--brown);margin-top:0;margin-right:0;margin-bottom:10px;margin-left:0;letter-spacing:-.02em}
.pb-main .page-hero p{font-size:14px;line-height:1.55;color:var(--muted);margin:0;max-width:34em}
@media (min-width:768px){
  .pb-main .cta{min-height:44px;height:auto;gap:8px;padding-top:0;padding-right:18px;padding-bottom:0;padding-left:18px;border-radius:var(--r-md);border:0;background:var(--accent);color:#fff;box-shadow:0 8px 16px rgba(111,72,49,.18);font-size:14px;font-weight:800}
  .pb-main .cta:hover{background:#b96a47}
}
@media (max-width:767px){
  .pb-main .section.flush{padding-left:0;padding-right:0}
  .pb-main .flush .section-head{padding-right:18px;padding-left:18px}
  .pb-main .label{letter-spacing:.08em;font-size:9.5px;padding-top:3px;padding-right:8px;padding-bottom:3px;padding-left:8px;border-radius:var(--r-pill)}
  .pb-main .cta{gap:7px;background:linear-gradient(135deg,var(--accent),var(--button2));font-weight:850;font-size:12px;padding-top:10px;padding-right:12px;padding-bottom:10px;padding-left:12px;border-radius:var(--r);box-shadow:0 10px 18px rgba(108,77,56,.18);font-family:Manrope,system-ui,sans-serif;height:auto;position:static;overflow-x:visible;overflow-y:visible}
  .pb-main .cta svg{stroke-width:2.3;width:15px;height:15px}
  .pb-main .section-head .more{font-weight:800;margin-right:0}
  .pb-main .cta .icon{width:14px;height:14px;stroke-width:1.55}
  .pb-main .section-head .more:hover{color:var(--brown)}
  .pb-main .cta::before{position:static}
  .pb-main .page-hero{padding-top:22px;padding-right:20px;padding-bottom:12px;padding-left:20px;background:#f7efe8;border-bottom:1px solid var(--line)}
  .pb-main > section{max-width:none;margin-left:0;margin-right:0;padding-left:18px;padding-right:18px}
  .pb-main > .section{max-width:none;margin-left:0;margin-right:0;padding-left:18px;padding-right:18px}
  .pb-main > .section.flush{padding-left:0;padding-right:0}
  .pb-main > .section.flush .section-head{padding-left:18px;padding-right:18px}
}
.pb-footer *{box-sizing:border-box}
.pb-footer [class*="brxe-"]{display:block;flex-direction:row;align-items:initial;align-content:initial}
.pb-footer a{text-decoration:none;color:inherit}
.pb-footer img{display:block;max-width:100%}
.pb-footer button{border:0;background:none;color:inherit;cursor:pointer;font:inherit}
.pb-footer{overflow-x:clip}
.pb-footer .icon{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pb-footer .footer{background:transparent;color:#f6eee7;display:none}
.pb-footer .footer-main{background:#75543f;padding-top:48px;padding-right:var(--pb-edge);padding-bottom:36px;padding-left:var(--pb-edge);display:flex;flex-wrap:wrap;align-items:flex-start;gap:30px 48px;max-width:none;margin:0}
.pb-footer .footer-hours{background:#4b3428;padding-top:26px;padding-right:var(--pb-edge);padding-bottom:36px;padding-left:var(--pb-edge);display:flex;flex-wrap:wrap;align-items:flex-start;gap:22px 48px;max-width:none;margin:0}
.pb-footer .footer-logo{width:142px;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;filter:brightness(0) invert(1) sepia(.2) saturate(.4)}
.pb-footer .footer-newsletter{background:rgba(255, 255, 255, .08);color:#fff;margin-top:0;margin-right:0;margin-bottom:22px;margin-left:0;padding-top:18px;padding-right:20px;padding-bottom:18px;padding-left:20px;border:1px solid rgba(255, 255, 255, .16);border-radius:var(--r);box-shadow:none;flex:1 1 340px;order:2;margin:0;align-self:stretch}
.pb-footer .footer-newsletter h3{font-size:20px;margin-top:0;margin-right:0;margin-bottom:4px;margin-left:0;color:#fff;font-family:Manrope, system-ui, sans-serif;line-height:1.1;font-weight:850}
.pb-footer .footer-newsletter p{font-size:13px;color:#f2e7dd;margin-top:0;margin-right:0;margin-bottom:12px;margin-left:0;line-height:1.45}
.pb-footer .input-row{display:flex;gap:8px}
.pb-footer .input-row input{flex:1;min-width:0;height:46px;border:1px solid #d8c7b9;background:var(--paper);color:var(--dark);padding-top:0;padding-right:13px;padding-bottom:0;padding-left:13px;border-radius:var(--r)}
.pb-footer .input-row button{height:46px;flex:0 0 auto;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:linear-gradient(135deg,var(--accent),var(--button2));color:#fff;border:0;border-radius:var(--r);font-weight:850;box-shadow:0 10px 18px rgba(108,77,56,.18);transition:.2s ease;font-family:Manrope,system-ui,sans-serif;letter-spacing:-.01em}
.pb-footer .footer-block{margin-top:0;margin-right:0;margin-bottom:20px;margin-left:0}
.pb-footer .footer-block:last-child{margin-bottom:0}
.pb-footer .footer-block h3{display:flex;align-items:center;gap:9px;color:#fff;margin-top:0;margin-right:0;margin-bottom:10px;margin-left:0;font-size:15px}
.pb-footer .footer-block h3 .icon{width:22px;height:22px;color:#e6c3aa;flex:0 0 auto;padding-top:4px;padding-right:4px;padding-bottom:4px;padding-left:4px;stroke:#e6c3aa;background:transparent;border:0;border-radius:0;padding:0}
.pb-footer .footer-block a{display:block;color:#f2e7dd;font-size:13px;line-height:1.45;margin-top:0;margin-right:0;margin-bottom:7px;margin-left:0;transition:color .15s ease}
.pb-footer .footer-block p{display:block;color:#f2e7dd;font-size:13px;line-height:1.45;margin-top:0;margin-right:0;margin-bottom:7px;margin-left:0}
.pb-footer .footer-block a:hover{color:#fff}
.pb-footer .footer-hours .footer-block h3{color:#fff}
.pb-footer .footer-hours .footer-block p{color:#e4d4c8}
.pb-footer .footer-hours .footer-block p a{color:inherit;text-decoration:none}
.pb-footer .socials{display:flex;gap:18px;margin-top:16px;margin-right:0;margin-bottom:18px;margin-left:0}
.pb-footer .socials a{color:#fff;display:inline-grid;place-items:center}
.pb-footer .socials .icon{width:23px;height:23px}
.pb-footer .footer-small{border-top:1px solid rgba(255, 255, 255, .14);padding-top:14px;color:#d9c7ba;font-size:11px;flex:0 0 100%;opacity:.85}
.pb-footer .partner-logos{display:flex;align-items:center;gap:24px;padding-top:12px;padding-right:14px;padding-bottom:2px;padding-left:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.pb-footer .partner-logos::-webkit-scrollbar{display:none}
.pb-footer .partner-logos img{flex:0 0 auto;width:auto;object-fit:contain;opacity:.65}
.pb-footer .partner-logos img{height:28px}
.pb-footer .footer-partners{margin-top:4px;padding-top:16px;border-top:1px solid rgba(255, 255, 255, .15);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 20px;flex:0 0 100%;order:4}
.pb-footer .footer-partners .fp-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.13em;font-weight:700;opacity:.7;margin-bottom:12px}
.pb-footer .footer-partners .fp-logos{display:flex;align-items:center;gap:24px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.pb-footer .footer-partners .fp-logos::-webkit-scrollbar{display:none}
.pb-footer .footer-partners .fp-logos img{flex:0 0 auto;width:auto;object-fit:contain;opacity:.8;filter:brightness(0) invert(1)}
.pb-footer .footer-partners .fp-logos img{height:28px}
/* Laboklin en FarmFood los uitgelicht: Laboklin kleiner, FarmFood groter dan
   de standaard partnerlogo-hoogte hierboven. Werkt in het uitklapmenu
   (.pb-shell .partner-logos) en de footer (.pb-footer), op basis van het
   alt-attribuut zodat het los staat van hoe/waar het logo precies geplaatst is. */
.pb-shell .partner-logos img[alt="Laboklin" i],
.pb-footer .partner-logos img[alt="Laboklin" i],
.pb-footer .footer-partners .fp-logos img[alt="Laboklin" i],
.pb-footer .df-fp-logos img[alt="Laboklin" i]{height:20px}
.pb-shell .partner-logos img[alt="FarmFood" i],
.pb-footer .partner-logos img[alt="FarmFood" i],
.pb-footer .footer-partners .fp-logos img[alt="FarmFood" i],
.pb-footer .df-fp-logos img[alt="FarmFood" i]{height:36px}

/* Gala en Wala optisch gelijk.

   Nagemeten in de twee SVG's: Gala heeft een viewBox van 80,66 x 23,79 en Wala
   van 44,11 x 39,66. Gala is dus een breed woordmerk met een verhouding van
   ruim 3:1, Wala is bijna vierkant. Zet je ze allebei op dezelfde hoogte van
   28px, dan wordt Gala 95px breed en Wala 31px: ruim drie keer zoveel vlak,
   terwijl ze even hoog staan.

   Optisch gelijk gaat niet over hoogte maar over hoeveel ruimte een merk
   inneemt. Bij gelijk oppervlak zou Wala op 49px moeten, en dat is in een
   footerregel te fors. 38px houdt het midden: Wala krijgt duidelijk meer
   gewicht en Gala een tikje minder, zonder dat de rij scheef gaat staan. */
.pb-shell .partner-logos img[alt="Gala" i],
.pb-footer .partner-logos img[alt="Gala" i],
.pb-footer .footer-partners .fp-logos img[alt="Gala" i],
.pb-footer .df-fp-logos img[alt="Gala" i]{height:25px}
.pb-shell .partner-logos img[alt="Wala" i],
.pb-footer .partner-logos img[alt="Wala" i],
.pb-footer .footer-partners .fp-logos img[alt="Wala" i],
.pb-footer .df-fp-logos img[alt="Wala" i]{height:38px}
.pb-footer .footer-newsletter .input-row{display:grid;grid-template-columns:1fr;gap:8px}
.pb-footer .footer-newsletter input{background:rgba(255, 255, 255, .12);border:1px solid rgba(255, 255, 255, .22);color:#fff;height:46px;border-radius:var(--r);padding-top:0;padding-right:13px;padding-bottom:0;padding-left:13px}
.pb-footer .footer-newsletter button{height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:#fff;border-radius:var(--r-md);font-weight:800;border:0;box-shadow:0 8px 16px rgba(111, 72, 49, .18);font-size:14px;padding-top:0;padding-right:18px;padding-bottom:0;padding-left:18px;font-family:Manrope, system-ui, sans-serif}
.pb-footer .footer-newsletter input::placeholder{color:rgba(255, 255, 255, .72);font-size:12px}
.pb-footer .footer-block h3 svg{width:22px;height:22px;padding-top:4px;padding-right:4px;padding-bottom:4px;padding-left:4px;color:#e6c3aa;stroke:#e6c3aa;background:transparent;border:0;border-radius:0;padding:0}
.pb-footer .footer .socials{gap:14px}
.pb-footer .footer .socials a{width:auto;height:auto;display:grid;place-items:center;background:transparent;border:0;border-radius:0;color:#fff;box-shadow:none;padding:0}
.pb-footer .footer .socials .icon{width:23px;height:23px}
.pb-footer .btn .icon{width:14px;height:14px;stroke-width:1.55}
.pb-footer .footer-partners .fp-left{flex:1 1 auto}
.pb-footer .rev-badge{display:inline-flex;align-items:center;gap:9px;color:#fff;text-decoration:none;white-space:nowrap}
.pb-footer .rev-badge .rb-score{font-family:Fraunces, serif;font-size:24px;font-weight:700;line-height:1}
.pb-footer .rev-badge .rb-meta{display:flex;flex-direction:column;gap:1px;line-height:1.15}
.pb-footer .rev-badge .rb-stars{color:#f1b24a;font-size:13px;letter-spacing:1px}
.pb-footer .rev-badge .rb-count{font-size:11px;opacity:.8;text-decoration:underline;text-underline-offset:2px}
.pb-footer .rev-badge:hover .rb-count{opacity:1}
.pb-footer .footer-main > a:first-child{flex:0 0 100%}
.pb-footer .footer-main > .footer-block{flex:1 1 180px;order:3;margin:0}
.pb-footer .footer-hours > .footer-block{flex:1 1 260px;margin:0}
.pb-footer .df-nl button{height:44px;border-radius:var(--r-md);font-weight:800;font-size:14px;padding-top:0;padding-right:18px;padding-bottom:0;padding-left:18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:Manrope, system-ui, sans-serif;background:var(--accent);color:#fff;border:0;box-shadow:0 8px 16px rgba(111, 72, 49, .18);cursor:pointer}
.pb-footer .footer-newsletter button svg{width:16px;height:16px;stroke-width:1.7}
.pb-footer .df-nl button svg{width:16px;height:16px;stroke-width:1.7}
.pb-footer .footer-newsletter button:hover{background:#b96a47}
.pb-footer .df-nl button:hover{background:#b96a47}
.pb-footer .df{display:block;background:#75543f;color:#f7ede4}
.pb-footer .df-band{width:100%}
.pb-footer .df-inner{max-width:1240px;margin-top:0;margin-right:auto;margin-bottom:0;margin-left:auto;padding-left:32px;padding-right:32px}
.pb-footer .df a{display:block;color:#f0e2d7;font-size:14px;line-height:1.85;margin:0}
.pb-footer .df p{display:block;color:#f0e2d7;font-size:14px;line-height:1.85;margin:0}
.pb-footer .df h3{font-size:15px;color:#fff;margin-top:0;margin-right:0;margin-bottom:12px;margin-left:0}
.pb-footer .df-ico{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pb-footer .df-top{display:grid;grid-template-columns:1.6fr 1fr;gap:44px;padding-top:48px;padding-bottom:36px;align-items:start}
.pb-footer .df-brand p{max-width:430px;margin-top:14px}
.pb-footer .df-logo{display:block}
.pb-footer .df-logo img{width:150px;height:auto;filter:brightness(0) invert(1) sepia(.2) saturate(.4)}
.pb-footer .df-socials{display:flex;gap:10px;margin-top:14px}
.pb-footer .df-socials a{width:38px;height:38px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:grid;place-items:center;color:#f0e2d7}
.pb-footer .df-news p{margin-bottom:14px;max-width:280px}
.pb-footer .df-news .df-addr{margin-top:16px}
.pb-footer .df-nl{display:flex;gap:8px;max-width:320px;margin-bottom:14px}
.pb-footer .df-nl input{flex:1;padding-top:11px;padding-right:13px;padding-bottom:11px;padding-left:13px;border:0;border-radius:var(--r);font:inherit}
.pb-footer .df-band-nav{border-top:1px solid rgba(255,255,255,.10)}
.pb-footer .df-nav-grid{display:grid;grid-template-columns:repeat(5, 1fr);gap:30px;padding-top:34px;padding-bottom:34px}
.pb-footer .df-band-partners{background:#5a4133;border-top:1px solid rgba(255,255,255,.08)}
.pb-footer .df-band-partners .df-inner{padding-top:18px;padding-bottom:18px}
.pb-footer .df-partners-row{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;flex-wrap:wrap}
.pb-footer .df-partners-row .rev-badge{flex:0 0 auto}
.pb-footer .df-fp-logos{display:flex;align-items:center;justify-content:flex-start;gap:34px;flex-wrap:wrap}
.pb-footer .df-fp-logos img{width:auto;opacity:.7;filter:brightness(0) invert(1)}
.pb-footer .df-fp-logos img{height:30px}
.pb-footer .df-band-bottom{background:#4b3428;color:#d9c7ba;font-size:13px}
.pb-footer .df-band-bottom .df-inner{padding-top:16px;padding-bottom:16px}
.pb-footer .df-bottom{display:flex;justify-content:space-between}
.pb-footer .df-bottom span{color:#d9c7ba}
@media (min-width:768px) and (max-width:1024px){
  .pb-footer .footer{display:block}
  .pb-footer .footer-newsletter{flex:0 0 100%}
  .pb-footer .footer-main > .footer-block{flex:1 1 0;min-width:150px}
  .pb-footer .df{display:none}
  .pb-footer .df h3{margin-bottom:0}
}
@media (max-width:767px){
  .pb-footer .footer{display:block}
  .pb-footer .footer-main{padding-top:28px;padding-right:20px;padding-bottom:24px;padding-left:20px;display:block;flex-wrap:nowrap;align-items:normal;gap:normal}
  .pb-footer .footer-hours{padding-top:18px;padding-right:20px;padding-bottom:calc(96px + env(safe-area-inset-bottom));padding-left:20px;display:block;flex-wrap:nowrap;align-items:normal;gap:normal}
  .pb-footer .footer-logo{margin-bottom:22px}
  .pb-footer .footer-newsletter{flex:0 1 auto}
  .pb-footer .footer-small{flex:0 1 auto}
  .pb-footer .footer-partners{margin-top:18px;flex:0 1 auto}
  .pb-footer .footer-newsletter button{height:42px;gap:7px;border-radius:var(--r);font-weight:850;box-shadow:none;padding-right:0;padding-left:0}
  .pb-footer .footer-main > a:first-child{flex:0 1 auto}
  .pb-footer .footer-main > .footer-block{margin-top:20px;flex:0 1 auto}
  .pb-footer .footer-hours > .footer-block{margin-top:20px;flex:0 1 auto}
  .pb-footer .footer-newsletter button svg{width:20px;height:auto}
  .pb-footer .df{display:none}
  .pb-footer .df h3{margin-bottom:0}
}
.pb-main .page-intro{padding-top:22px;padding-right:32px;padding-bottom:8px;padding-left:32px;background:#fffaf5;max-width:1240px;margin-left:auto;margin-right:auto}
/* De kop in een page-intro mag ook een h2 zijn, met precies dezelfde opmaak.

   Waarom: op de specialpagina stond de paginatitel als h1 én de naam van de
   hond als h1. Twee h1's op een pagina is er een te veel; een zoekmachine en
   een schermlezer verwachten er precies een, en die hoort de naam van de hond
   te zijn - dat is het onderwerp van de pagina. De titel erboven wordt dus een
   h2, en die mag er niet ineens kleiner uit gaan zien.

   Nagegaan dat dit niets anders raakt: .page-intro staat op drie pagina's
   (nieuwsoverzicht, reviews en de specialpagina) en op geen van drie stond al
   een h2 in dat blok. */
.pb-main .page-intro h1,
.pb-main .page-intro h2{font-family:Fraunces,serif;color:var(--brown);line-height:.96;margin:6px 0 10px}
.pb-main .page-intro p{font-size:14px;line-height:1.55;color:var(--muted);margin:0;max-width:760px}
@media (max-width:767px){
  .pb-main .page-intro{padding-left:18px;padding-right:18px;max-width:none}
  .pb-main .page-intro p{max-width:100%}
}
.sbi_item{
	border-radius:10px;
}

/*------- CART CSS -----*/
/* ==========================================================================
   pb-cart.css
   Patty Bakker — uitschuivende winkelwagen (side-cart). Global: link op ELKE
   pagina (net als pb-common.css). Staat BUITEN .pb-main — eigen .pb-cart-* scope
   (rauwe HTML uit pb-cart.php, geen Bricks-element). Gebruikt pb-common :root tokens.
   Layout à la de referentie: regel = foto + naam + qty-stepper + prijs(van/voor/
   Bespaar%), daaronder cross-sell, kortingscode, subtotaal, AFREKENEN, verzendpartner.
   ========================================================================== */

html.pb-cart-lock{overflow:hidden}
.pb-cart-scrim,.pb-cart-drawer,.pb-cart-drawer *{box-sizing:border-box}

.pb-cart-scrim{position:fixed;inset:0;z-index:280;background:rgba(38,27,20,.45);
  opacity:0;pointer-events:none;transition:opacity .3s ease}
.pb-cart-scrim.open{opacity:1;pointer-events:auto}

.pb-cart-drawer{position:fixed;top:0;right:0;bottom:0;z-index:300;width:min(430px,94vw);
  background:var(--paper,#fffaf5);color:var(--brown,#6c4d38);display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .32s cubic-bezier(.22,.61,.36,1);
  box-shadow:none;font-family:Manrope,system-ui,sans-serif}
.pb-cart-drawer.open{transform:translateX(0);box-shadow:-24px 0 50px rgba(38,27,20,.22)}

/* ---- kop ---- */
.pb-cart-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;border-bottom:1px solid var(--line,#e1d1c4)}
.pb-cart-title{font-family:Fraunces,serif;font-size:22px;line-height:1;font-weight:700;margin:0;color:var(--brown)}
.pb-cart-title .pb-cart-count{color:var(--accent,#c97a55)}
.pb-cart-close{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:0;
  background:none;color:var(--brown);cursor:pointer;border-radius:50%}
.pb-cart-close:hover{background:var(--cream,#efe6de)}
.pb-cart-close .icon{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pb-cart-empty-btn{flex:0 0 auto;margin-left:8px;height:30px;padding:0 10px;border:1px solid var(--line,#e1d1c4);
  border-radius:var(--r-pill,999px);background:none;color:var(--muted,#7d6d63);font-size:11.5px;font-weight:700;
  cursor:pointer;white-space:nowrap}
.pb-cart-empty-btn:hover{background:var(--cream,#efe6de);color:var(--brown)}
.pb-cart-empty-btn:disabled{opacity:.5;cursor:not-allowed}

/* ---- scrollbare body ---- */
.pb-cart-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 20px 12px}
.pb-cart-empty{padding:40px 0;text-align:center;color:var(--muted,#7d6d63);font-size:14px}

/* ---- winkelwagen-regels ---- */
.pb-cart-items{list-style:none;margin:0;padding:0}
.pb-cart-item{position:relative;display:grid;grid-template-columns:64px 1fr auto;gap:14px;
  align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}
.pb-ci-thumb img{width:64px;height:64px;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:#fff;display:block}
.pb-ci-info{min-width:0;padding-right:6px}
.pb-ci-name{display:block;color:var(--brown);text-decoration:none;font-weight:750;font-size:14px;
  line-height:1.28;margin-bottom:10px;padding-right:14px}
.pb-ci-name:hover{color:var(--accent)}

/* qty-stepper */
.pb-ci-qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;
  background:#fff;overflow:hidden;height:32px}
.pb-ci-qty.pb-busy{opacity:.55;pointer-events:none}
.pb-ci-qty button{width:30px;height:30px;display:grid;place-items:center;border:0;background:none;
  color:var(--brown);font-size:16px;line-height:1;cursor:pointer;font-family:inherit}
.pb-ci-qty button:hover{color:var(--accent)}
.pb-qty-n{min-width:26px;text-align:center;font-weight:800;font-size:13px;color:var(--brown)}

/* prijs (rechts): van (doorgestreept) / voor / Bespaar % */
.pb-ci-price{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;white-space:nowrap}
.pb-ci-was{color:var(--muted);text-decoration:line-through;font-size:12px;font-weight:600}
.pb-ci-now{font-family:Fraunces,serif;font-weight:700;font-size:16px;color:var(--brown)}
.pb-ci-save{color:var(--green,#66735b);font-size:11px;font-weight:800}

/* verwijderen (subtiel, rechtsboven de regel) */
.pb-ci-remove{position:absolute;top:50px;right:0;width:22px;height:22px;display:grid;place-items:center;
  border-radius:50%;color:var(--muted);text-decoration:none;transition:background .15s ease,color .15s ease}
.pb-ci-remove .icon{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pb-ci-remove:hover{background:var(--accent);color:#fff}

/* ---- Vaak samen gekocht (cross-sell scroller) ---- */
.pb-xsell{padding:16px 0 4px;border-bottom:1px solid var(--line)}
.pb-xsell h3{font-family:Manrope,system-ui,sans-serif;font-size:13px;font-weight:800;color:var(--brown);
  margin:0 0 12px}
.pb-xsell-row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  padding-bottom:8px;margin:0 0px;padding-left:20px;padding-right:20px}
.pb-xsell-row::-webkit-scrollbar{display:none}
.pb-xs-card{flex:0 0 min(300px,86%);scroll-snap-align:start;display:grid;grid-template-columns:48px 1fr auto;
  gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px;box-shadow:var(--shadow2)}
.pb-xs-thumb img{width:48px;height:48px;object-fit:cover;border-radius:10px;display:block;background:#f5f0eb}
.pb-xs-info{min-width:0}
.pb-xs-name{display:block;font-size:13px;font-weight:750;color:var(--brown);line-height:1.2;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pb-xs-price{display:flex;align-items:baseline;gap:6px;margin-top:2px}
.pb-xs-was{color:var(--muted);text-decoration:line-through;font-size:11px}
.pb-xs-now{font-family:Fraunces,serif;color:var(--brown);font-weight:700;font-size:13px}
.pb-xs-add{flex:0 0 auto;display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:999px;
  border:1px solid var(--brown);background:#fff;color:var(--brown);font-size:12px;font-weight:800;text-decoration:none;white-space:nowrap;cursor:pointer}
.pb-xs-add:hover{background:var(--brown);color:#fff}
.pb-xsell .added_to_cart{display:none!important}

/* ---- Kortingscode ---- */
.pb-coupon{border-bottom:1px solid var(--line);padding:14px 0}
.pb-coupon summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;
  cursor:pointer;font-size:13px;font-weight:800;color:var(--brown)}
.pb-coupon summary::-webkit-details-marker{display:none}
.pb-coupon .pb-chev{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}
.pb-coupon[open] .pb-chev{transform:rotate(180deg)}
.pb-coupon-form{display:flex;gap:8px;margin-top:10px}
.pb-coupon-input{flex:1;min-width:0;height:44px;border:1px solid var(--line);background:#fff;border-radius:10px;
  padding:0 12px;font:600 13px/1 Manrope,system-ui,sans-serif;color:var(--dark,#29211c)}
.pb-coupon-apply{flex:0 0 auto;height:44px;padding:0 18px;border:0;border-radius:10px;background:var(--brown);
  color:#fff;font-weight:800;font-size:13px;cursor:pointer}
.pb-coupon-apply:hover{background:var(--dark,#29211c)}

/* ---- Subtotaal + verzendnotitie ---- */
.pb-subtotal{display:flex;align-items:baseline;justify-content:space-between;padding-top:16px;font-weight:800;
  font-size:14px;color:var(--brown)}
.pb-subtotal-val{font-family:Fraunces,serif;font-weight:700;font-size:20px}
.pb-ship-note{margin:6px 0 0;font-size:12px;line-height:1.45;color:var(--muted)}

/* ---- vaste voet ---- */
.pb-cart-foot{flex:0 0 auto;padding:14px 20px calc(16px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);background:var(--paper)}
.pb-checkout{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;
  padding:0 18px;background:var(--brown);color:#fff;border-radius:12px;font-weight:800;font-size:15px;
  letter-spacing:.04em;text-transform:uppercase;text-decoration:none;box-shadow:0 10px 22px rgba(77,51,34,.22);
  transition:background .18s ease}
.pb-checkout:hover{background:var(--dark,#29211c)}
.pb-checkout .icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pb-cart-continue{display:block;text-align:center;margin-top:12px;font-size:13px;font-weight:800;
  color:var(--brown);text-decoration:none}
.pb-cart-continue:hover{color:var(--accent)}
.pb-cart-continue::after{content:"";display:block;width:150px;max-width:60%;height:2px;background:var(--accent);margin:5px auto 0}
.pb-pay{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;
  font-size:11px;color:var(--muted);text-align:center}
.pb-pay-logo{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--r);
  background:#ff6200;color:#fff;font-weight:900;font-size:11px;letter-spacing:.02em}

.pb-main .product::after,
.pb-main li.product::after,
.pb-main .pb-related ul.products li.product::after { content: none !important; }

/* zorg dat de kaart een positioneercontext is (shop-kaarten zijn dat al) */
.pb-main .product,
.pb-main li.product { position: relative; }

/* ---- kaart-hartje (shop / relevante producten) ----
   Dubbele class (.pb-fav.pb-fav-card = 0,2,0) verslaat pb-common's
   `.pb-main button{background:none;color:inherit}` (0,1,1), anders zou het
   witte cirkeltje verdwijnen. */
.pb-fav.pb-fav-card {
  position: absolute; top: 10px; right: 10px; z-index: 6;
  width: 31px; height: 31px; padding: 0;
  display: grid; place-items: center;
  border: 0; border-radius: 50%; background: #fff; cursor: pointer;
  color: #29211c; box-shadow: 0 4px 12px rgba(77, 51, 34, .13);
  transition: transform .12s ease, background .12s ease, color .12s ease;
}
.pb-fav.pb-fav-card:hover { transform: scale(1.07); }
.pb-fav-card svg { width: 17px; height: 17px; }

/* ---- gedeelde icoon-stijl (leeg = alleen omtrek, favoriet = gevuld) ---- */
.pb-fav svg {
  fill: none; stroke: currentColor; stroke-width: 1.9;
  stroke-linecap: round; stroke-linejoin: round;
  transition: fill .12s ease, stroke .12s ease;
}
.pb-fav.is-fav { color: #fff; background: var(--accent); }
.pb-fav.is-fav svg { fill: currentColor; stroke: currentColor; }
/* kleine "pop" bij het aanklikken */
.pb-fav.is-fav svg { animation: pb-fav-pop .22s ease; }
@keyframes pb-fav-pop { 0% { transform: scale(.6); } 60% { transform: scale(1.18); } 100% { transform: scale(1); } }

/* ---- grote favoriet-knop op de product-detailpagina (.fav-btn) ----
   Behoudt zijn eigen positie/afmeting uit pb-product-detail.css; hier alleen
   het icoon + de "gekozen"-status. */
.pb-main .fav-btn.pb-fav svg { width: 19px; height: 19px; }
.pb-main .fav-btn.pb-fav.is-fav { color: #fff; background: var(--accent); }

.pb-shell .pb-fav-dot{
  position:absolute; right:0; top:2px;
  width:15px; height:15px; border-radius:999px;
  background:var(--accent); color:#fff;
  font-size:9px; font-weight:800; line-height:1;
  display:grid; place-items:center;
}
/* ---- shop-cats (categorie-tegels; desktop grid, mobiel scroller) ---- */
.pb-main .shop-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  margin-bottom:13px;padding-top:0;padding-right:32px;padding-bottom:14px;padding-left:32px}
.pb-main .shop-cat{position:relative;height:140px;min-height:140px;display:flex;
  flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:15px;
  border:0;border-radius:12px;overflow:hidden;box-shadow:var(--shadow2);color:#fff;
  background:#efe6de;background-size:cover;background-position:center;isolation:isolate}
.pb-main .shop-cat::after{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(to top,rgba(38,27,20,.82) 0%,rgba(38,27,20,.34) 46%,rgba(38,27,20,0) 100%)}
.pb-main .shop-cat-title{position:relative;z-index:2;font-family:Fraunces,serif;
  font-size:21px;line-height:1.1;font-weight:600;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.28)}
.pb-main .shop-cat-count{position:relative;z-index:2;margin-top:2px;color:#fff;opacity:.9;
  font-size:11px;font-weight:600;font-family:Manrope,system-ui,sans-serif;text-shadow:0 2px 10px rgba(0,0,0,.28)}

.brx-body {
	min-height: 100dvh;
}
/* ==========================================================================
   Meelopende logostrook (pb-logo-marquee.js)
   De strook zelf blijft een gewone scrollstrook; zodra het script een baan
   heeft ingebouwd neemt .pb-marquee-aan het over. Staat JavaScript uit, dan
   verandert er niets en kun je nog steeds vegen.
   ========================================================================== */

.pb-shell .partner-logos.pb-marquee-aan,
.pb-footer .partner-logos.pb-marquee-aan,
.pb-footer .footer-partners .fp-logos.pb-marquee-aan,
.pb-footer .df-fp-logos.pb-marquee-aan{
  overflow:hidden;
  display:block;
  /* Aan de randen uitvagen, zodat logo's niet halverwege lijken afgesneden. */
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent);
}

.pb-marquee-baan{
  display:flex;
  width:max-content;
  animation:pb-marquee 24s linear infinite;
}
.pb-marquee-spoor{
  display:flex;
  align-items:center;
  gap:24px;
  padding-right:24px; /* zelfde tussenruimte op de naad tussen beide sporen */
  flex:0 0 auto;
}

@keyframes pb-marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* Even stilzetten als iemand er met de muis op staat, om een logo te kunnen lezen. */
@media (hover:hover){
  .pb-marquee-aan:hover .pb-marquee-baan{animation-play-state:paused}
}

@media (prefers-reduced-motion:reduce){
  .pb-marquee-baan{animation:none}
}

/* ==========================================================================
   Fotostroken: snappen mét respect voor de zijmarge
   --------------------------------------------------------------------------
   De strook heeft 18px padding links en rechts, maar de foto's stonden op
   mobiel tóch tegen de schermrand. Oorzaak: scroll-snap-align:start snapt naar
   de rand van het SCROLLVENSTER, niet naar de rand van de inhoud. De browser
   schoof de strook dus precies 18px op (gemeten scrollLeft was exact 18) en
   at de marge op.

   scroll-padding vertelt de snap-berekening dat die 18px meetelt. Eén regel,
   geldt overal waar een .photo-strip staat.
   ========================================================================== */
.pb-main .photo-strip{scroll-padding-inline:18px}

/* ==========================================================================
   Lege datumbox
   .date-box heeft een bruine achtergrond en min-height:58px. Is hij niet
   gevuld — bijvoorbeeld omdat de loop-template in Bricks de datum nog niet
   ophaalt — dan blijft er een bruin vierkant staan dat eruitziet als een
   kapotte afbeelding. Liever niets dan dat.

   LET OP het tweede deel. Alleen `display:none` is niet genoeg: het
   .event-item eromheen is een raster van `58px 1fr`. Valt de datumbox weg,
   dan schuift de tekst door naar die eerste kolom van 58px en breekt de titel
   op één woord per regel. Het raster moet dus mee terug naar één kolom.
   ========================================================================== */
.pb-main .date-box:empty{display:none}
.pb-main .event-item:has(.date-box:empty){grid-template-columns:1fr}

/* ==========================================================================
   GEDEELDE LAAG — één stijl voor de hele site
   --------------------------------------------------------------------------
   Aanleiding: er stonden drie verschillende FAQ-schema's op de site
   (.faq-list op werkwijze, .faq-list op verwachte nestjes met eigen regels,
   .pb-ct-faq-item op contact) en minstens acht knopklassen met elk hun eigen
   ronding en hoogte. Zelfs .cta was intern niet consistent: eerder in dit
   bestand staat hij één keer op border-radius 3px en één keer op var(--r-md).

   Wat hier gebeurt:
     1. Tokens voor knopronding, knophoogte en afbeeldingsronding.
     2. Eén FAQ-uitklapper met plusteken, voor élke <details> op de site.
     3. Knoppen gelijkgetrokken op vorm — kleur blijft per pagina.

   De per-pagina FAQ-regels zijn uit pb-werkwijze.css, pb-verwachte-nesjes.css
   en pb-contact.css verwijderd. Dat moest: paginabestanden laden ná dit
   bestand en zouden anders altijd winnen.
   ========================================================================== */

:root{
  --btn-radius:10px;
  --btn-height:46px;   /* 46px is de ondergrens waarbij mistikken zeldzaam wordt */
  --img-radius:14px;
  --img-radius-lg:18px;
}

/* --------------------------------------------------------------------------
   1) FAQ — één uitklapper voor de hele site

   Bewust op `details` in het algemeen en niet op de drie klassenschema's: de
   FAQ's staan in minstens vier verschillende containers (.faq-list,
   .pb-ct-faq, .faq.clean en losse secties), en achter elke nieuwe naam
   aanjagen houdt geen op. Zo krijgt een nieuwe FAQ, waar en met welke klasse
   dan ook, meteen dezelfde vorm.

   MAAR: niet elke <details> op de site is een FAQ. Ik had dat eerder wél
   aangenomen en dat was fout — de gezondheidsuitslagen op de honddetailpagina
   kregen daardoor een kaderrand en een plusje dwars over de uitslag heen.
   Deze vier zijn geen FAQ en worden hieronder overal uitgesloten:

     .health-accordion *   gezondheidsuitslagen (hond + pup detail)
     .dna-item             genetische gegevens (hond + pup detail)
     .pb-snel-uitklap      mobiele snel-invoer voor nestjes
     .pb-coupon            kortingscode in de winkelwagen

   De uitsluiting staat in `:not(:where(...))`. Dat `:where()` is er niet voor
   niets: zonder die wrapper zou `:not()` het gewicht van zijn zwaarste
   argument overnemen en zouden deze regels ineens zwaarder wegen dan de
   pagina-CSS die ze soms hoort te overschrijven. Met `:where()` blijft het
   gewicht precies gelijk aan wat er stond.

   Komt er een nieuwe uitklapper bij die géén FAQ is, dan hoort hij in dit
   rijtje — op elf plekken hieronder, dus zoek op `.pb-snel-uitklap`.
   -------------------------------------------------------------------------- */

/* Tussenruimte op de ITEMS, niet op de container. Er blijken vier
   verschillende FAQ-containers te bestaan (.faq-list, .pb-ct-faq, .faq.clean
   en losse secties), en achter elke nieuwe naam aanjagen houdt geen op. Een
   marge tussen opeenvolgende uitklappers werkt ongeacht waar ze in staan.

   In de containers die wél een raster zijn zet ik die marge weer op nul,
   anders krijgen de items in de tweede en derde kolom een marge bovenaan die
   daar niet hoort. Daar doet `gap` het werk. */
.pb-main details + details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *)){margin-top:8px}

/* Vijf namen voor hetzelfde ding - .faq-list, .faq, .pb-ct-faq, .pb-su-faq en
   .pb-meet-faq - omdat elke pagina zijn eigen naam meekreeg. Ze staan hier
   allemaal bij elkaar, want ze horen zich ook allemaal hetzelfde te gedragen.

   Altijd ÉÉN kolom. Contact, /inschrijven/ en /afspraak-aanvragen/ zetten er
   drie naast elkaar; dan lees je een lijst vragen als een raster van blokjes
   en moet je zoeken waar de volgende vraag staat. Onder elkaar is er maar één
   leesrichting. Die kolominstelling staat daarom hier en niet meer in de
   paginabestanden, zodat een nieuwe FAQ-sectie er niet opnieuw naast kan
   groeien. */
.pb-main .faq-list,
.pb-main .faq,
.pb-main .pb-ct-faq,
.pb-main .pb-su-faq,
.pb-main .pb-meet-faq{display:grid;grid-template-columns:1fr;gap:8px}

.pb-main .faq-list details + details,
.pb-main .faq details + details,
.pb-main .pb-ct-faq details + details,
.pb-main .pb-su-faq details + details,
.pb-main .pb-meet-faq details + details{margin-top:0}

.pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *)){
  display:block;
  width:100%;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--img-radius);
  background:var(--paper, #fffaf5);
}

.pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *)) > summary{
  position:relative;
  display:block;
  padding:16px 50px 16px 18px;
  color:var(--brown);
  font-family:Manrope, system-ui, sans-serif;
  font-size:15px;
  font-weight:850;
  line-height:1.4;
  cursor:pointer;
  /* Het standaard driehoekje weg — in twee smaken, want Safari gebruikt nog
     het oude ::-webkit-details-marker. */
  list-style:none;
}
.pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *)) > summary::-webkit-details-marker{display:none}
.pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *)) > summary::marker{content:""}

/* Plusteken dat bij openen naar een kruisje draait. */
.pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *)) > summary::after{
  content:"";
  position:absolute;
  top:50%;
  right:18px;
  margin-top:-8px;
  width:16px;
  height:16px;
  background:var(--accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/16px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/16px no-repeat;
  transition:transform .22s ease;
}
.pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *))[open] > summary::after{transform:rotate(45deg)}
/* Geen scheidingslijn tussen vraag en antwoord: die knipt de uitklapper
   visueel in twee blokjes, terwijl het één geheel is. De sprong in
   letterdikte en kleur maakt het onderscheid al duidelijk genoeg. Alleen de
   onderruimte van de vraag iets terug, zodat het antwoord er dichter onder
   komt te staan. */
.pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *))[open] > summary{padding-bottom:6px}

/* Alles ná de samenvatting is het antwoord, ongeacht of dat een <p>, <ul>
   of een los blok is. */
.pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *)) > *:not(summary){
  margin:0;
  padding:0 18px 16px;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
}
.pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *)) > *:not(summary) + *:not(summary){padding-top:0}

@media (prefers-reduced-motion:reduce){
  .pb-main details:not(:where(.dna-item, .pb-coupon, .pb-snel-uitklap, .health-accordion *)) > summary::after{transition:none}
}

/* --------------------------------------------------------------------------
   2) Knoppen — zelfde vorm, eigen kleur

   Alleen ronding, minimumhoogte en typografie worden hier gelijkgetrokken.
   Achtergrond en tekstkleur laat ik met rust: die horen bij de context
   (licht op donker, accent op licht) en verschillen terecht per pagina.
   -------------------------------------------------------------------------- */

.pb-main .cta,
.pb-main .hero-btn,
.pb-main .light-btn,
.pb-main .btn-line-full,
.pb-main .pb-ct-btn,
.pb-main .pb-gz-btn,
.pb-main .pb-fk2-btn,
.pb-main .pb-nws-read{
  border-radius:var(--btn-radius);
  min-height:var(--btn-height);
  font-family:Manrope, system-ui, sans-serif;
  font-weight:850;
  letter-spacing:-.01em;
}

/* De ronde pijlknoppen bij de carrousels zijn bewust rond en blijven dat. */
.pb-main .arrow-btn{border-radius:50%}

/* --------------------------------------------------------------------------
   3) Afbeeldingen — dezelfde ronding overal

   Losse foto's in stroken en rasters kregen per pagina 4px, var(--r) of
   var(--r-lg). Eén maat is rustiger. Foto's die de volledige kaart vullen
   (achter een verloop, in een overlaykaart) blijven vierkant: die worden al
   door de ronding van de kaart zelf afgesneden.
   -------------------------------------------------------------------------- */

.pb-main .photo-strip img,
.pb-main .gallery-swipe img{border-radius:var(--img-radius)}

/* ==========================================================================
   CATEGORIE-TEGELS (.shop-cats / .shop-cat)
   --------------------------------------------------------------------------
   Deze tegels dragen een inline background-image en horen dus fotokaarten te
   zijn met een verloop en witte tekst erover. Die opmaak stond alleen in
   pb-shop.css en pb-index.css. Op /behandelingen-page/ laadt geen van beide,
   waardoor de tegels daar kale tekstblokjes waren.

   Nu staat het component hier, zodat het overal hetzelfde is. pb-shop.css en
   pb-index.css laden hierna en mogen het aantal kolommen per pagina nog
   bijstellen; de tegel zelf hoeft niet meer herhaald te worden.
   ========================================================================== */

.pb-main .shop-cats{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:14px;
  margin-bottom:16px;
}

.pb-main .shop-cat{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  height:140px;
  min-height:140px;
  padding:15px;
  border:0;
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--shadow2);
  color:#fff;
  text-decoration:none;
  background:#efe6de;
  background-size:cover;
  background-position:center;
  isolation:isolate;
  transition:transform .22s ease, box-shadow .22s ease;
}

/* Verloop van onderaf, zodat de titel leesbaar blijft ongeacht de foto. */
.pb-main .shop-cat::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:linear-gradient(to top, rgba(38,27,20,.82) 0%, rgba(38,27,20,.34) 46%, rgba(38,27,20,0) 100%);
}

.pb-main .shop-cat-title{
  position:relative;
  z-index:2;
  font-family:Fraunces, Georgia, serif;
  font-size:21px;
  line-height:1.1;
  font-weight:600;
  color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,.28);
}

.pb-main .shop-cat-count{
  position:relative;
  z-index:2;
  margin-top:2px;
  color:#fff;
  opacity:.9;
  font-family:Manrope, system-ui, sans-serif;
  font-size:11px;
  font-weight:600;
}

@media (hover:hover){
  .pb-main .shop-cat:hover{
    transform:translateY(-3px);
    box-shadow:0 16px 30px rgba(77,51,34,.20);
  }
}

/* Op smalle schermen een veegbare strook: vier tegels naast elkaar worden
   daar elk zo'n 67px breed en dan is er van de foto niets meer te zien. */
@media (max-width:767px){
  .pb-main .shop-cats{
    display:flex;
    grid-template-columns:none;
    gap:10px;
    overflow-x:auto;
    scroll-padding-inline:18px;
    scrollbar-width:none;
  }
  .pb-main .shop-cats::-webkit-scrollbar{display:none}
  .pb-main .shop-cat{flex:0 0 188px}
}

@media (prefers-reduced-motion:reduce){
  .pb-main .shop-cat{transition:none}
}

/* --------------------------------------------------------------------------
   Bureaubladheader tussen 1025 en 1200px

   Gevonden op /doodles/het-ras/, maar het speelt op elke pagina: rond 1100px
   past de header net niet. Het menu vraagt 670px, plus logo (104), twee
   iconen (68), de knop (156) en vijf tussenruimtes (70) is dat 1068px, terwijl
   er bij 1100px maar 1036px tussen de marges zit. De knop heeft
   `white-space:nowrap` en `flex:0 0 auto`, dus die schoof gewoon 36px voorbij
   de rechtermarge — en de hele site kreeg daardoor een horizontale schuifbalk.

   Onder 1025px staat de hamburger al, dus dit gaat puur om de band waarin de
   bureaubladnavigatie wél getoond wordt maar krap zit. Iets kleinere
   tussenruimtes brengen het precies binnen de marge (bij 1025px, het krapst,
   eindigt de knop nu exact op de binnenrand) zonder de opzet te veranderen.
   -------------------------------------------------------------------------- */

@media (min-width:1025px) and (max-width:1200px){
  .pb-shell .header{gap:10px}
  .pb-shell .d-menu > li > a{padding-left:4px;padding-right:4px}
  .pb-shell .d-cta{padding-left:12px;padding-right:12px;font-size:12.5px}
}

/* ==========================================================================
   Iets alleen op desktop of alleen op mobiel tonen
   ==========================================================================
   Twee klassen die je in Bricks op elk element kunt zetten, zodat je daarvoor
   geen aparte CSS per geval meer hoeft te schrijven.

   De grens ligt op 768px, dezelfde die de rest van dit thema aanhoudt. Ging
   die hier ergens anders lopen, dan zou een element net wél of net niet
   meekomen met de omslag van de opmaak eromheen.

   display:none en niet visibility of opacity: een verborgen element mag geen
   ruimte innemen, en een schermlezer hoort het ook niet voor te lezen.
   ========================================================================== */

@media (max-width: 767px){
  .alleen-desktop{ display: none !important }
}

@media (min-width: 768px){
  .alleen-mobiel{ display: none !important }
}
