@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600&display=swap');
:root{--shell:#FAF9F6;--ink:#242321;--wine:#5B1F2A;--soft:#68635F;--hair:#E7E3DE;--edge:clamp(22px,4.8vw,78px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background:var(--shell);color:var(--ink);font-family:'Instrument Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.site{background:var(--shell);min-height:100vh;overflow:clip}.wrap{max-width:1480px;margin-inline:auto}.site-header{position:sticky;top:0;z-index:80;background:var(--shell);height:61px}.nav{max-width:1480px;height:61px;margin:auto;padding:0 var(--edge);display:flex;justify-content:flex-end;align-items:center;gap:30px}.nav a{font-size:12px;font-weight:500;letter-spacing:-.018em;white-space:nowrap;transition:opacity .18s ease}.nav a:last-child{color:var(--wine)}.nav a:hover{opacity:.62}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--wine);outline-offset:3px}
.kicker{font-size:10px;letter-spacing:.15em;font-weight:600;color:#76625F;text-transform:uppercase}
.hero{padding:clamp(69px,7.4vw,116px) var(--edge) clamp(58px,4.8vw,80px)}
.hero h1{font-size:clamp(80px,11.4vw,184px);line-height:.88;font-weight:500;letter-spacing:-.088em;margin:22px 0 37px;max-width:1170px}
.hero-bottom{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;max-width:1090px}
.hero-line{font-size:clamp(19px,1.9vw,26px);line-height:1.34;letter-spacing:-.035em;font-weight:400;margin:0;max-width:540px}
.text-cta{font-size:14px;letter-spacing:-.014em;color:var(--ink);display:inline-flex;align-items:center;font-weight:500;line-height:1.4;white-space:nowrap;padding-bottom:6px;border-bottom:1px solid currentColor;transition:color .18s ease}
.text-cta:hover{color:var(--wine)}
.photograph{margin:0}.photograph img{display:block;width:100%;height:100%;object-fit:cover}
.hero-photo{width:100%;height:clamp(420px,56vw,810px)}
.hero-photo img{object-position:50% 43%}
.manifesto{padding:clamp(88px,9.2vw,144px) var(--edge) clamp(23px,3vw,48px)}
.manifesto-title{font-size:clamp(58px,8vw,129px);line-height:1.04;letter-spacing:-.075em;font-weight:500;margin:19px 0 0;max-width:1280px}
.cutout-block{margin:0 0 clamp(60px,6.3vw,100px);padding:0 var(--edge);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0;min-height:385px}
.four-photo{grid-column:2;max-width:610px;width:100%;height:clamp(355px,38vw,530px);justify-self:end}
.four-photo img{object-position:69% center}
.section{padding:clamp(75px,7.6vw,120px) var(--edge)}
.section h2{font-size:clamp(64px,8vw,124px);font-weight:500;letter-spacing:-.08em;line-height:.96;margin:0 0 45px}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.step-num{font-size:12px;letter-spacing:.04em;color:#817974;margin-bottom:28px}
.step-title{font-size:clamp(21px,2.2vw,29px);line-height:1.15;letter-spacing:-.045em;font-weight:500;margin:0}
.service-spec{margin:clamp(58px,6.6vw,102px) 0 0 auto;max-width:600px}
.service-spec h3{font-size:clamp(33px,3.7vw,58px);font-weight:500;letter-spacing:-.066em;line-height:1.1;margin:0 0 13px}
.service-spec p{font-size:15px;line-height:1.5;letter-spacing:-.018em;color:var(--soft);margin:0}
.pizza-photo{width:100%;height:clamp(455px,43vw,625px)}.pizza-photo img{object-position:50% 43%}
.menu-section{padding-top:clamp(75px,7.7vw,126px);padding-bottom:clamp(98px,8.7vw,148px)}
.menu-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:79px}.menu-head h2{margin:0}.menu-head small{color:#726d66;font-size:13px;line-height:1.5;max-width:245px}
.menu-group{margin:0}.menu-group+.menu-group{margin-top:78px}
.menu-category-title{color:#756F69;font-size:15px;font-weight:500;line-height:1.3;letter-spacing:-.012em;margin:0 0 23px;padding-left:40px}
.menu-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;column-gap:11%}
.menu-list li{display:flex;align-items:flex-start;gap:15px;padding:17px 0 18px;min-width:0}
.menu-number{flex:0 0 25px;font-size:11px;color:#898078;letter-spacing:.02em;line-height:2.1}
.menu-content{min-width:0}.menu-name{margin:0;font-size:clamp(22px,2.2vw,31px);line-height:1.13;letter-spacing:-.047em;font-weight:500}
.menu-ingredients{font-size:13.8px;color:#6C665F;line-height:1.5;letter-spacing:-.012em;margin:7px 0 0;max-width:475px}
.menu-group:last-child .menu-list{grid-template-columns:1fr 1fr}
.moment{display:block;padding:clamp(24px,4vw,57px) var(--edge) clamp(72px,9vw,138px)}
.moment-photo{width:min(70%,900px);height:clamp(465px,48vw,725px)}.moment-photo img{object-position:50% 54%}
.price-inner{display:grid;grid-template-columns:1fr 1fr;gap:15%;align-items:end}.price-inner h2{margin-bottom:18px}
.estimator{width:100%;padding:20px 0 10px}.estimate-top{display:flex;justify-content:space-between;align-items:baseline;gap:20px;font-size:14px}
.estimate-top strong{font-size:20px;font-weight:500;color:var(--ink)}
.price-slider{display:block;width:100%;accent-color:var(--wine);margin:23px 0 24px;cursor:pointer;min-height:30px}
.estimate-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:13px}
.breakdown-label{display:block;font-size:11px;color:#827c76;line-height:1.45;margin-bottom:5px}
.breakdown-value{font-size:14px;line-height:1.45;letter-spacing:-.014em;color:var(--ink)}
.estimate-total{display:flex;justify-content:space-between;gap:15px;align-items:baseline;margin-top:32px}
.estimate-total span{font-size:13px;color:var(--soft)}
.estimate-total strong{font-size:clamp(36px,4vw,58px);line-height:1;font-weight:500;letter-spacing:-.055em;color:var(--ink)}
.estimate-note{margin-top:20px;color:var(--soft);font-size:11px;line-height:1.6;max-width:460px}.large-event-note{display:none;margin-top:12px;font-size:12px;color:var(--soft)}.large-event-note.show{display:block}
.calendar-section{padding-top:clamp(95px,11vw,165px)}
.calendar-section .grid2{display:grid;grid-template-columns:1fr 1.15fr;gap:13%;align-items:start}.calendar-section h2{margin-bottom:20px}
.calendar-card{padding:0;border:none;background:transparent}.calendar-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:20px}
.calendar-toolbar h3{font-size:22px;letter-spacing:-.035em;font-weight:500;margin:0;line-height:1.3;text-align:center}
.month-nav{border:0;background:transparent;color:var(--wine);font-size:24px;min-width:44px;min-height:44px;display:grid;place-items:center;padding:0}.month-nav:disabled{opacity:.22;cursor:default}
.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.weekday{font-size:10px;color:var(--soft);font-weight:500;padding:6px 0 14px}
.day{border-radius:7px;min-width:0;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;overflow:hidden}
.day .num{font-size:13px;line-height:1.2;color:var(--ink)}
.day .status{font-size:7px;line-height:1.1;letter-spacing:-.015em;color:var(--soft)}
.day.booked{background:var(--wine)}.day.booked .num,.day.booked .status{color:#fff}
.day.unavailable .num,.day.past .num{color:#B6B1AB}.day.unavailable .status,.day.past .status{color:#AAA29B}
.day.available:hover{background:#EEE9E2}.day.available:focus-visible{outline-offset:1px}
.day.empty{visibility:hidden}.calendar-legend{display:flex;flex-wrap:wrap;gap:18px;color:var(--soft);font-size:10px;margin-top:25px}
.calendar-legend span{display:inline-flex;gap:6px;align-items:center}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#aaa09a}
.legend-dot.available{background:var(--ink)}.legend-dot.booked{background:var(--wine)}.legend-dot.unavailable{background:#AAA09A}
.calendar-error{display:none;color:var(--wine);padding:15px 0;font-size:12px;line-height:1.5}.calendar-error.show{display:block}
.outro{padding:clamp(100px,10vw,154px) var(--edge) 12px}
.outro h2{font-size:clamp(68px,9vw,145px);font-weight:500;letter-spacing:-.08em;line-height:.96;margin:0 0 36px}
.footer{display:flex;justify-content:space-between;gap:20px;padding:25px var(--edge) 35px;color:var(--soft);font-size:10px;letter-spacing:.04em}
/* Preserve functional contact form while presenting its trigger as editorial text. */
.rafa-contact-wrap{background:var(--shell)!important;height:auto!important;padding:0 var(--edge) 24px!important;justify-content:flex-start!important;max-width:1480px;margin:0 auto}
.rafa-contact-open{min-height:44px!important;min-width:0!important;border:0!important;border-radius:0!important;border-bottom:1px solid var(--ink)!important;background:transparent!important;padding:10px 0!important;color:var(--ink)!important;font-family:'Instrument Sans',sans-serif!important;font-size:13px!important;font-weight:500!important}
.rafa-contact-card{background:var(--shell)!important;border-radius:4px!important}.rafa-contact-card h2{font-family:'Instrument Sans',sans-serif!important;color:var(--ink)!important;font-weight:500!important}
@media(max-width:760px){
html{scroll-padding-top:62px}.site-header,.nav{height:55px}.nav{gap:23px}.nav a{font-size:11px}
.hero{padding:69px 23px 54px}.hero h1{font-size:clamp(55px,13.3vw,82px);margin:16px 0 27px;letter-spacing:-.087em}
.hero-bottom{display:block}.hero-line{font-size:17px;line-height:1.33;max-width:300px}.hero .text-cta{margin-top:20px}
.text-cta{font-size:13px;padding-bottom:5px}
.hero-photo{height:371px}.hero-photo img{object-position:55% 45%}
.manifesto{padding:87px 23px 47px}.manifesto-title{font-size:clamp(42px,11vw,65px);line-height:1.08;margin:16px 0 0;letter-spacing:-.07em}
.cutout-block{display:block;padding:0;min-height:0;margin-bottom:78px}.four-photo{width:78%;height:274px;margin-left:auto}.four-photo img{object-position:64% center}
.section{padding:73px 23px 78px}.section h2{font-size:clamp(49px,13vw,72px);margin:0 0 33px}
.steps{display:block}.step{display:grid;grid-template-columns:37px minmax(0,1fr);gap:0 12px;padding:0 0 23px}
.step-num{margin:4px 0 0;font-size:11px}.step-title{font-size:20px;line-height:1.2;max-width:310px}
.service-spec{margin-top:58px;max-width:none}.service-spec h3{font-size:35px;letter-spacing:-.068em;margin-bottom:8px}.service-spec p{font-size:13.5px}
.pizza-photo{height:327px}.pizza-photo img{object-position:54% 42%}
.menu-section{padding-top:72px;padding-bottom:72px}.menu-head{display:block;margin-bottom:52px}.menu-head h2{margin:0}.menu-head small{display:block;margin-top:21px;font-size:12px}
.menu-group+.menu-group{margin-top:59px}.menu-category-title{font-size:13px;padding-left:37px;margin-bottom:14px;color:#827A72}
.menu-list,.menu-group:last-child .menu-list{display:block}
.menu-list li{padding:13px 0 17px;gap:14px}
.menu-number{flex:0 0 23px;font-size:10px}.menu-name{font-size:25px}.menu-ingredients{font-size:13.2px;line-height:1.53}
.moment{padding:19px 0 81px}.moment-photo{width:84%;height:400px}.moment-photo img{object-position:53% 54%}
.price-inner{display:block}.price-inner h2{margin-bottom:15px}.estimator{margin-top:39px}.estimate-total strong{font-size:46px}
.estimate-breakdown{gap:14px}
.calendar-section{padding-top:78px}.calendar-section .grid2{display:block}.calendar-card{margin-top:40px}
.calendar-toolbar h3{font-size:21px}.day{min-height:43px}.day .num{font-size:12px}.day .status{font-size:6.3px}
.weekdays,.calendar-grid{gap:4px}.calendar-legend{gap:13px;line-height:1.5}
.outro{padding:103px 23px 6px}.outro h2{font-size:clamp(55px,13vw,74px);margin:0 0 26px}
.footer{padding:27px 23px 35px;font-size:9px}
.rafa-contact-wrap{padding:0 23px 24px!important}
}
@media(max-width:360px){.nav{gap:16px}.nav a{font-size:10px}.day .status{font-size:5.4px}.calendar-grid,.weekdays{gap:2px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Footer actions: identical link font size at every screen width. */
.outro .text-cta, .rafa-contact-wrap .rafa-contact-open { font-size:14px!important; }
@media (max-width:760px) {
  .outro .text-cta, .rafa-contact-wrap .rafa-contact-open { font-size:13px!important; }
}

/* Photo signature : préserver l'intégralité du fichier vertical sans recadrage. */
.pizza-photo{height:auto;max-width:1080px;margin-inline:auto}
.pizza-photo img{display:block;width:100%;height:auto;object-fit:contain;object-position:center}
