:root{--pine:#0b3028;--pine-deep:#06231e;--pine-soft:#17453a;--ivory:#f5f0e6;--cream:#ece4d5;--sand:#d8c8ae;--brass:#b79a63;--ink:#171a18;--muted:#666c67;--white:#fffdf7}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:"Manrope",Arial,sans-serif;font-size:16px;overflow-x:hidden}
body.no-scroll{overflow:hidden}
::selection{background:var(--brass);color:var(--pine-deep)}
a{color:inherit;text-decoration:none}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
img{display:block;max-width:100%}
h1,h2,h3,blockquote{font-family:"Cormorant Garamond",Georgia,serif;font-weight:400}
[hidden]{display:none!important}
.skip-link{background:var(--ivory);color:var(--pine);left:12px;padding:12px 18px;position:fixed;top:-80px;z-index:200}
.skip-link:focus{top:12px}
.container{width:min(1240px,calc(100% - 96px));margin:0 auto}
.section-pad{padding:140px 0}
.eyebrow{color:var(--brass);font-size:12px;font-weight:700;letter-spacing:.23em;margin:0 0 24px;text-transform:uppercase}
.eyebrow.light{color:#d9bb80}
.button{align-items:center;border:1px solid transparent;display:inline-flex;font-size:12px;font-weight:700;justify-content:center;letter-spacing:.13em;min-height:62px;padding:0 34px;text-transform:uppercase;transition:background .25s,color .25s,border .25s,transform .25s}
.button:hover{transform:translateY(-2px)}
.button:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.button-light{background:var(--ivory);color:var(--pine)}
.button-light:hover{background:var(--brass);color:var(--pine-deep)}
.button-outline{border-color:rgba(245,240,230,.72);color:var(--ivory)}
.button-outline:hover{background:var(--ivory);color:var(--pine)}
.button-gold{background:var(--brass);color:var(--pine-deep)}
.button-gold:hover{background:var(--ivory)}
.text-link{border-bottom:1px solid var(--brass);display:inline-flex;font-size:12px;font-weight:700;gap:38px;letter-spacing:.12em;padding-bottom:10px;text-transform:uppercase}
.text-link span{transition:transform .2s}
.text-link:hover span{transform:translateX(5px)}

.site-header{align-items:center;border-bottom:1px solid rgba(183,154,99,.34);color:var(--ivory);display:flex;height:96px;justify-content:space-between;left:48px;position:absolute;right:48px;top:0;z-index:50;transition:background .25s,left .25s,right .25s,padding .25s}
.site-header.is-scrolled{background:rgba(6,35,30,.96);border-bottom-color:rgba(183,154,99,.28);height:76px;left:0;padding:0 48px;position:fixed;right:0}
.brand{align-items:center;display:inline-flex;gap:12px;text-transform:uppercase;white-space:nowrap}
.brand span{font-size:18px;font-weight:500;letter-spacing:.33em}
.brand i{background:currentColor;height:1px;opacity:.6;width:28px}
.brand small{font-size:13px;font-style:normal;font-weight:400;letter-spacing:.28em}
.main-nav{align-items:center;display:flex;gap:clamp(16px,2vw,36px)}
.main-nav>a{font-size:12px;letter-spacing:.07em;padding:36px 0;position:relative}
.main-nav>a:not(.nav-book)::after{background:var(--brass);bottom:27px;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .22s;width:100%}
.main-nav>a:hover::after{transform:scaleX(1)}
.main-nav .nav-book{border:1px solid rgba(245,240,230,.55);padding:12px 18px;text-transform:uppercase}
.main-nav .nav-book:hover{background:var(--ivory);color:var(--pine)}
.menu-toggle{background:transparent;border:0;color:var(--ivory);cursor:pointer;display:none;height:44px;padding:10px;width:46px}
.menu-toggle span{background:currentColor;display:block;height:1px;margin:7px 0;transition:transform .25s;width:26px}
.menu-toggle.is-open span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-toggle.is-open span:last-child{transform:translateY(-4px) rotate(-45deg)}

.hero{color:var(--ivory);min-height:100svh;overflow:hidden;position:relative}
.hero-media{animation:heroZoom 10s ease-out both;background-image:url("../images/slider_1.png");background-position:62% center;background-size:cover;inset:0;position:absolute}
.hero-shade{background:linear-gradient(90deg,rgba(2,37,30,.96) 0%,rgba(3,40,32,.78) 25%,rgba(5,34,28,.28) 58%,rgba(0,0,0,.08) 100%),linear-gradient(0deg,rgba(3,24,20,.58),transparent 42%);inset:0;position:absolute}
.hero-content{animation:fadeUp .75s .1s ease-out both;left:max(48px,calc((100vw - 1344px)/2));max-width:690px;position:absolute;top:37%}
.hero-content h1{font-size:clamp(70px,8.5vw,128px);letter-spacing:-.045em;line-height:.77;margin:0}
.hero-copy{font-size:18px;line-height:1.65;margin:30px 0 32px;max-width:590px}
.hero-actions{display:flex;gap:18px}
.hero-meta{bottom:58px;display:flex;gap:34px;left:max(48px,calc((100vw - 1344px)/2));position:absolute}
.hero-meta span{align-items:center;display:flex;font-family:"Cormorant Garamond",Georgia,serif;font-size:17px;gap:12px}
.hero-meta span+span{border-left:1px solid rgba(183,154,99,.55);padding-left:34px}
.hero-meta b{color:var(--brass);font-family:sans-serif;font-size:23px;font-weight:400}
.scroll-cue{align-items:center;bottom:42px;display:flex;font-size:10px;gap:12px;letter-spacing:.17em;position:absolute;right:48px;text-transform:uppercase;transform:rotate(90deg);transform-origin:right bottom}
.scroll-cue span{background:var(--brass);display:block;height:1px;width:36px}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.025)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

.intro-section{background:var(--ivory)}
.intro-grid{display:grid;gap:120px;grid-template-columns:1.1fr .9fr}
.section-heading h2,.center-heading h2,.gallery-head h2,.testimonials-title h2{color:var(--pine);font-size:clamp(56px,5.2vw,80px);letter-spacing:-.035em;line-height:.92;margin:0}
.intro-copy{padding-top:18px}
.intro-copy p{color:var(--muted);line-height:1.9}
.intro-copy .lead{color:var(--ink);font-family:"Cormorant Garamond",Georgia,serif;font-size:29px;line-height:1.4;margin:0 0 26px}
.intro-copy .text-link{margin-top:28px}

.experience{display:grid;grid-template-columns:2fr 1fr 1fr;min-height:680px}
.experience-card{min-height:560px;overflow:hidden;position:relative}
.experience-card::after{background:linear-gradient(0deg,rgba(5,29,24,.92),rgba(5,29,24,.05) 65%);content:"";inset:0;position:absolute}
.experience-card img{height:100%;object-fit:cover;transition:transform .8s;width:100%}
.experience-card:hover img{transform:scale(1.035)}
.experience-overlay{bottom:0;color:var(--ivory);left:0;padding:48px;position:absolute;right:0;z-index:2}
.experience-overlay span{color:var(--brass);font-size:12px;letter-spacing:.18em}
.experience-overlay h3{font-size:43px;line-height:1;margin:14px 0}
.experience-overlay p{font-size:14px;line-height:1.7;margin:0;max-width:330px;opacity:.82}

.signature-section{background:var(--white)}
.signature-grid{align-items:center;display:grid;gap:11%;grid-template-columns:1fr 1fr}
.signature-image{position:relative}
.signature-image img{aspect-ratio:.82;height:auto;object-fit:cover;width:100%}
.signature-image span{align-items:center;background:var(--pine);border-radius:50%;bottom:-54px;color:var(--ivory);display:flex;font-family:"Cormorant Garamond",Georgia,serif;font-size:22px;height:154px;justify-content:center;line-height:1.05;position:absolute;right:-48px;text-align:center;width:154px}
.signature-copy h2{color:var(--pine);font-size:clamp(58px,5vw,78px);letter-spacing:-.04em;line-height:.9;margin:0 0 42px}
.signature-copy blockquote{border-left:1px solid var(--brass);color:var(--pine);font-size:29px;line-height:1.35;margin:0 0 28px;padding-left:28px}
.signature-copy>p:not(.eyebrow){color:var(--muted);line-height:1.85}
.signature-name{display:flex;flex-direction:column;gap:4px;margin-top:34px}
.signature-name strong{color:var(--pine);font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.signature-name span{color:var(--muted);font-family:"Cormorant Garamond",Georgia,serif;font-size:17px}

.menu-section{background:var(--pine-deep);color:var(--ivory)}
.center-heading{margin:0 auto 58px;max-width:740px;text-align:center}
.center-heading h2{color:var(--ivory)}
.center-heading>p:last-child{color:rgba(245,240,230,.7);line-height:1.7;margin:24px auto 0;max-width:570px}
.menu-tabs{border-bottom:1px solid rgba(183,154,99,.3);display:flex;justify-content:center;margin-bottom:54px}
.menu-tabs button{background:none;border:0;color:rgba(245,240,230,.58);cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.14em;padding:20px 34px;position:relative;text-transform:uppercase}
.menu-tabs button::after{background:var(--brass);bottom:-1px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%) scaleX(0);transition:transform .25s;width:70%}
.menu-tabs button[aria-selected="true"]{color:var(--ivory)}
.menu-tabs button[aria-selected="true"]::after{transform:translateX(-50%) scaleX(1)}
.menu-panel-head{align-items:end;border-bottom:1px solid rgba(245,240,230,.13);display:grid;gap:10%;grid-template-columns:1fr 1fr;padding-bottom:34px}
.menu-panel-head h3{font-size:48px;line-height:1;margin:0}
.menu-panel-head p{color:rgba(245,240,230,.65);line-height:1.7;margin:0}
.menu-list-grid{column-gap:72px;display:grid;grid-template-columns:1fr 1fr;padding:25px 0}
.menu-item{border-bottom:1px solid rgba(245,240,230,.12);padding:22px 0}
.menu-item h4{font-family:"Cormorant Garamond",Georgia,serif;font-size:23px;font-weight:500;margin:0}
.menu-item p{color:rgba(245,240,230,.56);font-size:13px;line-height:1.6;margin:7px 0 0}
.menu-note{color:rgba(245,240,230,.42);font-size:11px;font-style:italic;text-align:center}
.center-action{margin-top:40px;text-align:center}

.wine-section{background:var(--pine);color:var(--ivory);display:grid;grid-template-columns:1.18fr .82fr;min-height:720px}
.wine-image{background-image:linear-gradient(90deg,transparent 70%,rgba(11,48,40,.35)),url("../images/LeWill-ServiceVinRouge2.jpg");background-position:center;background-size:cover;min-height:620px}
.wine-copy{align-self:center;padding:80px 8vw}
.wine-copy h2{font-size:clamp(60px,5.6vw,86px);letter-spacing:-.04em;line-height:.88;margin:0 0 35px}
.wine-copy>p:not(.eyebrow){color:rgba(245,240,230,.7);line-height:1.9;margin-bottom:42px}
.light-link{color:var(--ivory)}

.gallery-section{background:var(--ivory)}
.gallery-head{align-items:end;display:flex;justify-content:space-between;margin-bottom:54px}
.gallery-filters{display:flex;flex-wrap:wrap;gap:24px;justify-content:flex-end}
.gallery-filters button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:11px;letter-spacing:.11em;padding:8px 0;text-transform:uppercase}
.gallery-filters button[aria-pressed="true"]{border-bottom:1px solid var(--brass);color:var(--pine)}
.gallery-grid{display:grid;gap:20px;grid-auto-rows:280px;grid-template-columns:repeat(12,1fr)}
.gallery-card{background:var(--pine);border:0;cursor:zoom-in;grid-column:span 4;overflow:hidden;padding:0;position:relative;text-align:left}
.gallery-card.feature{grid-column:span 8;grid-row:span 2}
.gallery-card img{height:100%;object-fit:cover;transition:transform .65s,filter .35s;width:100%}
.gallery-card::after{background:linear-gradient(0deg,rgba(5,29,24,.76),transparent 55%);content:"";inset:0;position:absolute}
.gallery-card:hover img{filter:saturate(.85);transform:scale(1.035)}
.gallery-card>span{bottom:0;color:var(--ivory);display:flex;flex-direction:column;left:0;padding:26px;position:absolute;z-index:2}
.gallery-card small{color:var(--brass);font-size:9px;letter-spacing:.15em;margin-bottom:7px;text-transform:uppercase}
.gallery-card strong{font-family:"Cormorant Garamond",Georgia,serif;font-size:27px;font-weight:400}

.reservation-section{align-items:center;background:linear-gradient(90deg,rgba(5,35,29,.93),rgba(5,35,29,.44)),url("../images/LeWill-TerrasseNuit-GD-IMG.jpeg") center/cover;display:flex;justify-content:center;min-height:850px;padding:80px 48px}
.reservation-card{background:rgba(6,35,30,.93);border:1px solid rgba(183,154,99,.42);color:var(--ivory);max-width:920px;padding:76px 86px;text-align:center;width:100%}
.reservation-card h2{font-size:clamp(67px,6.3vw,94px);letter-spacing:-.04em;line-height:.78;margin:0 0 30px}
.reservation-card>p:not(.eyebrow){color:rgba(245,240,230,.7);line-height:1.7;margin:0 auto 36px;max-width:540px}
.reservation-actions{align-items:center;display:flex;gap:34px;justify-content:center}
.phone-link{border-bottom:1px solid var(--brass);font-family:"Cormorant Garamond",Georgia,serif;font-size:24px;padding-bottom:6px}
.reservation-details{border-top:1px solid rgba(183,154,99,.3);display:grid;grid-template-columns:repeat(3,1fr);margin-top:56px;padding-top:34px}
.reservation-details div{display:flex;flex-direction:column;gap:7px}
.reservation-details div+div{border-left:1px solid rgba(183,154,99,.3)}
.reservation-details span{color:var(--brass);font-size:10px;letter-spacing:.15em;text-transform:uppercase}
.reservation-details strong{font-family:"Cormorant Garamond",Georgia,serif;font-size:17px;font-weight:400}

.testimonials-section{background:var(--white)}
.testimonials-grid{display:grid;gap:10%;grid-template-columns:.7fr 1.3fr}
.testimonials-title>p:last-child{color:var(--muted);line-height:1.8;margin-top:30px;max-width:310px}
.quotes{border-left:1px solid var(--sand);padding-left:70px}
.quotes blockquote{border-bottom:1px solid var(--sand);margin:0;padding:0 0 32px}
.quotes blockquote+blockquote{padding-top:32px}
.quotes p{color:var(--pine);font-size:28px;line-height:1.38;margin:16px 0}
.quotes footer{color:var(--muted);font-family:"Manrope",Arial,sans-serif;font-size:11px;letter-spacing:.13em;text-transform:uppercase}
.stars{color:var(--brass);font-family:Arial,sans-serif;font-size:12px;letter-spacing:.2em}

.contact-section{display:grid;grid-template-columns:1.25fr .75fr;min-height:690px}
.contact-map{align-items:center;background-color:#d9d4c7;background-image:linear-gradient(24deg,transparent 46%,rgba(183,154,99,.33) 47%,rgba(183,154,99,.33) 48%,transparent 49%),linear-gradient(-18deg,transparent 50%,rgba(11,48,40,.14) 51%,rgba(11,48,40,.14) 52%,transparent 53%),radial-gradient(circle at 30% 30%,rgba(255,255,255,.8),transparent 34%),radial-gradient(circle at 70% 65%,rgba(11,48,40,.14),transparent 32%);display:flex;justify-content:center;position:relative}
.contact-map a{align-items:center;display:flex;flex-direction:column;gap:14px;position:relative;z-index:2}
.map-pin{align-items:center;background:var(--pine);border:5px solid rgba(255,255,255,.75);border-radius:50%;box-shadow:0 15px 30px rgba(11,48,40,.22);color:var(--ivory);display:flex;font-family:"Cormorant Garamond",Georgia,serif;font-size:27px;height:68px;justify-content:center;width:68px}
.map-label{align-items:center;background:var(--ivory);box-shadow:0 12px 36px rgba(11,48,40,.12);display:flex;flex-direction:column;font-size:11px;letter-spacing:.12em;padding:14px 28px;text-transform:uppercase}
.map-label strong{color:var(--pine);font-family:"Cormorant Garamond",Georgia,serif;font-size:21px;font-weight:500;letter-spacing:0;text-transform:none}
.contact-panel{background:var(--pine);color:var(--ivory);padding:100px 7vw}
.contact-panel h2{font-size:clamp(60px,5vw,78px);letter-spacing:-.04em;line-height:.88;margin:0 0 40px}
.contact-panel address{color:rgba(245,240,230,.72);font-style:normal;line-height:1.8}
.contact-links{display:flex;flex-direction:column;gap:12px;margin:32px 0 42px}
.contact-links a{font-family:"Cormorant Garamond",Georgia,serif;font-size:22px;width:fit-content}

.site-footer{background:var(--pine-deep);color:var(--ivory);padding:70px 48px 28px}
.footer-top{align-items:start;display:grid;gap:40px;grid-template-columns:1fr 1fr 1fr;margin:0 auto 60px;max-width:1344px}
.footer-brand{align-self:start}
.footer-top>p{color:rgba(245,240,230,.55);font-family:"Cormorant Garamond",Georgia,serif;font-size:19px;line-height:1.6;margin:0;text-align:center}
.social-links{display:flex;gap:26px;justify-content:flex-end}
.social-links a{border-bottom:1px solid rgba(183,154,99,.6);font-size:11px;letter-spacing:.12em;padding-bottom:8px;text-transform:uppercase}
.footer-bottom{border-top:1px solid rgba(183,154,99,.24);color:rgba(245,240,230,.42);display:flex;font-size:10px;justify-content:space-between;letter-spacing:.08em;margin:auto;max-width:1344px;padding-top:26px;text-transform:uppercase}
.floating-book{background:var(--brass);bottom:22px;color:var(--pine-deep);display:none;font-size:11px;font-weight:800;left:18px;letter-spacing:.14em;padding:16px;position:fixed;right:18px;text-align:center;text-transform:uppercase;z-index:40}

.lightbox{align-items:center;background:rgba(3,20,17,.96);display:flex;inset:0;justify-content:center;padding:70px;position:fixed;z-index:100}
.lightbox figure{margin:0;max-height:85vh;max-width:1100px}
.lightbox figure img{max-height:78vh;object-fit:contain;width:100%}
.lightbox figcaption{color:var(--ivory);font-family:"Cormorant Garamond",Georgia,serif;font-size:22px;margin-top:15px;text-align:center}
.lightbox button{background:transparent;border:0;color:var(--ivory);cursor:pointer;font-family:Georgia,serif;position:absolute}
.lightbox-close{font-size:48px;right:28px;top:20px}
.lightbox-prev,.lightbox-next{font-size:64px;top:50%;transform:translateY(-50%)}
.lightbox-prev{left:24px}.lightbox-next{right:24px}

@media(max-width:1100px){
  .site-header{left:30px;right:30px}.main-nav{gap:16px}.main-nav>a{font-size:10px}.hero-content,.hero-meta{left:48px}.experience{grid-template-columns:1.5fr 1fr 1fr}.experience-overlay{padding:30px}.experience-overlay h3{font-size:34px}.container{width:min(100% - 64px,1120px)}.intro-grid{gap:70px}.signature-grid{gap:8%}.gallery-grid{grid-auto-rows:250px}
}
@media(max-width:900px){
  .section-pad{padding:100px 0}.site-header{height:80px}.site-header.is-scrolled{height:72px;padding:0 24px}.menu-toggle{display:block;position:relative;z-index:3}.main-nav{align-items:flex-start;background:var(--pine-deep);flex-direction:column;gap:0;inset:0;justify-content:center;opacity:0;padding:90px 40px 50px;pointer-events:none;position:fixed;transform:translateY(-12px);transition:opacity .25s,transform .25s}.main-nav.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.main-nav>a{border-bottom:1px solid rgba(183,154,99,.22);font-family:"Cormorant Garamond",Georgia,serif;font-size:30px;padding:15px 0;width:100%}.main-nav>a:not(.nav-book)::after{display:none}.main-nav .nav-book{border:1px solid var(--brass);font-family:"Manrope",Arial,sans-serif;font-size:12px;margin-top:28px;padding:17px;text-align:center}.intro-grid,.signature-grid,.wine-section,.contact-section,.testimonials-grid{grid-template-columns:1fr}.intro-copy{padding-top:0}.experience{grid-template-columns:1fr 1fr}.experience-main{grid-column:span 2}.experience-card{min-height:480px}.signature-image{margin-right:60px}.signature-copy{padding-top:90px}.wine-image{min-height:650px}.wine-copy{padding:90px 10vw 110px}.menu-list-grid{column-gap:40px}.gallery-card,.gallery-card.feature{grid-column:span 6;grid-row:span 1}.gallery-card.feature{grid-row:span 2}.reservation-details{gap:26px;grid-template-columns:1fr}.reservation-details div+div{border-left:0;border-top:1px solid rgba(183,154,99,.3);padding-top:25px}.quotes{border-left:0;padding-left:0;padding-top:60px}.testimonials-title>p:last-child{max-width:500px}.contact-map{min-height:500px}.footer-top{grid-template-columns:1fr;text-align:center}.footer-brand,.social-links{justify-content:center}.footer-bottom{align-items:center;flex-direction:column;gap:12px;text-align:center}
}
@media(max-width:640px){
  html{scroll-padding-top:72px}body{font-size:15px}.container{width:calc(100% - 36px)}.section-pad{padding:82px 0}.site-header{height:72px;left:18px;right:18px}.brand span{font-size:14px;letter-spacing:.25em}.brand i{width:17px}.brand small{font-size:10px;letter-spacing:.2em}.hero{min-height:820px}.hero-media{background-position:66% center}.hero-shade{background:linear-gradient(0deg,rgba(3,37,30,.96) 0%,rgba(3,37,30,.72) 55%,rgba(3,25,21,.15) 100%)}.hero-content{bottom:190px;left:22px;max-width:calc(100% - 44px);top:auto}.hero-content h1{font-size:clamp(64px,20vw,90px);line-height:.76}.hero-copy{font-size:15px;line-height:1.55;margin:22px 0 26px}.hero-actions{flex-direction:column;gap:10px}.hero-actions .button{width:100%}.hero-meta{bottom:78px;flex-direction:column;gap:10px;left:22px}.hero-meta span{font-size:14px}.hero-meta span+span{border-left:0;padding-left:0}.scroll-cue{display:none}.section-heading h2,.center-heading h2,.gallery-head h2,.testimonials-title h2{font-size:51px}.intro-copy .lead{font-size:25px}.experience{display:block}.experience-card{min-height:520px}.experience-overlay{padding:28px 22px}.signature-image{margin-right:30px}.signature-image span{bottom:-40px;height:118px;right:-28px;width:118px}.signature-copy{padding-top:75px}.signature-copy h2{font-size:53px}.signature-copy blockquote{font-size:25px}.menu-tabs{justify-content:flex-start;overflow-x:auto}.menu-tabs button{flex:0 0 auto;padding:18px 20px}.menu-panel-head,.menu-list-grid{grid-template-columns:1fr}.menu-panel-head{gap:20px}.menu-panel-head h3{font-size:40px}.menu-item h4{font-size:20px}.wine-image{min-height:500px}.wine-copy{padding:75px 22px 90px}.wine-copy h2{font-size:58px}.gallery-head{align-items:flex-start;flex-direction:column;gap:36px}.gallery-filters{gap:16px 22px;justify-content:flex-start}.gallery-grid{display:block}.gallery-card{aspect-ratio:1.15;display:block;margin-bottom:12px;width:100%}.reservation-section{min-height:760px;padding:50px 14px}.reservation-card{padding:58px 20px}.reservation-card h2{font-size:62px}.reservation-actions{flex-direction:column}.quotes p{font-size:24px}.contact-map{min-height:430px}.contact-panel{padding:75px 24px 90px}.contact-panel h2{font-size:60px}.site-footer{padding:65px 22px 90px}.floating-book{display:block}.lightbox{padding:50px 15px}.lightbox-prev{left:5px}.lightbox-next{right:5px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Tarifs 2026 - section A table */
.indicative-note {
  display: inline-block;
  margin: 24px auto 0 !important;
  padding: 9px 16px;
  border: 1px solid rgba(183, 154, 99, 0.4);
  color: var(--brass);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.menu-group + .menu-group {
  margin-top: 60px;
}

.menu-item-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 24px;
}

.menu-price {
  color: var(--brass);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.45;
  text-align: right;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .menu-item-heading {
    gap: 16px;
  }

  .menu-price {
    font-size: 14px;
  }
}

/* Acces a la carte QR - composant strictement isole */
#menu.menu-section > .container > .lw-qrcard26 {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: -14px auto 54px;
  text-align: center;
}

#menu.menu-section > .container > .lw-qrcard26 > .lw-qrcard26__link {
  display: inline-flex;
  width: 100%;
  max-width: 568px;
  min-height: 74px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  box-sizing: border-box;
  padding: 18px 28px;
  border: 1px solid rgba(183, 154, 99, 0.55);
  background-color: transparent;
  color: #b79a63;
  font-family: "Manrope", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.08em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease;
}

#menu.menu-section .lw-qrcard26__arrow {
  flex: 0 0 auto;
  font-size: 20px;
  line-height: 1;
  transition: transform 180ms ease;
}

#menu.menu-section .lw-qrcard26__link:hover,
#menu.menu-section .lw-qrcard26__link:focus-visible {
  border-color: #b79a63;
  background-color: #b79a63;
  color: #06231e;
}

#menu.menu-section .lw-qrcard26__link:hover .lw-qrcard26__arrow,
#menu.menu-section .lw-qrcard26__link:focus-visible .lw-qrcard26__arrow {
  transform: translateX(4px);
}

#menu.menu-section .lw-qrcard26__link:focus-visible {
  outline: 3px solid rgba(183, 154, 99, 0.35);
  outline-offset: 4px;
}

#menu.menu-section .lw-qrcard26__note {
  margin: 12px auto 0;
  color: rgba(245, 240, 230, 0.58);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (max-width: 640px) {
  #menu.menu-section > .container > .lw-qrcard26 {
    margin-top: -18px;
    margin-bottom: 42px;
  }

  #menu.menu-section > .container > .lw-qrcard26 > .lw-qrcard26__link {
    min-height: 64px;
    padding: 15px 18px;
    font-size: 12px;
  }
}

/* Premier ecran mobile - styles limites au hero */
/*@media (max-width: 640px) {
  #home_slider.hero {
    height: 100svh;
    min-height: 620px;
  }

  #home_slider .hero-shade {
    background:
      linear-gradient(
        0deg,
        rgba(3, 37, 30, 0.97) 0%,
        rgba(3, 37, 30, 0.78) 54%,
        rgba(3, 25, 21, 0.22) 100%
      );
  }

  #home_slider .hero-content {
    top: clamp(94px, 14svh, 118px);
    bottom: auto;
    left: 22px;
    max-width: calc(100% - 44px);
  }

  #home_slider .hero-content > .eyebrow {
    display: inline-block;
    margin: 0 0 11px;
    padding: 5px 8px;
    background: rgba(6, 35, 30, 0.48);
    color: rgba(245, 240, 230, 0.82);
    font-size: 8.5px;
    line-height: 1.35;
    letter-spacing: 0.11em;
  }

  #home_slider .hero-seo-title {
    max-width: none;
    margin-bottom: 8px;
    font-size: 10px;
    line-height: 1.35;
    letter-spacing: 0.15em;
  }

  #home_slider .hero-content h1 {
    font-size: clamp(50px, 16vw, 68px);
    line-height: 0.84;
    letter-spacing: -0.035em;
  }

  #home_slider .hero-copy {
    max-width: 340px;
    margin: 14px 0 17px;
    font-size: 13px;
    line-height: 1.48;
  }

  #home_slider .hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  #home_slider .hero-actions .button {
    width: 100%;
    min-height: 50px;
    padding: 0 10px;
    font-size: 9.5px;
    letter-spacing: 0.09em;
  }

  #home_slider .hero-meta {
    right: 22px;
    bottom: 126px;
    left: 22px;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(183, 154, 99, 0.32);
  }

  #home_slider .hero-meta span {
    align-items: flex-start;
    gap: 6px;
    font-size: 11px;
    line-height: 1.35;
  }

  #home_slider .hero-meta span + span {
    border-left: 1px solid rgba(183, 154, 99, 0.32);
    padding-left: 10px;
  }

  #home_slider .hero-meta b {
    font-size: 15px;
  }

  #home_slider .hero-slider-controls {
    bottom: 84px;
    gap: 8px;
  }

  #home_slider .hero-slider-arrow {
    display: none;
  }

  #home_slider .hero-slider-pause {
    width: 27px;
    height: 27px;
    background: rgba(3, 24, 20, 0.36);
    border-color: rgba(245, 240, 230, 0.22);
    font-size: 9px;
  }

  #home_slider .hero-slider-dots {
    gap: 7px;
  }

  #home_slider .hero-slider-dot {
    width: 6px;
    height: 6px;
  }
}*/

/* Adaptation aux petits telephones */
/*@media (max-width: 370px), (max-height: 680px) and (max-width: 640px) {
  #home_slider .hero-content {
    top: 86px;
  }

  #home_slider .hero-content h1 {
    font-size: clamp(47px, 15vw, 58px);
  }

  #home_slider .hero-copy {
    margin: 11px 0 13px;
    font-size: 12px;
  }

  #home_slider .hero-meta {
    bottom: 122px;
  }
}*/

/* =========================================================
   HERO RESPONSIVE - CONTENU ANCRE EN BAS
   ========================================================= */

/* Ordinateurs */
#home_slider.hero {
  display: block;
  width: 100%;
  height: 100svh;
  min-height: 720px;
  padding: 0;
  position: relative;
}

#home_slider .hero-content {
  position: absolute;
  z-index: 2;
  top: auto;
  right: auto;
  bottom: 150px;
  left: max(48px, calc((100vw - 1344px) / 2));
  width: min(690px, calc(100% - 96px));
  max-width: none;
  margin: 0;
}

#home_slider .hero-content > .eyebrow {
  margin-bottom: 16px;
}

#home_slider .hero-seo-title {
  margin-bottom: 12px;
}

#home_slider .hero-content h1 {
  font-size: clamp(64px, min(8.2vw, 12.5svh), 124px);
  line-height: 0.8;
  letter-spacing: -0.04em;
}

#home_slider .hero-copy {
  max-width: 590px;
  margin: 22px 0 24px;
  font-size: 16px;
  line-height: 1.55;
}

#home_slider .hero-meta {
  z-index: 2;
  right: auto;
  bottom: 44px;
  left: max(48px, calc((100vw - 1344px) / 2));
}

#home_slider .hero-slider-controls {
  z-index: 2;
  right: max(48px, calc((100vw - 1344px) / 2));
  bottom: 40px;
  left: auto;
  transform: none;
}

@media (max-width: 1100px) {
  #home_slider .scroll-cue {
    display: none;
  }
}

/* Ecrans larges mais peu hauts */
@media (min-width: 901px) and (max-height: 760px) {
  #home_slider.hero {
    min-height: 640px;
  }

  #home_slider .hero-content {
    bottom: 135px;
  }

  #home_slider .hero-content h1 {
    font-size: clamp(58px, min(7.5vw, 11svh), 94px);
  }

  #home_slider .hero-copy {
    margin: 16px 0 18px;
    font-size: 14px;
  }

  #home_slider .hero-actions .button {
    min-height: 52px;
  }

  #home_slider .hero-meta {
    bottom: 34px;
  }

  #home_slider .hero-slider-controls {
    bottom: 30px;
  }
}

/* Tablettes */
@media (max-width: 900px) and (min-height: 521px) {
  #home_slider.hero {
    height: 100svh;
    min-height: 700px;
    padding: 0;
  }

  #home_slider .hero-content {
    top: auto;
    right: 48px;
    bottom: 160px;
    left: 48px;
    width: auto;
    max-width: 690px;
    margin: 0;
  }

  #home_slider .hero-content h1 {
    font-size: clamp(58px, min(10vw, 11svh), 82px);
  }

  #home_slider .hero-copy {
    max-width: 560px;
    margin: 18px 0 22px;
    font-size: 15px;
  }

  #home_slider .hero-meta {
    right: 48px;
    bottom: 34px;
    left: 48px;
  }

  #home_slider .hero-slider-controls {
    right: auto;
    bottom: 88px;
    left: 50%;
    transform: translateX(-50%);
  }
}

/* Telephones en mode portrait */
@media (max-width: 640px) and (min-height: 521px) {
  #home_slider.hero {
    height: 100svh;
    min-height: 680px;
    padding: 0;
  }

  #home_slider .hero-shade {
    background:
      linear-gradient(
        0deg,
        rgba(3, 37, 30, 0.97) 0%,
        rgba(3, 37, 30, 0.76) 56%,
        rgba(3, 25, 21, 0.2) 100%
      );
  }

  #home_slider .hero-content {
    top: auto;
    right: 22px;
    bottom: 150px;
    left: 22px;
    width: auto;
    max-width: none;
    margin: 0;
  }

  #home_slider .hero-content > .eyebrow {
    display: inline-block;
    margin: 0 0 9px;
    padding: 4px 7px;
    background: rgba(6, 35, 30, 0.46);
    color: rgba(245, 240, 230, 0.84);
    font-size: 8px;
    line-height: 1.35;
    letter-spacing: 0.1em;
  }

  #home_slider .hero-seo-title {
    max-width: none;
    margin-bottom: 7px;
    font-size: 9px;
    line-height: 1.4;
    letter-spacing: 0.14em;
  }

  #home_slider .hero-content h1 {
    font-size: clamp(48px, 15vw, 64px);
    line-height: 0.82;
    letter-spacing: -0.035em;
  }

  #home_slider .hero-copy {
    max-width: 340px;
    margin: 13px 0 15px;
    font-size: 12.5px;
    line-height: 1.45;
  }

  #home_slider .hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  #home_slider .hero-actions .button {
    width: 100%;
    min-height: 48px;
    padding: 7px 8px;
    font-size: 9px;
    line-height: 1.3;
    letter-spacing: 0.08em;
  }

  #home_slider .hero-meta {
    right: 22px;
    bottom: 64px;
    left: 22px;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: 9px;
    padding-top: 9px;
    border-top: 1px solid rgba(183, 154, 99, 0.32);
  }

  #home_slider .hero-meta span {
    align-items: flex-start;
    gap: 5px;
    font-size: 10px;
    line-height: 1.3;
  }

  #home_slider .hero-meta span + span {
    border-left: 1px solid rgba(183, 154, 99, 0.32);
    padding-left: 9px;
  }

  #home_slider .hero-meta b {
    font-size: 14px;
  }

  #home_slider .hero-slider-controls {
    right: auto;
    bottom: 20px;
    left: 50%;
    gap: 7px;
    transform: translateX(-50%);
  }

  #home_slider .hero-slider-arrow {
    display: none;
  }

  #home_slider .hero-slider-pause {
    width: 26px;
    height: 26px;
    font-size: 9px;
  }

  #home_slider .hero-slider-dots {
    gap: 7px;
  }

  #home_slider .hero-slider-dot {
    width: 6px;
    height: 6px;
  }
}

/* Telephones en mode paysage */
@media (max-width: 900px) and (max-height: 520px) and (orientation: landscape) {
  #home_slider.hero {
    display: block;
    height: 100svh;
    min-height: 0;
    padding: 0;
  }

  .site-header {
    height: 64px;
  }

  #home_slider .hero-content {
    top: auto;
    right: auto;
    bottom: 54px;
    left: 24px;
    width: min(520px, 64vw);
    max-width: none;
    margin: 0;
  }

  #home_slider .hero-content > .eyebrow {
    display: inline-block;
    margin: 0 0 4px;
    padding: 3px 5px;
    background: rgba(6, 35, 30, 0.46);
    font-size: 7.5px;
    line-height: 1.25;
    letter-spacing: 0.08em;
  }

  #home_slider .hero-seo-title {
    margin-bottom: 4px;
    font-size: 8px;
    line-height: 1.25;
  }

  #home_slider .hero-content h1 {
    font-size: clamp(38px, min(7vw, 11svh), 50px);
    line-height: 0.78;
  }

  #home_slider .hero-copy {
    max-width: 480px;
    margin: 7px 0 9px;
    font-size: 10.5px;
    line-height: 1.35;
  }

  #home_slider .hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  #home_slider .hero-actions .button {
    width: 100%;
    min-height: 38px;
    padding: 5px 8px;
    font-size: 8px;
    line-height: 1.2;
    letter-spacing: 0.07em;
  }

  #home_slider .hero-meta {
    display: none;
  }

  #home_slider .hero-slider-controls {
    right: 22px;
    bottom: 12px;
    left: auto;
    gap: 7px;
    transform: none;
  }

  #home_slider .hero-slider-arrow {
    display: none;
  }

  #home_slider .hero-slider-pause {
    width: 25px;
    height: 25px;
    font-size: 8px;
  }

  #home_slider .hero-slider-dot {
    width: 6px;
    height: 6px;
  }
}

/* Bouton de reservation fixe masque sur le hero */
@media (max-width: 640px) {
  .floating-book {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(calc(100% + 40px));
    transition:
      opacity 180ms ease,
      transform 180ms ease,
      visibility 180ms ease;
  }

  .floating-book.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
}
