/* Boerderij De Breken, Heerde. Statische site, geen framework. */
@font-face{font-family:"Source Sans";src:url("fonts/sourcesans-var.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

:root{
  --papier:#FFFFFF; --vlak:#F3F4F0; --lijn:#DFE2DA;
  --inkt:#1E2A1B; --tekst:#2E3A2B; --stil:#66705F;
  --groen:#3F6B2F; --groen-donker:#32561F; --groen-licht:#E7EEDF;
  --kop:"Source Sans",system-ui,-apple-system,"Segoe UI",sans-serif; --luik:#3E5F85; --luik-donker:#2F4A69; --body:"Source Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --maat:1120px; --goot:16px;
}
@media (min-width:720px){:root{--goot:32px}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--tekst);font-family:var(--body);font-size:18px;line-height:1.6;text-wrap:pretty}
@media (min-width:720px){body{font-size:19px}}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--kop);color:var(--inkt);line-height:1.15;margin:0 0 .5em;font-weight:600;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:clamp(32px,3.8vw,46px)}
h2{font-size:clamp(24px,2.8vw,32px)}
h3{font-size:clamp(20px,2vw,24px)}
p{margin:0 0 1em;max-width:62ch}
a{color:var(--groen-donker);text-underline-offset:3px}
a:hover{color:var(--inkt)}
:focus-visible{outline:3px solid var(--groen);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--inkt);color:#fff;padding:8px 12px;z-index:10}
.skip:focus{left:8px}

.wrap{max-width:var(--maat);margin:0 auto;padding:0 var(--goot)}

/* Kopbalk */
.kop{border-bottom:1px solid var(--lijn);background:var(--papier)}
.kop .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding-top:14px;padding-bottom:14px}
.merk{display:block;text-decoration:none}
.merk img{height:32px;width:auto}
.merk small{display:block;font-size:13px;color:var(--stil);margin-top:4px}
.nav{display:flex;flex-wrap:wrap;gap:4px 6px;margin:0;padding:0;list-style:none}
.nav a{display:inline-block;padding:10px 10px;text-decoration:none;color:var(--tekst);border-radius:6px;font-weight:500}
.nav a:hover{background:var(--vlak);color:var(--inkt)}
.nav a[aria-current="page"]{color:var(--inkt);font-weight:700;box-shadow:inset 0 -2px 0 var(--groen)}
@media (max-width:719px){.kop .wrap{flex-direction:column;align-items:flex-start}.nav{margin-left:-10px}}

/* Acties en knoppen */
.acties{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-top:8px}
.knop{display:inline-flex;align-items:center;min-height:48px;padding:11px 22px;background:var(--groen);color:#fff;border-radius:8px;text-decoration:none;font-weight:600;border:0;font:inherit;font-weight:600;cursor:pointer}
.knop:hover{background:var(--groen-donker);color:#fff}
.knop.licht{background:transparent;color:var(--groen-donker);border:1.5px solid var(--groen)}
.knop.licht:hover{background:var(--groen-licht)}
.tel{font-weight:600;color:var(--inkt);text-decoration:none}
.tel:hover{text-decoration:underline}

/* Secties */
.sectie{padding:48px 0}
@media (min-width:860px){.sectie{padding:72px 0}}
.kop-sectie{padding-top:40px;padding-bottom:40px}
@media (min-width:860px){.kop-sectie{padding-top:48px;padding-bottom:48px}}
.kop-sectie .lead{font-size:clamp(18px,1.6vw,21px)}
.kop-sectie + .sectie{padding-top:48px}
.sectie.vlak{background:var(--vlak)}
.sectie.groen{background:var(--groen-licht)}
.sectie.groen .knop.licht{background:#fff}
.sectie.donker{background:var(--inkt);color:#E8EBE1}
.sectie.donker h2,.sectie.donker h3{color:#fff}
.sectie.donker a{color:#C9DBB4}
.intro{margin-bottom:28px}
.intro p{font-size:clamp(17px,1.4vw,20px)}

/* Feitenlijst (in het verblijf) */
.feiten{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 24px;list-style:none;padding:0;margin:0 0 24px}
.feiten li{padding:6px 0 6px 18px;position:relative;line-height:1.4}
.feiten li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--groen)}

/* Vanaf de deur */
.deur{list-style:none;padding:0;margin:0;display:grid;gap:0 40px}
@media (min-width:720px){.deur{grid-template-columns:1fr 1fr}}
.deur li{display:flex;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--lijn)}
.deur .naam{flex:0 1 auto;min-width:0}
.deur .naam small{display:block;color:var(--stil);font-size:15px}
.deur .km{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--inkt);font-weight:600}
.deur .stip{flex:1 1 24px;border-bottom:2px dotted var(--lijn);transform:translateY(-6px);min-width:16px}

/* Gasten */
.gasten{display:grid;gap:24px}
@media (min-width:860px){.gasten{grid-template-columns:1fr 1fr 1fr;gap:32px}}
.cijfer{font-family:var(--kop);font-size:46px;line-height:1;color:var(--inkt);margin-bottom:6px}
.cijfer small{font-family:var(--body);font-size:16px;color:var(--stil);margin-left:6px}
.citaat{font-family:var(--kop);font-size:clamp(20px,2vw,26px);color:var(--inkt);margin:0 0 12px;max-width:none}
.bron{color:var(--stil);font-size:15px;margin:0}

/* Gastheer en gastvrouw */
.twee{display:grid;gap:28px}
@media (min-width:860px){.twee{grid-template-columns:1fr 1fr;gap:56px;align-items:center}}
.twee img{border-radius:12px;aspect-ratio:3/2;object-fit:cover}

/* Fotorij */
.fotos figure{margin:0}
.fotos{display:grid;gap:12px;grid-template-columns:1fr 1fr}
@media (min-width:720px){.fotos{grid-template-columns:2fr 1fr 1fr;gap:16px}}
.fotos img{border-radius:10px;aspect-ratio:1;object-fit:cover;width:100%;height:100%}
.fotos .groot{grid-column:span 2;grid-row:span 2}
.fotos .groot img{aspect-ratio:auto}
@media (max-width:719px){.fotos .groot{grid-column:span 2;grid-row:auto}.fotos .groot img{aspect-ratio:3/2}}
figcaption,.noot{color:var(--stil);font-size:15px}

/* Prijzen */
.prijzen{width:100%;border-collapse:collapse;margin:0 0 20px;max-width:640px}
.prijzen th,.prijzen td{text-align:left;padding:12px 0;border-bottom:1px solid var(--lijn);vertical-align:top}
.prijzen th{font-weight:600;color:var(--inkt)}
.prijzen td.bedrag{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--inkt);font-weight:600}
.prijzen caption{text-align:left;font-family:var(--kop);font-size:clamp(24px,2.8vw,32px);line-height:1.15;letter-spacing:-.01em;color:var(--inkt);padding:0 0 12px;font-weight:600}
.kolommen{display:grid;gap:32px}
@media (min-width:860px){.kolommen{grid-template-columns:1fr 1fr;gap:64px}}
ul.lijst{padding-left:20px;margin:0 0 1em}
ul.lijst li{margin-bottom:6px}

/* Contact */
.contactblok{background:#fff;border:1px solid var(--lijn);border-radius:12px;padding:24px}
.contactblok dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 20px}
.contactblok dt{color:var(--stil)}
.contactblok dd{margin:0;color:var(--inkt);font-weight:500}
.kaart{display:block;position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--lijn)}
.kaart img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.kaart .bronregel{position:absolute;right:0;bottom:0;font-size:11px;color:#555;background:rgba(255,255,255,.8);padding:2px 6px}

/* Volkslied */
details.lied{border-top:1px solid var(--lijn);border-bottom:1px solid var(--lijn);padding:12px 0;margin-top:32px;max-width:640px}
details.lied summary{cursor:pointer;font-family:var(--kop);font-size:20px;color:var(--inkt);font-weight:600;padding:8px 0}
details.lied p{white-space:pre-line;color:var(--tekst)}

/* Voet */
.voet{background:var(--inkt);color:#C6CCBD;padding:40px 0 32px;margin-top:0}
.voet .wrap{display:grid;gap:24px}
@media (min-width:720px){.voet .wrap{grid-template-columns:2fr 1fr 1fr;gap:40px}}
.voet h2{color:#fff;font-size:22px}
.voet a{color:#fff}
.voet .klein a{color:#B9C2AE}
.voet p{margin:0 0 6px}
.voet .klein{font-size:14px;color:#8E9784;line-height:1.7;margin-top:24px;grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:16px;max-width:none}

.voet .maker{margin-top:12px!important;border-top:0!important;padding-top:0!important;display:flex;align-items:center;gap:8px}
.voet .maker img{height:12px;width:auto;opacity:.85;display:inline-block}
.voet .maker a:hover img{opacity:1}

/* Scorepil in de opening */
.sterren{display:inline-flex;gap:2px;color:#E8A700;vertical-align:middle}
.sterren svg{fill:currentColor}

/* Beoordelingen */
.reviews-sectie{background:#fff}
.reviews-kop{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 32px;margin-bottom:28px}
.reviews-kop h2{margin:0}
.score-regel{display:flex;align-items:center;gap:12px;margin:0}
.score-regel .cijfer{font-family:var(--kop);font-size:40px;font-weight:600;color:var(--inkt);line-height:1}
.score-regel .bron{color:var(--stil);font-size:15px}
.reviews{display:grid;gap:20px}
@media (min-width:860px){.reviews{grid-template-columns:7fr 5fr;gap:32px;align-items:start}}
.review-groot{margin:0;background:var(--vlak);border-radius:8px;padding:32px 36px;display:flex;flex-direction:column;gap:16px;position:relative}
.review-groot::before{content:"“";position:absolute;top:6px;left:22px;font-family:var(--kop);font-size:110px;line-height:1;color:var(--groen);opacity:.22}
.review-groot p{margin:0;font-family:var(--kop);font-size:clamp(19px,1.8vw,24px);line-height:1.4;color:var(--inkt);position:relative}
.review-groot footer,.review footer{font-size:15px;color:var(--stil);margin-top:auto}
.review-groot footer strong,.review footer strong{color:var(--inkt);font-weight:600}
.reviews-lijst{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.review{background:#fff;border:1px solid var(--lijn);border-radius:8px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.review p{margin:0;font-size:16px}
.reviews-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin:24px 0 0}

/* Handschrift van Nel */
.hand{display:inline-block;height:1em;width:auto;vertical-align:-.1em}
h2 .hand{height:1.15em}
.kicker{margin:0 0 12px;font-size:26px;line-height:1}
.kicker .hand{height:1em}
.hand-tekst{color:var(--groen)}
.kop-score{display:none;align-items:center;gap:6px;font-size:14px;color:var(--stil);text-decoration:none;white-space:nowrap}
.kop-score strong{color:var(--inkt)}
@media (min-width:1100px){.kop-score{display:inline-flex}}

/* Opening */
.opening{overflow:hidden}
.opening-grid{display:grid;gap:28px;padding-top:32px;padding-bottom:40px}
@media (min-width:860px){.opening-grid{grid-template-columns:6fr 6fr;align-items:center;gap:48px;padding-top:40px;padding-bottom:48px}.opening-tekst{padding:0}}
.opening p.lead{font-size:clamp(18px,1.6vw,21px)}
.opening-foto{margin:0;position:relative}
.opening-foto img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;display:block}
@media (min-width:860px){.opening-foto img{aspect-ratio:4/3;max-height:440px}}
.opening-foto .beeld{overflow:hidden;border-radius:12px}
@media (prefers-reduced-motion:no-preference){
  .opening-foto img{animation:adem 28s ease-in-out infinite alternate}
  @keyframes adem{from{transform:scale(1)}to{transform:scale(1.05)}}
}

/* Verblijven, redactioneel */
.verblijven{display:grid;gap:40px}
@media (min-width:720px){.verblijven{grid-template-columns:1fr 1fr;gap:48px}}
.verblijf{display:flex;flex-direction:column}
.verblijf-foto{display:block;border-radius:12px;overflow:hidden}
.verblijf-foto img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .5s ease}
.verblijf:hover .verblijf-foto img{transform:scale(1.03)}
.verblijf .tekst{padding:20px 0 0;display:flex;flex-direction:column;gap:8px;flex:1}
.verblijf h3{margin:0;font-size:clamp(24px,2.4vw,30px)}
.verblijf p{margin:0}
.verblijf .prijs{color:var(--stil);font-size:16px}
.verblijf .prijs strong{color:var(--inkt);font-size:19px}
.verblijf .meer{margin-top:auto;align-self:flex-start}
.verblijf .prijs{margin-bottom:10px}
.verblijf{position:relative}
.verblijf .meer::after{content:"";position:absolute;inset:0}


.voet .totziens{margin:0 0 18px;font-size:30px;line-height:1}
.voet .totziens .hand{filter:brightness(0) invert(1);opacity:.9}
.voet .totziens .hand-tekst{color:#fff}

.scoreregel{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:22px 0 0;font-size:15px;color:var(--stil)}
.scoreregel strong{color:var(--inkt)}
.scoreregel .punt{color:var(--lijn)}
.handtekening{margin:24px 0 0;font-size:30px;line-height:1}
.handtekening .hand{opacity:.9}

/* Band met beoordelingen */
.gastenboek{background:var(--vlak);padding:64px 0 72px;overflow:hidden}
.gastenboek-kop{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-bottom:28px}
.gastenboek-kop h2{margin:0 0 6px}
.gastenboek-kop .bron{margin:0;color:var(--stil);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gastenboek-kop .bron strong{color:var(--inkt)}
.gastenboek-links{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
.gastenboek-links .knop{min-height:44px;padding:9px 18px;font-size:15px}
.band-venster{overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent)}
.band-spoor{display:flex;width:max-content;gap:16px}
.band-rij{display:flex;gap:16px;list-style:none;margin:0;padding:0 8px 0 0;align-items:stretch}
.gast{flex:0 0 auto;width:360px;background:#fff;border-radius:16px;padding:28px 30px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 2px rgba(30,42,27,.04),0 12px 32px -16px rgba(30,42,27,.25)}
.gast .sterren{gap:3px}
.gast p{margin:0;font-size:18px;line-height:1.5;color:var(--inkt)}
.gast footer{margin-top:auto;display:flex;align-items:center;gap:12px;padding-top:6px}
.gast .initiaal{flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:var(--groen-licht);color:var(--groen-donker);font-weight:600;display:grid;place-items:center;font-size:17px}
.gast footer strong{display:block;color:var(--inkt);font-weight:600;font-size:16px;line-height:1.2}
.gast footer small{display:block;color:var(--stil);font-size:14px}
@media (prefers-reduced-motion:no-preference){
  .band-spoor{animation:schuif 90s linear infinite}
  .gastenboek:hover .band-spoor,.gastenboek:focus-within .band-spoor{animation-play-state:paused}
  @keyframes schuif{from{transform:translateX(0)}to{transform:translateX(-50%)}}
}
@media (prefers-reduced-motion:reduce){.band-venster{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.band-rij[aria-hidden]{display:none}}
