:root { --ink:#243531; --cream:#f7f2e8; --paper:#fffdf8; --terracotta:#c86745; --terracotta-dark:#9e4327; --olive:#728068; --line:#ded5c7; --serif:"Fraunces", Georgia, serif; --sans:"DM Sans", Arial, sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:16px; line-height:1.55; } a { color:inherit; text-decoration:none; } .header { display:flex; align-items:center; justify-content:space-between; padding:22px 5vw; position:absolute; z-index:3; width:100%; } .brand { display:flex; gap:10px; align-items:center; font-size:14px; font-weight:700; line-height:1.1; letter-spacing:.02em; } .brand em { font-family:var(--serif); font-size:17px; font-weight:500; } .brand-mark { display:block; width:40px; height:40px; flex:none; } .nav { display:flex; gap:29px; align-items:center; font-size:14px; font-weight:600; } .nav a:not(.nav-cta) { padding:6px 0; border-bottom:1px solid transparent; } .nav a:not(.nav-cta):hover { border-color:var(--ink); } .nav-cta { color:var(--paper); background:var(--ink); padding:11px 18px; border-radius:99px; } .menu-toggle { display:none; border:0; background:none; font-family:var(--sans); font-weight:700; }
.hero { min-height:800px; display:grid; grid-template-columns:48% 52%; background:var(--cream); overflow:hidden; } .hero-copy { padding:184px 8% 95px 10.5%; display:flex; flex-direction:column; justify-content:center; } .eyebrow { margin:0 0 17px; color:var(--terracotta-dark); text-transform:uppercase; font-weight:700; letter-spacing:.11em; font-size:11px; } h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:var(--serif); font-weight:500; line-height:1.04; letter-spacing:-.035em; } h1 { font-size:clamp(47px,5vw,78px); margin-bottom:26px; } .hero-text { max-width:470px; color:#4d5b56; font-size:17px; } .hero-actions { margin:23px 0 28px; display:flex; align-items:center; flex-wrap:wrap; gap:22px; } .button { display:inline-flex; align-items:center; justify-content:center; border:0; cursor:pointer; border-radius:99px; padding:14px 21px; font:600 14px var(--sans); transition:transform .2s, background .2s; } .button:hover { transform:translateY(-2px); } .button-primary { color:white; background:var(--terracotta); } .button-primary:hover { background:var(--terracotta-dark); } .button-link { padding-left:0; color:var(--ink); } .button-link span { margin-left:6px; font-size:18px; } .availability { font-size:13px; font-weight:600; } .availability span { display:inline-block; width:8px; height:8px; margin-right:7px; background:#8aa168; border-radius:50%; } .hero-visual { min-height:800px; } .hero-visual img { width:100%; height:100%; object-fit:cover; }
.section { padding:108px 10.5%; } .section-heading h2, .about h2, .contact h2 { font-size:clamp(39px,4vw,58px); margin-bottom:0; } .concept { background:var(--paper); display:grid; grid-template-columns:36% 64%; gap:8%; } .steps { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; padding-top:15px; } .steps article { border-top:1px solid var(--line); padding-top:19px; } .steps span,.offer-number { color:var(--terracotta); font-size:13px; font-weight:700; letter-spacing:.08em; } .steps h3 { margin:39px 0 11px; font-size:26px; } .steps p { color:#586660; font-size:14px; } .quote-section { background:var(--olive); color:var(--paper); padding:80px 15%; text-align:center; } .quote-section p { max-width:880px; margin:0 auto; font:500 clamp(33px,4vw,57px)/1.15 var(--serif); letter-spacing:-.035em; }
.batch-photo-section { display:grid; grid-template-columns:36% 64%; align-items:stretch; background:#ede6d8; } .batch-photo-copy { display:flex; flex-direction:column; justify-content:center; padding:76px 13%; } .batch-photo-copy h2 { margin-bottom:19px; font-size:clamp(37px,3.7vw,55px); } .batch-photo-copy > p:last-child { margin:0; color:#56625d; } .batch-photo-section > img { display:block; width:100%; min-height:520px; height:100%; object-fit:cover; }
.offers { background:#ede6d8; } .offers-heading { display:grid; grid-template-columns:1fr 1.7fr 1fr; align-items:end; gap:35px; margin-bottom:44px; } .offers-heading .eyebrow { align-self:start; } .offers-heading h2 { grid-column:2; } .offers-heading > p:last-child { margin:0; color:#55615d; font-size:14px; } .offer-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; } .offer-card { display:flex; min-height:360px; flex-direction:column; padding:28px; background:var(--paper); border:1px solid transparent; } .offer-card.featured { color:var(--paper); background:var(--ink); } .offer-card h3 { margin:35px 0 10px; font-size:31px; } .offer-subtitle { min-height:53px; color:#5a6661; font-size:14px; } .featured .offer-subtitle { color:#d7e0d6; } .offer-card ul { margin:18px 0 25px; padding:0; list-style:none; font-size:14px; } .offer-card li { padding:8px 0; border-bottom:1px solid #e8e0d2; } .featured li { border-color:#50615b; } .offer-card a { margin-top:auto; font-size:13px; font-weight:700; } .offer-card a span { color:var(--terracotta); font-size:18px; margin-left:5px; }
.offer-price { display:flex; align-items:baseline; gap:7px; margin:4px 0 0; color:var(--terracotta-dark); } .offer-price strong { font:500 31px var(--serif); letter-spacing:-.035em; } .offer-price span { font-size:11px; font-weight:700; } .featured .offer-price { color:#ffd3b9; } .offers-note { margin:18px 0 0; color:#65706a; font-size:11px; } .contact-direct { margin-top:25px !important; color:var(--terracotta-dark) !important; font-size:16px; font-weight:700; line-height:1.75; }
.about { background:var(--paper); display:grid; grid-template-columns:28% 1fr; gap:10%; max-width:1160px; margin:auto; } .about-mascot { width:min(220px,100%); align-self:start; } .about-mascot img { width:100%; height:auto; display:block; } .about h2 { max-width:720px; margin-bottom:25px; } .about div:last-child > p:not(.eyebrow) { max-width:670px; color:#57645f; } .recipe-note { max-width:590px; margin-top:28px; padding:22px 24px; background:#f4ebe0; border-left:3px solid var(--terracotta); } .recipe-note span { display:block; margin-bottom:4px; color:var(--terracotta-dark); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; } .recipe-note strong { display:block; margin-bottom:4px; font:500 25px var(--serif); letter-spacing:-.025em; } .recipe-note p { margin:0; color:#5c6863; font-size:14px; } .area { text-align:center; padding:71px 20px; color:var(--paper); background:var(--terracotta); } .area .eyebrow { color:#fee7cf; } .area > p:not(.eyebrow) { margin:0 0 6px; font:500 clamp(32px,4vw,52px) var(--serif); } .area small { font-size:13px; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:12%; padding:105px 13%; background:var(--cream); } .contact > div p:not(.eyebrow) { max-width:390px; color:#58645e; } form { display:grid; gap:15px; } form label { display:grid; gap:5px; font-size:12px; font-weight:700; } input,textarea { width:100%; border:1px solid #cfc5b6; padding:11px 12px; background:rgba(255,255,255,.6); color:var(--ink); font:14px var(--sans); outline-color:var(--terracotta); } textarea { resize:vertical; } form .button { justify-self:start; margin-top:3px; } .form-note { margin:0; color:#6d7772; font-size:12px; } .hidden { display:none; } footer { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:35px 10.5%; background:var(--ink); color:var(--paper); font-size:13px; } footer > p { margin:0; align-self:center; } .footer-brand { color:var(--paper); grid-row:span 2; } .footer-legal { color:#b9c4be; font-size:11px; }
@media (max-width:900px) { .hero { grid-template-columns:1fr; } .hero-copy { order:2; padding:73px 10% 80px; } .hero-visual { min-height:470px; padding-top:84px; } .nav { gap:14px; } .concept,.batch-photo-section { grid-template-columns:1fr; gap:38px; } .batch-photo-copy { padding:76px 10% 35px; } .batch-photo-section > img { min-height:420px; } .steps { gap:17px; } .offers-heading { display:block; } .offers-heading h2 { margin-bottom:19px; } .about { grid-template-columns:1fr; gap:34px; } .contact { padding:80px 10%; gap:8%; } }
@media (max-width:650px) { .header { padding:16px 6%; background:rgba(247,242,232,.95); } .nav { position:absolute; display:none; top:68px; left:0; width:100%; padding:16px 6% 23px; align-items:flex-start; flex-direction:column; background:var(--cream); } .nav.open { display:flex; } .menu-toggle { display:block; } .hero { min-height:0; } .hero-visual { min-height:375px; } .hero-copy { padding:57px 7% 67px; } .section { padding:72px 7%; } .batch-photo-copy { padding:72px 7% 32px; } .batch-photo-section > img { min-height:300px; } .steps,.offer-grid,.contact { grid-template-columns:1fr; } .steps { gap:28px; } .steps h3 { margin-top:20px; } .quote-section { padding:64px 8%; } .offer-card { min-height:310px; } .contact { padding:73px 7%; } footer { grid-template-columns:1fr; padding:32px 7%; } .footer-brand { grid-row:auto; } }

/* Menus de saison */
.menu-page .header { position:relative; background:var(--cream); }
.menu-intro { padding:100px 10.5% 92px; background:var(--cream); text-align:center; }
.menu-intro h1 { margin-bottom:20px; font-size:clamp(46px,6vw,76px); }
.menu-intro > p:last-child { max-width:600px; margin:0 auto; color:#59645f; font-size:17px; }
.season-menu { padding:92px 10.5%; background:var(--paper); }
.season-heading { display:grid; grid-template-columns:1fr 1fr; gap:12%; align-items:end; margin-bottom:46px; }
.season-heading h2,.menu-cta h2 { margin-bottom:0; font-size:clamp(39px,4vw,58px); }
.season-heading > p { max-width:390px; margin:0 0 5px; color:#58645e; }
.menu-dishes { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; border:1px solid var(--line); background:var(--line); }
.menu-dishes article { min-height:193px; padding:29px; background:var(--paper); }
.menu-dishes span { color:var(--terracotta); font-size:12px; font-weight:700; letter-spacing:.1em; }
.menu-dishes h3 { margin:28px 0 8px; font-size:28px; }
.menu-dishes p { margin:0; color:#617069; font-size:14px; }
.menu-note { max-width:650px; margin:25px 0 0; color:#65716c; font-size:13px; font-style:italic; }
.season-preview { display:grid; grid-template-columns:repeat(4,1fr); background:#ede6d8; }
.season-preview article { min-height:237px; padding:34px 27px; border-right:1px solid #d8cebe; }
.season-preview article:last-child { border-right:0; }
.season-preview h2 { margin:33px 0 10px; font-size:31px; }
.season-preview p:last-child { margin:0; color:#5c6962; font-size:14px; }
.menu-cta { padding:91px 20px; background:var(--olive); color:var(--paper); text-align:center; }
.menu-cta .eyebrow { color:#dfe8d8; }
.menu-cta h2 { margin-bottom:26px; }
@media (max-width:900px) { .season-heading { grid-template-columns:1fr; gap:18px; } .season-preview { grid-template-columns:repeat(2,1fr); } .season-preview article:nth-child(2) { border-right:0; } .season-preview article:nth-child(-n+2) { border-bottom:1px solid #d8cebe; } }
@media (max-width:650px) { .menu-intro,.season-menu { padding:72px 7%; } .menu-dishes,.season-preview { grid-template-columns:1fr; } .menu-dishes article { min-height:0; } .season-preview article,.season-preview article:nth-child(2) { min-height:0; border-right:0; border-bottom:1px solid #d8cebe; } .season-preview article:last-child { border-bottom:0; } .menu-cta { padding:72px 7%; } }
