@import url("https://fonts.googleapis.com/css2?family=Besley:ital,wght@0,400..900;1,400..900&family=Ubuntu+Sans:ital,wght@0,400..700;1,400..700&display=swap");

:root { --salmon:#f49464; --pale:#fdf1ec; --header:#fde4d6; --brown:#3d2519; --orange:#a84a26; --green:#3a7d2f; --green-pale:#e8f3e4; --gray:#6b5e57; --serif:Besley, Georgia, serif; --sans:"Ubuntu Sans", system-ui, sans-serif; --condensed:"Ubuntu Sans", system-ui, sans-serif; }
* { box-sizing:border-box; }
body { margin:0; background:var(--pale); color:var(--brown); font:400 1.05rem/1.55 var(--sans); }
a { color:var(--orange); }
h1,h2,h3 { font-family:var(--serif); line-height:1.16; }
h1 { font-size:clamp(2.3rem,7vw,4.7rem); margin:0; }
h2 { font-size:clamp(1.65rem,4vw,2.35rem); margin:0; }
h3 { font-size:1.25rem; margin:0; }
p { margin:.7rem 0; }
.site-header { display:flex; align-items:center; gap:.7rem; padding:1rem max(1.25rem, calc((100% - 68rem)/2)); background:var(--header); }
.brand { display:flex; align-items:center; gap:.65rem; color:var(--orange); font:600 1.1rem/1.1 var(--serif); text-decoration:none; }
.brand img { width:4.75rem; height:auto; }
@media (min-width:48rem) { .brand img { width:6rem; } .brand { font-size:1.4rem; } }
.site-nav { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:.35rem; padding:.1rem max(1.25rem, calc((100% - 68rem)/2)) .8rem; background:var(--header); }
.site-nav a { display:flex; align-items:center; justify-content:center; min-height:3.2rem; padding:.4rem .15rem; border-radius:.4rem; color:var(--brown); background:#fff; text-align:center; text-decoration:none; font:600 .84rem/1.2 var(--condensed); }
.site-nav a.current { color:#fff; background:var(--orange); }
main { width:min(68rem, calc(100% - 2.5rem)); margin:auto; padding:1.5rem 0 3rem; }
.hero { position:relative; display:grid; align-items:end; min-height:34rem; margin-bottom:1.5rem; border-radius:.8rem; overflow:hidden; background:linear-gradient(0deg, rgb(61 37 25 / .92) 0%, rgb(61 37 25 / .5) 55%, rgb(61 37 25 / .12) 100%), url("/assets/ferme/famille-yann-arthus-bertrand-9aca32a0.jpg") center / cover; }
.hero-copy { position:relative; max-width:43rem; padding:clamp(1.5rem, 5vw, 3.5rem); color:#fff; }
.hero h1 { max-width:17ch; color:#fff; }
.hero p { max-width:38rem; }
.hero .button { color:var(--brown); background:#fff; }
.eyebrow { margin:0; color:var(--gray); font:600 .85rem/1.3 var(--condensed); letter-spacing:.05em; text-transform:uppercase; }
.event-date { margin:.75rem 0 0; color:var(--gray); font-size:1rem; font-weight:600; }
.button { display:inline-block; padding:.8rem 1rem; border-radius:.45rem; color:#fff; background:var(--orange); text-decoration:none; font:600 1.05rem/1.2 var(--condensed); }
.text-link { font-weight:600; }
.card { padding:1.1rem; border-radius:.75rem; background:#fff; box-shadow:0 1px 3px rgb(61 37 25 / .12); }
.opening { margin-bottom:1.5rem; }
.event-flash { display:grid; grid-template-columns:7rem 1fr; gap:1rem; align-items:start; margin:1.5rem 0; padding:1rem; border:2px solid var(--orange); border-radius:.75rem; background:#fff; }
.event-flash img { width:7rem; height:7rem; border-radius:.4rem; object-fit:cover; }
.event-flash h2 { font-size:1.45rem; }
.event-flash p { margin:.4rem 0; }
.event-flash p:first-of-type { font-weight:600; }
@media (max-width:30rem) { .event-flash { grid-template-columns:1fr; } .event-flash img { width:100%; height:auto; max-height:18rem; aspect-ratio:auto; object-fit:contain; background:var(--pale); } }
.content-section { margin:2rem 0; }
.content-section > * + * { margin-top:1rem; }
.cards,.products { display:grid; gap:1rem; }
.event-card img,.recipe-card img { width:100%; border-radius:.45rem; aspect-ratio:16/10; object-fit:cover; }
.event-card p,.recipe-card p { font-size:.95rem; }
.opening-hours { width:100%; border-collapse:collapse; background:#fff; box-shadow:0 1px 3px rgb(61 37 25 / .12); }
.opening-hours th,.opening-hours td { padding:.8rem .7rem; border-bottom:1px solid #ead9cf; text-align:left; vertical-align:top; }
.opening-hours thead { color:#fff; background:var(--orange); font-family:var(--condensed); }
.opening-hours tbody th { width:5.8rem; font-family:var(--serif); font-size:1.05rem; }
.opening-hours td div + div { margin-top:.7rem; padding-top:.7rem; border-top:1px solid #ead9cf; }
.opening-hours td span { color:var(--gray); }
.opening-hours .closed { color:var(--gray); background:#f7f3f0; }
.opening-hours .closed th,.opening-hours .closed td { padding-block:.55rem; }
.table-scroll { overflow-x:auto; border-radius:.75rem; }
@media (max-width:30rem) { .opening-hours th,.opening-hours td { padding:.65rem .45rem; font-size:.92rem; } .opening-hours tbody th { width:4.8rem; } }
.two-columns { display:grid; gap:1.5rem; }
.two-columns > div { padding:1.1rem; border-radius:.75rem; background:var(--green-pale); }
.review-cards { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(17rem, 82%); gap:1rem; overflow-x:auto; margin-top:1rem; padding:.2rem .2rem .8rem; scroll-snap-type:x mandatory; }
.review-card { display:grid; align-content:space-between; min-height:13rem; margin:0; padding:1.2rem; border-radius:.75rem; background:#fff; box-shadow:0 1px 3px rgb(61 37 25 / .12); scroll-snap-align:start; }
.review-card blockquote { margin:0; font:italic 500 1.08rem/1.5 var(--serif); }
.review-card figcaption { margin-top:1rem; color:var(--gray); font:600 .95rem var(--condensed); }
@media (min-width:48rem) { .review-cards { grid-auto-flow:initial; grid-template-columns:repeat(2,1fr); grid-auto-columns:auto; overflow:visible; } }
.page-intro { max-width:42rem; margin-bottom:2rem; }
.hours .card { border-left:.3rem solid var(--salmon); }
.partner-list { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.partner-list a { display:grid; place-items:center; width:8rem; height:5rem; padding:.5rem; background:#fff; border-radius:.5rem; }
.partner-list img { max-width:100%; max-height:100%; }
.map { display:block; width:100%; min-height:25rem; border:0; border-radius:.5rem; }
.map-attribution { margin:.6rem 0 0; font-size:.9rem; line-height:1.45; }
.press-list { padding-left:1.2rem; }
.press-list li + li { margin-top:.65rem; }
.demo-notice { padding:.7rem; border-left:.3rem solid var(--green); background:var(--green-pale); }
.product-card span { font:600 .9rem var(--condensed); color:var(--orange); }
.site-footer { padding:2rem max(1.25rem, calc((100% - 68rem)/2)); color:var(--pale); background:var(--brown); }
.site-footer h2 { color:#fff; font-size:1.4rem; }
.site-footer a { color:var(--salmon); }
.site-footer .copyright { margin-bottom:0; padding-top:1rem; border-top:1px solid rgb(255 255 255 / .25); font-size:.95rem; }
@media (max-width:47.99rem) { .hero { width:100vw; margin:-1.5rem 0 1.5rem calc(50% - 50vw); border-radius:0; background-position:60% center; } }
@media (min-width:48rem) { .hero { min-height:38rem; background-position:center; } .cards,.products { grid-template-columns:repeat(2,1fr); } .hours { grid-template-columns:repeat(2,1fr); } .two-columns { grid-template-columns:1fr 1fr; } }
/* Homepage: the masthead sits on the hero photo. */
body.home { position:relative; overflow-x:clip; }
body.home .masthead { position:absolute; inset:0 0 auto; z-index:2; background:linear-gradient(180deg, rgb(30 18 12 / .78) 0%, rgb(30 18 12 / .45) 65%, rgb(30 18 12 / 0) 100%); }
body.home .site-header, body.home .site-nav { background:transparent; }
body.home .brand { color:#fff; text-shadow:0 1px 3px rgb(0 0 0 / .45); }
body.home .site-nav a:not(.current) { background:rgb(255 255 255 / .93); }
body.home main { padding-top:0; }
body.home .hero { width:100vw; min-height:max(38rem, 90svh); margin:0 0 0 calc(50% - 50vw); padding-top:14rem; border-radius:0; background:linear-gradient(0deg, rgb(30 18 12 / .92) 0%, rgb(30 18 12 / .55) 30%, rgb(30 18 12 / 0) 55%), linear-gradient(180deg, #2b1d14 0 9rem, rgb(43 29 20 / 0) 14rem), url("/assets/ferme/famille-yann-arthus-bertrand-9aca32a0.jpg") 65% 100% / auto calc(100% - 9rem) no-repeat, #2b1d14; }
body.home .hero-copy { width:min(68rem, calc(100% - 2.5rem)); max-width:none; margin:0 auto; padding:0 0 5rem; }
body.home .hero h1 { font-size:clamp(2.1rem, 6.5vw, 4.2rem); }
body.home .opening { position:relative; z-index:1; margin-top:-3rem; box-shadow:0 6px 20px rgb(30 18 12 / .18); }
@media (min-width:64rem) {
  .masthead { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1rem max(1.25rem, calc((100% - 68rem)/2)); background:var(--header); }
  .site-header, .site-nav { padding:0; }
  .site-nav { grid-template-columns:repeat(5, auto); gap:.5rem; }
  .site-nav a { min-height:2.9rem; padding:.5rem 1rem; font-size:1rem; }
  body.home .masthead { background:linear-gradient(180deg, rgb(30 18 12 / .7) 0%, rgb(30 18 12 / 0) 100%); }
  body.home .hero { padding-top:10rem; background:linear-gradient(0deg, rgb(30 18 12 / .92) 0%, rgb(30 18 12 / .5) 35%, rgb(30 18 12 / 0) 60%), url("/assets/ferme/famille-yann-arthus-bertrand-9aca32a0.jpg") center 0 / cover; }
}
