:root {
--green:       #233b39;
--green-dark:  #192b29;
--green-deep:  #111f1e;
--green-mid:   #2e4f4c;
--green-light: #3a6360;
--green-pale:  #d4e3e2;
--gold:        #c8a96e;
--gold-light:  #e2c898;
--cream:       #f5f0e8;
--cream-dim:   #ede5d5;
--gray:        #8a9e9c;
--border:      rgba(212,227,226,.15);
--ff-display:  'Cormorant Garamond', Georgia, serif;
--ff-body:     'Jost', sans-serif;
--ease:        cubic-bezier(.25,.46,.45,.94);
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html  { scroll-behavior:smooth; }
body  { background:var(--green); color:var(--cream); font-family:var(--ff-body); font-weight:300; line-height:1.7; overflow-x:hidden; }
img   { max-width:100%; height:auto; display:block; }
a     { color:inherit; text-decoration:none; transition:.35s var(--ease); }
ul    { list-style:none; }
h1,h2,h3,h4 { font-family:var(--ff-display); font-weight:400; line-height:1.1; }
::-webkit-scrollbar       { width:3px; }
::-webkit-scrollbar-track { background:var(--green-dark); }
::-webkit-scrollbar-thumb { background:var(--gold); } .eyebrow { font-family:var(--ff-body); font-size:.68rem; font-weight:400; letter-spacing:.35em; text-transform:uppercase; color:var(--gold); }
.section-title { font-family:var(--ff-display); font-size:clamp(2.2rem,5vw,4rem); font-weight:300; font-style:italic; color:var(--cream); line-height:1.1; margin-top:.5rem; } .cursor         { width:8px; height:8px; background:var(--gold); border-radius:50%; position:fixed; pointer-events:none; z-index:9999; left:0; top:0; transform:translate(-50%,-50%); transition:none; }
.cursor-follower{ width:36px; height:36px; border:1px solid rgba(200,169,110,.4); border-radius:50%; position:fixed; pointer-events:none; z-index:9998; left:0; top:0; transform:translate(-50%,-50%); transition:width .3s,height .3s,border-color .3s; }
.cursor-follower.hover { width:56px; height:56px; border-color:var(--gold); } .site-nav { position:fixed; top:0; left:0; right:0; z-index:100; padding:1.5rem 4rem; display:flex; align-items:center; justify-content:space-between; transition:all .6s ease; }
.site-nav.scrolled { background:rgba(25,43,41,.97); backdrop-filter:blur(20px); padding:1rem 4rem; border-bottom:1px solid var(--border); }
.nav-logo { font-family:var(--ff-display); font-size:1.35rem; font-weight:600; color:var(--cream); display:flex; flex-direction:column; line-height:1.2; }
.nav-logo span { font-size:.52rem; font-family:var(--ff-body); letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-top:3px; }
.nav-links { display:flex; align-items:center; gap:2.5rem; }
.nav-links a { font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(245,240,232,.7); position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-3px; left:0; width:0; height:1px; background:var(--gold); transition:.3s; }
.nav-links a:hover { color:var(--gold); }
.nav-links a:hover::after { width:100%; }
.nav-cta { font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; padding:.65rem 1.5rem; border:1px solid var(--gold); color:var(--gold); }
.nav-cta:hover { background:var(--gold); color:var(--green-dark); }
.nav-toggle { display:none; flex-direction:column; gap:6px; cursor:pointer; padding:4px; background:none; border:none; }
.nav-toggle span { display:block; width:28px; height:1px; background:var(--cream); transition:.3s; } .mobile-menu { position:fixed; inset:0; background:var(--green-dark); z-index:200; display:flex; flex-direction:column; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .4s; }
.mobile-menu.open { opacity:1; pointer-events:all; }
.mobile-menu-close { position:absolute; top:2rem; right:2rem; font-size:1.5rem; color:var(--cream); cursor:pointer; background:none; border:none; }
.mobile-nav-links { display:flex; flex-direction:column; align-items:center; gap:2rem; }
.mobile-nav-links a { font-family:var(--ff-display); font-size:clamp(2rem,8vw,3.5rem); font-style:italic; color:var(--cream); }
.mobile-nav-links a:hover { color:var(--gold); }  .hero { position:relative; height:100vh; min-height:700px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.hero-bg { position:absolute; inset:0; background:url(https://www.lafontaine-ditalie.fr/wp-content/uploads/2024/12/IMG_0376-scaled.jpg) center/cover no-repeat; filter:brightness(.42) saturate(.75); transform:scale(1.06); transition:transform 10s ease; }
.hero:hover .hero-bg { transform:scale(1.09); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(25,43,41,.1) 0%,rgba(25,43,41,.0) 30%,rgba(25,43,41,.5) 65%,var(--green) 100%); }
.hero-content { position:relative; z-index:2; text-align:center; padding:0 2rem; }
.hero-eyebrow { font-size:.62rem; letter-spacing:.5em; text-transform:uppercase; color:var(--gold); margin-bottom:1.5rem; opacity:0; animation:fadeUp 1s .3s forwards; }
.hero-title { font-family:var(--font-display); font-size:clamp(3.8rem,13vw,10rem); font-weight:300; line-height:.88; color:var(--cream); opacity:0; animation:fadeUp 1s .5s forwards; }
.hero-title em { font-style:italic; color:var(--gold-light); display:block; }
.hero-subtitle { font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(245,240,232,.65); margin-top:1.5rem; opacity:0; animation:fadeUp 1s .7s forwards; }
.hero-actions { display:flex; align-items:center; justify-content:center; gap:1.5rem; margin-top:3rem; flex-wrap:wrap; opacity:0; animation:fadeUp 1s .9s forwards; }
.hero-phone { font-family:var(--font-display); font-size:1.05rem; color:var(--gold); display:flex; align-items:center; gap:.5rem; margin-top:1.5rem; justify-content:center; opacity:0; animation:fadeUp 1s 1.1s forwards; }
.hero-scroll { position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.5rem; opacity:0; animation:fadeIn 1s 1.5s forwards; }
.hero-scroll span { font-size:.52rem; letter-spacing:.35em; text-transform:uppercase; color:var(--gold); }
.scroll-line { width:1px; height:50px; background:linear-gradient(to bottom,var(--gold),transparent); animation:scrollPulse 2.2s infinite; } .btn { display:inline-flex; align-items:center; gap:.75rem; padding:.9rem 2.5rem; font-family:var(--ff-body); font-size:.7rem; font-weight:400; letter-spacing:.25em; text-transform:uppercase; cursor:pointer; position:relative; overflow:hidden; border:none; transition:.35s var(--ease); }
.btn-primary { background:var(--gold); color:var(--green-dark); }
.btn-primary::after { content:''; position:absolute; inset:0; background:var(--cream); transform:translateX(-101%); transition:transform .4s cubic-bezier(.77,0,.175,1); }
.btn-primary:hover::after { transform:translateX(0); }
.btn-primary span, .btn-primary svg { position:relative; z-index:1; color:var(--green-dark); }
.btn-outline { border:1px solid var(--border); color:var(--cream); background:none; }
.btn-outline:hover { border-color:var(--gold); color:var(--gold); } .marquee-section { padding:1.5rem 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); overflow:hidden; background:var(--green-dark); }
.marquee-track  { display:flex; white-space:nowrap; animation:marqueeScroll 30s linear infinite; }
.marquee-track:hover { animation-play-state:paused; }
.marquee-item   { display:inline-flex; align-items:center; gap:2rem; padding:0 2rem; font-family:var(--ff-display); font-size:clamp(1.2rem,2.5vw,2rem); font-style:italic; font-weight:300; color:var(--cream-dim); flex-shrink:0; }
.marquee-sep    { color:var(--gold); font-style:normal; font-size:.6rem; } .section { padding:clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,4rem); max-width:1400px; margin:0 auto; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.about-images { position:relative; }
.about-img-main { width:100%; height:560px; object-fit:cover; filter:saturate(.85); }
.about-img-accent { position:absolute; width:46%; height:240px; object-fit:cover; bottom:-3rem; right:-2rem; border:4px solid var(--green); }
.about-badge { position:absolute; top:2rem; left:-2rem; width:100px; height:100px; border-radius:50%; background:var(--gold); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.about-badge strong { font-family:var(--ff-display); font-size:2rem; font-weight:600; color:var(--green-dark); line-height:1; }
.about-badge span   { font-size:.43rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(25,43,41,.75); }
.about-text { padding-left:2rem; }
.about-text p { color:var(--gray); font-size:.92rem; line-height:1.9; margin-top:1.5rem; }
.about-text strong { color:var(--cream); font-weight:400; }
.about-features { display:flex; gap:2rem; margin-top:2.5rem; flex-wrap:wrap; }
.feature-item   { display:flex; align-items:flex-start; gap:.75rem; }
.feature-icon   { color:var(--gold); font-size:1.2rem; margin-top:2px; }
.feature-label  { font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; color:var(--cream); }
.feature-desc   { font-size:.78rem; color:var(--gray); margin-top:2px; } .gallery-header { text-align:center; margin-bottom:4rem; padding:0 4rem; }
.gallery-grid   { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; padding:0 6px; }
.gallery-item   { overflow:hidden; position:relative; }
.gallery-item:nth-child(1) { grid-column:span 2; grid-row:span 2; }
.gallery-item:nth-child(5) { grid-column:span 2; }
.gallery-item img { width:100%; height:100%; min-height:220px; object-fit:cover; filter:saturate(.6) brightness(.8); transition:all .8s var(--ease); }
.gallery-item:hover img { filter:saturate(1) brightness(1); transform:scale(1.04); } .menu-section { background:var(--green-dark); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.menu-inner   { max-width:1400px; margin:0 auto; padding:clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,4rem); }
.menu-header  { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:4rem; flex-wrap:wrap; gap:1.5rem; }
.menu-tabs    { display:flex; gap:1.5rem; flex-wrap:wrap; }
.menu-tab     { font-size:.65rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gray); padding:.5rem 0; border:none; border-bottom:1px solid transparent; cursor:pointer; transition:.3s; background:none; }
.menu-tab.active, .menu-tab:hover { color:var(--gold); border-bottom-color:var(--gold); }
.menu-grid    { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); }
.menu-card    { background:var(--green-dark); padding:2.5rem 2rem; transition:.35s var(--ease); }
.menu-card:hover { background:rgba(212,227,226,.04); }
.menu-card-num   { font-size:.62rem; color:var(--gold); letter-spacing:.2em; margin-bottom:1rem; opacity:.6; }
.menu-card-name  { font-family:var(--ff-display); font-size:1.4rem; color:var(--cream); margin-bottom:.5rem; }
.menu-card-desc  { font-size:.8rem; color:var(--gray); line-height:1.7; }
.menu-card-price { font-family:var(--ff-display); font-size:1.1rem; color:var(--gold); margin-top:1.2rem; font-style:italic; } .cta-section { position:relative; min-height:500px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.cta-bg      { position:absolute; inset:0; background:url(https://www.lafontaine-ditalie.fr/wp-content/uploads/2019/02/bavette-grillée.jpg) center/cover; filter:brightness(.18) saturate(.3); }
.cta-overlay { position:absolute; inset:0; background:rgba(35,59,57,.55); }
.cta-inner   { position:relative; z-index:2; text-align:center; padding:4rem 2rem; max-width:700px; }
.cta-inner p { color:rgba(245,240,232,.7); font-size:.9rem; line-height:1.8; margin:1.5rem 0 2.5rem; }
.cta-actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; } .testimonials-section { background:var(--green); }
.testimonials-inner   { max-width:1100px; margin:0 auto; padding:clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,4rem); }
.testimonials-header  { text-align:center; margin-bottom:1.5rem; }
.ratings-row   { display:flex; justify-content:center; gap:2rem; margin-bottom:3.5rem; flex-wrap:wrap; }
.rating-badge  { display:flex; flex-direction:column; align-items:center; gap:4px; padding:1.2rem 2rem; border:1px solid var(--border); }
.rating-score  { font-family:var(--ff-display); font-size:2.4rem; font-weight:300; color:var(--gold); line-height:1; }
.rating-stars  { color:var(--gold); font-size:.75rem; letter-spacing:2px; }
.rating-source { font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gray); margin-top:2px; }
.rating-count  { font-size:.68rem; color:rgba(212,227,226,.4); }
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.testimonial-card  { padding:2.5rem 2rem; border:1px solid var(--border); transition:.35s var(--ease); }
.testimonial-card:hover { border-color:rgba(200,169,110,.4); background:rgba(212,227,226,.03); }
.tc-stars  { display:flex; gap:4px; margin-bottom:1.2rem; color:var(--gold); font-size:.72rem; }
.tc-text   { font-family:var(--ff-display); font-size:1rem; font-style:italic; color:var(--cream-dim); line-height:1.7; margin-bottom:1.5rem; }
.tc-author { display:flex; align-items:center; gap:.75rem; }
.tc-avatar { width:36px; height:36px; border-radius:50%; background:var(--gold); display:flex; align-items:center; justify-content:center; font-family:var(--ff-display); font-size:1rem; color:var(--green-dark); font-weight:600; flex-shrink:0; }
.tc-name   { font-size:.75rem; letter-spacing:.1em; color:var(--cream); }
.tc-source { font-size:.62rem; color:var(--gold); } .contact-section { background:var(--green-dark); border-top:1px solid var(--border); }
.contact-inner   { max-width:1400px; margin:0 auto; padding:clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,4rem); display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.contact-info h2 { margin-bottom:1.5rem; }
.contact-info > p { color:var(--gray); font-size:.92rem; line-height:1.9; margin-bottom:1rem; }
.contact-details   { display:flex; flex-direction:column; gap:1.5rem; margin-top:2.5rem; }
.contact-detail    { display:flex; align-items:flex-start; gap:1rem; }
.cd-icon  { color:var(--gold); flex-shrink:0; margin-top:2px; }
.cd-label { font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gray); }
.cd-value { font-size:.9rem; color:var(--cream); margin-top:3px; line-height:1.7; }
.cd-value a { color:var(--cream); }
.cd-value a:hover { color:var(--gold); }
.social-links { display:flex; gap:1rem; margin-top:4px; flex-wrap:wrap; }
.social-links a { font-size:.7rem; letter-spacing:.1em; color:var(--gray); }
.social-links a:hover { color:var(--gold); } .contact-form-box { background:rgba(212,227,226,.04); border:1px solid var(--border); padding:2.5rem; }
.contact-form-box h3 { font-family:var(--ff-display); font-size:1.8rem; font-style:italic; font-weight:300; color:var(--cream); margin-bottom:2rem; }
.cf-field { margin-bottom:1.5rem; }
.cf-field label { display:block; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gray); margin-bottom:.5rem; }
.cf-field input,
.cf-field textarea,
.cf-field select { width:100%; padding:.85rem 1rem; background:rgba(255,255,255,.05); border:1px solid rgba(212,227,226,.2); color:var(--cream); font-family:var(--ff-body); font-size:.9rem; font-weight:300; transition:border-color .3s,box-shadow .3s; border-radius:2px; appearance:none; -webkit-appearance:none; }
.cf-field input:focus,
.cf-field textarea:focus,
.cf-field select:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,169,110,.1); }
.cf-field input::placeholder,
.cf-field textarea::placeholder { color:rgba(245,240,232,.3); }
.cf-field textarea { resize:vertical; min-height:110px; }
.cf-field select option { background:var(--green-dark); color:var(--cream); }
.cf-2col { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.cf-submit { width:100%; margin-top:.5rem; justify-content:center; }
.cf-notice { display:none; padding:1rem 1.5rem; font-size:.85rem; text-align:center; margin-top:1rem; }
.cf-notice--success { background:rgba(200,169,110,.1); border:1px solid rgba(200,169,110,.3); color:var(--gold); }
.cf-notice--error   { background:rgba(200,60,60,.1); border:1px solid rgba(200,60,60,.3); color:#f87171; } .info-section { background:var(--green-dark); border-top:1px solid var(--border); }
.info-inner   { max-width:1400px; margin:0 auto; padding:clamp(4rem,8vw,7rem) clamp(1.5rem,5vw,4rem); display:grid; grid-template-columns:repeat(3,1fr); gap:4rem; }
.info-block h3 { font-family:var(--ff-body); font-size:.65rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:1.5rem; padding-bottom:1rem; border-bottom:1px solid var(--border); }
.info-block p, .info-block a { font-size:.9rem; color:var(--gray); line-height:2; }
.info-block strong { color:var(--cream); font-weight:400; }
.info-block a:hover { color:var(--gold); }
.hours-row { display:flex; justify-content:space-between; border-bottom:1px solid rgba(212,227,226,.07); padding:.4rem 0; font-size:.88rem; }
.delivery-badges { display:flex; gap:.75rem; margin-top:1.5rem; flex-wrap:wrap; }
.delivery-badge  { padding:.45rem 1rem; border:1px solid var(--border); font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(245,240,232,.6); transition:.3s; }
.delivery-badge:hover { border-color:var(--gold); color:var(--gold); } .site-footer  { background:var(--green-deep); border-top:1px solid var(--border); padding:3rem 4rem; }
.footer-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1.5rem; }
.footer-logo  { font-family:var(--ff-display); font-size:1.3rem; color:var(--cream); }
.footer-copy  { font-size:.7rem; color:var(--gray); }
.footer-copy a { color:var(--gold); }
.footer-social { display:flex; gap:1.5rem; }
.footer-social a { font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gray); }
.footer-social a:hover { color:var(--gold); } @keyframes fadeUp      { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn      { from{opacity:0}                            to{opacity:1} }
@keyframes marqueeScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes scrollPulse { 0%,100%{opacity:.4} 50%{opacity:1} }
.reveal { opacity:0; transform:translateY(40px); transition:opacity .9s ease,transform .9s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-d1 { transition-delay:.15s; }
.reveal-d2 { transition-delay:.3s; }
.reveal-d3 { transition-delay:.45s; } @media(max-width:900px){
.hero { grid-template-columns:1fr; grid-template-rows:auto 60vw; min-height:auto; }
.hero-left { padding:7rem 2rem 3rem; }
.hero-right { grid-template-rows:1fr; grid-template-columns:repeat(3,1fr); }
.hero-photo:first-child { grid-row:auto; }
.hero-badge { margin-top:2rem; padding-top:1.5rem; gap:1.5rem; }
}
@media(max-width:600px){
.hero { grid-template-rows:auto 75vw; }
.hero-right { grid-template-columns:1fr 1fr; }
.hero-photo:nth-child(3) { display:none; }
.hero-badge { gap:1rem; }
}
@media(max-width:1100px){
.about-grid     { grid-template-columns:1fr; gap:3rem; }
.about-text     { padding-left:0; }
.about-img-accent { display:none; }
.menu-grid      { grid-template-columns:repeat(2,1fr); }
.testimonials-grid { grid-template-columns:1fr 1fr; }
.info-inner     { grid-template-columns:1fr 1fr; }
.contact-inner  { grid-template-columns:1fr; gap:3rem; }
}
@media(max-width:768px){
.site-nav         { padding:1.25rem 1.5rem; }
.nav-links,.nav-cta { display:none; }
.nav-toggle       { display:flex; }
.gallery-grid     { grid-template-columns:repeat(2,1fr); }
.gallery-item:nth-child(1) { grid-column:span 2; }
.gallery-item:nth-child(5) { grid-column:span 2; }
.menu-grid        { grid-template-columns:1fr; }
.testimonials-grid { grid-template-columns:1fr; }
.info-inner       { grid-template-columns:1fr; gap:2rem; }
.footer-inner     { flex-direction:column; text-align:center; }
.cursor,.cursor-follower { display:none; }
.about-badge      { left:0; top:1rem; }
.gallery-header   { padding:0 1.5rem; }
.site-footer      { padding:2.5rem 1.5rem; }
.cf-2col          { grid-template-columns:1fr; }
.section          { padding:clamp(3rem,8vw,5rem) 1.5rem; }
} .instagram-section {
background: var(--green-dark);
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
}
.instagram-inner {
max-width: 1400px;
margin: 0 auto;
padding: clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,4rem);
}
.instagram-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
margin-bottom: 3rem;
flex-wrap: wrap;
gap: 1.5rem;
}
.instagram-handle {
display: inline-flex;
align-items: center;
gap: .75rem;
padding: .75rem 1.5rem;
border: 1px solid var(--border);
color: rgba(245,240,232,.65);
font-size: .72rem;
letter-spacing: .12em;
transition: var(--transition);
}
.instagram-handle:hover {
border-color: var(--gold);
color: var(--gold);
}
.instagram-handle__icon { display: flex; align-items: center; }
.instagram-handle__arrow { opacity: .4; }
.instagram-handle:hover .instagram-handle__arrow { opacity: 1; } .instagram-feed-wrap .sbi_feed_container {
margin: 0 !important;
}
.instagram-feed-wrap #sbi {
padding: 0 !important;
background: transparent !important;
} .instagram-feed-wrap .sbi_item {
overflow: hidden;
position: relative;
}
.instagram-feed-wrap .sbi_item img {
filter: saturate(.7) brightness(.85);
transition: var(--transition-slow) !important;
}
.instagram-feed-wrap .sbi_item:hover img {
filter: saturate(1) brightness(1);
transform: scale(1.05);
} .instagram-feed-wrap #sbi_load,
.instagram-feed-wrap .sbi_follow_btn,
.instagram-feed-wrap #sbi_header,
.instagram-feed-wrap .sbi_header_text,
.instagram-feed-wrap #sbi_footer { display: none !important; } .instagram-placeholder__grid {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 6px;
}
.ig-thumb {
position: relative;
overflow: hidden;
aspect-ratio: 1;
display: block;
}
.ig-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(.6) brightness(.75);
transition: var(--transition-slow);
}
.ig-thumb__overlay {
position: absolute;
inset: 0;
background: rgba(35,59,57,.6);
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transition: var(--transition);
}
.ig-thumb:hover img { filter: saturate(1) brightness(1); transform: scale(1.06); }
.ig-thumb:hover .ig-thumb__overlay { opacity: 1; }
.instagram-placeholder__notice {
margin-top: 1.5rem;
padding: 1rem 1.5rem;
background: rgba(200,169,110,.07);
border: 1px dashed rgba(200,169,110,.3);
font-size: .78rem;
color: rgba(212,227,226,.55);
line-height: 1.7;
}
.instagram-placeholder__notice strong { color: var(--gold); }
.instagram-placeholder__notice a { color: var(--gold); border-bottom: 1px solid rgba(200,169,110,.3); } .instagram-cta {
text-align: center;
margin-top: 3rem;
}
.instagram-cta .btn-outline {
display: inline-flex;
gap: .75rem;
align-items: center;
} @media (max-width: 1024px) {
.instagram-placeholder__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
.instagram-placeholder__grid { grid-template-columns: repeat(2, 1fr); }
.instagram-header { flex-direction: column; align-items: flex-start; }
} .cgu-page { background: var(--green); } .cgu-hero {
padding: 10rem clamp(1.5rem,5vw,4rem) 4rem;
background: var(--green-dark);
border-bottom: 1px solid var(--border);
position: relative;
overflow: hidden;
}
.cgu-hero::before {
content: 'CGU';
position: absolute;
right: 4rem;
top: 50%;
transform: translateY(-50%);
font-family: var(--font-display);
font-size: clamp(6rem, 15vw, 14rem);
font-style: italic;
color: rgba(200,169,110,.04);
line-height: 1;
pointer-events: none;
}
.cgu-hero__inner { max-width: 800px; }
.cgu-hero__title {
font-family: var(--font-display);
font-size: clamp(2.2rem, 5vw, 4rem);
font-weight: 300;
color: var(--cream);
line-height: 1.1;
margin: .5rem 0 1.25rem;
}
.cgu-hero__title em {
font-style: italic;
color: var(--gold-light);
}
.cgu-hero__meta {
font-size: .72rem;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--gray);
} .cgu-wrap {
max-width: 860px;
margin: 0 auto;
padding: clamp(4rem,8vw,7rem) clamp(1.5rem,5vw,4rem);
} .cgu-section {
padding: 2.5rem 0;
border-bottom: 1px solid var(--border);
}
.cgu-section:last-child { border-bottom: none; }
.cgu-section h2 {
display: flex;
align-items: baseline;
gap: 1rem;
font-family: var(--font-display);
font-size: 1.5rem;
font-weight: 300;
font-style: italic;
color: var(--cream);
margin-bottom: 1.25rem;
}
.cgu-num {
font-family: var(--font-body);
font-size: .58rem;
letter-spacing: .25em;
text-transform: uppercase;
color: var(--gold);
font-style: normal;
flex-shrink: 0;
padding-top: 3px;
}
.cgu-section p {
font-size: .92rem;
color: var(--gray);
line-height: 1.9;
margin-bottom: .9rem;
}
.cgu-section p:last-child { margin-bottom: 0; }
.cgu-section strong { color: var(--cream); font-weight: 400; }
.cgu-section em { color: var(--cream-dim); font-style: italic; } .cgu-card {
border: 1px solid var(--border);
overflow: hidden;
margin: 1rem 0;
}
.cgu-card__row {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 2rem;
padding: .85rem 1.25rem;
border-bottom: 1px solid var(--border);
font-size: .88rem;
}
.cgu-card__row:last-child { border-bottom: none; }
.cgu-card__label {
font-size: .6rem;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--gray);
flex-shrink: 0;
}
.cgu-card__value {
color: var(--cream);
text-align: right;
}
.cgu-card__value a { color: var(--gold); }
.cgu-card__value a:hover { border-bottom: 1px solid rgba(200,169,110,.4); } .cgu-highlight {
display: flex;
align-items: flex-start;
gap: 1rem;
background: rgba(200,169,110,.07);
border: 1px solid rgba(200,169,110,.2);
border-left: 3px solid var(--gold);
padding: 1.25rem 1.5rem;
margin: 1rem 0 1.25rem;
}
.cgu-highlight svg {
color: var(--gold);
flex-shrink: 0;
margin-top: 2px;
}
.cgu-highlight p {
margin: 0 !important;
color: rgba(212,227,226,.75) !important;
} .cgu-footer-nav {
display: flex;
gap: 1rem;
margin-top: 3rem;
padding-top: 2.5rem;
border-top: 1px solid var(--border);
flex-wrap: wrap;
}
.cgu-footer-nav .btn {
display: inline-flex;
align-items: center;
gap: .6rem;
}
@media (max-width: 640px) {
.cgu-card__row { flex-direction: column; gap: .25rem; }
.cgu-card__value { text-align: left; }
.cgu-hero::before { display: none; }
}  .page-hero {
padding: 10rem clamp(1.5rem,5vw,4rem) 4.5rem;
background: var(--green-dark);
border-bottom: 1px solid var(--border);
position: relative;
overflow: hidden;
}
.page-hero::after {
content: '';
position: absolute;
inset: 0;
background: url(https://www.lafontaine-ditalie.fr/wp-content/uploads/2019/02/1-4.jpg) center/cover no-repeat;
filter: brightness(.08) saturate(.3);
z-index: 0;
}
.page-hero__inner { position: relative; z-index: 1; max-width: 800px; }
.page-hero__title {
font-family: var(--font-display);
font-size: clamp(2.5rem,6vw,5rem);
font-weight: 300;
font-style: italic;
color: var(--cream);
line-height: 1.05;
margin: .5rem 0 1rem;
}
.page-hero__sub {
font-size: .75rem;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--gray);
} .page-carte { background: var(--green); }
.carte-section { background: var(--green); }
.carte-inner { max-width: 1200px; margin: 0 auto; padding: clamp(4rem,8vw,7rem) clamp(1.5rem,5vw,4rem); }
.carte-tabs {
display: flex;
flex-wrap: wrap;
gap: .5rem;
margin-bottom: 3rem;
padding-bottom: 2rem;
border-bottom: 1px solid var(--border);
}
.carte-tab {
font-size: .62rem;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--gray);
padding: .55rem 1.1rem;
border: 1px solid transparent;
background: none;
cursor: pointer;
transition: var(--transition);
}
.carte-tab:hover { color: var(--cream); border-color: var(--border); }
.carte-tab.active { color: var(--gold); border-color: rgba(200,169,110,.4); background: rgba(200,169,110,.06); }
.carte-grid { display: flex; flex-direction: column; }
.carte-item {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 2rem;
padding: 1.1rem 0;
border-bottom: 1px solid rgba(212,227,226,.07);
transition: var(--transition);
}
.carte-item:hover { padding-left: .5rem; }
.carte-item:last-child { border-bottom: none; }
.carte-item__info { flex: 1; }
.carte-item__name { font-family: var(--font-display); font-size: 1.15rem; color: var(--cream); }
.carte-item__desc { font-size: .78rem; color: var(--gray); margin-top: 3px; line-height: 1.5; }
.carte-item__price { font-family: var(--font-display); font-size: 1rem; color: var(--gold); font-style: italic; flex-shrink: 0; } .supplements-section { background: var(--green-dark); border-top: 1px solid var(--border); }
.supplements-grid { display: flex; flex-direction: column; border: 1px solid var(--border); }
.supplement-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: .9rem 1.25rem;
font-size: .88rem;
color: var(--gray);
border-bottom: 1px solid rgba(212,227,226,.06);
}
.supplement-item:last-child { border-bottom: none; }
.sup-price { color: var(--gold); font-family: var(--font-display); font-style: italic; }
.carte-cta {
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
padding: 3rem 2rem 5rem;
background: var(--green-dark);
} .page-reservation { background: var(--green); }
.res-section { background: var(--green); }
.res-inner {
max-width: 1200px;
margin: 0 auto;
padding: clamp(4rem,8vw,7rem) clamp(1.5rem,5vw,4rem);
display: grid;
grid-template-columns: 1fr 1fr;
gap: 5rem;
align-items: start;
}
.res-methods { display: flex; flex-direction: column; gap: 1rem; margin: 2.5rem 0; }
.res-method {
display: flex;
align-items: center;
gap: 1.25rem;
padding: 1.25rem 1.5rem;
border: 1px solid var(--border);
transition: var(--transition);
color: var(--cream);
}
.res-method:hover { border-color: rgba(200,169,110,.5); background: rgba(200,169,110,.05); }
.res-method--primary { border-color: rgba(200,169,110,.4); }
.res-method__icon { color: var(--gold); flex-shrink: 0; }
.res-method__label { font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gray); }
.res-method__value { font-family: var(--font-display); font-size: 1.2rem; margin-top: 2px; }
.res-hours {
margin-top: 2rem;
padding-top: 2rem;
border-top: 1px solid var(--border);
}
.res-hours h3 {
font-family: var(--font-body);
font-size: .62rem;
letter-spacing: .3em;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 1rem;
}
.res-note {
display: flex;
align-items: flex-start;
gap: .75rem;
margin-top: 2rem;
padding: 1rem 1.25rem;
background: rgba(200,169,110,.06);
border: 1px solid rgba(200,169,110,.2);
border-left: 3px solid var(--gold);
}
.res-note svg { color: var(--gold); flex-shrink: 0; margin-top: 2px; }
.res-note p { font-size: .8rem; color: rgba(212,227,226,.65); line-height: 1.7; margin: 0; } .page-contact { background: var(--green); } @media (max-width: 960px) {
.res-inner { grid-template-columns: 1fr; gap: 3rem; }
.contact-page-section .contact-inner { grid-template-columns: 1fr !important; gap: 3rem !important; }
}
@media (max-width: 640px) {
.carte-tabs { gap: .35rem; }
.carte-tab { font-size: .58rem; padding: .45rem .85rem; }
.carte-item { flex-direction: column; gap: .25rem; }
.carte-item__price { font-size: .95rem; }
} .carte-separator {
font-size: .58rem;
letter-spacing: .35em;
text-transform: uppercase;
color: var(--gold);
padding: 1.5rem 0 .75rem;
margin-top: .5rem;
border-top: 1px solid var(--border);
width: 100%;
}
.carte-separator:first-child { border-top: none; padding-top: .25rem; } .carte-item--supplement {
border-top: 1px dashed rgba(200,169,110,.25) !important;
margin-top: .5rem;
opacity: .75;
}
.carte-item--supplement .carte-item__name {
font-size: 1rem;
color: var(--gold);
font-style: italic;
}
.carte-item--supplement .carte-item__price {
color: var(--gold);
}